Wykres commitów

357 Commity (5aa227ff459f34bc5a35342d6d615e95d6c913d6)

Autor SHA1 Wiadomość Data
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
ZodiusInfuser ac3edafbf4 Contined motor dev 2022-04-05 16:53:36 +01:00
ZodiusInfuser 9a9c3832a2 Various motor work 2022-04-04 20:00:03 +01:00
Philip Howard dbb9a3d181
Merge pull request #332 from pimoroni/feature/unicode-ish
Fonts: Ungracefully handle accented characters.
2022-04-01 16:26:31 +01:00
Phil Howard 3b8740fab6 Bitmap Fonts: Add letter spacing. 2022-04-01 15:38:48 +01:00
Phil Howard 0d43973326 Bitmap Fonts: Refactor and support for pound/degrees. 2022-04-01 15:38:42 +01:00
Phil Howard b2ff46b516 Bitmap Fonts: Simplify and add support for 16bit fonts. 2022-04-01 15:38:34 +01:00
Phil Howard e4bde0985a Bitmap Fonts: Add final five chars. 2022-04-01 15:38:29 +01:00
Phil Howard 6a9bc8688f Bitmap Fonts: Add accent rendering.
Render accents above and below the 64 characters > 127.

Different offsets for upper/lower case characters.
2022-04-01 15:38:20 +01:00
Phil Howard ef940cc5ea Fonts: Ungracefully handle accented characters.
Introduce a lookup table for the 64 accented characters > 127.

Remaps these characters back to a printable, non-accented version.
2022-03-31 16:13:30 +01:00
Mike Bell a4acf4b94e Fix buffer overrun on out of bounds rectangle height/width 2022-03-30 22:23:09 +01:00
ZodiusInfuser e59bdc34c4 Added initial structure of new motor classes 2022-03-30 15:50:12 +01:00
ZodiusInfuser 8a36102c53 Merged in old motor implementation 2022-03-30 15:50:12 +01:00
Phil Howard 348b90225f Badger 2040: Avoid sub 1 scale vanishing pixel font text. 2022-03-30 15:10:52 +01:00
Phil Howard 40d3c9e0be Badger2040: Use bitmap measure functions. 2022-03-30 15:10:52 +01:00
Phil Howard 90ea262496 Bitmap Fonts: Add measure functions. 2022-03-30 15:10:52 +01:00
Phil Howard 3b8dcecd8e Pico Graphics: Move bitmap fonts into generic library.
* Add bitmap font support into Badger 2040
2022-03-30 15:10:52 +01:00
Phil Howard 24819734b7 Separate Hershey Fonts into their own library. 2022-03-30 15:10:52 +01:00
ZodiusInfuser 41d55b1115 Ported the majority of Servo2040 MP examples to C++ 2022-03-30 14:29:02 +01:00
ZodiusInfuser f46deb1c5b Ported the majority of Servo2040 MP examples to C++ 2022-03-30 14:29:02 +01:00
ZodiusInfuser e4bb26b081 Renamed LED_DAT to LED_DATA 2022-03-30 14:29:02 +01:00
ZodiusInfuser aeb9705d15 Moved common PWM and MultiPWM out of servo driver, and renamed to cluster 2022-03-30 14:29:02 +01:00
ZodiusInfuser f5836e56df Raised servo functions to a base class, and added ServoCluster which uses the PIO PWM. 2022-03-30 14:28:17 +01:00
ZodiusInfuser 2e58841b5e Started a hardware PWM servo class, with calibration support 2022-03-30 14:28:17 +01:00
ZodiusInfuser aca98ca747 current WIP code for PIO based PWM 2022-03-30 14:28:17 +01:00
Mike Bell 5b6c220e2a Actually use full screen image process, and fix it 2022-03-29 23:16:18 +01:00
Mike Bell b1dddff291 Badger2040: Fix rectangle handling for thickness, use fast draw for dithered rectangle 2022-03-29 23:16:18 +01:00
Mike Bell d96a584ddd Badger2040: Improve performance of some large frame buffer writes 2022-03-29 23:15:43 +01:00
Philip Howard 66254ab743
Merge pull request #312 from deodre/patch-wireless-include-drivers
Updated path to esp32 drivers in /libraries/pico_wireless/pico_wireless.cmake
2022-03-29 14:12:21 +01:00
Phil Howard b1fd8936cf Badger2040: Enforce minimum update blocking time. 2022-03-25 10:57:30 +00:00
Mike Bell fe943a05f7 Include USER button in button state 2022-03-24 23:24:10 +00:00
Teodor Cervinski 58ae6edb24 Updated path to esp32 drivers in /libraries/pico_wireless/pico_wireless.cmake 2022-03-23 11:34:52 +02:00
Phil Howard 249f54fae4 ST7789: Create generic display driver for #299 2022-03-21 17:02:46 +00:00
Phil Howard 39e9728b0e Badger2040: Fix text rotation aliasing for #290
Fix text rendering at 90, 180 and 270 degree rotations by avoiding float -> int truncation.
2022-03-11 13:48:41 +00:00
Mike Bell 6975610fdc Don't use wait_for_press because that waits for the button to be released 2022-03-09 23:53:56 +00:00
Mike Bell fefa6f8880 Change internal state of Badger2040 to protected 2022-03-09 23:47:12 +00:00
Mike Bell bbb995a062 Reboot on button press when halted but still have power 2022-03-09 23:32:52 +00:00
Mike Bell d26bb1701c Minor fixes to Badger2040 library 2022-03-02 21:08:17 +00:00
Phil Howard f90559ed41 Badger2040: Add support for colour inverted mode 2022-02-25 14:49:28 +00:00
Phil Howard 2c27296cc4 Badger2040: Add image & icon support 2022-02-25 11:08:32 +00:00
Jonathan Williamson e69115ea2e added new meaasure_text() and measure_glyph() methods 2022-02-25 11:08:32 +00:00
Phil Howard a4f7d05fe5 Badger2040: Move startup block on held buttons to launcher.py
Blocking on held buttons is bad for MicroPython, since it makes nothing happen on startup-
We need the button to be held but are waiting for a button release after some arbitrary amount of time.

