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.

Comments

  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.

    • dmp says:

      Or get one of these for $190 and get a nice all in one package for home hacking. It has open source software and supports Linux (and lesser OSes ;-))
      I’ll get one soon I hope.

      http://www.syscompdesign.com/CGR101.html

    • Dude says:

      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.

    • KillerBug says:

      $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).

      • Privatier says:

        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.

  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:

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

  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

Follow

Get every new post delivered to your Inbox.

Join 96,532 other followers