Arduino Genuino Uno

Arduino Genuino Uno by Arduino

Program Arduino Uno with EZB firmware for Synthiam ARC control; pinouts, PWM pins and frequency details for Arduino boards.
Connection Type
USB
Number of Servos
12
Audio Support
No
Camera Support
No
UARTs
None
I2C Support
Yes
ADC Ports
6
Digital Ports
14

The Arduino / Genuino Uno is a small microcontroller board based on the ATmega328P. A microcontroller is like a tiny computer that can read sensors, turn outputs on/off, and control motors and LEDs. The Uno is one of the most common Arduino boards, which makes it a great choice for beginners because there are lots of examples and community support.

The Uno includes:

  • 14 digital pins (labeled D0–D13) for on/off input and output
  • 6 analog input pins (labeled A0–A5) for reading changing voltages from sensors
  • 6 PWM-capable pins (a special type of digital output used for dimming LEDs or controlling motor speed)
  • USB port for connecting to your computer (programming + often power)
  • Barrel power jack for an external power supply
  • Reset button to restart the program on the board
  • ICSP header (advanced programming/pin access; most beginners won’t need this)
Beginner tip: “Digital” usually means OFF or ON (0 or 1). “Analog” means a range (for example, a knob that can be turned gradually).

When used with Synthiam ARC, the Uno can be loaded (flashed) with EZB firmware. This firmware lets ARC communicate with the Uno so ARC can control the pins (read sensors, set digital outputs, use PWM, etc.) from your ARC project.

Follow the step-by-step tutorial here: Tutorial to compile and upload the firmware

Understanding PWM (for beginners)

PWM stands for Pulse Width Modulation. PWM pins turn ON and OFF very quickly. By changing how long the signal stays ON vs OFF, the Arduino can simulate “partial power.”

  • Common uses: dim an LED, control DC motor speed, control some types of buzzers
  • Not the same as Servo control: servos use a different style of pulse timing (ARC handles servo signaling depending on your setup/controller)
  • PWM frequency is how fast the ON/OFF switching happens. Different boards/pins have different default PWM frequencies.
Board PWM Pins Default PWM Frequency
Uno, Nano, Mini 3, 5, 6, 9, 10, 11 490 Hz (pins 5 and 6: 980 Hz)
Mega 2 - 13, 44 - 46 490 Hz (pins 4 and 13: 980 Hz)
Leonardo, Micro, Yún 3, 5, 6, 9, 10, 11, 13 490 Hz (pins 3 and 11: 980 Hz)
Uno WiFi Rev2, Nano Every 3, 5, 6, 9, 10 976 Hz
MKR boards * 0 - 8, 10, A3, A4 732 Hz
MKR1000 WiFi * 0 - 8, 10, 11, A3, A4 732 Hz
Zero * 3 - 13, A0, A1 732 Hz
Nano 33 IoT * 2, 3, 5, 6, 9 - 12, A2, A3, A5 732 Hz
Nano 33 BLE/BLE Sense 1 - 13, A0 - A7 500 Hz
Due ** 2 - 13 1000 Hz
101 3, 5, 6, 9 pins 3 and 9: 490 Hz, pins 5 and 6: 980 Hz
Important: PWM pins are not the same as “all digital pins.” If you want PWM features (like dimming or speed control), make sure your device is connected to one of the PWM-capable pins listed for your board.
Quick start checklist
  1. Connect the Arduino Uno to your computer using a USB cable.
  2. Use the firmware tutorial to compile and upload the EZB firmware: HERE.
  3. Open ARC and connect to the Uno using the appropriate ARC connection method for your firmware/controller setup.
  4. Test a simple function first (example: toggle a digital pin with an LED, or read a sensor value) before wiring motors or more complex electronics.

ARC Pro

Upgrade to ARC Pro

ARC Pro will give you immediate updates and new features needed to unleash your robot's potential!

Author Avatar
PRO
Synthiam
#3   — Edited

Terry & ezang, I moved your comments to here because you responded in an unrelated thread.

There are tutorial videos above, and ezang has it correct - you press the CONNECT button on ARC to connect it to an Arduino after the firmware has been uploaded. The tutorial videos above would be helpful to you if you have never used an Arduino before.

User-inserted image

In addition, Arduino has a lot of information about their product on their website, including programming syntax, etc.

Author Avatar
PRO
USA
#4   — Edited

Thanks DJ, however, I am EzAng, not Nomad, my buddy lol

Author Avatar
PRO
Synthiam
#5  

Haha - oops (Fixed). my bad ezang:D

#6  

I use Adruino all the time:) What i would like to do is call the sketch functions from EZ (possible)

Author Avatar
PRO
Synthiam
#7   — Edited

You sure can - extend the EZB command protocol and receive it on the Arduino firmware. There's a live hack where I did that; you'll see it here: https://synthiam.com/Support/Skills/Navigation/Wheel-Encoder-Counter?id=17591

It looks like the meat starts at the 22-minute mark

It does require understanding programming, so you will have to have prior experience. The idea is you add a robot skill that extends the ezb communication protocol with new commands. Then, you execute your methods on the EZB firmware side (i.e., Arduino) when the command is received.

Author Avatar
PRO
Synthiam
#8  

oh, i just thought as well - it doesn't sound like you want the EZB capability of the arduino and instead just want to execute methods you have locally compiled into the arduino. That is a much easier way.

Just connect the Arduino to the PC (via usb) or EZB (via UART).

In your Arduino, have a simple "sketch" like so....


void setup() {

  // initialize the baud rate for the communication to the EZB. This is using the USB port
  Serial.begin(115200)
}

void loop() {

  while (Serial.available) {

    int val = Serial.readByte();

    if (val == 0) {

      myFunc1();

    } else (val == 1) {

      myFunc2();

    }
  }
}

void myFunc1() {

  // do some stuff
}

void myFunc2() {

  // do some stuff
}

then, in ARC you only need to send the command via the COM or EZB UART.

I use JavaScript so the COM commands are here: https://synthiam.com/Support/javascript-api/COM/write and the EZB commands are here: https://synthiam.com/Support/javascript-api/UART/hardwareUartAvailable