
What can we come up with using the powerful ESP32-C6? Blink an LED? Measure temperature? How about a portable pocket oscilloscope? This is the ESP-Scope project by Matt, whose entire project is freely available on GitHub.
This project is not created in Arduino IDE, like most other projects, but utilizes the ESP-IDF framework directly. The ESP32-C6 takes care of everything – its ADC measures the input while simultaneously creating a webpage that displays the measured signal. The maximum input voltage is 3.3 V and the maximum sampling rate is approximately 83 KHz.
I have already written about similar projects here several times – for example, a portable oscilloscope with STM32F103 and a 2.4″ TFT display or another oscilloscope with STM32 HScope. However, neither of them supports displaying the signal on a webpage.
Hardware
The project is based on the versatile XIAO ESP32C6 board. The XIAO comes from the workshop of SeeedStudio.

On this tiny board, you can find everything – the ESP32-C6 microcontroller, a battery charging circuit, a battery input, exposed GPIO, and a USB-C connector that can be used for both power and programming.
Firmware
The code was largely written by AI (LLM). Gemini 3 from Google is really impressive and powerful.

What can ESP-Scope do?
Real-time signal display in the browser — the measured samples are rendered as a curve.
Customizable sampling rate – from 1 Hz up to a respectable ~83,333 Hz on the ESP32-C6.
Trigger settings – oscilloscope trigger settings.
Cursor – a cursor for precise value readings.
Generating test signals – ideal when you don’t have a signal generator.
Restart and shutdown from the browser – reboot the firmware or device without touching it.
In Conclusion
Theoretically, the same firmware should be possible to run on other Espressif boards and chips. However, the author tested the code specifically with the XIAO ESP32C6. The maximum sampling rate is only about 83 kHz. Which, of course, is not much. The advantage, however, is the absolute simplicity of the project with potential for improvement.
You can find the project at https://github.com/MatAtBread/esp-scope/tree/main?tab=readme-ov-file





