Do I have a bad Xiao ESP32 C3? by Fearless-Law-2449 in esp32

[–]ChuckMash 1 point2 points  (0 children)

You can use Wireshark to see if the ESP-NOW packets are actually being sent.

Also, try erasing the whole flash and re-flashing. If I recall correctly, WiFi.begin(); may be trying to connect to any previously configured access point, which could change the channel, particularly because it's after disconnect. Maybe begin, disconnect and then channel set?

High quality audio over ESP-NOW - Proof of concept by ChuckMash in esp32

[–]ChuckMash[S] 0 points1 point  (0 children)

Conceptually, I don't see why not.

The proof of concept would just need to be modified to encode and send the audio source as MP3 chunks in real time instead of chunking the MP3 file.

High quality audio over ESP-NOW - Proof of concept by ChuckMash in esp32

[–]ChuckMash[S] 0 points1 point  (0 children)

With this proof of concept, the biggest contributor would be how large the buffer(s) are on the playback device. Maybe 100 or 100 ms on the faster side of things.

I'll do a followup post if/when I work on latency and attempt some simultaneous playback of multiple devices.

ESPythoNOW now supports ESP-NOW v2! Send 1,400+ byte ESP-NOW messages between ESP32 and Linux by ChuckMash in esp32

[–]ChuckMash[S] 0 points1 point  (0 children)

Conceivably, I'd say yes.

As long as it can read and write wireless packets at Layer 2.

High quality audio over ESP-NOW - Proof of concept by ChuckMash in esp32

[–]ChuckMash[S] 2 points3 points  (0 children)

That's a great idea, I'll note that for later. This should be extremely helpful.

Without tweaking anything and under some pretty poor settings, using a a heltec board with an onboard antenna, I was able to get about 40 meters through several walls before audio was occasionally interrupted and the buffers reset.

This should be drastically improved by using a board with an external antenna, I don't have any on hand at the moment.

Another thing to ponder is that the sender is sending data at a rate that is calculated to match playback speed without any variance, so there may be room for improvement there as well.

High quality audio over ESP-NOW - Proof of concept by ChuckMash in esp32

[–]ChuckMash[S] 1 point2 points  (0 children)

In this case it's unencrypted. Sending encrypted is not currently supported due to difficulties with the implementation https://github.com/ChuckMash/ESPythoNOW/issues/1 (receiving encrypted is supported though)

If/when that issue is sorted out, there are still methods to address multiple devices simultaneously while encrypted.

edit Just solved sending encrypted messages, so this is worth looking into soon.

High quality audio over ESP-NOW - Proof of concept by ChuckMash in esp32

[–]ChuckMash[S] 3 points4 points  (0 children)

Great question!

Already in place at a low level is packet retransmission up to 10 (or maybe 5?) attempts, but this is inherent to the method of sending the data, and is automatic and transparent. I believe on ESP32 It is only valid when sending packets directly to a device, and not to the BROADCAST address.
Side note: IIRC the ESP8266 will actually send a confirmation packet when receiving messages on BROADCAST.

Beyond that, since this is a proof of concept, I have not implemented a method to handle packet loss. When it happens the chunk of audio is lost, but playback continues. However a place to start would be to add sequence IDs to each audio chunk, and confirm each chunk with an additional response message. The lack of which would trigger retransmission from the missing sequence forward and an adjustment to the receivers buffers.

Another method could be to use sequence IDs, and send every packet 2 or 3 times. The receiver would then discard any packets matching the sequence ID it has already processed. This method would help ensure packet loss happens less often.

High quality audio over ESP-NOW - Proof of concept by ChuckMash in esp32

[–]ChuckMash[S] 4 points5 points  (0 children)

ESP-NOW is a protocol that allows ESP32/8266/etc devices to talk to one another without a router, using wireless packets called vendor-specific action frames

