On the microcontroller side of things, I have started implementing a WiFi Access Point on an esp32. This is going to serve as the gateway to the configuration of the device, which I am trying to make it so that it is as simple as being a captive portal (a page that immediately pops up once you connect to the network). Making the esp32 do that required a ton of moving parts: the esp32 is serving as the access point, the DHCP server, the DNS server, and the HTTP server all at once. I was completely new to anything networking, so it took me a while to research what any of those were and how to implement them (albeit mainly by importing libraries but still). I did try to implement the DNS parsing by myself, but it turns out that every bitwise parsing abstraction I could find (packed_struct or deku) depended on a foundational package (bitvec) that could not compile on the esp32, and I wasted the whole day scouring the github issues of all the projects for solutions which all ended up not working. Espressif themselves literally even have a patch of the library of their own (https://github.com/EspressoSystems/bitvec-patch), but no matter what I did, nothing ended up working, and I was too exhausted to go implement the server manually by myself at that point. Anyways, I still need to tweak the DNS response for the captive portal to work, but everything else is working
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.