etc | ||
grc | ||
images | ||
src | ||
.gitignore | ||
.gitmodules | ||
LICENSE | ||
README.md |
Pico PIO ADC
Sigma-delta ADC demo for Raspberry Pi Pico using PIO.
Building
- Clone with
git clone --recursive
to get the alternative stdio. - You need to have
PICO_SDK_PATH
set. - Just run
cmake -B build src
to configure the project. - And then
cmake --build build
to build it. - 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

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
