Let's Make Robots!

General purpose robot control board

all in one 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 :)


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

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 :P 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.

the idea is that it is in many ways easier to have everything in one place rather than having to buy and interface many different boards to get a working project, The single board is much smaller than many boards, easier to mount, and illiminates the need for seperate interfaces to other boards. This means it can potentially  run a lot faster than a set of boards as it doesnt have to wait in a loop to communicate with other boards. The way this board works is that it is very easy to connect, litterally plug in the power and I/O's you are using and it is done. There are not even any terminal blocks that would have to be done up. To take it off, you litterally pull of the connecters, and unscrew the board and you are done. about 30 seconds work :D, for this reason, you wouldnt need one for each seperate project as they can be reassigned very quickly and easily whereas a group of boards adds complexity, and makes it difficult to remember what goes where, a single board can be plugged in much more easily. Even if you dont want to switch boards between projects, you would still have to do the same for any other type of board and these boards will be cheaper than the arduino equivilent to do what this board does.

Also the features currently included are features that i would consider to be usefull in a standard start platform, in the way that everything you are likely to need for many robot types is there, so you would not have to keep adding more and more modules to your arduino. This allows you to expand your programming until you have a fully functioning robot without having to buy more and more modules you can stick with one simple board.

This board is definately aimed at experianced roboticists and larger projects, and i think it will be much more useful to them than many arduino modules.

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 :)

those are some good ideas, thanks :)

do you think that a wireless charging support would be worth adding?

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

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 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 :)

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 fields are only created by changing currents, so i would not have thought that any large magnetic field would be produced on the actual board... The compass module is not close to either motor drivers or servo drivers, servos are at one end of the board, motors are at the other, and the compass is in the middle (around 5cm from each) so i would have thought that it would be ok... how far away should it be?

voltage regulators, 1 5V and 1 3V3,

Chip is powered from 3V3 with 100n capacitors across every power pin. Chip has both real time and 8MHz crystals.

motor drivers are L293DNE

Servos have seperate power supply but this has no regulator (not easy to put a voltage regulaor for 24 servos on one board ;) )

There are both 5V and 3V3 output pins as well as pleanty of 0V connections.

I have built something similar before, so i am confident what i have done for servo drivers will be fine

There are no I2C voltage adaptors on the board, however for most I2C devices a voltage adaptor will not be needed, pull-up resistors will do the job well enough.