Skip to content

Hardware

Juraj Andrassy edited this page Sep 10, 2018 · 17 revisions

Arduino UNO WiFi Developer Edition connects ATmega328 microcontroller to ESP8266 using additional on board UART chip SC16IS750. This additional UART is connected to Atmega as I2C device.

Documentation

I2C a.k.a. Wire a.k.a. TWI

TWI uses pins A4 and A5. This pins can't be used for analog readings on UNO WiFi even if the TWI is disabled. The connection to SC16IS750 disturbs the ADC.

SC16IS750

SC16IS750 (here as module) is an I2C device on board of UNO WiFi with address set to 0xAA, which converts to I2C address 0x48. It's UART (serial) connection connects to RX/TX of the ESP8266.

SC16IS750 has GPIO pins connected to prominent pins of the ESP8266:

  • GPIO0 to CH_EN pin
  • GPIO1 to RSTB pin
  • GPIO2 to GPIO0

GPIO3 of the SC16IS750 is connected to a relay which can turn off power to ESP8266.

ESP as programmer

To write an Atmega program received over WiFi into Atmega, the ESP must be connected to Atmega's serial pins. For this to work there is a direct serial to serial connection on UNO WiFi Developer Edition. The electronic switch which connects this serial to serial is controlled with GPIO4 of the ESP8266.

To reset the ATmega, to give control to the bootloader the ESP on UNO WiFi has GPIPO12 connected to ATmega reset pin.

ESP8266 40 MHz oscillator

ESP8266 on UNO WiFi has a 40 MHz oscillator. The IDE esp8266 core 2.4 has the right settings for Uno WiFi. The Flash Download Tool sets the value into flashed bin. If flashing the esptool, use esp_init_data_default.bin with 40 MHz oscillator setting.

Consequence of the 40 MHz crystal is bootloader log baud rate of 115200 baud.

ESP off problem

If the ESP is off it doesn't hold GPIO4 HIGH and the electronic switch on RX/TX connects the ESP directly to ATMEGA RX/TX. ESP starts on 'parasitic power' from TX and disturbs the RX/TX. ATmega sketch can not be written, avrdude reports connection error. Power cycling the board should restore the condition.

If the ATmega sketch turns the ESP off in setup(), the problem persists. Solution is putting the ATmega to reset by connecting the reset pin to ground and disconnecting the reset pin from ground in the right moment when avrdude sends a safe sketch.

ESP io 2 problem

Pin 2 is one of the boot configuration pins. According to esp8266 PCB design guidelines this pin can be left floating, but at boot it is checked for state LOW. And with a long trace and a soldering point on Uno WiFi it can happen that it is LOW. The esp8266 then doesn't boot to firmware.

Straight serial connection

The direct serial connection used for write ATmega program from ESP can be used to bypass the SC16IS750.

The same effect has a hardware patch - connecting the point TP_GPIOESP to ground. The hardware activation of the direct connection can help with serial flashing of esp firmware of seemingly 'bricked' UNO WiFi.

With the serial of Atmega connected to ESP8266 it can't be used for USB sketch uploading and Serial Monitor as it is the case with other equipment connecting to UART serial connection.

External antenna

On board there is a small antenna connector. It is not connected from factory.

Forum user aelektronikk modified his UNO WiFI to use the externall antenna connector.