# Pico PIO ADC Sigma-delta ADC demo for Raspberry Pi Pico using PIO. ## Building 1. Clone with `git clone --recursive` to get the alternative stdio. 2. You need to have `PICO_SDK_PATH` set. 3. Just run `cmake -B build src` to configure the project. 4. And then `cmake --build build` to build it. 5. Flash the firmware via `picotool load -f build/pico-pio-adc.uf2`. ## GNU Radio Companion The GNU Radio Companion examples work with a FIFO that receives the stream from the serial. Build creates a simple tool to move the bytes around, so you can do this: ``` mkfifo samples.fifo build/tools/serial /dev/ttyACM1 >samples.fifo ``` Then GRC can grab the samples. If you tire of having to start the serial tool manually, you can do this: ``` watch -n1 'build/tools/serial /dev/ttyACM1 >samples.fifo' ``` This restarts it in a second once it quits. ## Circuit Circuit Schema Click the image to open interactive version in Paul Falstad's excellent online simulator. ## Screenshots Please note that screenshots are with **AMS-1117** linear voltage regulator bypassing the Picos RT6150 on-board switching regulator unless the caption says otherwise. This is done by jumpering `3V3_EN` pin to `GND`, feeding `VSYS` to the regulator input and passing the regulator output to `3V3` pin. The `3V3` rail is then decoupled with `10uF` ceramic capacitor to `GND` on the analog board.
Noise floor with external AMS-1117 linear regulator
Noise floor with on-board RT6150 SMPS in PWM mode
Noise floor with on-board RT6150 SMPS in PFM mode
IR Blast, full rate
IR Blast, tuned at 38 kHz