In the dynamic and ever-evolving world of open source technology, the PiicoDev community really stands out to me as a curious and humble one. While the project's main repositories on GitHub serve as the heart of our collective endeavor, it's the diverse and ingenious contributions from our dedicated users that truly embody the spirit of PiicoDev. In this special feature, we turn the spotlight on those exceptional creations that, for various reasons, haven't found a home in our main repo, yet are just too good to not be shared with those that might benefit from them.
From ingenious hacks to creative adaptations, these contributions are not just additions to the PiicoDev ecosystem; they are testaments to the potential of open-source collaboration.
Thank you to each and every contributor.
If you've made a contribution/modification to PiicoDev that you'd like to share, let us know! Open a thread to show it off on our forums, or leave a comment on this article.
Packed Font by Mark Gladding
This is a gold-standard contribution, with really clear implementation examples!
Packed Font brings in some really nice quality-of-life improvements to the PiicoDev OLED Module like larger fonts, text alignment, and contains a script + instructions for packing your own custom font. There’s even a symbols font for common graphics, and screenshot utility that Mark used to capture these demo shots! Bravo, Mark!
Originally celebrated in this forum post.
PiicoDev Schematic System by Ezra
See the project by Ezra224017
Open source projects aren't just hardware and code. Readability counts! And Ezra's contribution aims to codify how we create schematics. The png/svg assets are linked in the project.
Here's an example project featured on Ezra's writeup that describes a simple wireless weather station with real-time clock.
Piico_info - (PiicoDev devices presence tests) by Murray
Forum user Murray125532 contributed Piico_info (GitHub) to augment the Unified Library. This upgrade adds functionality to scan the bus - It can detect connected devices, display a description of the connected hardware and even flag potential (and troublesome) address collisions.
It's as simple as importing the module:
# import the library code from Piico_info import Piico_info # then instantiate it (this is the default for standard PiicoDev setup) tests = Piico_info()
And querying one of the methods. I like the details() method. In this case, 'long' returns a verbose description and even attempts a best guess at the address-switch configuration for various modules. Where a potential conflict exists (an address is known to be shared across two devices) Piico_info attempts to give you a heads-up.
>> details('long') 16 0x10 PiicoDev VEML6040 Colour Sensor vvv Possible conflict vvv 16 0x10 PiicoDev VEML6030 Ambient Light Sensor (ASW off) 60 0x3c PiicoDev OLED Module SSD1306 82 0x52 PiicoDev Real Time Clock (RTC) RV3028 vvv Possible conflict vvv 82 0x52 PiicoDev Air Quality Sensor ENS160 (ASW on) 83 0x53 PiicoDev Air Quality Sensor ENS160 (ASW off) 119 0x77 PiicoDev BME280 Atmospheric Sensor
There are plenty of other useful methods for querying single addresses or devices too.
Thanks Murray!