@RadxaYuntian, I have not heard back from Ken.
I followed the instructions here, but could not get sound card to work on USB-C. Is it possible to connect a USB sound-card to the Type-C connector?
You cannot follow those instruction since you need the USB-C to work as host instead of device mode.
Please first check when a powered USB hub is connected on ROCK S, can it recognize the USB devices on the hub. You can see connected USB devices via lsusb command.
I powered the ROCK S via the 5V pin, and connected multiple USB-C sound-cards.
None of them appear via the lsusb command.
I connected a USB-C powered hub (that works on another machine), and connected multiple USB-C sound-card.
No new devices/hubs appear via the lsusb command.
The USB C doesn’t support OTG mode detection, you need to enable HOST mode on the USB C port of the Pi S by change the device tree, something like this:
Hi @jack and @nzak ;
Do you have specific instructions on how to switch the USB-C connector on the RockPi-S to host mode? I’m running Armbian Linux.
I’m not really able to follow the procedure laid out here, if that’s what you’re trying to accomplish.
TY, @nzak. That zip folder has a .dtbo file, not the .dts.
If I had the .dts, would I need to move it to the /boot/overlay-user folder before running armbian-add-overlay ?
Also, have you tried this specific method, rather than editing original rk3308-rock-pi-s.dts file? I have tried a few things (I’d rather not edit the original file, but add just this small usb-sound.dts file), and I’ve yet to have the USB-C file become a host port.
I’m running Armbian Bookworm 24.8.1, btw.
Spent a LOT of time on this, with help from chatGPT, not sure if it’s leading me in the right direction, but I did finally get it working with it’s help.
Seems that the ONLY way I can get the USB-C to work as host is by decompiling rk3308-rock-pi-s.dtb, editing the dr_mode line, then recompiling it back to rk3308-rock-pi-s-2.dtb and pointing ftdfile to the edited version in /boot/armbianEnv.txt
Creating user_overlay or even adding an overlay to overlays= does not seem to work. It MAY be that the version of Armbian isn’t loading ANY overlays at all! It certainly appears that way, anyway…
I have no idea what I’m doing, but should I not see any overlays I’ve added referenced in /proc/device-tree?
I have the line overlays=s0-ext-antenna bs [email protected] sdio@10mhz in /boot/armbianEnv.txt but I do not see any of those items when running ls /proc/device-tree. Should I see them if they’re being loaded?
IIUC overlays are loaded at boot by U-boot and kernel receives already updated tree. IME in order to troubleshoot overlays it’s necessary to monitor bootloader messages via serial port. I have a USB-serial interface hooked to Pi S, using linux minicom is quite reliable.
But note - a fast USB-serial chip is required as uboot configs the UART at 1.5Mbps which is quite fast. CP2104 works OK, previously I had a slower one (I think PL2303) and was getting many dropped characters/lines.