Product Overview
The Nano V3.0 ATmega328P with Built-in OLED is an innovative all-in-one development board that combines the familiar functionality of an Arduino Nano with a compact 0.91-inch OLED display. This integration eliminates the need for external wiring and breadboarding for simple visual output, streamlining your prototyping process and saving valuable space in your projects .
Based on the classic ATmega328P microcontroller and featuring the reliable CH340C USB-to-serial chip, this board maintains 100% compatibility with the Arduino ecosystem while adding a convenient built-in display. The 0.91-inch OLED screen with 128×32 resolution uses the SSD1306 driver and communicates via the I2C protocol, allowing you to display sensor data, system status, debug information, or custom graphics directly on the board .
Whether you are a hobbyist creating compact wearable devices, an educator teaching microcontroller concepts, or a professional developing space-constrained prototypes, this integrated board offers a sleek, efficient solution that reduces wiring complexity and enhances project presentation.
Key Features
-
Integrated 0.91-inch OLED Display: Features a built-in OLED screen with 128×32 pixel resolution, driven by the SSD1306 controller via I2C interface. Pre-loaded with test firmware, the display works immediately upon USB connection .
-
ATmega328P Microcontroller: Powered by the same 8-bit AVR microcontroller as the classic Arduino Nano, providing reliable performance and extensive community support .
-
CH340C USB-to-Serial Chip: Utilizes the improved CH340C interface chip for reliable USB communication. Unlike older versions, the CH340C features an integrated crystal oscillator, reducing component count and improving stability .
-
Breadboard-Friendly Design: Maintains the compact Nano form factor (approximately 45mm x 18mm), allowing direct insertion into standard breadboards with two rows of pins on 0.1-inch spacing .
-
Multiple USB Interface Options: Available with Mini-USB, Micro-USB, or USB-C connectors to suit your preference and modern cable standards .
-
Complete I/O Capabilities: Provides 14 digital input/output pins (6 with PWM capability), 8 analog inputs, and standard serial communication ports (RX/TX) .
-
Flexible Power Options: Can be powered via USB (5V) or through the VIN pin with an external 6-12V DC power supply. The power source is automatically selected .
-
Onboard Status LEDs: Includes power (POW), TX, RX, and D13 indicator LEDs for real-time visual feedback of board activity .
-
Pre-Loaded Test Firmware: Ships with demonstration firmware that activates the OLED display upon first power-up, allowing immediate verification of proper operation .
-
ISP Download Support: Features ISP (In-System Programming) header support for advanced programming options and bootloader recovery .
Technical Specifications
Pinout & Interface Guide
Power Pins
-
VIN: Input voltage for external power supply (6-20V). When powered via USB, this pin can output approximately 4.8V .
-
5V: Regulated 5V output from the onboard regulator (when powered via VIN) or direct from USB .
-
3V3: 3.3V output from the onboard FTDI chip (minimum load) .
-
GND: Ground pins (multiple available).
Analog Pins
Digital Pins
I2C Pins (for Built-in OLED)
Communication Interfaces
-
UART: One hardware serial port on D0 (RX) and D1 (TX).
-
I2C: One interface on A4 (SDA) and A5 (SCL).
-
SPI: One interface on D10 (SS), D11 (MOSI), D12 (MISO), D13 (SCK) .
Indicator LEDs
-
POW (Red): Power indicator – illuminates when board is powered .
-
TX (Green): Flashes during data transmission .
-
RX (Green): Flashes during data reception .
-
D13 (Red): Connected to digital pin 13, flashes with built-in example sketches .
Usage Guide
Getting Started – First Power-Up
The module comes with pre-loaded test firmware that demonstrates the OLED display functionality. Simply connect the board to your computer via USB, and you should immediately see data displayed on the OLED screen .
Software Setup (Arduino IDE)
-
Install CH340 Driver:
-
For Windows 10/11, drivers often install automatically. If not, download the CH340 driver from a trusted source and install it .
-
After installation, check Device Manager to identify the COM port assigned to your board .
-
Configure Arduino IDE:
-
Open Arduino IDE.
-
Go to Tools > Board > Arduino AVR Boards and select “Arduino Nano” .
-
Go to Tools > Processor and select the appropriate option:
-
Go to Tools > Port and select the COM port identified in Device Manager .
-
Install OLED Libraries:
To program the built-in OLED display, you need to install supporting libraries:
-
Open Sketch > Include Library > Manage Libraries.
-
Search for and install “Adafruit GFX” and “Adafruit SSD1306” libraries .
-
Alternative: “U8g2” by oliver is also a popular, powerful library for OLED control .
Programming the Built-in OLED
The OLED communicates via I2C using the standard pins A4 (SDA) and A5 (SCL) , which are hardwired on the board . You do not need to wire anything externally to use the display.
Basic Example Sketch (Using Adafruit Libraries)
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 32
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void setup() {
Serial.begin(9600);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0,0);
display.println("Hello, World!");
display.display();
}
void loop() {
int sensorValue = analogRead(A0);
display.clearDisplay();
display.setCursor(0,0);
display.print("Sensor: ");
display.println(sensorValue);
display.display();
delay(500);
}
Common I2C Address
If the display does not work with address 0x3C, try 0x3D. You can also run an I2C scanner sketch to detect the correct address.
Power Supply Guidelines
-
USB Power: When connected via USB, the board operates at 5V and can supply limited current to external components .
-
External Power (VIN): For projects requiring more current or standalone operation, connect a 7-12V DC power supply to the VIN and GND pins. The onboard regulator will provide 5V to the board .
-
Power Selection: The board automatically selects the highest voltage source when both USB and VIN are connected .
Q: What makes this Nano board different from a standard Arduino Nano?
This board integrates a 0.91-inch OLED display directly onto the PCB. While it maintains all the functionality of a standard Nano (ATmega328P, 14 I/O pins, etc.), it adds a built-in screen that communicates via I2C using pins A4 and A5, eliminating the need for an external display module
Q: Is this board fully compatible with Arduino IDE?
Yes. It is designed to work seamlessly with the Arduino IDE. You need to select “Arduino Nano” as the board and may need to choose the correct processor option (“ATmega328P” or “ATmega328P (Old Bootloader)”) for successful uploads
Q: What can I display on the built-in OLED?
The 128×32 OLED can display text, numbers, simple graphics, and even small bitmaps. Common uses include:
-
Sensor readings (temperature, humidity, distance)
-
System status and debug messages
-
Battery voltage levels
-
Simple menu interfaces
-
Custom logos or icons
Q: Does using the OLED occupy any of the I/O pins?
The OLED uses the I2C pins A4 (SDA) and A5 (SCL) internally. These pins are still accessible on the header, but if you connect other I2C devices, they will share the same bus. You cannot use A4 and A5 as general-purpose analog inputs while the OLED is in use, as they are dedicated to the I2C communication.
Q: Can I use the OLED and still have all 8 analog inputs available?
No. Since the OLED uses A4 and A5 for I2C communication, these two pins are occupied. You will have 6 fully available analog inputs (A0-A3, A6-A7) when the OLED is enabled. Pins A6 and A7 are analog-only and cannot be used as digital I/O
Q: Why won't my sketch upload to the board?
Upload issues are common with Nano-compatible boards. Try these solutions:
-
Check Processor Selection: Go to Tools > Processor and switch between “ATmega328P” and “ATmega328P (Old Bootloader)” . The “Old Bootloader” setting resolves most upload issues .
-
Verify COM Port: Ensure the correct COM port is selected in Tools > Port .
-
Check Driver Installation: Confirm the CH340 driver is properly installed and visible in Device Manager .
-
Try a Different USB Cable: Some USB cables are “charge-only” and lack data wires. Use a cable known to support data transfer .
-
Timing During Upload: On some boards, you may need to press reset immediately before uploading starts.
Q: Which processor setting should I use in Arduino IDE?
Start with “ATmega328P” . If uploads fail consistently, switch to “ATmega328P (Old Bootloader)” . Many Nano-compatible boards require the “Old Bootloader” setting . The specific setting depends on the bootloader version programmed at the factory.
Q: Which OLED library should I use?
Two popular options work well:
-
Adafruit SSD1306 + Adafruit GFX: Feature-rich and well-documented, ideal for graphics and text .
-
U8g2: Excellent for text rendering and supports a wide variety of display controllers .
Both libraries can be installed via the Arduino Library Manager.
Q: What is the I2C address of the built-in OLED?
The typical I2C address is 0x3C . Some variants may use 0x3D. If your display doesn’t initialize, try the other address or run an I2C scanner sketch to detect it.
Q: How do I power the board for standalone operation?
You have two options:
-
USB Power: Connect to any USB power source (power bank, phone charger) via the board’s USB connector.
-
External DC Supply: Apply 7-12V DC to the VIN pin (positive) and a GND pin (negative). The onboard regulator will provide 5V for the board
Q: What is the maximum voltage I can apply to VIN?
The recommended range is 7-12V DC . The absolute maximum is 20V, but operating above 12V may cause the voltage regulator to overheat, especially under load
Q: Can I power external sensors from this board?
Yes. The 5V and 3.3V pins can supply power to external components. However, total current draw from these pins should be limited to avoid overloading the onboard regulator. For the 5V pin, total current (including the board itself) should not exceed 500mA when powered via USB, or the regulator’s capacity when powered via VIN.
Q: The board gets warm during operation. Is this normal?
The CH340C chip and voltage regulator can become slightly warm during normal operation, especially when drawing significant current. However, if the board becomes hot to the touch, you may be drawing too much current from the 5V or 3.3V pins, or there may be a short circuit. Disconnect power and check your wiring
Q: Do I need to solder the header pins myself?
The board typically ships with the header pins unsoldered to give you flexibility in orientation and usage. You will need to solder the included pin headers to the board before inserting it into a breadboard or connecting wires
Q: The OLED display is blank or not working.
Check the following:
-
Verify I2C Address: Ensure your sketch uses the correct address (0x3C or 0x3D).
-
Check Wiring: The OLED is internally connected; no external wiring is needed. However, ensure no other devices are conflicting on the I2C bus.
-
Library Issues: Confirm the Adafruit SSD1306 and GFX libraries are correctly installed.
-
Power Supply: Ensure the board is receiving adequate power (5V via USB or sufficient voltage on VIN).
-
Run I2C Scanner: Upload an I2C scanner sketch to verify the display is responding and to confirm its address.
Q: My computer doesn't recognize the board when plugged in.
This is typically a driver issue:
-
Install the CH340 driver for your operating system .
-
Try a different USB cable – some cables only provide power, not data .
-
Try a different USB port on your computer.
-
On Windows, check Device Manager for the device under “Ports (COM & LPT)” with or without a yellow warning symbol.
Q: The board works, but I'm having issues with analog pins A6 and A7.
Pins A6 and A7 are analog-only inputs on the ATmega328P. They cannot be used as digital I/O pins (with pinMode, digitalWrite, or digitalRead). They are strictly for analog input via analogRead
Q: The built-in LED on pin 13 is always faintly lit.
This can happen due to the way the pin is driven or due to residual current. It is generally normal for some Nano-compatible boards and does not indicate a defect. The LED will glow fully when the pin is driven HIGH.
Q: The board resets itself multiple times when connected to a Windows PC.
This behavior is related to the CH340 driver enumeration process. The DTR signal from the CH340 is AC-coupled to the reset pin, causing the ATmega328P to reset during USB negotiation. This is normal behavior designed to facilitate automatic reset during sketch upload . For most users, this does not affect normal operation.