micropython-raspberrypi
MicroPython on bare metal Raspberry Pi Zero / Zero W / 2
Pre-built files
The source has been precompiled and the binaries placed in the build folder for convenience. Feel free to use those if you do not want to build yourself or are having difficult time building.
The files are:
- firmware.img
- config.txt
Download these and follow the "How to install" instructions below.
How to build
git clone https://github.com/boochow/micropython-raspberrypi.git
cd micropython-raspberrypi
git submodule update --init
cd micropython; git submodule update --init; cd ..
cd raspberrypi
for Raspberry Pi Zero/Zero W,
make BOARD=RPI1
for Raspberry Pi 2
make BOARD=RPI2
Options
MICROPY_HW_USBHOST=1
to enable USB keyboard support.MICROPY_MOUNT_SD_CARD=1
to mount SD card on /sd in the boot sequence(default).
How to install
- download
bootcode.bin
andstart.elf
from https://github.com/raspberrypi/firmware/tree/master/boot - copy
bootcode.bin
andstart.elf
to the root of your microSD card - copy
build/firmware.img
to the root of your microSD card - copy build/config.txt to the root of your microSD card. (if
config.txt
already exists, edit it to add a linekernel=firmware.img
.)
Modules and Classes
See wiki.
References
The First bare metal Raspberry Pi port by Stefan Naumann. (Bare-Metal Raspberry Pi port by naums · Pull Request #3522 · micropython/micropython)
csud USB host driver by Alex Chadwick. (Chadderz121/csud: Chadderz's Simple USB Driver for Raspberry Pi I modified this to support RPi zero/zero W. The modified version is here).
sd.c SD card driver by Zoltan Baldaszti. (raspi3-tutorial/0B_readsector at master · bztsrc/raspi3-tutorial)
A lot of bare metal examples by David Welch. (dwelch67/raspberrypi: Raspberry Pi ARM based bare metal examples)