Thank you for your donation!


Cloudsmith graciously provides open-source package management and distribution for our project.


esp32 wireless display for moOde, at only $5?
#1
there are various inexpensive esp32 based displays on aliexpress,  starting from $5.27   with built in esp32  (check bundle deals)
I'm not familiar with this, but is there a way to use them as wireless display for moode?  At least to show mdp info,   or to get basic controls like switching internet radiostations etc.
Reply
#2
(04-17-2025, 07:20 PM)rix81 Wrote: there are various inexpensive esp32 based displays on aliexpress,  starting from $5.27   
I'm not familiar with this, but is there a way to use them as wireless display for moode?  At least to show mdp info,   or to get basic controls like switching internet radiostations etc.

Sounds like a great DIY project for someone, what my dad used to call “a learning experience” Smile

However, once you start adding up all the other stuff you need—-powering it, encasing it, learning how to program it, developing a communication protocol between it and your moOde player, etc.—-you’ll see the appeal of the official 7-in touch screen. At least I did.

Regards,
Kent
Reply
#3
(04-17-2025, 07:20 PM)rix81 Wrote: there are various inexpensive esp32 based displays on aliexpress,  starting from $5.27   
I'm not familiar with this, but is there a way to use them as wireless display for moode?  At least to show mdp info,   or to get basic controls like switching internet radiostations etc.

https://github.com/dheijl/M5PaperMpdCli does something similar.
Reply
#4
I was hoping that someone already did it. My knowledge of programing is zero, but chatgpt swears that it(he) will provide me working code. Hmmm.... doubt.
I'm going to buy this display. And then will see,

dheijl - interesting, sadly it's only text ui
Reply
#5
(04-18-2025, 04:38 PM)rix81 Wrote: dheijl - interesting,  sadly it's only text ui

I hate Gui programming, and will go to great lengths to avoid it...
Reply
#6
my display was delivered.
chatgpt was able to generate code to display current station and song,   but with only with text ui.    he can't do Gui properly (
Reply
#7
Hi, 

I used this project as a template and recreated it with modifications (using ESP01 with serial data-connection instead of parallel, etc). Working fine. Probably a good starting point. Thanks to Github-User nopnop2002.[Image: 68948369-1349a280-07fb-11ea-952d-1b2a1f5c13df.jpg]


Attached Files Thumbnail(s)
       
Reply
#8
I made another one with a beautiful VFD. Here is a video.

[video=youtube]https://youtu.be/aenBZFlNDXU[/video]


Attached Files Thumbnail(s)
   
Reply
#9
Hello everyone,


the delivery of the MAX7219 modules arrived. I have connected six pieces 32x8 dot matrix modules together (~80cm length) and control them via an ESP32-C3. (The MAX7219 looks awsome) Instead of contacting the MPD directly, I used the moOdeaudio LCD updater this time. I was very lazy and used Tasmota instead of my own sketch. Data exchange takes place via MQTT. I don't know the Python syntax well, so improvements are welcome. (In particular, sending the MQTT message should be done directly via Python, not via Bash commands.)

[video=youtube]https://youtu.be/man-YX2euvE[/video]

moOdeaudio[LCDupdater] ----> MQTT-Broker[mosquitto] --WIFI--> (ESP32)Tasmota[Scripting] --> MAX7219

/var/local/www/commandw/lcd_updater.py
Code:
#!/usr/bin/python3
#
# SPDX-License-Identifier: GPL-3.0-or-later
# Copyright 2014 The moOde audio player project / Tim Curtis
#

#
# Stub script for lcd-updater.sh daemon
#

import subprocess
import html

file_path = "/var/local/www/currentsong.txt"
song_info = {}

# read file
with open(file_path, 'r', encoding='utf-8') as file:
    for line in file:
       
        if '=' in line:
            key, value = line.strip().split('=', 1)
           
            song_info[key] = value

artist = html.unescape(song_info.get('artist'))
album = html.unescape(song_info.get('album'))
title = html.unescape(song_info.get('title'))

# Bash commands
pubartist = [
    '/usr/bin/mosquitto_pub',
    '-h', 'localhost',
    '-t', 'moodeaudio2/artist',
    '-m', artist
]

pubalbum = [
    '/usr/bin/mosquitto_pub',
    '-h', 'localhost',
    '-t', 'moodeaudio2/album',
    '-m', album
]

pubtitle = [
    '/usr/bin/mosquitto_pub',
    '-h', 'localhost',
    '-t', 'moodeaudio2/title',
    '-m', title
]

# publish to broker
subprocess.run(pubartist)
subprocess.run(pubalbum)
subprocess.run(pubtitle)

Tasmota must be compiled as follows: user_config_override.h
Code:
#ifndef USE_SCRIPT
#define USE_SCRIPT
#endif
#ifdef USE_RULES
#undef USE_RULES
#endif

#ifndef SUPPORT_MQTT_EVENT
#define SUPPORT_MQTT_EVENT
#endif
#ifndef USE_WEBSEND_RESPONSE
#define USE_WEBSEND_RESPONSE
#endif

#ifndef USE_DISPLAY
#define USE_DISPLAY             // Add Display support
#endif

#define USE_DISPLAY_MAX7219_MATRIX
#define USE_UTF8_LATIN1

Tasmota-Script:
Code:
>D 48
artist=""
album=""
title="moOde audio player"

>B
#publish
+>Subscribe artist, moodeaudio2/artist
+>Subscribe album, moodeaudio2/album
+>Subscribe title, moodeaudio2/title

->DisplayText %title%

>S
if mqttc>0
then
=#publish
endif

if upd[title]>0
then
if ((artist=="Radio station") {
->DisplayText %title% (%album%)
} else {
->DisplayText %artist% - %title% (%album%)
}
endif

Best regards


Attached Files Thumbnail(s)
   
Reply


Forum Jump: