An Oscilloscope with the Raspberry Pi
Making a full-fledged oscilloscope with a Raspberry Pi or RBPi, the unique low cost SBC, may be beyond the scope of many enthusiasts, but here is a proof-of-concept that RBPi can handle such a project. Although not a very practical oscilloscope, it does provide several oscilloscope-like capabilities. Additionally, all this comes at a very low cost and not much of soldering is involved – impressive incentives for any DIY enthusiast to start on the project.
The oscilloscope project has additional incentives for those seeking to advance their learning curve. Information available in the project and experience gathered during the execution may be reusable for applications involving analog sensing and plotting data onto a screen. It is perfectly possible to project the output onto a larger screen as the output of the oscilloscope is available to view in a web browser. Therefore, this project could also be used to display low-frequency waveforms in an environment that does not have a real oscilloscope. The RBPi oscilloscope is quite responsive and refreshes the display several times a second.
To make the oscilloscope all you need is an RBPi, an XMOS startKIT board and a few wires. The XMOS startKIT is another credit card sized board containing the XMOS multi-cored processor. When compared to other similar processors in the market, the XMOS processor comes with a host of advantages for projects that require real-time operations. This is especially true for data-logging purposes, as the chip also contains a 12-bit ADC or Analog to Digital Converter built into it. Having all this on a single low-cost board makes the whole arrangement very attractive for connecting to the RBPi.
Although a multimeter is a very useful instrument, it cannot show electrical signals varying over time beyond a certain rate. With the RBPi oscilloscope, you can do that see more than what the multimeter tells you. Of course, it is not the intention here to make an oscilloscope with all the features that a professional scope has. However, the project does offer some oscilloscope-like features such as sweep modes, trigger capability and on-screen cursors for trace measurements.
Unlike a regular oscilloscope, the RBPi scope lacks the entire front-end. Therefore, it does not possess a good sample rate, has no front-end filters, is without any AC/DC input capabilities and there are no gain adjustments. In fact, the XMOS Analog Examiner is good enough only to examine simple circuits at low speeds. The XMOS board actually collects analog data and transfers it to the RBPi over the Serial Peripheral Interface or SPI. The RBPi runs a web server and the XAE application using JavaScript and Node.js. Anyone connecting to the XAE application via a web browser can see the data plotted as a graphical curve.
The XMOS processor can run multiple tasks in parallel, thanks to its multiple cores that can execute different codes. The XMOS cores communicate with each other using the concept of channels. Additionally, the XMOS chip also has a 4-channel ADC built in. This ADC can resolve at 12-bits or 4096 points at 1 MSps or a million samples per second. For further details on this oscilloscope, refer to this site.