Rishin Goswami's PicoSigGen Aims to Turn a Raspberry Pi Pico Into a 100MS/s Waveform Generator
Current $20 eight-bit 5MS/s version a stepping stone to a planned sub-$50 14-bit 100MS/s variant.
Self-described technology enthusiast Rishin Goswami has built a $20 arbitrary waveform generator, dubbed PicoSigGen, good for up to 5MHz — using a Raspberry Pi Pico and its dual-core RP2040 microcontroller's Programmable Input/Output (PIO) blocks as the driving force.
"An arbitrary waveform generator is a standard tool for almost every budding electronics engineer. However these devices are costly," Goswami explains. "Even the relatively cheaper ones with specifications like 150MS/s [megasamples per second], 50MHz, 14-bit [resolution] cost above $300. There are under-$10 signal generators, but their usage is very limited and they certainly cannot generate arbitrary waveforms."
To solve that, Goswami set about building his own — and despite its low cost of under $20 in parts, the PicoSigGen boasts some impressive specifications for the maker on a budget: up to five megasamples per second (MS/s) at up to 5MHz, eight-bit resolution, and storage for waveforms consisting of up to 131,000 data points.
"The problem with using standard low cost development boards is the that they cannot generate n-bit signals consistently aligned to a clock edge at high sample rates," Goswami explains. "But what if a board already had an inbuilt mechanism to do so? With the launch of the Raspberry Pi Pico a few years back, we finally have such a board. It has a special hardware module called PIO (Programmable I/O) which allows the programmers to write some specialized assembly code which achieves exactly the same thing."
With the PIO blocks replacing otherwise-expensive external hardware, the PicoSigGen cuts down on the bill of materials considerably. With a low-cost eight-bit external digital to analog converter (DAC), it's enough to drive a proof-of-concept version of the PicoSigGen — though Goswami has loftier goals, targeting a future revision using a higher-end DAC and a high-accuracy external clock to offer greater than 100MS/s at 14-bit resolution.
More details on the PicoSigGen project are available on Goswami's Hackaday.io page, alongside the KiCad schematic for the hardware side, with source code available on GitHub under the permissive Apache 2.0 license.