Picoware (Open-Source Custom Firmware)

No worries, we still have about 80k bytes left. I moved on to the SD card for now.

In the future I want to load apps from the SD card (almost like the CircuitPython version)

I’ve been updating the keyboard and working on the random NULL views issue.

@BlairLeduc in your southbridge API, is this the correct way to get the battery level as a percentage from 0 - 100?

uint8_t raw = sb_read_battery();
uint8_t percent = (raw * 100) / 255;

Lastly, do I need to poll, or simply using sb_init() and checking the battery occasionally is fine?

The battery value is a percentage already. The high-bit is set if the battery is charging.

Here is some example code:

1 Like

Awesome thanks! For some reason, I get a charge level of 123%. I am using one 18650 with 3200mAh.

Actually, let me update my STM first.

The driver returns the value received from the STM32. If it returns 123, the driver returns 123. :man_shrugging:

Haha I see. Updating the STM did the trick thankfully. I appreciate your help.

1 Like

Picoware v1.2 is HERE :fire: This mainly addresses a MAJOR bug in the view stack and adds some new features.

Check it out and let me know your thoughts!!

I finally got some time this afternoon to install Picoware and mess around with it. I think this has a lot of potential. My only real feedback is, please add some way to change the color scheme. I don’t hate what you have, but I would prefer a dark mode.

The things I use regularly that I would like to see are;

A basic text editor would be nice. I don’t think it needs much in the way of features, nor do I think anyone would need it to edit very large files, just something for note taking really.

A full fledged web browser is out of the question, but an RSS reader should be fairly easy to implement.

An epub ebook reader might be a bit more complicated, because epub’s are compressed files, you will need a library to decompress them.

2 Likes

Awesome, thanks for the feedback and for checking it out!!

Introducing dark mode :fire:

Users can turn it on and off within the system settings!

I’m also working on a File Manager (as one of Picoware’s applications) that will list the files from the flash and SD card, and allow users to view and edit them!

Thanks for the feedback and support.

6 Likes

My very old eyes appreciate you very much.

1 Like

Picoware v1.2.1 :fire: this contains Dark Mode, a basic File Browser, and more!!

1 Like

Picoware v1.2.2 :partying_face: this update includes many fixes. I think now I’ll update the Circuit Python version or maybe start the C/C++ SDK? Check it out and let me know your thoughts below.

2 Likes

Great news, thx for the updates and fixes!

Testing gave the following results:

  1. During boot device often hangs(pico2w). When after boot i press RIGHT key, device hangs. When Enter is pressed, menu is opened normally

  2. Weather app: if i request weather multiple times, application can hang until Enter is pressed, then it finally gets data. Consider getting weather from wttr.in API, there are cool options that allow you to get weather in plain text for today.

  3. File browser: when viewing text file or .bas file and listing till the end (DOWN key), screen focus jumps to the last symbol in the line. If line is long enough, user cannot see text in the beginning and cannot move to the beginning of thd line. Maybe it’s better to stay at the beginning of the line and list long lines only when RIGHT key is pressed.

  4. Static wallpapers. I can suggest static images that i made for testing MMBasic firmware.

1 Like

Wonderful feedback, it’s highly appreciated :fire:

On your first note, the right button has no functionality on the desktop (first view). That view does however attempt to connect to WiFi (async) and then fetch the time (sync), which is where (from my experience) hanging happens.

On your third note, could you give a screenshot of what you mean? My screen replacement is still in-route so I can’t see the full screen still :sweat_smile:

Here’s how it “should” work:

  1. File Browser app opens and displays root directory of the SD card
  2. When a directory is clicked on, it shows the contents of that directory
  3. When a file is clicked on, it shows the contents of the file. File viewing is in a “Textbox” view and has scrolling. If the amount of lines is less than the amount of allowed lines per screen, then the current line will be at the bottom of the screen, otherwise the currently line is set to the first line. The textbox should also word wrap so assume that the “cursor” (there’s not an actual one) is at the end of the current line
1 Like

Oh, i see.

Looks like i was wrong about “>” button, i tried few more times, no obvious correlation between the button and initial boot sequence. I’ll make few more tests with various custom options.

The file browser - it works like you described, the only thing i’d suggest to change is to keep cursor at the beginning of the line.

Tested file browser few more times. I launched it right after boot sequence. File list looks like encoding is broken or it seems that cursor is moved to the end of the line and short file names go out of the screen. Then i pressed LEFT key and launched the app again - it showed file list as expected. The same thing can happen if i go into some directory. It opens quite slowly, screen goes dark for a few seconds, there are about 50 *.bas files in the directory.

Opened “.bas file browser - the first line doesn’t look as expected

1 Like

Ohh I see now, something is definitely up with the File Browser. I’ll update the lists and file viewing. Thanks again for checking it out and reporting issues/leaving feedback/giving suggestions!

I just updated the Circuit Python version! It initializes the screen correctly now. That GP10 issue was from me not deinitializing the display correctly.

I still need to add the keyboard and fix some bugs before it’s “usable” on the Pico Calc, but you can see the REPL.

Circuit python will allow users to create apps/scripts without needing to reflash their board but will be slower and more prone to memory issues (we do have about 118k bytes free currently on a Pico W and 348k bytes free on Pico 2 W)

1 Like

I tried to compile uf2 from source (Pico 2W).

IDE: Arduino 1.8.19. Linux kernel 6.15

Libs: according to the manual. Lot’s of warnings, but compilation was done.

Got the following result:

Text is not shown in the menu no matter which theme is used. Menu navigation works tho. I think i missed something.