Comments (8)
RGB565 is what we support currently. It is 16 bits.
You'll want something like RGB666 in 24 bits. I think the 3 bytes of 24 bits will be the hardest part because we usually only do power of twos 1, 2, 4 bits and 1, 2 and 4 bytes.
Most of the color conversion code is here:
https://github.com/adafruit/circuitpython/blob/main/shared-module/displayio/ColorConverter.c
You'll likely need to change
too for the 3 byte offsetting.from circuitpython.
My patch does not operate on bytes, but on words (i.e. 16bit wide units). And this is only necessary if the SPI-bus on the MCU side is connected to two serial-in, parallel-out shift registers that translate 8bit-SPI to 16bit-parallel. The shift-registers themselves are connected as 16bit-parallelbus input to the ILI9488.
So a very special setup on the display-side. Many ILI9488 displays just connect the SPI-bus of the MCU directly to the chip. These types of displays do not need the patch. In fact, they won't even work with the patch.
My patch is not a solution, it is a bad hack for a very specific hardware setup. A real solution would be to introduce a new parameter to one of the core classes. But this would trigger changes on many board-files and introduce code that is of no use for most of the users.
from circuitpython.
I mean, either way there seems to be something not working right with any init sequence when using SPI with the ILI9488 devices when using SPI. I've tried with an init sequence derived from the data sheet, from TFT_eSPI (Arduino works), with similar sequences from adjacent displays.
I still tend to think the issue might lay with how bus core is sending the spi data to the display. I've compared sending the same init sequence that works with Arduino, and it's not sending the same data. This is even comparing using ESP32, RP2040, and SAMD51.
from circuitpython.
This looks like normal SPI to me:
I think there is a bug on your side. I'd encourage you to use a logic analyzer to compare what CP does to your working Arduino example.
from circuitpython.
Now that I say it, this is normal SPI. However the pixel format isn't the normal RGB565 because this is three bytes. CircuitPython doesn't support this layout currently.
from circuitpython.
Do you have an idea of what it might look like to support RGB565? I'd be willing to take a look at the addition.
from circuitpython.
The ILI9488 also supports RGB565. That is what I am using. You will find that in the datasheet as well. It is command 0x3a
(in the datasheet section 5.2.34. Interface Pixel Format (3Ah)).
I am not sure if RGB666 will make such a difference on these small displays.
from circuitpython.
RGB565 is only supported in 8b and 16b data bus. SPI only supports RGB111 and RGB666.
from circuitpython.
Related Issues (20)
- Adafruit Dark saber code help problem HOT 3
- collections.deque status not matching documentation HOT 3
- esp32-cam failing to init camera HOT 3
- Display updates extremly slow after PR#9344 HOT 9
- USB audio source/sink HOT 4
- Espressif BLE: iBBQ not working
- Safemode due to heap allocation failure (since PR#9325) HOT 14
- circuitpython_setboard command python version support HOT 10
- usb_cdc.serial.read() doc says it reads one byte, but it will read as much as possible
- Add pin to PinAlarm object after deep sleep on raspberry pi pico
- Add ability to set pull direction in PinAlarms HOT 1
- ESP32-S3-DevKitC-1-N32R8 with ESP32S3 - NEOPIXEL issue HOT 1
- Windows: CIRCUITPY is read-only after Windows goes to sleep and wakes up HOT 6
- CP 9.1.0-beta.3 fails to install on ESP32-S2 Reverse TFT Feather HOT 3
- espnow cannot send to a broadcast address HOT 3
- [panic report] sys_timeout: timeout != NULL, pool MEMP_SYS_T HOT 1
- dump processor stack trace on crashes to help debug HOT 3
- Pi Pico-Filesystem (CIRCUITPY) mounted Read-Only for versions >= v9 on Debian 11.10 HOT 29
- saving +run in the web intereface adds extra wrong characters in REPL console that prevent `import <file>` from running HOT 6
- ESP32-C3 and ESP32-S2 do not flush serial (stdout), and there's no sys.stdout.flush() mechanism we can use HOT 22
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from circuitpython.