JPEGDEC
pimoroni-pico
JPEGDEC | pimoroni-pico | |
---|---|---|
5 | 25 | |
347 | 1,211 | |
- | 2.4% | |
7.8 | 8.9 | |
about 2 months ago | 6 days ago | |
C | C | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
JPEGDEC
- karpathy/llm.c
-
Family Photos vs 256 Kb RAM
It takes some time to decode, but I can grab- for example- this 259k JPEG: http://placekitten.com/3840/2160
And display it from the microSD card with this code: https://gist.github.com/Gadgetoid/0b8e352e377135d743338c9483...
As more or less demonstrated by this example: https://github.com/pimoroni/pimoroni-pico/blob/main/micropyt...
Decoding is done via Larry Bank's JPEGDEC: https://github.com/bitbank2/JPEGDEC
It uses roughly 20k RAM to provide the necessary buffers both for decoding JPEGs into blocks which are passed to a drawing routine that handles copying the data into the display RAM buffer (on our larger Inky display this is backed by PSRAM). I don't believe there's a hard limit to the size of the JPEGs you can display. The main bottlenecks are decoding time and the relatively limited scaling options: FULL, HALF, QUARTER, EIGHTH.
This aside, the authors solution is actually quite elegant. As long as you have control over the image pipeline there's no real reason to encumber the device with handling large (both in bytes and pixel dimensions) files. You'll also get much better dithering results writing your own routine to convert files from JPG to the raw 4-bits per pixel format for the display. Our built-in dithering is just a plain ordered dither matrix and, while quaint and retro, it leaves much to be desired visually.
If you're trying to use a public API you can also make GitHub actions automate the whole image conversion process and publish the results to GitHub pages. This works great for, for example, the daily XKCD, serving both to reformat the strip for the display, credit the author, extract the "alt" text and avoid excess requests to the origin. Eg: https://pimoroni.github.io/feed2image/xkcd-800x480-daily.jpg. Though the astute will notice I still opted for jpeg in this case.
-
Making a tiny video player using an ESP32 programmed in Arduino. Managed to fit all of the components into a tiny space and am about to order my PCBs. Wish me luck!
I'm doing the same thing with MJPEG and the JPEGDEC library https://github.com/bitbank2/JPEGDEC. I preprocess the video using ffmpeg to scale the video down to 240x240 and remove the compression.
pimoroni-pico
-
Family Photos vs 256 Kb RAM
It takes some time to decode, but I can grab- for example- this 259k JPEG: http://placekitten.com/3840/2160
And display it from the microSD card with this code: https://gist.github.com/Gadgetoid/0b8e352e377135d743338c9483...
As more or less demonstrated by this example: https://github.com/pimoroni/pimoroni-pico/blob/main/micropyt...
Decoding is done via Larry Bank's JPEGDEC: https://github.com/bitbank2/JPEGDEC
It uses roughly 20k RAM to provide the necessary buffers both for decoding JPEGs into blocks which are passed to a drawing routine that handles copying the data into the display RAM buffer (on our larger Inky display this is backed by PSRAM). I don't believe there's a hard limit to the size of the JPEGs you can display. The main bottlenecks are decoding time and the relatively limited scaling options: FULL, HALF, QUARTER, EIGHTH.
This aside, the authors solution is actually quite elegant. As long as you have control over the image pipeline there's no real reason to encumber the device with handling large (both in bytes and pixel dimensions) files. You'll also get much better dithering results writing your own routine to convert files from JPG to the raw 4-bits per pixel format for the display. Our built-in dithering is just a plain ordered dither matrix and, while quaint and retro, it leaves much to be desired visually.
If you're trying to use a public API you can also make GitHub actions automate the whole image conversion process and publish the results to GitHub pages. This works great for, for example, the daily XKCD, serving both to reformat the strip for the display, credit the author, extract the "alt" text and avoid excess requests to the origin. Eg: https://pimoroni.github.io/feed2image/xkcd-800x480-daily.jpg. Though the astute will notice I still opted for jpeg in this case.
-
Ask HN: Getting started with DIY programming of electronics
I've done a lot of programmable LED projects (keyword Neopixel or WS2812) and by far my favorite hardware has been this little raspberry pi pico board that takes care of the power requirements for you, a USB-C cable can supply 3 amps, powering one or two hundred LEDs with ease. There's lot of Arduino boards that let you program a few neopixels, but supplying power for lots of them is usually the annoying part.
https://shop.pimoroni.com/en-us/products/plasma-2040
https://github.com/pimoroni/pimoroni-pico/tree/main/micropyt...
-
Sony backs Raspberry Pi with fresh funding, access to A.I. chips
https://shop.pimoroni.com/collections/pico is the pi version of that.
I'm still not sure why the BBC went down the route of making its own platform when adapting the arduino world would have been simpler and more effective. Still its good to see that the BBC is doing computing again.
-
Pico I2C problem with SCD41 sensor
I have a problem with an I2C connection to a SCD41 sensor (Pimoroni Breakout). The strange thing is: The example provided by Pimoroni works perfectly fine.
-
Pico KuCoin Trader gadget - I spent too long on the UI and forgot I need memory for the API and important code. Not sure how to rescue the project, or I'm just asking too much from the Pico?
But I'm using the https://github.com/pimoroni/pimoroni-pico firmware with the PicoGraphics module. There doesn't seem to much documentation about compiling their version (except the c version?)
- Static Image on a 0.96inch display
- Not much Pi, but it has a RP2040 on board - Waveshare Round LCD
-
Pico W and RGB matrix 64x64 project help
I used the Pimoroni Micropython and the clock.py here.
- Can you use a real computer to replace a Raspberry Pi?
-
Remember to say no to walled garden/non-modular stuff
However you'll find that the file you have linked includes breakout_sgp30.hpp which in turn includes drivers/sgp30/sgp30.hpp which you can find here: https://github.com/pimoroni/pimoroni-pico/tree/main/drivers/sgp30
What are some alternatives?
ReflectionsOS - Reflections is a hardware and software platform for building entertaining mobile experiences.
yocto-8 - A (WIP) PICO-8 cartridge runner for the Raspberry Pi Pico
OneBitDisplay - A full featured Arduino display library for 1-bit per pixel OLED, LCD and e-paper displays
badger2040 - Sample code I used to design my badge for events to share information with attendees
picojpeg - picojpeg: Tiny JPEG decoder for 8/16-bit microcontrollers
microphone-library-for-pico - Capture audio from a microphone on your Raspberry Pi Pico or any RP2040 based board. 🎤
BME280_SensorAPI - Bosch Sensortec BME280 sensor driver. To report issues, go to https://community.bosch-sensortec.com/t5/Bosch-Sensortec-Community/ct-p/bst_community
wizio-pico - Raspberry Pi Pico development platform for PlatformIO
pico-composite8 - Raspberry Pi Pico NTSC 8-bit Composite Video output using Resistor R2R DAC, interlaced at 640x480, with slideshow on second core.
pico-debug - virtual debug pod for RP2040 "Raspberry Pi Pico" with no added hardware
pico-micropython-examples - Examples to accompany the "Raspberry Pi Pico Python SDK" book.