Instructables

DPScope - Build Your Own USB/PC-Based Oscilloscope

Featured
Picture of DPScope - Build Your Own USB/PC-Based Oscilloscope
IMG_7279.jpg
dpscope_vs_mouse.jpg
dpscope_vs_lcs1m.jpg
dpscope_gui_02a.png
schematic_v1_1_complete.png

 
Remove these adsRemove these ads by Signing Up

Step 1: Instrument Specifications

Below you see the specifications of the instruments. If you are familiar with oscilloscopes you will see that the DPScope has pretty much all the features you'd expect from a decent lower-end instrument.

If you aren't a number freak, feel free to skip this page as fast as you can :-)

On the next page I'll discuss a few of the key specifications.


Input:
      
Number of channels: 2
Analog bandwidth: > 1.3 MHz
Input impedance: 1 MOhm || 15 pF
Probe connection: BNC
Usable probe types: Standard 1:1, 1:10, 1:20 probes

Vertical (voltage) scale:

Vertical sensitivity (20 divisions):
- 5 mV/div to 1 V/div (1:1 probe)
- 50 mV/div to 10 V/div (1:10 probe)
- 100 mV/div to 20 V/div (1:20 probe)

Vertical offset: 0 - 20 divisions

Maximum voltage range   
-12V ... 20V (1:1 probe)
-120V ... +200V (1:10 probe)
-240V ... +400V (1:20 probe)

Probe compensation: yes (2 kHz calibration output)

Offset adjustment: yes

Horizontal (time) scale:
      
Max. sample rate (single shot): 1 MSample/sec
Max. sample rate (repetitive signals): 20 MSamples/sec

Timebase settings (scope mode): 0.5 usec/div ... 1 sec/div
Timebase settings (datalogger/roll mode): 0.5 sec/div ... 1 hr/div

Trigger:

Trigger source: CH1, CH2, auto (free run)
Trigger polarity: rising edge, falling edge
Trigger noise reject: yes (selectable)
Pre-trigger capability (i.e. can show what happened
before the trigger event): 0 - 20 divisions
Post-trigger delay (delayed scan, to look at the
signal long after the trigger event but with high
resolution): 0 - 200 divisions

Acquisition:

Record length (normal mode): 200 points/channel
Record length (FFT mode): 400 points/channel
Max. screen refresh rate: up to 40+ frames/sec
Datalogger mode (roll mode): yes (data can be logged to file in real time)

Display:

Real-time FFT: yes
FFT filters: Rectangular, Hanning, Hamming, Blackman
Averaging: yes (2 / 5 / 10 / 20 / 50 / 100)
X-Y mode: yes
Display styles (can be combined): Points, Vectors (Lines), Infinite Persistence

Time and level measurements: yes (using cursors)

Save & Restore:

Waveform export (e.g. to Excel):yes (CSV format)

Save/restore of scope setups: yes

PC Software:
      
PC connection: USB, 500 kbaud
PC software: Windows 2000, XP (SP3), Vista, 7
Minimum screen size: 800 x 600 pixel

Mechanical construction:

Power supply: through USB (5V / 250mA)
(external supply 7.5 - 9V / 300mA optional)

Approx. size (in enclosure): 4.5" x 2.6" x 1.2" (114 mm x 66 mm x 31 mm)
       
Component count: ~50
Solder connections to make: ~200
Required skill level for assembly: moderate; only through-hole components and DIP
packages (no surface mount or fine pitch parts)
Printed circuit board: Professional printed circuit board with corrosion-resistant, gold-plated pads and contacts (not cheap solder finish), with silkscreen
to denote component locations.

Enclosure: Sturdy ABS plastic enclosure with custom glass-fiber front- and back-panel, silkscreen. All
holes pre-drilled - no drilling required.

Microcontroller and USB interface: Fully pre-programmed; no programming required


(removed by author or community request)

http://www.kakasoft.com/usb-security/how-to-password-protect-usb-on-windows.html
womai (author) 1 year ago
The analog bandwidth would be just about sufficient. You won't see nice square edges (rather rounded ones) but it will be enough to see what data is sent and how the clock edges align to the data.

The more important question is whether your signals are (or can be made) repetitive. This is because the single-shot sample rate is limited to 1 MSample/sec, i.e. just a single sample per bit period at 1 MHz. This would NOT be sufficient to capture the waveforms. But if they are repetitive you can use the equivalent time (where the waveform is put together from several acquisitions, each slightly delayed in time) which can go to an (equivalent) sample rate of 20 MSa/sec - so 20 samples per bit interval.
Hi,

With 1.3MHz bandwidth limit, can the said device actually capture 1MHz I2C and SPI cos they are square waves with much higher bandwidth. Please do correct me if I am wrong.

Thanks
Hello Friends,
i have mad this project now i need source cod for PIC30F..
please help me for this at (geraldino250@gmail.com) for my own scope
It would be useful to me if the program was available for Linux.
womai (author)  rocketman2212 years ago
Are you volunteering to convert it to Linux? :-)

