"ReSpeaker Lite" - new Seeed Studio Voice Assistant Development Kit hardware combine ESP32 with XMOS XU316 DSP chip for advanced audio processing as a ESPHome-based Home Assistant Assist Satellite voice devkit

Daaamn that’s thorough analysis!
Could it maybe be caused by power supply? I have distortions with line-out on my other project with S3 and external DAC involved, and couldn’t get rid of them…

Yeah i use speakers so far on Respeaker everywhere…

Matbe try adding a ”ground loop isolator” to the speaker?

Thanks guys.

I think if it was a ground loop problem I would have the noise all the time, the noise doesn’t happen on code that I have written using esp-idf.

Could well be something to do with the power supply, it’s being powered from a Mac but I am thinking it is maybe WIFI related. The code I have written doesn’t have the WIFI in use but does have the same powering.

I’m still confused why I didn’t have this noise a week or so ago and it only appeared with all the new versions of HA and ESPHome. Computers eh!

I know that in new versions HA is resampling the audio for ESPHome to avoid doing it on device. That’s all I know…

1 Like

Just wanted to say thanks to everyone for all of your efforts on this (specifically @formatBCE ). I’d given up on the project due to my frustrations with the default yaml file, but thanks to ginandbacon finding my thingiverse project and referring me here I’ve got a fully functional setup!

For those interested I have 2 3d printable enclosures below. The first is my first attempt that lacks some of the features I wanted but is fully built and tested, as well as having a part manifest. The second I just finished a first pass and am preparing to print to test tolerances. The second is wall mountable as well as has a stand. The goal was to build an enclosure that can be mounted on a wall with PoE to USB C so it is clean and gives more options on placement, while still allowing for a traditional table-top stand if preferred. It also has more cubic volume in the speaker enclosure, which I hope will improve sound quality and volume.

Feedback welcome. Hope these help someone!

FWIW @AndyCap I have another design where I had a much larger box with a 3" speaker and an amp. I tried to power both with a single 24v power adapter using a buck converter but never was able to eliminate the noise from the 3.5 mm jack. I also tried a ground loop isolator and while it was much less pronounced, it was there and the gain was severely reduced so I gave up on it. I assumed it had to do with the power sharing but maybe something else is going on. For now I’m sticking to the 5w onboard.

2 Likes

Nice one. I saw your v1 housing, but decided to do my own.

I already have them printed, but decided to take another round, because i wanted to add more physical buttons, expose a jack for those wanting it, and improve the look a bit. Working on that right now.

Since we only have one pin (D2) exposed that we can use (instead of soldering USR button to it, which is actually pretty useless in most of places), i used schema similar to this to connect 3 buttons: https://camo.githubusercontent.com/99e33a220dd1d102bdd2070c2eedd96c7d3388c4d0b1c54a04df2f2398400148/68747470733a2f2f342e62702e626c6f6773706f742e636f6d2f5f6d68757548523064786e552f5446374b65736e35676d492f4141414141414141454e672f4a6552437450326f4e4e732f73313630302f616e616c6f675f627574746f6e5f696e7075742e706e67

Now i have volume +/- functionality, as well as multi-function button. Also routed microphone mute button to the convenient place. The only disadvantage is, that it’s not just simple copy-paste yaml now, as that buttons should be adjusted…


On the other news: Seeed guys published 48kHz sample rate firmware. It won’t work out of the box though, since PE libs we use doesn’t have resampler for microphone (we should downsample to 16kHz). If someone has more experience in C++ than me (basically above copy-pasting someones code that’s me), please think about writing resampler. I tried to get into it, but it takes much more focusing than i can afford right now. Kevin says it should be simple using esp-audio-libs, since it’s just 3x downsampling. But it would require modification of PE code itself, since microphone code there doesn’t even have ability to include resampler…

1 Like

The V1 version looks great if you use a translucent PETG variant. I used a light translucent blue and the HA logo really comes through when the listen light comes on. You can’t see it with a solid color PLA, at least not shine through.

I am going to take this as DON’T flash this firmware yet then or you will have issues, correct? At least when using the yaml you posted on github. Odd that they have a 1.0.9 then a 1.0.9_48Khz. Maybe they have something special for 1.1.0, lol. Actually I am just glad Seeed is actively working on and updating the firmware. I wasn’t expecting much off past experiences but kudos to them.

Yes, don’t flash it!

