martinkooij
Posts: 64
Joined: Sun Feb 28, 2021 5:22 pm
Location: The Netherlands

STICKY: Community library list for Pi Pico SDK C/C++

Sun Feb 28, 2021 6:37 pm

Hi all.

In the forum I found scattered information on people that have build code to steer peripherals, created easy ways to interface, or coded a solution to a common problem. Using these (directly or as learning by example) would make programming the pico much more fun and easier.

Wouldn't it be great if we had an overview where all community contributors can contribute their solutions, easily findable, each structured abou the same way, so anybody can use it?

I would like to help. What would be your preference?
  • A pinned subject in this forum with a maintained collection of links to github
  • A separate place on the raspberri pi website (if they allow?) with links to github
  • an effort to create a package manager in SDK that automatically finds libraries and header files with CMake directives?
  • wait till arduino IDE for pi pico is finished?
  • I don't need it: I can find anything on the forum and via google?
Should there be guidlines or will the community check and help each other?

What do you think? Any idea from the SDK developers?

------------------------ DEV GUIDELINES & NOTES ---------------------------------

  • Use INTERFACE not STATIC libraries (at least if they include SDK headers/call SDK code) - see section 2.2 of SDK documentation
  • If you use interrupt handlers; use shared Interrupt Handlers (see SDK documentation, section 4.1.13.)
  • Use resources you are sure to be free (e.g. sm in pio, channels in dma, ...) to prevent clashes with other libraries (see SDK documentation, e.g. section 4.1.14.6.6. for pio sm).
  • SDK documentation link: https://datasheets.raspberrypi.org/pico ... -c-sdk.pdf
--------------------------- AWESOME LIST---------------------------------

LEDs and Displays
16x2 LCD: https://github.com/martinkooij/pi-pico-LCD
OLED bitbank's library (in C): https://github.com/bitbank2/Pi_Pico_C_Projects and https://youtu.be/qmBpuXuLEsU
OLED object library (bitbank wrapped and simplified usage for pi pico): https://github.com/martinkooij/pi-pico-ss-oled/
OLED blippy's library: https://github.com/blippy/rpi/tree/master/1306/pico-sdk
Arduino 1306 OLED C-library wrapped for Pico: https://github.com/fhdm-dev/pico-arduin ... it-ssd1306
Neopixel Advanced: https://www.raspberrypi.org/blog/neopix ... with-pico/
Hardware Agnostic Display Library (general library for MIPI compatible displays; ILIxxx, STxxx, ..): https://github.com/tuupola/hagl_pico_mipi
Adafruit LED matrix library: https://github.com/blippy/rpi/tree/mast ... co-8x8-sdk. Note that inside there is a way to safely set-up I2C and abstract away some of the internals.
VGA 640x480x16 colour framebuffer: https://github.com/Memotech-Bill/pico-vga-framebuffer. See also this thread: https://www.raspberrypi.org/forums/view ... 5&t=305712 and on youtube: https://www.youtube.com/watch?v=FRiU7-UIdos.
VGA 80x24x32K colour text buffer: https://github.com/Memotech-Bill/pico-colour-text
port of Adafruit Neopixels Library to Pi Pico SDK: https://github.com/martinkooij/pi-pico- ... -neopixels. (With object safe constructors and destructors in case of multiple neopixel strands).
Display TFT ST7735: https://github.com/Wiz-IO/wizio-pico-ex ... tft-st7789 (see thread https://www.raspberrypi.org/forums/view ... 5&t=305614)
Display TFT ST7735: https://github.com/bablokb/pico-st7735 (see thread https://www.raspberrypi.org/forums/view ... 5&t=305614).
driving a 480x320 ILI9488 TFT (8 bit parallel): https://github.com/zapta/pio_tft/tree/m ... formio/src

Motors & Robotics
Stepper Motor: https://github.com/beshrkayali/pico_stepper
Servo Motor based on PCA9685 controller: https://github.com/aleopardstail/PCA968 ... Controller. (Not a library yet, but a collection of useful.c, .h and .cpp code).
controlling stepper motors (SDK C-based): https://github.com/antgon/pico-stepper
Quadrature encoder as a PIO program: https://github.com/pmarques-dev/pico-ex ... re_encoder

