Display screen for WiiM pro

Ok, let's have a look on it:

Code:
fbset -i

mode "800x480"
    geometry 800 480 800 480 32
    timings 0 0 0 0 0 0 0
    rgba 8/16,8/8,8/0,8/24
endmode

Frame buffer device information:
    Name        : simple
    Address     : 0x3ea81000
    Size        : 1536000
    Type        : PACKED PIXELS
    Visual      : TRUECOLOR
    XPanStep    : 0
    YPanStep    : 0
    YWrapStep   : 0
    LineLength  : 3200
    Accelerator : No

How must these values be used and where?

Looks like RGB format is correct. So RGBA with 888.
This fits in how Images are generated in the python code.

If you still get the 'seek error: [Errno 28] No space left on device' error then this is because the framebuffer (fb var) addressed is out of bounds.
And that is quite logical since the 800x480 resolution is quite smaller than the 1024x600 framebuffer size from the code.

All images generated in code + framebuffer size must be changed into 800x480 sizing:
fbw, fbh = 800, 480 # framebuffer dimensions
fb = open("/dev/fb0", "wb") # framebuffer device

Also the '4 *' addressing in seek/write results in 4 times larger adressing.
I had to change all the '4 *' into '2 *' (so half) the size.

If you still encounter the out of bounds error try to fiddle a bit with an example or try smaller sizing in addressing the framebuffer in the code.
That's the way how I found out the correct addressing/resolution for my setup.
 
Thank you very much. Now I get a yellow screen with no further content when I call wiim.py. When I exit wiim.py, I get this error message:

Code:
Exception ignored in: <coroutine object async_main at 0x7fb70d4240>
Traceback (most recent call last):
  File "/home/pi/wiim/./wiim.py", line 463, in async_main
    await pollingloop(wiim_description_url, service)
  File "/home/pi/wiim/./wiim.py", line 349, in pollingloop
    result = await info_action.async_call(InstanceID=0,Channel="Master")
  File "/usr/local/lib/python3.9/dist-packages/async_upnp_client/client.py", line 637, in async_call
    ) = await self.service.requester.async_http_request("POST", url, headers, body)
RuntimeError: coroutine ignored GeneratorExit

And please excuse my questions. I am not a programmer. ;)
 
Ok, the screen sizes had to be adjusted in other places. Then the error message is gone, but the screen is still only yellow.
 
Guys, could you please continue this via an offline conversation/DM? Debugging this issue to this degree is a bit off topic for the forum. Thanks
 
Thank you very much. Now I get a yellow screen with no further content when I call wiim.py. When I exit wiim.py, I get this error message:

Code:
Exception ignored in: <coroutine object async_main at 0x7fb70d4240>
Traceback (most recent call last):
  File "/home/pi/wiim/./wiim.py", line 463, in async_main
    await pollingloop(wiim_description_url, service)
  File "/home/pi/wiim/./wiim.py", line 349, in pollingloop
    result = await info_action.async_call(InstanceID=0,Channel="Master")
  File "/usr/local/lib/python3.9/dist-packages/async_upnp_client/client.py", line 637, in async_call
    ) = await self.service.requester.async_http_request("POST", url, headers, body)
RuntimeError: coroutine ignored GeneratorExit

And please excuse my questions. I am not a programmer. ;)

No worries.

The yellow screen is a start. :) It's the default blank/clear screen by the application.

Looks like there are issues communicating to your Wiim.
Is the Wiim in the same network?
Is it 'on'? It must be on + findable in network.
I always put it on + playing some music while debugging the code.
When the Wiim is not playing (but on/findable!) the display should show the current date/time.

Line 349 in your code is it?:
result = await info_action.async_call(InstanceID=0,Channel="Master")

I disabled the service from auto start on reboots of the pi:
'sudo systemctl disable wiim.service'
So that always 1 instance of the app is running by manually starting it with the './wiim.py' cmd.

Further use print statements when debugging. Lots of it. for example:
print("source: ", source);
print("target: ", target);
 
Last edited:
Is it possible to have a display screen like a mini LCD screen, attached to the WiiM to view Artist and song titles etc. While streaming. If so, how? I know you can use an echo show in a group, but I am talking about an option that does not use an Amazon
LMS + iPeng on a vintage iPad
 

Attachments

  • IMG_4779.jpeg
    IMG_4779.jpeg
    420.7 KB · Views: 16
Hello,

It would be nice if someone could post a wiim.py that works with the "official" 7"-Raspberrydisplay. ;) TIA
 
Hello,

It would be nice if someone could post a wiim.py that works with the "official" 7"-Raspberrydisplay. ;) TIA
The HDMI version should work. It doesn’t really require HDMI, but does require an XWindow desktop.
 
Hello,

Thank you for the wiim.py. I will take care of the necessary values. But for now it's about an error message when wiim.py is terminated:

Exception ignored in: <coroutine object async_main at 0x7f8e5d6440>
Traceback (last call):
File "/home/pi/wiim/./wiim.py", line 366, in async_main
await subscribe(device, service)
File "/home/pi/wiim/./wiim.py", line 316, in subscribe
device = await create_device(description_url)
File "/home/pi/wiim/./wiim.py", line 215, in create_device
return await factory.async_create_device(description_url)
File "/usr/local/lib/python3.9/dist-packages/async_upnp_client/client_factory.py", line 72, in async_create_device
root_el = await self._async_get(description_url)
File "/usr/local/lib/python3.9/dist-packages/async_upnp_client/client_factory.py", line 394, in _async_get
) = await self.requester.async_http_request("GET", url)
RuntimeError: Coroutine has ignored GeneratorExit

I have used the following raspbian-image:

2023-12-05-raspios-bullseye-arm64-lite.img.xz

Many regards and thanks for your help! :)

I couldn't write that to you as a PN. ;)
 
Is it possible to have a display screen like a mini LCD screen, attached to the WiiM to view Artist and song titles etc. While streaming. If so, how? I know you can use an echo show in a group, but I am talking about an option that does not use an Amazon show device.
IMG_1880.jpeg
 
It would be nice auto-scroll was implemented for long lines like in the Pico project. Classic titles etc. are often very long.
 
My Wiim mini display based on WiiM HDMI project on a 4" screen.
-Added source lo for Qobuz, Airplay and Spotify
-Added Wiim logo
-Added hi res logo if stream > 16 bits
-Added progress bar.
Based on the Wiim API pause/play etc functionality can also be implemented on touch screen enabled device.
447674262_10211199911391346_3222702782928390281_n.jpg
 
My Wiim mini display based on WiiM HDMI project on a 4" screen.
-Added source lo for Qobuz, Airplay and Spotify
-Added Wiim logo
-Added hi res logo if stream > 16 bits
-Added progress bar.
Based on the Wiim API pause/play etc functionality can also be implemented on touch screen enabled device.
View attachment 8099
Looks nice!
 
Back
Top