DIY esp8266 oscilloscope, cheap and simple?

Hi, I like the idea of simple and cheap tools for DIY community. That’s why I tried to create a simple 40Msps DIY oscilloscope based on esp32 chip. Unfortunately, the chip, in spite of all of its power, wasn’t able to handle the data flow from 40Msps ADC (it turned out that only up to 20Msps is possible for the esp32). But, in my opinion, 20Msps isn’t enough for a complicated design with an external ADC when there is an excellent stm32f303 microcontroller that can reach about the same speed with an embedded ADC + analog watchdog functionality for a hardware trigger purposes. STMicroelectronics produces very convenient development boards for its microcontrollers and I have a new idea! If we take a cheap and easy to buy dev board (for example stm32nucleo-f303k8), equip it with a bare minimum analog front end (simplest possible attenuator + amplifier to have high input impedance and suitable input signal range capabilities), add an esp8266 module for wireless communication + 18650 Li-Ion battery for power. All together will provide us with a relatively simple “stm32nucleo – hat” PCB that will turn the dev board from ST into a wireless oscilloscope. Basically, I’ve already run 2 PCB revisions and the idea looks absolutely viable. We can get up to 18Msps with 6-bit resolution and 10Msps at 12-bit, which is pretty good taking into account the simplicity and price of the device. The only problem is the proper design of the analog front end which is not that simple when you want to have both low cost and proper quality at higher frequencies at the same time. But it looks like I figured out all the needed changes and ready to prepare the next revision of the PCB to test my ideas. I’ll publish all my work as an open source design as soon as it works properly. Should you want to support this project please donate.btn_donateCC_LGdav

This post will be extended as soon as new information (schematic, pcb, firmware) is available.

To be continued…

8 Replies to “DIY esp8266 oscilloscope, cheap and simple?”

    1. Hi ehsanzf, unfortunately, I had no progress with it at all. Personal reasons and the COVID19 situation left me with no free time to work on my pet projects. I hope to get back to it the next year.

      Like

  1. Hi easyvolts,
    stm32f303 uC has 12-bit ADCs with 5 MSPS.

    How do you come to 10Msps at 12-bit resolution?

    Are you suggesting using the esp8266’s ADC together with the stm32f303 for the processing part ?

    Like

    1. Hi Denis, I was going to use interleaved mode to reach higher bandwidth, esp8266 is there for communication only.

      Like

  2. Hi Valerii.
    I have the same idea to build a simple oscilloscope with an “external” screen (pc, android, ios, etc…). My first idea was to use bluetooth BLE. I thought about using esp32 as well. After researching how to sample data from adc I found your site. Do you need any help in this project? unfortunately I don’t understand analog part of oscilloscope well.

    Like

  3. Hi Taras, thank you, but at the moment I don’t work on this project (due to lack of free time), so there is no help needed at the moment. To be honest, after starting work on the analog part of the oscilloscope I realized that my understanding of it is also very weak (and I believe there are not many people that have the required knowledge. The topic is quite complicated), so I learn in the process.

    Like

    1. Hi Taras, I’m not sure that I understand your question. Do you mean DMA support for ADC and DAC? If so I believe it’s because i2s is a usual way to work with sound data and ADC+DAC was probably planned as a cheap way to implement a low-cost audio interface.

      Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s