feat(mcu): Add micropython firmware and build instructions
This commit is contained in:
parent
a70f1eb855
commit
b15eeca2b2
9 changed files with 107 additions and 0 deletions
22
firmware/OLIMEX_PICO2_XL/board.json
Normal file
22
firmware/OLIMEX_PICO2_XL/board.json
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"deploy": [
|
||||
"../deploy.md"
|
||||
],
|
||||
"docs": "",
|
||||
"features": [
|
||||
"Dual-core",
|
||||
"External Flash",
|
||||
"USB-C"
|
||||
],
|
||||
"images": [
|
||||
"rp2-pico2.jpg"
|
||||
],
|
||||
"mcu": "rp2350",
|
||||
"product": "PICO2-XL",
|
||||
"thumbnail": "",
|
||||
"url": "https://www.olimex.com/Products/RaspberryPi/PICO/PICO2-XXL/open-source-hardware",
|
||||
"variants": {
|
||||
"RISCV": "RISC-V CPU mode"
|
||||
},
|
||||
"vendor": "Olimex"
|
||||
}
|
||||
2
firmware/OLIMEX_PICO2_XL/mpconfigboard.cmake
Normal file
2
firmware/OLIMEX_PICO2_XL/mpconfigboard.cmake
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
set(PICO_BOARD "olimex_rp2350_xl")
|
||||
set(PICO_NUM_GPIOS 48)
|
||||
9
firmware/OLIMEX_PICO2_XL/mpconfigboard.h
Normal file
9
firmware/OLIMEX_PICO2_XL/mpconfigboard.h
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
// Board and hardware specific configuration
|
||||
#define MICROPY_HW_BOARD_NAME "Olimex PICO2-XL"
|
||||
#define MICROPY_HW_FLASH_STORAGE_BYTES (PICO_FLASH_SIZE_BYTES - (1 * 1024 * 1024))
|
||||
|
||||
// USB config
|
||||
#define MICROPY_HW_USB_MANUFACTURER_STRING "Olimex"
|
||||
#define MICROPY_HW_USB_PRODUCT_FS_STRING "PICO2-XL"
|
||||
#define MICROPY_HW_USB_MSC (1)
|
||||
#define MICROPY_HW_ENABLE_UART_REPL (1)
|
||||
1
firmware/OLIMEX_PICO2_XL/mpconfigvariant.cmake
Normal file
1
firmware/OLIMEX_PICO2_XL/mpconfigvariant.cmake
Normal file
|
|
@ -0,0 +1 @@
|
|||
set(PICO_PLATFORM "rp2350")
|
||||
1
firmware/OLIMEX_PICO2_XL/mpconfigvariant_RISCV.cmake
Normal file
1
firmware/OLIMEX_PICO2_XL/mpconfigvariant_RISCV.cmake
Normal file
|
|
@ -0,0 +1 @@
|
|||
set(PICO_PLATFORM "rp2350-riscv")
|
||||
47
firmware/OLIMEX_PICO2_XL/pins.csv
Normal file
47
firmware/OLIMEX_PICO2_XL/pins.csv
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
GP0,GPIO0
|
||||
GP1,GPIO1
|
||||
GP2,GPIO2
|
||||
GP3,GPIO3
|
||||
GP4,GPIO4
|
||||
GP5,GPIO5
|
||||
GP6,GPIO6
|
||||
GP7,GPIO7
|
||||
GP8,GPIO8
|
||||
GP9,GPIO9
|
||||
GP10,GPIO10
|
||||
GP11,GPIO11
|
||||
GP12,GPIO12
|
||||
GP13,GPIO13
|
||||
GP14,GPIO14
|
||||
GP15,GPIO15
|
||||
GP16,GPIO16
|
||||
GP17,GPIO17
|
||||
GP18,GPIO18
|
||||
GP19,GPIO19
|
||||
GP20,GPIO20
|
||||
GP21,GPIO21
|
||||
GP22,GPIO22
|
||||
GP25,GPIO25
|
||||
GP26,GPIO26
|
||||
GP27,GPIO27
|
||||
GP28,GPIO28
|
||||
GP29,GPIO29
|
||||
GP30,GPIO30
|
||||
GP31,GPIO31
|
||||
GP32,GPIO32
|
||||
GP33,GPIO33
|
||||
GP34,GPIO34
|
||||
GP35,GPIO35
|
||||
GP36,GPIO36
|
||||
GP37,GPIO37
|
||||
GP38,GPIO38
|
||||
GP39,GPIO39
|
||||
GP40,GPIO40
|
||||
GP41,GPIO41
|
||||
GP42,GPIO42
|
||||
GP43,GPIO43
|
||||
GP44,GPIO44
|
||||
GP45,GPIO45
|
||||
GP46,GPIO46
|
||||
GP47,GPIO47
|
||||
LED,GPIO25
|
||||
|
25
firmware/README.md
Normal file
25
firmware/README.md
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
# 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
|
||||
|
||||
0. Make sure to have a compiler toolchain supporting the RP2 architecture installed (Mac: `brew install gcc-arm-embedded`)
|
||||
1. Clone the `micropython` repo
|
||||
2. From within the `micropython` repo root, run `make -C mpy-cross`
|
||||
3. Copy the `OLIMEX_PICO2_XL` folder to `micropython/ports/rp2/boards` if it doesn't exist; overwrite it if it does
|
||||
4. Change to the `boards/rp2` folder
|
||||
5. Run `make BOARD=OLIMEX_PICO2_XL submodules` to install dependencies
|
||||
6. Run `make BOARD=OLIMEX_PICO2_XL clean` to remove previous build artefacts (if any)
|
||||
7. Run `make BOARD=OLIMEX_PICO2_XL` to build the firmware
|
||||
|
||||
## flashing
|
||||
|
||||
0. The build output can be found in `micropython/ports/rp2/build-OLIMEX_PICO2_XL` (or in this folder for convenience)
|
||||
1. Connect the MCU board to your computer using a data-capable USB cable
|
||||
2. On the MCU board, hold `boot` while pressing `rst`
|
||||
3. 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.
|
||||
BIN
firmware/firmware.elf
Executable file
BIN
firmware/firmware.elf
Executable file
Binary file not shown.
BIN
firmware/firmware.uf2
Normal file
BIN
firmware/firmware.uf2
Normal file
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue