Header banner
Revain logoHome Page
Jesse Diaz photo
1 Level
749 Review
41 Karma

Review on πŸ“‘ HiLetgo ESP-WROOM-32 ESP32 ESP-32S Development Board: Dual-Mode WiFi + Bluetooth Microcontroller with Integrated Antenna RF AMP Filter for Arduino IDE by Jesse Diaz

Revainrating 3 out of 5

If you need a good ADC look elsewhere

I used an Arduino Mega2560 when experimenting with sensors that have analog outputs. So I'm counting on a good ADC. The Arduino seems to have a pretty good ADC. The temperature sensor I created was pretty accurate (as you might expect). I've read that the Arduino is really just a beginner's toy and the real deal for more serious work is the ESP32. So I bought this ESP32 and transferred my temperature sensor to it. Wow I was disappointed. The ADC conversion is wide and non-linear. I did a little research on this and found that the ESP32 is notorious for this. So we have a nice, more professional product with a terrible ADC, and a beginner's Arduino with a good ADC. what to do with it After further research I found a handy little program that someone had written and posted on Github to calibrate the ADC. It creates a lookup table that you can use to look up the read value and get a more realistic value. I ran this program, did the calibration and connected the generated lookup table (LUT). Now it's much closer to the accuracy of the Arduino ADC, but still significantly different. The calibration program uses one of the two DAC channels on the ESP32 to generate voltage and reads the voltage to the ADC, correcting the error between the read value and the expected value. Of course, it is assumed that the DAC on the ESP32 is not inaccurate either. I experimented a bit with the DAC and found that while it's not as bad as the ADC, it's still a bit different. I think I could buy a programmable regulated power supply and calibrate the ADC that way. But wait. Do I really want to calibrate and create a lookup table for every single ADC pin I might use? What if I buy another ESP32? I need to calibrate it so how will it be different? I understand that certain things require calibration. I just expected the ESP32 to be at least as good as the Arduino. That makes me not trust the ESP32 at all for ADC work, which is what I have done so far. I will look for an alternative. This is really really bad since the ESP32 has a lot of memory and will run FreeRTOS right away.

Pros
  • Delivery was very quick
Cons
  • There are cons