While I don’t discourage learning a new language the immediate toss aside of rust on esp32 was perplexing. It sounds like a lot of the memory issues would have been mitigated by sticking with a language better understood. Rust’s esp32c3 support is pretty good IMO, that’s all I use. Writing in C++ makes me feel dirty in ways that even COBOL doesn’t.
I also think I would have implemented presence by TTL, updating the TTL for each MAC when I see it and purging a TTL heap before updating my remote statistics. I didn’t fully grok the approach taken for maintaining the hash map, in a taxi off a long flight, but it didn’t seem super robust on my quick read.
The hash map was definitely not robust enough, that’s why I ultimately switched back to the default behavior and increased the memory available on the board!
Also, I am a Rust fanatic. I do nearly everything in it! I gave a talk on it at our last hackathon! I even wear a Rust t-shirt regularly! So rest assured I will be exploring my options with Rust. I would love to get rid of my dependence on Arduino. But C++ was easiest to get off the ground with, believe it or not, just because I have experience flashing Arduino boards.
Is it possible to program this device without the espresso SDK and the arduino stuff?
Whether I'll use C++ or Rust for my next project depends on which one I can first get working on this board with the standard toolchain (GCC and Rustc respectively)
Yeah risc-v is in the rust supported tiers but xtensa isn’t. I haven’t dug deeply into whether the riscv esp32c3 boards still use some forked rust etc, though, but in theory shouldn’t as it’s a tier 2 architecture.
That said, for my use, it’s entirely transparent this is happening under the covers. Things work as they should in your ESP32 cargo projects as don’t interfere with other targets, and I’ve not found any weird edges. I do however use the c3 boards.
I also think I would have implemented presence by TTL, updating the TTL for each MAC when I see it and purging a TTL heap before updating my remote statistics. I didn’t fully grok the approach taken for maintaining the hash map, in a taxi off a long flight, but it didn’t seem super robust on my quick read.