Picoware (Open-Source Custom Firmware)

Thanks for the warm welcome and the reply.

I think I may see the issue. In my initial post, I quoted the wrong file name that I was giving me issues. It is “text editor.py” that won’t let me enter any shifted characters. I just tried the python editor “editor.py” and it does let me enter shifted special characters except ~ and |.

1 Like

That’s really great news!! I was one of the ones who broke it within an hour of getting it haha

Awesome! Thanks for checking out Picoware and welcome to the community

If you’re referring to Picoware applications, check out Picoware/builds/MicroPython/apps at main · jblanked/Picoware · GitHub (there’s an on-device App Store that downloads those too)

If you’re referring to the PicoCalc in general, this repository may help GitHub - jblanked/awesome-pico-calc: A collection of awesome resources for the PicoCalc device.

Ohh I see now! I’ll add those in for the next release. Thanks for reporting

Great, thanks for confirming! I’ll add those in too

NEW Picoware release, v1.5.4 :partying_face:

This is an update to the MicroPython version which adds:

  • UART class
  • App Store app to have an option to download available apps one-by-one
  • new button constants and handling for back tick, pipe, and tilde buttons
  • Serial Terminal app

and a few more things :fire:

Check out the new release here:

5 Likes

Let me know how I should post the code for the calculator app.

Hey, you can submit a pull request: Pull requests · jblanked/Picoware · GitHub

First off, Really nice work on picoware! Impressive stack!

I really have been enjoying coding directly on the device in MMbasic, but I’m now hooked on the key bindings.

When using picoware’s editor the biggest pain point is the “backspace” becomes “back”. Maybe it could be escape instead?

I’ll look into putting together a few other tweaks that might make it more familiar for users coming from the MMbasic editor, such as F1 to save and close and adding options for page up/down.

Would it be realistic to have a F2 Run option directly from The editor?

let me know if you think these would be worthwhile changes to the existing editor or better as a fork into a different editor app! I know changing major things like the back behaviour might affect your other platforms and existing docs.

1 Like

Hey man, thanks for checking Picoware!!

All of the current apps use the BACK button to return back to the previous app, so it’s not appropriate to change the key bindings for a specific app, especially since not all of the supported devices have an ESC key.

I think an F2 key for running the app directly could be realistic for sure, though users can currently just back out of the editor and run their app from the Applications menu.

1 Like

It’s been a really busy week with the birth of my son on the 3rd, but I managed to get some work in this morning and a little bit yesterday.

Here’s a new Picoware release, v1.5.5 :partying_face:

What’s Changed:

  • Switched to using PIO for LCD operations (in the SDK and MicroPython versions)
  • Added a new picoware_sd C module to the MicroPython version and updated the Storage class to use it
  • Created C modules to implement the FAT32/SD driver into MicroPython’s Virtual File System
  • Froze all external apps and created a script to freeze external apps

Check out the new release here:

9 Likes

Congratulations on the birth of your son!

6 Likes

Nice to hear that I’m not the only one who doesn’t like Back(space) key to exit current action. Picoware seems to not make good use of full PicoCalc keyboard, especially with that onscreen keyboard, so one cannot enter text with Enter key as it repeats the last key instead.

I think for now we’ll have to resort to some form of a patch for official Picoware release.

1 Like

In another thread I tried to say “Congratulations!” and ran up into the minimum character limit, so I said the same exact thing as you there.

1 Like

Thank you so much!!

Well what key do you think is appropriate? The LEFT d-pad key? The ESC isn’t practical, other than on the PicoCalc. For users with custom boards, Picoware requires 6 buttons only (or a Touch Sceeen), so the system is built around that.

If you’re using the MicroPython version, Picoware does make full use of the PicoCalc’s keyboard. Using the on-screen keyboard is optional, you can instead just type using the keyboard. The on-screen keyboard is mandatory because of Picoware’s support of custom boards with only 6 buttons. With the on-screen keyboard, you used the d-pad to move to the character you want, and then click ENTER to add it to the response. It also has a SAVE key which when hit will trigger the keyboard callback.

Contributions are well welcomed! Please submit a pull request with your requested/suggested changes and I will review them.

I would recommend supporting different sets of key mappings for different devices, because while I understand wanting Picoware to support a wider variety of devices, using Back(space) to exit out of something is non-optimal when other keys are available IMO.

3 Likes

That’d be something I’d be happy to support actually! Contributions are welcomed. It’s just not as straightforward as changing one file, since every app currently uses the BACK key, and developers are allowed to choose their buttons with their app(s)

I mean it is labeled BACK. In my opinion, the (space) is just inferred and since the Calc has a DEL (for delete), it makes more sense to use it for deleting and the BACK key for backing out of views

I myself use BACK for delete-left and DEL for delete-right, like most PC applications.

4 Likes

I’m still dying waiting for mine to arrive, but was wondering about the on screen keyboard. I saw that another user wanted an option to disable it and I am wanting the same feature.

Would it be possible to map the F keys to contextual app functions? Then you could use just slice at the bottom of the screen to indicate what the F keys are currently bound to, I feel it would open the door to more sophisticated functions being only 1 key press away. It would also solve the Backspace, Delete, and Back key problems as you’d just map an F key to back out of menus/apps/views.

It’s about a 3-4 month wait it seems like, best of luck!

I wouldn’t call it a problem, just different people have different preferences is all :grinning_face:

Well, not all supported devices have F keys but I’d be open to supporting that key mapping for the PicoCalc if someone submitted a pull request.

Maybe instead we just add button map in the settings?

New Picoware review/tutorial of the Serial Terminal and Web Server

3 Likes

With regards to the keyboard use in Picoware: the most important perspective is the one of the end user. Let’s imagine a user who got a PicoCalc and they want to use some software running under Picoware. And there is a strange looking onscreen keyboard that obscures all the view. And when they made a typo and press Back key to erase last character and they are being thown out of an entry field, on a previous screen, with whole text lost - would they accept an explanation that “there are some other devices that don’t have a full keyboard so you have to re-learn using your device keyboard”?

I get that there is a programmer perspective as well and platform fragmentation is a problem. So what I think should be done is for Picoware to expose mechanisms for easy developing software once for several pico-based platforms.

Specifically, I would (and I will if time allows):

  • Define key codes for arrows, back, ok as constants, so that for Picocalc its D-pad, Esc, Enter and for non-keyboard devices it’s whatever they have
  • Define a constant that tells whether the device has full keyboard or not, so that the developer may have their code behave accordingly
  • Define some constant for the key names, so that e.g. the software prints “press Enter” or “press CENTER” according to the device characteristics
  • Have a standardized text entry function that displays onscreen keyboard only when the device doesn’t have it. Application developer wouldn’t need to think about that, they would just call the text entry function

It would be pretty straightforward in C: a bunch of #defines or const definitions.

For Python it would require a small class that would hold device characteristics, I’m not completely sure.

By the way - don’t treat my post as a criticism to Picoware - you are doing a great job and the whole thing is more and more useful in each release. I just thing that Picoware could be expanded to allow developer to write once and run on several device types.

1 Like