Skip to content
jayzakk edited this page Aug 16, 2020 · 21 revisions

Background

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.

Libraries

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

Notes: Ethernet.h

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.

Notes: Adafruit GFX SPI

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%.

Clone this wiki locally