The original is written in Visual Basic 6, so quite Windows specific - so I'm afraid it would be more a complete re-write rather than a quick conversion. I do get occasional requests for Linux or MacOS versions, but given my limited time for my hobbies I prefer to develop new instruments rather than spend a lot of time to serve a IMHO still niche market... - most people have access to some Windows PC or laptop when needed.

Over the years I had several people wanting/offering to convert some of my software to other platforms, despite my warnings about the time and effort required. Not surprisingly (to me) after initial enthusiasm (along the lines, "... all I'll have to do is...", "...and then I'll quickly...") none of them produced anything in the end, so my enthusiasm in this regard is a bit muted ;-)
can you give me source code of VB6 for this software?
thanks before.
Unfortunately the program is a bit more advanced than what I could write, but maybe someone could write a cross platform (possibly java based) version eventually.
shafiq2eng3 years ago
Hello Friends,
i have mad this project now i need source cod for PIC30F..
please help me for this at (shafiq2eng@hotmail.com)
rashmi19903 years ago
Hi this design is bit complicated for a beginner

if some body want a easy design then check this link
http://microembeded.blogspot.com/2011/07/two-channel-pcbased-oscilloscope-usb.html
womai (author)  rashmi19903 years ago
One other thing I noticed is that the design you refer to lacks any sort of input protection (series resistor, clamp diodes) in front of the first amplifier. So any overvoltage risks to kill the input stage and worst case make it straight back into the computer. (In comparison, the DPScope has a large input resistor in front of a pair of clamp diodes, protecting the scope and the computer for inputs up to ~ +/-200V static input - 10x the official max input range - and much more for short pulses like electrostatic discharges).
womai (author)  rashmi19903 years ago
Interesting project! Altough it seems limited to +/-5V input range.

I am actually working on a much simplified scope myself: about as easy as it can get, it uses just two chips, one PIC (USB capable, but not the 2550) and one op-amp - yet offers USB connectivity (power and data), two channels, variable gain (max. range +/-25V), standard 1 MOhm input impedance, analog bandwidth of ~300 kHz and sample rate up to 2 MSa/sec (for repetitive signals), FFT mode, as well as a 4-channel logic analyzer mode.

The new design (tentatively called DPScope SE) will not replace the existing one (which has much higher bandwidth and sample rate) but complement it. I already have the hardware (with custom printed circuit board, not just breadboarded) up and running, and the PC software is ~70% complete.

Stay tuned!
balaji113 years ago
when will be ur AWG??
atleast send circuit diagram
womai (author)  balaji113 years ago
I had to put the AWG on the back burner for the moment. I have the full schematic but still need to breadboard the full circuit in the real world and develop firmware and PC software. I don't want to publish a circuit that hasn't been thoroughly tested first...

The "no-frills oscilloscope" is well on its way - the prototype is working fine and being tested and the software developed as we speak. Don't expect it to replace the DPScope though.
How do I obtain this kit?
womai (author)  burnerjack013 years ago
Go to the DPScope webpage http://www.dpscope.com --> "Buy It" tab
batman963 years ago
There should be flash storage in the scope so that when you plug it in it installs the program.
I got a question for someone who knows about osciliscopes, I saw one at a flea market, on the outside it looked good, it is about 30 years old, what are the chances of it working or being fixable?
saturnino3 years ago
Most nicely explained project. Could there be another projects ?
Best wiches.

Carlos Ahumada
Santiago de Chile
womai (author)  saturnino3 years ago
Yes, there will be. Right now I am working on a simple AWG (arbitrary waveform generator) and a very simple, no-frills oscilloscope (much less capable than the DPScope but also even lower cost). The AWG should make a nice complement to the DPScope.

Both instruments will use the PC for control and display, just like the DPScope. The challenge here is to reduce component cost to absolute minimum. Microchip has a couple low-end, low-cost (a third of the price of a 18F2550 or 18F4550) USB-capable microcontrollers that will be fun to work with. Right now I'm waiting for the development board for them.

Stay tuned!
hesslerk3 years ago
Hi there,

I am working on a PIC project right now with the PIC18F4550. Would it be possible for you to send me your C++ code for the oscillator, ADC, and SPI communication?
hesslerk@gmail.com

Thanks!
Kurt
womai (author)  hesslerk3 years ago
This scope is based on the 16-bit dsPIC30F2020, which has a very different architecture compared to the 8-bit PIC18F series, so that won't help you much.

For PIC18F series development I use MIkroelektronika's MikroC compiler and development boards. The compiler (2K limited demo download is free) comes with a few examples for the 18F4550 - just use these as a starting point, they should work right out of the box (they did for me). They use an external 8 MHz crystal and run the core at 48 MHz (maximum possible) which is probably what you want to do (USB needs exactly 48 MHz anyway). MikroC has native libraries for ADC and SPI - very easy to use - so there isn't any clever code I could share for that. E.g. adc read is my_var = adc_read(channel)

