General purpose robot control board

This project aims to create an all-in-one robot control board. Unlike the arduino platforms, this board will contain servo drivers, motor drivers, accelerometer, gyroscope, compass, radio module, general purpoes I/O, and on-board power regulators on one single board.


The main micro-controller is an 32bit arm processor STM32F40. Programs will be downloaded to it by micro-usb port. This has both 8MHz and 32.768KHz oscillaters.

The board will be able to control up to 28 servos. 8 servo outputs will have current sensors.

The board will be able to control up to 4 reversible motors. each one can either be controlled via the pwm servo controlers or the main microprocessor by switching a jumper.

the accelerometer gyroscope and compass are controlled using an I2C interface, and are located towards the center of the board.

There are power port outputs on the board for 5V, 3V3 and 0V.

There are 45 general purpose I/O pins. amongst these I/O pins, some can be used as SPI and I2C interfaces. There is a single dedicated I2C output with nessacarry pull-up resistors.

All outputs are connected using 0.1 inch SIL connectors.


The microcontroller is powered from a 3V3 source, so any inputs must not be raised to 5V as this will damage the pin. An external module being used can be adapted to have a 3V3 output by adding a pull down resistor to 0V on the modules output.

the size of the board is 12cm by 5 cm with 3mm mounting holes at 11cm and 4cm.











what extra things would people want on this kind of board? I have added all the things That were not done on the first prototype, but i need people's feedback as to what features will be wanted.

Thanks :)


Feature creep.

One of the features I like, is the ability to plug in the features I need, and not have to lug around the ones I don’t :stuck_out_tongue: Having EVERYTHING on a single board ready to be used, would take a specialized project to actually make good use of everything. Defeating the purpose of a “general robot control board”. Beyond accel, gyro, motor driver, wireless RX/TX, and maybe an IR reciever, you are pushing the limits of what are usually built into “most” robots. More features than this and it quickly becomes too much of a specialized board to justify me getting one for each bot I build. Oddbot has put a lot of thought into this very idea with his Micro Magician. I like the idea, but in the end, being able to easily plug-in the features you need (ie: shields) might be the best way to build a “general” robot controller.

Well in THAT case.

If you are aiming this at the higher end of the spectrum, you might consider adding a microSD slot and a GPS module. Maybe a Li-Po charge circuit would be a welcome addition as well :slight_smile:


Maybe a VERSION with wireless charging support, there are a lot of people into self-docking robots, but a robust and efficient system is hard to come by.


extended memory




LiPo battery charger

Solar power input

For an advanced board

you need to have inputs dedicated to quadrature encoders; The compass should be moved on another board and you should provide a cable for it; USB-OTG would be a good feature and a cable to connect to an Android device would be OK if the controller have USB-OTG.

8 servo outputs with current sensors but no current sensors for motors ?

28 servors and 4 motors I think is too much.

If you provide more details about the hardware you may receive more feedback.

I will look into USB

I will look into USB otg,

what are the reasons for moving the compass?

good idea, i will definately add current sensors to the motors,

i was considering having servo drivers on a seperate board, would this be better?

what kind of hardware details should i provide?

Thanks for comments and ideas :slight_smile:

Also stated by OddBot,

the compass is influenced by electromagnetic fields so it will be influenced by the motor drivers.

I do not know if moving the servor driver on another board would be a plus but you should consider the power the servos will draw (so the cooper width for them) and how the servos will be powered (dedicated power line or board’s 5V line if there is one).

As for hardware details, how about voltage regulators, what kind of motor drivers, are there I2C voltage adapters, how is STM32’s AVcc provided, are there connectors for 5V sensors, …

Magnetic field

The motors should be controlled by PWM, for a robot with wheels or tracks, at least -> you will switch large currents so you will have lots of magnetic fields.

I would never ever pair a Cortex controller with an ancient chip like L293, I would use a FET based chip.

Also, I would use switching regulators at least for the 3V3 power supply and good filtering for AVCC.