Designing a robot control board

Basic idea behind starting to create this board was to create an open and easy to develop platform with the latest technology. We started from scratch so that we could learn cool things but also because it gives us the possibility to create and develop even cooler things in the future.

The board is created around the STM32 32bit ARM Cortex microcontroller technology. It’s designed as a robotics platform base that could be used also to various other purposes. The board is designed to be easily extendable with sensors, servos and ESCs for driving brushless motors. It can also be used together with others boards for creating more complex systems.

Before this board we have done some simpler HW designs but this is our first board with 0.5mm pitch soldering. For cheap and easy manufacturing we used only a two layer PCB for the design. As the HW design is completely new we decided to do the first prototype by doing ourselves the PCB etching with chemicals and UV light. DIY PCB etching is not always worth the effort with two sided boards but it’s a fast way to do prototypes compared to ordering the PCB from a distant place. Here is the end result with some soldered components and jump wires replacing the bottom layer wires.

As software platform we first took a look at the FreeRTOS but then decided to use the ChibiOS as it has better support for the STM32 family, it uses GPL license, it’s currently a very active project and also that in Linux development environment it is easier to setup and take in use than the FreeRTOS.

With the prototype board we could test what works in HW and SW side. Based on the testing we made only few changes to the schematic. The main features for the board are:

  • STM32 F4 168MHz Cortex-M4 microcontroller
  • 5V input voltage and 3.3V internal and logic level voltage
  • 8 PWM connectors for servos or Brushless ESCs
  • JTAG
  • USB OTG
  • XBee socket
  • Several IO interfaces:
    • I2C, SPI, UART, generic IO, analog inputs

The available IO pins are arranged so that extension boards can be stacked to the control board. There could be one big or 2-3 separate smaller extension boards providing eg. IMU, GPS and connection to a Linux board.

For the final PCB we still had to fine tune the silk screen, add a logo and do few other minor tweaks.
Here is the final PCB viewed with gerbv. Now the PCB design is ready to be sent to production.

 

This entry was posted in Hardware and tagged , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Why ask?