If you are interested in USB using the 18F4550, go to the MikroE web forum and search for "USB" and author "womai" - I posted a full example (including VB6 source code for the PC side).
jumbocat3 years ago
Wow, Im about 4 mos into building electronic projects, and I have yet to see such amazing detailed instructions for a project! You put a lot of thought into this. I will definitely be pick your self assembly up as soon as my Solder skills are better.
rosenred3 years ago
Although I cannot but marvel at the quality of your work, I could not bring myself to give you a good rating, or even consider buying your kit.

I have been a member of Instructables for quite some time and even before that, I would pop in to check on some project or another and trust me it's not the first time I see someone advertising their work. And believe me I am totally fine with that. As a matter of fact, I believe that if one can profit from a great design and/or personal work, it's not bad at all, as long as there are willing customers.

To be honest, I expected many more reactions in the comments so far, since I've seen people get upset for less obvious advertisement. But in most other cases, as I recall, the 'ibles were enough to complete the project without having to buy something from a specific someone.

In your case, you repeatedly refused to give the firmware and the circuit layout when asked and sometimes you did not even bother to answer.

I know that if I were more skilled in electronics and mc programming, I would work something out on my own, as you pointed out (using a proto-board for example).

Again, I am not giving you fault here, I just expected a little more honesty from your side. You could have stated in the beginning that this is an 'ible to build a very specific kit, as others have done. "Build your own" is a bit misleading don't you think? If I were to follow this 'ible, I would be building *your* USB/PC-Based Oscilloscope, not mine.

I have no intention of being offensive or anything, so I apologize beforehand if my comment upset you, I just thought I should give my two cents.

womai (author)  rosenred3 years ago
No offense taken. Two things I'd like to comment on though:

First, I don't agree with "you did not even bother to answer". If you read through the list of comments, I make an effort to always comprehensively answer whatever question - technical or otherwise - somebody has. A few - not many - of the comments though were not questions at all, for all can tell these individuals only wished to express their opinion but did not really seek any response or comment from my side. They are of course entitled to their opinion, so I let them stand as-is.

Second, I do think there is a lot to learn from this project even if you have no intention of getting the board or kit. The whole hardware design - as well as the high-level software design - is documented and explained in detail - so you get a proven, usable analog frontend - a variable gain amplifier chain with ove a MHz of bandwidth - for free (of better design quality than many low-end commercial scopes have as I can assure you), as well as a good idea how a real digital sampling scope works. In fact I personally know about more than one person who copied all or part of the analog portion for his/her own project. I have seen many other instructables where the total amount of usable information was quite a bit less than this alone.

Finally, I have published a fully open scope design as well - including firmware, board layout and so on, which everybody is free to use if so desired, so overall I do feel I contribute to this community in the way intended:

http://www.instructables.com/id/LCS-1M-A-Full-Featured-Low-Cost-Hobby-Oscillosc/

Regards,

womai
rosenred womai3 years ago
Thank you very much for taking the time to answer. I never said though, you are not contributing to this community, I assure that would be horrible on my part. I do get your point. I might have exaggerated a little and for that I must apologize.

Thank you for the link to your other project. Again (with my little experience in electronics) I cannot but admire the design.

I sincerely hope you were not offended or in any other way annoyed by my comment. I just expressed what was in my head at the time of reading.

womai (author)  rosenred3 years ago
If you like to get a quick and easy start in electronics, have a look at the Picaxe microcontroller (on which my other scope project is based). www.picaxe.co.uk - typical times - for an absolute beginner! - to get up and running and have e.g. an LED blinking is normally measured in minutes, not hours or days (no kidding). That's what go me started with microcontrollers and re-started with electronics a few years back. There is a very beginner friendly support forum for any questions you may have.

And no, I don't get any kickbacks from them ;-)
rosenred womai3 years ago
Thanks! I was considering the Andruino, but I am sure this one would be much simpler for a beginner like me :)

Much appreciated!
womai (author)  rosenred3 years ago
The Arduino is very nice platform with a large community. But IMHO the Picaxe has a much easier learning curve for an absolute beginner. The basic circuitry is the Picaxe, two resistors for the program download connection to the PC (using a serial cable or a USB-to-serial converter cable), and potentially one 0.1uF capacitor between power and ground. Can't beat that in terms of simplicity! It's also very inexpensive - just a few $ will get you there.

The good thing is, once you got you feet wet with the Picaxe (and gained some experience with general electronics while working with it), moving over (or up) to any other platform (Arduino, bare PIC or Atmel or any other microcontroller) will be much easier as all the basic concepts stay the same.
lgeorge1233 years ago
I use visual c# to display my scope screen , your screen is 40+ frames/sec , do you feel your screen flicker ? in my code I use timer to update my ADC data and set timer to 4ms interval , I feel my screen flicker very fast :