Sensors
Temperature such as DS18S20 (1-Wire sensors): https://github.com/adamboardman/pico-onewire
Sharp MTOF171000C0 Time-of-flight (TOF) distance sensor: https://github.com/fhdm-dev/mtof171000c0-pico
MPR121-based touch sensors: https://github.com/antgon/pico-mpr121
Bosch BME280 humidity, pressure and temperature sensor (I2C): https://github.com/fivdi/pico-devices

General peripherals
16 bit I/O Extension MCP23017: https://github.com/adamboardman/pico-mcp23017
Driving the AD9833 general waveform generator: https://github.com/fhdm-dev/ad9833-pico
Library to work easily with the HC5955N 8-bit shift register: https://github.com/admantium-sg/rp2040- ... er-74HC595

Music & Sounds
Tone library for playing tones and simple melodies: https://github.com/martinkooij/pi-pico-tone
Using a guitar to create MIDI: https://github.com/ripxorip/pico_guitar_to_midi
FM Radio chip Si4702 / Si4703 : https://github.com/vmilea/pico_si470x
FM Radio chip RDA5807: https://github.com/vmilea/pico_rda5807

Interfacing
SPI library for running SPI as a slave: https://github.com/vmilea/pico_i2c_slave
Tiny webserver at USB: https://github.com/maxnet/pico-webserver (also see https://github.com/Hermann-SW/pico-webserver).
Pico webclient at USB: https://github.com/Hermann-SW/pico-webclient
MINIWIN Mini Window UI Framework (any generic SPI -ILI9341 based touchscreen): https://github.com/miniwinwm/miniwinwm. For the framework and examples see website https://miniwinwm.wixsite.com/miniwinwm.
Ethernet connectivity: https://github.com/sandeepmistry/pico-rmii-ethernet (and getting started instructions)
LoRaWAN: https://github.com/sandeepmistry/pico-lorawan. Explained at: https://www.raspberrypi.org/blog/how-to ... y-pi-pico/
I2C dev library: https://github.com/jrowberg/i2cdevlib (with an RP2040 implementation in the subdirectory RP2040).
Ethernet with the W5100S: https://github.com/Wiznet/RP2040-HAT-C


System Thingies & Awesome Tools
Extended library for Pi Pico (lib2): https://github.com/iiot2k/pico-lib2. (From https://www.raspberrypi.org/forums/view ... 5&t=313774, examples in https://github.com/iiot2k/pico-lib2-examples).
Including binary files in your code (without a filesystem): See https://www.raspberrypi.org/forums/view ... 6#p1856196
Non-blocking timers: https://github.com/Blimp01/pico_non_blocking_timer (but see https://www.raspberrypi.org/forums/view ... 5#p1867396).
Flash .uf2 file to reboot Raspberry Pico with baudrate switching method (no pressing bootsel switch needed): https://gist.github.com/Hermann-SW/ca07 ... 6d81de01a7
load a file to topmost flash location of Raspberry Pico, appended with 4-byte length: https://gist.github.com/Hermann-SW/8a9b ... de58902e9d
show file (stored with picoload) at topmost flash location of Raspberry Pico: https://gist.github.com/Hermann-SW/d6fc ... da4d76b858
show file (stored with picoload) at topmost flash location of Raspberry Pico (Pico C code): https://gist.github.com/Hermann-SW/e92d ... 6cc873b969
A FAT filesystem (with no OS needed) on SD card over SPI: https://github.com/carlk3/no-OS-FatFS-SD-SPI-RPi-Pico
A thin filesystem (not Posix compatible, but focused!): https://github.com/littlefs-project/littlefs, unfinished for Pico, see discussion in https://www.raspberrypi.org/forums/view ... 5&t=317332.
A complete emulated system (retro Memotech MTX 8 bit computer) inculding the operating system CP/M. All on a Pi Pico: https://github.com/Memotech-Bill/MEMU.
A BASIC Interpreter (MMBasic) with full support for peripherals, I/O Pins, ADC Pins, ... (As someone on the forum remarked. Christmas time -- in Summer--). Check forum : http://www.thebackshed.com/forum/ViewTo ... &TID=13998
A PICO flashloader for emergencies: https://github.com/rhulme/pico-flashloader

