-
Notifications
You must be signed in to change notification settings - Fork 23
MYNDberry_initial_setup
This guide explains how to turn a MYND speaker into a self-contained music media library player with Bluetooth and WiFi internet radio streaming capability by replacing the removable bluetooth module with a Raspberry Pi Zero 2 W (RPi) running the moOde media player OS.
The goal of this project, dubbed "MYNDberry", is to demonstrate the potential of the MYND speaker and its open source audio capabilities. MYNDberry includes an adapted MCU firmware, a custom PCB adapter designed to directly connect the RPi to the MYND (thanks jonamb), the "ActionsLink" communication protocol layer (thanks toxxin), boot-time configuration, and a runtime service layer needed for the MYND MCU and the RPi to cooperate on power handling, playback control, volume behavior, WiFi actions, and moOde audio configuration.
moOde Audio Player is a free and open-source audiophile audio player for Raspberry Pi computers and the DIY audio community. It offers a browser-based interface and supports many streaming options, including Bluetooth. A special thanks to moOde Audio Player founder Tim Curtis, and all who have contributed, for their work.
This modification is aimed at hobbyists who are interested in open source software and in learning more about open source hardware and software. Since this is a community-driven hobby project and does not have the same engineering resources as a full Teufel product, the user experience may be less polished and may allow — and sometimes require — you to dive into configuration settings that would normally be hidden in a commercial product.
By performing this modification, your MYND will no longer be able to play audio from the AUX and USB-C ports. While Bluetooth playback and other moOde renderers remain available via the Raspberry Pi, you may experience audio dropouts or other quirks that are not present in the stock MYND firmware.
❗Disclaimer❗: This guide is a community-driven project and does not represent an official feature. It is intended for experienced hobbyists with basic knowledge of electronics. The steps described for installing a Raspberry Pi into the MYND speaker are fully reversible and do not require any soldering. While we have not encountered any issues during our own tests, we cannot provide any warranty or accept liability for any damage that may result from following these instructions—whether to the MYND speaker itself or to external components such as the Raspberry Pi. Please check all connections carefully. Incorrectly connected cables may cause hardware damage. You undertake this modification at your own risk. We also cannot guarantee that the modification will work in every case.
You will need:
| Item | Approximate Cost | Notes |
|---|---|---|
| Raspberry Pi Zero 2 W | 20 € | |
| microSD card | 10 € | |
| MYNDberry adapter PCB | 15 € | More information |
| 2.5mm (M3) hex key | — | |
| PH-01 screwdriver | — | |
| Flathead screwdriver (small) | — |
-
Download the MYNDberry firmware binary
myndberry-update-firmware-mcu.binfrom the teufelaudio GitHub Releases section -
Update the production MYND unit using the drag-and-drop update procedure documented in the HowTo:
-
Use the Raspberry Pi Imager to configure and write the moOde OS image to your SD card (tested on moOde OS v10.1.1 2026-02-19)
- Follow the moOde Pi Imager Tutorial for step-by-step instructions
- Make note of the username, password, and hostname that you choose, you will need them later
-
Boot the Raspberry Pi and make sure it can reach the network
-
For more info, see the After Startup section of the official moOde Setup Guide
-
Note: No manual moOde I2S device selection is required, it is handled on first boot by
configure-moode.service, which is installed in the next step
-
Note: No manual moOde I2S device selection is required, it is handled on first boot by
-
With a laptop or computer on the same network, open a browser and go to the moOde WebUI webpage at:
http://your_rpi_hostname
or
http://your_rpi_hostname.local
-
Important: Enable the moOde's AP hotspot by:
- Navigating to the top right corner and clicking m-->Configure-->Network
- Scrolling down to the Hotspot section
- Choosing a password no less than 8 characters
- Clicking
SAVE
-
Enable bluetooth connectivity by enabling the Bluetooth controller via m-->Configure-->Renderers under Bluetooth and clicking Controller. Here you can enable other renderers that you wish to use as well.
-
Enable the Web SSH feature and open a terminal webpage by:
- Navigating to the top right corner and clicking m-->Configure-->System
- Scrolling down to the Security section
Hint: Consider enabling moOde's ready sound icon under the Ready Script section as an indicator of the speaker's overall streaming ready state
- Enabling Web SSH and clicking
OPEN - In the newly opened web terminal, enter the RPi credentials you chose during the RPi SD imaging setup in step 2
- Type your
username, hitenter - Type your
password, hitenter
- Type your
- Copy and paste this command into the web terminal to begin the RpiLink installation:
-
curl -sSL https://raw.githubusercontent.com/teufelaudio/mynd-firmware/MYNDberry/Projects/Mynd/src/tasks/rpi/daemon_install/install_mynd_berry.sh | sudo bash -s-
Note: If you see an error like
SSL certificate problem: certificate is not yet validwhen running the command above, the Raspberry Pi's clock is probably too far in the past. You can dynamically fetch the current time from the internet (over plain HTTP, so it still works even when TLS is broken) and apply it with:-
or apply it manually with:
sudo date -s "$(curl -sI http://deb.debian.org | awk '/^Date:/ {print substr($0,6)}')" -
sudo date -s "2026-03-19 12:00:00"
-
-
Note: If you see an error like
- Enter
ywhen prompted
-
Once completed, take a moment to explore moOde to get familiar with its WebUI
-
Official moOde Quickhelp Guide
- "Quick help contains instructions for navigating moOde and using its features including Multiroom audio. Quick help is located on the Main Menu which is accessed via the m in the upper right of the WebUI." -moOde
-
Official moOde Quickhelp Guide
Hints:
- If you want MYNDberry to auto-play internet radio after boot completes, enable moOde Autoplay after start under MPD Options via m-->Configure-->Audio
- Build a Favorites playlist from the internet radio library
- Add the Favorites or Default playlist to the queue by clicking the playlist icon.
- After reassembling and powering on the MYND in the next steps, it will begin streaming from the top of the queue. If the ready script is enabled, the ready chime will play before streaming begins.
- Turn off the power status feedback LED0 of the RPi via m-->Configure-->System under Power management to reduce power consumption of the RPi
Follow the HowTo Install MYNDberry guide for in-depth instructions on how to:
-
Open the MYND speaker by completely unscrewing and removing the grill (4 screws), and then the speaker frame (7 screws)
- Hint: In the top right corner, there is a notch available to easily lever the speaker frame out using a flathead screwdriver
-
Remove the Bluetooth module from the MYND PCB
-
Insert the RPi into the MYNDberry PCB
-
Replace the BT module by carefully inserting the MYNDberry in its place
-
Secure the MYND PCB and MYNDberry and close the unit
-
Power on the MYND speaker, wait 45-60 seconds (patience is a virtue;) for the BT source led pattern to stop flashing, meaning moOde has completed its boot up process.
-
If you decided to enable the ready script and add a playlist to moOde's queue, you should hear the moOde ready chime and shortly after hear playback of the first internet radio station in the queue.
- If you still do not hear anything, try power cycling the MYND once more and see the Troubleshooting section if issues persist.
-
If you chose not to enable the ready script or add a playlist to the queue, then you will not hear anything after the MYNDberry becomes 'ready', but you should see the BT LED begin a purple breathing pattern indicating that moOde is in a standby ready state.
-
If you enabled the BT renderer and/or other renderers, you should now see the MYNDberry (named using your RPi hostname) in the BT device list and/or other applicable lists of nearby devices.
-
Use the MYND hardware buttons to control playback, volume, WiFi internet radio as follows:
| Button (press) | MPD (Internet Radio) | Bluetooth | Other Renderers | Notes / BT LED Feedback |
|---|---|---|---|---|
Play/Pause (single) |
Play/Pause streaming | Play/Pause playback | Mute/Unmute amp |
purple flashing → source unknown (moOde not ready) purple breathing → MPD paused (moOde ready) purple solid → MPD actively streaming (streaming continues while amp muted) |
Play/Pause (double) |
Next station | Next song | Not implemented | Stops at queue end, press Play/Pause to restart |
Play/Pause (triple) |
Previous station | Previous song | Not implemented | Stops at queue start, press Play/Pause to restart |
| Button (press) | MPD (Internet Radio) | Bluetooth | Other Renderers | Notes / BT LED Feedback |
|---|---|---|---|---|
VOL+ / VOL- (single, hold) |
Adjust MPD volume 1 | Not applied 2 | Not implemented 3 |
green flash → Max volume red flash → Min volume |
| Button (press) | MPD (Internet Radio), Bluetooth, Other Renderers | Notes / BT LED Feedback |
|---|---|---|
BT (single) |
Return to internet radio from another source/renderer |
purple flashing → source unknown (moOde not ready) purple breathing → MPD paused (moOde ready) purple solid → MPD actively streaming |
BT (double) |
Cycle to next WiFi 4 |
delayed green flash → wifi is connected delayed red flash → attempt failed |
BT (triple) |
Enable AP hotspot 5 |
delayed green flash → hotspot is up delayed red flash → attempt failed |
Optional: Amp volume control 6
| Button (press) | MPD (Internet Radio), Bluetooth, Other Renderers | Notes / BT LED Feedback |
|---|---|---|
VOL+ & VOL- (combo) |
Toggle on/off |
green flash → MPD control enabled red flash → Amp control enabled |
VOL+ / VOL- (single, hold) |
Adjust amp volume (if enabled) |
green flash → Max Volume red flash → Min Volume |
Footnotes
1. By default, volume change events are applied to moOde's software volume mixer via the Media Player Daemon (MPD). ↩
2. You can enable experimental Bluetooth volume control by setting ENABLE_BT_RENDERER_VOLUME_CONTROL=1 in mynd-firmware/Projects/Mynd/CMakeLists.txt, recompiling, and then updating the MCU firmware. This will allow MYND volume buttons to adjust the RPi's bluez playback volume directly, but may exhibit volume jumping behavior due to volume levels between bluez and the connected BT device becoming unsynchronized. ↩
3. Due to protocol limitations/deprecation with other renderers, volume event forwarding only works while streaming internet radio with the MPD renderer. This means that by default, volume presses do nothing when streaming through other renderers, but you can toggle to amp volume control if needed. ↩
4. Cycles through the RPi's known WiFi network list of previously saved/configured WiFi networks (via WebUI or nmcli) in sequential order until it successfully connects. If a hotspot is active, it is turned off first. Playback is paused during the switch. Requires at least one known WiFi network. The MCU log will return the WiFi info upon success connection ↩
5. Hotspot must be configured before use or this functionality will not work. Either configure the moOde hotspot (set a password in moOde web UI → Network), or set ssid and password in the daemon config under [hotspot] at /etc/mynd_rpi_link.conf. ↩
6. This feature provides alternative volume control via hardware amplifier and works under all circumstances, but can only be changed using the MYND volume buttons.↩
Your MYND is now fully open...source =D. If something does not work as expected, see Troubleshooting section below. For configuration details and developer-oriented options, see Advanced.
-
Obtain the production MYND firmware binary
mynd-update-firmware-mcu.bin, included alongside the MYNDberry release artifacts, from the teufelaudio GitHub Releases section -
Update the MYND unit using this production firmware and following the drag-and-drop update procedure documented in the HowTo:
-
Perform step 4 in reverse and carefully re-integrate the Bluetooth module hardware back into the MYND PCB.
- How to Perform a Drag & Drop USB Firmware Update
- Learn more about MCU Firmwares
- Explore the MYND Hardware GitHub
- Review MYND BT Connector Component Schematic
- Mynd RpiLink Daemon: mynd-firmware/Projects/Mynd/src/tasks/rpi/daemon_install/README.md
- ActionsLink protobuf protocol internals and extension examples: mynd-firmware/Projects/Mynd/docs/README_ACTIONSLINK_PROTOCOL.md
- Configure moOde service behavior and defaults: mynd-firmware/Projects/Mynd/docs/README_CONFIGURE.md
- LED patterns and extension examples: mynd-firmware/Projects/Mynd/src/leds/README.md
After installation and the first reboot, check both services.
sudo systemctl status configure-moode
sudo systemctl status mynd-rpi-linkFollow the daemon logs:
sudo journalctl -u mynd-rpi-link -fCheck boot-time configure logs:
sudo journalctl -b 0 | grep "configure-moode"Run the configure script manually if needed:
sudo /usr/local/bin/configure_moode.pyWhat you want to confirm:
-
configure-moodecompleted without error - Your MYNDberry is reachable over the network
-
mynd-rpi-link.serviceis active - MYND button actions produce expected playback behavior
- Your MYNDberry hostname appears as a connectable device after moOde renderer activation
- Audio playback works as expected through enabled moOde renderers
- Sometimes, especially after a fresh MCU firmware update or a new network is configured, moOde is unable to resolve any radio URLs. It is often resolved by power cycling the MYND speaker.
- Try to diagnois the issue by running the following commands on the RPi and reviewing the logs
sudo systemctl status mynd-rpi-link sudo journalctl -u mynd-rpi-link -n 200 --no-pager
- Enabling other renderers alongside the Bluetooth renderer may degrade BT streaming performance, try disabling them
- This is a known issue and attempts have been made to mitigate it (see next)
- In testing, disabling wifi improved bluetooth streaming stability. So by default, wifi is disabled whenever Bluetooth is actively streaming, then re-enabled after disconnecting from the BT device or after a BT button action
- Disable this feature by setting
disable_wifi_when_bt_active = falsein/etc/mynd_rpi_link.confunder[bt_wifi_coexistence]and rebooting
- Confirm on the MYNDberry, the assigned serial device for MCU's ActionLink BT UART connection is present
ls -l /dev/serial*
ls -l /dev/ttyS0 /dev/ttyAMA0configure-moode is responsible for enabling UART and disabling the serial console at boot
- Ensure it is enabled in
/etc/mynd_rpi_link.confand reboot once more. - Check:
sudo journalctl -b 0 | grep "configure-moode"
- Run:
sudo /usr/local/bin/configure_moode.py
- If for any reason the MYNDberry gets into a 'hung' or 'frozen' state, you can perform a hardware reset by holding down both
VOL-andVOL+buttons for 8-10 seconds.
To remove the MYNDberry Raspberry Pi integration:
sudo /usr/local/bin/uninstall_rpi_link.shThe installed config file is:
/etc/mynd_rpi_link.conf
-
[configure_moode]- enables or disables boot-time configuration
- sets
boot_config_path - sets
moode_boot_volume_percent - sets
bt_sw_volume_step
-
[uart]- UART device path, baud rate, and timeout
-
[moode]- moOde base URL, timeout, retry count, streaming poll interval, and MPD port
-
[power]- poweroff command
-
[hotspot]- h otspot name, password, and interface
- Enable for quick and easy moOde and or RPi access (disabled by default)
-
[bt_wifi_coexistence]- WiFi disable and restore behavior during Bluetooth usage
- Enable to improve BT stability (disabled by default)
-
[logging]- log level and syslog behavior
After editing the config, restart the runtime daemon:
sudo systemctl restart mynd-rpi-link- Replace
piandraspberrypiwith your chosen username and hostname, respectively
Remote uninstall from a workstation:
ssh pi@raspberrypi "/usr/local/bin/uninstall_rpi_link.sh"Remote install from a workstation:
- Hint: Ensure the daemon's protobuf files are up-to-date (regenerated if any changes made to ActionsLink protocol)
cd Projects/Mynd/src/tasks/rpi/daemon_install
bash ./components/remote/install.sh --host raspberrypi.local --user pi- Mynd cannot power on when it is open (speaker frame has been removed)
- If you wish to power on the MYND while it is open (for access to flash and uart debug pins during development and/or testing), you must first short pins 4 and 5 of the
P1Samp baffle connector component