Custom DIY Arduino UNO R3 Full THT Board (MiniVieNO) With Enhanced Power, Connectivity Features

by The PCB guy-me_self_nithin in Circuits > Arduino

215 Views, 3 Favorites, 0 Comments

Custom DIY Arduino UNO R3 Full THT Board (MiniVieNO) With Enhanced Power, Connectivity Features

Photo-View_2024-08-12.png

Introducing MiniVieno – a custom Arduino board designed for flexibility and reliability. After 2 months of development, this board features separate 5V, 3.3V, and 12V breakouts, reverse voltage protection, standby and TX/RX status LEDs, a USB Type-C connection, and three power input options (barrel jack, USB, terminal block). Excited to see how this innovation will power future projects!


Supplies

OIG3.jpg
  1. EasyEDA : click to go to page and create an account if you don't have or just login to a standard account
  2. internet connection not less than 1mbps
  3. some basic knowledge on electronics (don't worry we will be explaining all the steps here)

  4. so here we begin..................... our journey in building our own Arduino uno with some custom features

  5. before that i have made the same and posted it on my GitHub check it out: DIY Arduino UNO R3 Full THT Board (MiniVieNO)


below listed are the full component list needed:

  1. 100nF ,22pF ,100uF capacitor
  2. 1N4007 diode
  3. LEDs
  4. DC POWER JACK
  5. Header-Male-2.54_2x3
  6. TERMINAL_BLOCK
  7. push button
  8. ATMEGA328P-PU
  9. LM317
  10. CH340G (usb to uart)
  11. USB 3.1 C TYPE FEMALE
  12. LR7805
  13. 16MHz crystal oscillator
  14. 10K ,1K resistors


you can find the full details list of components from the bom file below

Floor Plan (schematic)

Schematic_MiniVieNO-Rev-1_2024-08-15.png

we will be explaining all the details on each and every component and reason for its use here so that you have a great understanding on how things work


we split the Arduino into 3 core areas

  • power distribution area
  • computational and processing area
  • data transfer and i/o ports


all the above lists will be explained below


I KNOW THIS IS GOING TO BE TECHINICAL BUT HEY I PROMICE THIS IS GOING TO BE A FUN TECHINICAL RIDE ..... NOT INTRESTED THEN JUST GO DOWN I HAVE ATTACHED ALL NESSARY FILES FOR RECREATING THE SAME PROJECT ...HAPPY LEARNING


ok back to the explanation


The Arduino Uno R3 uses several key components that allow it to function as a versatile microcontroller platform. Here is a breakdown of the main components and their highlighted uses:


  • ATmega328P Microcontroller (MCU)

  Function: This is the heart of the Arduino Uno. It is an 8-bit microcontroller that runs the programs (sketches) uploaded to the board. It has 32KB of flash memory, 2KB of SRAM, and 1KB of EEPROM. 


  • CH340 (USB to Serial Converter (UART))

  Function: This chip acts as a bridge between the USB interface and the ATmega328P. It converts USB data to serial communication (UART) used by the main microcontroller.



  •   Diodes

   Function: Protects the board by preventing reverse polarity when an external power source is used.

  •   Capacitors (C1, C2, C3, etc.)

   Function: Smooth out voltage spikes and noise, ensuring stable power delivery to components.


  • Crystal Oscillator (16 MHz)

  Function: Provides the clock signal for the ATmega328P, allowing it to run at a stable frequency. This clock determines the speed at which the microcontroller executes instructions.


  • Digital I/O Pins (0-13)

  Function: These pins can be used as inputs or outputs for digital signals. Some pins support PWM (Pulse Width Modulation) for analog-like control, such as dimming LEDs.


  • Analog Input Pins (A0-A5)

 Function: These pins are used for reading analog signals (0-5V), such as sensor inputs. The ATmega328P has a 10-bit ADC (Analog to Digital Converter) to convert analog inputs to digital values.


  • Power Pins
  1. Vin: Input voltage to the Arduino when using an external power source (7-12V).
  2.  5V: Regulated 5V output.
  3.   3.3V: Regulated 3.3V output (provided by the onboard regulator).
  4. GND: Ground pins.


  • Reset Button

  Function: Manually resets the microcontroller to restart the program.


  • LED Indicators
  1.    Power LED (ON)
  2.     Function: Indicates the board is powered.
  3. Pin 13 LED (L)
  4.     Function: Linked to digital pin 13; useful for debugging and testing simple sketches.
  5.    TX and RX LEDs
  6.     Function: Indicate serial communication (transmit and receive) activity between the board and computer.


  • USB Type C Connector

  Function: Provides a connection for programming the Arduino using a computer and supplies power when connected via USB.


  • ICSP Header (In-Circuit Serial Programming)
  1. Function: Allows for direct programming of the ATmega328P using an external programmer or burning a bootloader.


  • Resettable Polyfuse (not implemented now but will be implemented on the next iteration)

  Function: Protects the USB port on your computer from excessive current by automatically resetting if the current exceeds a safe level.


These components work together to allow the Arduino Uno R3 to be programmed and used for various electronic projects.

Power Distribution Area

81918_hand-lifting-cordless-lightbulb.jpg

Power distribution area

  • if we look into the power needs of the microcontroller atmega328p-pu it needs a stable 5v supply and we need to provide it in order to make things work
  • since the general and locally available power source is 12v and USB, talking about usb we have some more things talk and yes it will be discussed on the way
  • coming back to 12v we need to regulate it to constant 5v, so we use a voltage regulator ic 7805.
  • here size is not considered since we are focusing on full THT (through hole type) components


  • Also, we need 3.3v for other interfaces like sensors and other small, powered devices so we use lm317 ic to make our job easier
  • lm317 resistor calculation: click here to make some calculations


  • and additionally, I have added a 12v breakout point for 12v devices so yes that a new thing in the world of Arduino

Computational and Processing Area

FZKWZPKKCUIUF76.jpg

The brains ATMEGA328P-PU

The ATmega328P is an 8-bit AVR microcontroller commonly used in Arduino boards like the Arduino Uno. Here are its

key specifications:


General Specifications

  1. Architecture: 8-bit AVR RISC
  2. Operating Voltage: 1.8V to 5.5V
  3. Flash Memory: 32 KB (with 0.5 KB used by the bootloader)
  4. SRAM: 2 KB
  5. EEPROM: 1 KB
  6. Clock Speed: Up to 20 MHz (typically 16 MHz in Arduino boards)
  7. Operating Temperature: -40°C to +85°C


I/O and Peripherals

  1. GPIO Pins: 23 I/O pins
  2. ADC Channels: 6 channels with 10-bit resolution
  3. PWM Channels: 6 channels


Timers/Counters:

  1. 2 x 8-bit timers
  2. 1 x 16-bit timer


  1. SPI Interface: 1
  2. I2C (TWI) Interface: 1
  3. UART Interface: 1 (supports serial communication)
  4. Analog Comparators: 1


Power and Consumption

Power Consumption (at 1 MHz, 1.8V):

  1. Active Mode: ~0.2 mA
  2. Power-down Mode: ~0.1 µA
  3. Power-save Mode: ~0.75 µA


Special Features

  1. Watchdog Timer: Built-in watchdog with separate on-chip oscillator
  2. Brown-out Detection: Ensures stable operation by resetting when voltage drops below a safe threshold.
  3. Interrupts: External and pin change interrupts


Package Types

  1. Available in various packages like DIP-28, TQFP-32, and QFN-32, making it suitable for both prototyping and production.


I KNOW THIS IS GOING TO BE TECHINICAL BUT HEY I PROMICE THIS IS GOING TO BE A FUN TECHINICAL RIDE ..... NOT INTRESTED THEN JUST GO DOWN I HAVE ATTACHED ALL NESSARY FILES FOR RECREATING THE SAME PROJECT ...HAPPY LEARNING


  1. CH340 (USB to Serial Converter (UART))

  Function: This chip acts as a bridge between the USB interface and the ATmega328P. It converts USB data to serial communication (UART) used by the main microcontroller.


Data Transfer and I/o Ports

data-transfer-with-internet-cloud-technology-free-vector.jpg

In the Arduino Uno R3, data transmission can occur in several ways depending on the communication protocol used. The board supports the following communication methods:


I KNOW THIS IS GOING TO BE TECHINICAL BUT HEY I PROMICE THIS IS GOING TO BE A FUN TECHINICAL RIDE ..... NOT INTRESTED THEN JUST GO DOWN I HAVE ATTACHED ALL NESSARY FILES FOR RECREATING THE SAME PROJECT ...HAPPY LEARNING


  1. UART (Serial Communication)
  2. Pins Used: TX (pin 1), RX (pin 0)
  3. Description: UART is the most common communication protocol used in Arduino, mainly for serial communication. It is used for data transmission between the Arduino board and other devices like a computer or another microcontroller.
  4. Speed (Baud Rate): Common baud rates include 9600, 19200, 115200, etc.
  5. Usage: The `Serial` library is used to send and receive data. You can send data with `Serial.print()` or `Serial.write()`, and receive with `Serial.read()`.
  6. Applications: Used for debugging, data logging, and communication with serial devices (e.g., GPS modules, Bluetooth modules).


  1. SPI (Serial Peripheral Interface)
  2. -Pins Used:
  3. MOSI (Master Out Slave In) - Pin 11
  4. MISO (Master In Slave Out) - Pin 12
  5. SCK (Serial Clock) - Pin 13
  6. SS (Slave Select) - Pin 10 (or any other GPIO for multiple devices)
  7. Description: SPI is a high-speed synchronous communication protocol mainly used for communication between the Arduino and peripherals like sensors, SD cards, and displays. SPI can achieve much faster data rates than UART and I2C.
  8. Speed: Typically in the range of MHz (up to 8 MHz in Arduino Uno).
  9. Usage: The `SPI` library is used to initialize, send, and receive data using functions like `SPI.begin()`, `SPI.transfer()`, etc.
  10. Applications: High-speed data transfer with devices like SD cards, displays, and shift registers.


  1. I2C (Inter-Integrated Circuit)
  2. Pins Used:
  3. SDA (Data Line) - Pin A4
  4. SCL (Clock Line) - Pin A5
  5. Description: I2C is a two-wire synchronous communication protocol used for communication with multiple devices using just two pins. It allows for multiple devices (slaves) to communicate with a single master (Arduino).
  6. Speed: Standard mode (100 kHz), Fast mode (400 kHz).
  7. Usage: The `Wire` library is used to implement I2C communication. Functions like `Wire.begin()`, `Wire.write()`, `Wire.requestFrom()` are used for sending and receiving data.
  8. Applications: Communication with sensors, displays, and EEPROMs.


  1. USB Communication
  2. Pins Used: USB port (connected to the onboard ATmega16U2)
  3. Description: The USB interface connects the Arduino to a computer. It’s primarily used for programming the board, but it can also be used for serial communication.
  4. Usage: This uses the same serial communication (`Serial`) as the UART but is handled through the USB interface.
  5. Applications: Serial monitor communication, firmware uploading.


  1. Software Serial (Emulating UART)
  2. Pins Used: Any GPIO pins defined by the user.
  3. Description: Arduino Uno has only one hardware UART port (pins 0 and 1). If more serial ports are needed, the `Software Serial` library can be used to emulate additional UARTs on other digital pins.
  4. Speed (Baud Rate): Up to 115200, though higher speeds can be unstable.
  5. Applications: Communicating with multiple serial devices simultaneously.


The Arduino Uno R3 offers versatile options for data transmission, allowing it to communicate with a wide range of devices using UART, SPI, I2C, or USB.

USB C Interface

Aovh5.png
  1. A1------------------GND------------------------Ground return
  2. A2 -----------------SSTXp1 ("TX1+") -------SuperSpeed differential pair #1, transmit, positive
  3. A3 -----------------SSTXn1 ("TX1-") --------SuperSpeed differential pair #1, transmit, negative
  4. A4 -----------------VBUS ------------------------Bus power
  5. A5 -----------------CC1 -------------------------Configuration channel
  6. A6----------------- D+ ---------------------------USB 2.0 differential pair, position 1, positive
  7. A7 -----------------D− ---------------------------USB 2.0 differential pair, position 1, negative
  8. A8 ----------------SBU1 ------------------------Sideband use (SBU)
  9. A9 ----------------VBUS --------------------------Bus power
  10. A10 --------------SSRXn2 ("RX2-") ----------SuperSpeed differential pair #4, receive, negative
  11. A11 --------------SSRXp2 ("RX2+") ----------SuperSpeed differential pair #4, receive, positive
  12. A12 --------------GND ---------------------------Ground return


  1. B12 --------------GND ----------------------------Ground return
  2. B11 --------------SSRXp1 ("RX1+") ------------SuperSpeed differential pair #2, receive, positive
  3. B10 --------------SSRXn1 ("RX1-") -------------SuperSpeed differential pair #2, receive, negative
  4. B9 ----------------VBUS -----------------------------Bus power
  5. B8 ----------------SBU2 ----------------------------Sideband use (SBU)
  6. B7 ----------------D− --------------------------------USB 2.0 differential pair, position 2, negative
  7. B6 ----------------D+ --------------------------------USB 2.0 differential pair, position 2, positive
  8. B5 ---------------CC2 -------------------------------Configuration channel
  9. B4---------------- VBUS -----------------------------Bus power
  10. B3 -----------------SSTXn2 ("TX2-") ------------SuperSpeed differential pair #3, transmit, negative
  11. B2 ------------------SSTXp2 ("TX2+") -----------SuperSpeed differential pair #3, transmit, positive
  12. B1 ------------------GND ----------------------------Ground return


for more details visit: world of USB C

Disclaimer

Screenshot_16-8-2024_81645_img.freepik.com.jpeg

⚠️ Disclaimer:

The information, content, and features presented here are provided "as is" without any warranties or guarantees. Use of this project, design, or product is at your own risk. Always follow safety guidelines and perform thorough testing before deployment and will not liable for any damages, injuries, or losses that may occur as a result of using, modifying, or replicating this work. the work is being tested and seen ok for the similar and intended use cases.

Proceed with caution and ensure all electrical connections, components, and power supplies are handled responsibly.


what to be made sure?

the board don't feature any polyfuse but yes it will be added in the future but now make sure you dont short things around otherwise the board is perfectly ok for normal use "let me say that again: NORMAL USE"

Fabrication Files

bare-pcb-3-1536x1223.jpg
Schematic_MiniVieNO-Rev-1_2024-08-15.png

This contains:


schematics

ibom file link : click to view ibom file

board images in svg format

gerber files : GitHub link

Final PCB Images

20240930_154729.jpg
20240930_154741.jpg