Picoware (Open-Source Custom Firmware)

Glad everything is working for you now :fire: I’m assuming the keyboard update did the trick? If so, did the BIOS 1.4 version work for you, or did you use the 1.2 version?

With your freezing in the Desktop view (the animation/first view), if your WiFi credentials are set, it will connect to your WiFi (non-blocking) and then sync the time from an API (blocking). Unfortunately, it can take up to 5 seconds to sync.

In the upcoming SDK release version, I think I can make that whole process asynchronous (non-blocking)

I’m on the East Coast of the U.S, so I’m also used to Fahrenheit, but the weather is in Celsius since it’s more universal. I’ll add a toggle/setting for that in the SDK release version too! Let me know if you have any other suggestions

Lastly, thanks for checking out Picoware and my YouTube content! It’s well appreciated🔥 it’s great to hear my tips/tricks/tutorials are helpful. Hopefully it saves a few people from breaking their screen haha

2 Likes

The instructions do not seem to cover how to enter web addresses in that directory. I have figured out how to enter stuff using the screen keyboard but how do you make entries to the browser?
For weather and GPS how is the location determined? Sometimes the fetch of the data takes a long time. Is this just the picocalc having trouble reaching the sites? Sometimes the weather response is immediate but sometimes it says it is fetching data. Thanks for your quick responses I hope others are enjoying playing with your software as much as I do. Thanks

Thanks for your feedback!!

The instructions do not seem to cover how to enter web addresses in that directory. I have figured out how to enter stuff using the screen keyboard but how do you make entries to the browser?

I’m not exactly sure what you mean here? There’s a not a web browser app (at least not currently)

For weather and GPS how is the location determined?

It get’s the location data from https://ipwhois.app/json/, which contains latitude, longitude, IP, and a few more fields. The Weather app then uses your info to fetch forecasts. One caveat is that it’s not your exact location, but the location of your service tower/nearby service station? (if that makes sense)

Sometimes the fetch of the data takes a long time. Is this just the picocalc having trouble reaching the sites? Sometimes the weather response is immediate but sometimes it says it is fetching data.

I’ve actually noticed that too. I’m not sure what it is but my first guess is WiFI related

Thanks for the quick response. One suggestion to the weather app. Could you please add wind. Thanks

1 Like

Unfortunately the current API doesn’t have wind. Here’s an example response:

{“time”:“iso8601”,“interval”:“seconds”,“temperature_2m”:“°F”,“precipitation”:“inch”,“rain”:“inch”,“showers”:“inch”,“snowfall”:“inch”},“current”:{“time”:“2025-08-16T17:00”,“interval”:900,“temperature_2m”:84.0,“precipitation”:0.000,“rain”:0.000,“showers”:0.000,“snowfall”:0.000}}

I think there are some other APIs that have wind (and more accurate data too). I’ll experiment with more options in the SDK release!

Let me know if you have more suggestions :fire:

Great evening! Major progress today

I added json

WiFi functions (scanning, connecting, etc)

and Games

I’m working on the applications now! Having some troubles with the http library but I should have it and the GPS and weather apps running tomorrow.

3 Likes

Holy @#$@%!

The amount of work that you’ve done is crazy man!

People, this dude has not only done crazy amounts of work for the Picocalc, Flipper Zero, RaspberryPi, but this also in C, C++ and in Python, Veeeeeerrrrrrry NICE indeed!

Please continue, I am playing around with your Picoware, what a surprising and fun thing!

Cheers Mate!

4 Likes

Thank you, thank you, thank you!! Glad to hear you’re using Picoware and you find it interesting :clinking_beer_mugs: thanks for checking out my other projects too!! The Flipper Zero is actually what got me into embedded systems. This time last year I didn’t even know what a microcontroller was haha.

Let me know if you have any suggestions or feature requests :fire:

2 Likes

The current build does not work with uf2loader. :frowning:

Not your fault though, and I fell to this myself. The interrupts are disabled when chaining from the boot loader, a side-effect of the way the RP2350 works. So far, found that you need to build with SDK 2.2.0 or enable IRQs at the top of your main function.

I feel awkward asking you for this, but I have become addicted to uf2loader.

1 Like

I tried picoware from uf2loader and it somehow managed to zero out the entire flash memory on my pico2. I’m sort of impressed. Don’t mind me, I think I did something dumb. :smiley:

1 Like

Haha well, thanks for giving it a try. The current builds ( Picoware/builds at main · jblanked/Picoware · GitHub ) are from the Arduino IDE version and I was using the 4.6.0 release of the Arduino-pico core ( Releases · earlephilhower/arduino-pico · GitHub ) , which was built on SDK 2.1.1. The SDK version is almost ready to go and I am using 2.2.0, so it should hopefully work with the uf2loader :fire:

As soon as the SDK version is ready, I’ll give the uf2loader (and a few other projects) a try too!! The uf2loader looks like it’ll save a TON of time. The PicoCalc community really has a great group of developers :fire:

4 Likes

Great day! I finally got the HTTP class done. That was definitely a major headache.

I need to cleanup a few of the games and update the documentation, then I’ll release this SDK version.

1 Like

It’s ready!!

5 Likes

:fire: :fire: :fire: :fire: :fire: :fire:

Great news!

1 Like

I attached tape to my cracked screen as a trial and found it added additional lines. Is there a special way to tape the screen down to avoid any damage. Didn’t see it in your video. Thanks

I noticed the same when I applied the tape hack to my (now replaced) cracked screen. Since it’s already damaged, the more you “mess” with it, the worse it’ll get, although since you “locked” the screen in place, I wouldn’t expect any other injuries to the screen.

Luckily the replacement process was pretty simple and much faster than the PicoCalc shipping times (7 business days instead of 3 months)

What is the status on compatibility with CircuitPython 9.x.x or 10.x.x?

I have tried with CP 9.2.8 + the files under Picoware/src/CircuitPython/

however I have only tried this on RPi Pico2 and I can’t get it to work, the screen flashes a few times and ends up going completely black.

I am very interested in support for CircuitPython, display and kbd/bios libs files.

Thank you for the great work you and others do to develop software for PicoCalc :+1:

1 Like

Thanks for checking out Picoware!!

CircuitPython is still a work in progress. All the libraries and necessary modules are there though.

If you have any Python experience, definitely feel free to play around with it! Any help is well appreciated

1 Like

I’ve been working on the C/C++ SDK version lately. I’m about 100 hours in or so at getting an application loader to work (kind of like the Flipper Zero apps). The latest progress is I got it to load and run files with my “own file format”, a .pwa file. The hardest part is translating/generating the right ARM instructions, and I don’t think this has been done before, so I don’t even know where to look for guidance :man_shrugging:t5:

1 Like

Have a look at how I manage the bootloader->UI step in uf2loader. The UI is simply a standard pico-sdk app compiled as no-flash - it runs entirely in ram. My stage3 uses a custom linker script so that all it’s ram usage is at the top of ram, letting it safely load in the uf2 for the UI where it wants to go, and then jumps to it.

The most complicated part is simply parsing the uf2… And I’ve already done that bit!

1 Like