private void timer1_Tick(object sender, EventArgs e)
{
Graphics g = pictureBox1.CreateGraphics(); // pictureBox1 is picture that
display grid
pictureBox1.Refresh();
// function to display adc data;


}
womai (author)  lgeorge1233 years ago
No, my software does not suffer screen flicker. The flicker in your case is most likely due to the fact that you initialize the display (copying the grid) and then draw the traces on a control visible to the user. The drawing takes some time (and the display may update each time you draw a line, making it even slower). A better (flicker-free) method is to draw everything on a hidden control (e.g. a second display hidden behind the "real" display object) and then copy over the complete picture. That's what I use. It's faster, too, because the hidden display does not get updated while drawing.
kalnas4 years ago
What bandwidth I can see with this oscilloscope? from 1.3 MHz to ...?(60MHz)? Thanks for answer
womai (author)  kalnas4 years ago
The analog bandwidth is ~1.3 MHz. The maximum sample rate is 1 MSamples/sec real-time (for single-shot acquisition) and 20 MSa/sec in equivalent time mode (for repetitive signals). The 20 MSamples/sec means you can display signals up to ~2 MHz frequency (at that frequency they will be somewhat attenuated because the analog bandwidth is a bit lower than that, but you can still display them.)
lgeorge1234 years ago
Can you disclose how you do the trigger level function of your scope , as I want to do a project in my college .
womai (author)  lgeorge1234 years ago
For the trigger I use the built-in comparators of the dsPIC. It has an internal DAC (10 bits resolution) to set the compare threshold (note that it only covers 0V to VCC/2, so the scope has a 1:2 voltage divider in front of the comparator inputs). The comparator is set up so it generates an interrupt when the input rises above the threshold (i.e. compare output going from low to high); that calls an interrupt function which then performs the signal capture. You need to put a jump address to this function in the dsPIC's interrupt table at the proper location (see dsPIC data sheet). There is also a bit to invert the compare output so you can easily trigger on rising and falling edges, respectively. The beauty of all this for the scope is that apart from the voltage divider (two 1kOhm resistors) all the trigger circuit hardware resides within the dsPIC. For details about the comparators DACs etc. please refer to the dsPIC30F2020 data sheet - but basically you just write the appropriate value to a specific address in the dsPIC's RAM.
taurus1234 years ago
This is not much of a scope, especially when you are doing digital work. It is slow, the software freezes, the screenshots are not that great. Look around before you buy this. For a few more bucks, you can do better than this.
iEdd4 years ago
 I just built mine, and I'm a bit disappointed. Here's the problems I have so far:

1. The microcontroller gets pretty hot. I think hot enough to burn your finger if you leave it there for more than 10-15 seconds.

2. The waveforms in the software will be active for about 5 seconds, then freeze for about 5 seconds, then active again, etc.

3. After about 1 minute of constant operation, it freezes. The waveforms are frozen, but the software still works (I can move the sliders, etc). So I think it's a hardware/firmware problem and the microcontroller that is freezing. I have to unplug the USB cable and plug it back in to get it going again.

Is any of this normal? I've been looking, but haven't found any shorts or bridges in my soldering. Has anyone else had these problems?
womai (author)  iEdd4 years ago
Hello iEdd,

the microcontroller becoming hot is not a problem, but a feature :-) But seriously, this is normal, the Microchip dsPIC30F series is known for that, it uses relatively large power which produces heat accordingly. I should probably add a note to the assembly instructions so people don't wonder. I measure about 65degC on my DPScopes, which is indeed uncomfortable to touch but will not affect reliability (the chips are spec'd up to 125 degC operating temperature).

The software freezing up is not normal though. I have built dozens of DPScopes so far and had them continuous in operation for days and weeks without this happening, on different computers. Also I have not a single other user report about this happening. As a first step, please try to operate the scope on a different computer and see if the problem persists.
Womai, i bought your dpscope also, and mine does the the same thing with the software, where it will work for a little while, but then after measuring, the waveform freezes, sometimes i cant even see the waveform, i have actually put it into a modded removable hard drive case this way i have a place to put a fan that will hopefully keep it cooler, i dont remember if that fixed it or not, i havent used it in a while, but i have another question, is it possible to not use the +5 power supply from the usb? in other words, is it possible to use a wallwart power supply to supply the power to the board, i saw that there were provisions in your schematics to run on external power, but i couldnt get it to to turn it on with the wall adapter, the i put in the 5v regulator, and the capacitor as well, i just made some rough mods, i painted it, but havent finished the whole thing yet, so if anyone likes i can put pics up when i finish it, it may be a while though
womai (author)  Jeffrey G C4 years ago
Hello Jeffrey, can you tell me what exactly the marking of your dsPIC is? Especially on the second line, does it say -20E or -30E? And the what is the last line (which is the batch code)? I recently encountered a batch of marginal dsPICs that had some issues (they did not freeze but their ADC was working too slowly once it heated up). That said, this only affected about 1% of the dsPICs I have tested. As for the external power supply, yes, all the hooks are there, you only need to add a 7805 regulator and another 100uF capacitor. Please refer to the assembly guide for details. From your description I suspect you simply forgot to move the power supply jumper to the "ext." position. (been there, done that :-) Wolfgang
20E/SP 0841262 and i do have it on the ext power setting, so i know that shouldnt be an issue, the light wont blink on when the power setting is on ext, so i have no idea why its not turning on.
womai (author)  Jeffrey G C4 years ago
If the LED blinks when powered from USB, but not when (supposedly) running on external power, then something is not right with the external supply. Things to check: - is jumper set to "ext." when trying to run on external supply?

