Raspberry Pi Connects Oscilloscope to Tablets

Not long ago, if you wanted to connect an instrument to a computer, you connected to a PC. Early instrument connections use serial ports, parallel ports, and GPIB. Then, USB, Ethernet, and wireless came along. For the most part, the computer controller was almost always a Windows-based PC.

In many applications, the PC is still the system controller and will be for some time. The prospect of using a tablet or a phone as an instrument interface may, over time, become the normal way of controlling measurement instruments. Because of that, instrument makers are faced with having to support more than one platform or operating system. It's not exclusively a Windows world anymore.

That's what the engineers at Link Instruments and other instrument makers are facing. They now have to support, not only Windows, but Linux, iOS, Android, and others. Embedded systems may become access points for instrument control.

For a small company such as Link Instruments, that's a daunting task. So, the company's engineers tried a different approach: the browser. Now, browser interfaces for instruments aren't new, but they can provide a means to a more universal interface to instruments regardless of the underlying operating system.

In an effort to develop a universal, browser-based interface between tablet computers and their MSOs, the engineers at Link Instruments turned to open-source hardware and software. The engineers set out to develop a driver stack that a microcontroller can use to control the MSO-28 over USB, then use a wireless interface to the outside world, ending at a tablet computer's browser. The result: PiMSO, which uses a Raspberry Pi module as an interface between the tablet and the MSO-28. I spoke to Link Instruments engineer John Yeh late one night about the project. (Apparently, writing code and running a DesignLine are both all-the-time jobs.)

"The goal of the project was to make a tablet's browser the interface to the MSO-28 at an affordable price," said Yeh. "We found that it works with Raspberry Pi, Beaglebone, and all others." Raspberry Pi was the choice.

Figure 1 shows a basic implementation. In this configuration, the Tablet communicates directly with the Raspberry Pi over WiFi. A Wifi Dongle is attached to one of the raspberry Pi's USB ports. The other USB port connects to the MSO-28. Thus the raspberry Pi becomes a server, with the tablet's browser as the client. An Nginx HTTP server in the Raspberry Pi runs an fcgi (fast CGI) server, which sends commands to, and receives data from, the MSO-28. In effect, there are three state machines: client, server, and oscilloscope, all running asynchronously.

Figure 1

(Source: Link Instruments)

The result is that the PiMSO can run across a local network or across the Internet because it has an IP address. In the direct configuration shown in Figure 1, the tablet need only find the SSID of the Raspberry Pi server because the PiMSO can be an access point in itself. Figure 2 is a diagram of the PiMSO connected to a wireless router.

Figure 2

(Source: Link Instruments)

Figure 3 shows it running through the Internet. The oscilloscope can be used as a remote monitor, accessible from any browser. In fact, more than one tablet can control the oscilloscope.

The Raspberry Pi does not need a keyboard or monitor; it can run "headless", and you can ssh into it to interact with it. I think the more general point is that once you provide a web interface to anything, you can interact with it from varied clients (PC, handheld, ...), and you can interact remotely. The oscilloscope could directly provide a web interface, which would obviate the need for this Raspberry Pi intermediary. Our routers and other appliances already do this; presumably oscilloscopes etc. will do so, soon.

So the point here is to replace PC with Rasberry Pi board, correct? But you need to have a monitor and keyboard to input some info and observe what you are doing. That sounds like you are effectively building a small cutom PC out of the Rasberry Pi being a new motherboard, did I get that right? Kris