Compression, coding & deconding algorithms
https://github.com/kripton/brotli/tree/rp2xx (general lbrary, see Files + README for RP2040)
https://github.com/kripton/heatshrink/t ... ton-rp2xxx (general lbrary, see Files + README for RP2040)
https://github.com/kripton/snappy/tree/rp2xx (general lbrary, see Files + README for RP2040)
https://github.com/kripton/zlib/tree/rp2xx (general lbrary, see Files + README for RP2040)
https://github.com/kripton/zstd/tree/rp2xx (general lbrary, see Files + README for RP2040)
Coding base64 (for sending binaries over text-only media): https://github.com/kripton/libb64/tree/kripton-rp2xxx
JSON coding/decoding (see README for pi Pico): https://github.com/kripton/jsoncpp/tree/rp2xx


Benchmarks
@nick.mcloud's no repo yet coremark, .zip attached to forum item: https://www.raspberrypi.org/forums/view ... 2#p1820311
q32.pico.c, determine single core pure integer performance (minimal distinct primes magic 3x3 square): https://gist.github.com/Hermann-SW/6772 ... 543d9d3dbe
Throughput of memcpy() and memory-to-memory DMA: https://gitlab.com/slimhazard/rp2040-mem-xput-bench (see https://www.raspberrypi.org/forums/view ... 5&t=319315)
Last edited by martinkooij on Tue Feb 08, 2022 3:00 pm, edited 63 times in total.

maaartin
Posts: 3
Joined: Wed Feb 24, 2021 5:17 pm

Re: Community library list?

Mon Mar 01, 2021 4:26 pm

Thank you very much for your library.
In my opinion the best solution at this moment would be a pinned subject.

danjperron
Posts: 4686
Joined: Thu Dec 27, 2012 4:05 am
Location: Québec, Canada

Re: Community library list?

Mon Mar 01, 2021 5:59 pm

At least one of them that I know about.

https://awesome-micropython.com/

martinkooij
Posts: 64
Joined: Sun Feb 28, 2021 5:22 pm
Location: The Netherlands

Re: Community library list?

Tue Mar 02, 2021 10:30 am

Yeah, that's a nice overview for python! Now for C/C++ SDK!
I think I have a unused website lying around. Maybe I will dedicate it to Pico Pi C/C++ resources. Your link provides a nice example how this could look like

Thanks for the pointer!

ConfuSomu
Posts: 76
Joined: Tue Dec 04, 2018 8:47 am
Location: Canada

Re: Sticky: Community library list?

Wed Mar 03, 2021 7:31 pm

blippy and bitbank have ported their OLED libraries to the Pico. See viewtopic.php?f=144&t=299754. They could be added to the community library list.

bitbank's library: https://github.com/bitbank2/Pi_Pico_C_Projects and https://youtu.be/qmBpuXuLEsU
blippy's library: https://github.com/blippy/rpi/tree/master/1306/pico-sdk
If you are low on RAM, make sure to use zram! ;)
I found & use this zram setup script: https://github.com/novaspirit/rpi_zram
A post about zram: ?t=207304
Make sure to disable dphys-swapfile and mount the tmp folders in RAM. SysRq is helpful!

adamboardman
Posts: 5
Joined: Sat Jan 30, 2021 7:56 pm

Re: Sticky: Community library list for Pi Pico SDK C/C++

Fri Mar 05, 2021 1:21 pm

I missed this sticky as I usually skip past the pinned items when looking for new posts, thanks for adding the one wire lib.

I've another library you can add if you like: https://github.com/adamboardman/pico-mcp23017

In terms of votes for options, a pinned list is a good start but I also like the idea of a community run GitHub organisation where we can branch other peoples repositories into it, contribute to each others libraries adding test code/examples etc.

I suggest a GitHub organisation as it doesn't involve anyone being out of pocket for hosting costs/domain name registration and its easy to add/remove people as it evolves.

