DECbox - about the BeagleBone
Core of DECbox is the credit-card size single board computer "BeagleBone". This is an embedded Linux system, equipped with an ARM based "System on a Chip" (SoC) processor.
The central chip is AM3359 from Texas Instruments.
Some technical data:
- The ARM cpu runs at 700Mhz.
- It has 256 MB RAM
- It uses +5V power. USB power is enough as the whole board only consumes about 2.5 Watt.
- the "hard disk" is a 8GB microSD card.
- Main connectors are USB and Ethernet.
- The AM3359 is full of peripherals we don't need here: Touch screen and LCD controller, Audio, A/D converters, CAN busses, Flash-ROM interfaces, two additional RISC processors, and a lot more. The Technical Reference Manual has over 4500 pages!
- There are two expansion connectors with together 92 pins. These allow access to a lot of CPU signals, so you can build own hardware to use some of the integrated peripherals.
The BeagleBone is a member of the "BeagleBoard" family. It is open source hardware, but sponsored by Texas Instruments. Here is the project page. You can buy the BeagleBone for about 90€ (end price).
There's nothing too special on the BeagleBone. In the big market of embedded Linux hardware platforms, it is targeted to the "open source hardware hacker" segment.
To name a few other systems (written march 2012 and outdated when you read it):
This whole family of devices is pushed by the gigantic market for powerful mobile platforms.
The BeagleBone was selected because it is quite cheap and many RS232 ports are accessible over the two big expansion connectors.
The bare BeagleBone has only USB and Ethernet connectors.
While these are exactly what you need for modern applications, no "vintage" application can run without the classic RS232 serial interface.
Luckily the AM3359 SoC has six UARTs on board. One is used as system console and routed through the USB interface. The signals for four UARTs are available on the Expansion Connector.
So we build first a prototype expansion board (called "cape" the "Beagle"-world) with two UARTS.
Then we made a professional printed circuit board with all four UARTs connected:
We like to share this cape with you! A friend set up a webshop, were you can buy it. Contact http://shop.hachti.de/de/.
Linux on the BeagleBone
The BeagleBone is delivered with a special Linux preinstalled: "Angstrom".
Angstrom is a resource preserving "embedded Linux" distribution, which has been ported to many ARM based hardwares before.
It is a full powered Linux: It directly integrates into any local TCP/IP LAN, and your operate it like any other desktop Linux (well, there's no mouse nor a screen. But working on the console is nearly the same).
The Angstrom provides all kernel sources and a build system, so you can recompile the kernel. But there's no need to do this. And everything is (GPL)-free.
Additional application software can mainly be installed from two sources:
- precompiled over the packed managemend (opkg). This means that you loaded additional software from the Angstrom servers directly onto the BeagleBone, as you would do (for instance) with Ubuntus "Synaptic paket managment".
- cross compiled by you and copied onto the Linux partition by hand.
You can download a "cross development tool chain": Tools to compile software for the BeagleBone (remember, x86 code will not run). As a rule of thumb, everything you can compile with the Gnu C/C++-Compiler gcc can be made to run on the BeagleBone.
The microSD card
The BeagleBone has no build-in flash-memory, it boots and runs from a microSD card.
The SD card is logically divided into two partition:
- a small FAT partition is used by the boot loader (multi staged, with "u-boot" as main part), and holds also the Linux kernel file ("uImage")
- the major part of the SD card is an ext3 partition, holding the Linux root file system.
If you put the SD card into a card reader, you can see both partition (under Ubuntu). Under Windows, only the FAT partition is visible.
Dumping, restoring and copying the SD card is quite easy: Boot an Ubuntu, plug the card into an USB card reader, and use "dd" on device "/dev/sdd" .