While trolling the Hackchat forum I happened to come across a mention of the ESP32-PICO-D4 which I had never heard of. Well, it turns out this is a SoC (System-on-a-Chip) like the ESP32-D2WD with 4 MBytes of embedded flash instead of the 2 MBytes of embedded flash of the D2WD. Furthermore, even though the PICO is 7 mm x 7 mm (2x larger in area than the 5 mm x 5 mm D2WD) it contains the 40 MHz crystal, and almost all of the passives required to make it work. Plus, as a QFN48 package with 0.5 mm pitch it is a whole lot easier to assemble than the D2WD, which still gives me nightmares.
So here is the easy-to-use, compact module I was trying to make already available for about $5. Not much point fooling around trying to make my own module then when Espressif has already done it and better than I ever could.
So, I bought ten of the ESP32-PICO-D4 from Electrodragon, replaced my module with the ESP32-PICO-D4 and submitted the new development board to OSH Park. I expect to get the pcbs and ICs at about the same time and have a working board by the end of March. Here is what it looks like unpopulated:
I chose to add a 32.768 kHz crystal for the RTC, but this is not required. I would have had the 0603 10 uF capacitor anyway for the board using my own module and the extra 100 nF capacitor is in the reference schematic. As is a pi matching circuit to tune the RF to optimize the coupling to the Antenova antenna. But I expect either a small capacitor or 0 Ohm jumper will be enough to connect the LNA-IN to the antenna. So really, almost no external components are really needed with the PICO solution. Sweet!
I kept the FTDI USB-to-UART connector and battery charger and buttons, etc that I use for all of my ESP32 development boards.
So this could be nearly the perfect solution for rapid customization of hardware designs using the ESP32. And I like the fact that the PICO has 2 Mbytes more flash and allows use of GPIO16/17 (since the PICO flash operates in the 3.3 V domain) unlike the D2WD IC.
I will report on the board assembly and performance in a couple of weeks. In the meantime, I am suspending development of my own module. No point now really...