Anybody have interesting to compile firmware for RP2350 / pico2?

I’m try compile my code with “cmake -S . -B build -DPICO_BOARD=pico2”, it’s works, screen light up and draw rects.

But official firmware (PicoMite, Mp3 Player) seems get some trouble, like interrupt and hardware ssi is missing in RP2350.

I have not been able to flash the PicoCalc version of PicoMite onto a Pico 2 W. My pet theory right now is that Clockworkpi did not do extensive testing with Pico 2’s and kind of assumed anything that worked with a 2040 would work with a 2350. I am not even sure the version of PicoMite they used will support the Pico 2, which I don’t think was added until 6.0. Perhaps someone more familiar with the development could shed some light on this for us.

2 Likes

Interesting as i plan to upgrade to a Pico 2 at some point maybe the Pimoroni Pico Plus 2(w) ?? (16Mb flash 8Mb psram)

1 Like

The different Pico’s (RP2040 vs RP2350 and wireless vs. non-wireless) each require different PicoMite firmware (compilation of the same code but with different flags) … I’m not even sure the MMBasic/PicoMite version that ClockworkPi 's repo currently references even has a 2350 version.

The bleeding edge of PicoMite development (6.00.02 release candidates) is here: GitHub - UKTailwind/PicoMiteAllVersions: This contains files to build MMbasic to run on both RP2040 and RP2350

And yes, the principle PicoMite maintainer doesn’t know (and refuses to learn :wink: ) how to use Git{Hub} properly, so - yuck!

Extract from the PicoMite (MMbasic) user manual that might shed light on upgrade issues…

“The RP2350 comes in four sub versions designated the RP2350A, RP2350B, RP2354A and the RP2354B. The
RP2354A and the RP2354B are not currently supported (although they may be in the future).
The RP2350B is the same as the RP2350A except that it has 18 additional I/O pins (pins GP30 to GP47) which
are automatically made available in MMBasic. Both of these chips are supported by the same PicoMite
firmware and work the same”

It is my understanding that the standard Pico 2 modules don’t use the 2354 versions of the chip.

As I mentioned in my earlier post I suspect the issue is compiling the PicoMite firmware with the correct flags for the 2350 … and whether the version of the source code currently promoted by Clockwork Pi even includes the support for the 2350.

… I’ve just checked, and the repo that Clockwork Pi seem to point to is GitHub - cuu/PicoMite: Source files for all PicoMite variants + cmake for for the standard PicoMite and this is a 9 month old fork of a fork of an obsolete repository and does not contain any of the code necessary to compile for the RP2350 !

Just putting it out there, but if they’d like to send me one as payment I’d be perfectly happy to give it the old college try and keep their PicoMite firmware up-to-date for them :smiley: :smiley: :smiley: .

2 Likes

Based on activity on the Clockwork github, I think @guu is maintaining it. Hopefully it can be updated to actually support the Pico2 hardware and the latest version of PicoMite.

1 Like

Many info here : Geoff's Projects - BASIC Interpreter for the Raspberry Pi Pico

1 Like

I hope they do support the Pico 2 W. I ordered two of them and just got them in today in anticipation of my PicoCalc arriving on Wednesday, but it wouldn’t be a big deal if I had to use the Pico W (version 1) that I also have. I assume I can replace the non wireless version it comes with with the wireless version.

1 Like

And the Pimoroni Pico Plus 2 hopefully !

Does the Pimoroni version even fit into the case with the QW/ST and debug headers on the board?

I haven’t seen posts of anyone trying the Pimoroni yet. But the Luckfox Lyra has been successfully used, and it has a connector for a 2nd USB OTG (via an adapter, which could provide USB host), and a mipi display connector. Another interesting thing about this Pico variant, besides the fact that it’s a triple core processor with 128MB of memory and 256MB of flash is that it runs a complete Linux installation. The examples I’ve seen online show Ubuntu, but presumably other distros could be used as well. I think it is command line only though, but still impressive.

Seems like there is a good amount of space in the PicoCalc case.

I doubt this “Plus” variant would fit in the case though, as the ethernet port would add quite a bit to the height, and in order to use it anyway it would need at least a 3D printed custom backplate (plus the ethernet port would be in a very weird location).

1 Like

As of now, the supplied firmwares don’t work on Pico 2 or Pimoroni Plus 2W, I’ve tried and like others have said, the firmware is 2040/2350 specific. For now, I’ll toy around with the supplied 2040 until someone figures out how to build proper firmwares for the 2350.

But I can say that mechanically, the pimoroni is compatible with the case despite it having a USB-C port. Also, both buttons (boot and reset) are accessible from the ventilation openings on the back, so that’s good news.

3 Likes

here is new PicoMite uf2 file for pico2

based from github issue:

welcome to test if you have pico2 or pico2w

5 Likes

Running this now on a Pico 2W. Thank you!

3 Likes

Got my Pico 2W but still waiting for a shipping notification for my PicoCalc :slight_smile:

Thank you.

