Recently, I’ve had the opportunity to work with a Glomation GESBC-9302E single board computer. This SBC contains a Cirrus Logic EP9302 ARM processor and options for plenty of RAM and Flash memory which means you have many options for writing your applications including high level languages like C# and Python. In this review, I’ll cover some of basic features of this board and where this board might be useful.
Why the GESBC-9302?
One of the most attractive features of the GESBC-9302E is cost. The base model with 32MB of RAM, and no NAND flash costs $95 at quantities of 1 unit. For a model with 64MB of RAM, and 128MB of flash, the cost is $120. Looking at the board, its simplicity is very evident. There is basically a CPU, flash, ram, a few linear power supplies, and a very limited amount of support circuitry. There really is not much to it.
We are helping a customer use the GESBC-9302E in a project where it is functioning as a gateway between a local Zigbee wireless network, and a server located on the internet. The customer had originally considered using a Linksys NSLU2 for the gateway device during the alpha testing, but upon consideration it seemed like the GESBC-9302E is a better choice in this application for the following reasons:
- the GESBC does not cost a lot more than a NSLU2
- you can buy the GESBC with plenty of NAND flash.
- the GESBC provides two serial ports
- the GESBC provides many signals on headers than can be used with cables or a daughter card.
Having raw NAND flash on the board is a significant advantage in my opinion. I’ve run into considerable hassles with consumer grade flash devices in the past (SD, USB Flash, etc). Although there are industrial grade flash devices, they tend to be more expensive. My preference at this point for reliable storage in an embedded Linux system is JFFS2 on a 64-128MB raw NAND flash device. With 128MB of NAND flash, there is plenty of space for a full featured Linux distribution.
With 2 USB ports, plenty of general pupose I/O pins (GPIO), and lots of memory, there is not a lot you can’t do with the GESBC in your typical headless control or gateway type application. Being able to interface to a number of USB peripherals, and support for high level languages makes this SBC+Linux ideal for implementing a device that may need to talk web services or other complex network protocols.
Most of the GESBC functionality is fairly well supported in the mainstream Linux kernel. Simply configure the kernel for the EDB9302 machine and most things will just work. There are several pieces missing from the mainstream kernel for the GESBC that are useful: NAND flash support, and a change needed to make the Ethernet work. For the NAND flash, I extracted a MTD driver from the Glomation kernel source code. The Ethernet change is a small tweak to the platform files. These changes are available for the 2.6.24 kernel in a public git repository at: http://dev.bec-systems.com/linux-2.6-gesbc-9302.git.
The GESBC uses Redboot for the bootloader. No complaints with the bootloader so far — it does everything I need including loading images from a TFTP server. The bootloader does not support writing images to NAND flash, so to load an OS image into NAND flash you typically have to boot a Linux OS from NOR flash, USB flash, or NFS root, and then use the userspace mtdutils to write an image into NAND flash.
Glomation provides a sample Linux image, but I prefer to use images generated by OpenEmbedded so that I have support for things like C# , Python, and thousands of other packages. Support for the GESBC has been added to OpenEmbedded and I’m in the process of updating the kernel support to 2.6.24.
Overall I’m very pleased with this SBC. Glomation has been very responsive to requests and has been a good company to work with. I still need to apply a fix for a known soft reboot issue with the 2.6 kernel and enable a driver for the RTC on the SBC. Future articles will detail how to load Linux images built with OpenEmbedded on this device.