Wykres commitów

410 Commity (main)

Autor SHA1 Wiadomość Data
ZodiusInfuser 5a62a79a93 Renamed thick_line 2023-02-16 10:28:07 +00:00
Phil Howard c3ad87765d PicoGraphics: Extremely cursed thickness support for 1bit pens.
Experimental. There must be less cursed way to do this.
2023-02-10 22:15:07 +00:00
Mike Bell 3371b6c751 Select new row earlier to avoid lighting pixel on previous row very slightly 2023-02-10 10:36:56 +00:00
Philip Howard c4decc5003
PicoGraphics: HSV Pen (#665)
Co-authored-by: Gee Bartlett <122281230+ageeandakeyboard@users.noreply.github.com>
2023-02-09 16:13:37 +00:00
Pete Favelle d84d9f4520 Added PEN_RGB332 support 2023-01-31 12:57:35 +00:00
Philip Howard ec0077ae71
Merge pull request #603 from ahnlak/unicorn-volume-fix
Unicorn volume fix
2022-12-16 21:03:04 +00:00
Philip Howard 930784df08
Merge pull request #600 from pimoroni/patch-jpegdec-rgb888
JPEGDEC/PicoGraphics: Add support for RGB888 target.
2022-12-16 20:53:55 +00:00
Gee Bartlett 104c819412
Hub75: Update to use Picographics (#601)
* have a basic pg working needs optimizing

* working well ported some examples from GU

* started on micropython module

* Fixes to get new Hub75 compiling in MP

* stripped down for faster compilling

* Update hub75.cmake

* added hub75 to galatic and eviro as it is needed for picographics

* Update picographics.c

* added hu75 update

* added _ModPicoGraphics_obj_t

* Update hub75.cpp

* update bindings

* some examples needs linting

* added other panel sizes and linted

* Update picographics.cpp

* Update picographics.c

* fixing gc memory allocation

* Update hub75.cpp

* Update interstate75_balls_demo.cpp

* review

* broke

* working with built in panel defs

* still borked

* not much change needs review

* Update hub75.cpp

* reverted alot of things

* adding i75 lib

* lots of updates ready to test compile mp

* Update picographics.h

* little tweaks

* an inability to count fixed!

* fixed some readme's

* lots of tiding

* fixed linting and removed experimental code

* Minor formatting

* Minor formatting and cmake tidy

* Removed unneeded parts of examples

* Final tidy

* tidy examples and adding more

* updated to new library

* documentation tweaks

* fixed inclusion of interstate75 module

* syncing some stuff

* fixed linting

Co-authored-by: ZodiusInfuser <christopher.parrott2@gmail.com>
2022-12-16 20:53:16 +00:00
Phil Howard 13414b5037 JPEGDEC: Clip drawing to iWidthUsed.
Corrects clipping width using new iWidthUsed value, noticable particularly on smaller jpegs and those that aren't a multiple of the MCU sized.

Fixes #573
2022-12-14 18:42:03 +00:00
Phil Howard 241e725464 JPEGDEC: Sync with upstream.
Adds setUserPointer and pDraw->pUser which we now use to store a pointer to the PicoGraphics instance.
2022-12-13 14:21:57 +00:00
Pete Favelle b81c43f479 Removed const from picosynth volume 2022-12-08 17:19:35 +00:00
Pete Favelle 875119da70 Adjust PicoSynth volume when setting it in the Galactic Unicorn API 2022-12-08 17:07:07 +00:00
ZodiusInfuser f1d9ec7c61
Merge branch 'main' into driver/st7567 2022-11-08 11:17:24 +00:00
ZodiusInfuser 23f56f05e4 Minor readme tweaks 2022-11-08 11:10:51 +00:00
Gee Bartlett 4f4b0b277c updated readme's 2022-11-07 18:07:48 +00:00
ZodiusInfuser 678b8d7cf9 Review of GfxPack code 2022-11-07 12:50:50 +00:00
ZodiusInfuser d11c73d45e
Updated GU readme 2022-11-04 10:57:37 +00:00
Gee Bartlett 7be5376abf some small fixes for easier merging later 2022-11-02 20:58:20 +00:00
Gee Bartlett 952be145ec Merge branch 'main' into driver/st7567 2022-11-02 20:50:18 +00:00
Gee Bartlett 79eb998183 adjustments prior to micropython 2022-11-02 20:43:07 +00:00
lowfatcode b0e194b2b1 Added Galactic Unicorn function reference and example 2022-11-02 07:35:37 +00:00
Gee Bartlett 9af1081e68 gfx c libs working 2022-10-28 17:54:37 +01:00
Philip Howard e928129d59
Merge pull request #537 from pimoroni/feature/galactic_unicorn
Galactic Unicorn
2022-10-19 14:08:20 +01:00
Philip Howard 3405130820
Merge pull request #536 from pimoroni/hel-plasma
Plasma Stick examples
2022-10-19 10:51:27 +01:00
ZodiusInfuser 41225090ef Added some C specific examples for Plasma Stick 2022-10-17 16:15:02 +01:00
ZodiusInfuser 52a107e6d6 Switched GU over to chained DMA to remove interrupt use 2022-10-13 13:28:59 +01:00
ZodiusInfuser df79caf34e Exposed remaining AudioChannel parameters 2022-10-13 13:28:59 +01:00
ZodiusInfuser 53dfb9866d Started splitting out synth into separate channel objects 2022-10-13 13:26:57 +01:00
ZodiusInfuser 882f76dcbc More work on GU synth 2022-10-13 13:26:57 +01:00
ZodiusInfuser deec835692 First addition of synth to GU 2022-10-13 13:26:57 +01:00
ZodiusInfuser 12ea527f44 Audio performance improvements and bugfixes 2022-10-13 13:26:57 +01:00
ZodiusInfuser f809db6434 Added play_tone support to GU C++ and MP 2022-10-13 13:26:57 +01:00
ZodiusInfuser e08ddd9837 Exposed audio to MP, and made it teardown cleanly 2022-10-13 13:26:57 +01:00
ZodiusInfuser 4551c991fb Re-added audio PIO and made it's restart cleaner 2022-10-13 13:26:57 +01:00
ZodiusInfuser b2e4e16fab Cleanup of GU and fix for flashes on MP soft reset 2022-10-13 13:26:57 +01:00
ZodiusInfuser 739ca71f69 Added partial tear down 2022-10-13 13:26:57 +01:00
ZodiusInfuser bb91d9e75b WIP improvements to GU hardware reuse (temp disabled audio) 2022-10-13 13:26:57 +01:00
ZodiusInfuser b35ed5d5ba Moved MP examples over to PicoGraphics 2022-10-13 13:26:57 +01:00
ZodiusInfuser 82b5110691 Fixed colour order and added working MP examples 2022-10-13 13:26:57 +01:00
ZodiusInfuser a25699c73d Initial setup og GU Micropython 2022-10-13 13:25:26 +01:00
jon 5ea389c12a Added support for new RGB888 pen type 2022-10-13 13:25:26 +01:00
jon 678be33b53 Update to use new RGB888 pen type 2022-10-13 13:25:26 +01:00
jon f2c3d15b8e Galactic Unicorn: Playing basic audio samples now works, added rainbow example for photoshoot 2022-10-13 13:25:18 +01:00
jon eaaed2e862 Galactic Unicorn: Examples + features. 2022-10-13 13:24:08 +01:00
jon 5fdd08438f stuff 2022-10-13 13:22:21 +01:00
jon a3d3707284 more stuff 2022-10-13 13:22:21 +01:00
jon 09846ab221 Galactic Unicorn: Initial C++ experimentaion. 2022-10-13 13:21:22 +01:00
jon a322c400f0 Added support for new RGB888 pen type 2022-10-13 13:19:50 +01:00
jon c91c5d6bf4 Update to use new RGB888 pen type 2022-10-13 13:19:50 +01:00
jon a486150470 Playing basic audio samples now works, added rainbow example for photoshoot 2022-10-13 13:19:50 +01:00
jon 63183d28be Lots of features added 2022-10-13 13:19:50 +01:00
jon e50827c412 stuff 2022-10-13 13:19:50 +01:00
jon 210b334fff more stuff 2022-10-13 13:19:50 +01:00
jon 54ad59c77a Rebasing Galactic Unicorn branch to main 2022-10-13 13:19:50 +01:00
Phil Howard 00ca53a30b Inky Frame: Update C++ library to support 4.0" 2022-10-05 09:57:16 +01:00
Gee Bartlett c48f81bc90 started on converting pico display demo 2022-09-29 12:01:35 +01:00
Phil Howard fc3060b640 PicoGraphics: Simplify RGB565 frame convert.
Rewrite RGB565 frame convert to iterate over pixels by index, and transfer the buffer when it fills.

Avoid using a bitmask so BUF_LEN can be arbitrary.
2022-09-21 11:32:19 +01:00
Phil Howard bb9b5b69d3 PicoGraphics: Fix byte alignment bug in Pen P4.
Fix byte alignment to use the pixel index, rather than just the x-coordinate.

Prevent new rows from being erroneously byte-aligned in displays without an even width (eg: Pico Display portrait).
2022-09-21 11:26:58 +01:00
Mike Bell 7f330d1a04 Pico Graphics: Use fixed size buffer for frame conversion 2022-08-23 23:07:13 +01:00
Mike Bell f341c15fa7 Pico Graphics: Double buffer scanline conversion 2022-08-23 21:48:26 +01:00
jon 4a4c723c89 Fixed set_pen() 2022-07-26 05:10:07 +01:00
jon 2f5e3235e6 Add missing pen type enumeration value 2022-07-26 05:08:12 +01:00
jon 364994fc64 Added missing entry to cmake file 2022-07-26 05:06:06 +01:00
jon 6ab9c8b1c7 Added RGB88 pen type 2022-07-26 04:55:32 +01:00
Philip Howard 5d47ae080c
Merge pull request #453 from pimoroni/patch-automation2040w-doc
Added documentation for Automation 2040W
2022-07-22 14:59:23 +01:00
Phil Howard de3ceac4a5 Pico Scroll/Unicorn: Fix static memory alloc for Pico W.
Pico Scroll and Pico Unicorn were allocating static buffers for gamma and font data respectively.

Make Pico Scroll's `__bitmap` static.

Move Pico Unicorn's three GAMMA tables to one 14-bit table in "pimoroni_common.hpp". Rename "GAMMA" to "GAMMA_8BIT".
2022-07-22 14:15:53 +01:00
ZodiusInfuser 2516a06237 Doc improvements and added C++ doc 2022-07-20 16:12:37 +01:00
ZodiusInfuser ea4d514d57 Doc improvements and added C++ doc 2022-07-20 16:10:37 +01:00
Philip Howard 33b2c3908d
Merge pull request #441 from pimoroni/patch-picographics-docs
PicoGraphics: Update C++ docs.
2022-07-15 13:40:23 +01:00
Philip Howard 3ec9f09174
Merge pull request #426 from pimoroni/library/inky_frame
Inky Frame: Library + C++ Examples.
2022-07-15 13:39:57 +01:00
Phil Howard f8e751ebff PicoGraphics: Fix 3Bit mode dithering for Inky Frame. 2022-07-13 14:30:14 +01:00
Phil Howard 9dfc8a065c PicoGraphics: Update C++ docs. 2022-07-11 15:56:15 +01:00
Pete Favelle 1b36899789 Missed one! 2022-07-09 16:57:35 +01:00
Pete Favelle cba2543d82 Corrected some confusing typos 2022-07-09 16:51:49 +01:00
Phil Howard f85343012a PicoGraphics: Power off added for UC8151. 2022-07-06 14:25:42 +01:00
Phil Howard 6c1556a429 PicoGraphics: 1bit/1bitY dither all drawing operations.
Note: Pen now ranges from 0 (black) to 15 (white). Values between will be dithered ala Badger 2040.
2022-07-06 11:32:56 +01:00
Phil Howard 12866a0b7b PicoGraphics/JPEGDEC: Use PicoGraphics dither. 2022-07-06 10:56:56 +01:00
Phil Howard ac2fa97e96 Inky Frame: Library + C++ Examples. 2022-07-05 09:34:23 +01:00
Philip Howard 9c079bb1e5
Merge pull request #419 from pimoroni/patch-uc8159-3bpp
PicoGraphics/UC8159: 3bit bitplane pen mode.
2022-07-04 11:36:20 +01:00
ZodiusInfuser d9d8f4417a
Libraries and examples for Automation 2040 W (#418)
* Libraries and examples for Automation 2040 W

* Fix for initialisation error
2022-07-01 07:05:37 +01:00
ZodiusInfuser 6f8152df0f Libraries and examples for Inventor 2040 W 2022-06-30 21:30:43 +01:00
Phil Howard cb5f8308a0 PicoGraphics/UC8159: 3bit bitplane pen mode.
Add a 3bit pen mode to save 1/4th the RAM needed for the 600x448 Inky Frame.
2022-06-30 15:25:02 +01:00
Phil Howard eee28a6f94 Bitmap Fonts: Break to newline on \n. 2022-06-29 07:50:18 +01:00
Phil Howard 16aae0b1f2 PicoGraphics: Partial update/speed support. Tidyup. 2022-06-27 17:32:30 +01:00
Phil Howard bb2db8423e JPEGDEC: Add CMake files. 2022-06-24 11:15:44 +01:00
Phil Howard 3007ee8039 PicoGraphics: Only consider used palette entries for dither. 2022-06-24 11:03:29 +01:00
Phil Howard 04d8d66390 UC8151: New DisplayDriver based UC8151 driver.
HACK: Adds PicoGraphics_Pen1BitY to work around the UC8151 weird addressing.

TODO: Replace hack with an in-place transform to UC8151 pixel order from Pen1Bit.
2022-06-23 14:30:36 +01:00
Phil Howard 646bd1a9b0 UC8151: Refactor to uc8151_legacy. 2022-06-23 13:57:25 +01:00
Pete Favelle 80012790ce read_nh3 and read_oxidising now call the correct get_raw_* functions 2022-06-21 15:34:52 +01:00
jon b0a386f240 PicoGraphics: RGB332 use 332->565 flash LUT. 2022-06-17 11:04:09 +01:00
jon 077159adeb PicoGraphics: Add set_pixel_span and call where appropriate. 2022-06-17 11:04:02 +01:00
Phil Howard 76715e45f8 ST7789: Convert Parallel IO to PIO + DMA.
Make display updates around 4x faster. Requires a PIO + SM to run Tufty 2040.
2022-06-17 11:03:55 +01:00
jon 360bf4310c SH1107: Add driver and example.
Add 1bit pen mode to PicoGraphics.

TODO:

* Rotation support
* Sizes other than 128x128 support
2022-06-15 16:57:40 +01:00
Phil Howard 457589aaa9 PicoGraphics: Mark dither cache stale on pen update. 2022-06-14 15:25:50 +01:00
Phil Howard 27d571b473 PicoGraphics: Tidy up dithering. 2022-06-14 15:06:44 +01:00
Phil Howard eb303ae811 PicoGraphics: Integer sprite scaling. 2022-06-14 13:28:27 +01:00
Phil Howard f3d3dde04f PicoGraphics: Fix PEN_P8 scanline callback. 2022-06-14 12:33:37 +01:00
Phil Howard 5d7113e8c9 PicoGraphics: Basic 128x128 RGB332 spritesheet support. 2022-06-13 20:12:03 +01:00
Phil Howard e480620e9f Tufty2040: Drop rogue pin. 2022-06-13 20:12:03 +01:00
Phil Howard ce9aa019ec PicoGraphics: Fix P8 buffer size. 2022-06-13 20:12:03 +01:00
Phil Howard 1b68e498d4 ST7789/PicoGraphics: Update docs. 2022-06-13 20:12:03 +01:00
Phil Howard 582c67570a PicoGraphics: Refactor pen types into their own cpp files. 2022-06-13 20:12:03 +01:00
Phil Howard 2419f0ef45 PicoGraphics/JPEGDEC: RGB332 per channel fast dither. 2022-06-13 20:12:03 +01:00
Phil Howard 602d1b41dd PicoGraphics: Attempt at dither and scanline interrupts.
Currently both unused and both very slow.

Dither may only be feasible for <=8 colour displays.

JPEGDEC will dither to 4-bit greyscale quite happily.
2022-06-13 20:12:03 +01:00
Phil Howard 656d69399a JPEGDEC: Fix dither buffer size 2022-06-13 20:12:03 +01:00
Phil Howard d2b065d2da JPEGDEC: Use 4-bit dither. 2022-06-13 20:12:03 +01:00
Phil Howard 62818a5f49 PicoGraphics: Palettes as RGB, Scanline convert with callback. 2022-06-13 20:12:03 +01:00
Phil Howard 7f0fe44881 JPEGDEC: Move to libraries, use C++, draw into PicoGraphics. 2022-06-13 20:12:03 +01:00
Phil Howard 1a9ebb7b6e PicoGraphics: More pen conversion, better names. 2022-06-13 20:12:03 +01:00
Phil Howard a558d35cab PicoGraphics: Remove last vestiges of template approach. 2022-06-13 20:12:03 +01:00
Phil Howard 49b62515c2 PicoGraphicS: Hershey support, bugfixes, tidyup. 2022-06-13 20:12:03 +01:00
Phil Howard fc1561e54b PicoGraphics: Fix set_framebuffer. 2022-06-13 20:12:03 +01:00
Phil Howard b13470b4fb PicoGraphics: Add set_palette and set_font. 2022-06-13 20:12:03 +01:00
Phil Howard d1b7639e8a PicoGraphics: Update README. 2022-06-13 20:12:03 +01:00
Phil Howard 4848e7ba59 PicoGraphics/ST7789/ST3375: Fixup C++ examples and libraries. 2022-06-13 20:12:03 +01:00
Phil Howard 67f1331b23 ST7789 -> PicoGraphics
* Absorb ST7735 support into the generic ST7789 driver and rename to PicoGraphics
* Delete obsolete MicroPython modules
* Refactor PicoGraphics to inherited class for each pen type
* Refactor ST7789 and ST7735 to derive from DisplayDriver
* Allow user to set pen_type in MicroPython constructor for RGB565, RGB332, P8 and P4 modes
2022-06-13 20:11:49 +01:00
Phil Howard 1a251822f5 ST7735: Update 160x80 LCD to new PicoGraphics<PenRGB565> 2022-06-13 20:11:09 +01:00
Phil Howard 7e4725d1cd ST7789/PicoGraphics: Templated framebuffer formats. 2022-06-13 20:11:09 +01:00
Phil Howard b66da12c1b ST7789/PicoDisplay: Update C++ examples. Rename GenericST7789 -> PicoDisplayST7789. 2022-06-13 20:11:09 +01:00
Phil Howard 65788ae6bf ST7789/PicoGraphics: Faster RGB332 mode lookups.
Replace palette search in RGB332 mode with a simple return of the RGB565 colour packed to RGB332,
since this is identical to its index in the palette.
2022-06-13 20:11:09 +01:00
Phil Howard 13f0813d8a ST7789/PicoDisplay: Collapse make_new into one using pimoroni_bus. 2022-06-13 20:11:09 +01:00
Phil Howard 9b8d215cd3 ST7789/PicoGraphics: Update C++ libs and examples. 2022-06-13 20:11:09 +01:00
Phil Howard c13f53092d ST7789/PicoGraphics: Fix palette bugs, add reserve. 2022-06-13 20:11:09 +01:00
Phil Howard a483b2aad4 ST7789/PicoGraphics: Refactor for init & rotation. 2022-06-13 20:11:09 +01:00
Phil Howard ef6179e77d ST7789/PicoGraphics: Refactor & make modes more explicit. 2022-06-13 20:11:09 +01:00
Phil Howard 73f73a0ac5 Make colour truncation from 565 to 332 optional 2022-06-13 20:11:09 +01:00
Phil Howard 3f9f28c60b Add measure_text, fixed default palette init 2022-06-13 20:11:09 +01:00
Phil Howard 51ad7edb09 Prefer RGB332, add palette management functions 2022-06-13 20:11:09 +01:00
Phil Howard 7abe4aae7f ST7789: Experimental 8bit framebuffer. 2022-06-13 20:11:09 +01:00
Jonathan Williamson 7f5546f29a Tufty2040: Initial screen bringup. 2022-06-13 20:11:09 +01:00
Phil Howard 83b6331094 Drop obsolete MicroPython binding compat constructors. 2022-05-30 11:52:37 +01:00
Phil Howard f7c42e90a8 ADC FFT library & MicroPython Bindings 2022-05-23 16:12:22 +01:00
Charlie Birks 8be98da0e5
Use float pow for pico unicorn gamma
Looks like that was intended based on the float cast and all the f suffixes...
2022-05-23 14:09:50 +01:00
Charlie Birks a4f91a93ee
Replace int pow(2, x) in pico unicorn
Using double pow here seems a bit inefficient (even if it's init code)
2022-05-23 14:07:31 +01:00
Charlie Birks b9a8c0a536
Make global variables static in pico unicorn 2022-05-23 14:04:00 +01:00
Philip Howard db60553322
Merge pull request #327 from pimoroni/feature/merged-st7789
ST7789: Create generic display driver
2022-05-18 13:37:56 +01:00
Phil Howard 8a68015eac ST7789: Update README.md 2022-05-18 11:55:02 +01:00
Phil Howard 8e1e9df002 ST7789: Refactor and Bugfixes
* Make ST7789 accept only full config with SPI pins
* Make Generic ST7789 wrapper library handle "slot"
* Update Round LCD and 240x240 Square LCD
* Remove Python Round LCD and 240x240 LCD modules (we need the space!)
* Remove C++ Round LCD and 240x240 LCD libraries (they're a little redundant!)
* Fix garbage collected framebuffer bug in Python ST7789
* Deprecate "flip" in favour of "configure_display"
* Tidy up ST7789, remove dead/unused/commented code
2022-05-12 18:58:33 +01:00
ZodiusInfuser 305462d33c
Merge branch 'main' into motor-and-encoder 2022-05-12 17:02:50 +01:00
Phil Howard 65fb478b6e ST7789: Port C++ examples to generic driver. 2022-05-12 16:02:56 +01:00
Phil Howard 1315af4e41 PicoDisplay: Use pins for buttons.
Swap the button constants to use pins, just in case someone tries to use these with Button() or PicoZero.
2022-05-12 12:44:00 +01:00
Phil Howard 813b7a401a ST7789: Support rotation for PD and PD2. 2022-05-12 12:04:55 +01:00
ZodiusInfuser 15e5eaa890 Finished C++ examples and tweaked MP examples 2022-04-28 21:23:18 +01:00
ZodiusInfuser 415a1e559a Setup and partial implementations of C++ examples 2022-04-26 23:15:13 +01:00
ZodiusInfuser 652612fc31 Removed old C++ motor implementation 2022-04-22 13:59:40 +01:00
ZodiusInfuser 8ef0d33f0c Finalised more examples 2022-04-20 18:55:39 +01:00
ZodiusInfuser 180df9e085 Merge branch 'motor-pio' into motor-and-encoder 2022-04-19 16:28:12 +01:00
Luyáš Říha 746b47a601 fix micropython breakout_roundlcd rendering of graphics primitives 2022-04-18 20:40:05 +02:00
ZodiusInfuser c113f30da6 Changed the motor implementation on PicoExplorer to used breaking mode 2022-04-13 10:47:42 +01:00
ZodiusInfuser 96070f61af Started on motor readme, and updated API elements accordingly 2022-04-12 17:00:39 +01:00