Finally, my PicoCalc arrived


:slightly_smiling_face:

10 Likes

Ordered when ?. Will give me and others an idea when to expect ours.

1 Like

I just ordered it a week ago. The delivery was faster than I expected, unlike uconsole, which took two months to ship.

1 Like

Looks like an outdated version of MMbasic !. Lets see if someone manages to update it…

It’s newer than the Windows prebuilt version.

Mine arrives tomorrow; I’ll give a fresh build a go.

Interesting, I’ve no idea what that is or where you got it from.

The latest version of MMBasic for Windows is (give or take a beta) version 5.07.03b24 from 2022 and is also credited (c) Peter Mather.

Personally I’d describe the Windows version as moribund. Peter (who does 99% of the maintenance and development of MMBasic these days) isn’t terribly enamored of it and in the last couple of years has been giving most of his attention to the PicoMite.

Best wishes,

Tom

From the PicoMite page…

“Available below in the downloads section is a new version of the PicoMite firmware (V6.00.01). This includes support for both the Raspberry Pi Pico with the RP2040 processor and the Raspberry Pi Pico 2 with the RP2350 processor. It is a major update that includes many additional features.”

Looks like this is what we need to upgrade to a Pico 2 !!. Includes MMbasic though ?

2 Likes

I’m assuming it’s this one, which looks to be the one on the official page?

I just downloaded it and I got the same version number when I ran it.

Where’s the newer one located @thwill? Thanks!

EDIT:
Maybe there’s not a pre-compiled version available? I found this github version which looks to be newer and claims to be version 5.07.03.
sAppName = "MMBasic V5.07.03";

Looks like this is what we need to upgrade to a Pico 2 !!. Includes MMbasic though ?

PicoMite == MMBasic for Pico, there is no separate “operating system” vs. BASIC; it’s like an 80’s micro-computer where BASIC is the operating system.

The version that Clockwork Pi distribute is built from patched source to handle the PicoCalc’s specific display and I2C.

  • The patch unfortunately contains a fair number of (perfectly reasonable) whitespace adjustments which makes it more difficult to grok than it should be.
  • It’s possible some of the changes are unnecessary / due to a misunderstanding of how the PicoMite can be configured … but I may be wrong there, the Linux version of MMBasic is my wheelhouse.

Hmm, I’m not installing it myself but I think that link is the old no-graphics DOS version written by Geoff but I’m confused by the word “Windows” in the text ???

The latest Windows version (ported by Peter from the Colour Maximite 2 version) has graphics support, I have a link to the 5.07.03-b15 version: https://www.thebackshed.com/forum/uploads/matherp/2023-01-14_015534_MMBasic.zip

And if you ask on https://www.thebackshed.com/forum/ViewForum.php?FID=16 then someone can probably dig out a link to the latest version.

However like I said it’s somewhat moribund and there is no official manual.

Note if you want to run MMBasic on your DevTerm or uConsole you could try out MMBasic for Linux (MMB4L).

Best wishes,

Tom

1 Like
  • The patch unfortunately contains a fair number of (perfectly reasonable) whitespace

Yeah, it’s pretty awful, isn’t it? I didn’t try to clean it up, but it looks like there are very few actual code changes. Most of it is unnecesary whitespace noise.

Hopefully when someone in the community ports the latest version it will be cleaner. And a newer port seems necessary if we actually want to use a Pico 2W and wifi with MMBasic/PicoMite. (I guess that was never tested but to be fair Clockwork never claims to have tested it and they have a track record of… creative marketing text. The compatibility is probably more a theoretical thing since the hardware supports it. I imagine the same is true for some of the other languages supported. I saw someone recently posted asking about using Go since it was listed as supported, but that’s probably just a theoretical and untested thing too. Usually these sorts of things fall on community members to take on as projects, based on the other Clockwork device releases.)

  • The patch unfortunately contains a fair number of (perfectly reasonable) whitespace

Yeah, it’s pretty awful, isn’t it? I didn’t try to clean it up, but it looks like there are very few actual code changes. Most of it is unnecessary whitespace noise.

TBH the PicoMite source-code isn’t much better in places.