- is the supply feeding into the "+" and "-" points close to the 7805 regulator? (not the test points close to the CAL connector)?

- what is the spec of the external supply? - needs to be able to deliver ~500mA current, and have a voltage of ~9V (you need a bit more than 5V because the regulator adds ~2V drop)

- use a voltmeter to measure the scope supply after the regulator (the "+" and "-" test points close to the CAL connector (not the points close to the regulator)! The measurement result should be close to 5V (+/- maybe 0.2V)

By the way, I have added a user forum to the DPScope webpage (go to http://www.dpscope.com --> User Forum, or direct link http://dpscope.freeforums.org/). Going forward this is will be the best place to get help as I check it daily. Out of some reason Instructable stopped sending me notification when a comment gets posted so I may not see it for days or weeks.

iEdd womai4 years ago
 Thanks for the reply. I've tried it on my Mac through VMWare and by booting into Windows, but it's the same install. I'll have to try it on another windows machine later.

Also, wrt to software for mac - you mentioned that it would be good if an individual would get it working for mac/linux.

I can get your DPScope program running on Snow Leopard with Darwine, which is easy. Just install as normal. Problem is, it doesn't recognise the scope. Are there any clever people out there that can get winehelper to emulate the COM port through the mac's USB? I don't think it should be that difficult, I'm just not that experienced with darwine or FTDI drivers.
womai (author) 4 years ago
I have added a user forum to the DPScope webpage (go to http://www.dpscope.com --> User Forum, or direct link http://dpscope.freeforums.org/). Going forward this is will be the best place to get help as I check it daily. Out of some reason Instructables stopped sending me notification when a comment gets posted so I may not see it for days or weeks when you post here (on Instructables).
lgeorge1234 years ago
I found several c# and c++ programs about pc based oscilloscope , they have buffer size range from ten thousands to store data from adc . If you use a rectangle size said 700x500 pixel to display the waveform , a maximium of horizontal 700 pairs of data to display on this rectangle . But the buffer size is ten thousand long , how can this rectangle accommodate this large buffer size ??
womai (author)  lgeorge1234 years ago
That works pretty much the same as scrolling through a text document longer than one page - only one screen of data (e.g. 700 pairs in your example) is displayed, but there is a scrollbar that you can use to look at different section of the long text (or waveform). The only difference is that the scrolling is horizontal, while in a text file you typically scroll vertically. Often there also is a possibility to fit the full waveform on the screen for a quick overview, of course you won't be able to see every little detail that way - like a thumbnail.
UltraMagnus4 years ago
where is the firmware? without it this is nothing but instructions for a commercial proprietary kit.
You are right
jolshefsky4 years ago
I have been using your scope for several months now, and I'm generally satisfied; my complaint is largely offset by the extremely low cost and high functionality.

My complaint is a design flaw in the offset voltage. It is reflected in the output across the 1 megohm voltage divider, sourcing several microamps of current. It is not a problem with measuring buffered signals, but it gets in the way of reading sensitive circuits. I had been using it on a high-impedance oscillator in-circuit, and the DC bias would affect the operation of the circuit in a noticeable way. I think that if the DC bias were not present, the circuit would behave better. One workaround would be to set the offset voltage to zero although that prevents reading negative voltages.

I think the input circuit needs a bit of a redesign. Offhand I can't think of a good way to do it without going to a full-blown differential input internally biased against VCC/2 which of course adds a couple op-amps to an already crowded (and power hungry) device. Simply floating the BNC ground to the offset voltage instead of tying it to system ground would alleviate the problem on isolated circuits, but grand external ground loops would probably thwart that (i.e. watching signals from the audio output of the computer would short the BNC ground to the PC ground which is tied to the USB ground, etc.)
womai (author)  jolshefsky4 years ago
Probably the easiest solution would be to AC-couple the signal. I.e. add a series capacitor between your point of measurement and the scope input. Depending on your frequency, a ceramic capacitor of 10...100nF should be a good choice. That will float your measurement point and avoid and bias issues. Note that due to the offset voltage the scope trace will not be centered around the zero marker, but that should be a very minor issue. The way the offset generation works was a design tradeoff I decided to make, and in 99% of the cases it won't affect usability at all; on the upside it allows the whole scope to work with just a single +5V supply rail. The clean alternative would have been to add a negative supply rail - could be done e.g. with a voltage inverter. The downside of that would be more components, potentially a larger board, and an increase of about $10 in cost. Given that the aim was to create something simple and very affordable for a hobbyist, that wouldn't have been a good choice in my opinion.
camx4 years ago
 Built the scope and it works well. Very nice design.


Great project!  I've been looking for a long time for something around the same price point, and you really delivered a lot more than I was expecting to get for that sum.

Many thanks for such an excellent kit!  I just finished assembling it and playing around with it for a bit and it delivers.
Azayles4 years ago
Put it together fairly quick with no problems at all, aside from forgetting to solder the rest of the pins on one of the chips :P
Works PERFECTLY! I'm so impressed, I've never been so pleased with something I've soldered together myself, and it worked first time :D
Been using it to test the output of a servo controller circuit I built so I could check the PWM signals. The ability to save and load scope parameters is a BIG bonus!

Thanks again, Wolfgang, you've made an electronics geek very happy!
Azayles4 years ago
Mine arrived in the post this morning. Thanks, Wolfgang!
Can't wait to get this thing put together and calibrated :D

I wanna say a very big personal thank you again as I've wanted my own scope for as long as I can remember, but have never found an affordable solution which is of good design quality as this kit is.
Please let me know if you start selling kits for other equipment ;-) Next stop, a really good function generator with arbitrary waveform generation :D
MrMike4 years ago
Great write up and an excellent kit.  Easy to follow instructions even for a beginner.

Mine arrived 3/22/10 after a 3 week parts delay, (with timely updates form the author) and took me about 2.5 hours to put together and calibrate.  Thanks for marking the caps, I didn't need to pull out the the microscope or the LCR bridge. 

This simple scope is a great addition to the tool box for any experimenter / hobbyist out there, and you can't beat the price. 


Mine is all built up.
http://s794.photobucket.com/albums/yy222/cardinal634/?action=view&current=IMG_1593.jpg

I added a switch & capacitor to each channel to make the input similar to a Tektronix oscilloscope I have.

This change lets me switch in a capacitor in series with the input signal. That way if I want to see what is happening on a DC signal, I can switch to AC coupling - the DC is blocked by the capacitor and  I can look at the signal at a higher resolution. 

I found some small switches, drilled 1/4 inch holes below the seam of the box and placed so that it didn't interfere with or touch anything else.  The lead from the BNC connecter was not installed in the PCB - it was pulled up and wired to the center of the switch. One lead of the cap was soldered to the PCB instead. A wire was added to that same lead and connected to one side of the switch. The other side of the capacitor was connected to the other side of the switch.

The plastic tie-lock helped the board and the end plates in place while I figured out where switch would. To prevent mangling the box while drilling, I started with a 1/16" hole and then used a unibit from home depot to slowly open the hole a drill size at a time.

There are more shots before & after the portion of schematic.  I am new to photobucket, can't find a way to delete stuff.
Azayles4 years ago
Just bought one! (told you I would ;-) )
Can't wait till it comes :D I ordered the kit version 'cause I like building things myself plus it's cheaper :P

I'll probably post back here when it arrives to leave comments :D
pipponum14 years ago
Hi
I have a question: you have a 1Ms/s interface with 8 bit per sample. It's 8Mb/s. Two channels are 16Mb/s. How can you send data to pc via a 500kbps interface? Do you throw away packages or.. How?
Thanks
womai (author)  pipponum14 years ago
My scope works like any other digital sampling scope: It does not stream data to the PC at that speed. Instead, it captures one waveform record (~200 points per channel in this case) and stores it in the microcontroller's internal memory. After that it transfers that data to the PC (at 500 kbaud) where it gets displayed. Then it waits for the next trigger, captures another record, transfers that, and so on. On my computer I get about 35 - 40 records per second. For the eye it makes no difference, changes of the waveform display perfectly fluently - you won't be able to tell if it's 40 or 4000 records persecond anyway (remember, movies are just 25 pictures per second, the eye isn't faster than that).

