# Picoware - custom app error message 'Could not load application'

**URL:** https://forum.clockworkpi.com/t/picoware-custom-app-error-message-could-not-load-application/22155
**Category:** PicoCalc
**Tags:** help
**Created:** [April 19, 2026, 7:54pm UTC](https://forum.clockworkpi.com/t/picoware-custom-app-error-message-could-not-load-application/22155 "2026-04-19T19:54:26Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![Xander](https://avatars.discourse-cdn.com/v4/letter/x/f05b48/32.png) [@Xander](https://forum.clockworkpi.com/u/Xander)
#### Post date: [April 19, 2026, 7:54pm UTC](https://forum.clockworkpi.com/t/picoware-custom-app-error-message-could-not-load-application/22155/1 "2026-04-19T19:54:26Z")

</div>

Hi,

A complete newbee to any community ever here! Please be understanding if I’m breaking any house rules.

Having been frustratingly unsuccessful trying to display ‘catfact.ninja’ API json data on the PicoCalc using Webmite (MMBasic and a Pico 2W installed), I thought I’d try a micropython approach using JBlanked’s latest Picoware.

I wrote a simple script that works absolutely fine as intended with Windows Thonny IDE connected to the Pico, but when I try to run the .py file (saved in the SD card’s app directory) using the Picoware Applications Library menu, I get ‘Could not load application’.

I’ve tried reloading the firmware, using a different (Kingston) SD card, using the firmware’s native editor to rewrite & save the script, and running an .mpy file (generated using ‘mpy-cross’), but I unfortunately keep getting get the same error message. Please can anyone point me in the right direction?

Many thanks in advance.

---

<div class="post-metadata">

### Author: ![jblanked](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/jblanked/32/17438_2.png) [@jblanked](https://forum.clockworkpi.com/u/jblanked)
#### Post date: [April 19, 2026, 9:01pm UTC](https://forum.clockworkpi.com/t/picoware-custom-app-error-message-could-not-load-application/22155/2 "2026-04-19T21:01:28Z")

</div>

Hey, thanks for checking out Picoware. Could you paste your code here (or a link to it on Github)? More than likely you either don’t have the required lifecycle methods and/or have a testing block still in the code.

---

<div class="post-metadata">

### Author: ![Xander](https://avatars.discourse-cdn.com/v4/letter/x/f05b48/32.png) [@Xander](https://forum.clockworkpi.com/u/Xander)
#### Post date: [April 19, 2026, 10:01pm UTC](https://forum.clockworkpi.com/t/picoware-custom-app-error-message-could-not-load-application/22155/3 "2026-04-19T22:01:32Z")

</div>

Hi, many thanks for getting back to me so quickly, it’s greatly appreciated.

I’ve successfully completed a few raspbian-based python Zero 2W projects e.g. mp3 file player, mp3 radio, photo slideshow, API data, musical tones, clock & timers, scientific calculator etc.(Nothing browser based.) I decided to experiment on how hard I can push a Pico 2W to recreate as many of the capabilities mentioned above as possible (with the advantage of near instant boot-up and longer battery life), so I thought a PicoCalc would make a good starting platform.

As Picoware’s wifi automatically boots up I thought I might just get away with the following code, but it’s now become clear to me thai it isn’t as simple as that (especially with very limited RAM):

…

import urequests  
import time

url = “[https://catfact.ninja/fact](https://catfact.ninja/fact)”  
response = urequests.get(url)

if response.status\_code == 200:  
data = response.json()  
print(f"Cat Fact: {data[‘fact’]}")  
else:  
print(“Failed to retrieve data”)

response.close()

…

---

<div class="post-metadata">

### Author: ![jblanked](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/jblanked/32/17438_2.png) [@jblanked](https://forum.clockworkpi.com/u/jblanked)
#### Post date: [April 19, 2026, 11:08pm UTC](https://forum.clockworkpi.com/t/picoware-custom-app-error-message-could-not-load-application/22155/4 "2026-04-19T23:08:31Z")

</div>

Ohh I see now! You just need the lifecycle methods. Here’s an example of using HTTP requests:

> <https://github.com/jblanked/Picoware/blob/main/builds/MicroPython/apps_unfrozen/cat-fact.py>

---

<div class="post-metadata">

### Author: ![jblanked](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/jblanked/32/17438_2.png) [@jblanked](https://forum.clockworkpi.com/u/jblanked)
#### Post date: [April 19, 2026, 11:09pm UTC](https://forum.clockworkpi.com/t/picoware-custom-app-error-message-could-not-load-application/22155/5 "2026-04-19T23:09:43Z")

</div>

This guide explains how Apps work:

> <https://github.com/jblanked/Picoware/blob/main/guides/Apps.md>

Libraries are here:

> <https://github.com/jblanked/Picoware/blob/main/guides/Libraries.md>

And tutorials are here:

> <https://github.com/jblanked/Picoware/blob/main/guides/Tutorials.md>

---

<div class="post-metadata">

### Author: ![Xander](https://avatars.discourse-cdn.com/v4/letter/x/f05b48/32.png) [@Xander](https://forum.clockworkpi.com/u/Xander)
#### Post date: [April 19, 2026, 11:48pm UTC](https://forum.clockworkpi.com/t/picoware-custom-app-error-message-could-not-load-application/22155/6 "2026-04-19T23:48:48Z")

</div>

Thanks again, this should keep me going for a while. I’m 63 years old and still bumbling my way up new tech learning curves 😉

Btw, is mp3 internet radio achievable with Picoware? (I already have a VS1053 codec board standing by if I need it!)

---

<div class="post-metadata">

### Author: ![jblanked](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.clockworkpi.com/jblanked/32/17438_2.png) [@jblanked](https://forum.clockworkpi.com/u/jblanked)
#### Post date: [April 20, 2026, 3:03pm UTC](https://forum.clockworkpi.com/t/picoware-custom-app-error-message-could-not-load-application/22155/7 "2026-04-20T15:03:27Z")

</div>

> [@Xander](#):
>
> Btw, is mp3 internet radio achievable with Picoware? (I already have a VS1053 codec board standing by if I need it!)

It’s achievable on a Pico 2W maybe, but not implemented yet.

---

<div class="post-metadata">

### Author: ![picouser](https://avatars.discourse-cdn.com/v4/letter/p/e495f1/32.png) [@picouser](https://forum.clockworkpi.com/u/picouser)
#### Post date: [April 20, 2026, 3:52pm UTC](https://forum.clockworkpi.com/t/picoware-custom-app-error-message-could-not-load-application/22155/8 "2026-04-20T15:52:11Z")

</div>

It is available on the WebMite MMbasic S/W but is becoming less useful. Most internet radio stations are now using protocols that the VS1053 can’t decode directly. In some cases this is complex wrappers (HLS) that would have to be decoded before passing the stream to the VS1053. Others use a codec which isn’t supported at all by the VS1053 (Opus). Getting anything remotely like global coverage is probably outside the scope of a uP like the RPs