In maintaining MMB4L I initially went to and fro with trying to keep the source-code formatting as close to the original (MicroMite/MMBasic not PicoMite source) as possible so as to allow easier cross-pollination, but I have now abandoned that in favour of decent formatting and damn the consequences :wink: .

Best wishes,

Tom

1 Like

I still need to sign up on the MMBasic forums, but it seems like another thing your community and the Clockwork community shares is the reliance on links and useful information in the forum, which gets buried and makes it difficult for new users to find things. :wink: I bet your forums get a lot of the same questions asked over and over again too?

It’s a pretty common information problem though. Wikis (or some other form of documentation website) are usually proposed as a solution, but they’re only useful as long as they are maintained, and given enough time they usually end up falling out of date. Depending on how they’re organized they might still be useful for documentation and learning, but there’s no silver bullet solution to these sorts of information management issues. It really just comes down to how much time maintainers and fans are willing to put into it, and if interest dies down, whether anyone is willing to try to archive or document what was available for future posterity. The PocketChip device from Next Thing is a prime example of a device that was essentially wiped off the face of the earth when the company folded (and unfortunately also screwed over a lot of people), but there’s a lot of good information available because people scrambled to archive what was on the website and forums, and have (surprisingly) continued to be active in a community discord and elsewhere.

Regarding the Linux version – I read that it simulates various versions/platforms of MMBasic.

Haven’t tried it yet, but does that mean it actually displays the simulated graphics output in a window under Linux? If so, then it sounds like a project to modify the Linux version and support a new “virtual” display for the PicoCalc might be the way to go. That way we could get the 320x320 display and essentially have a dev platform with a simulator. I’m assuming if a community member here did something like that, a PR could be opened and it might eventually make it into the Linux version?

EDIT:
Ah, looks like the way to see the virtual screen would be to use the GRAPHICS commands to open a window? (Unless that automagically happens when using OPERATION SIMULATE ?)

Also, does the Linux version support the WEB commands? I didn’t see that mentioned in the readme on github, but I’m guessing anything supported by MMBasic will also be supported, and the docs on the github only show changes or additions?

EDIT2:
It was super easy to install the latest Linux MMBasic on my Devterm. Just needed to copy over teh aarch64 binary, put it in the path, and then the demo menu launcher worked fine and the demos run. Sound even works fine. Here’s a few screenshots I quickly grabbed from a VNC session. So as-is, it would be fine for starting to do devlopment targeting the PicoCalc, before the actual thing arrives. But it could really shine if the PicoCalc “platform” was one of the options, just to be able to target the 320x320 display size. There’s probably an easy way around that by forcing 320x320 in the program, but I haven’t dug in enough to check. :wink:


Thanks for the pointer to the (up to date) Linux version, @thwill.

1 Like

Hi Michael,

Regarding everything you said about “community”, couldn’t agree more. Everything goes out of date so quickly and depends on the whims and availability of a handful of enthusiasts. And you can’t really ask for more when people are doing it as a hobby. At least ClockworkPi have a fancy forum, The Back Shed (TBS) is stuck in the 90’s.

My intention is to add OPTION SIMULATE “PicoCalc” to MMB4L but I’ve got a number of plates spinning at the moment so it may well be a couple of months. Most of those programs you’ve looked at will be running using OPTION SIMULATE “PicoMiteVGA” or OPTION SIMULATE “Game*Mite” which both have 320x240 resolutions (one concern I have about the PicoCalc is that the bigger display will require 25% more RAM for a second display buffer which means that certain existing programs may be difficult to get working.) I also need to address the issue that in the current MMB4L the PRINT command always prints to the terminal and you have to use TEXT when writing to the graphics display, whereas by default the PicoMite terminal IS the graphics display.

Also, does the Linux version support the WEB commands? I didn’t see that mentioned in the readme on github, but I’m guessing anything supported by MMBasic will also be supported, and the docs on the github only show changes or additions?

I’m afraid not. I principally ported MMBasic to Linux so I could use it as a development platform for messing with games on the Colour Maximite 2, PicoMiteVGA and Game*Mite. I don’t really have an interest in the web stuff so it probably won’t get implemented by me, but contributions always gratefully accepted.

Best wishes,

Tom

1 Like

Thanks for the background. I was kind of surprised to see JSON supported while WEB wasn’t, but I guess JSON could be still be useful for reading from local files. :wink:

