PicoCalc MicroPython Port Status

Yea my personal fork is named PicoCalc-micropython my bad, it would be his repository.

As for the "copy board definitions I was referring to the folders provided by Pimoroni named after the board, so specifically PIMORONI_PICO_PLUS2.

It also just learned their releases are very different from just cloning, and this guide would apply to cloning.

Yes, it was resolved by using the UF2 file from the PicoCalc repo. The PicoCalc repo points to the content of the previous GitHub link.

Okay, but then which is / where is the micropython.cmake file you were referencing?

Yeah, I tried to make heads or tails out of the Pimoroni process and it gave me a splitting headache so I had to stop. Just cloning won’t work, but honestly, I’m not sure there IS an easy/direct way to reconcile all the Pimoroni release changes versus the PicoCalc-micropython-driver changes. Not giving up, but just added a bunch more complexity to the setup and/or build process, I suspect.

Ugh. Thanks for your help, very much appreciated!

Okay, so I tried using the latest Pimoroni Pico Plus 2W uf2 image from the PicoCalc_micropython_driver repo, but am still having issues. The image is booting fine, but appears to be booting off its internal fs, rather than SDCard. I get the micropython prompt across the USB serial port, but the fs doesn’t automount, so not sure what to do there.

I suspect the problem is I simply need Laika’s boot.py by itself on the internal fs, I’m just not entirely sure how to get it there when all I have is the mpy console on the device. Suggestions?

Yes, micropython utilizes the internal 16MB flash (On the Plus models) for system files.

Do you have a computer available?
Thonny can automatically interact with the Internal FS and allows uploading/downloading files, or you can use mpremote: MicroPython remote control: mpremote — MicroPython latest documentation, which would offer a command line environment that allows mounting the internal FS or copying and whatnot.

As a side note, it would not really help for no boot.py, however once I finally receive my Plus 2W I will work on porting wget, which would help with pulling non-system critical scripts.

For GG’s repository it would follow the same path as the updated instructions, which is already updated for the correct main repository name.

It is worth noting that due to Pimoroni’s library being a pain to use, and introducing mysterious errors to my console specifically, I have begun using a hacky workaround to compile instead, modifying the stock Pico 2 definitions with the correct flash size and PSRAM support.

I may just end up exporting my own board definition to compile with to simplify this process greatly, let me know if you are interested.
It would not require any of the added Pimoroni libs, just the stock micropython repository.

2 Likes

I’d certainly be willing to help you with testing that, if wanted/useful?

2 Likes

i know next to nothing about embedded stuff, but enjoying this image so far—do you think it would be possible to build with lvgl as well?

I received my PicoCalc yesterday!

I immediately tried GitHub - zenodante/PicoCalc-micropython-driver with pico2, but I get the following ERROR in “boot.py”.
Where is the “checksd” module?

MPY: soft reboot
Traceback (most recent call last):
  File "boot.py", line 11, in <module>
ImportError: can't import name checksd
MicroPython v1.25.0-preview.389.gf187c77da on 2025-04-17; Raspberry Pi Pico2 with RP2350
Type "help()" for more information.

That’s in picocalc_system.py, and it’s supposedly built into the firmware. You can try copying that file directly into the root or /lib of the micropython filesystem via thonny to debug.

for which model? we support both normal pico with and without wifi, as well as the pimoroni plus models. The libraries differ due to micropython being built for each platform, it’s mostly up to the official maintainers what is supported by default.

1 Like

Its definetly not, I don’t know why gg wrote the instructions like that. At the very least, I wrote picocalc_system myself, and made no attempt to embed it like that.

I personally copy over all of the picocalc_files folder as well.

im running 2W currently but will order the pirate if its ever back in stock for that sweet sweet ram lol

Any MicroPython advantage seen with the Pimoroni Pico plus 2 onboard psram and much larger flash ??

This is where I’m getting confused. I can load the micropython firmware and get the serial prompt for it. Nothing comes up on the screen, but reading this thread its pretty obvious that more files are needed by micropython to activate the screen. Do I just copy all of the files in “pico_files” (there is not “picocalc_files”) into the root directory or do I preserve the “modules” directory when I copy those over?

Thanks

Not sure how correct it is, but I got things to work if I copied all the files under “pico_files” into the root directory. For anyone trying, here are the steps I used.

  1. git clone GitHub - zenodante/PicoCalc-micropython-driver
  2. Hold down the bootselect button and insert the cable between my computer and the micro USB (Not USB-C)
  3. Copy the “picocalc_micropython_pico.uf2” from the git checkout to the directory to the mount point for the Pico.
  4. Once it’s done copying the pico will reboot and present a micropython prompt to the serial console on the micro USB port.
  5. I used ampy to copy all the files under pico_files in the git checkout to the root directory. No directories on the pico. This includes everything under root and modules.
  6. Unplug the micro USB cable and turn on the picocalc.

Now I have the micropython prompt on the picocalc screen.

2 Likes

Yeah that is what I’ve been doing this entire time, no idea why some people give instructions to just copy boot.py and main.py

1 Like

Github say do this and that, we do this and that ¯\_(ツ)_/¯

1 Like

After abandoning the Lyra/Linux thing today and installing Pico 2W/MicroPython, I found putting all the files from the modules folder into a /lib folder on the Pico works perfectly fine. I hate having a cluttered root directory. For whatever reason the boot.py from the primary github repo does not work for me. So I ended up using the main.py from the PicoCalc github and then writing my own boot.py to mount the SD card and connect to my Wifi network.

Sorry for late.

The “picocalc_system” module included in the Pico2 image in the github repo does not seem to have the “checksd” module.

So I copied all the .py files in the pico_files/modules/ to the root folder of Pico2 and it worked.
(It did not work under /lib in Pico2 either.)

>>> help(picocalc_system)
object <module 'picocalc_system' from 'picocalc_system.py'> is of type module
  disk -- <function disk at 0x2000ced0>
  os -- <module 'os'>
  __file__ -- picocalc_system.py
  initsd -- <function initsd at 0x2000cf70>
  prepare_for_launch -- <function prepare_for_launch at 0x2000ccc0>
  run -- <function run at 0x2000cc80>
  human_readable_size -- <function human_readable_size at 0x2000cc60>
  __name__ -- picocalc_system
  killsd -- <function killsd at 0x2000cf90>
  machine -- <module 'machine'>
  gc -- <module 'gc'>
  memory -- <function memory at 0x2000ce50>
  sdcard -- <module 'sdcard' from 'sdcard.py'>
  uos -- <module 'os'>
  files -- <function files at 0x2000ceb0>