I started writing a possible guide to such an organisation:

# Pico-community

Open source library's with test code for the Raspberry Pi Pico.

We are an open community and welcome new contributions.

We have a low bar to jump for repository inclusion:
  • At least one test covering one use case for your hardware
  • For libraries - an example of how it would be used
  • Released under a permissive open source license (MIT, Apache, BSD etc)
## How do I know if a library is worth using with such a low bar to inclusion?

We plan to use the GitHub stars system to indicate which code is of good quality. Newer users should hang fire on using code without stars until others have tried out the code. Please only star a repository if you've actually used it on hardware for your own use case. Raise bugs to help encourage improvements and give stars once they are fixed. As all projects start in someone's personal GitHub space before inclusion you can star the personal project outside the pico community organisation if just want to keep track of them before making use of them.

The organisation has a generic repository with no content except a link to its wiki and bug tracker to allow community documentation and bugs related to the whole organisation.

# How to join in?
  • New repository - create your contribution under your user account on GitHub then raise a bug for inclusion. Once someone else reviews your library and approves it for inclusion you'll then be added to the organisation so can then contribute to all repositories.
  • Improvement to existing repository - raise a pull request against the repository in question. Once someone else has reviewed your contribution and approved it they will also add you to the organisation so you can then review other peoples contributions.
  • Once your a member of the organisation - you should still seek a second reviewer for all but the simplest of commits, e.g. spelling fixes are fine to just push directly, expanding to new hardware variant would be a pull request. Major refactoring would be raise a bug first for discussion?

User avatar
nick.mccloud
Posts: 1280
Joined: Sat Feb 04, 2012 4:18 pm

Re: Sticky: Community library list for Pi Pico SDK C/C++

Fri Mar 05, 2021 5:35 pm

adamboardman wrote:
Fri Mar 05, 2021 1:21 pm
I suggest a GitHub organisation as it doesn't involve anyone being out of pocket for hosting costs/domain name registration and its easy to add/remove people as it evolves.
I'd suggest starting out simple with an 'Awesome' style list.

The above sounds good but also sounds like a fair amount of work.

Although getting entries on to an awesome list still requires someone to edit pages.
Pico/RP2040 ≠ Arduino
Pico = hot rod kit car, Arduino = hot rod kit car wrapped in cotton wool with buoyancy aids & parachute

tuupola
Posts: 25
Joined: Tue Mar 02, 2021 9:03 pm

Re: STICKY: Community library list for Pi Pico SDK C/C++

Sat Mar 06, 2021 10:21 pm

You might be interested in HAGL and the Raspberry Pi Pico HAL . The HAL should support all MIPI DCS standard displays. This means most ILI and ST displays. SSD displays seem to have their own standard but they can be supported with their own HAL. I have been using the combination for testing stuff like old school demo effects.
--
Mika Tuupola
https://www.appelsiini.net/

martinkooij
Posts: 64
Joined: Sun Feb 28, 2021 5:22 pm
Location: The Netherlands

Re: STICKY: Community library list for Pi Pico SDK C/C++

Tue Mar 09, 2021 1:03 pm

tuupola wrote:
Sat Mar 06, 2021 10:21 pm
You might be interested in HAGL and the Raspberry Pi Pico HAL . The HAL should support all MIPI DCS standard displays. This means most ILI and ST displays. SSD displays seem to have their own standard but they can be supported with their own HAL. I have been using the combination for testing stuff like old school demo effects.
Nice...

User avatar
HermannSW
Posts: 6253
Joined: Fri Jul 22, 2016 9:09 pm
Location: Eberbach, Germany

Re: STICKY: Community library list for Pi Pico SDK C/C++

Wed Mar 17, 2021 9:53 am

Hi,

can you please add this as "webclient at USB" under "Tiny webserver" in "Interfacing" section?
https://github.com/Hermann-SW/pico-webclient


You might want to create a "Tools" section as well.
If yes, here are some candidates for that section:

"Flash .uf2 file to"/reboot Raspberry Pico with baudrate switching method (no pressing bootsel switch needed):
https://gist.github.com/Hermann-SW/ca07 ... 6d81de01a7


