MMv3 is the 3rd generation robot platform used to teach the IEEE Micromouse DeCal at UC Berkeley. It was designed with usability, manufacturability, size, and cost in mind.
- Follow the assembly instructions in lab1 using the latest BOM (see releases).
- Plug mouse into your computer and upload the latest firmware.uf2 (see releases) by dragging the file into the
RPI-RP2
folder that shows up. It should disappear and reappear as aCIRCUITPY
folder.- If you've uploaded firmware before, you'll need to hold the
BOOTSEL
button on the Pi Pico while plugging in.
- If you've uploaded firmware before, you'll need to hold the
- Download the latest CircuitPython libraries (for Version 7.x) and upload the following ones to the lib/ folder on your mouse.
- adafruit_motor/
- adafruit_onewire/
- neopixel.mpy
Skeleton lab code, lab documents, and solutions are stored in labs/, docs/, and solutions/, respectively. To get started with a lab, simply copy the contents of the folder over to the CircuitPython drive and edit files from there.
- sanity - Hardware Check
- lab1 - Assembly and CircuitPython Basics
- lab2 - Encoders
- lab3 - IR Sensors
- lab4 - Odometry and Motor Control
- lab5 - Intro to PID
- lab6 - More PID
- lab7 - Maze Solving Primitives (WIP)
- lab8 - Flood Fill (WIP)
The DS28E05 1-Wire EEPROM operates at overdrive speeds only. Adding support involves compiling a patched version of CircuitPython.
- Follow these instructions to get your system set up for compilation.
- Follow these instructions to clone CircuitPython and do further setup but don't compile CircuitPython just yet.
- Apply circuitpython.patch using
patch -p1 < circuitpython.patch
- Also apply macos.patch if using MacOS.
- Compile CircuitPython with
cd ports/raspberrypi && make BOARD=raspberry_pi_pico
- Upload the resulting firmware.uf2!