So overall, at fast sample rate the scope spends most of the time transferring and displaying the data. As I said, every other digital real-time scope works the same. There are scopes that can do 40 GSamples (yes, 40 billion samples) per second on several channels simultaneously, no data connection to the PC could get even close to carry that as streaming data.
pipponum1 womai4 years ago
Thank you for the answer.
Another question. Is it possible to buy only the firmware? Simply the .hex file (which - I think - is not editable) sent by e-mail? If it is possible, how much is it? Thanks
gtkindust4 years ago
Embedded link in step 10 for Diptrace is wrong. It shows www.dptrace.com should be www.diptrace.com
womai (author)  gtkindust4 years ago
Thanks for pointing this out! Should be correct now.
saLZBURG4 years ago
I am interrested in building this scope but microchip doesn't have
a 24 F 2020. What other chip could be used instead.
womai (author)  saLZBURG4 years ago
Actually the scope uses a dsPIC30F2020, not a PIC24F2020 (which does not exist as you found out). But there is no need to order your own - a pre-programmed 30F2020 is included in the scope kit (which you can get from my website, www.dpscope.com).

womai (author)  womai4 years ago
Ok, just realized where you got the notion that it's a 24F2020 - a typo in my description. Corrected now. Sorry for the confusion.
media13284 years ago
Hello. many many thanks i have been looking for this scope for long times but now i can have it. my only question is how can i get the PCB for top and bottom layers?
all bests for you Dear Womai.
womai (author)  media13284 years ago
Hi,

the PCB is included with the scope kit that you can get from my website (www.dpscope.com), so no need to fabricate your own. The PCB isn't suitable for home-brew methods anyway since it has pretty small vias and narrow lines, and having one produce a single one professionally would cost more than the whole scope kit.

