It has been a while since the last post; two commercial projects interrupted the development. The good news is that it gave me time to think about the hardware and software architecture of the Snake.
The final goal is a snake that maintains itself; it goes where it wants to go and it feeds itself when energy is low. What would be cool it to see the world though the eyes of the snake, perhaps even record it’s movements so a history can be shown of where it is and how it got there.
An ultra mobile PC would provide enough processing power and offers standard interfaces like WIFI and USB for a camera. Also the fact that it will run Windows XP (sorry…) allowing easy application development in Delphi is a big plus. However the weight and the battery consumption is far too large.
Instead a small ARM9 or ARM11 based board with embedded Linux on it will offer the same possibilities but this is a full new area of development I’m entering. I have no experience with Linux or with the development tools/environment associated with it. Another option would be to use a Microsoft Mobile device but this environment is also new to me; in that case I better invest in building knowledge on a Linux system.
Some requirements of the controller board would be:
- Low power
- ARM9/ARM11 processor
- Linux 2.6
- RAM and ROM
- WIFI enabled or a CF slot
- Minimum 1 USB port, preferred more
- RS232 or RS485 interface
- Several IO pins for own use
- Blue tooth
Using Google I found several candidates:
A stackable solution using an ARM9 controller from FreeScale. Nice but very expensive. No network standard available.
A stackable solution using an ARM9 controller from ATMEL. There is a development board available on which a controller board can be plugged. I like ATMEL since there documentation is very complete and their chips are logical designed. No network standard available else it might have been a winner.
A very small footprint module using an ARM9 controller from ATMEL. A breakout board is available but since it is so small it will not be very practical for development. Also no network available.
The bigger brother of the previous board. Still small (credit card size) but more complete. As a bonus an FPGA on board allowing my own complex hardware designs. The wired network requires some external components.
A very interesting solution on a small board. It uses some custom Multi Chip Module, the speed it not very high (100MHz) but the IO range is very complete (1 serial, 2 USB and a wired network). Various extension boards are available, including a ZigBee module for wireless serial communication. No WIFI but there is a SD slot available on the extension board, not sure if it support SDIO for a SD WIFI card.
Offers various boards including WIFI on an extension board. Well documented, they exist already for some time and have grown rapidly.
So, which one to choose? I’m leaning towards the solution from ACME (the Fox Board). Main reasion is that the available IO and the fact that it already contains a small web server that is perfect for hosting the user interface.