# KS0001A Keyestudio REV3 (Black) Main Control Board ![](media/wps1.png) ## 1. Introduction keyestudio REV3 is a microcontroller board based on the ATmega328 (datasheet), fully compatible with ARDUINO UNO REV3. It has 14 digital input/output pins (of which 6 can be used as PWM outputs), 6 analog inputs, a 16 MHz quartz crystal, a USB connection, a power jack, 2 ICSP headers and a reset button. It contains everything needed to support the microcontroller; simply connect it to a computer with a USB cable or power it with a AC-to-DC adapter or battery to get started. Note that the two ICSP headers are separately used to program the firmware to ATMEGA16U2-MU and ATMEGA328P-PU, but generally the two chips have been programmed well. The REV3 differs from all preceding boards in that it does not use the FTDI USB-to-serial driver chip. Instead, it features the Atmega16U2 programmed as a USB-to-serial converter. The REV3 is the best board to get started with electronics and coding. If this is your first experience tinkering with the platform, the REV3 is the most robust board you can start playing with. ## 2. Tech Specs | Microcontroller | ATmega328P-PU | | :-------------------------: | ---------------------------------------------------- | | Operating Voltage | 5V | | Input Voltage (recommended) | 7-12V | | Digital I/O Pins | 14 (of which 6 provide PWM output) | | PWM Digital I/O Pins | 6 (D3, D5, D6, D9, D10, D11) | | Analog Input Pins | 6 (A0-A5) | | DC Current per I/O Pin | 20 mA | | DC Current for 3.3V Pin | 50 mA | | Flash Memory | 32 KB (ATmega328) of which 0.5 KB used by bootloader | | SRAM | 2 KB (ATmega328P-PU) | | EEPROM | 1 KB (ATmega328P-PU) | | Clock Speed | 16 MHz | | LED_BUILTIN | D13 | ## 3. Features - 1.0 pinout: added SDA and SCL pins that are near to the AREF pin and two other new pins placed near to the RESET pin, the IOREF that allow the shields to adapt to the voltage provided from the board. - Stronger RESET circuit. - Atmega 16U2 replace the 8U2. ## 4. PCB Dimensions ![](media/wps2.jpg) ## 5. Element and Pin Interfaces Here is an explanation chart of what every element and interface of the board does: ![](media/wps3.jpg) | No. | Explain | | -------------------- | ------------------------------------------------------------ | | ![](media/wps4.jpg) | **ICSP (In-Circuit Serial Programming) Header**
In most case, ICSP is the AVR,an Arduino micro-program header consisting of MOSI, MISO, SCK, RESET, VCC, and GND. It is often called the SPI (serial peripheral interface) and can be considered an "extension" of the output. In fact, slave the output devices under the SPI bus host.
When connecting to PC, program the firmware to ATMEGA328P-PU. | | ![](media/wps5.jpg) | **Power LED Indicator**
Powering the Arduino, LED on means that your circuit board is correctly powered on. If LED is off, connection is wrong. | | ![](media/wps6.jpg) | **Digital I/O**
Arduino REV3 has 14 digital input/output pins (of which 6 can be used as PWM outputs). These pins can be configured as digital input pin to read the logic value (0 or 1). Or used as digital output pin to drive different modules like LED, relay, etc. The pin labeled “〜” can be used to generate PWM. | | ![](media/wps7.jpg) | **GND ( Ground pin headers)**
Used for circuit ground | | ![](media/wps8.jpg) | **AREF**
Reference voltage (0-5V) for analog inputs. Used with analogReference(). | | ![](media/wps9.jpg) | **SDA**
IIC communication pin | | ![](media/wps10.jpg) | **SCL**
IIC communication pin | | ![](media/wps11.jpg) | **ICSP (In-Circuit Serial Programming) Header**
In most case, ICSP is the AVR,an Arduino micro-program header consisting of MOSI, MISO, SCK, RESET, VCC, and GND. Connected to ATMEGA 16U2-MU. When connecting to PC, program the firmware to ATMEGA 16U2-MU. | | ![](media/wps12.jpg) | **RESET Button**
You can reset your Arduino board, for example, start the program from the initial status. You can use the RESET button. | | ![](media/wps13.jpg) | **D13 LED**
There is a built-in LED driven by digital pin 13. When the pin is HIGH value, the LED is on, when the pin is LOW, it's off. | | ![](media/wps14.jpg) | **USB Connection**
Arduino board can be powered via USB connector. All you needed to do is connecting the USB port to PC using a USB cable. | | ![](media/wps15.jpg) | **ATMEGA 16U2-MU**
USB to serial chip, can convert the USB signal into serial port signal. | | ![](media/wps16.jpg) | **TX LED**
Onboard you can find the label: TX (transmit) When Arduino board communicates via serial port, send the message, TX led flashes. | | ![](media/wps17.jpg) | **RX LED**
Onboard you can find the label: RX(receive ) When Arduino board communicates via serial port, receive the message, RX led flashes. | | ![](media/wps18.jpg) | **Crystal Oscillator**
Helping Arduino deal with time problems. How does Arduino calculate time? by using a crystal oscillator.
The number printed on the top of the Arduino crystal is 16.000H9H. It tells us that the frequency is 16,000,000 Hertz or 16MHz. | | ![](media/wps19.jpg) | **Voltage Regulator**
To control the voltage provided to the Arduino board, as well as to stabilize the DC voltage used by the processor and other components.
Convert an external input DC7-12V voltage into DC 5V, then switch DC 5V to the processor and other components. | | ![](media/wps20.jpg) | **DC Power Jack**
Arduino board can be supplied with an external power DC7-12V from the DC power jack. | | ![](media/wps21.jpg) | **IOREF**
Used to configure the operating voltage of microcontrollers. Use it less. | | ![](media/wps22.jpg) | **RESET Header**
Connect an external button to reset the board. The function is the same as reset button (labeled 9) | | ![](media/wps23.jpg) | **Power Pin 3V3**
A 3.3 volt supply generated by the on-board regulator. Maximum current draw is 50 mA. | | ![](media/wps24.jpg) | **Power Pin 5V**
Provides 5V output voltage | | ![](media/wps25.jpg) | **Vin**
You can supply an external power input DC7-12V through this pin to Arduino board. | | ![](media/wps26.jpg) | **Analog Pins**
Arduino REV3 board has 6 analog inputs, labeled A0 through A5.
These pins can read the signal from analog sensors (such as humidity sensor or temperature sensor), and convert it into the digital value that can read by microcontrollers) Can also used as digital pins, A0=D14, A1=D15, A2=D16, A3=D17, A4=D18, A5=D19. | | ![](media/wps27.jpg) | **Microcontroller**
Each Arduino board has its own microcontroller. You can regard it as the brain of your board.
The main IC (integrated circuit) on the Arduino is slightly different from the panel pair. Microcontrollers are usually from ATMEL. Before you load a new program on the Arduino IDE, you must know what IC is on your board. This information can be checked at the top of IC. | ## 6. Specialized Functions of Some Pins - **Serial communication:** Digital pins 0 (RX) and 1 (TX). - **PWM Interfaces (Pulse-Width Modulation):** D3, D5, D6, D9, D10, D11 - **External Interrupts:** D2 (interrupt 0) and D3 (interrupt 1). These pins can be configured to trigger an interrupt on a low value, a rising or falling edge, or a change in value. - **SPI communication:** D10 (SS), D11 (MOSI), D12 (MISO), D13 (SCK). These pins support SPI communication using the SPI library. - **IIC communication:** A4 (SDA); A5(SCL) ## 7. Notice **1.** The Arduino REV3 has a resettable polyfuse that protects your computer's USB ports from shorts and overcurrent. If more than 500 mA is applied to the USB port, the fuse will automatically break the connection until the short or overload is removed. **2.** Automatic (Software) Reset: Rather than requiring a physical press of the reset button before an upload, the Arduino REV3 board is designed in a way that allows it to be reset by software running on a connected computer. **3.** The REV3 board contains a trace that can be cut to disable the auto-reset. The pads on either side of the trace can be soldered together to re-enable it. It's labeled "RESET-EN". You may also be able to disable the auto-reset by connecting a 110 ohm resistor from 5V to the reset line; see this forum thread for details. ## 8. Software Download Open the browser and search: https://www.arduino.cc/en/software, we will take WINDOWS system as an example to show you how to download and install. ![](media/1.gif) You just need to click JUSTDOWNLOAD,then click the downloaded file to install it. And when the ZIP file is downloaded,you can directly unzip and start it. ![](media/2.gif) ## 9. Installing Driver Download driver : [drivers](./drivers.7z) Next, we will introduce the driver installation of REV3 development board. The driver installation may have slight differences in different computer systems. So in the following let’s move on to the driver installation in the WIN 7 system. The Arduino folder contains both the Arduino program itself and the drivers that allow the Arduino to be connected to your computer by a USB cable. Before we launch the Arduino software, you are going to install the USB drivers. ![](media/wps1.jpg) Plug one end of your USB cable into the Arduino and the other into a USB socket on your computer. When you connect REV3 board to your computer at the first time, right click the icon of your “Computer” —>for “Properties”—> click the “Device manager”, under “Other Devices”, you should see an icon for “Unknown device” with a little yellow warning triangle next to it. This is your Arduino. ![](media/wps2-1770340882001-7.jpg) Then right-click on the device and select the top menu option (Update Driver Software...) shown as the figure below. ![](media/wps3-1770340929934-9.jpg) It will then be prompted to either “Search Automatically for updated driver software” or “Browse my computer for driver software”. Shown as below. In this page, select “Browse my computer for driver software”. ![](media/wps4-1770340944384-11.jpg) After that, select the option to browse and navigate to the “drivers” folder of Arduino installation. ![](media/wps5.png) Click “Next” and you may get a security warning, if so, allow the software to be installed. Shown as below. ![](media/wps6-1770340970570-14.jpg) Installation completed, click “Close”. ![](media/wps7-1770340982718-16.jpg) Up to now, the driver is installed well. Then you can right click **“Computer” —>“Properties”—>“Device manager”**, you should see the device shown below. ![](media/wps8-1770341001175-18.jpg) ## 10. Set Arduino IDE Connect the Keyestudio REV3 (Black)Main Control Board to your computer using the USB cable. The green power LED should go on. ![](media/wps9-1770341046036-20.jpg) Connecting the board to the computer,and select the development board and port. ![](media/Anima.gif) **Note:** to avoid errors, the COM Port should keep the same as the Ports shown on Device Manager. ![](media/wps12-1770341137636-27.jpg) ## 11. Upload the Program Below is an example program for displaying the Hello World! Copy and paste the code to the Arduino environment IDE. ```c int val; int ledpin=13; void setup() { Serial.begin(9600); pinMode(ledpin,OUTPUT); } void loop() { val=Serial.read(); if(val=='R') { digitalWrite(ledpin,HIGH); delay(500); digitalWrite(ledpin,LOW); delay(500); Serial.println("Hello World!"); } } ``` | Picture | Introduction | | -------------------------------------- | --------------------------------------------------- | | ![](media/image-20260206092733986.png) | Check the code for errors | | ![](media/image-20260206092744173.png) | Upload the current Sketch to the Arduino | | ![](media/image-20260206092751719.png) | Display the serial data being sent from the Arduino | After that, click the serial monitor button to open the serial monitor. Then set the baud rate as 9600, enter an “R” and click Send, you should see the RX led on the board blink once, and then D13 led blink once, finally "Hello World!" is showed on the monitor, the TX led blink once. Congrats! ![](media/wps13-1770341326099-29.jpg) ## 12. Package List - keyestudio REV3 BOARD * 1pcs - USB cable * 1pcs ![](media/image-20260206093027620.png)