media1328 womai4 years ago
 Hello thanks for your mail. as I understood I have to buy your kit and it's not possible I make it by myself. and in other hand I can't buy it directly because I have no credit cart. and or pay pal or such   accounts so that many thanks again. and if it was possible for you to send me the top and bottom layout i can make the PCB by myself  your help will be appreciated.
thanks and good luck Media. 
womai (author)  media13284 years ago
Unless you are comfortable with reliably producing 12 mil (0.3mm) pitch structures (traces, keepouts) and drilling 16 mil (0.4mm) holes I'm afraid doing this board by hand is an impossible proposition. On top of that you'd need to align top and bottom layer to within better than 4 mil (0.1mm) to make it work. And ordering your own is more expensive than the whole kit due to stiff setup fees.

What you could to is build it up on a prototype board (e.g. stripboard, veroboard) - the circuit schematic (in PDF format) is on the webpage.

BTW, setting up a Paypal account is pretty easy, and you don't need a credit card to fund it - they also accept bank transfers and personal checks.
DMerriman4 years ago
Software is Windows-only? Bummer. I like the idea of making a kit available for something like this, but can't see buying one if I can't use it on my Linux system. Too bad the interface wasn't written in something like Java that'll work on about anything.
womai (author)  DMerriman4 years ago
The serial interface protocol for the DPScope is fully documented (look at the second half of the User Manual), so in principle everybody can write his/her own application for the scope, e.g. for Linux.

Making software really platform independent isn't trivial, even with nominally portable environments like Java. Especially once the software has to access external hardware, in this case through a virtual serial port. On top of that, one needs access to the different platforms to test the software on them.

Truth be told - and I am by no means a defender of M$ - from my experience having the application running Windows only covers 80% - 90% of the users, so adding MacOS and Linux triples the support effort for relatively little additional benefit (after all, Linux people can run Windows software in an emulator).

Just my personal opinion of course, and I am sure others will have their own views.
websterjrco4 years ago
Nice and thorough work ... but I'm hoping you won't mind questions on the approach you chose for the GUI ... in devising a somewhat similar GUI (but for a completely different and non-general-purpose H/W scenario), some partners and I concluded that a 3rd-party VisualStudio toolkit such as PlotLab from mitov.com would be the best and quickest way, e.g. in the interest of development time.
I'm not really the S/W guy, but it looks as if you are using the Microsoft Chart Controls that came out in later-2008.
The question are basically: Did you feel this was a good fit for the GUI needs? Or was there a lot of coding that might otherwise have been alleviated with something like PlotLab? (e.g. all the zoom, pan, axes, cursors, markers and so on)
Certainly the MS Chart Controls are free, and PlotLab is not (but is not too bad, which is why their price was not an issue to us).
Thanx in advance for any insight you can offer from one designer to another.
womai (author)  websterjrco4 years ago
Actually I am not using MS Chart at all, the graph is built up manually. That said, my first version was indeed based on MS Chart, but it wasn't flexible enough (e.g. no way to implement infinite persistence) and it was slow due to all the generic overhead. Hand-coding all the graphing routine more than doubled the screen refresh rate, and it gives me full control about display details (plus, sometimes it's more fun to do things yourself, even if to some extent that means re-inventing the wheel :-) Programming effort for that was limited, just a few evenings.

So speed is one reason NOT to use a generic third-party routine with all the related overhead. Of course cost is also a consideration - given that Plotlab seems to cost a few 100 dollars (while I have VB6 Professional available for free), this would significantly increase my cost; after all, when I developed the scope I didn't know whether I would be able to sell 10 units or 1000.

But in any case thanks for the pointer to these libraries, if the scope remains popular it may be a viable choice for a future software release.

gmoon4 years ago
Nice!

Is this a clone, kit, or your own design?
womai (author)  gmoon4 years ago
Hi,

this is my own design from ground up - both hardware and software, which I'm offering as a kit.
How much will the kit cost?
womai (author)  The Ideanator4 years ago
The kit is already available; cost is $89 (this is actually less than you could get the components for if you did a one-off), secure payment through Paypal (which accepts paypal balance, credit cards, and other funding options). Here is the purchase page:

http://www.dpscope.com/buy_it.html

Cracknel womai4 years ago
Do you plan a Linux release for the software?
womai (author)  Cracknel4 years ago
As for programming, I'm a Windows-only guy, so the answer is "no". But if somebody would like to port the software to e.g. Linux or MacOS please contact me and I'll be glad to assist. As mentioned before the interface to the scope is fully documented (see the second section of the User Manual, which is available for download on the scope website), so anybody can write his/her own application for the scope.
rafitf womai4 years ago
there is a package in linux that can run windows applications it's called Wine 
(Tip: it seams to work better with a second hard drive installed)
I am a Linux man I have not done this but I have run many Linux distro and looked at a lot of the depositories where you can get open souse software I think I saw one for Fedora and Ubuntu look  in the package managers for your disto for Ubutu it is called synapic it is located under the sub topic of eletronics I can not rembmer what it is iin Fedora. One can shop around for better prices on parts and could get lucker at beatting the $89 tag on the parts with Linux the softwere is FREE ! God I love Linux for all that it has to offer as well as no more Blue Screens of Death     
aaronjehall4 years ago
100pF resistors? AWESOME!!!
Fashim4 years ago
What does this do?
womai (author)  Fashim4 years ago
It is an oscilloscope, so it shows you how an (electrical) signal changes over time. If you want to learn more about this type of instruments a good starting point would be this document from Tektronix:

