Inside Tux Droid
Overview
Inside Tux Droid you may find a mother board and a daughter board plugged on it as you could see in the photo.

The daughter board is the radio part of Tux linking it to the dongle. The mother board is in charge of audio functionalities, sensors and actuators control plus battery charging.
Modules of Tux Droid Hardware
A module is a combination of one processor, firmware running on the processor and discrete hardware components.Tux
Droid hardware is built around three modules
- the Radio module (on the daughter board)
- the Audio
module (on the mother board)
- the Core module (on the mother board)
These modules are chained thanks to two bidirectional buses: an SPI bus between the radio and audio modules; an I2C bus between the audio and the core modules.

-
The radio module includes an RF chip (ATR2406) and a processor (ATMEGA48). The RF chip is in charge of the physical layer. The radio processor manages the transport layer for streaming and control data. In order to provide full duplex audio with limited buffer sizes, the radio link is switching every 1 millisecond between emitting and receiving. The processor is also in charge of encapsulating / extracting the audio stream and controlling data in / from the RF frames.

-
The audio module manages the sound aspects of Tux Droid.
-
in the downward way, it plays the audio stream coming from the RF module.
-
in the upward way, the audio module samples audio and sends the stream to the RF module.
-
it is also able to play sounds stored in the internal flash memory chip and manages the recording of new sounds in the flash memory.
The sound module also acts as a router forwarding back and forth control data through the I2C bus to the "behavior module"
-
The core module is in charge of firing actuation commands received on its I2C bus. It also collects sensors status and send them to the audio module for transmission. The core processor can be programmed through the I2C link to exhibit new stand alone behavior.
Tux Droid Mother Board
The mother board is composed of the "core" and "audio" modules. The reader may identify the main components on the layout photo.

The link Mother Board Topology will provide you the detailed schematic of the main board.
Developing Firmware for Tux Droid
Tux Droid firmware (the software of Tux Droid internal processors) is dedicated to be upgraded. Tux Droid is powered by ATMEGA88 microprocessors, belonging to a widespread class of RISC architecture from Atmel called AVR. Each of them contains a small bootloader program allowing to download new firmware through the I2C hardware port (see manual for locating it on Tux Droid). With a limited knowledge one may develop your own C programs ("firmware") for them and load the HEX file in the processors through an "updater" program.
Useful information for firmware developers:
- General information about AVR
- datasheets and application notes can be found at http://www.atmel.com/products/AVR/
- Setting up the AVR development chain
- Setup the AVR tool chain and compile the firmware will provide you a step by step approach
- An excellent (GNU) C compiler for AVR processor is available there http://www.avrfreaks.net/AVRGCC
- Code examples and comments
- http://www.tuxisalive.com/developer-corner/software/by-category/firmware in the "code repository" reference are the current source codes of the processors
- You will get a lot of practical information from the AVR freaks site : http://www.avrfreaks.net/
- Upgrading firmware with the "tuxup" utility provided with the tuxsetup package.
- Detailed explanations can be found at Updating the firmware
- Understanding I/O pins of the processors and connections with the module. This can be found in the following schematics
- Mother Board Topology for the main board
- A282 radio board schematic for the radio baby board