cancel
Showing results for 
Search instead for 
Did you mean: 

A usable and minimal USB osciloscope with bluepill

epsi1on
Associate II

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

9 REPLIES 9
epsi1on
Associate II

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.

AScha.3
Chief III

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".
epsi1on
Associate II

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?

epsi1on
Associate II

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

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".

I have already seen it.

38 designs ?

So why you asking still ??

AScha3_0-1704902481804.png

 

If you feel a post has answered your question, please click "Accept as Solution".
epsi1on
Associate II

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.

hi @epsi1on

you can use normalization to shift the signal for better representation, before that use voltage divider circuit to reduce your range from (-10 to +10) to (3.3 to 0)