GithubHelp home page GithubHelp logo

isabella232 / pico-extras Goto Github PK

View Code? Open in Web Editor NEW

This project forked from raspberrypi/pico-extras

0.0 0.0 0.0 277 KB

License: BSD 3-Clause "New" or "Revised" License

CMake 2.76% C++ 7.93% Assembly 4.15% C 85.16%

pico-extras's Introduction

This repo has additional libraries that are not yet ready for inclusion the Pico SDK proper, or are just useful but don't necessarily belong in the Pico SDK.

Note that any API here is a work in progress and subject to change.

See pico-playground for buildable example code using these extra libraries.

Library Description
hardware_rosc API for the ring oscillator
lwip LWIP Lightweight IP Library packed as an INTERFACE library for use with the Pico SDK
pico_audio Audio output support; this is highly functional, but the API is subject to change
   pico_audio_i2s Audio output via I2S on 3 GPIOs using PIO. Arbitrary frequency
   pico_audio_pwm Audio output via (PIO) PWM. Currently a bit limited in frequency support (it was developed on FPGA to do 22050Hz at 48Mhz system clock). It does however support error diffusion dithering and noise shaping with 16x oversampling to give surprisingly good audio quality. This code will be split to provide both a fixed frequencie(s) version and a slightly slower but rather better arbitrary frequency version supporting ever higher carrier frequencies
   pico_audio_spdif Audio output in S/PDIF on a GPIO using PIO. Supports up to 192khz stereo. Consumed OK in test, haven't tried it with real hardware
pico_sd_card 1 and 4 bit SDIO support using PIO. This is functional (currently writing is only 1 bit), but the the code is very much prototype and the API is just a placeholder - the command set needs to be separated from the SDIO and shared with SPI
pico_sleep Low power related APIs, WIP because they are not sufficiently generic and also only handle core 0
pico_scanvideo Support for video output where every pixel is scanned out every frame. VGA/DPI support is highly functional and stable, but the API is subject to change
   pico_scanvideo_dbi currently non-compiling... placeholder for adding scanvideo over MIPI DBI support.
   pico_scanvideo_dpi Highly functional and stable support for parallel RGB output and VSYNC/HSYNC/DEN/CLOCK for VGA/DPI.
pico_util_buffer Rather incomplete buffer abstraction, used by pico_audio and pico_scanvideo
platypus Decoder for a custom image compression format suitable for dithered images (good for RGB555) and suitable for decoding on RP2040 at scanline speeds ... i.e you can easily decode a 320x240 image 60x per second to avoid storing the uncompressed image for scanout video. It gets about 50% compression (but is designed only for 4x4 fixed dithered RGB555 images, so is somewhat specific!). TODO add the encoder here :-)
usb_device, usb_common The custom and somewhat minimal USB device stack used in the bootrom. We now use TinyUSB in the Pico SDK but kept here for posterity
usb_device_msc USB Mass Storage Class implementation using usb_device

You can add Pico Extras to your project similarly to the SDK (copying external/pico_extras_import.cmake into your project) having set the PICO_EXTRAS_PATH variable in your environment or via cmake variable.

cmake_minimum_required(VERSION 3.12)

# Pull in PICO SDK (must be before project)
include(pico_sdk_import.cmake)

# We also need PICO EXTRAS
include(pico_extras_import.cmake)

project(pico_playground C CXX)
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 17)

Alternative you can inject it into an existing project without modifying it via PICO_CMAKE_POST_LIST_DIRS by passing -DPICO_SDK_POST_LIST_DIRS=/path/to/pico_extras to cmake

pico-extras's People

Contributors

alexstanoev avatar ali1234 avatar daft-freak avatar hexpwn avatar kilograham avatar lurch avatar michaelbell avatar neywiny avatar tannewt avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.