-
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 | ✅ jazyakk |
PR submitted see note |
ADAFRUIT SSD1306 | OLED displays | I2C | ✅ 2.2.1 | just works | |
Thinary AHT10 | AHT10 Temperature and humidity sensor module | I²C | ✅ : 1.0.0 | specifically made for this module | |
Ethernet | W5500/W5100 | SPI | ✅ 2.0.0 | just works, see note | |
FastLED | LED Stripes | Bit-Bang | ⭕ : 3.3.3 | ✅ jayzakk | PR submitted |
Light_WS2812 | LED Stripes | Bit-Bang | ✅ > 2.4 | PR by jg1uaa | |
Nokia 5110 LCD library | Nokia 5110 LCD | SPI | ✅ : 2.3.0 | up to 86 fps @ 32MHz in hardware SPI mode, and up to 32 fps @ 32MHz in software SPI mode | |
RF24 | nRF24L01 2.4G comm |
SPI | ✅ : 1.3.9 | just works | |
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 | Receive Mbit/sec | Send MBit/sec |
---|---|---|---|
Arduino Nano, Atmel 328p, 16MHz | 8M | 4.14 | 2.90 |
LGT at 16MHz | 8M | 4.19 (oldSPI) 7.05 (tbufSPI *) |
3.26 (oldSPI) 6.05 (tbufSPI *) |
LGT at 32MHz | 8M | 5.77 (oldSPI) 7.38 (tbufSPI *) |
4.36 (oldSPI) 6.30 (tbufSPI *) |
LGT at 32MHz | 16M | 8.20 (oldSPI) 14.1 (tbufSPI *) |
6.08 (oldSPI) 10.7 (tbufSPI *) |
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.
NB: * = tbufSPI is a PR I submitted to LGT8F core, and one to Ethernet.h, adding a new function using the SPI buffer.
The PR consists of changing the SPI speed to max, so you can expect at about twice faster drawing at 32MHz.