A MicroPython firmware and script collection for the Clockwork Pi PicoCalc handheld device, powered by the Raspberry Pi Pico 2W. With this you can:
- Drive the 320Γ320 LCD display
- Read the membrane keyboard
- Browse a simple VF-terminal interface
- Run SD-card scripts (synth, sample player, testsβ¦)
- Flash a ready-to-use UF2 image
MicroPython/
βββ boot.py β main boot script
βββ Client_Code/ β BLE client applications
β βββ PicoCalc_Client_BLE.py β BLE client for PicoCalc
β βββ picocalc_client_config.json β client configuration
βββ firmware/ β prebuilt UF2 firmware images
β βββ picocalc_micropython_pico2w.uf2
βββ modules/ β custom MicroPython modules
β βββ checksd.py β SD card verification
β βββ colorer.py β syntax highlighting
β βββ default_style.py β default color schemes
β βββ enhanced_sd.py β enhanced SD operations
β βββ flush.py β module flushing utilities
β βββ highlighter.py β code highlighting
β βββ mkdir.py β directory creation
β βββ picocalc.py β main PicoCalc module
β βββ picocalc_system.py β system utilities
β βββ py_run.py β script execution
β βββ pye.py β text editor
β βββ sdcard.py β SD card operations
β βββ vt.py β terminal emulation
βββ pico_sdk_import.cmake β CMake SDK import
βββ picocalcdisplay/ β display driver & graphics
β βββ font6x8e500.h
β βββ micropython.cmake
β βββ micropython.mk
β βββ picocalcdisplay.c
β βββ picocalcdisplay.h
βββ sd/
β βββ py_scripts/ β application scripts
β βββ FoxHunt_competition.py β ARDF competition scanner
β βββ FoxHunt_lite.py β lightweight fox hunting
β βββ NetworkTools.py β unified network tools launcher
β βββ PicoBLE.py β Bluetooth Low Energy tools
β βββ ProxiScan_3.0.py β advanced proximity scanner
β βββ ProxiScan_compact.py β compact proximity scanner
β βββ README.md β py_scripts documentation
β βββ WiFiManager.py β WiFi connection management
β βββ archive/ β archived script versions
β β βββ ProxiScan_v1.py
β β βββ ProxiScan_v2.py
β β βββ README.md
β β βββ WiFiManager_classic.py
β βββ brad.py β utility functions
β βββ flush_menu.py β menu system utilities
β βββ picocalc_ollama.py β Ollama LLM integration
β βββ sd_chk.py β SD card health checker
β βββ sim.py β device simulator
β βββ snake.py β Snake game
β βββ start_ollama.sh β Ollama server startup
β βββ synth.py β advanced synthesizer
β βββ tetris.py β Tetris game with sound
βββ sd_chk.py β SD check utility
βββ vtterminal/ β VT100 terminal emulator
β βββ font6x8.h
β βββ micropython.cmake
β βββ micropython.mk
β βββ vtterminal.c
β βββ vtterminal.h
βββ README.md β you are here
- Power off your PicoCalc (unplug USB).
- Press and hold the BOOTSEL button on the Pico 2W module.
- While holding, connect the PicoCalc to your computer via USB.
- Release BOOTSEL once you see a new removable drive named
RPI-RP2. - On that drive, drag and drop
MicroPython-PicoCalc-Pico2W.uf2from thefirmware/folder.- You can find the latest build at
MicroPython/firmware/MicroPython-PicoCalc-Pico2W.uf2.
- You can find the latest build at
- The PicoCalc will reboot automatically and appear as a MicroPython REPL over USB.
Troubleshooting:
- If you donβt see
RPI-RP2, ensure youβre holding the correct BOOTSEL button on the Pico 2W.- On Windows, install the Raspberry Pi UF2 driver if needed.
- Format an SD card to FAT32 and insert it into the PicoCalcβs SD slot.
- On the Picoβs REPL (via Thonny or another serial terminal), create
/modules/and/sd/py_scripts/folders if they donβt exist (On the PicoCalc):import os os.mkdir('modules') if 'modules' not in os.listdir() else None os.mount(sdcard, '/sd') # if not auto-mounted os.mkdir('/sd/py_scripts') if 'py_scripts' not in os.listdir('/sd') else None
- Using Thonnyβs File β Upload or your OS file explorer:
- Copy everything in
modules/(e.g.picocalcdisplay/,pico_keyboard.py) into the Picoβs/modules/directory. - Copy
sd/py_scripts/into the SD cardβs/sd/py_scripts/folder.
- Copy everything in
- Power cycle the PicoCalc (Turn off then remove micro usb then plug in and power on).
- A menu from
boot.pywill appear on the 320Γ320 screen:- Simulator (
sim.py) - Synth engine (
synth.py) - Test routines (
test_script.py)
R: Reload menu F: Flush & reload modules X: Exit to REPL
- Simulator (
Press the corresponding key on the membrane keyboard to launch your script.
-
Menu Navigation:
1: Run the simulator (py_scripts/sim.py)2: Run the synth engine (py_scripts/synth.py)3: Run test routines (py_scripts/test_script.py)R: Reload the menuF: Flush & reload all modulesX: Exit to the REPL
-
Writing Your Own Scripts
Drop additional.pyfiles into/sd/py_scripts/. Theyβll automatically show up in the menu.
This project builds on and incorporates code from the PicoCalc-micropython-driver by zenodante, notably:
- The 320Γ320 LCD display driver
- The membrane keyboard scanning logic
- The prebuilt UF2βstyle MicroPython image
- MicroPython for RP2350 (tested with Raspberry Pi Pico 2W, MicroPython v1.19.1)
- Clockwork Pi PicoCalc hardware (320Γ320 LCD, membrane keyboard, SD-card slot)
This project is released under the MIT License. Feel free to use, modify, and distribute!
For questions or feedback, open an issue find me on:
Tip: After flashing the UF2, make sure the SD-card is properly seated and formatted FAT32. Enjoy tinkering!