Velleman EDU09 PC Oscilloscope

In my IoT endeavors, I have been learning a lot, but also finding that I need more tools.  I’ve been thinking about an oscilloscope but couldn’t really justify the cost of a desktop unit.  Then I ran across the Velleman EDU09 PC Oscilloscope Kit. I ended up getting mine from Amazon for about $52USD. 


I was just talking with my dad and reminiscing about the Heathkit projects we built when I was a kid.  Among them , there was a multi-meter kit, and after hours of assembly, it didn’t work.  My dad says it took him some painstaking investigation before he discovered a single diode we had inserted backwards.  But you kind of expect that with a kit, and I was not disappointed this time around.  I had a great time putting the kit together, and quickly learned that my soldering skills aren’t what they used to be.  Of course when I was all done, it didn’t work.  I got up the next morning, found some solder joints I had just plain missed, and of course, found a diode (actually an LED) that I had put in backwards. After fixing the problems, my EDU09 worked great.

There are some handy downloads for you if you are going to get one yourself:

One of the first things I used it for was to visualize a Pulse Width Modulation (PWM) signal from my Arduino. I wrote an arduino sketch that simply loops a PWM pin output from 0-255-0 over and over and over.  This signal is visualize by an LED getting brighter then dimmer over and over:


PWMRamp - Ramps a PWM pin up and down


//Output Pin (needs to be a PWM enabled pin)
int outputPin = 9;
//Min value for analogWrite
int minVal = 0;
//Max value for analogWrite
int maxVal = 255;
//Current value
int val = 0;
//Current increment
int inc = 1;
//Delay between loop iterations
int delayMs = 3;

void setup() {

void loop() {
  //Display the current value

  //Write the current value to the output pin

  //Increment the value by the inc amount
  val += inc;

  //Test to see if the new value is outside the range
  if(val <= minVal || val >= maxVal)
    //if so, invert the increment
    inc *= -1;
    //And clamp the value in range
    val = max(min(val,maxVal),minVal);

  //Wait for the specified ms before continuing

Then I connected the EDU09 via USB to my PC, launched the EDU09 software and connected the EDU09 leads to my  circuit (black lead to ground, red lead to the PWM pin output), and watched the signal on my EDU09.


I found that the easiest way to get the EDU09 to show the signal was to hit “Run”, then “Autoset”.  It changed the coupling to AC, so I switched it back to DC, and got a great result:


If you’d like a copy of the files I used, you can GRAB THEM HERE (

Leave a Reply