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.


  1. Dan J. says:

    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.

    • J&E Leuthold says:

      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.

  2. jc says:

    what about measurement transformers ?

  3. jc says:

    by the way, I think xmega would be a lot better for this.. even in the simple AT91SAM7S series they have a lot better AD converters.

  4. jc says:

    hmm, he’s not even using the USB test and measurement class…

    • Privatier says:

      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.

  5. avrpunk says:

    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.

  6. Harvie.CZ says:

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

    • itdaniher says:

      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.

  7. logical says:

    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.

  8. cgimark says:

    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.

    • Isotope says:


      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.

  9. steve says:

    Oh my god, this is by no means an oscilloscope. Displaying some shittily sampled 3 kS waveform data in a oscilosscope-lokalike GUI does not make an arduino an oscilloscope. Please!

  10. j0z0r says:

    What’s wrong with the Xprotolab?

    $50 or $35 for the kit. I’m thinking about getting one soon just for multimeter purposes, but I’m sure I’ll invent a reason to get into the oscilloscope functions.

  11. SDF says:

  12. Dmitry says:

    I got the error.

    ./lxardoscope: symbol lookup error: ./lxardoscope: undefined symbol: fl_init

    What should I do?

  13. Charlie says:

    Does anyone have a parts list for this build??

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


Get every new post delivered to your Inbox.

Join 96,764 other followers