XYZ of Oscilloscopes
excelent proyect i like this very util proyect, thanks again
kmpres4 years ago
Very nice indeed!  A well packaged and documented kit!  I have been looking for a good PC Scope to replace my aging 200MHz Tektronix.  Yours is a terrific start in that direction.  I agree, most electronics troubleshooting and prototyping don't require high bandwidth.  I really only keep the old Tek around for the times when I need something that can detect very short duration pulses.  Do let us know when you start selling PC scopes that can rival the bandwidth of those classic scopes from the 70s and 80s.
Kociubinska4 years ago
Excellent project!
XsavioR4 years ago
Nice little kit offered here. I misunderstood the intention here was to offer mass produced kits...  Nice work.

For anyone else who like me couldnt find this info as a standard user browsing this page , check here http://www.dpscope.com
azarpisces4 years ago
Hello Nice work
One thing, if it's not an add and open to all for construction, then why you have not given the firmware to be programmed in uController.
Dont u feel it against the spirit of an insutructable.
 While I am planning on buying a kit (price is hard to beat), I second this notion. If someone wanted to modify this device, it'd be nice to have access to the firmware. If the firmware were freely available, it might be the nudge I need to make this device worthwhile. At the very least, you should provide the firmware to people who pay for one of the devices. Is this the case?
Fercho_20064 years ago
womai, would you kindly post the firmware for us? I live in South America, and my country is not supported on paypal!

Fortunately, I have the hardware needed to program the microcontroller!

Thanks in advance!
womai (author)  Fercho_20064 years ago
Please contact me through the address on the scope webpage and I'm sure we can work something out:

http://www.dpscope.com/contact.html
XsavioR4 years ago
(removed by author or community request)
womai (author)  XsavioR4 years ago
Hi, that may be a slight misunderstanding. The circuit board is part of the kit, there's no need to fab your own (or did you mean "assemble the board"). Second, the firmware is already burned onto the microcontroller, so you don't have to do that either - just plug the chip into the socket and the scope is ready to go.
Azayles4 years ago
Good grief! A USB PC oscilloscope that's finally in my price range! This is fantastic! I've bookmarked the page and I'll be buying on very soon :D
Do you ship to the UK?
womai (author)  Azayles4 years ago
Yes, I ship worldwide. Just make sure to use the right checkout (shipping costs are somewhat higher outside the US, although I do my best to keep those costs to a minimum - would not make sense to pay more for shipping than the product is worth, would it?
Azayles womai4 years ago
Excellent, thanks so much :-D
I was thinking this would be a great project. Starting to play around with guitar tube amplifiers. but I think plate voltages are more around the 500V
range. Don't this would work.
womai (author)  jjack_ddaniels4 years ago
Actually it would be easy to make it work with such voltages. You just need to divide them down sufficiently so as to bring them into a range suitable for the subsequent stages. An extension by a factor of 10 would be sufficient (for a total maximum measurement range of -1200V to +2000V):

A few possibilities:

- get yourself an off-the-shelf 1:100 probe. Then just multiply the displayed values on the screen with 100.

or:

- modify the input attenuator (R1, R2) and (R3, R4). Just make sure the total resistance stays 1 MOhm. In the original design R1, R2 are 249 kOhm and 750 kOhm, respectively, i.e. a division ratio of 1:4 (R2/(R1+R2)). To change this to 1:40 (so you can use a 1:10 probe and still get the 1:100 total ratio), you'd need - to a good approximation - a 1 MOhm resistor for R1, and a 24.9 kOhm resistor for R2. Possibly only modify one input channel so you can still use the other one for small signals.


Note: I would not recommend using a 1:1 probe and modifying the input attenuator to a 1:400 ratio, because that would mean applying full voltage across the poor small resistor; I'd be afraid of arcing. On the other hand using  1:10 probe and a 1:40 attenuator limits the actual voltage at the scope input to 1/10th of the circuit voltage and divides the voltage down in two stages rather than one.
keastes4 years ago
ow my head hurts, this is even better than coffee in the morning
bishopdante4 years ago
whoa dude, this really isn't muckin' about!

Have you considered building an audio interface?
womai (author)  bishopdante4 years ago
Can you elaborate a little bit more - do you mean a hardware interface (e.g. different type of connector), or additions to the software (e.g. audio spectrum display in power-per-octave or the like)? I'm always very open to suggestions for improvements and new features, so the more details you can provide, the higher the likelihood it gets implemented!

carlos66ba4 years ago
Neat!  Do you have labview plugins?
womai (author)  carlos66ba4 years ago
I don't have drivers for Labview but you can easily write your own - after all, the software interface is just a (virtual) RS-232 serial port (COM port), and Labview has full support for serial ports. I'm not sure if you saw it, but the command interface protocol is fully described (go to the Download section, the description is the second half of the User Manual).