I have an audio system based on Wireless streaming, it looks like this:
What I want to do
I would like to build a case with an integrated 11.9 inch display (see picture, bottom right corner). In the case I will have a Raspberry Pi, running the PeppyMeter software, connected to the display. And I will integrate a WiFi audio receiver based on the Linkplay A31 chipset. For PeppyMeter to run, this will be the source for the audio signal.
In the same setup, I will have two active loudspeakers, both with the same WiFi audio receiver based on the Linkplay A31 chipset.
I will use the 4Stream App to configure the two speakers as a stereo set (one Left, one Right). And to put the PeppyMeter with its own A31 receiver in the same group.
I want to create the group based on the Linkplay A31 recognition/identification, and not on AirPlay.
If I start a stream in Spotify on my iPhone/iPad, and as speaker I select the group I have just setup, the music will play through the speakers, and the PeppyMeter VU meters should respond to the same stream that I am hearing.
(What I am not looking for, is to build a unit as a streamer device. Its just about VU meter displaying)
My questions
I am not yet familiar with PeppyMeter software, and how Raspberry Pi handles audio input. But so far I have understood that the Raspberry Pi needs its OS, and PeppyMeter can be installed as a stand-alone application.
Example of my intended setup:
- Audio source: Spotify Premium on my iPhone or iPad (see picture below, left)
- Streaming connections: all components wireless via my WiFi network
- Output: wireless active speakers with integrated WiFi audio receivers based on the Linkplay A31 chipset (see picture below, top middle)
What I want to do
I would like to build a case with an integrated 11.9 inch display (see picture, bottom right corner). In the case I will have a Raspberry Pi, running the PeppyMeter software, connected to the display. And I will integrate a WiFi audio receiver based on the Linkplay A31 chipset. For PeppyMeter to run, this will be the source for the audio signal.
In the same setup, I will have two active loudspeakers, both with the same WiFi audio receiver based on the Linkplay A31 chipset.
I will use the 4Stream App to configure the two speakers as a stereo set (one Left, one Right). And to put the PeppyMeter with its own A31 receiver in the same group.
I want to create the group based on the Linkplay A31 recognition/identification, and not on AirPlay.
If I start a stream in Spotify on my iPhone/iPad, and as speaker I select the group I have just setup, the music will play through the speakers, and the PeppyMeter VU meters should respond to the same stream that I am hearing.
(What I am not looking for, is to build a unit as a streamer device. Its just about VU meter displaying)
My questions
I am not yet familiar with PeppyMeter software, and how Raspberry Pi handles audio input. But so far I have understood that the Raspberry Pi needs its OS, and PeppyMeter can be installed as a stand-alone application.
- How do I connect my wirelessly incoming signal to the Raspberry Pi? On the Linkplay A31 PCB, I have a Mini-jack connector for analog audio output. Can I connect that to the mini-jack of the Raspberry Pi for audio input there?
- Who can recommend me a casing, in which I can properly fit this 11.9 inch display?
Example of my intended setup:
Nice picture!
I think the best way is to connect display to a Raspberry Pi. If you can forward to the Raspberry Pi the same stream which you forward to the speakers then you don't need any Linkplay board in front of Pi. Probably that 4Stream app supports that. In the Spotify app on my iPhone I can select only one "destination".
Assuming that you can forward Spotify audio stream to the Rapberry Pi you need some software which will receive that signal. I used two programs which can do that:
- shairport-sync. It works for non-premium and premium Spotify accounts. It will show up in your iPhone as AirPlay device: https://github.com/project-owner/Peppy.doc/wiki/AirPlay
-raspotify. It works only for Premium Spotify accounts. It will show up in your iPhone as Spotify Connect device: https://github.com/project-owner/Peppy.doc/wiki/Spotify-Connect
So you need to install one of these programs on the Raspberry Pi. It will output signal to ALSA. Then you need to install peppyalsa plugin and PeppyMeter itself. Configure plugin, meter and connect display to Pi. That's the route which should work.
I'll ask about case for that display on that Volumio forum on your behalf. But I would recommend to make everything working first 🙂
Also remember that PeppyMeter supports only these resolutions: 320x240, 480x320, 800x480, 1280x400. If you need any other resolution you need either to draw your own images and configure meter or borrow images from the Volumio PeppyMeter plugin.
Best regards
I think the best way is to connect display to a Raspberry Pi. If you can forward to the Raspberry Pi the same stream which you forward to the speakers then you don't need any Linkplay board in front of Pi. Probably that 4Stream app supports that. In the Spotify app on my iPhone I can select only one "destination".
Assuming that you can forward Spotify audio stream to the Rapberry Pi you need some software which will receive that signal. I used two programs which can do that:
- shairport-sync. It works for non-premium and premium Spotify accounts. It will show up in your iPhone as AirPlay device: https://github.com/project-owner/Peppy.doc/wiki/AirPlay
-raspotify. It works only for Premium Spotify accounts. It will show up in your iPhone as Spotify Connect device: https://github.com/project-owner/Peppy.doc/wiki/Spotify-Connect
So you need to install one of these programs on the Raspberry Pi. It will output signal to ALSA. Then you need to install peppyalsa plugin and PeppyMeter itself. Configure plugin, meter and connect display to Pi. That's the route which should work.
I'll ask about case for that display on that Volumio forum on your behalf. But I would recommend to make everything working first 🙂
Also remember that PeppyMeter supports only these resolutions: 320x240, 480x320, 800x480, 1280x400. If you need any other resolution you need either to draw your own images and configure meter or borrow images from the Volumio PeppyMeter plugin.
Best regards
Last edited:
Thnx @rpi !
Thanks for sharing your advice for configuration and software. 👍
Audio-IN signal
This remains a point for me. You are right that the Pi needs the same stream as the active speakers I have. And to make sure, I need to combine the speakers and the Pi in one speakergroup in the configuration App. Since the speakers are Linkplay A31 chipset based, I want to create a way that the Raspberry Pi can be added in the same group, via the same App (4Stream App).
This would not work with the Raspberry Pi via its own WiFi and AirPlay.
Therefor, I want to add a Linkplay A31 module to the Pi, to get the audio stream/signal in. But then I need to create an audio input on the Raspberry Pi to connect the Linkplay A31 module to. See picture below, light green box with the red outline.
Question
There are a lot of Add-On boards for the Raspberry Pi. I haven't found yet an add-on board for Raspberry Pi that adds a Audio line input to the Pi.
Are there any you can recommend for this purpose?
Thanks for sharing your advice for configuration and software. 👍
Audio-IN signal
This remains a point for me. You are right that the Pi needs the same stream as the active speakers I have. And to make sure, I need to combine the speakers and the Pi in one speakergroup in the configuration App. Since the speakers are Linkplay A31 chipset based, I want to create a way that the Raspberry Pi can be added in the same group, via the same App (4Stream App).
This would not work with the Raspberry Pi via its own WiFi and AirPlay.
Therefor, I want to add a Linkplay A31 module to the Pi, to get the audio stream/signal in. But then I need to create an audio input on the Raspberry Pi to connect the Linkplay A31 module to. See picture below, light green box with the red outline.
Question
There are a lot of Add-On boards for the Raspberry Pi. I haven't found yet an add-on board for Raspberry Pi that adds a Audio line input to the Pi.
Are there any you can recommend for this purpose?
Update
I just learned that the Raspberry Pi is able to handle S/PDIF input via it's 40-pin GPIO header.
Maybe this makes things easier.
New idea
The WiFi receiver that I want to use has S/PDIF output via a 7-pin connector. And it has a DAC onboard. So I believe it makes sense to connect this S/PDIF output to the Raspberry Pi. In this case I would not need an add-on board for the Pi anymore (as I imagined in my earlier post).
The pins in the S/PDIF out connector on the WiFi receiver are:
My questions
I just learned that the Raspberry Pi is able to handle S/PDIF input via it's 40-pin GPIO header.
Maybe this makes things easier.
New idea
The WiFi receiver that I want to use has S/PDIF output via a 7-pin connector. And it has a DAC onboard. So I believe it makes sense to connect this S/PDIF output to the Raspberry Pi. In this case I would not need an add-on board for the Pi anymore (as I imagined in my earlier post).
The pins in the S/PDIF out connector on the WiFi receiver are:
- SPDIF
- MCLK
- ISS_DATA
- BCLK
- LRCK
- GND
- VCC_3V3
My questions
- Are my assumptions right that I can connect the S/PDIF out of the WiFi receiver, to the right pins of the 40-pin GPIO header?
- Which of the above listed pins of the WiFi receiver, should be connected to which pins in the Pi's 40-pin GPIO header?
I'm not aware about SPDIF on Raspberry Pi. I know that HAT boards (DACs, Amps) use I2S signal. Though you need a driver which will handle that signal.
I'm not sure why Pi cannot be used as is. Here is what I found about that 4Stream app:
Adding additional hardware/software to the signal path makes it more complicated and also can increase the lag. So VU Meter will display a delayed value.
Best regards
I'm not sure why Pi cannot be used as is. Here is what I found about that 4Stream app:
AirPlay and Spotify Connect can be handled in Pi directly through Wi-Fi. Do you know which protocol use those Linkplay boards?Common to the platform is the 4Stream application for iOS and Android, which serves as the primary controlling interface. Spotify Connect, Apple AirPlay, DLNA and UPNP protocols are supported along with Tidal, Qobuz, TuneIn, iHeart Radio, Napster and Deezer.
Adding additional hardware/software to the signal path makes it more complicated and also can increase the lag. So VU Meter will display a delayed value.
Best regards
Last edited:
As a proof-of-concept (POC) you can install on Pi one of the Peppy player images.
They have all software installed already. You just need to configure Wi-Fi and enable either AirPlay or Spotify Connect.
Then just check if you can see Pi in that 4Stream app.
Best regards
They have all software installed already. You just need to configure Wi-Fi and enable either AirPlay or Spotify Connect.
Then just check if you can see Pi in that 4Stream app.
Best regards
Thnx @rpi !
I have had contact with HifiBerry. They mentioned it is not easy for them to advise the right HAT-board, but that's because they don't know the Up2Stream board I want to use for audio input.
So what I am looking for is:
I have had contact with HifiBerry. They mentioned it is not easy for them to advise the right HAT-board, but that's because they don't know the Up2Stream board I want to use for audio input.
Yes, I know Pi can handle AirPlay & Spotify connect directly. But in my case I want this 'wireless VU-meter' to be part of an eco-system with wireless speakers based on the Linkplay chipset and wireless audio protocol. That's the reason, I want to use the Up2Stream board as audio source/input to the Pi. If I can somehow use its digital output to the Pi, I am quite sure the delay on the meters will be minimal.AirPlay and Spotify Connect can be handled in Pi directly through Wi-Fi. Do you know which protocol use those Linkplay boards?
So what I am looking for is:
- Knowledge about using a digital, SPDIF/I2S audio source ...
- Connecting that to the Raspberry Pi ...
- What HAT-board is needed for this setup ...
- What I need to take care of in software configuration on the Pi side ...
- Anything else
There is no SPDIF on Pi. You can connect the I2S output from that Up2Stream board directly to a Raspberry Pi. Here is the example of handling I2S signal on Raspberry Pi using I2S microphones: https://github.com/makerportal/rpi_i2s
Best regards
Best regards
You are right, I also found out there is no S/PDIF on the Pi, but the I2S standard is supported. So thanks for referring to the github thread about I2S! This means I can make a connection between my audio receiver board and the GPIO on the Pi, without the need for an extra HAT board. That's great.
So instead of microphones (in the Github example), I will use my audio receiver board, and connect its I2S pins to the GPIO connector on the Pi.
But which of the Audio Receivers pins (see list below) should I connect to which GPIO pins on the Pi?
Audio receiver pins:
So instead of microphones (in the Github example), I will use my audio receiver board, and connect its I2S pins to the GPIO connector on the Pi.
But which of the Audio Receivers pins (see list below) should I connect to which GPIO pins on the Pi?
Audio receiver pins:
- SPDIF
- MCLK
- ISS_DATA
- BCLK
- LRCK
- GND
- VCC_3V3
Last edited:
Connecting I2S to RPi requires knowing parameters of the device I2S bus - clock master/slave mode, format (I2S vs left-justified, etc.), word bit length, of course also voltage (a device can be 1.8V only). When knowing that, I have good experience with the device tree configuration of the RPi I2S driver described in great repos https://github.com/AkiyukiOkayasu/RaspberryPi_I2S_Slave and https://github.com/AkiyukiOkayasu/RaspberryPi_I2S_Master The setup typically works out of the box if configured correctly to comply with the device bus params.
The driver will create alsa capture and playback devices which can be used by userspace.
The driver will create alsa capture and playback devices which can be used by userspace.
Here is the info.
Parameters of the I2S device bus:
Parameters of the I2S device bus:
- Clock master/slave mode = Master mode, sample rate 44.1 Khz
- Format (I2S vs left-justified, etc.) = Standard I2S format
- Word bit length = 32 (BLCK is 2.822M)
- Voltage (a device can be 1.8V only) = 3.3V (for high)
OK, then https://github.com/AkiyukiOkayasu/RaspberryPi_I2S_Slave should work, no changes to the DTS. Just follow the readme.
Thanks a lot @phofman !
Just bare with me, as I am not that experienced with Raspberry Pi yet. 😉
I assume I now need to do the following:
Am I correct?
Just bare with me, as I am not that experienced with Raspberry Pi yet. 😉
I assume I now need to do the following:
- Prepare the Pi / SD-card with an OS, and in this case including the PeppyMeter software. (I found sources for disk images, I believe these are Pi OS including PeppyMeter and drivers for a specific display: see here on Github)
- Create the rights I2S settings as mentioned in the Github instructions you shared the link for.
Am I correct?
If the peppy image uses the standard raspbian kernel (i.e. the Broadcom I2S and standard alsa SoC modules are included), I guess it should work OK as you describe.
You can get the disk image which has only PeppyMeter + peppyalsa plugin installed. It supports any HDMI TV/Display. You just need to adjust the resolution.
https://github.com/project-owner/PeppyMeter/releases/tag/2023.01.21
The disk image is based on Raspberry Pi OS (32-bit) Lite 05/07/2021 (Buster)
Best regards
https://github.com/project-owner/PeppyMeter/releases/tag/2023.01.21
The disk image is based on Raspberry Pi OS (32-bit) Lite 05/07/2021 (Buster)
Best regards
All the required modules seem to be in that image
Code:
pavel@precision:/media/pavel/rootfs/usr/lib/modules$ find . -name "*i2s*ko"
./5.10.52+/kernel/sound/soc/bcm/snd-soc-bcm2835-i2s.ko
./5.10.52-v8+/kernel/sound/soc/bcm/snd-soc-bcm2835-i2s.ko
./5.10.52-v7l+/kernel/sound/soc/bcm/snd-soc-bcm2835-i2s.ko
./5.10.52-v7+/kernel/sound/soc/bcm/snd-soc-bcm2835-i2s.ko
pavel@precision:/media/pavel/rootfs/usr/lib/modules$ find . -name "*spdif*ko"
./5.10.52+/kernel/sound/soc/codecs/snd-soc-spdif-rx.ko
./5.10.52+/kernel/sound/soc/codecs/snd-soc-spdif-tx.ko
./5.10.52-v8+/kernel/sound/soc/codecs/snd-soc-spdif-rx.ko
./5.10.52-v8+/kernel/sound/soc/codecs/snd-soc-spdif-tx.ko
./5.10.52-v7l+/kernel/sound/soc/codecs/snd-soc-spdif-rx.ko
./5.10.52-v7l+/kernel/sound/soc/codecs/snd-soc-spdif-tx.ko
./5.10.52-v7+/kernel/sound/soc/codecs/snd-soc-spdif-rx.ko
./5.10.52-v7+/kernel/sound/soc/codecs/snd-soc-spdif-tx.ko
- Home
- Source & Line
- PC Based
- PeppyMeter: can I run it stand-alone as VU-meter display only, synched with my wireless speakers?