This module, based on Microchip (Atmel) AT91RM9200 microprocessor, is intended as a learning exercise in designing an embedded Linux development board suitable for IoT and other applications. All the board resources and documentation are open source and can be contributed to.
Key features: - Low price for an embedded Linux system; - Medium difficulty to assemble at home; - Documented features and mainline support in kernel.
Specifications - AT91RM9200 microprocessor @ 180MHz; - 64MB SDRAM @ 90MHz; - 2MB DataFlash memory for U-boot and environment storage; - MicroSD connector for RootFS and user storage; - Expansion headers with common functions available (USART, SPI, I2C, RMII, USB Host, etc.); - USB client connector.
Boot mode is usually set using the BMS pin on the AT91SAM9 series processors. When pulled down, it boots a NAND flash on the EBI bus. As NAND is expensive and takes a considerable area on the board, the boot strategy was devised relaying on the internal BootROM and a small NVM memory attached to SPI0.
The U-Boot bootloader and a small Busybox are stored there ( for fallback puroposes). U-Boot tries to load the kernel and rootfs from microSD if present, or falls back to the NVM environment if not present.
This module is part of a bigger project, Apollo IoT. It was born as an idea from observing the Arduino and the Raspberry ecosystem. The goal is to have a set of boards with standard features exposed in predefined locations in order to ease product development.
The processing boards feature uCs ranging from small STM32s to quad core processors capable of running full Linux distributions..
To enable real world applications, a set of capes was designed which adhere to the standard interconnect means and dimensions.