load a file to topmost flash location of Raspberry Pico, appended with 4-byte length:
https://gist.github.com/Hermann-SW/8a9b ... de58902e9d

show file (stored with picoload) at topmost flash location of Raspberry Pico:
https://gist.github.com/Hermann-SW/d6fc ... da4d76b858

show file (stored with picoload) at topmost flash location of Raspberry Pico (Pico C code):
https://gist.github.com/Hermann-SW/e92d ... 6cc873b969


You might want to create "Benchmark" section as well.
If yes, some candidates:

@nick.mcloud's no repo yet coremark, .zip attached:
viewtopic.php?f=144&t=304012#p1820311

q32.pico.c, determine single core pure integer performance (minimal distinct primes magic 3x3 square):
https://gist.github.com/Hermann-SW/6772 ... 543d9d3dbe
https://github.com/Hermann-SW/RSA_numbers_factored
https://stamm-wilbrandt.de/GS_cam_1152x192@304fps
https://hermann-sw.github.io/planar_graph_playground
https://github.com/Hermann-SW/Raspberry_v1_camera_global_external_shutter
https://stamm-wilbrandt.de/

martinkooij
Posts: 64
Joined: Sun Feb 28, 2021 5:22 pm
Location: The Netherlands

Re: STICKY: Community library list for Pi Pico SDK C/C++

Sun Mar 21, 2021 12:26 pm

HermannSW wrote:
Wed Mar 17, 2021 9:53 am
Hi,

can you please add this as "webclient at USB" under "Tiny webserver" in "Interfacing" section?
https://github.com/Hermann-SW/pico-webclient


You might want to create a "Tools" section as well.
[...]
Done, thanks for helping to grow the list. Good tools, I will certainly use some of them when tinkering, good to have them around!

User avatar
HermannSW
Posts: 6253
Joined: Fri Jul 22, 2016 9:09 pm
Location: Eberbach, Germany

Re: STICKY: Community library list for Pi Pico SDK C/C++

Sun Mar 21, 2021 12:46 pm

Thank you, but now the webserver link is gone.

Please replace this line
Tiny webserver at USB: https://github.com/Hermann-SW/pico-webclient

with these two lines:
Tiny webserver at USB: https://github.com/maxnet/pico-webserver
Pico webclient at USB: https://github.com/Hermann-SW/pico-webclient
https://github.com/Hermann-SW/RSA_numbers_factored
https://stamm-wilbrandt.de/GS_cam_1152x192@304fps
https://hermann-sw.github.io/planar_graph_playground
https://github.com/Hermann-SW/Raspberry_v1_camera_global_external_shutter
https://stamm-wilbrandt.de/

kilograham
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 1536
Joined: Fri Apr 12, 2019 11:00 am
Location: austin tx

Re: STICKY: Community library list for Pi Pico SDK C/C++

Mon Mar 22, 2021 1:41 pm

Note to library authors; please use INTERFACE not STATIC libraries (at least if they include SDK headers/call SDK code) - see section 2.2 here https://datasheets.raspberrypi.org/pico ... -c-sdk.pdf

martinkooij
Posts: 64
Joined: Sun Feb 28, 2021 5:22 pm
Location: The Netherlands

Re: STICKY: Community library list for Pi Pico SDK C/C++

Mon Mar 22, 2021 7:27 pm

HermannSW wrote:
Sun Mar 21, 2021 12:46 pm
Thank you, but now the webserver link is gone.

Please replace this line
Tiny webserver at USB: https://github.com/Hermann-SW/pico-webclient

with these two lines:
Tiny webserver at USB: https://github.com/maxnet/pico-webserver
Pico webclient at USB: https://github.com/Hermann-SW/pico-webclient
Repaired it.

martinkooij
Posts: 64
Joined: Sun Feb 28, 2021 5:22 pm
Location: The Netherlands

Re: STICKY: Community library list for Pi Pico SDK C/C++

Mon Mar 22, 2021 7:28 pm

