Wykres commitów

133 Commity (master)

Autor SHA1 Wiadomość Data
Carl Pottle f6c3cf29bb Optimize ili9488 driver
I implemented several code optimizations from
a presentation by Damien George I found on youtube.
The optimizations are on a slide here:
https://youtu.be/hHec4qL00x0?t=813

1) Change __init__ to use bit 5 in madctl register
   to swap row/column for landscape mode.

2) Eliminate functions _lscopy and _lscopy_gs.
   They are not needed because the ili9488 chip
   is handling orientation.
   Results in simplification in show() and
   do_refresh().

3) Minor optimizations to _lcopy and _lcopy_gs.
   Reverse order processing bytes.
   Specific changes:
   - change while condition from 'x < length' to
     simply 'length'. This test is faster in viper.
   - use length as index into source instead of x.
     Variable x is removed.
     This requires the source and dest to be
     processed from end to beginning.
   - other optimizations from the Pycon talk
     given by Damien George.

4) Optimizations to show() and do_refresh().
   - Caching in local variables
   - Changes to support writing more pixels
     for each call to spi.write().
     Saving from this are larger on ESP32
     than on Pico and Pico 2.

The Damien George optimizations save 10 to 20 milliseconds
per screen refresh on my ESP32. I expect similar results
for Pico and Pico2.

The saving from fewer calls to spi.write() is significant
on my ESP32. 60 to 80 milliseconds.
The saving on Pico and Pico2 are smaller, 10 to 20 milliseconds.
2025-04-17 11:03:41 -07:00
Peter Hinch cd5210a132 st7789 drivers: provide default rst arg. 2025-04-15 17:04:56 +01:00
Peter Hinch 332fd6d709 ili9488.py: Add acknowledgement of Carl Pottle. 2025-04-07 10:37:35 +01:00
Peter Hinch e136541191 Update ili94xx package.json, also DRIVERS.md 2025-04-06 12:22:20 +01:00
Carl Pottle 82b263a422 Address code review feedback
Three relatively small changes:
1) Undo changes to gui/core/writer.py
2) Modify setup_examples/ili9488_pico.py to specify pins
   by number rather than string.
3) As recommended, use a 2 byte per entry color lookup table
   rather than 3 bytes (needed to undo changes in writer.py).

I ran the same tests for these changes as last time.
2025-04-04 11:28:03 -07:00
Carl Pottle 10ca0458db New driver for ILI9488 over SPI bus
ILI9488 does not support 16 bits per pixel over SPI.
It does support it over 8 or 16 bit parallel bus.
As a result, the existing ili9486 driver will work
with some ili9488 boards.

Some vendors sell boards with ILI9488 and serial to parallel
converters.
I beleive those boards will work with either the ili9486 or
this new driver.

I tested this code with the following demos:
- gui/demos/scale.py
- gui/demos/aclock.py
- gui/demos/aclock_large.py
- gui/demos/scale.py