Tested and confirmed working on Raspberry Pi Pico 2W.

Tested and NOT working on Pimoroni Plus 2W. Keyboard is not detected.

2 Likes

Even web functions ?

Unlikely. @thwill understands the situation more thoroughly, but based on what I’ve read so far, it sounds like the only version of MMBasic that supports WEB functions is WebMite. And while it runs on the Pico, like PicoMite, it lacks support for any display or keyboard input because the whole purpose of it seems to be for headless Pico use accessible while developing code only by a serial connection.

The MMBasic community seems to embrace the idea of creating separate builds for every use (which makes sense in terms of keeping things lean and specific, but also seems to fragment functionality across lots of different versions maintained by different people). So in the case of the PicoCalc I’m guessing a new (13th, I think, because I read somewhere there are 12 MMbasic builds already?) version of MMBasic will need to build created which supports both the screen and keyboard (like the current official version which only supported the Pico and not Pico2 on launch) and also the WEB functions from WebMite, and is offered in at least two separate firmware releases – one for Pico/PicoW and one for Pico2/Pico2W. And of course, other Pico variants like the Pimoroni would need a different firmware as well.

(And, as is traditional, an enthusiastic community member, or members, would need to put those builds together, share them, and support them in some sense.)

The cool thing is the PicoCalc is incredibly flexible. Perhaps even moreso than even the Devterm or uConsole, since most of the hacking and customization on the PicoCalc needs only be done in software, while the other two devices tend to require hardware mods for most customization. Simply plugging a different Pico compatible device into the PicoCalc (even different hardware like ESP32 based stuff) will work, as long as software has been built for it. It also sounds like all the Pico compatible devices that have been tried so far will at least power on, boot, and be accessible via USB serial, even if the display, keyboard, and audio may not work. The Clockwork github gives an example of how they supported the custom PicoCalc hardware components for the initial build, and projects like the Luckfox Lyra port of MicroPython give additional code hints on how to support the hardware as well. But there’s plenty of work to be done.

Probably in the coming weeks and months we’ll see that software appear, depending on who has the time and interest to do it.

5 Likes

@thwill understands the situation more thoroughly …

LOL, and even more LOL with regards the WebMite.

.. but based on what I’ve read so far, it sounds like the only version of MMBasic that supports WEB functions is WebMite.

I believe that to be correct.

And while it runs on the Pico, like PicoMite, it lacks support for any display or keyboard input because the whole purpose of it seems to be for headless Pico use accessible while developing code only by a serial connection.

According to the table on p6 of the latest manual the WebMite firmware (two versions RP2040 + RP2350) includes the standard PicoMite support for LCD panels and PS/2 keyboards so I’m pretty certain a PicoCalc WebMite firmware with support for display and keyboard is possible.

Note that the standard PicoMite/WebMite supports ~20 different display panels but that doesn’t seem to include the one fitted to the PicoCalc so that code must be in ClockworkPi’s patch. Likewise the PicoMite supports the “Solderparty bbq20 mini I2C keyboard” (not sure if that is supported on the WebMite) but I suspect that support for the PicoCalc’s keyboard is in the ClockworkPi patch.

The MMBasic community seems to embrace the idea of creating separate builds for every use (which makes sense in terms of keeping things lean and specific, but also seems to fragment functionality across lots of different versions maintained by different people).

Not that many different people:

  • Geoff Graham is the father of MMBasic and as far as I know was responsible for all the early ports until ~2015, you can read about the early history of MMBasic here. Geoff still writes the manuals but has largely handed over the software development to Peter Mather.
  • Peter Mather is responsible for most recent MMBasic ports including ALL those for the Pico/Pico2/W devices (which share a single code-base). He is a seemingly tireless MMBasic firmware powerhouse, but on occasion he can get a bit cranky on the The Backshed Forum :wink: .
  • Gerry Allardice maintains ports (originally by Peter) for the Armmite L4 and Armmite H7 which are based on STM32Lxx and STM32Hxx microcontrollers (I think).
  • I ported and maintain MMBasic for Linux (MMB4L).

So in the case of the PicoCalc I’m guessing a new (13th, I think, because I read somewhere there are 12 MMbasic builds already?) …

There are 12 for the Pico/Pico2/W family but more than 20 MMBasic ports overall at various levels of functionality.

… version of MMBasic will need to build created which supports both the screen and keyboard (like the current official version which only supported the Pico and not Pico2 on launch) and also the WEB functions from WebMite, and is offered in at least two separate firmware releases – one for Pico/PicoW and one for Pico2/Pico2W.

Yes. You would need one for the Pico W (RP2040) and one for the Pico 2 W (RP2350).

And of course, other Pico variants like the Pimoroni would need a different firmware as well.

Not necessarily, it depends on how far a variant strays from the Raspberry Pi reference designs. I wonder if the Pimoroni Plus 2W that @Johnputer has a different pin allocation that is messing with the I2C keyboard … not really my area of expertise.

Best wishes,

Tom

5 Likes