Programming
The Arduino Uno Wi-Fi can be programmed as a classic Arduino Uno with the Arduino software
(download). Select "Arduino Uno Wi-Fi from the Tools > Board menu (according to the
microcontroller on your board.
The new features of the Arduino Uno Wi-Fi allow you to upload your sketch via Wi-Fi
(in the same way of Arduino Yun), without any wired connection to your PC and your
board.
The ATmega328 on the Arduino Uno Wi-Fi comes pre-burned with a bootloader that
allows you to upload new code to it without the use of an external hardware
programmer. It communicates using the original STK500 protocol.
You can also bypass the bootloader and program the microcontroller through the
ICSP (In-Circuit Serial Programming) header using Arduino ISP or similar.
Automatic (Software) Reset
Rather than requiring a physical press of the reset button before an upload, the
Arduino Uno Wi-Fi is designed in a way that allows it to be reset by software running
on a connected computer. One of the hardware flow control lines (DTR) of the
ATmega8U2/16U2 is connected to the reset line of the ATmega328 via a 100
nanofarad capacitor. When this line is asserted (taken low), the reset line drops long
enough to reset the chip. The Arduino software uses this capability to allow you to
upload code by simply pressing the upload button in the Arduino environment. This
means that the bootloader can have a shorter timeout, as the lowering of DTR can be
well-coordinated with the start of the upload.
This setup has other implications. When the Uno WiFi is connected to either a
computer running Mac OS X or Linux, it resets each time a connection is made to it
from software (via USB). For the following half-second or so, the bootloader is
running on the Uno. While it is programmed to ignore malformed data (i.e. anything
besides an upload of new code), it will intercept the first few bytes of data sent to the
board after a connection is opened. If a sketch running on the board receives one-
time configuration or other data when it first starts, make sure that the software with
which it communicates waits a second after opening the connection and before
sending this data.
The Uno WiFi 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.