Set up a local Zephyr toolchain and actually built the firmware, fixing the issues that surfaced and recording real results. Devicetree fixes (compile errors / silent no-ops): - Wrap bare gpios-only nodes (heartbeat, piezo, IR RX, and the GPIO IR TX on the stub boards) in gpio-leds / gpio-keys so DT emits the GPIO cell macros. - Rename the battery ADC node to "zephyr,user" so its io-channels is exposed. Verified building (Zephyr v3.7.0, SDK 0.16.8, ARM toolchain): - rpi_pico (39.9K/14.0K), rpi_pico/rp2040/w (68.1K/20.2K), nucleo_f401re (37.4K/15.1K), nrf52840dk BLE (137.7K/28.3K). All clean. Pico W BLE finding: the image links with the BLE stack, but Zephyr v3.7 has no HCI transport for the Pico W (CYW43 BT shares the Wi-Fi gSPI bus; the in-tree AIROC driver is UART-only), so bt_enable() returns -ENODEV at runtime and BLE stays inactive while the rest of the firmware runs. The same ble_nus.c is verified linking against a real controller on nrf52840dk. Clarified the runtime log, the W board conf, README and migration-notes accordingly. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .claude | ||
| .vscode | ||
| docs | ||
| lib | ||
| zephyr_app | ||
| .gitignore | ||
| .micropico | ||
| CLAUDE.md | ||
| main.py | ||
| migration-prompt.md | ||
| README.md | ||
lasertag_remote_control
OpenLaserTag device, MicroPython
Raspberry Pi Pico W
MicroPython FW: https://micropython.org/download/RPI_PICO_W/
Pi Pico W datasheet https://datasheets.raspberrypi.com/picow/pico-w-datasheet.pdf
PCB 51x21mm, 1mm hole 20x8(10) 2.54 pitch grid
Pi Pico BLE: https://electrocredible.com/raspberry-pi-pico-w-bluetooth-ble-micropython/
Micropython IR: https://github.com/peterhinch/micropython_ir/blob/master/RECEIVER.md
Pi Pico VSCode: https://randomnerdtutorials.com/raspberry-pi-pico-vs-code-micropython/
STM32WB
MicroPython FW: https://micropython.org/download/?mcu=stm32wb
BLE Bluetooth UART - terminal
https://play.google.com/store/apps/details?id=de.kai_morich.serial_bluetooth_terminal
install OpenLaserTag on Pi Pico W
install primitives lib
$ mpremote mip install "github:peterhinch/micropython-async/v3/primitives"
install lib folder on device
$ mpremote connect /dev/ttyACM0 cp -r ./lib :
install main.py
$ mpremote connect /dev/ttyACM0 cp ./main.py :
OpenLaserTag remote box
Box Z62, 2xAA:
https://www.kradex.com.pl/product/enclosures_with_battery_basket/z62
https://www.krabicky-pro-elektroniku.cz/plastova-krabicka-z62--cerna/
BLE Bluetooth UART - terminal
https://play.google.com/store/apps/details?id=de.kai_morich.serial_bluetooth_terminal
Pi Pico
IR RX
IR RX TSOP4856
datasheet: https://www.vishay.com/docs/82459/tsop48.pdf
- pin1 OUT - Pi Pico pin 16 (pull up)
- pin2 VCC
- pin3 GND
IR TX
- IR TX TSAL6200 / TSAL6100
- PN2222A NPN transistor
- resistor 47R
Pi Pico pin:
- pin 16 - IR RX
- pin 17 - IR TX - 22R - IR LED OSRAM SFH4544
- pin 18 - button
- pin 19 - button
- pin 20 - button
- pin 22 - Red LED, resistor 75R
- pin 28 - 2xAA 1,5V BAT - Schottky diode - VSYS Pi Pico
- pin 15 - PN2222A NPN transistor - Piezo
BLE UART Serial Terminal
Show IR RX recived commands
Send IR Commands from terminal
led_offLED OFFled_onLED ONbombSend Explode command over IR TX- Any Lasertag command in hex
FFFFFFor0xFFFFFFsend this command over IR TX