Hello! First off, THANK YOU for creating this MOST hat. This is allowing me to refine my custom head unit for my 2010 E90 and eliminate the analog to MOST encoding box that I am currently using. I have a question: Do you happen to know the Source Address High and Source Address Low? Or, since I believe you also have an E90, what are the values that should be filled in to use the factory amp with react-carplay? I looked in the thread with the vehicle info, but there is no listing for Source high and low, which react-carplay wants. No matter what I put in there and hit save, if I close the app and restart, its back to unchecked and values empty,
Hi!,
I donāt have an E90, @ygoz does. From the vehicle details post, this should work, I have messed up the naming I guess in the app, it should really be sink! But source Address high should be 0x01, source address low should be 0x01, instance should be 0x01 and sink number should be 0x02, and Fblock should be 0x22. The MOST part is still very beta in the app, however I do use it daily with no issues. I am not sure why tick box would be unticking, how are you writing the numbers in? As in the format of the numbers, you could try both in hex format as above or in decimal format
Sink Type | Device | Address | Instance ID | Sink Number |
---|---|---|---|---|
Main Audio | Amplifier | 0x0101 | 0x01 | 2 |
Thank you for your swift reply. I have put in the supplied values, and I figured out the issue with the non save. My CarPlay screen resolution is 1280x480, not tall enough to see the bottom buttons, using a mouse with a scroll wheel, I am able to scroll to the bottom and save. However, following the instructions on the piMOST GitHub, I have no sound, I get nothing when I do arecord -l. I have a BMW logic 7 plugged into it. The PI doesnāt see the sound card at all.
can you post the the contents of /etc/pulse/daemon.conf
and also `/boot/overlays/ and also what version of pi and OS are you using?
It wonāt allow me to upload anything saying new users are not allowed to upload, so here is everything pasted in:
This is a RPI 5, 8GB running:
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 12 (bookworm)
Release: 12
Codename: bookworm
daemon.conf:
# This file is part of PulseAudio.
#
# PulseAudio is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# PulseAudio is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
## Configuration file for the PulseAudio daemon. See pulse-daemon.conf(5) for
## more information. Default values are commented out. Use either ; or # for
## commenting.
; daemonize = no
; fail = yes
; allow-module-loading = yes
; allow-exit = yes
; use-pid-file = yes
; system-instance = no
; local-server-type = user
; enable-shm = yes
; enable-memfd = yes
; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB
; lock-memory = no
; cpu-limit = no
; high-priority = yes
; nice-level = -11
; realtime-scheduling = yes
; realtime-priority = 5
; exit-idle-time = 20
; scache-idle-time = 20
; dl-search-path = (depends on architecture)
; load-default-script-file = yes
; default-script-file = /etc/pulse/default.pa
; log-target = auto
; log-level = notice
; log-meta = no
; log-time = no
; log-backtrace = 0
; resample-method = speex-float-1
; avoid-resampling = false
; enable-remixing = yes
; remixing-use-all-sink-channels = yes
; remixing-produce-lfe = no
; remixing-consume-lfe = no
; lfe-crossover-freq = 0
; flat-volumes = no
; rescue-streams = yes
; rlimit-fsize = -1
; rlimit-data = -1
; rlimit-stack = -1
; rlimit-core = -1
; rlimit-as = -1
; rlimit-rss = -1
; rlimit-nproc = -1
; rlimit-nofile = 256
; rlimit-memlock = -1
; rlimit-locks = -1
; rlimit-sigpending = -1
; rlimit-msgqueue = -1
; rlimit-nice = 31
; rlimit-rtprio = 9
; rlimit-rttime = 200000
; default-sample-format = s16le
; default-sample-rate = 44100
; alternate-sample-rate = 48000
; default-sample-channels = 2
; default-channel-map = front-left,front-right
; default-fragments = 4
default-fragment-size-msec = 15
; enable-deferred-volume = yes
; deferred-volume-safety-margin-usec = 8000
; deferred-volume-extra-delay-usec = 0
default-sample-format = s16le
default-sample-rate = 44000
alternate-sample-rate = 44000
default-sample-channels = 2
default-channel-map = front-left,front-right
files in /boot/overlays:
allan@Nyomi:~ $ ls /boot/overlays
act-led.dtbo i2c5.dtbo rpi-codeczero.dtbo
adafruit18.dtbo i2c6.dtbo rpi-dacplus.dtbo
adafruit-st7735r.dtbo i2c-bcm2708.dtbo rpi-dacpro.dtbo
adau1977-adc.dtbo i2c-fan.dtbo rpi-digiampplus.dtbo
adau7002-simple.dtbo i2c-gpio.dtbo rpi-ft5406.dtbo
ads1015.dtbo i2c-mux.dtbo rpi-poe.dtbo
ads1115.dtbo i2c-pwm-pca9685a.dtbo rpi-poe-plus.dtbo
ads7846.dtbo i2c-rtc.dtbo rpi-sense.dtbo
adv7282m.dtbo i2c-rtc-gpio.dtbo rpi-sense-v2.dtbo
adv728x-m.dtbo i2c-sensor.dtbo rpi-tv.dtbo
akkordion-iqdacplus.dtbo i2s-dac.dtbo rra-digidac1-wm8741-audio.dtbo
allo-boss2-dac-audio.dtbo i2s-gpio28-31.dtbo sainsmart18.dtbo
allo-boss-dac-pcm512x-audio.dtbo ilitek251x.dtbo sc16is750-i2c.dtbo
allo-digione.dtbo imx219.dtbo sc16is752-i2c.dtbo
allo-katana-dac-audio.dtbo imx258.dtbo sc16is752-spi0.dtbo
allo-piano-dac-pcm512x-audio.dtbo imx290.dtbo sc16is752-spi1.dtbo
allo-piano-dac-plus-pcm512x-audio.dtbo imx296.dtbo sdhost.dtbo
anyspi.dtbo imx327.dtbo sdio.dtbo
apds9960.dtbo imx378.dtbo sdio-pi5.dtbo
applepi-dac.dtbo imx462.dtbo seeed-can-fd-hat-v1.dtbo
arducam-64mp.dtbo imx477.dtbo seeed-can-fd-hat-v2.dtbo
arducam-pivariety.dtbo imx519.dtbo sh1106-spi.dtbo
at86rf233.dtbo imx708.dtbo si446x-spi0.dtbo
audioinjector-addons.dtbo iqaudio-codec.dtbo smi-dev.dtbo
audioinjector-bare-i2s.dtbo iqaudio-dac.dtbo smi.dtbo
audioinjector-isolated-soundcard.dtbo iqaudio-dacplus.dtbo smi-nand.dtbo
audioinjector-ultra.dtbo iqaudio-digi-wm8804-audio.dtbo spi0-0cs.dtbo
audioinjector-wm8731-audio.dtbo iqs550.dtbo spi0-1cs.dtbo
audiosense-pi.dtbo irs1125.dtbo spi0-2cs.dtbo
audremap.dtbo i-sabre-q2m.dtbo spi1-1cs.dtbo
balena-fin.dtbo jedec-spi-nor.dtbo spi1-2cs.dtbo
camera-mux-2port.dtbo justboom-both.dtbo spi1-3cs.dtbo
camera-mux-4port.dtbo justboom-dac.dtbo spi2-1cs.dtbo
cap1106.dtbo justboom-digi.dtbo spi2-1cs-pi5.dtbo
chipdip-dac.dtbo ltc294x.dtbo spi2-2cs.dtbo
cirrus-wm5102.dtbo max98357a.dtbo spi2-2cs-pi5.dtbo
cma.dtbo maxtherm.dtbo spi2-3cs.dtbo
cm-swap-i2c0.dtbo mbed-dac.dtbo spi3-1cs.dtbo
crystalfontz-cfa050_pi_m.dtbo mcp23017.dtbo spi3-1cs-pi5.dtbo
cutiepi-panel.dtbo mcp23s17.dtbo spi3-2cs.dtbo
dacberry400.dtbo mcp2515-can0.dtbo spi3-2cs-pi5.dtbo
dht11.dtbo mcp2515-can1.dtbo spi4-1cs.dtbo
dionaudio-kiwi.dtbo mcp2515.dtbo spi4-2cs.dtbo
dionaudio-loco.dtbo mcp251xfd.dtbo spi5-1cs.dtbo
dionaudio-loco-v2.dtbo mcp3008.dtbo spi5-1cs-pi5.dtbo
disable-bt.dtbo mcp3202.dtbo spi5-2cs.dtbo
disable-bt-pi5.dtbo mcp342x.dtbo spi5-2cs-pi5.dtbo
disable-emmc2.dtbo media-center.dtbo spi6-1cs.dtbo
disable-wifi.dtbo merus-amp.dtbo spi6-2cs.dtbo
disable-wifi-pi5.dtbo midi-uart0.dtbo spi-gpio35-39.dtbo
dpi18cpadhi.dtbo midi-uart0-pi5.dtbo spi-gpio40-45.dtbo
dpi18.dtbo midi-uart1.dtbo spi-rtc.dtbo
dpi24.dtbo midi-uart1-pi5.dtbo ssd1306.dtbo
draws.dtbo midi-uart2.dtbo ssd1306-spi.dtbo
dwc2.dtbo midi-uart2-pi5.dtbo ssd1331-spi.dtbo
dwc2-pi5.dtbo midi-uart3.dtbo ssd1351-spi.dtbo
dwc-otg.dtbo midi-uart3-pi5.dtbo superaudioboard.dtbo
edt-ft5406.dtbo midi-uart4.dtbo sx150x.dtbo
enc28j60.dtbo midi-uart4-pi5.dtbo tc358743-audio.dtbo
enc28j60-spi2.dtbo midi-uart5.dtbo tc358743.dtbo
exc3000.dtbo minipitft13.dtbo tinylcd35.dtbo
fbtft.dtbo miniuart-bt.dtbo tpm-slb9670.dtbo
fe-pi-audio.dtbo mipi-dbi-spi.dtbo tpm-slb9673.dtbo
fsm-demo.dtbo mlx90640.dtbo uart0.dtbo
gc9a01.dtbo mmc.dtbo uart0-pi5.dtbo
ghost-amp.dtbo mpu6050.dtbo uart1.dtbo
goodix.dtbo mz61581.dtbo uart1-pi5.dtbo
googlevoicehat-soundcard.dtbo ov2311.dtbo uart2.dtbo
gpio-charger.dtbo ov5647.dtbo uart2-pi5.dtbo
gpio-fan.dtbo ov64a40.dtbo uart3.dtbo
gpio-hog.dtbo ov7251.dtbo uart3-pi5.dtbo
gpio-ir.dtbo ov9281.dtbo uart4.dtbo
gpio-ir-tx.dtbo overlay_map.dtb uart4-pi5.dtbo
gpio-key.dtbo papirus.dtbo uart5.dtbo
gpio-led.dtbo pca953x.dtbo udrc.dtbo
gpio-no-bank0-irq.dtbo pcf857x.dtbo ugreen-dabboard.dtbo
gpio-no-irq.dtbo pcie-32bit-dma.dtbo upstream.dtbo
gpio-poweroff.dtbo pibell.dtbo upstream-pi4.dtbo
gpio-shutdown.dtbo pifacedigital.dtbo vc4-fkms-v3d.dtbo
hat_map.dtb pifi-40.dtbo vc4-fkms-v3d-pi4.dtbo
hd44780-lcd.dtbo pifi-dac-hd.dtbo vc4-kms-dpi-generic.dtbo
hdmi-backlight-hwhack-gpio.dtbo pifi-dac-zero.dtbo vc4-kms-dpi-hyperpixel2r.dtbo
hifiberry-amp100.dtbo pifi-mini-210.dtbo vc4-kms-dpi-hyperpixel4.dtbo
hifiberry-amp3.dtbo piglow.dtbo vc4-kms-dpi-hyperpixel4sq.dtbo
hifiberry-amp.dtbo piMost48KhzStereo.dtbo vc4-kms-dpi-panel.dtbo
hifiberry-dac.dtbo piscreen2r.dtbo vc4-kms-dsi-7inch.dtbo
hifiberry-dacplusadc.dtbo piscreen.dtbo vc4-kms-dsi-generic.dtbo
hifiberry-dacplusadcpro.dtbo pisound.dtbo vc4-kms-dsi-lt070me05000.dtbo
hifiberry-dacplusdsp.dtbo pitft22.dtbo vc4-kms-dsi-lt070me05000-v2.dtbo
hifiberry-dacplus.dtbo pitft28-capacitive.dtbo vc4-kms-dsi-waveshare-panel.dtbo
hifiberry-dacplushd.dtbo pitft28-resistive.dtbo vc4-kms-kippah-7inch.dtbo
hifiberry-digi.dtbo pitft35-resistive.dtbo vc4-kms-v3d.dtbo
hifiberry-digi-pro.dtbo pps-gpio.dtbo vc4-kms-v3d-pi4.dtbo
highperi.dtbo proto-codec.dtbo vc4-kms-v3d-pi5.dtbo
hy28a.dtbo pwm1.dtbo vc4-kms-vga666.dtbo
hy28b-2017.dtbo pwm-2chan.dtbo vga666.dtbo
hy28b.dtbo pwm.dtbo vl805.dtbo
i2c0.dtbo pwm-ir-tx.dtbo w1-gpio.dtbo
i2c0-pi5.dtbo qca7000.dtbo w1-gpio-pullup.dtbo
i2c1.dtbo qca7000-uart0.dtbo w5500.dtbo
i2c1-pi5.dtbo ramoops.dtbo watterott-display.dtbo
i2c2-pi5.dtbo ramoops-pi4.dtbo waveshare-can-fd-hat-mode-a.dtbo
i2c3.dtbo README waveshare-can-fd-hat-mode-b.dtbo
i2c3-pi5.dtbo rotary-encoder.dtbo wittypi.dtbo
i2c4.dtbo rpi-backlight.dtbo wm8960-soundcard.dtbo
ok, couple of things, inside of pulse daemon, I think it needs to be 44100 instead of 44000.
Also I think on bookworm you need to change the audio service to pulseAudio. This is done in raspi-config.
You should then be able to get the card and device number from arecord -l (probably after a reboot)
Let me know if it doesnāt work and I will image a fresh pi5, just to double check you ran and built the dts file for the pi5 not the pi folder?
Yes, I used the pi5 dts. Iāve de-installed pulse, reinstalled pulse, no matter what I do, it does not see a card. It sees my 2 video captures cardsā¦ (I am using 2 usb video sticks for front and rear cameras). but no other sound cards:
allan@Nyomi:~ $ arecord -l
**** List of CAPTURE Hardware Devices ****
card 2: MS210x [MS210x], device 0: USB Audio [USB Audio]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 3: MS210x_1 [MS210x], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
If you wouldnāt mind imaging a working install, that would be great!
Have you set the OS to use pulse? since bookworm out of the box it uses PipeWire rather than pulseaudio, you can change it in raspi-config
Yes, unfortunately I did try that already. Iāve even de-installed and re-installed pulse. I am using the Raspberry PI imager to prepare, format, etc the boot disk if that makes any difference?
I just tried a new card, fresh install, step by step instructions, same result. It sees no audio device. When I run the messaging test, it does say āconnectedā after a few tries. It sees the canbus device, I can initialize that device no problem as well, it just sees no audio cardā¦
step by step:
1.) new card, using RPI imager, installed bookworm 64 bit to card
2.) Boot card, apt update/upgrade
3.) Using Raspi-config, switch to pulse, reboot
4.) Clone repo, follow instructions (using RPI5 overlay)
Nothing
It may be something has changed with the update.
Can you post the output of
dmesg | grep i2s
It shows zero output. itās enabled in /etc/firmware/config.txt though. If I try to manually apply the overlay:
allan@Nyomi:~ $ sudo dtoverlay piMost48KhzStereo
* Failed to apply overlay '0_piMost48KhzStereo' (kernel)
dmesg shows:
[ 173.844213] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /soc/sound/compatible
[ 173.844226] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /soc/sound/simple-audio-card,name
[ 173.844230] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /soc/sound/status
Update:
I found the board where you were speaking with someone regarding clocks I also see that there are numerous issues with the RPI5 and i2s soundā¦ following advice from another post, I did an rpi-update and got this, one time:
[ 3.595147] designware-i2s 1f000a4000.i2s: ASoC: error at snd_soc_dai_set_tdm_slot on 1f000a4000.i2s: -22
[ 3.595159] designware-i2s 1f000a4000.i2s: simple-card: set_tdm_slot error
[ 3.595161] 1f000a4000.i2s-dit-hifi: ASoC: error at snd_soc_link_init on 1f000a4000.i2s-dit-hifi: -22
Additional Update:
I have decided to rip my head unit apart and use an RPi4 to see if the MOST works. It does. The issue most (no pun intended) definitely lies in the pi5 config. I would REALLY love to use the 5. Switching to the 4 is very much noticeable in boot time, system response time, etc. But at least I think Iāve narrowed it down
I have 1 final āproblemā that perhaps you, or @ygoz might know the answer to (I hope):
On my test bench, I have a BMW logic 7 amp plugged directly into the piMOST. I have pins 1 and 2 on the MOST interface on the L7 amp shorted so it wakes up the MOST on the amp immediately, but I cannot get a lock on the network. I have updated everything from 48 to 44.1 kHz. I noticed that the amp wakes up, light is on, but then after approx 20 or 30 seconds, the light goes off. When I check status of the service, the messages state that the network is unlocked and then status is lost.
I currently am using this setup with v1 of my headunit, but that headunit is utilizing an aftermarket RCA to MOST little decoder box. Config in the car is as such:
Headunit ā MOST decoder box ā L7 amp
I suspect that this decoder box is supplying a āmasterā clock signal. Are you aware of a way to either put the piMOST into master, or provide the network clock? The entire point of this exercise for me was to eliminate that little black box lol. There is nothing else in the car plugged into this MOST network, I have removed the combo box from the car. Any ideas? Thank you for your time so far!
Thanks for all the feedback! It will be back to working on a pi5 I just need to get the time to figure out what has changed in the latest update.
As for master mode this is something that hasnāt been explored at all so there is zero functionality available within drivers, however at some point in the future it would be something to add, however there are alot more functions that will likely be implemented first.
What is the decoder box doing and why does it need to be removed? You can hijack the streams using the pimost to be able to send what you want. It would be great to get a bit more detail on what it is you are looking to achieve!
For the error after your update, would you mind sharing your .dts file, just want to check nothing has changed. The incorrect slot width is where it should be saying 16.
Of course. I am available anytime for a call or Skype, etc. I can explain and show you what I am doing. it would be very much easier than trying to lay it all out here. I can also give you ssh access to the pi if you wish so you can poke around and retrieve whatever you like. Iām in the US, and Iām usually up until 4am PST at the least. Iāve been a developer my entire life, Iām just wired to be up all night Anytime you are available for 5 minutes to have this quick chat, I can make time.
Oh wowā¦ attack of the typos! Ok, Iām formatting a fresh card to start over and Iāll report back shortly! Thank you very much for looking into this. I have a silly question though: I tried it with my pi4, it saw the card, etc. but I have no sound. I have the correct values in the piMOST screen. I have yet to see the light on the piMOST activateā¦ is that correct? For example, the fiber light on the amp comes on, and after about 30 seconds, it turns off. The piMOST at no time flashes the LEDā¦
If you are looking at the back of the transceiver on the pimost which light comes on? left or right? Is this straight after applying power? And do you have a master on the network?
Sorry for the bunch of questions, but unless sync to the input is achieved, the light wonāt show.
Think there may have been a slight bug. If you pull the latest version 2.0.30, then run npm run build
it will hopefully lock on