Home About Blog

Control Board v1

From Snowcap

Jump to: navigation, search

Status: Completed

Generic STM32 F405 based microcontroller board. For more details about the MCU, see ST's F405 page.

Control Board V1

The Control Board v1 includes

  • 3.3V regulator
  • USB OTG port
  • 25 MHz crystal
  • pins for several peripherals:
    • SPI
    • I2C
    • 2x UART
    • xBee
    • 3x Analog in
    • DAC
    • 4x GPIO
    • 8x PWM

The board can be powered either through the USB or through the PWR pins and the 3.3V regulator. There's also a socket for xBee which connects to UART2.

The firmware update doesn't work through USB, only UART1 and JTAG are supported.



  • 5V from USB VBUS gets through the pin PB13 (VBUS sensing) to 3.3V rail when no pin mux is done in the software (i.e. in bootmode or when the flash is empty)
  • xBee RSSI is connected to ICU channel 4 but ChibiOS supports only capture channel 1 (channel 2 can be used by changing registers manually, but channels >2 are tricky)
  • To support flashing over any UART (e.g. xBee, UART2), the other UARTs must be kept low during the UART detection in bootoader. The pull-down resistors could be on an expansion board as well.
    • Same goes for USB, all other data pins (UART, CAN, etc) must be kept low or high.

Improvement ideas

  • "BOOTM" text is in the jumper side where the boot mode is off and there are no other markings. Illogical.
  • Switch for boot mode would be more convenient than a jumper.
  • xBee manual: "To help reduce noise, we recommend placing a 1.0 μF and 8.2 pF capacitor as near as possible to pin 1 on the XBee."
  • F205 bootloader supports programming only from UARTS 1 and 3 not from 2 (i.e. flashing over xBee is not possible with control board v1).
  • JTAG pins too close to IMU board?
  • USB DFU supports only USB OTG FS, not HS (Note that USART1 TX/RX pins that bootloader uses are the partly the same with USB OTG FS).
  • For hacks and debugging purpose the power rails could be drawn so that
    • There's a single point where the 3.3V goes to F405. This would allow easier power consumption measurements
    • There's a way to provide battery power to VBAT instead of common 3.3V. Allows RTC functionality when e.g. USB power is disconnected.
  • 3.3V regulator consumes at least 5mA even when 5v not connected
    • Provide a switch/jumper/solder pad for disconnecting regulator's 3.3V output.
  • Add 5V ping next to 3.3V pin in UART pin out. This could allow usb-serial dongle to provide 5V to the board.
    • Or just provided 3.3V from the usb-serial and leave the 5V to zero when powered like this.