I hopped on seeed studio a few months ago and ordered a quintet of ESP32S boards. They were cheap, but didn't arrive for another 6 weeks or so:
I had a bit of time between Christmas and New Years, so I finally got around to wiring a module up and running a few test programs:
Having zero experience with the platform's predecessor, getting all the bits and pieces sorted involved a steep learning curve. Fortunately, the ESP32 documentation is quite good; the list of resources at http://esp32.net/ is a great starting point, and the official forums at http://esp32.com/ are also excellent. Development and documentation of various functions seems to continue up to the minute, so it's an exciting time to have the boards in hand.
A few notes on the dev environment I've found to work well:
- I run Linux Mint 17.2, so I started by following the Linux toolchain setup instructions in the ESP-IDF Github repo. Everything went pretty smoothly here.
- Getting the board to flash was initially difficult; the first part of the sequence seemed to work but I kept getting header errors prior to the main program upload. Based on various bits of Internet advice, I tried:
- using a benchtop 3.3VDC power supply (thinking the chip was browning out);
- adding a mondo electrolytic cap to the power rails (same reason);
- changing USB serial adapters (both FT232RL-based);
- reversing the Tx/Rx wires a few thousand times;
- mucking about with the reset and IO0 buttons (pulling IO0 low and doing a reset puts the device in program mode);
- Eventually I swapped modules (hence the hastily air-soldered image above). I think I must have bricked the first one by doing something dumb with the power rails, but oddly enough it still spat out serial data. Weird.
- It's pretty easy to make sure the module is working -- just fire up a serial window (I use gtkterm) with the right USB connection at 115,200 baud, reset the board, and you should see _something_ come back. If IO0 is pulled low during the reset, the terminal will tell you the module is waiting for a program.
Since getting the dev environment sorted (ish), I've gotten a few example programs to run (both of which appear to draw ~120 mA or so):
- Full Wifi scan: periodically scans for all nearby Wifi access points and spits SSIDs, signal strengths, and security method into a terminal window.
- Mongoose webserver: uses Mongoose to serve up a hardcoded test HTML page along with a time-since-reset counter. I modified the code slightly so the ESP32 would act as an open access point and redirect all requests to the same default page, both of which were pretty easy to do.
Neil Kolban's ongoing effort to create an easy-to-use ESP32 guide is awesome, so I highly recommend downloading his free ebook. The current revision still has a few things in progress (Mongoose WebSocket, etc) but it's quite comprehensive as is.
More to come at some point. I'd like to putz around with some of the more traditional microcontroller peripherals at some point (SPI, I2C, etc), and getting a continuous WebSocket channel open is high on the list too. Many more learnings to happen, and I still dislike programming.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.
Nice WiFi scan example. I made one too. Your code looks much better though.
Are you sure? yes | no