Let's Make Robots!

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


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.


ericteuh's picture

extended memory




LiPo battery charger

Solar power input

OddBot's picture

Good luck with this one.

Personally I do not like the Arduino Sheild system because the footprint is too big and the shields are usually overpriced. For example paying $20 or more for a motor sheild with a $2 IC and a few discreet parts. For this reason I do like the "all in one" concept.


I tend to agree with JerZ's earlier comment that unless you have a special project requiring all these features then you will end up with a lot of stuff not being used. If you are looking at making a product to sell then you will find this works against you because the price will be too high.

As also mentioned by Jerz, I did design a small Arduino controller with some of these features built in but that was designed especially for small, low voltage, desktop sized robots.

The Micro Magician only had features that could be used in any robot design. For example, even if the 3-axis accelerometer is not needed to measure the robot's angle, impact detection is a useful feature in almost any robot. IR remote control may not be needed in normal opperation but can be handy for debugging or calibration while the robot is running.

I suppose the short answer is, if your only building this for yourself then go for it! 
If you plan to sell it then re-think your concept because while everyone will say it's cool, very few will fork out the dough. Probably 90% of hobbyist and teachers are at the beginners level and this is a very advanced level board.

Also look at your PCB size and shape. If you are planning to sell it then make sure it can be easily mounted on popular robot chassis's.

I will have starter software for this that should make it easy for even begginers to use (examples of different parts of code ect so they can just copy and paste if they wish). There is also PC software for program writing/downloading/debugging via USB that will be free with the board.

I was considering perhaps having a version without the servo control as this extent of servo control would only be needed for large walkers. This would probabally cost £60 and the servo controller would be available as a seperate module. what are your thoughts on this?

as the board is at the moment it would cost around £70 - £80, which as far as i can see, a fair bit cheaper than the arduino equivillent (costing about £100 i think...) and it will have a much smaller footprint. What kind of price would you say i should  aim for?


OddBot's picture

It depends on what group you hope will buy the board.

As your board is now, with a conservative price of $100 USD it is really a product designed more for a professional or maybe a rich university student than the average hobbyist who is happy to build a line follower or obstacle avoiding robot.

If you were planning to sell it then I would do more research on your competition. Look at the power of their MCU, the software they use, their features and price. You probably need to halve your price and loose a few features to be competitive.

Start by ditching the compass which will be useless mounted on the board. Your compass should always be mounted as far away as possible from all the other electronics, especially the motor drivers!