/otto_stm32

Firmware for differential drive robot Otto.

Primary LanguageCGNU General Public License v3.0GPL-3.0

Otto

Firmware for Otto's controlboard. Otto is a differential drive robot.

The main program is located in otto_controller.

Instructions

If you just want to use the robot you can download the binary file from the releases:

  1. Download the lastest otto_controller.bin
  2. Plug your Nucleo board in your PC.
  3. Copy and paste the .bin file inside your board.

Coding a driver for otto

You will need to have a way to open a serial port on your PC.

Serial port configuration:

  • Baud rate: 115200
  • Parity: No
  • Stop bit: 1
  • Data bits: 8
  • Hardware flow control: disabled
  1. Before doing anything reset the MCU using the DTR pin in the serial port.
  2. The MCU will then wait to receive a ConfigMessage.
  3. After the config message is received the PID loop control starts.
  4. Every time a VelocityMessage is received Otto will send a StatusMessage.

Refer to otto_messages.h to see how the messages are structured.

The CRC standard used is CRC-32/MPEG-2, tested with python package crccheck

Coding style

Follow Google C++ guideline while working on the project

Eclipse's formatting configuration file can be found here