Hi there.
Welcome to my Work In Progress thread.
This first post is regularly updated, for more details on development go to the last page of the threadThis is the
current design (version 3), it has has 4 channels and samples at 100Ms/s (without interleaving).
The core uses a STM32F746 at 216 MHz with 8MB of 32-bits SDRAM, a Spartan 7 and 128MB of 16-bits DDR3.
Global features:Inputs: 4 analog channel, 1Mohms, 20-25pF (T.B.D) + 1 external trigger (50 Ohms, 3.3-5V input)
Output: 1 trigger output (50 Ohms, 3.3V output), to chain 2 scopes
Sampling: 100 Msps (200 Msps T.B.D) on all 4 channels, not interleaved, 8 bits resolution
Bandwidth: 20 Mhz (40-50 MHz T.B.D), limited by analog antialiasing filter
Memory depth: 16,7 millions samples per channel (up to 835ms acquisition time)
Vertical: 20mV/DIV to 5V/DIV inputs, x1 and x10 probes modes
Coupling: DC, AC, GND
Horizontal: 20ns/DIV to 50ms/DIV
- 20ns/DIV to 2ms/DIV : 100MSps sampling
- 5ms/DIV to 50ms/DIV : 10MSps sampling (100Mhz internal + min/max decimation filter)
Mega zoom: zoom-in and zoom-out capacity:
- capture at 2ms/DIV, zoom up to 20ns/DIV after capture
- capture at 50ms/DIV, zoom up to 200ns/DIV after capture
- Slow and Fast browse of the captured samples
Measurements: min, max, peak-to-peak, average, RMS, signal frequency, 512 points FFT, horizontal and vertical cursors
Math: A+B, A-B, A*B (T.B.D)
Trigger: rising and falling edges, internal (CH1 – CH4) or external, trigger output
Calibration: for each individual channel and each individual caliber:
- automatic (vertical internal offset)
- manual (vertical channel precision) an external precision voltage source and multimeter are needed
Vertical precision after calibration: <1%
Connectivity: USB, firmare update, screenshot capture (T.B.D)
Date and time: Internal RTC (T.B.D)
Autonomy: about 5 hours, integrated 3000mAh 12V Li-ion battery
Power input: DC 15V-1A, 7W consumption (15W while charging).
Screen: TFT TN 7” 800x480 60Hz 16bits colors. Average of 45-60 FPS under nominal conditions.
HMI: Rotary encoders and quiet push buttons
Dimensions: 240x115x30mm
Programming: 20pins 1.27 connector + ribbon cable + custom PCB for SWD and JTAG (STM32/ Spartan7)
Development history:In late 2024 I decided to make my own oscilloscope. For fun and to learn. Old dream. This is how looked like the previous version (please don’t judge the orange buttons):

I have a electronics engineering masters degree and a 10+ years experience background in a multinational corporation. Having changing lifestyle and stopped working for a while, I used this free time to start this project.
It was made using KiCad, FreeCAD, JLCPCB and 3D resin printing. 7” screen. It samples at 100MS/s (10MS/s with decimation filter on larger timebases), embeds a Spartan7 coupled with DDR3, a 180MHz STM32 with TFT interface and SDRAM for video memory. It runs bare metal without any OS, not even using HAL drivers from ST (part of the challenge) and if the drivers are clean the scope logic part is a little messy. I wrote the graphic library myself and use all the DMA I could. Runs smooth 20 to 60 FPS.
It has all basic function a scope could have. It has run / single capture trigger (save up to 128 millions samples), 20ns/div to 20ms/div, different vertical calibers, FFT, vertical and horizontal cursors, possibility to navigate the stored samples in single capture mode, basic measurements. Work still need to be done to integer USB (save screenshots), auto calibration and some bootloader stuff for FW upgrade, but I’m kinda slow at wrinting code. Also a new PCB version is needed with some corrected issues.
It was my first time using FPGA at all and doing such a complex project. First time with DDR routing, with BGA, TFT display etc. It took long, very, very long hours until late. I got quite happy when I went from zero HDL knowledge to a working DDR3 at 400MHz. Also I started from absolute scratch. I don’t even have an oscilloscope myself and didn’t use any.
However I started to spend much less time on it because I’m not sure where this will lead me to, will I gain any benefit from all this work. Does it worth it. At first it was to learn new skills for employability, but I’m not sure I wanna work for a company again. In the other hand, it is now a nice prototype, and it would be stupid to drop all this work. But from a prototype to a final product the step is huge. Another drawback is that it’s also getting complicated on the financial point of view.
Anyway, I though it could be nice to share a bit. Here is what it looks like from the inside.
