To guide the system development I followed some guidelines:

I also wanted:

This sounds much like an Arduino, but with some basic differences:

To make all this work I had to develop and test some standards:

The electronic standards were translated to components in EDA software. In the beginning this software was Eagle, but after hitting its limits I decided to migrate everything to KiCAD. It took me some time to reach the current project status, which is partially described below, module by module.

1 - MCU module: an ATMega328P in a little PCB, connected to the other modules by a main SPI bus. This module is surrounded by pads much like an Arduino stamp. These pads form a standard connection to a smaller module which I call a submodule. They deliver a second SPI, an I2C, a serial connection, two analog inputs and some GPIOs to the submodule. To enable the second SPI I had to remove the boot loader from the ATMega328P and strip all Arduino and wiring traces, rewriting what I needed from the beginning and redefining many things.

2 - AMGP sensor submodule: a small board that connects to the generic MCU module. This submodule has an accelerometer, a gyro, a magnetometer and a barometer. They connect to the MCU module using I2C and SPI buses, both available on the lateral connections. Data is read by the MCU module, processed and made available for other modules when they need.

3 - COM module: This is a standard MCU module also connected to the main SPI bus, but with connections to the slave select pins of the other modules. It is also connected via UART to a WIFI module that delivers the required information wirelessly to my computer. This module is the messenger. It calls other modules, identifies them and pulls all the available information, delivering everything later to the flight control module.

4 - PS Modules: Two very small factor power supplies that are able to charge a LiPo cell and power up the system with up to 0.8A at 3.3V and 5V.

5 - The Backbone: A PCB with an optimal form factor to plug the modules and host a RN131G WiFi and a COM module.

6 - Servo control submodule: A submodule sized PCB which connects to a MCU module and can control up to 16 servos.

This project began as a private project that was aided by a grant (E-26/190.192/2009) from a scientific funding agency called FAPERJ, from Rio de Janeiro, Brazil. After a lot of effort to develop it while doing a postdoc, deadlines came and I had to halt everything as was. A subsequent move to another country for two years helped to dissolve the original lab, leaving only the electronic components, PCB projects and code as a project memory. Last year I decided to continue the development with personal funding and started to buy my own equipments and build a private lab.