Skip to main content
Associate II
January 10, 2024
Solved

A usable and minimal USB osciloscope with bluepill

  • January 10, 2024
  • 6 replies
  • 5014 views

hi guys,

 

I'm a desktop programmer and do not know much about micro controllers and electronics but i am very interested in making an oscilloscope  which:

- simple to build with well known parts and ICs

- it uses bluepill as the ADC and no other ADCs

- it be able to measure negative voltages

- It uses near maximum  ADC sample rate possible from bluepill

 

 Single channel would be enough for above spects. recently I was working with a cool project named rp2daq which convert RPI Pico to a 500KSps /12Bit resolution and uses USB to send data to PC.

I did try to make a proof of concept version of a oscilloscope on top of it and it did worked (kind of) available from here.

I was using this simple oscilloscope since last day which i gave 10v signal to it's ADC by mistake and it broke.

The pico is expensive relate to blue pill (in my area, 3x more expensive), so i am thinking if anyone interest in making such open source scope, i think I can fully do the desktop part and need help for the micro controller side.

Or at least you could give me some guidelines for that.

Thanks

This topic has been closed for replies.
Best answer by mƎALLEm

Hello,

ST resources are only dedicated to supporting genuine ST products. We are not committed to ensuring that clones/fakes products work properly with the firmware we provide.

We suggest to purchase a genuine products and purchase them from known and trusted distributors.

Thank you for your understanding.

6 replies

epsi1onAuthor
Associate II
January 10, 2024

my first question is how to measure negative voltage without letting user to do any options?

I was thinking to use voltage adder to add a fixed voltage to my signal, and then simply sample on both channels (signal and fixed voltage) and negate values to get absolute value of my signal.

Andrew Neil
Super User
January 10, 2024
A complex system that works is invariably found to have evolved from a simple system that worked.A complex system designed from scratch never works and cannot be patched up to make it work.
AScha.3
Super User
January 10, 2024

Hi,

why not look, who had the same idea ... ?

https://github.com/search?q=scope%20stm32&type=repositories

...many. :)

"If you feel a post has answered your question, please click ""Accept as Solution""."
epsi1onAuthor
Associate II
January 10, 2024

Thanks for the link.

I have already seen it. but not sure how do they handle reading of negative voltage for example. do you know anyone which does it?

AScha.3
Super User
January 10, 2024

If you use "standard" VDD = 3,3V and (3v3 = VDDA=vref+ ) , ADC can convert 0...3,3V ;

most simple solution is using a divider at input, + offset , like this:

AScha3_0-1704878725298.png

But dont forget : do always "reference zero calibration" , because 0,0V input is about half of full scale at adc input.

So to get some +/- result, you have to do:   (adc_value) - (adc_value at 0 V input) = (+/- result) 

"If you feel a post has answered your question, please click ""Accept as Solution""."
epsi1onAuthor
Associate II
January 10, 2024

Or is there any method i can have two channels ADC reading with 800Ksps and they sent to PC via USB?

epsi1onAuthor
Associate II
January 11, 2024

I am not thinking that this website is kind of Q/A website, but I did expect an opinion based solution also wanted to find some collaboration. I'll break problem into smaller separated questions (if they are not already asked).

 

Thank you guys for the replies.

mƎALLEm
mƎALLEmAnswer
Technical Moderator
April 18, 2025

Hello,

ST resources are only dedicated to supporting genuine ST products. We are not committed to ensuring that clones/fakes products work properly with the firmware we provide.

We suggest to purchase a genuine products and purchase them from known and trusted distributors.

Thank you for your understanding.

To give better visibility on the answered topics, please click "Best answer" on the reply which solved your issue or answered your question.