PicoCalc - PicoMite - what version is what?

I am getting mightily confused at the versions on offer at Releases · madcock/PicoMiteAllVersions · GitHub

The ‘latest’ is PicoMite V6.00.02_PicoCalc_RC1, but there is also an earlier PicoCalc PicoMite V6.00.02 and before that PicoCalc PicoMite V6.00.02RC26 etc.

Now my understanding is that RC (Release Candidate) come before any ‘final’ release, but if we’ve had RC26 already, how are we back at a RC1 as the latest?

I’ve had difficulty getting any of these files to update the Pico W (MY BAD, IT IS NOT A ‘2’) in my PicoCalc (see threads in Newbie, questions on missing MMBasic commands and upgrading firmware - #29 by 787Geoff)
And although it does provide the 'update firmware" command, which seems to put the Pico in the boot state, dropping .uf2 files into the RP1-RP2 folder does not result in the Pico updating its firmware.

As I note above, I made the mistake of thinking I’d put the 2W in the PicoCalc, but as that arrived without headers (which I haven’t yet soldered) I had merely gone from a Pico to Pico W.

And THAT is why the firmware update didn’t work. Obviously the Pico is clever enough not to brick itself too easily!

1 Like

I apologize for the confusion. Since the PicoCalc platform is not officially supported by PicoMite (and likely never will be), and since Clockwork originally just released a (somewhat broken) port of a really old version of PicoMite when the device was released, I decided to try to port the newest version. The version numbers in my repo (which you linked above) originally tracked with releases of the official PicoMite and WebMite. There were a few extra “in between” builds that I just added an “_a”, “_b”, “_c” to if necessary. But then the official version released a final V6.00.02. It was unclear what I should call additional PicoCalc releases after that point, so I added the clunky: “_PicoCalc_RC1” and eventually hope to settle on a “_PicoCalc_Final”

All of this is made difficult by the fact that the official releases are just made available whenever they are made available, with little to no warning, and then the forums here start clamoring for a release to match. If you’re interested in a look at the history and the mess it’s all been, check this post.

Since you’ve got a Pico W, unfortunately the only option you have, if intending to use MMBasic, is PicoMite_PICO_V6.00.02_PicoCalc_RC1.uf2. WebMite is only supported on Pico 2W (not Pico W), and that’s a decision made by the official maintainer, and not something that I’d be able to work around. It depends on code that only runs on a RP2350 (Pico 2 or 2W). If you’d like to use the wireless functionality of your Pico W, then you’ll need to consider using MicroPython, the Arduino platform, or any of the other growing number of options that are available (like FORTH, uLisp, etc.)

Sorry for the cryptic release filenames, but I was using the build targets as defined by the official project. I realized later that they aren’t really all that helpful for folks who aren’t thinking about the processor in their module. They are described in this older release.

But the TL;DR is:

If you have a Pico or Pico W, you can only install a release with a name like:
PicoMite_PICO_V6.00.xxxxx.uf2
(and you won’t be able to use wireless functionality since it won’t be WebMite)

If you have a Pico 2, you can only install a release with a name like:
PicoMite_PICORP2350_V6.00.xxxxx.uf2
(and you won’t be able to use wireless functionality since it won’t be WebMite)

If you have a Pico 2W, you can install either
PicoMite_PICORP2350_V6.00.xxxxx.uf2
(and you won’t be able to use wireless functionality since it won’t be WebMite)
or
WebMite_WEBRP2350_V6.00.xxxxx.uf2
(and you won’t be able to overclock as high because WebMite limits this due to instability)

Some of the older releases also had .bin files. There’s an ongoing project to load firmware dynamically from the SD, and those were built with that in mind. That project is still being worked on and I hope to eventually support it so we don’t haev to worry about flashing firmware the normal way anymore, and will only have to flash the bootloader firmware once and then load everything else direct fromt he SD. But it’s not completely ready yet (at least for PicoMite/WebMite), so we’re using what we’ve got. :slight_smile:

Also worth noting, I’m just another customer of ClockworkPi and provided these builds because they weren’t really making a clean source fork from the official version available, and after the apparent drama it was clear the official version would likely never support the PicoCalc anyway. I wanted one, gave it a shot, and figured it might be useful to others. It’s unfortunate that Clockwork doesn’t indicate what modules work with what software, but that’s just how it is, I guess. They make good hardware, but software has never been their focus or strength.

5 Likes

Does the WebMite_WEBRP2350_V6.00.xxxxx.uf2 firmware offer wifi connectivity along with the LCD and keyboard the PicoCalc provide?

In other words, if I bought a Pico 2W board and flashed that firmware, would I still have my current PicoCalc functionality with keyboard and screen, but also add wireless so I would be able to use a few network protocols?

Because that would be useful and cool.

Yes, the custom PicoCalc hardware works in both the PicoMite and WebMite builds, which includes the keyboard and screen.

I don’t think there’s a very good breakdown anywhere of the differences between PicoMite and WebMite, but the only resource I know of is the manual:

Note that for any of the PicoCalc builds, there won’t be support for PS2/USB keyboard or mouse, or VGA/HDMI video output, but that’s because the hardware doesn’t exist on the PicoCalc, and it’s only really needed for the custom builds people use on TheBackShed. The PicoCalc keyboard support is natively mapped to the keyboard input expected by PicoMite/WebMite. And the display is actually one of the supported LCD displays (though we can’t use touch panel support since the PicoCalc screen isn’t a touch panel).

Though it’s kind of annoying, I’d recommend searching for “webmite” in the manual. Specifically, there are things supported only in WebMite, and there are some things that are NOT supported in WebMite, and that might be the best way to find out that info. There are also some code examples of how to do various things, like run a web server, update the time/date via NTP, etc.

The custom commands to read the PicoCalc battery work on both the WebMite and PicoMite versions, as long as your keyboard BIOS has been updated to at least 1.2 (or maybe higher if another update is released one day).

1 Like

Firstly, a huge thank you for doing this @adcockm, I’m sure a lot of people are benefitting from it.

My Pico Calc arrived this week with an SD card containing the bin files that you mentioned. Is it hard to convert the uf2 files to this format so that someone else could to try and take some load of your shoulders?

There has been a Webmite version for the RP2040 in all releases of the PicoMite see the download from Geoff’s site. What isn’t supported is WebMite on an RP2350B

Although if you’re not wedded specifically to MMBasic, I’d consider looking at Machikania instead.

Machikania Basic is not as polished as PicoMite Basic, but it is usable and lightning fast. If you are just learning Basic, go with Machikania, if you have been using PicoMite for a long time and have a large library of code that would need to be updated for Machikania, then I’d stick with PicoMite.

2 Likes

Hahhahaha, I wouldn’t call any part of PicoMite polished :smiley:

“dumpster fire” on the other hand…

1 Like

LOL, yeah I considered changing my wording but decided it would amuse someone, so I left it.

I tend to agree, but I think it’s more an example of “lipstick on a pig”. If you don’t look too closely or want to do anything too serious with it, it can be fine. But the deeper you dig the more horrors you uncover and the more limitations you find that could never be fixed without a redesign/rewrite.

It also makes me wonder if the state of the code itself is partially intentional to prevent, or at least discourage, anyone else from working on it. Kind of gives off that “ensured job security” vibe.

The “bin files” that are apparently shipping now with the device (unfortunately) were experimental and were only supported on the Pico (not the Pico2). They’re not something the community is planning to support going forward, because it wasn’t a very good option for several reasons. For more information on that, and what is replacing it, check this thread:

Also, here’s a great video showing and desribing the U2F Loader:

Currently, the UF2 Loader supports a number of firmware options like the MachiKania compiled BASIC, and a number of other firmware options. Community members are still trying out firmware on the new loader, and those updates can be found at the thread above. This has also resulted in some improvements in the loader too, as issues are found.

Unfortunately, PicoMite/Webmite requires some reworking since the way it handles flash is deprecated, and it doesn’t currently support the new loader. I’ve made an attempt to get it working, though I don’t really understand the details of flash access very well, or the changes that might be required. So far I haven’t been successful. I’m hoping others might be able to take a look at it and see what I’ve missed and maybe we can get it working. I’ve just merged the latest changes from the mainline PicoMite releases (which don’t, and never will, officially support PicoCalc) and I plan to get a release out soon once I’ve had a chance to test it a bit. (So probably later tonight or tomorrow.) This updated version won’t work on the UF2 Loader either, but it can be flashed directly like the previous versions. I have no plans to support the “bin” format for just the Pico, since no other projects seem to be moving forward with that and the U2F Loader is a better option.

3 Likes

Ah, good point. I had remembered that incorrectly. I’d forgotten the main reason I didn’t bother building WebMite for the PicoW is that I don’t have one, and I also think it’s highly unlikely anyone would ever use a PicoW in the PicoCalc anyway. The Pico2W is a better choice and the price is basically the same. Saving $1 or less to buy older hardware that won’t perform as well would be an odd choice. It makes sense to support the Pico though, since that’s what the PicoCalc includes when shipped. But most PicoCalc owners seem to replace it with either a Pico2(W), one of the Pimoroni modules (which will work well for some firmware but not really for PicoMite/Webmite), a Luckfox Lyra (with minor hardware mods), or a Pi Zero 2 (with a custom adaptor).

So far I haven’t seen a request/complaint for a PicoW build of PicoMite/Webmite for PicoCalc, so it seems like there hasn’t been a need for extra builds anyway.

2 Likes

Thanks for a comprehensive explanation and sorry for causing you to spend so much time writing the reply.

I’ll ditch the bin loading system that came on the SD card then and look into the uf2 loader you referenced.

Thanks again for taking the time to reply and also for everything you are doing.

1 Like

No need to apologize! I tend to write long-winded/thorough responses. Mostly the reason is I’m hoping that I can write a “good” response once and then just link to that later if needed. Plus, if it’s already on the forum there’s at least a chance someone who needs the info might find it before needing to ask again. :slight_smile: (To be fair though, it’s not exactly easy to find stuff on the forum, since there’s a lot to sift through!)

1 Like

Does version PicoMite_PICO2_V6.00.03_PicoCalc.uf2 support the uf2 loader?

I have been swapping Pico boards ways to often to try again.