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.

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.

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.

yes but when switching the PWM into a motor I will switch into a large capacitor, so there would not be such a large current change, At the moment the motor drivers can be controlled either by the ARM, or the PWM chips used for the servo controllers.

I am currently using the L293 motor drivers as they seem more of an all-in-one package than anything else i can find and provide a good power output for the cost but i will have another look around and see if i can find something more suitable.

yes i have switching regulators, and there shouldnt be any noise issues.


extended memory




LiPo battery charger

Solar power input

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.