Project with PeppyMeter/PeppySpectrum Screensaver Plugin for VOLUMIO

Super thank you. Just loaded it.

I have this problem when instal PeppyMeter. Please help me to fix it

Unfortunately, the picture is not sharp, but I think it is due to the ALSA configuration, set it to DSD native

Hey there, thanks for this great project. I managed to get it working, I only have one issue: I can’t force 1920x1080 resolution. My tv is 4k and I can’t get any other resolution. I edited the userconfig.txt according to the 3rd post. Any help would be appreciated. Thanks!

EDIT: got it working eventually, this is how the config files are edited:

/boot/config.txt

framebuffer_width=1920
framebuffer_height=1080

/root/userconfig.txt

disable_overscan=1
hdmi_group=2
hdmi_mode=87
hdmi_cvt 1920 1080 60 3 0 0 0
hdmi_drive=2

Titles and bitrate aren’t still displayed while playing via tidal connect.

Titles and bitrate aren’t still displayed while playing via tidal connect.
Tidal!tidal2

Small update
Project with PeppyMeter Screensaver Plugin for VOLUMIO v2.9xx and 3.0xx buster - #738 by Gelo5?

1 Like

Hi … short question … do you find a way with extra oled display and peppymeter working?
When I start my extra python3 script for the oled > peppymeter don’t start anymore … :frowning:
Any idea? Many thx …

Peppy is a screensaver, running a python script in a while loop prevents the screensaver to become active. Hence Peppy assume your system is active. If you use the plugin MPD_OLED it will work.

ok thx … i will get it a try … thx a lot :slight_smile:

Short question: Is there a way to show Temp and CPU from Raspberry?

Short answer: Yes. See in the VOLUMIO plug-ins (system info by @balbuze )

Long answer :smile:
If you want to display it on your OLED:

import busio
import adafruit_ssd1306
import gpiozero as gz
import time
import psutil

from board import SCL, SDA
from PIL import Image, ImageDraw, ImageFont

# Create the I2C interface.
i2c = busio.I2C(SCL, SDA)

# Create the SSD1306 OLED class.
# The first two parameters are the pixel width and pixel height.
disp = adafruit_ssd1306.SSD1306_I2C(128, 64, i2c)

# Clear display.
disp.fill(0)
disp.show()

# Create blank image for drawing.
# Make sure to create image with mode '1' for 1-bit color.
width = disp.width
height = disp.height
img = Image.new("1", (width, height))

# Get drawing object to draw on image.
draw = ImageDraw.Draw(img)

# Load fonts.
fontb = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf", 12)
fontc = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf", 14)
fontd = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf", 16)
fontk = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf", 30)

def cputemp():
	cmd = gz.CPUTemperature().temperature
	result = str('{0:.1f}'.format(cmd))
	return result
	
def cpuload():
	cmd = psutil.cpu_percent()
	return str('{:.1f}'.format(cmd)).zfill(4)
	
draw.text(( 0,  0), "CPU:"     , font=fontb, fill=255)   
draw.text((  40, 0), cputemp() , font=fontk, fill=255)
draw.text((115, 0), "°"        , font=fontk, fill=255)

draw.text((  30, 32), cpuload(), font=fontk, fill=255)
draw.text((110, 40), "%"       , font=fontd, fill=255)

disp.image(img)
disp.show()

Marvellous! Just what I’ve been thinking of doing but had no time until after Christmas. Saved me a lot head scratching - thanks!

Speaking of time, that would be my main objective, a simple clock display on the OLED. Any pointers to save me even more time! :wink:

Clock won’t work as this can only run in a loop, causing peppy to stop loading.
This is just a snippet of code, untested and as starting point.

from datetime import datetime
from board import SCL, SDA
from PIL import Image, ImageDraw, ImageFont

import adafruit_ssd1306
import busio

WIDTH = 128
HEIGHT = 64
IMGHEIGHT = 64#45
IMGWIDTH = 128#45
rows = 80

# Create the I2C interface.
i2c = busio.I2C(SCL, SDA)
# Create the SSD1306 OLED class.
# The first two parameters are the pixel width and pixel height.
disp = adafruit_ssd1306.SSD1306_I2C(WIDTH, HEIGHT, i2c)
# Clear display.
disp.fill(0)
disp.show()
# Create blank image for drawing.
# Make sure to create image with mode '1' for 1-bit color.
width = disp.width
height = disp.height
img = Image.new("1", (width, height))
# Get drawing object to draw on image.
draw = ImageDraw.Draw(img)

fontb = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf", 12)
fontc = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf", 24)

def CenterText(inpstr,font,offset,ypos,fill):
	draw.text((getXPosCenterStr(inpstr,offset,font), ypos),inpstr, font=font, fill=fill)

def SetTime():
	now = datetime.now()
	sTime = now.strftime("%H:%M")
	sDate = now.strftime("%d-%b-%Y")
	CenterText(str(sTime),fontc,0, 17, 255)
	CenterText(str(sDate),fontb,0, 52, 255)

SetTime()
disp.image(img)
disp.show()

Thank you. :+1:

Great :slight_smile:
Many thx !!!

Can someone provide a link to install Peppymeter on x86? I can’t find something😭

2 Likes

there is none :frowning:

Hi peppy team,
First of all, thanks for the awesome work you do for this great addition to Volumio.
I do have a small issue. Peppy is installed and running fine when I select random or one of the meters in the list. As soon as I select “List”, peppymeter doesn’t start.
The problem occurs with the set of pictures and meters.txt downloaded from post 107 and from a set of pictures I selected from all the 1920x1080 made available in this entire post and modified meters.txt.
The images are uploaded to /data/plugins/miscellanea/peppy_screensaver/peppymeter/custom_4 (1920x1080)
Volumio, latest version 3.378, Pi 4 4GB, Screen is a Waveshare 13.3inch 1920x1080 HDMI LCD IPS Display Capacitive
Touch display plugin is set to 120 seconds screensaver timeout.
Peppymeter 60 seconds screensaver timeout and 60 seconds for the random interval.

@davinci
Can you validate if the list is properly populated with the correct items and that all listed items are available?

@Wheaten,
Yes it is when I select “List”, the different meters are displayed in the same sequence as in meters.txt

That’s strange and all available VU-meters can be manual selected?
As i have only ran into this, due to a missing file or error in meters.txt.