kilograham wrote:
Mon Mar 22, 2021 1:41 pm
Note to library authors; please use INTERFACE not STATIC libraries (at least if they include SDK headers/call SDK code) - see section 2.2 here https://datasheets.raspberrypi.org/pico ... -c-sdk.pdf
Added a DEV guidelines header at the front of the post

kilograham
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 1536
Joined: Fri Apr 12, 2019 11:00 am
Location: austin tx

Re: STICKY: Community library list for Pi Pico SDK C/C++

Mon Mar 22, 2021 9:50 pm

martinkooij wrote:
Mon Mar 22, 2021 7:28 pm

Added a DEV guidelines header at the front of the post
Awesome, thank you;.. i will take a look and try to suggest a few others

fhdmdev
Posts: 4
Joined: Fri Apr 02, 2021 2:51 am

Re: STICKY: Community library list for Pi Pico SDK C/C++

Sun Apr 04, 2021 6:13 pm

I have a couple of libraries that may or may not be worthy of inclusion in the list. They are:

ad9833-pico
A library for the controlling the AD9833 programmable waveform generator:
https://github.com/fhdm-dev/ad9833-pico

mtof171000c0-pico
A library for controlling the Sharp MTOF171000C0 Time-of-flight (TOF) distance sensor
https://github.com/fhdm-dev/mtof171000c0-pico

martinkooij
Posts: 64
Joined: Sun Feb 28, 2021 5:22 pm
Location: The Netherlands

Re: STICKY: Community library list for Pi Pico SDK C/C++

Mon Apr 05, 2021 12:48 pm

fhdmdev wrote:
Sun Apr 04, 2021 6:13 pm
I have a couple of libraries that may or may not be worthy of inclusion in the list. They are:
...
Done. Thanks!

blippy
Posts: 246
Joined: Fri Nov 03, 2017 3:07 pm

Re: STICKY: Community library list for Pi Pico SDK C/C++

Mon Apr 05, 2021 4:35 pm

Created an Adafruit LED matrix library:
https://github.com/blippy/rpi/tree/mast ... co-8x8-sdk

I used a custom-made I2C class, which people may find of interest in its own right. It simplifies - a tiny bit - the setup of I2C. The LEDMatrix class uses this. A nice touch about it is that you can't inadvertantly not set up I2C.

martinkooij
Posts: 64
Joined: Sun Feb 28, 2021 5:22 pm
Location: The Netherlands

Re: STICKY: Community library list for Pi Pico SDK C/C++

Thu Apr 08, 2021 3:24 pm

blippy wrote:
Mon Apr 05, 2021 4:35 pm
Created an Adafruit LED matrix library:
https://github.com/blippy/rpi/tree/mast ... co-8x8-sdk

I used a custom-made I2C class, which people may find of interest in its own right. It simplifies - a tiny bit - the setup of I2C. The LEDMatrix class uses this. A nice touch about it is that you can't inadvertantly not set up I2C.
Thanks!!!

To start I2C in an encapsulated class I used code much like this (with pico_i2c being i2c0 or i2c1, and declarations of private variables left aside), to prevent accidentally wrong i2c uart and pin combinations. A bit silly now, but working on return codes still.

Code: Select all

