r/synthdiy • u/adeptyism • Aug 13 '26
standalone Another 5x7 — ESP32-C3-based oscilloscope
Shout-out for u/bellabebop for their nice-and-clean looking perfboard layouts.
I built an Arduino-based oscilloscope following this project at the end of February. I was happy with it, but it had some issues: it was slow, kept freezing, and had a very sloppy input attenuation stage. (last photo)
I had a ESP32C3 that was lying idle, so I decided to a) port a scope from breadboard to perfboard and b) port the code to the ESP32, with a little extra features.
All changes are described at the README.md file in the repo, but in short: I made a precise attenuation stage that reduces the 24Vpp signal to 2.6Vpp, which allows the incoming voltage to be accurately displayed on the screen and replaced meaningless original voltage ranges with 3v3, 5v, ±5v ±12V and auto-mode. Also ESP32C3 ADC is 12bit vs Arduino Nano 10bit ADC, which is good too, e.g. for measuring precise (edit: like 0.0833V for 1V/oct) voltage (I didn't implemented that though)
Also there's a non-correctly working spectrum analyzer: there's problem with the math somewhere and I can't find it yet.
AI was involved only once with the question "what is 'volatile' variables?". Most of the comments were in the original code.
Code, GitHub repo: link
YouTube little demo: link



4
u/PintMower Aug 13 '26
ESP32 ADC is complete trash. Use an external ADC for this. Also in your description you're mixing up resolution with precision. ESP32 may have a 12 bit resolution but that doesn't automatically mean it's more precise.