Pi Pico Display for WiiM

cc_rider

Major Contributor
Joined
Oct 20, 2022
Messages
1,061
A fun Pi Pico project, using the 2" Waveshare LCD that plugs right into a Pi Pico.

It's not possible to do this with a MicroPython screen driver (it runs out of memory), but with a custom version of MicroPython with a driver written in C, it works nicely.

I've included the firmware binary in the attached .zip. Just copy it to the Pico after holding down the Pico's button while plugging it into your PC. Then edit the "secrets.py" file with your WiFi info and your WiiM's IP address. Load up Thonny, install all the Python files to your Pico, and you'll have a mini display of what's playing. Long lines will auto-scroll horizontally. If nothing is playing, it will turn the backlight off.

It should also work with this 2.8" Waveshare touchscreen, though I haven't tried it.

3OVGcO2hSyy-T-gz--xJxQ.jpeg

 

Attachments

  • wiim-pico-waveshare-2_inch.zip
    761.1 KB · Views: 10
Last edited:
A fun Pi Pico project, using the 2" Waveshare LCD that plugs right into a Pi Pico.

It's not possible to do this with a MicroPython screen driver (it runs out of memory), but with a custom version of MicroPython with a driver written in C, it works nicely.

I've included the firmware binary in the attached .zip. Just copy it to the Pico after holding down the Pico's button while plugging it into your PC. Then edit the "secrets.py" file with your WiFi info and your WiiM's IP address. Load up Thonny, install all the Python files to your Pico, and you'll have a mini display of what's playing. Long lines will auto-scroll horizontally. If nothing is playing, it will turn the backlight off.

It should also work with this 2.8" Waveshare touchscreen, though I haven't tried it.

View attachment 5369

I presume the pico doesn't have the memory to pull the Album art and render it on the little display (it is 320 x 240 color LCD?)
 
@cc_rider,

nice project!

I have also built this. But there's a problem: it only displays track information when the WiiM is playing streams from Napster or TuneIn. If the music comes from a local server, the display shows no information about it. Bug or feature?
 
@cc_rider,

nice project!

I have also built this. But there's a problem: it only displays track information when the WiiM is playing streams from Napster or TuneIn. If the music comes from a local server, the display shows no information about it. Bug or feature?
Oh, most definitely full of bugs, lol. I've actually only tested it on Tidal so far, but will work on adding some try/catch error handling, and testing on other sources.

Meanwhile, if anyone has a simple method of making clean cuts through hard plastic, I'm all ears. A utility knife works, but not cleanly.

IMG_1873.jpg
 
For those who already want to stream from a local server and want to use the display: If you use an app such as mconnectLite, track information etc. is displayed. :)
 

Attachments

  • IMG_2152.jpg
    IMG_2152.jpg
    284.3 KB · Views: 17
For those who already want to stream from a local server and want to use the display: If you use an app such as mconnectLite, track information etc. is displayed. :)
I've just updated the .zip archive in the first post, should now work with any stream, including TuneIn and "Open Network Stream" URLs.
 
Thank you very much. It now works with WiiM-App and the Minimserver/ConvoProxy on my Synology.(y)
 
I like it! I do however have questions.
1. How easy is it to customise what's shown on the screen, for example is album art possible?
2. DO I just install the software and it work, if not how is it configured?
 
My idea for the cover display: The display is probably too small to show cover and text information at the same time. But: The display has buttons. Couldn't they be used to switch between cover and text? Unfortunately, I don't know Python and therefore can't suggest how this could be implemented.

Configuration: The data for the network must be entered. Otherwise, only the files need to be transferred to the Pico. See post #1.
 
Zero chance of album art with MicroPython - not enough memory, screen is tiny, and the urequests module is primitive. Might be possible if written in C, but I'm not going there.

Plenty of other projects that do this with album art with larger screens and more powerful processors, from me and several others.

Not sure if this one still works:

This one should still work:
 
Hello, I have a problem with my display, could someone please modify the code for 3.5"?
My screen is black, but after uploading and editing secret.py, after a while you can see on my phone that it connects, the screen still remains dark and only stops playback. Below is info from thonny.
stack: 516 out of 7936
GC: total: 192896, used: 20576, free: 172320
No. of 1-blocks: 221, 2-blocks: 46, max blk sz: 113, max free sz: 10459
Stop
Stop
Stop
Stop

These stops repeat until I disconnect the device.


IMG_3218.JPEG
 
Back
Top