The Arduino UNO R3 is a development board based on the 8-bit ATMega328P microcontroller. It is one of the most iconic boards ever designed, and it is known and loved by millions of makers worldwide.
In June 2023, the Arduino Uno R4 series was released, the first UNO to feature a 32-bit microcontroller, the RA4M1 from Renesas. While 32-bit microcontrollers are no new thing, it is the first official UNO board to feature one. The R4 series has two versions:
- Arduino UNO R4 Minima (store / docs) - base version.
- Arduino UNO R4 WiFi (store / docs) - version with a Wi-Fi/Bluetooth module (ESP32) and a 12x8 LED matrix.
This major change will introduce many challenges, mainly for the amazing libraries developed over the years, particularly around the ATMega328P.
This repository is a gathering point for you all who want to participate in the testing & porting of libraries to the new 32-bit platform. Here you will see the status, and we welcome you to submit your testing data directly to this repository!
See the tested and confirmed library list further down this page.
Please consider donating to your favorite library's developers. They are a fundamental part of the Arduino platform.
If your library is not yet supported on the UNO R4, donations may also ensure that your library can be ported to this new architecture.
There are many ways to contribute to this project, including:
- As a library developer: can port your library to this new architecture, and document possible caveats.
- As a tester: test out libraries and report the status in this repository.
As a library developer, you can support this project by making your existing library compatible with the 32-bit architecture, which the UNO R4 boards are based on.
This means making any changes needed for your library to compile and run on a UNO R4 board, i.e. porting your library.
For many libraries, there might be no changes at all, but for some that are focused on ATMega328P (e.g. accessing specific registers, memory management and so on), the challenge may be much bigger.
Essentially, the porting of a library should follow three crucial steps:
- Migration to the 32-bit Renesas architecture.
- Updating of library metadata (stating the compatibility).
- Report the status of the migration in the issues section of this repository.
If you are not a library developer, you can support this project by testing out various libraries not yet stated as compatible.
The list that is found further below in this repository will show the progress of all tested libraries, regardless of a PASS / FAIL outcome.
We encourage you to test out the examples of a library with the UNO R4 and report the results both in this repository and in the library repository.
Some things to keep in mind are:
- If the library is on the list, there is no need to test it again.
- Follow the same structure as the list.
Tested and ported libraries should be reported in the issues section of this repository, following the guidelines below:
- The title of your issue should only contain Library Name + (Status). An ideal title: Servo (PASS).
- If reporting a library that does not work, please report this in as much detail as possible, including:
- Include link to tested example(s)
- If it fails to compile, please attach the verbose log
- If it compiles and uploads, but does not work as intended, please describe the issues you are having.
Issues reported in this repository will be continuously reviewed and added to the list of tested libraries, regardless of PASS/FAIL status.
This list contains the status of tested Arduino libraries with the UNO R4 board. To change the list, submit a pull request to this repository.
No. | Library | Compilation | Hardware Test | Notes |
---|---|---|---|---|
1. | Servo | PASS ✅ | PASS ✅ | |
2. | Stepper | PASS ✅ | PASS ✅ | |
3. | AccelStepper | PASS ✅ | FAIL ❌ |
No. | Library | Compilation | Hardware Test | Notes |
---|---|---|---|---|
1. | Adafruit Neopixel | PASS ✅ | FAIL ❌ | |
2. | Adafruit DHTSensor | PASS ✅ | PASS ✅ | |
3. | IRremote | FAIL ❌ | FAIL ❌ | |
4. | Grove_BMP280 | PASS ✅ | PASS ✅ | |
5. | Seeed_Arduino_LIS3DHTR | PASS ✅ | PASS ✅ | |
6. | DHT_sensor_library | PASS ✅ | PASS ✅ | |
7. | Grove_Temperature_And_Humidity_Sensor | PASS ✅ | PASS ✅ | |
8. | Keypad | FAIL ❌ | FAIL ❌ | |
9. | Adafruit_BMP280_Library | PASS ✅ | PASS ✅ | |
10. | Adafruit_Keypad | PASS ✅ | PASS ✅ | |
11. | Bounce2 | PASS ✅ | PASS ✅ | |
12. | Adafruit_BusIO | PASS ✅ | PASS ✅ | |
13. | Adafruit_SGP30_Sensor | PASS ✅ | PASS ✅ | |
14. | Adafruit_SHT31_Library | PASS ✅ | PASS ✅ | |
15. | Adafruit_LIS3DH | PASS ✅ | PASS ✅ | |
16. | Adafruit_LSM6DSOX | PASS ✅ | PASS ✅ | |
17. | Adafruit_LSM6DSO32 | PASS ✅ | PASS ✅ | |
18. | Adafruit_ADXL343 | PASS ✅ | PASS ✅ | |
19. | Adafruit-MLX90614-Library | PASS ✅ | PASS ✅ | |
20. | SparkFunMLX90614 | FAIL ❌ | FAIL ❌ | |
21. | Adafruit_TCS34725 | PASS ✅ | PASS ✅ | |
22. | DFRobot_TCS34725 | FAIL ❌ | FAIL ❌ | |
23. | DHTstable | PASS ✅ | PASS ✅ | |
24. | DHTNew | PASS ✅ | FAIL ❌ | Returns incorrect temperature and humidity |
25. | Ultrasonic | PASS ✅ | PASS ✅ | |
26. | Adafruit_BME280_Library | PASS ✅ | PASS ✅ | |
27. | arduino-bme280 | PASS ✅ | PASS ✅ | |
28. | bme280 | PASS ✅ | PASS ✅ | |
29. | ER_OLEDM1_CH1115 | PASS ✅ | PASS ✅ | |
30. | ERM19264_UC1609 | PASS ✅ | PASS ✅ | |
31. | ADXL345 | FAIL ❌ | FAIL ❌ | |
32. | SHT21-Arduino-Library | PASS ✅ | PASS ✅ | |
33. | ArduinoJoystickLibrary | FAIL ❌ | FAIL ❌ | |
34. | SHT21-Arduino-Library | PASS ✅ | PASS ✅ | |
35. | DFRobot_SGP40 | FAIL ❌ | Compiles on Wifi fails on Minima | |
36. | JoystickWin | PASS ✅ | PASS ✅ |
No. | Library | Compilation | Hardware Test | Notes |
---|---|---|---|---|
1. | u8g2 | PASS ✅ | PASS ✅ | |
2. | Adafruit SSD1306 | PASS ✅ | FAIL ❌ | Scattered pixels all over the display. |
3. | LiquidCrystal | PASS ✅ | PASS ✅ | |
4. | LiquidCrystal_I2C | PASS ✅ | PASS ✅ | |
5. | SevSeg | PASS ✅ | PASS ✅ | |
6. | Adafruit_ST7735 | PASS ✅ | PASS ✅ | |
7. | Adafruit_ILI9341 | FAIL ❌ | FAIL ❌ | |
8. | FastLED | PASS ✅ | PASS ✅ | Use fork by @facchinm |
9. | ArduinoGraphics | PASS ✅ | - | |
10. | TFTLCD-Library | FAIL ❌ | FAIL ❌ | #include "wiring_private.h |
11. | TM1638plus | PASS ✅ | PASS ✅ | |
12. | NOKIA5110_TEXT | PASS ✅ | PASS ✅ | |
13. | HD44780_LCD_PCF8574 | PASS ✅ | PASS ✅ | |
14. | Arduino_GFX | PASS ✅ | PASS ✅ | Supports many data buses, also TFT UNO-format shields (e.g., MCUFriend shields) |
15. | DIYables_4Digit7Segment_74HC595 | PASS ✅ | PASS ✅ |
No. | Library | Compilation | Hardware Test | Notes |
---|---|---|---|---|
1. | Mouse | PASS ✅ | PASS ✅ | |
2. | Keyboard | PASS ✅ | PASS ✅ |
No. | Library | Compilation | Hardware Test | Notes |
---|---|---|---|---|
1. | Adafruit_MCP4725 | PASS ✅ | PASS ✅ |
No. | Library | Compilation | Hardware Test | Notes |
---|---|---|---|---|
1. | Ethernet | PASS ✅ | PASS ✅ | Some examples need to be revised |
2. | WiFi101 | PASS ✅ | FAIL ❌ | No networks are found |
3. | RTClib | PASS ✅ | PASS ✅ | |
4. | JSON | PASS ✅ | ||
5. | Adafruit_GPS_Library | PASS ✅ | Not tested on hardware yet | |
6. | Firmata | FAIL ❌ | FAIL ❌ | |
7. | OneWire | PASS ✅ | PASS ✅ | |
8. | Telemetrix4Arduino | PASS ✅ | PASS ✅ | The R4 Branch |
9. | mWebSockets | PASS ✅ | PASS ✅ | |
10. | GPIO_NXP_Arduino | PASS ✅ | PASS ✅ | |
11. | LCDDriver_NXP_Arduino | PASS ✅ | PASS ✅ | |
12. | LEDDriver_NXP_Arduino | PASS ✅ | PASS ✅ | Not working with PCA9957(SPI) |
13. | MUX_SW_NXP_Arduino | PASS ✅ | PASS ✅ | |
14. | RTC_NXP_Arduino | PASS ✅ | PASS ✅ | Not working with PCA2131(SPI mode) |
15. | WiFiEspAT | PASS ✅ | PASS ✅ | |
16. | EthernetENCT | PASS ✅ | PASS ✅ | |
17. | ArduinoOTA | PASS ✅ | PASS ✅ | |
18. | TelnetStream | PASS ✅ | PASS ✅ | |
19. | StreamLib | PASS ✅ | PASS ✅ | |
20. | pubsubclient | PASS ✅ | PASS ✅ |
No. | Library | Compilation | Hardware Test | Notes |
---|---|---|---|---|
1. | SD | PASS ✅ | PASS ✅ |
No. | Library | Compilation | Hardware Test | Notes |
---|---|---|---|---|
1. | Adafruit SleepyDog | FAIL ❌ | FAIL ❌ |
No. | Library | Compilation | Hardware Test | Notes |
---|---|---|---|---|
1. | Talkie | FAIL ❌ | Fail on Minima and Wifi |