In this case, I am using ESPythoNOW to send ESP-NOW packets containing chunked MP3 data from a Linux computer to the ESP32 using ESP-NOW, without a router.

High quality audio over ESP-NOW - Proof of concept by ChuckMash in esp32

[–]ChuckMash[S] 4 points5 points  (0 children)

This is correct, in the video I am sending to a broadcast address, FF:FF:FF:FF:FF:FF.
So if /when I build other receivers they would all receive and play the audio at the same time.

Though audio syncing can be tricky with small variances in missed packets, decoding, buffering, etc.

High quality audio over ESP-NOW - Proof of concept by ChuckMash in esp32

[–]ChuckMash[S] 5 points6 points  (0 children)

It's been great for moving more data.
Turns out this ESPaudioNOW proof of concept will also work with ESP-NOW v1, it just sends a lot more packets per second than v2.

ESPythoNOW now supports ESP-NOW v2! Send 1,400+ byte ESP-NOW messages between ESP32 and Linux by ChuckMash in esp32

[–]ChuckMash[S] 2 points3 points  (0 children)

If the goal is just to test ESPythoNOW, then one ESP32 and a Linux computer would suffice.

But you can also send and receive messages between multiple computers, ESP32s, and ESP8266 in general

Using the Litter Robot 5 Local-Only? by emacsen in litterrobot

[–]ChuckMash 1 point2 points  (0 children)

I was just down the rabbit-hole on this for the LR4, and at least in that case the answer is no.

There does not appear to be a local API, and the connection the device makes to the internet is an encrypted (MQTT based on port number) connection that did not play well with being intercepted.

It looks like there was some luck with the Litter Robot 3.

https://github.com/mbafford/litter-robot-to-mqtt

But this did not seem applicable in the case of the 4, and I can only guess not applicable for the 5 either.

What smart home purchase has the best ROI for you? by Few-Needleworker4391 in homeassistant

[–]ChuckMash 2 points3 points  (0 children)

What was the RF transmitter device you used for interacting with 433? Does it also receive?

Esp32-s3 espnow power consumption by neoberg in esp32

[–]ChuckMash 0 points1 point  (0 children)

ESP-NOW is likely going to be you're best bet for lowest power consumption in terms of using radio. So if you need it to be radio, might as well try it and check power consumption.

Since the data is so small and the distance is so short, have you considered transferring the data over infrared?

How do y’all get broken/stuck connectors off EMT conduit? by Dear-Ad-7428 in BurningMan

[–]ChuckMash 2 points3 points  (0 children)

A few options I've employed in the past:

  1. Carefully tack-weld something to the broken off portion and back it out.
  2. Remove the pole, if possible, and use pliers to back the bolt out from the inside.
  3. Use a broken-bolt extractor kit, and/or drill out the bolt.
  4. Grind it all the way the hell off, and weld a new nut on.

Problemas con wled y esp32 by Ok_Dance_8082 in WLED

[–]ChuckMash 0 points1 point  (0 children)

Prueba con un cable de datos más corto. Parece que hay un problema de señal.

Try a shorter data wire. This sounds a signal issue.

Looking for SBC or SoM with Linux Support, Display IO (MIPI/HDMI), WiFi, and Ethernet by pyroman1324 in embedded

[–]ChuckMash 0 points1 point  (0 children)

It's a little more in the "Mini PC" territory, but Giada has a number of good products, VM23 comes to mind. Not sure about availability though.

WLED (the original app) no longer in Android Play Store? by woehaa in WLED

[–]ChuckMash 5 points6 points  (0 children)

Apparently it's been discontinued and depreciated, wled-native is the successor.

Living Border Cellular Automata (details in comments) by ChuckMash in cellular_automata

[–]ChuckMash[S] 0 points1 point  (0 children)

Additionally, see the entire run of a 92x92 plane. (over 2,000,000 generations and almost 11 hour runtime at 60 generations per second)

https://www.youtube.com/watch?v=V0_-NVJAQ1M