Name Date Size

..27-Apr.-20224 KiB

.gitignoreH A D18-Aug.-202122

apps/H18-Aug.-20214 KiB

audio/H18-Aug.-20214 KiB

CMakeLists.txtH A D18-Aug.-2021450

LICENSE.TXTH A D18-Aug.-20211.5 KiB

pico_extras_import.cmakeH A D18-Aug.-20212.9 KiB

pico_sdk_import.cmakeH A D17-May-20223.1 KiB

README.mdH A D22-Oct.-20214.5 KiB

reset/H18-Aug.-20214 KiB

scanvideo/H22-Oct.-20214 KiB

sleep/H18-Aug.-20214 KiB

standalone/H18-Aug.-20214 KiB

stdio/H18-Aug.-20214 KiB

README.md

1This repo is similar to [pico-examples](https://github.com/raspberrypi/pico-examples) but utilizing additional libraries
2from [pico-extras](https://github.com/raspberrypi/pico-extras)
3
4Note that most of these examples are neither fleshed out nor well documented. They mostly serve
5the purpose of playing with/testing particular areas of functionality (mostly audio/video related)
6
7Finally, you may wonder why many of these demos set the system clock to 48Mhz. The reason is that until we had physical
8chips, we were running at a fixed 48Mhz system clock using an FPGA. Most of these examples were written before the 
9RP2040 design was final, so they were all developed with that fixed 48MHz system clock. As a result some of the examples do things in a way 
10that you wouldn't necessarily need to if you had more clock speed available (which you do), but on the plus side,
11you have that much more time to do even more things!
12
13## Full Applications
14
15Name|Description 
16---|---
17[popcorn](apps/popcorn)| This is a movie player for 30fps 320x240 movies with 44100 stereo sound, read in a custom format from SD card... it can even play backwards :-) Sample movie file linked from [here](apps/popcorn/README.md).
18[usb_sound_card](apps/usb_sound_card)| A no frills but functional USB sound card... hooked up via our old (pre TinyUSB) USB device stack. Keeping it around as it works nicely!
19
20## Audio
21
22Name|Description
23---|---
24[sine_wave_i2s](audio/sine_wave)| A simple sine wave audio output using I2S.
25[sine_wave_pwm](audio/sine_wave)| A simple sine wave audio output using PWM.
26[sine_wave_spdif](audio/sine_wave)| A simple sine wave audio output using S/PDIF.
27
28## Scanout Video
29
30In _scanout_ video, every pixel is driven by the PIO every frame, and a framebuffer is not (necessarily) used (which
31is useful when you only have 264K of RAM).
32
33For a fuller description of scanout video see [here](https://github.com/raspberrypi/pico-extras/blob/master/src/common/pico_scanvideo/README.adoc)
34
35Name|Screenshot|Description
36---|---|---
37[demo1](scanvideo/demo1)|![](scanvideo/demo1/screenshot.jpg)| So named because it was the first demo program written that used video.. it is a bit dated now and hails from a time where there was _much_ less RAM on the RP2040
38[flash_stream](scanvideo/flash_stream)|![](scanvideo/flash_stream/screenshot.jpg)| Streams video data out of flash fast enough to drive 640x480x60fps bitmap display
39[hscroll_dma_tiles](scanvideo/hscroll_dma_tiles)|![](scanvideo/hscroll_dma_tiles/screenshot.jpg)| A horizontal scrolling test app which uses a second video plane (PIO) to overlay sprites
40[mandelbrot](scanvideo/mandelbrot)|![](scanvideo/mandelbrot/screenshot.jpg)| A mandelbrot generator using a 320x240x16 framebuffer
41[mario_tiles](scanvideo/mario_tiles)|![](scanvideo/mario_tiles/screenshot.jpg)| Confusingly named as a reference to Super Mario Kart's tiled psuedo-3D rendering. This is similar to [hscroll_dma_tiles](scanvideo/hscroll_dma_tiles) except the whole tiled scrolling area is now rotated and zoomed.
42[scanvideo_minimal](scanvideo/scanvideo_minimal)|![](scanvideo/scanvideo_minimal/screenshot.jpg)| A very basic video output generator which generates a test pattern
43[render](scanvideo/render)| | A very dated rendering library used by [demo1](scanvideo/demo1) - avoid!
44[sprite](scanvideo/sprite)| | A small sprite library used by [sprite_demo](scanvideo/scanvideo_minimal)
45[sprite_demo](scanvideo/sprite_demo)|![](scanvideo/sprite_demo/screenshot.jpg)| Some bouncing Eben heads
46[test_pattern](scanvideo/test_pattern)|![](scanvideo/test_pattern/screenshot.jpg)| Display color bars
47[textmode](scanvideo/textmode)|![](scanvideo/textmode/screenshot.jpg)| Shows off chained DMA to generate scanlines out of glyph fragments via DMA/PIO
48
49The above are intended to be used with the VGA demo board as described in [Hardware Design with RP2040](https://rptl.io/rp2040-design) however it is possible to wire your own VGA output according to the following schematic:
50![](scanvideo/Raspberry Pi Pico to VGA Connection Schematic.png)
51
52## Sleep
53
54Examples of using low power mode; these use `pico_sleep` from pico_extras which is not yet stable.
55
56Name|Description
57---|---
58[hello_dormant](sleep/hello_dormant)| Demonstrates dormant mode
59[hello_sleep](sleep/hello_sleep)| Demonstrates low power sleep and waking from RTC
60
61
62## Stdio
63
64Examples of adding additional stdio support. Note the interface for stdio drivers is not yet considered stable
65even though it is in the Pico SDK
66
67Name|Description
68---|---
69[stdio_pio](stdio/pio)| Demonstrates adding a custom STDIO driver using a PIO UART