Using a Raspberry Pi for Instrumentation — Overview (Part 1)


Different people buy different computers for different purposes. Some computers have a lot of processing power for running games or intense simulations. Other people are happy to have an iPad for occasional reading or working on documents on-the-go.

Over the last couple years in grad school, the computer that I've been using in my laboratory for data acquisition and communicating with instruments has... has begun ... to ... slow ... waaaaaayyyy.... doooww .......

There are two possible fixes:

  1. Buy a new $500 windows computer
  2. Buy a new $40 Raspberry Pi

My advisor and I both like saving money.

The Raspberry Pi is a credit-card sized personal computer that supports all of the functionality of a full-sized computer (just with much smaller and lower performance components). Whereas on a normal desktop computer, I would plan on doing a lot of email, web browsing, document editing etc..., all I really need to do on the laboratory computer is to talk to scientific instruments and write data to hard drives. All of this can be done with a teensey weensey little computer.

For most instrumentation tasks, Windows is the operating system of choice. A lot of companies only write drivers and libraries for Windows computers, but that is beginning to change. Recently, there has been a lot of effort put into writing wrappers for these drivers in operating-system-agnostic frameworks like Python. For example, see Instrumentatal, Lantz and QCoDeS.

The nice thing about a Raspberry Pi is that it can be installed to run either Linux or Windows. With Linux, you get all the stability and hacker tools that this open-source architecture provides, and with Windows, you get support for all of the Windows-only drivers.

The only limitation that I foresee is that these little credit-card computers run on an ARM7 processor, which doesn't always play nicely with the Intel x86 architecture instruction sets. But we'll give it a shot and see how it goes.