void init()
{
      if ((sda + 2 * i2c_hw_index(pico_i2c))%4 != 0) return ;
      if ((scl + 3 + 2 * i2c_hw_index(pico_i2c)%4 != 0) return ;
      i2c_init(pico_i2c, speed);
      gpio_set_function(sda, GPIO_FUNC_I2C);
      gpio_set_function(scl, GPIO_FUNC_I2C);
      gpio_pull_up(sda);
      gpio_pull_up(scl);
      return;
}

blippy
Posts: 246
Joined: Fri Nov 03, 2017 3:07 pm

Re: STICKY: Community library list for Pi Pico SDK C/C++

Sat Apr 10, 2021 3:25 pm

martinkooij wrote:
Thu Apr 08, 2021 3:24 pm
Thanks!!!
You are most welcome!

I'm actually having second thoughts about the whole I2C class thing. I'm steering towards perhaps specifying an SDA pin, and then setting up the pins accordingly.

It could mean the I2C being set up a couple of times if one uses it in several places, but I figure that the computational cost is miniscule compared to the convenience to the developer. I'll take a look at your code with a view to incorporating it into my library.

I don't program in Rust, but I think one of its strong points is, especially for microcontrollers, is that things can be specified statically and verified as being correct at compile time. C++ seems to be making some inroads in that direction, but it has a long way to go.

pico-explorer
Posts: 7
Joined: Fri Mar 19, 2021 6:57 am

Re: STICKY: Community library list for Pi Pico SDK C/C++

Tue Apr 13, 2021 6:10 pm

Hello,

I developed a library to work with the HC5955N 8-bit shift register by Texas Instruments.

The library simplifies the process of writing single bits or entire bitmasks to the register.

See the repo here: https://github.com/admantium-sg/rp2040- ... er-74HC595

Example Code:

Code: Select all

ShiftRegister reg = shift_register_new((PinConfig){
      .SERIAL_PIN = 9,
      .SHIFT_REGISTER_CLOCK_PIN = 11,
      .STORAGE_REGISTER_CLOCK_PIN = 10
    });

shift_register_write_bit(&reg, 1);
shift_register_flush(&reg);
Last edited by pico-explorer on Wed Apr 14, 2021 9:38 am, edited 1 time in total.

martinkooij
Posts: 64
Joined: Sun Feb 28, 2021 5:22 pm
Location: The Netherlands

Re: STICKY: Community library list for Pi Pico SDK C/C++

Wed Apr 14, 2021 8:35 am

pico-explorer wrote:
Tue Apr 13, 2021 6:10 pm
Hello,

I developed a library to work with the HC5955N 8-bit shift register by Texas Instruments.

The library simplifies the process of writing single bits or entire bitmasks to the register.
...
Thanks you. Nice bit of code, I can learn something there... I added the link to the community library list in the pinned post above!

User avatar
miniwinwm
Posts: 7
Joined: Tue Apr 13, 2021 9:49 am

Re: STICKY: Community library list for Pi Pico SDK C/C++

Wed Apr 14, 2021 9:58 am

MiniWin is a cross platform open source embedded window manager with overlapped windows for small devices with a touch screen. There is now a port to the Pico board using a generic SPI driven ILI9341 based display and touch screen. Not all example projects are completed for this port yet, but they will come shortly. There's a website here...

https://miniwinwm.wixsite.com/miniwinwm

and a github repo here...

https://github.com/miniwinwm/miniwinwm

It builds with the C/C++ SDK using the standard CMake method. It's written in MISRA compliant strict C99 but can be used from C++ as well.

MiniWin, like most window managers, is not a library, it's a framework. You build you UI using the standard framework and add your embedded control code to it. Also like most window managers, there's a bit of a learning curve to get going with it, but there are plenty of examples to follow and a code generator to help you out.

It's released with a MIT license - fully open source and royalty free.
Untitled.jpg
Untitled.jpg (123.64 KiB) Viewed 42692 times


If anyone's interested in just the drivers from this project they are here...

https://github.com/miniwinwm/miniwinwm/ ... erryPiPico

and there's a FatFS to SD card via SPI here...

https://github.com/miniwinwm/miniwinwm/ ... File/FatFS

Both of the above are independent of the main window manager code and can be pulled out and used in other projects. Details of connections are at the end of the main document here...

https://github.com/miniwinwm/miniwinwm/ ... niWin/docs
MiniWin Open Source Embedded Window Manager
https://miniwinwm.wixsite.com/miniwinwm

martinkooij
Posts: 64
Joined: Sun Feb 28, 2021 5:22 pm
Location: The Netherlands

Re: STICKY: Community library list for Pi Pico SDK C/C++

Thu Apr 15, 2021 11:40 am

miniwinwm wrote:
Wed Apr 14, 2021 9:58 am
MiniWin is a cross platform open source embedded window manager with overlapped windows for small devices with a touch screen. There is now a port to the Pico board using a generic SPI driven ILI9341 based display and touch screen. Not all example projects are completed for this port yet, but they will come shortly. There's a website here...
...
Thanks, I have put it on the list above!

Return to “SDK”