• WANTED: Happy members who like to discuss audio and other topics related to our interest. Desire to learn and share knowledge of science required. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

ASR Open Source Streamer Project

phofman

Addicted to Fun and Learning
Joined
Apr 13, 2021
Messages
502
Likes
326
So you have the module, modprobe does not complain, yet the module does not load (lsmod)? What does dmesg say when you run modprobe? Thanks.
 

phofman

Addicted to Fun and Learning
Joined
Apr 13, 2021
Messages
502
Likes
326
And dmesg -w while running the modprobe? Nothing printed into dmesg?
 

phofman

Addicted to Fun and Learning
Joined
Apr 13, 2021
Messages
502
Likes
326
I did some troubleshooting on RPi4 with raspbian (latest kernel 5.15 but that may not matter).

In Raspbian the dwc_otg is compiled into the kernel image, not as a module. modprobe dwc_otg outputs nothing, nor does dmesg, because the dwc_otg driver is already loaded at kernel boot.
Grepping the boot log yields the info:

Bash:
pi@raspberrypi:~ $ dmesg | grep -i dwc_otg
[    1.394911] dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
[    1.395276] dwc_otg: FIQ enabled
[    1.395287] dwc_otg: NAK holdoff enabled
[    1.395296] dwc_otg: FIQ split-transaction FSM enabled

I had to enable the host mode to get the USB-C port become host by adding otg_mode=1 to config.txt and NOT adding dtoverlay=dwc2. That switched the USB IP core from dwc2 to standard xhci and the controller appeared in lsusb -t. Any USB device plugged to the USB-C now is enumerated and works (not tested the performance, just enumeration) - a USB flash drive in this case:

Bash:
root@raspberrypi:~# lsusb -t
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/0p, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M
    |__ Port 1: Dev 3, If 0, Class=Mass Storage, Driver=usb-storage, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
 

mdsimon2

Major Contributor
Forum Donor
Joined
Oct 20, 2020
Messages
2,513
Likes
3,366
Location
Detroit, MI
I did some troubleshooting on RPi4 with raspbian (latest kernel 5.15 but that may not matter).

In Raspbian the dwc_otg is compiled into the kernel image, not as a module. modprobe dwc_otg outputs nothing, nor does dmesg, because the dwc_otg driver is already loaded at kernel boot.
Grepping the boot log yields the info:

Bash:
pi@raspberrypi:~ $ dmesg | grep -i dwc_otg
[    1.394911] dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
[    1.395276] dwc_otg: FIQ enabled
[    1.395287] dwc_otg: NAK holdoff enabled
[    1.395296] dwc_otg: FIQ split-transaction FSM enabled

I had to enable the host mode to get the USB-C port become host by adding otg_mode=1 to config.txt and NOT adding dtoverlay=dwc2. That switched the USB IP core from dwc2 to standard xhci and the controller appeared in lsusb -t. Any USB device plugged to the USB-C now is enumerated and works (not tested the performance, just enumeration) - a USB flash drive in this case:

Bash:
root@raspberrypi:~# lsusb -t
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/0p, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M
    |__ Port 1: Dev 3, If 0, Class=Mass Storage, Driver=usb-storage, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M

Thank you for troubleshooting! Tried this with the CM4 running Ubuntu and the Ultralite Mk5 and it now sounds great, absolutely no crackling. Haven't listened to it very long but that definitely seems to have solved the issue.

Michael
 

phofman

Addicted to Fun and Learning
Joined
Apr 13, 2021
Messages
502
Likes
326
Thanks for the great news! We all learned a lot by this issue. Previously I did not know about dwc_otg and its huge performance difference compared to dwc2 in the host mode. Will certainly come of use in the future.
 

somebodyelse

Major Contributor
Joined
Dec 5, 2018
Messages
3,754
Likes
3,053
Am I right in thinking 5.15 includes the gadget audio feedback, so our streamer could potentially have a USB connection to a Windows PC now?
 

phofman

Addicted to Fun and Learning
Joined
Apr 13, 2021
Messages
502
Likes
326
Right, 5.15 (incl. the raspberrypi fork 5.15y) has complete support for enumeration in windows usbaudio2.sys and fully working async playback.

Async capture (EP IN) patches are already accepted for 5.16. Patches for feedback control for both directions are pushed to upstream alsaloop https://github.com/alsa-project/alsa-utils/commits/master/alsaloop.

My rebased patches for multiple rates are still with their original author for approval, if anyone wants to test them I will happily fork the github rpi kernel and push the commits.

