michaelh@juju.net.nz 2017-05-15 https://juju.net.nz/michaelh/project/spdbt/


A fast indoor mousebot for playing with rover control and navigation.


Context that led to this project.


What the project must fufill.


spdbt is made from parts I already have which are:

  • Raspberry Pi Zero W
  • Picon Zero I/O board
  • C270 USB camera
  • FIT0441 12 V 159 RPM motor
  • HC-450 3S LiPo (~30x55x18) with XT connectors (similar to this)
  • Pololu 5V regulator D24V22F5
  • ST7735 1.8" 160x128 LCD


The deliverables are:

  • OpenSCAD models for the mechanicals
  • Ansible rules for configuring the rover
  • Firmware for the rover
  • If needed, updated firmware for the Picon Zero
  • Photos showing the assembly


Chunky steps along the way

M1W1All foos have bars barred
M2W3All bazs are frobbed

Risks and mitigations

What are the risks, likelyhood, impact, and ways of handling them?

Alternatives considered

Do nothing…


FIT0411 pinout

  • Blue (left most): PWM. Take to GND for full speed.
  • Black: GND / Supply negative
  • Yellow: Direction
  • Green: encoder output. ~680 Hz at full speed
  • Red (right most): 12V

Picon Zero pinout

Source: https://github.com/4tronix/PiconZero

Protocol: http://heeed.net/a-few-notes-on-i2c/

TODO(michaelh): uses software PWM using a delay(). Check the accuracy especially during transfers.

Pins are {6, 7, 8, 11}, {9, 10, 2, 3, 4, 5}. Good news with software PWM is any pin can do any function.

On the Arduino, 3, 5, 6, 9, 10, and 11 can be hardware PWM. So 3, 5, 9, and 10 are available on the servo headers. 4, 5 are T0 and T1 to the counter unit so keep these free.

D24V22F5 pinout

Corner of board:

  • PG (power good)
  • EN (enable, enabled by default)
  • VIN
  • GND
  • VOUT
Michael Hope
Software Engineer