Lxardoscope Is A Linux+Arduino Oscilloscope

[Privatier] wrote in to let us know about lxardoscope, his project that lets you use an Arduino as hardware input for a Linux-based oscilloscope display. This implementation offers two channels with about 3000 samples per second from each. He touts some of the GUI options like vertical resolution between 2mV and 10V per division. That part kind of stumps us because we don’t see how a measurement of 10V (or more) can be taken using the schematic included. But you’re comprehension may surpass ours so do take a look yourself.

He is using an Arduino Uno for his testing. But to get around some issues he’s experienced with other USB-based solutions he implemented a serial port connection instead. You’ll need to remove the ATmega chip from the Arduino board after flashing the code to it, and then build a circuit around it which includes a power source where -2.5V is ground and 2.5V is VCC. All in all, you’ll need a 16 Mhz crystal, HEF4069 hex inverter, ATmega8-family microcontroller, and a few passive components to build this on a breadboard.

30 thoughts on “Lxardoscope Is A Linux+Arduino Oscilloscope

  1. For the 10V+ measurements, is it possible he’s using the equivalent of a 10x probe? Should be relatively simple to set up a voltage divider and then amplify the signal back to its original magnitude in software before displaying.

    1. The input voltage range is determined by the Arduino’s reference voltage selection; with the 5V option, signals from 0 to 5V can be viewed. Lxardoscope simply allows for scaling the display. On the 10V range, one would see a maximum signal height of half a division; not particularly useful for measurements, but for reference or trigger on one channel, while the other channel fills the remaining 9 divisions of the oscilloscope display.
      For higher input levels, a voltage divider would be required. But with this subject we open a can of worms, related to input impedance and input protections.

    1. Do you know of any boards similar to the Arduino which use these circuits? (Yes, the A/D converters on the Atmega328 are far from 10 bit accuracy, see my report on SourceForge.)

    1. The Java stuff was ridiculously slow, that’s why I created an alternative. The low cost version works with serial port only, but the Arduino UNO board uses USB or serial.

  2. This is definitely a hack, but I suggest that with the current price of Rigol DS1052E scopes ($350) that you just buy one and use your new found free time on more exciting projects.

    It makes life _alot_ easier.

    1. hey while we are blowing money on something that’s mostly a hobby interest why stop at 400 bucks?

      here is a 2200$ Tektronix scope that will make life so much easier when you want to diag a slow signal!


      In honesty the only reason I am blessed with a scope is cause someone was tossing a 20mhz 1987 keenwood in the dumpster, most hobby level people would feel the same.

    2. $350 is a lot of money…that is a new PS3 with $100 left over. If you already have a linux PC and an arduino, this hack is free. This looks to be a whole lot better than ArduinoScope; the only real competition it has.

      What I don’t understand is why they are not using the USB plug, and instead using serial. The Uno can be setup so that the USB plug is nothing but a serial to usb adapter…to use an external serial adapter that does exactly the same thing seems silly (and no one has real serial ports these days).

      1. Indeed, the low cost version works with serial port only, but the Arduino UNO board uses USB or serial. Connecting to the serial port through an optocoupler allows for low cost electrical isolation from the computer.

  3. “two channels with about 3000 samples per second from each”

    WHY this?? You can buy (USB) soundcard for few dollars on dealextreme and remove input capacitor(s), so you’ll be able to measure even DC and lo-freq signals. Then you have (aoss) xoscope or audacity software on Linux and you are able to measure much higher frequencies than arduino.

    1. Unfortunately, most USB soundcards use ASICs that give a very narrow measurement range, probably 0-2v, aren’t ground referenced, and are often AC coupled internally. With most soundcards, it’s not as simple as removing capacitors.

  4. I think a seperate a/d converter would be the way to go. You can get good quality ones that will surpass the data rate of the microcontroller. Then I guess you could buffer the frames inside the microcontroller to feed the usb port.

  5. Save your money on using slow sampling rate scopes. You are far far better buying a used 20Mhz scope off ebay for $100 . To get the same resolution that an analog scope can give you with these sampling type scopes you will have to spend 10x the cost of a decent used analog scope. Even at 1 million samples per second the analog scope will walk all over the ADC based scopes in performance.

    1. +1

      I’ve sourced a few used analog scopes from ebay and they’ve been great. My latest is a dual analog/digital mode scope with features that surpass my needs and I paid less than $100.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.