Arduino oscilloscope uses ROS code

Posted on Saturday, July 9th, 2011 in Arduino, oscilloscope by the machinegeek presents this project tutorial demonstrating that a simple oscilloscope can be implemented using the Arduino. They write:

In this tutorial, we will be making a poor man’s oscilloscope using the Arduino’s ADC (analog to digital converter) and rxplot. We will set up a publisher which will forward the analog values from each of the Arduino’s 6 ADC pins to ROS using rosserial. This will be a relatively bad oscilloscope (very low sampling frequency and resolution), but it will be perfect for many quick and dirty setups.

This project requires that you have the ROS (Robot Operating System) installed on your machine. ROS provides libraries and tools to help software developers create robot applications. It provides hardware abstraction, device drivers, libraries, visualizers, message-passing, package management, and more. It is available in a supported Ubuntu package download here. (Experimental packages are also available for other operating systems.)

This entry was posted on Saturday, July 9th, 2011 at 3:00 pm and is filed under Arduino, oscilloscope. You can follow any responses to this entry through the RSS 2.0 feed. You can skip to the end and leave a response. Pinging is currently not allowed.

One Response to “Arduino oscilloscope uses ROS code”

  1. privatier says:

    For another implementation of an oscilloscope using an Arduino as data acquisition device, see my lxardoscope, available at
    – display modes: two channels, time/add/xy
    – vertical: 2mV to 10V per division
    – overall gain control for calibration
    – horizontal: 100us to 5 sec, for full sweep
    – trace position adjustments: vertical and horizontal
    – trigger: on/off, channel 1 or channel2, rising or falling edge
    – trigger level: -10 to +10V
    – signal level measurements: max, min, pp, avg, rms
    – signal levels and time shown for mouse pointer location selected on display
    – up to 3000 samples per second, per channel
    – option for recording input data stream to file
    – option to display recorded data from file
    – timebase calibration adapts to Arduino’s conversion speed
    – GND calibration allows for selecting arbitrary GND potential

Leave a Reply

Notify me of followup comments via e-mail. You can also subscribe without commenting.

Recent Comments

  • Drone: So these go for around $330 USD and NO published calibration procedure online or otherwise? Given what's inside - I don't think I'll be considering...
  • Pekka Akselin: This is ridiculous!? :-) We are back at 256(!) byte EPROMs that needed multiple, a handful, of voltages to run! :-(
  • KH: Let's try a back-of-envelope calc balancing energies. From MCP1700 datasheet, there are graphs for a 200mA load step. Estimate the energy shortfall as 12uJ. Say...
  • Daniel: It's been a week and my comment is still awaiting moderation. Apparently the CIA doesn't want their involvement known?
  • KH: Agree, so okay, I guess he must have learned from somewhere. 100nF and 1000uF is so far apart, that was jarring; it's more magic incantation...