-
Notifications
You must be signed in to change notification settings - Fork 88
Libraries support
Due to different timings and features, not all hardware related libraries work out-of-the-box.
Some already got fixes, which need to get their way into release versions. Some don't ;)
If you want to get a library listed, know the working state, or even already submitted PRs and have a working version, please open an issue and we'll update the page.
| Name | Device | Interface | Known working | Alternative | Description/Information |
|---|---|---|---|---|---|
| Adafruit GFX | ST7735 LCD | SPI | ⭕ : 1.9.0 | ✅ https://github.com/jayzakk/Adafruit-GFX-Library/tree/lgt8-support |
PR submitted see note |
| ADAFRUIT SSD1306 | OLED displays | I2C | ✅ 2.2.1 | just works | |
| Ethernet | W5500/W5100 | SPI | ✅ 2.0.0 | just works, see note | |
| FastLED | LED Stripes | Bit-Bang | ⭕ : 3.3.3 | ✅ https://github.com/jayzakk/FastLED/tree/lgt8f-support | PR submitted |
| Light_WS2812 | LED Stripes | Bit-Bang | ✅ > 2.4 | PR by jg1uaa | |
| TFT | ST7735 LCD | SPI | ✅ TFT 1.0.6 GFX 1.5.18 |
TFT.h uses older Adafruit GFX code, with compatible SPIcode |
I measured data throughput with a simple iperf client/server from/to a local linux box.
Receive testing: iperf -c 192.168.178.10 -w 16k -t 20 -i 2 and a simple if (client.available()) client.read(buf, 1024); loop
Sending test: ipferf -s and a simple for (int x=0;x<8192;x++) client.write(buf,1024); loop
| Object | SPI Speed | Read Mbit/sec | Write MBit/sec |
|---|---|---|---|
| Arduino Nano, Atmel 328p, 16MHz | 8M | 4.14 | 2.90 |
| LGT at 16MHz | 8M | 4.19 | 3.26 |
| LGT at 32MHz | 8M | 5.77 | 4.36 |
| LGT at 32MHz | 16M | 8.20 | 6.08 |
For SPI Speed of 16M, a change in w5100.h is needed. This only is possible with a w5500 controller, the older ones do not support higher speeds. Uncomment/Comment SPI_ETHERNET_SETTINGS as outlined in the file.
This COULD be a lot faster, but as the library does not know of and use the SPI buffer, we have many of waits between the transferred bytes especially at 16MHz SPI. I am not sure, if it can be optimized in our own SPI implementation.
The PR consists of changing the SPI speed to max, so you can expect at least twice faster drawing at 32MHz. As in other libs, the SPI send buffer is not in use and may speed up another 5-10%.