If I were manufacturing this in China, that might be a win, but the components are too expensive here. The CP2102 is very expensive here, who knows how the Chinese do it. If you look close, a lot of them don’t have any markings. The micro USB connector is expensive in my quantities and is an expensive part to assemble because of the thru-hole tabs needed for strength. When you add up the cost of the parts it’s not a big savings.
With the nodeMCU I get a tested functioning unit. There is also an issue with the antenna being mounted directly to the main PCB. The recommendation is to have it hang off the PCB and I don’t have any space to do that. The nodeMCU raises it up off the main PCB and it works pretty well.
Then there is the enclosure. Moving the location of the usb plug may seem trivial, but it’s a big deal. That part of the enclosure mold is an interchangeable cam assembly, and would require a whole new assembly. The ESP32 nodeMCU itself has necessitated moving the slot and the AC plug, and I’ve already started the process of having a new cam assembly built.
You are right. If I were anticipating selling a higher volume, the economies of scale would prevail, but at this point I don’t see a clear advantage. I haven’t tried to buy the ESP32 devkits in quantity yet, but I do have the ESP8266 devkits custom made with ESP12S modules for FCC compliance. They are cheaper than you might think and much better quality than the usual fare.
For my boards, I don’t bother with having USB on-board. With two transistors and two resistors, I can have an auto-reset circuit that’ll let me easily program my board using one of these: https://www.amazon.com/gp/product/B08246HWJ4. That adapter can supply 3.3V and 5V. I use 2x3 header holes on my PCB to break out 3.3V, GND, RX, TX, RTS, and CTS. For prototype units, I’ll solder in a male or female header but for bulk programming boards, I just push one of these onto the holes and hit go: https://www.amazon.com/pin-AVR-ICSP-Pogo-Adapter/dp/B075Q25BK3. It programs exactly the same in Arduino IDE as a dev board with onboard USB.
Once my code progresses a little, I usually add an OTA update feature to avoid having to open the case after initial programming.
For the PCB antenna, I use a keepout area in Eagle to prevent any copper under the antenna area and I haven’t noticed any issues. Modules are available from digikey for under $3 and some allow for external antennas (< $4) if signal range is an issue.
I used OshPNP for USA fab and they were great to work with and very supportive of small run just-above-hobby-level jobs.
Sounds like a plan. As an open software/hardware project, I think the homebrew folks appreciate the convenience of the nodeMCU. The USB also serves as a field debug as the IoTaWatt pushes out additional diagnostic information via Serial. With USB anybody can connect and use a serial monitor like Putty and a standard cable.
The field upgrade in IoTaWatt is custom and uses a signed release blob for security, but if for some reason a unit gets bricked, it can be reflashed without opening the case using a common USB cable.
Good to know about the success with a keepout on the PCB. Maybe someday.
great work, congratulations.
are you thinking in using an esp32 with ethernet port?
is the new case din rail compatible?
i’m working on a project for a cliente and i’m thinking to buy 150 iottawatt (i have already purchase 2 (two months ago)) but wifi is a problem for this project.
Just to ask the question, if you could get a grant to cover maybe half the cost would your outlook change on it at all? I know of at least one private foundation that supports sustainability projects and the IoTaWatt might be eligible.
Great Stuff. Just ordered an IotaWatt system. Several items
We are early stage folks in this and would like to get some advice.
We will likely be sending the data to our cloud in AWS - and are using MySQL. We can do GETs from the IoTaWatt - but since we do need to have a webserver, are we restricted to Influx / OpenMonCMS / SolarPV ? Is there a way to have a generic webserver where we just insert the URL for teh data to be sent to ?
How can we get near “real time” data - say every 1 or 5 minutes - will the Query API be able to do that for us ?
I see that possibly the ESP32 development will help the HTTP issue - but will we able to install our own webserver in there or a generic webserver with a post URL ?
When do you think that you will have the ESP32 development complete ? At least dev versions - not certified by UL and also the final certified versions ?
Wired ethernet is a non-starter with IoTaWatt ESP32. The PHY requires practically all of the pins used for the SPI and I2C. While the I2C can be remapped, the SPI cannot. There are simply not enough pins to support both SPI and PHY.
If you want IoTaWatt with wired ethernet, I’d say port the code to an ARM chip.