π Overview
The Nano V3.0 compatible USB-C ATmega328P micro-controller board is a compact, fully featured development board compatible with the Arduino Nano. It offers the same functionality as larger Arduino boards like the Duemilanove, but in a breadboard-friendly package that's perfect for space-constrained projects. This board uses the CH340G USB-to-serial chip instead of the FTDI chip found on the official Arduino Nano, making it an affordable and widely compatible alternative.
This version features a modern USB-C connector, replacing the older Mini-B USB port found on earlier Arduino Nano-compatible boards. USB-C offers a reversible plug (no more flipping the cable), a more secure connection, and broader compatibility with modern computers and chargers. The board is powered via USB-C or an external power supply, and it's programmed through the Arduino IDE β the same software used for all Arduino boards.
π‘ Tip: This board uses the CH340G USB driver, which may need to be installed on your computer before the Arduino IDE can communicate with the board. See the CH340G Driver Installation section below.
β Key Features
- ATmega328P Microcontroller β The same proven MCU used in the Arduino Uno and Arduino Nano, with 32 KB flash memory (2 KB used by bootloader), 2 KB SRAM, and 1 KB EEPROM
- USB-C Connector β Modern reversible connector for programming and power β no more fumbling with cable orientation
- CH340G USB Interface β Reliable USB-to-serial converter for programming and serial communication
- 14 Digital I/O Pins β Including 6 PWM-capable outputs (D3, D5, D6, D9, D10, D11)
- 8 Analog Input Pins β A0 through A7 with 10-bit resolution (1024 steps)
- Breadboard-Friendly β Compact form factor with dual inline pin headers that plug directly into standard breadboards
- Flexible Power Options β USB-C powered, 5V regulated input, or 7β12V unregulated input with automatic source selection
- Bootloader Pre-Installed β Ready to program out of the box with the Arduino IDE
- ICSP Header β Supports In-Circuit Serial Programming for advanced users
π Specifications
| Parameter | Value |
|---|---|
| Microcontroller | Atmel ATmega328P-AU |
| USB-to-Serial Chip | CH340G |
| Operating Voltage (Logic Level) | 5V |
| Clock Speed | 16 MHz |
| Flash Memory | 32 KB (2 KB used by bootloader) |
| SRAM | 2 KB |
| EEPROM | 1 KB |
| Digital I/O Pins | 14 (TX, RX, D2βD13) |
| PWM Pins | 6 (D3, D5, D6, D9, D10, D11) |
| Analog Input Pins | 8 (A0βA7) |
| Max Current per I/O Pin | 20 mA |
| Max Current on 3.3V Pin | 50 mA |
| Recommended Input Voltage | 7β12V DC (on VIN pin) |
| Maximum Input Voltage | 6β20V (absolute limits) |
| USB Connector | USB-C |
| Serial Communication | 1 pair TTL-level (RX/TX) |
| Programming Interface | USB (via CH340G) or ICSP |
| Board Dimensions | Approx. 45 Γ 18 mm (1.77 Γ 0.71 inches) L Γ W |
π Pinout
The board has 30 pins arranged in two rows of 15 along the edges, plus a 6-pin ICSP header. Here's a breakdown of the pin functions:
Digital Pins
| Pin | Function | Notes |
|---|---|---|
| D0 (RX) | Digital I/O / Serial Receive | Used for USB serial communication |
| D1 (TX) | Digital I/O / Serial Transmit | Used for USB serial communication |
| D2 | Digital I/O / External Interrupt 0 | |
| D3 | Digital I/O / PWM / External Interrupt 1 | PWM capable |
| D4 | Digital I/O | |
| D5 | Digital I/O / PWM | PWM capable |
| D6 | Digital I/O / PWM | PWM capable |
| D7 | Digital I/O | |
| D8 | Digital I/O | |
| D9 | Digital I/O / PWM | PWM capable |
| D10 | Digital I/O / PWM / SPI SS | PWM capable |
| D11 | Digital I/O / PWM / SPI MOSI | PWM capable |
| D12 | Digital I/O / SPI MISO | |
| D13 | Digital I/O / SPI SCK / Built-in LED | On-board LED connected to this pin |
Analog Pins
| Pin | Function | Notes |
|---|---|---|
| A0 | Analog Input / Digital I/O | |
| A1 | Analog Input / Digital I/O | |
| A2 | Analog Input / Digital I/O | |
| A3 | Analog Input / Digital I/O | |
| A4 | Analog Input / Digital I/O / I2C SDA | I2C data line |
| A5 | Analog Input / Digital I/O / I2C SCL | I2C clock line |
| A6 | Analog Input Only | Cannot be used as digital I/O |
| A7 | Analog Input Only | Cannot be used as digital I/O |
Power Pins
| Pin | Function | Notes |
|---|---|---|
| VIN | Voltage Input | 7β12V recommended (6β20V max) |
| 5V | Regulated 5V Output / Input | Can supply or receive regulated 5V |
| 3V3 | Regulated 3.3V Output | 50 mA max from on-board regulator |
| GND | Ground | Multiple GND pins available |
| AREF | Analog Reference | External reference voltage for ADC |
| RST | Reset | Pull LOW to reset the board |
β οΈ Note: Pins A6 and A7 are analog input only β they cannot be used as digital I/O pins. This is a hardware limitation of the ATmega328P in the TQFP package used on Arduino Nano-compatible boards.
π Power
This Arduino Nano-compatible board offers three ways to supply power:
- USB-C β Connect to your computer or a USB power adapter. Provides 5V directly. This is the most common method during development. The USB-C connector is reversible, so the cable plugs in either way.
- VIN Pin (Pin 30) β Apply 7β12V DC (6β20V absolute max). The on-board voltage regulator steps it down to 5V. Ideal for standalone projects using a battery pack or wall adapter.
- 5V Pin (Pin 27) β Apply a regulated 5V directly. This bypasses the on-board regulator, so the voltage must be clean and stable. Do not exceed 5.5V on this pin.
The board automatically selects the highest voltage source when multiple power inputs are connected.
β οΈ Warning: When powering via the 5V pin, you are bypassing the voltage regulator and all protection. Make sure your supply is a stable, regulated 5V. Applying higher voltage to this pin can permanently damage the board.
π‘ USB-C vs Mini-B USB
If you've used Arduino Nano-compatible boards before, you may be familiar with the older Mini-B USB connector. Here's how USB-C compares:
| Feature | USB-C (This Board) | Mini-B USB (Older Boards) |
|---|---|---|
| Connector Orientation | Reversible β plugs in either way | One-way only |
| Cable Availability | Widely available β same cable used by most modern devices | Less common β may need to purchase separately |
| Durability | More robust connector design | Smaller, more fragile connector |
| Data Transfer | Same (USB 2.0 via CH340G) | Same (USB 2.0 via CH340G) |
| Arduino IDE Setup | Identical β same board/processor settings | Identical β same board/processor settings |
π‘ Tip: The USB connector type does not affect the board's functionality, programming, or performance. All Arduino sketches, libraries, and shields that work with the Mini-B USB version will work identically with this USB-C version. The only difference is the cable you plug in.
π Compatible With
- Arduino IDE (select board: "Arduino Nano" and processor: "ATmega328P")
- Arduino Nano shields and expansion boards
- Standard solderless breadboards
- All Arduino libraries compatible with ATmega328P
- PlatformIO and other AVR-compatible development environments
- Windows, macOS, and Linux (with CH340G driver installed)
π― Common Applications
- Learning & Education β Ideal starter board for learning programming, electronics, and embedded systems
- Sensor Projects β Read temperature, humidity, light, motion, and other sensors using analog and digital inputs
- Home Automation β Control relays, lights, motors, and other devices with simple sketches
- Robotics β Drive servos, stepper motors, and DC motors for small robot builds
- Wearable Electronics β Compact size makes it suitable for wearable and portable projects
- IoT Prototyping β Pair with Wi-Fi or Bluetooth modules (ESP8266, HC-05) for connected projects
- Data Logging β Collect and store sensor data to SD cards or transmit via serial
π Getting Started
Getting your Arduino Nano-compatible USB-C board up and running takes just a few steps:
- Install the CH340G USB driver on your computer (see below)
- Download and install the Arduino IDE
- If you have the Loose Pins version, solder the header pins onto the board first (see the Soldering section below)
- Connect the board to your computer with a USB-C cable
- In the Arduino IDE, select Tools > Board > Arduino Nano
- Select Tools > Processor > ATmega328P
- Select the correct COM port under Tools > Port
- Upload your first sketch!
π» CH340G Driver Installation
This board uses the CH340G USB-to-serial chip. Most modern operating systems will install the driver automatically when you first plug in the board. If the Arduino IDE cannot detect your board or no COM port appears, you'll need to install the driver manually.
Windows
- Download the CH340G driver from the manufacturer: CH341SER.EXE (Windows)
- Run the downloaded installer and click Install
- Plug in your board via USB-C β Windows should now recognize it and assign a COM port
- In the Arduino IDE, go to Tools > Port and select the new COM port
macOS
- Download the CH340G driver: CH341SER_MAC.ZIP
- Unzip and run the installer package
- You may need to allow the driver in System Preferences > Security & Privacy
- Restart your Mac, then plug in the board
- The port should appear as
/dev/cu.wchusbserial*in the Arduino IDE
Linux
Most Linux distributions include the CH340G driver in the kernel (module ch341). Simply plug in the board and it should appear as /dev/ttyUSB0 or similar. If you encounter permission issues, add your user to the dialout group:
sudo usermod -a -G dialout $USER
Log out and log back in for the change to take effect.
π‘ Tip: If you've previously used boards with the FTDI (FT232RL) chip, the CH340G driver is separate and must be installed independently. Having both drivers installed will not cause conflicts.
π§ Arduino IDE Setup
Once the CH340G driver is installed, configure the Arduino IDE to work with your board:
- Open the Arduino IDE
- Go to Tools > Board and select Arduino Nano
- Go to Tools > Processor and select ATmega328P
- Go to Tools > Port and select the COM port assigned to your board
π‘ Tip: If uploading fails with an error like
avrdude: stk500_getsync(), try changing the processor setting to ATmega328P (Old Bootloader) under Tools > Processor. Some boards ship with the older bootloader version.
π Step 1: Blink β Your First Sketch
The classic Blink sketch is the "Hello World" of Arduino. It blinks the built-in LED on pin D13 to confirm your board and IDE are set up correctly. No external wiring is needed.
/*
* Blink - Built-in LED Test
* Envistia Mall - Product Support
*
* Blinks the on-board LED on pin D13
* to verify the board is working.
*
* No external wiring required.
*/
void setup() {
pinMode(LED_BUILTIN, OUTPUT); // D13 has the built-in LED
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // Turn LED on
delay(1000); // Wait 1 second
digitalWrite(LED_BUILTIN, LOW); // Turn LED off
delay(1000); // Wait 1 second
}
How to Use:
- Open the Arduino IDE and paste the sketch above (or go to File > Examples > 01.Basics > Blink)
- Click the Upload button (right arrow icon)
- Wait for "Done uploading" to appear in the status bar
- The on-board LED near pin D13 should now blink on and off every second
π Step 2: Reading an Analog Sensor
This sketch reads a value from an analog sensor (such as a potentiometer or light sensor) connected to pin A0 and prints the reading to the Serial Monitor. It's a great way to learn about analog inputs and serial communication.
/*
* Analog Sensor Reading
* Envistia Mall - Product Support
*
* Reads an analog value from A0 and
* prints it to the Serial Monitor.
*
* Connections:
* Sensor Signal -> A0
* Sensor VCC -> 5V
* Sensor GND -> GND
*/
void setup() {
Serial.begin(9600); // Start serial at 9600 baud
}
void loop() {
int sensorValue = analogRead(A0); // Read analog pin A0
// Print the raw value (0-1023)
Serial.print("Sensor Value: ");
Serial.print(sensorValue);
// Convert to voltage (0-5V)
float voltage = sensorValue * (5.0 / 1023.0);
Serial.print(" | Voltage: ");
Serial.print(voltage, 2);
Serial.println(" V");
delay(500); // Read every half second
}
How to Use:
- Connect a potentiometer or analog sensor to pin A0, 5V, and GND
- Upload the sketch to your board
- Open the Serial Monitor (Tools > Serial Monitor or Ctrl+Shift+M)
- Set the baud rate to 9600
- You should see sensor values and corresponding voltages updating every half second
π Step 3: Controlling an External LED
This sketch demonstrates digital output by blinking an external LED connected to pin D7. It introduces the concept of using a current-limiting resistor, which is essential for protecting LEDs.
/*
* External LED Blink
* Envistia Mall - Product Support
*
* Blinks an external LED on pin D7
* with a 220-ohm current-limiting resistor.
*
* Connections:
* D7 -> 220 ohm Resistor -> LED Anode (+)
* LED Cathode (-) -> GND
*/
const int ledPin = 7; // External LED on D7
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
digitalWrite(ledPin, HIGH); // LED on
delay(500);
digitalWrite(ledPin, LOW); // LED off
delay(500);
}
How to Use:
- Connect a 220Ξ© resistor from pin D7 to the anode (longer leg) of an LED
- Connect the cathode (shorter leg) of the LED to GND
- Upload the sketch
- The external LED should blink on and off every half second
π οΈ Soldering the Header Pins
If you purchased the Loose (Unsoldered) Pins version, the header pins are included but not attached. This gives you the flexibility to solder them pointing up (for breadboard use) or down (for direct PCB mounting). Here are some tips for a clean solder job:
- Insert the header pins into a breadboard to hold them straight and steady
- Place the board on top of the pins with the component side facing up
- Solder one pin on each side first, then check alignment before soldering the rest
- Use a fine-tip soldering iron (25β40W) and thin solder wire for best results
- Avoid holding the iron on any pin for more than 2β3 seconds to prevent heat damage
π‘ Tip: If you don't have soldering equipment, you can still test the board by holding the header pins in place with your fingers or using alligator clips for temporary connections. Or consider purchasing the Soldered Pins version of this board.
π οΈ Troubleshooting
Board Not Detected (No COM Port)
- Make sure the CH340G driver is installed (see the driver installation section above)
- Try a different USB-C cable β some cables are charge-only and don't carry data. Look for cables labeled "data" or "sync"
- Try a different USB port on your computer
- If using a USB-C to USB-C cable, try a USB-C to USB-A cable instead (or vice versa)
- On Windows, check Device Manager for an unrecognized device under "Other Devices"
Upload Fails with "avrdude: stk500_getsync()" Error
- Change the processor setting to ATmega328P (Old Bootloader) in Tools > Processor
- Make sure the correct COM port is selected
- Disconnect any wires from pins D0 (RX) and D1 (TX) during upload
Sketch Uploads but Nothing Happens
- Double-check your wiring connections
- Verify the correct board and processor are selected in the IDE
- Try pressing the reset button on the board after upload
Erratic Analog Readings
- Make sure unused analog pins are not floating β connect them to GND if not in use
- Add a small capacitor (0.1 Β΅F) between the analog input and GND to filter noise
- Keep analog signal wires short and away from digital/power lines
β οΈ Important Notes
- Do not exceed 20 mA per I/O pin or 200 mA total across all I/O pins combined
- The 3.3V output pin can supply a maximum of 50 mA β do not use it to power high-current 3.3V devices
- When using VIN for external power, keep the input between 7β12V for reliable operation. Voltages above 12V will cause the voltage regulator to overheat
- Pins D0 (RX) and D1 (TX) are shared with USB serial communication β avoid using them for other purposes if you need serial communication with your computer
- Pins A6 and A7 are analog input only and cannot be used as digital I/O
- The USB-C port on this board supports USB 2.0 data speeds only β it does not support USB 3.0, USB Power Delivery (PD), or video output
- This is a third-party board compatible with Arduino Nano β it is not manufactured by or affiliated with Arduino
πͺ Where to Buy the Arduino Nano-Compatible USB-C ATmega328P Board
The Nano-Compatible USB-C ATmega328P Microcontroller is available at Envistia Mall:Β
Buy the Arduino Nano-Compatible USB-C ATmega328P Micro-Controller β
- π¦ Fast US Shipping
- π Hassle-Free Returns
- π§ Responsive Customer Support
π Resources & Downloads
- Arduino IDE Download: Arduino Software (IDE)
- CH340G Windows Driver: CH341SER.EXE
- CH340G macOS Driver: CH341SER_MAC.ZIP
- Arduino Nano Documentation: Arduino Nano Docs
- ATmega328P Datasheet: Microchip/ATMel ATmega328P Datasheet (PDF)
Sold and supported by Envistia Mall. Ships from the USA. This product is compatible with Arduino Nano but is not manufactured by or affiliated with Arduino. "Arduino" and "Nano" are trademarks of Arduino SA. The manufacturer and Envistia LLC (dba Envistia Mall) are not responsible for any damages or losses resulting from the use of this product. Always follow proper electrical safety practices when working with electronic components. Specifications are based on manufacturer data and are subject to change without notice.