Additionally running code while holding down a button would block normal MicroPython event execution and crash the host's USB bus quite severely.
2022-02-25 11:08:32 +00:00
Phil Howard 6ff5c39c1b Badger2040: Bugfixes, danger LUTs, examples 2022-02-25 11:08:32 +00:00
Phil Howard 669e96598d Badger2040: Fix input handling
Fixes input handling by clearing the button states to 0 when "wait_for_press".
2022-02-25 11:08:32 +00:00
Jonathan Williamson 07c62a849a added rotation by angle in degrees to text() and glyph() methods 2022-02-25 11:08:32 +00:00
Phil Howard a38dc98199 Badger2040: Comment out meh fonts 2022-02-25 11:08:32 +00:00
Phil Howard af230b5fd5 Badger2040: Refactor to fix MicroPython issues
Move busy wait logic into MicroPython bindings so that MICROPY_EVENT_POLL_HOOK can be called.
2022-02-25 11:08:32 +00:00
Phil Howard 5b084c1b9a Badger2040: Add Fast/Slow LUTs, bugfix and tinkering helpers 2022-02-25 11:08:32 +00:00
Phil Howard 5a0fe00149 Badger2040: Fix typo, comment out explodey wfi 2022-02-25 11:08:32 +00:00
Phil Howard 0a0aecf3f7 Badger2040: Set pull-down on inputs 2022-02-25 11:08:32 +00:00
Phil Howard 46d54072ce Badger2040 MicroPython bindings 2022-02-25 11:08:32 +00:00
Phil Howard 5f52626a4f Add partial update support 2022-02-25 11:08:32 +00:00
Jonathan Williamson ad0ebee16b added image demo for badger2040 2022-02-25 11:08:31 +00:00
Jonathan Williamson f7d61b587a added support for badger2040 2022-02-25 11:08:31 +00:00