SKU: OT3345 Article number: OT3345 EAN: 8721244302812
This ESP32-C3 development board combines wireless connectivity with a compact 0.42 inch OLED display. The board is based on the reliable ESP32C3FN4/FH4 chip and has a built-in ceramic antenna for WiFi and Bluetooth. With 4MB flash memory and USB programming, it is ideal for various IoT projects.
Due to its low power consumption and versatile connectivity, this board is suitable for:
This compact IoT board is based on the ESP32-C3 (RISC-V) chip and features an integrated 0.42 inch OLED display. Because the pinout and the display control differ from standard ESP32 modules, you will find the specific instructions below to use the board correctly.
The online documentation is often confusing. Use the pin assignments below for this specific board (ABRobot style):
LOW = on, HIGH = off).To program this board, select the following settings in the Arduino IDE:
ESP32C3 Dev ModuleEnabled (Essential to see Serial.print output).DIO (default).The display uses an SSD1306 controller, but has a physical resolution of only 72x40 pixels. However, the internal buffer is 128x64. You must apply an "offset" to make text visible.
Required Library: Install the U8g2 library (by olikraus) via the Arduino Library Manager.
Example code:
#include
#include
// Initialization for ESP32-C3 with I2C on pin 5 (SDA) and 6 (SCL)
// We use the standard 128x64 driver, but only part of the display.
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE, 6, 5);
// Settings for the 0.42 inch display
int width = 72;
int height = 40;
// The offsets are needed to center the output in the 128x64 buffer
int xOffset = 30; // 30 works best in practice
int yOffset = 12; // (64 - 40) / 2 = 12
void setup(void) {
delay(1000); // Short pause for stability
u8g2.begin();
u8g2.setContrast(255); // Maximum brightness
u8g2.setBusClock(400000); // 400kHz I2C speed
u8g2.setFont(u8g2_font_ncenB10_tr); // Choose a readable font
}
void loop(void) {
u8g2.clearBuffer(); // Clear internal buffer
// Draw a frame to test the visible area
u8g2.drawFrame(xOffset, yOffset, width, height);
// Draw text (take xOffset and yOffset into account!)
u8g2.setCursor(xOffset + 5, yOffset + 25);
u8g2.print("ESP32-C3");
u8g2.sendBuffer(); // Send data to the display
delay(1000);
}
Want to test the other pins? Use this simple loop. Note: pin 8 also controls the onboard LED.
// GPIO 8 is the Onboard LED (LOW = ON)
#define LED_PIN 8
void setup() {
pinMode(LED_PIN, OUTPUT);
}
void loop() {
digitalWrite(LED_PIN, LOW); // LED On
delay(500);
digitalWrite(LED_PIN, HIGH); // LED Off
delay(500);
}