Omega2 and I2S Chip
-
I am new member of Onion Omega Community, but until that point I was using several Linux boards in various projects (mainly Raspberry Pi). I never used anything OpenWRT based however.
I am interested in connecting I2S audio codec to the board. I prefer designing my own mainboards consisting needed peripherals, instead of stacking prefabricated modules.
Is there any popular chip with guaranteed compatibility with the Omega 2? With RasPi I was using wm8731, but they are much harder to get today. I mean something not needing complicated configuration and/or compiling own drivers.
-
@Atlantis I tried to use a MAX98357A, see here, exactly for the reason this is just i2s output without complicated configuration.
However, none of these codecs (simple or complicated) will work without the ALSA/ASoC driver infrastructure present. And that's a task for @Onion (as long as they don't fully opensource as promised - once they do the community could help).
As far as I can see, the main obstacle is that there's a problem with the DMA and/or the i2s driver for the MediaTek MT76xx chips, which should work for the MT7688 but apparently does not (see this post in OpenWrt).
So once again: @administrators - please open source the Onion FW build, so things like this can be tackled to the benefit of all Omega2 users, instead of letting them lingering unsolved for months.
-
@luz
So... As for now i2s functionality is only available in theory, but can't be yet utilized practically? Did I understand correctly? Is there any chance this situation will change in the nearest future, or should I rather stick with Raspberry Pi when designing audio-oriented devices?
-
@Atlantis As far as I can see, that's indeed the current status
I must admit that I didn't try hard with the original firmware lately, as I use my own LEDE build (where I can at least try to build the right i2s kernel modules).
But judging from all sound related questions in this forum, I don't think anybody has a working setup so far. Please correct me if I'm wrong!
Regarding chances of improvements - once somebody can fix the bug that causes the crash when i2s DMA is started, I'd expect the rest to work. The incentive to invest time here is (here comes my ceterum censeo, attention @administrators) however damped by the fact that even if I get something to work in a LEDE build, it'll be of no use for the general community, as there is no way to improve the onion firmware for third parties until its build setup is open sourced!
-
Small update: I followed the track Sven started in November a bit through kernel sources and found that the BUG-ON() statement which causes the crash might be itself a bug, because it blocks a code path that seems legit to me. At least, when I experimentally removed the BUG_ON(),
aplay
does not crash any more but produces a i2s WS signal for the right durationHowever, no sound yet - I haven't been able yet to check if this is a problem of my hardware (with very difficult to solder MAX98357A) or still DMA not piping the data to the i2s. I'm also trying to check with the author of that BUG_ON statement to find out why exactly he did put it there.