neogrid/firmware
2026-04-11 23:31:34 +02:00
..
examples/nanogrid-lights-demo Lights demo example 2026-04-11 23:31:34 +02:00
OLIMEX_PICO2_XL feat(mcu): Add micropython firmware and build instructions 2026-04-07 23:35:49 +02:00
.gitignore Lights demo example 2026-04-11 23:31:34 +02:00
firmware.elf feat(mcu): Add micropython firmware and build instructions 2026-04-07 23:35:49 +02:00
firmware.uf2 feat(mcu): Add micropython firmware and build instructions 2026-04-07 23:35:49 +02:00
README.md Lights demo example 2026-04-11 23:31:34 +02:00

firmware

Custom micropython build for the Olimex RP2350B-XL. Comes with some features enabled and modules bundled that are not part of an eventual upstream build.

build instructions

  1. Make sure to have a compiler toolchain supporting the RP2 architecture installed (Mac: brew install gcc-arm-embedded)
  2. Clone pico-sdk (to this folder or somewhere else on your machine)
  3. Change to the pico-sdk folder and run git submodule update --init
  4. Point an environment variable PICO_SDK_PATH to the pico-sdk folder
  5. Install picotool
  6. Clone the micropython repo (to this folder or somewhere else on your machine)
  7. From within the micropython repo root, run make -C mpy-cross
  8. Copy the OLIMEX_PICO2_XL folder to micropython/ports/rp2/boards if it doesn't exist; overwrite it if it does
  9. Change to the micropython/ports/rp2 folder
  10. Run make BOARD=OLIMEX_PICO2_XL submodules to install dependencies
  11. Run make BOARD=OLIMEX_PICO2_XL clean to remove previous build artefacts (if any)
  12. Run make BOARD=OLIMEX_PICO2_XL to build the firmware

flashing

  1. The build output can be found in micropython/ports/rp2/build-OLIMEX_PICO2_XL (or in this folder for convenience)
  2. Connect the MCU board to your computer using a data-capable USB cable
  3. On the MCU board, hold boot while pressing rst
  4. A new removable disk drive should appear. Copy firmware.uf2 onto this disk drive - this will flash the MCU board with the custom micropython build.

using

Once micropython is flashed, copy boot.py, main.py and any auxiliary files for the specific hardware type onto the MCU flash. Refer to the micropython docs for further info.