I didn’t get any delivery notices yesterday yet we arrived back from the market to find a package from China with SEEED written all over it.
Inside, a SEED “Mono Enclosed Speaker 4R 5W” – not sure what any of that means – 5W in a tiny speaker with the active part no more than 32mm diameter? Back in the dark ages when I actually cared about loudspeaker specifications (WiFi fanatic in the 80s and 90s), for something that size to output 5W – the 5W would be PEAK “music power PMPO” and the true “RMS” value would be CONSIDERABLY lower… BUT I DIGRESS ALREADY.
This is a small, neat speaker to work with SEEED’s “ReSpeaker” kit – which also arrived today. Oh, the speaker: in case, it isn’t obvious from the photo, has a NICE neoprene rim and looks like it will give out some bass. The plastic case seems solid as well.
Wondering about my hi-tech studio backdrop? table outside the pergola – who in their right mind would be in a studio in this nice autumn southern-Spanish weather…
Before I get into the ReSpeaker, they ALSO sent a 3-pack of SEEED XIAO-ESP32-C6 boards with external antenna connectors – AND a ceramic built-in antenna – whereas the ReSpeaker board comes with one of these XIAO-ESP32-S3 boards built in, with an external antenna and NO in-built antenna. AS it later turns out – the ESP32-S3 board on the Re-Speaker is optional anyway and not needed for basic operation.
Oh well, in at the deep end… as I have 3 boards and no instructions, I’ll just dig in and try to install WLED on one of them – straight from a USB-C connection on my Windows PC. I had some AliExpress ESP32-C3 boards weeks ago and all they did was get very warm and would NOT install WLED (though I later found that if I installed TASMOTA first I could THEN overwrite them with WLED. I decided to give the tiny C3 boards a miss from now on (there is also supposedly some GPIO issue with them) – so I’m interested to check out these REALLY tiny C6 boards (15mm * 18mm excluding 2mm USB-C connector overhang).
Thinking about it, I didn’t get ANY instructions – but then it’ll all be on the SEEED Studios website somewhere… more of that later. So, one C6 board, plugged into USB-C on my PC, no external antenna, hopefully no button pushing (tiny reset and programming buttons ARE provided as usual for such boards – but see later note). It started with the comforting noise from my PC speaker showing me a device was connected serially, then a flashing yellow light and a constantly-on RED light.
As I was writing this, the RED light turned off and stayed off – the yellow continued to flash – which IMMEDIATELY made me want to check to see if the board as pre-programmed with at least it’s own local access point, before blowing that all away with an attempt at OTA WLED flashing. Off to my phone looking for new access points…
No, definitely no new access points… yellow light still flashing, red light still off. Next, off to the WLED installer website.. https://install.wled.me/ – PC showed the serial port was connected (without pressing any buttons on the C6). “INSTALL WLED” says my PC screen. “Your ESP32-C6 board is not supported”. OH WELL. Looks like back to Wemos D1 ESP32 boards for WLED (or of course a simple ESP8266 board if sound-reactive moded is not needed).
Console says there is something there already – see image left. Still flashing yellow and only marginally warm. I’m sure I’m missing the point here, but hey, I have three of these modules – worse case I can end up losing one…. onwards and upwards… the C6 board has WiFi 6 apparently – though why we’d need that on a tiny IOT board I’m not sure… 512k RAM, 4MB FLASH… I could rant about the various power modes but I’m assuming that’s all down to the ESP32-C6 – or is it?
If you want to program these boards from the Arduino IDE then you may find the C6 is not supported by default so you’ll have to add in more options from a json file on the espressif website into the Arduino IDE board manager – supposed to be a simple matter – though I’m not seeing any reference to the C6 on that link right now.
Ok, half an hour later, yellow light still flashing – lI tried the Tasmota web flasher… looking at the online Tasmota flasher – no mention of the ESP32-C6 there either though there are options for the ESP32-S2, C3 and unofficial binaries for the S3. No mention AT ALL about the C6.
I did say I have 3 of these boards so I went for the standard Tasmota binary install – I seem to recall it worked on the C3. AND – “ERASE?” Sure. “Erasing”…. “Installing”…
Off I went to the Tasmota online flasher console – and put in my nearest 2.4Ghz Wifi and password. At first I thought the thing was going to fail as I spotted a couple of reboots – but I kept watching and soon – a stable Tasmota appeared on my network with one of those awful automatic hostnames and an IP address I could punch straight into the browser.
Yup, looks like a good start at least for Tasmota.. See image left… remember – no button pushing on the C6 board unlike the C3 where I had to do some careful timing with the programming button in order to flash anything…
So, with Tasmota started up – I was expecting to get no-where even now with WLED and sure enough, WLED would still not install, so next I tried ESPHOME.. I have ESPHOME on a RASPBERRY Pi 5 and I talk to that via my PC. I also have Home Assistant on the Raspberry Pi and again only ever talk to it via the PC (web browser). So – same board, same port on the PC, I went to my Home Assistant Home page (port 8123).. and from that menu to my ESPHOME page.
New Device – open up ESPHOME WEB in the menu… this for me is the scary part.. CONNECT… it asks for a serial port – same as before (I neither rebooted nor disconnected the ESP32-C6)…
“Failed to open the serial port” (and that yellow light stopped flashing I guess when Tasmota started up) – ok, I disconnected the leadpower lead to the C6 and reconnected it.. RED light on – no yellow light…
“Prepare for first use” appeared on the ESPHOME screen… (red light had gone out). “Prepare your device for first use” – I responded by hitting INSTALL.”Error: unsupported platform ESP32C6. Only ESP8266, ESP32, ESP32S2, ESP32S3, ESP32C3 are supported”. Another dead end.
Oh, well, at least I’ve three tiny boards for Tasmota now… AND on my test board, the Tasmota webUI no longer worked – back to the Tasmota online installer…
This time I chose NOT to ask for an erase, curious to know if my WIFI details were still intact… yes they WERE. In the serial console on my PC I entered “ipaddress1” – got it and so from now on could work from the Tasmota webUI.
In the midst of this apparent lack of anything new – I should point out that the Tasmota screens came up very quickly…..
I went onto the main Tasmota page – configuration – module – that looks fine – though not all those pins on the right are available on this C6 module.
Under WiFi settings – I set the “Hostname” to simply “esp32c6”. I also put in my MQTT details and under configure – other – setting “Device Name” and “Friendly Name 1” again to esp32c6.
At this point I was fairly sure the board would DO something if I connected stuff to it so I mounting connectors to have a quick play. I hate to increase the height of this really nice small board so I put connectors UPWARDS to minimise the increase.
Firstly to clarify – I used the ESP32C6 because because it was there – right now I’ve no idea whether the C6 (which as we’ve seen only works on some platforms), will be any better than any other ESP32 board) – 4GB storage I hear someone say – 160Mhz I hear someone else say- but thats pretty standard on ESP8266/ESP32 boards I’ve already used.
Meanwhile I was wondering if you can increase the clock speed on an ESP32? Well, it seems you can… read this link for more.. it seems 240Mhz is valid – I’ve not tested that.
Ok, connectors on – would the board do anything… meanwhile – diversion – I like that battery connection on the bottom but initially had no idea what it would be useful for.
Good job I didn’t need to press any buttons on the board – I’ve worked with COUNTLESS ESP8266 and ESP32 boards before, never seen buttons anywhere near THAT small (almost out of sight on either side of the USB connector above) – my thumbs would just not handle it. Before I risked blowing up the board, I figured I’d power it with the standard USB connection, to light up a LED on a port pin. But firstly – I wondered how to turn off that RED LED (yellow one remains off) – it’s not a dumb power LED as it went off during my aborted attempt to install ESPHOME.
Looking at the pins on that list above, none were initially set up so no idea what the RED LED is attached to.
Soon I’ll try using a CR2032 battery for power and – the last thing I’ll want is a LED sitting doing nothing useful but consuming power. Anyway, the RED LED went off after a minute or so. WHY? No idea, disconnect, reconnect, LED comes on… wait a minute and it goes OFF. That’s too long for MQTT connect or WiFi connect… during that minute I touched nothing. I asked SEEED for an explanation, the response wsa less than helpful.
So, I added a handy green LED (built-in resistor) to ground and D4. In Tasmota configuration, module, telling it that GPIO4 is a relay… I toggled it in Tasmota webUI – nothing – it turns out that here we still have that pesky Arduino numbering.. I went off to the SEEED site to look at pin numbers, not a good start – the pin section wasn’t showing images.. Tasmota here on my board was only showing GPIO numbers – not the D equivalents… I found this resource for Tasmota and the SEEED ESP32C6 but that still didn’t tell me what GPIO D4 is…. and strangely the “PINOUT” image on THAT page is also image unavailable….
AH, found it at last – mapping of D numbers for GPIOs on this board – possibly the same for all ESP32s but I wanted to be sure. . D4 is GPIO22. Ok, that’s a start, now I had a LED I could switch on and off from the Tasmota webUI. Next, a tad more ambitious – same data pin, gnd and 3v3 to a handy strip of 10 ws2812b LEDS I had handy, changing the Tasmota module setting for GPIO22 to ws2812 accordingly.
At the Tasmota console:
power off pixels 10 power on color1 100,0,0
So, now I had a set of 10 ws2812b lights all on, running in dim red. Next, set LEDs individually.. this time in hexadecimal…
led2 #006600
Now I had the LEDs in that original red except for LED2 which I set to green. Better yet, individual control with blanks allowing successive LED control – starting at LED 2 in the Tasmota console example below…
led2 #004400 #004400 #004400 #000044 #000044 #000044
NOW, before this looks like I went off on a tangent, I’m didn’t… I’m testing the board – this mix works perfectly, starting at LED2 a series of colours, leaving the last 2 LEDS red as they were originally – BUT it’s working perfectly on the 5V pin, NOT the 3v3 pin. I had initial success up to all dim red on 3v3 but thereafter no luck. I tried this endlessly on the 3v3 pin and could I get the greens and blues to work properly? – no way!
So whatever the 3v3 regulator is on this board, I guessed it is TINY and not meant to handle any peripherals (I usually tun small numbrs of LEDs off the 3v3 supply on ESP8266 and ESP32 boards without issue). I’m running off a decent USB supply of the kind that runs many dozens of LEDs on a typical ESP32 board or ESP8266.
I have to say, as I was doing those first red tests, I did note that the lights were flickering a little but put it down to the supply. When I switched to the 5v pin (remember I’m running the lot from the board USB-C connector) the flickering vanished.
THEN I realised the reason the 3v3 supply on this SEEED board is different to what I’m used to. Low power use. Soon I’ll test battery power and expect even without messing with sleep modes to see much less power-use than a more normal linear 3v regulator of the kind you might see on a Wemos D1 board for example. It’s worth getting hold of one or more of these SEEED boards if only to check out battery possibilities.
I then decided to use Tasmota console command – running a continuous rainbow.
In the Tasmota docs – commands – lights section – scheme 11 is a continuous rainbow – for me that produced red and green sequencing lights – Tasmota scheme 12 is supposed to be a fire pattern but in my case it was scheme 12 that produced a rainbow 🙂 Not a patch on WLED – but then I can do all sorts of other things on the same board while this is running (in theory at least – and I did that a long time ago on an ESP8266 with mixed stability results – hopefully this latest ESP32 board will be more stable).
scheme 12
As an aside – why Tasmota scheme 12 instead of the documented (in Tasmota – commands – lights – on their web page)? Confused I went off to the Tasmota forums and asked the question. As usual when I go asking Tasmota-related questions, a chap called SFROMIS (who has helped me several times in the past) came back with a quick answer – I’ll include his response below:
No bug, just a quirk, as you did not get the numbers right. When reading the docs for the Scheme command, you need to pay attention to this part: Note: If using ESP32, or any build with the DDP feature (USE_NETWORK_LIGHT_SCHEMES), enabling DDP is Scheme 5 for plain RGB and Scheme 16 for addressable leds. Then the normal neopixel scheme numbers become 6-15 instead of 5-14 Hence, your scheme 11 for rainbow instead becomes scheme 10 for kwanzaa.
I didn’t TOTALLY follow that(no idea what KWANZAA is) because as usual, I did not BUILD Tasmota but used a standard BIN file available on the Tasmota web installer and hence simply use the scheme commands as needed without thinking too deeply about them. However, problem solved and I’ll know better next time.
As for the ceramic built-in antenna on these SEEED XIAO-ESP32C6 boards, seems just like most other ESP32 boards I’ve used for range. Rather handy having the click-on external antenna option.
That took a LOT longer than I was expecting – I learned a lot thanks to the above – about low power mode, about Tasmota ws2812b LED driving – and lots of other things – also I see these SEEED boards in my future next time I need low power battery use.
And finally, before leaving the SEEED ESP32C6 board, they just sent me a useful link on their site which explains the difference between the C6 and other ESP32 boards and it answers all my questions – maybe yours? If you’re an Arduino IDE fan, you’ll LOVE this. Ok, this lot has my interest… 2.4Ghz Wifi 6 (unlike others) and ZIGBEE support – WHAT? See the link above for more. That link ALSO explains why I had a red light coming on for a while for no good reason.
Seeed ReSpeaker Board
And now a look at the Seeed ReSpeaker board… here is the link to the relevant SEEED WiKi (which at the original time of writing could be clearer).
With the board in front of me and the supplied speaker plugged in – I applied power to the main USB-C conenctor with no idea what to expect. I mentioned abve that ESPHOME said “incompatible” – but in fact in the WiKi they specifically say that the ReSpeaker board works with ESPHOME and uses a SEEED-branded ESP32S3 board which is increasingly looking like it does nothing in the basic ReSpeaker mode. Hmm…. from the WiKi – “This kit provides firmware integration with Home Assistant via ESPHome”. From power up I saw no built-in access point – but spotted a TINY built-in microphone on the back of the board.
So, armed with speaker, built-in microphone, USB on my PC, I just needed to figure out how to get the ReSpeaker board to DO something. Again the WiKi comes to the rescue – you have to FLASH firmware onto the main board (not the ESP32S3 module) and the WiKi provides a handy link. I guess I should not have started this in the early hours of the morning – the WiKi above also leads you off here. Lots of things to learn.
I successfully installed the firmware from the WIKI – and according to same WiKi, a new “speaker Lite” device should have appeared on my PC sound control panel – it didn’t – so I stopped at this point until SEEED came back with answers – a good test of their tech support – as I simply emailed support@seeed.cc
In the end, the site had confusing information as to which firmware to install – https://wiki.seeedstudio.com/xiao_respeaker/ states specifically: “Flash the I2S firmware​. Before we start this chapter, please make sure the ReSpeaker Lite’s firmware is the I2S version” – then on another part of the WIKI – “https://wiki.seeedstudio.com/reSpeaker_usb_v3/#update-firmware” points you to DIFFERENT firmware.
As it happens I started with the correct firmware – but my Windows 11 Pro 64 bit PC showed no new speaker device (it was supposed to). I stopped and installed what I’m now told is the WRONG firmware – that had no effect) and this morning with confirmation from SEEED successfully re-installed what they claim is the RIGHT firmware (contrary to advise on the WiKi) – and all indications are that the firmware has been installed correctly with no errors – but STILL no new speaker on my PC audio control panel.
Seed eventually came back to me and not only provided the correct information regarding use of reSpeaker Lite, the ALSO updated their website so that it is now clear which firmware to use for what purpose. Meanwhile it turns out that the (optional) ESP32-S3 board on the far end of the ReSpeaker board has no effect on basic operation and is for “further development”
I made suer I had the right “….ua…” version of the firmware, installed it and once again my main PC refused to show reSpeaker Lite output and input devices. HOWEVRE my second PC correctly showed the devices.
From the Seeed website:
“Powered by XMOS XU316 AI Sound and Audio chipset, this dev board excels in audio processing with its integrated dual microphone array, ideal for speech recognition and voice control. Featuring advanced onboard NLU algorithms, the XU316 chip provides interference cancellation, echo cancellation, and noise suppression. It supports I2S and USB connections and is compatible with Seeed Studio XIAO ESP32S3 (Sense), Adafruit QT Py, Raspberry Pi, and PC.”
- Dual Microphone Array for Far-Field Voice Capture: The 2 high performance digital microphones capture and extract far-field speech and voice (up to 3 meters) even in noisy environments as it cancels point noise using two microphone input.
- Onboard AI NLU Algorithms: Powered by XMOS XU-316 AI sound and audio chip, the kit includes Natural Language Understanding algorithms for Interference Cancellation (IC) , Acoustic Echo Cancellation, Noise Suppression, Voice-to-Noise Ratio (VNR), and Automatic Gain Control (AGC), enabling high quality voice capture.
- Embracing Open Source:This board is compatible with popular hardware platforms (XIAO ESP32S3 (Sense), Adafruit QT Py) via I2S, and compatible with Raspberry Pi, PC via USB (Audio Class 2.0 (UAC2)).
- Onboard RGB LED: the board features a programmable WS2812 RGB LED, supporting custom effects and offering a visual interface for your applications.
- External Power Supply Support: this board supports external 5V power supply, which can be flexibly applied in different scenarios.
- DFU for Custom Development: the board supports custom firmware update via DFU-Util.
Of course thanks to the built-in ESP32-S3 board, ReSpeaker Lite can be used for far more. If this interests you, there is much more on the SEEED site.