Higher Precision scope (Mac based)

I just made a program that uses the Arduino as a basic oscilloscope. What makes this one different from other ones is:

  • up to 360000 samples/sec
  • Serial @ 2000000 baud
  • Triggers

It is Mac-only and only one channel.

Just wondering what people think, I couldn’t find a tool like it already out there.

There is a video at:

You can grab files from:

Load the PDE file to your Arduino, start the Mac application, select the serial-port of your arduino and you are all set.

Looks very nice, like a real 'scope.


This has only been tested with the 2009 Duemilanove with a 328p.

One last thing, does anyone know why 0.05% of my serial frames were not being received?

I can't seem to get the Macduinoscope application to launch. I'm using a PowerPC G4 running Mac OSX 10.4. Any suggestions? Thanks!

does anyone know why 0.05% of my serial frames were not being received?

  • Serial @ 2000000 baud


Is your UART receiver on a DMA channel? If not, something like a system clock interrupt may be interfering with the interrupts that empty its buffer.


This looks like a great system. Unfortunately, I have a PC. Any plans on writing software to read the serial data properly on a PC?

I tested the software on a mac and it works fantastic! Great application, very useful if you are travelling and can't bring your scope with you.

could someone post gabuku files? they are no longer avaiable...



Interesting..I recently made a Windows/DirectX based oscilloscope myself and I'm wondering..how did you make the Arduino send that fast? To my knowledge the max BAUD rate is 115200.

Besides even at that rate the PC doesn't seem to be able to keep up. I'm succesfully sending around 7000-8000 bytes per second but anything more than that and my application starts generating errors.

Any tips would be appreciated :)

I’m very interested for my actual projects to have a Mac Arduinoscope.
Does someone has downloaded the files from gagebear ?
Thank you in advance

No sign of the Mac app, but I was able to find the sketch cached on google :/ -


I have a copy of the app and the source for it, where should I put it?

Hmm - i suppose we can't add upload files to the arduino playground =/

howsabout rapidshare? http://www.rapidshare.com/

Why do you need that faster serial baud rate ?


Nobody has found mac arduinoscope app?

I need it!

Thank you


it looks like best arduino scope will be now found here http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1256923269

it looks like best arduino scope will be now found here http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1256923269

Not best, but definitely different. Just uploaded a java testing version, please take a look.


Hi there,

I'm working on an OpenFrameworks-based viewer for the output of gabebear's super-fast oscilloscope firmware, for the non-Mac people. I'm developing on Ubuntu but OpenFrameworks code should compile on Windows (and Mac too).

The normal OpenFrameworks serial library can't seem to handle "non-standard" serial speeds (like 2Mbaud) and it doesn't let you control the DTR line for resetting the Arduino (which this firmware makes heavy use of). I've got around this on Ubuntu with a wrapper script which sets up the 2Mbaud serial speed as a "custom speed" (using "setserial spd_cust divisor 12") and makes the DTR line respond to opening and closing the serial port (using "stty hup"). I'm not sure how to do the same tricks on Windows however, any Windows serial gurus out there?

So far I've been focussing on getting the code able to read the 10bits@124khz mode of gabebear's firmware (it can go up to 3.5bit@360khz, but I haven't written code to handle the different data-format that uses). At first I had a lot of trouble consuming the data fast enough on the PC side (using an EeePC), but now with separate threads for reading and display, I get a very stable signal. By the way, this speed issue is the reason I didn't just hack on one of the Processing-based Arduino Oscilloscope projects.

At some point I think it would be worth adding some more features to gabebear's firmware, like optionally reading two channels of input (at a reduced speed).

It's still pretty raw, so I haven't made the code public, but I thought I would mention I have been working on it in case anyone was interested. I plan to put the code online somewhere when it is more usable, but PM me if you are brave enough for unusable software ;)