New unofficial PicoCalc repo for PicoMite firmware

The official ClockworkPi repository and patch were not very clean or easy to understand, so I decided to merge in the changes and create a new repo based on the official PicoMite repository.

I don’t necessarily plan to keep this up to date, but merging changes from the official PicoMite repo should be easier now. This could also be used as a basis for submitting PicoCalc changes back to the PicoMite repo, but currently, while the source files are relatively clean, it’s still not organized very well in the CMakeLists.txt. Ideally, PicoCalc’s PicoMite should probably be a target platform that builds for the two different variants (pico and pico2).

Anyone is welcome to fork this and maintain your own updates in future.

These firmware files were built from the latest PicoMite code at the time (V6.00.02RC9).

I also set up a Ko-fi page in case anyone wants to send me a coffee or tip or whatever. But I’m also happy to see people contribute information, ideas, and other stuff to the community!


Regarding WebMite functionality:
I made a separate attempt to create WebMite versions of this firmware, but that became a mess and I gave up. WebMite and PicoMite are distinct platforms in the code, with some assumptions made for each of them. Among other things, WebMite is assumed to be headless, and lacks any display code. And it seems like the way Picomite handles the display, and WebMite handles internet access might conflict in some ways. They are essentially variant platforms of PicoMite and while it would be relatively easy to get the WEB functionality working without any display an input, that didn’t seem very useful on the PicoCalc. I hope others have better luck with this, because the PicoCalc could be a nice little personal web scraping and data processing device if the Webmite functionality was added to it.

13 Likes

Will this work on Pico 2 W and support the wifi?

Cool, I’ll give the Pico 2 version a go :blush::+1:t2:

2 Likes

No. There is no wifi support. I wrote about that in the original post (WebMite).

Perhaps someone will add it one day, but it requires a substantial rework of the code. If you want to use wifi on the PicoCalc, I’d recommend using an ESP32-S3 Pico module like the Waveshare or Walnut Pi PicoW. You won’t be able to use PicoMite/MMBasic (there’s no ESP32 port), but MicroPython should have access to the wifi/bluetooth that way. Currently MicroPython only works on the WalnutPi though I got it running on the Waveshare without the display functioning. I’m guessing the community will get that working eventually.

An alternate option is to use the LuckFox Lyra, but it has no onboard wifi/bluetooth, so you’ll need to build your own hardware solution to add to it. People have been experimenting with that already and there are many posts on the forum. It likely won’t be a plug and play solution and will require sourcing parts and soldering, unless someone comes up with a solution they sell on Tindie, etc.

For now, it’s unlikely an easy solution to wireless on the PicoCalc will exist any time soon. I might try looking into porting MicroPython for the Pico 2W, as I imagine that might be an easier patth. I don’t think anyone has tried that yet. Someone was also looking at CircuitPython, but from what I could tell the bluetooth support on ESP32-S3 devices was preliminary, at best, and wouldn’t work for what I had in mind. The wifi should work on it though, but no one has managed to get the PicoCalc screen and keyboard working last I checked.

1 Like

It gave me an error after a while about my keyboard i2c. Never had this issue with the “official” firmware.

Interesting. What was the error? (Might help track it down in the code.) Did the keyboard stop working at some point?

I noticed some of the updates in the official PicoMite changed some timing settings for a few things, so I might need to revert those. But it seemed like most of that had to do with the HDMI PicoMite devices, which I didn’t think would affect the PicoCalc. There might have been some changes to input too.

By the way, I created that fork and did all the builds using my DevTerm and one of Rex’s OS builds. To be fair, I was remoting in to it with putty, and I wasn’t using the keyboard, but still… Keeping it in the Clockwork “family”, so to speak.

(Just in case anyone was wondering if it was possible to do the build on a Pi device.)

1 Like

Updated firmware to fix the line ending bug (links to details on release post):

2 Likes

Thanks i have all the mentioned boards on order.

Confirmed, but now finding it hard to reproduce again. Almost immediately after installing PicoMite_PICO_V6.00.02RC9_b.uf2 and booting up fine, showing correct version details. I was typing on the keyboard and browsing the files system. In the middle of typing “I2C Keyboard not responding\r\n” starts scrolling up the screen requiring a power off. I’ll keep testing the build/s but it’s not happened again yet. Thanks for pulling this fresh build together.

1 Like

A question for anyone who has received that error… Are you using one or two batteries? (Or are you plugged in and charging when this happens?)

I’ve only ever had two batteries in mine, and I haven’t seen the error yet. But it might be coincidence. I doubt it’s a power draw issue, but figured it might be worth checking.

Two batteries here, and not plugged in on any occasion. Have seen the “I2C Keyboard not responding” 3 times now in total, perhaps after at least a few hours or so of run time (so it’s quite rare). The last two times I was not even using the PicoCalc, it was just sitting next to me at the console with a blinking cursor while I was reading up on some PicoMite documentation.

1 Like

Oh wow. That’s interesting that it can just happen with no user interaction at all. And no one has seen this with the official/original Clockwork build?

Also, I probably should have asked this first… Is it only on Pico or on Pico2(w) or both?

I’ve been pretty much using the Pico2W exclusively for PicoMite. I’ve booted it on the Pico just to test, but haven’t spent much time with it running. And I’m afraid to swap the modules out even more frequently than I’m already doing because of all the reports of broken ribbon cables and screen issues. I worry the module connector may not be able to take the stress long term too.

Anyhow, I wonder if this might be a memory leak thing, and maybe more common on the Pico since it has less on board memory…?

you should take those down or at least warn people that they will be experiencing issues

1 Like

Which module do you have installed? So far only you and @gary_m have reported the problem, and gary_m mentioned using the PICO firmware (not the Pico2). If you are also using the Pico module that shipped with the device, then the problem.may not be affecting the Pico2 build at all. I’ve still never seen it happen on the Pico2 myself.

@CarterNo have you tried this and had a problem with your Pico2 module?

@jutleys if you have both the Pico2 and Pico have you tried this and had problems with either?

It seems like it might only be a problem with the original Pico that ships with the device. I agree that i should remove that one but I’d like to hear if anyone has seen the problem on the Pico2 so i know it it should be removed as well.

My guess is that the updates to the latest PicoMite code somehow broke compatibility with the Pico but work on the Pico2.

I updated the release page with the information about the issue, and I removed the Pico builds. If someone confirms the issue on a Pico2 module, I’ll remove those as well, but so far I haven’t seen it on mine.

I’m guessing it’s some kind of memory/timing issue. Hopefully guu can work out a fix and make an update at some point to bring the official PicoCalc release up to date with the main PicoMite version for the Pico module.

Working fine on my Pico 2W as well :+1:

2 Likes

Hi, what’s happened if you set: set(COMPILE WEBRP2350)?

I flashed 6.x on a pimoroni pico 2 plus and got “I2C Keyboard not found, OPTION KEYBOARD disabled.”

I’ve also encountered the same issue with I2C keyboard disconnecting.

I’m using original Pico board that came with the device itself. Two batteries and it happened while being connected by USB-C, doing transfers from MMEdit over serial. Happened like 4-5 times during a single day. Like others mentioned, no interaction needed, happens quite randomly. Intervals can range between couple of minutes to couple of hours.

2 Likes