I actually made a bit of hype on Reddit for their support, so they contacted me and asked what is needed. I put dozen of things, which they already made. :slight_smile: 48kHz firmware was toe hardest part… I’m glad they started that repo with docs, pinout, examples and firmware!

On the enclosure - it looks great for geeks like us, but doesn’t comply with my family approval factor. Mine does tho. :slight_smile:

2 Likes

The range of the device and the accuracy is shocking at times. I’ve had a mic in another room respond when I was testing something in my living room and didn’t realize the LR device was powered off. That aside, I’m more focused on audio quality now. What I miss the most about Echo is the volume and sound quality to size ratio. I have never once muted and only when the time it takes to press a volume button is less than opening an app have I even touched the devices at all, so for me button access is at the bottom of the list. I have a 2 inch Dayton Audio speaker delivering tomorrow that I’m really hoping outperforms the cheaper speaker I grabbed from Amazon. I don’t need this to sound like the Echo premium, but I would like it to be a touch fuller and a touch louder. Once that part is where I like, I’ll consider cosmetic improvements and maybe bringing the respeaker lite forward for button design/access, but I wanted to be certain those mics had as much exposure as possible to start.

1 Like

The acoustic chamber of enclosure itself also plays part in sound.
I posted the photo of mine a bit earlier (that is v1):

It has surprisingly good voice quality (speaker is from Amazon too).

Other thing is that playing decent music isn’t possible yet due to 16kHz sample rate…

1 Like

I’m focused on music. The voice is perfect with the current iteration. And yeah I know music is limited at 16 but I also know it can be better (sounds much better on bose companion through 3.5 mm, for example. so just trying to squeeze out enough of an improvement to shed the Echo solution for good.

If you get around to posting your stl files for the enclosure you made I’d love to print one and try it out.

2 Likes

You are going to be limited to power output of the Dev board and any associated noise it picks up. There is only so much the digital to analog signal can do over JST powered via USB. Even though it’s 16khz over thee 3.5mm jack, you’re still sending it to something that probably doing some extra audio processing even though it’s already an analogue signal.

When running 3.5mm to my AMP only (DAC is separate) using a 3.5mm to L/R RCA adapter cable music sounds very good. Not as good as going through my DAC using say, a media player over USB/optical but it’s way better than any JST speaker, at least any speaker I have tried that the Dev board can actually drive.

1 Like

Ok interesting. What sort of noise was it? A general constant noise floor or changing depending on what the re-speaker was doing?

Here is what I get, so noise floor first, then broadband noise, then ‘silence’ with audio corruption and answer. : Dropbox

I can probably help you out with that if you direct me towards the code that needs changing. is it GitHub - esphome/home-assistant-voice-pe: Home Assistant Voice PE ?

As an aside I have started looking at getting HA running on one of these PÚCA DSP — OHMIC which has the advantage/disadvantage of not having the XMOS chip and far better audio quality. If I ever get it going I will let all you guys know!

As another aside is the XMOS source available anywhere, I have some XMOS development kits including an AI board and it would be interesting to see what they are doing and have the ability to modify it.

3 Likes

No doubt. All clear on that front. But limiting it to just a speaker and the kit is appealing from a cost, size and simplicity perspective. So I figure a little effort in CAD and a couple speaker trials could net a noticeable difference and that’s worth it to me.

oh wow. yeah nothing like that. I checked last night and it doesn’t happen at all when I eliminate the buck converter. When I power them separately everything is fine so it has to be a ground loop. I just wish I knew how to keep it from happening without an isolator that destroys gain and quality as I can fit them both in a small enclosure and really spice up the quality of music playback. But I am woefully ignorant on this stuff.

Yes indeed, this code. Please take a look, that would be awesome!

There’s a lot of discussion ongoing about it here:

You can read last ~50 messages for context. :slight_smile:

Also I can ask questions to Seeed dev, who made 48kHz firmware, if needed.

1 Like

Super, I will take a look…

Also, do you have a link to that firmware?

Yup, here: ReSpeaker_Lite/xmos_firmwares/respeaker_lite_i2s_dfu_firmware_48k_v1.0.9.bin at d272ef8059b7f39dbadb9d791b67a75ecd4b6dbd · respeaker/ReSpeaker_Lite · GitHub

2 Likes

Nice one, thanks :slight_smile:

1 Like

Some corrections to make but I’m generally satisfied with fitment. Need to reprint with changes and put it all together for testing but it’s moving along.

4 Likes