Seems like there are a few other folks out there looking to use the Pico 2W on the PicoCalc, so I imagine there will be plenty fo interest in using wifi. The WEB stuff, while somewhat basic (no pun intended… well, maybe, hehe) offers a way to have wireless communication between a device like the PicoCalc and a laptop or other device. So the PicoCalc could pull data from websites, allow someone to manipulate it, and then provide results via hosted web pages. I noticed forms and POST were supported to, to allow for pushing data from an external source into the PicoCalc. Ultimately it might be cool if it had some web scraping support built in, and probably other things, but the current WEB stuff allows for that if someone wanted to go that route.

I was already thinking that MMBasic wasn’t ideal for doing things with wifi and bluetooth/BLE (since bluetooth is not supported at all, in any version, as far as I could tell). The PicoCalc offers MicroPython for that (and maybe Lisp – not sure if it supports wifi/bluetooth or not as I haven’t checked). But since the PicoCalc also seems to work with ESP32 based devices with a Pico formfactor and pinouts, that seems like the way to go for anything requiring wireless communication. I’ve been really happy with what the ESP32 devices can do on that front, and the development tools and libraries are pretty well advanced at this point. I’ve been using PlatformIO and C++, but there’s the Arduino IDE and other options.

So conceptually, I’m thinking the PicoCalc can wear different “clothes” in terms of software:

  • with MMBasic, it can become a sort of classic/retro home computer
  • with MicroPython, it can be comfortable as an IoT sort of device and for folks who like Python.
  • with Lisp it can… make people who like using Lisp happy? :slight_smile:
  • with a cheap and easy hardware swap, it can become an ESP32S3 device and support all the usal Arduino platform features.
  • recently I saw someone got the LuckFox Lyra working too, and that seems to be an even more powerful piece of hardware that’s a drop in replacement for the Pico, and while it lacks wifi/bluetooth it appears to have USB host support and can run a full (?) linux distro like Ubuntu (but command line only, I think?)

In all cases, the PicoCalc a cool little device that looks like a graphing calculator, and has a keyboard, display, and potential for massive battery life built in. I’m excited to see what everyone does with it.

1 Like

Looks like python is around 10 times faster than MMBasic which is a shame, I’d rather use the latter as hate C/Python :enraged_face:

1 Like

Mine arrived today. Working great so far.

1 Like

Thanks for the background. I was kind of surprised to see JSON supported while WEB wasn’t, but I guess JSON could be still be useful for reading from local files. :wink:

It’s a hobby project, it doesn’t have to make sense :wink: . I’m not sure but the JSON function may simply have been present in the version of MMBasic that I originally forked from, or I just ported it because it peaked my interest.

Running under Linux of course you can just use the SYSTEM command to call out to curl if you want to pull something from the web.

  • with MMBasic, it can become a sort of classic/retro home computer
  • with MicroPython, it can be comfortable as an IoT sort of device and for folks who like Python.

I think the MMBasic community would argue that with the correct version of the firmware installed the PicoMite is perfectly good for IoT stuff, and certainly for microcontroller / GPIO applications … though the PicoCalc doesn’t look like it exposes much of the Pico’s GPIO.

  • recently I saw someone got the LuckFox Lyra working too, and that seems to be an even more powerful piece of hardware that’s a drop in replacement for the Pico, and while it lacks wifi/bluetooth it appears to have USB host support and can run a full (?) linux distro like Ubuntu (but command line only, I think?)

There is a version of the PicoMite firmware that provides USB host support.

1 Like

Looks like python is around 10 times faster than MMBasic which is a shame, I’d rather use the latter as hate C/Python :enraged_face:

It doesn’t surprise me:

  1. Python has rather more eyes looking at, and optimising it.
  2. Other than a pass to convert keywords to tokens, MMBasic is a true interpreter, whereas in the background Python “compiles” to bytecode and then interprets the bytecode (or executes it on a Python VM if you prefer).

The real question should not be “why is A, which I would like to use, ten times slower than B ?”, but “is A fast enough for the problem I wish to solve ?”. Interpreted MMBasic running on the Pico has a performance similar to machine code running on an 8-bit micro-computer, but with several times more memory and an effectively limitless mass storage device (SD card).

1 Like