I tested landscape and portrait in color and greyscale.
2025-04-01 16:27:20 -07:00
Peter Hinch b608f4db66 ILI9341 drivers: add mod constructor arg. 2025-01-26 12:31:29 +00:00
Peter Hinch 7868db5317 ILI9341 8-bit driver: add rot and bgr constructor args. 2025-01-26 11:24:52 +00:00
Peter Hinch ef1e80b1de ILI9341 driver: add rot and bgr constructor args. 2025-01-26 11:03:19 +00:00
clach04 4bc950d7da ili9341 doc pointers for parameters 2025-01-05 10:44:16 -08:00
Peter Hinch 07095f475f st7789_8bit.py: Fix bug. Both drivers: add color config option. 2025-01-03 18:17:45 +00:00
Peter Hinch 8e46a7f5b5 pico_epaper_42_v2 drivers: Add code comments re long term use. 2024-10-25 17:24:19 +01:00
Peter Hinch 4e27b3469a Pico ePaper drivers: add code comment. 2024-10-12 10:24:44 +01:00
Peter Hinch 66e1ab6459 Display drivers: add short_lock facility. 2024-10-08 16:10:57 +01:00
Peter Hinch c464dc844e Add ILI9341 8-bit driver. 2024-09-18 16:54:14 +01:00
Peter Hinch 0fad050301 Add ST7789 8-bit driver. 2024-09-17 12:04:31 +01:00
Peter Hinch 514831a987 Add support for Adafruit 320x170 TFT. 2024-08-18 08:42:10 +01:00
Peter Hinch 14b3fca4f8
Merge pull request #70 from surdouski/waveshare-4_2_rev_2_2-gs
Waveshare 4.2" V2 Display - Greyscale Driver
2024-08-07 11:05:29 +01:00
surdouski ce9bfc6009 use bytes and memoryview 2024-08-06 11:51:44 -04:00
Peter Hinch 8a5c698655 DRIVERS.md: Doc 4.2" ePaper display do_refresh. 2024-07-24 17:48:29 +01:00
surdouski 28486ef3f6 Greyscale 4.2" driver. 2024-07-23 11:37:49 -04:00
Peter Hinch 99829bb266 pico_epaper_42_v2.py: Change default pin to match hardware. 2024-07-22 14:10:41 +01:00
Peter Hinch a6b19a8792 pico_epaper_42_v2.py: Change default pin to match hardware. 2024-07-22 14:05:16 +01:00
Peter Hinch b9506de37a Minor changes to driver pico_epaper_42_v2.py. 2024-07-19 13:56:20 +01:00
Peter Hinch 8ad08bdf41
Merge pull request #64 from surdouski/waveshare-4_2_rev_2_2
Driver implementation for waveshare 4.2" rev2.2
2024-07-13 11:56:48 +01:00
surdouski 40ffd447e4 add waveshare driver for 4.2inch display rev2.2 2024-07-12 18:30:51 -04:00
Peter Hinch df7656802a pico_epaper_42 drivers async refresh: improve means of limiting blocking time. 2024-07-04 18:50:23 +01:00
Peter Hinch 7ecabf0fc1 Selected drivers: make mode a bound variable 2024-07-02 19:00:41 +01:00
Peter Hinch 77f5b211e5 Update st7789 driver for greyscale. Add img_cvt.py. 2024-06-07 10:52:35 +01:00
Peter Hinch 1bd163d72d Update ili9x and gc9a01 drivers for image display. 2024-06-07 09:54:42 +01:00
Peter Hinch b972e8a3aa gc9a01.py: Add greyscale method. 2024-06-03 10:52:19 +01:00
Peter Hinch f74dfc450c ST7789 driver: remove warning message. 2024-06-03 10:01:53 +01:00
Peter Hinch 6fc08b1a40 Fix bug in gca9a01_8_bit.py. 2024-05-26 17:16:56 +01:00
Peter Hinch 108f3d9807 Add 8-bit gc9a01 driver. 2024-05-23 18:52:32 +01:00
Peter Hinch 611863e90a Improve display driver Viper code. 2024-05-13 18:04:52 +01:00
Peter Hinch 7f54bb5049 DRIVERS.md: Document gc9a01 driver. 2024-05-13 12:24:12 +01:00
Peter Hinch b077a443f7 Add gc9a01 driver. 2024-05-13 10:17:35 +01:00
Peter Hinch ff77aea008 Replace uasyncio with asyncio (code and docs). 2024-05-12 11:19:11 +01:00
Peter Hinch a487992b37 ILI9xxx: Remove misleading code comment re touch. 2024-05-05 17:17:18 +01:00
Peter Hinch 172c976df0 ST7789: Add support for Waveshare 1.3inch LCD 2024-02-13 09:51:36 +00:00
Peter Hinch 5eafeed7f7 Document user contributed drivers. 2023-09-02 11:21:21 +01:00
Peter Hinch 6894c4fbb6
Merge pull request #56 from EnricoRoss98/WeActStudio-EDP
Added driver for the WeAct Studio 2.9in EPD (SSD1680)
2023-09-02 10:08:15 +01:00
Peter Hinch 21a0d0dc40
Merge pull request #57 from EnricoRoss98/ST7567s
Added driver and setup-example for ST7567s displays
2023-09-02 10:04:03 +01:00
Enrico Rossini 6b37dbf1dc Optimized constants 2023-08-30 10:10:58 +02:00
Enrico Rossini 1670b5ee2c Moved driver from drivers/ssd1680 to drivers/epaper and removed useless demo 2023-08-30 10:06:53 +02:00
peterhinch b6f8f57543 Fix package.json files for CPython. 2023-08-29 10:03:55 +01:00
Enrico Rossini 5e50eb0880 Added driver and setup-example for the ST7567s LCD 128x64 display 2023-08-28 22:26:56 +02:00
peterhinch 12372dad4e Drivers: Add package.json files. 2023-08-28 18:36:53 +01:00
Enrico Rossini c9fbe2a995 Added driver, demo and setup-example for the WeAct Studio 2.9in EPD display with the SSD1680 driver 2023-08-27 15:09:24 +02:00
peterhinch aef423a536 Drivers: st7789_4bit add support for DFRobot 172x320 2023-08-03 11:24:23 +01:00