Still a key feature is missing - communicating to the gadget side that host side started playback/capture. I have asked about options at the mailing list several times, no answer yet https://www.spinics.net/lists/alsa-devel/msg131937.html . I would be happy if USB gurus helped on this.

The gadget as is has full support in camilladsp because Henrik solved the problem of the host playback start/stop with repeated opening the capture device if it fails to provide data (config param avoid_blocking_read).
 

mdsimon2

Major Contributor
Forum Donor
Joined
Oct 20, 2020
Messages
2,513
Likes
3,366
Location
Detroit, MI
I received a late Christmas present to myself from Italy today, the case turned out very nice if I do say so myself. Will probably open a new thread to discuss in more detail but here is a teaser pic.

IMG_7444.jpeg


Michael
 
Last edited:

mdsimon2

Major Contributor
Forum Donor
Joined
Oct 20, 2020
Messages
2,513
Likes
3,366
Location
Detroit, MI
Also purchased an alternative 3 mm faceplate as a lower machining cost option, also looks pretty nice although the 10 mm is certainly cleaner due to lower fastener count.

IMG_7434.jpeg


Michael
 
Last edited:

mdsimon2

Major Contributor
Forum Donor
Joined
Oct 20, 2020
Messages
2,513
Likes
3,366
Location
Detroit, MI
Yes Modushop, DIY Audio Store is the US distributor but I ordered direct as it was slightly cheaper in the base case at current exchanger rates and they had a 20% off black Friday deal.

Like I said I am drafting a new thread with all the detail between the case, streamer, display and remote control.

Michael
 

Madjalapeno

Senior Member
Forum Donor
Joined
Aug 13, 2021
Messages
463
Likes
1,122
Location
NH, USA
While we sharing builds, mine is up and running.

Another diyaudiostore.com, but a cherry front and lasercut (sendcutsend.com) front bezel.

Raspberry Pi CM4 with Topping A10s, Neurochrome volume and input selector, VU meters and EVOR04 Spectrum Analyzer.


4459AE29-4903-453B-A364-645EC32BE891_1_105_c.jpeg


249055C1-7811-4A58-AA9B-B54F0232A678_1_105_c.jpeg
 

taoofdre

New Member
Joined
Mar 14, 2022
Messages
2
Likes
4

Got to ASR because of all the cool work y'all are doing on the open source Directiva speakers as well as the streamer. This is my first post! Catching up on this thread, I just wanted to also point out the associated OtterCastAmp

https://cast.otter.jetzt/devices/ <-- first item on page

The amp has
- two Ti TAS5825M boards, each with 30w x 2 channels (so 30w x 4 total channels)
- the amps have programmable DSP (active crossovers, EQ) <<-- not sure how user-friendly this is
- the front end streamer has the same support as the standalone ottercast (snapcast, Spotify Connect, open source Airplay, and Pulseaudio)
- also includes a 3.5 line-in

If the Directiva speakers both can be driven by a 4 channel amp with an active crossover, then this could be a really cool low-cost solution:
- ottercastamp is the low-tier
- minidsp 2x4HD + cheap standalone class-d amps is the mid-tier
- minidsp flex + hypex amps is the high-tier
- deqx is the ::burning money emoji:: tier

I'd even say that the community could use this as the basis of a "dorm room audiophile" level system (maybe a DZERO bookshelf speaker that's bass profile comes from being next to a wall, powered by this low cost amp + streamer).

Would be fun to shoot for the best bang for buck open-source active hi-fi system possible as some future iteration of Directiva.
 
Last edited:

gitaarwerk

Member
Joined
Oct 10, 2022
Messages
45
Likes
29
Is there still progress on the project? I haven’t read through all pages, but I was already designing my own GUI just never had a kick in the but to continue to work on it. Now im looking into streamers again, I wanted to start my own player. If not a streamer, then just a remote. I had to stop working on Volumio 2 due to some pribate stuff years ago; I still don’t like the interface.

I’m currently working on another interface library; And that could be used inside of the UI. (In short, it mimics metals and plastic materials and on mobile, it reacts to orientation of the phone; so its excellent for this kinda stuff. Still some refactorwork for version one. Anyways,.. would be cool to slowly work on this. Perhaps for the best I didnt apply to spotify for a job yet ;) (sidejobs like this not allowed).

Anyways, hit me up if anything is still going. Got 25+ years in web/front end devs and designing.
 
  • Like
Reactions: jsm
Top Bottom