Skip to main content

Grove - UART Wi-Fi

enter image description here

Grove - UART WiFi is a serial transceiver module featuring the ubiquitous ESP8266 IoT SoC. With integrated TCP/IP protocol stack, this module lets your micro-controller interact with WiFi networks with only a few lines of code. Each ESP8266 module comes pre-programmed with an AT command set firmware, meaning you can send simple text commands to control the device. The SoC features integrated WEP, WPA/WPA2, TKIP, AES, and WAPI engines, can act as an access point with DHCP, can join existing WiFi networks and has configurable MAC and IP addresses.

Versionโ€‹

ParameterV1.0V2.0
Product Release Date24th Jue 201626th Mach 2018
WiFi ChipESP8266ESP8285
Antenna TypeExternalOn-board
LEDs3 LEDs-Power/WiFi/AT Command2 LEDs- Power/WiFi
Button1 Button: Short press to Reset Long press to enter UART boot mode2 Buttons for those two functions

note
    You may ask what is the difference between ESP8266 and ESP8285. The ESP8285 is an update version of ESP8266, which adds a build-in 1MB flash. Except that, they are almost the same.

Featuresโ€‹

  • Grove 4-pin connector (RX,TX,VCC,GND)
  • 802.11 b/g/n protocol (2.4GHz)
  • WiFi Direct (P2P), soft-AP
  • Supports three modes: AP, STA and AP+STA coexistence mode
  • Integrated TCP/IP protocol stack
  • LwIP (lightweight IP)
  • Integrated low power 32-bit CPU could be reprogrammed as an application processor
  • Integrated temperature sensor
  • Serial UART Interface
  • Multi-queue QoS management
  • Wake up and transmit packets in < 2ms
  • Metal shielding
  • On-board ceramic antenna
  • Reset switch
tip
More details about Grove modules please refer to [Grove System](https://wiki.seeedstudio.com/Grove_System/)

Hardware Overviewโ€‹

Here is block diagram of Grove - UART WiF module which consists of following parts.

enter image description here

  • Grove - Used to connect to a processor through socket on a base board such as a Seeeduino or Grove Base Shield.
  • WiFi antenna - Antenna for ESP8266(Module model)
  • Button - With multi-functions
    • Reset - Press down and release quickly.
    • Set ESP8266(Module model) into UART boot mode - Press and hold button until centred red LED indicator light on.
  • Led Indicator - Used to indicate working status and for operations by user.
    • Left - a blue LED indicator - Controlled by user through command "AT+LEDON" and "AT+LEDOFF".
    • Middle - a red LED indicator - light on while Wifi connected or go into UART boot mode
    • Right - a green LED indicator - light on while power on.

Specificationsโ€‹

  • Input voltage: 3V / 5V
  • Baud Rate: 115200
  • Based on ESP8266 ESP-06 SoC
  • AT Firmware: esp_iot_sdk_v1.1.0 + Seeed modifications:
    • 2x additional AT commands to control blue Link LED.
    • Register red WiFi LED to the ESP8266 wifi state LED.
  • AT command set
  • SDIO 1.1/2.0, SPI, UART
  • Five power states: OFF, DEEP_SLEEP, SLEEP, WAKEUP and ON.
  • Standby power consumption of < 1.0mW (DTIM=3)
  • Integrated TR switch, balun, LNA, power amplifier and matching network
  • Integrated PLLs, regulators, DCXO and power management units
  • +19.5dBm output power in 802.11b mode
  • Power down leakage current of <10uA
  • Hardware accelerators for CCMP (CBC-MAC, counter mode), TKIP (MIC, RC4), WAPI (SMS4), WEP (RC4), CRC
  • WPA/WPA2 PSK, and WPS driver
  • A-MPDU & A-MSDU aggregation & 0.4ms guard interval
  • Dimensions: 25.43mm x 20.35mm

Ultra-low power technology

The ESP8266 was designed to achieve very low energy consumption with patented power management technology that reduces non-essential functions and regulates sleep patterns. There are five power states:

  • OFF
  • DEEP_SLEEP - the real-time clock runs but all other parts of the chip are closed
  • SLEEP - consumes less than 12uA with only real-time clock and watchdog running. The chip will wake on MAC, host, RTC or external interrupt.
  • WAKEUP - the system is changing from a sleep to on state. Crystal oscillator and PLL are enabled.
  • ON - consumes less than 1.0mW (DTIM = 3) or 0.5mW (DTIM = 10).

The Real-time clock can be programmed to wake the ESP8266 within a specified period of time.

The higher the DTIM period, the longer the device may sleep and therefore the more power the device may potentially save.

To meet the power requirements of mobile applications and wearable electronics, to reduce the overall power consumption, the PA output power can be customised in the firmware.

Application Ideasโ€‹

  • Home automation
  • Sensor networks
  • Mesh networking
  • Wearable electronics
  • Baby monitor
  • Network camera
  • Industrial wireless control
  • WiFi beacons
  • Smart power plug
  • Location-aware applications

Getting Startedโ€‹

After this section, you can make Grove - UART WiFi run with only few steps.

Play With Arduinoโ€‹

note
If this is the first time you work with Arduino, we strongly recommend you to see [Getting Started with Arduino](https://wiki.seeedstudio.com/Getting_Started_with_Arduino/) before the start.

Materials requiredโ€‹

Seeeduino LiteGrove-OLEDGrove-UART Wifi
enter image description hereenter image description here
Get One NowGet One NowGet One Now
note
**1** Please plug the USB cable gently, otherwise you may damage the port. Please use the USB cable with 4 wires inside, the 2 wires cable can't transfer data. If you are not sure about the wire you have, you can click [here](https://www.seeedstudio.com/Micro-USB-Cable-48cm-p-1475.html) to buy

**2** Each Grove module comes with a Grove cable when you buy. In case you lose the Grove cable, you can click [here](https://www.seeedstudio.com/Grove-Universal-4-Pin-Buckled-20cm-Cable-%285-PCs-pack%29-p-936.html) to buy

Hardwareโ€‹

  • Step 1. Connect Grove-UART Wifi to port SERIAL of Seeeduino Lite.

  • Step 2. Connect Grove-OLED to port I2C of Seeeduino Lite.

  • Step 3. Connect Seeeduino Lite to PC via a Micro-USB cable.

Softwareโ€‹

// test grove - uart wifi
// scan ap and display on Grove - OLED 0.96'
// Loovee @ 2015-7-28

#include <Wire.h>
#include <SeeedOLED.h>

char ap_buf[30][16];
int ap_cnt = 0;

void setup()
{
Serial1.begin(115200);

delay(3000);
Wire.begin();
SeeedOled.init(); // initialze SEEED OLED display

SeeedOled.clearDisplay(); // clear the screen and set start position to top left corner
SeeedOled.setNormalDisplay(); // Set display to normal mode (i.e non-inverse mode)
SeeedOled.setPageMode(); // Set addressing mode to Page Mode

}


void loop()
{
ap_cnt = 0;
SeeedOled.clearDisplay();
SeeedOled.setTextXY(3,0);
SeeedOled.putString("Wifi Scan...");

cmd_send("AT+CWLAP");
wait_result();

display_ap();
delay(5000);
}

// send command
void cmd_send(char *cmd)
{
if(NULL == cmd)return;
Serial1.println(cmd);
}


// wait result of ap scan
// +CWLAP:(3,"360WiFi-UZ",-81,"08:57:00:01:61:ec",1)
void wait_result()
{
while(1)
{
LOOP1:
char c1=0;
if(Serial1.available()>=2)
{
c1 = Serial1.read();
if(c1 == 'O' && 'K' == Serial1.read())return; // OK means over
}

if('('==c1)
{
while(Serial1.available()<3);
Serial1.read();
Serial1.read();
Serial1.read();

int d = 0;
while(1)
{
if(Serial1.available() && '"' == Serial1.read()); // find "
{
while(1)
{
if(Serial1.available())
{
char c = Serial1.read();
ap_buf[ap_cnt][d++] = c;
if(c == '"' || d==16)
{
ap_buf[ap_cnt][d-1] = '\0';
ap_cnt++;
goto LOOP1;
}
}
}
}
}
}
}
}

// display
void display_ap()
{
char strtmp[16];
sprintf(strtmp, "get %d ap", ap_cnt);

SeeedOled.clearDisplay(); // clear
SeeedOled.setTextXY(3,3); // Set the cursor to Xth Page, Yth Column
SeeedOled.putString(strtmp); // Print the String

delay(2000);

int cnt = ap_cnt;
int offset = 0;
while(1)
{
SeeedOled.clearDisplay();
if(cnt>=8)
{
for(int i=0; i<8; i++)
{
SeeedOled.setTextXY(i,0); // Set the cursor to Xth Page, Yth Column
SeeedOled.putString(ap_buf[8*offset+i]); // Print the String
}
cnt-=8;
offset++;
}
else
{
for(int i=0; i<cnt; i++)
{
SeeedOled.setTextXY(i,0); // Set the cursor to Xth Page, Yth Column
SeeedOled.putString(ap_buf[8*offset+i]); // Print the String
}

return;
}

delay(2000);
}
}

  • Step 4. Upload the demo. If you do not know how to upload the code, please check How to upload code.

Then you will see the OLED show the wifi AP around you.

enter image description here

Firmware updateโ€‹

danger
    This firmware only support V1, if you burn this firmware into the Grove UART WIFI V2, it will brick your module.

Our module board got a firmware burned into it for factory settings, you can burn other firmware to it if you like. Click here to download source code of factory setting firmware.

Materials requiredโ€‹

  • A USB to serial converter is required for firmware updating, you can choose UartSBee V5 if you don't know where to get one.
  • A Grove-Jump converting cable is required and we also offered for sale.
  • A micro USB cable(type A to type C) is required.

Hardwareโ€‹

Step 1. Connect one end of Grove-Jump converting cable with grove socket on Grove - Uart Wifi and connect other end with UartSBee V5 which shown as following.

Step 2. Then connecting cables like following figure:

enter image description here

Softwareโ€‹

Step 1. Download burning tool and firmware

Step 2. Press and hold button until the red LED indicator turn on which means it is ready to burn firmware.

Step 3. Start executable files in FLASH DOWNLOAD TOOLS files (double click) to make configurations like following steps:

enter image description here

1. Choose desired files from firmware bin file downloaded.

2. Select the SpiAutoSet checkbox.

3. Choose COM port and BAUDRATE.

4. Click START button

  • Progress bar will be displayed in firmware-burning process.

enter image description here

  • Finally, firmware-burning is done.

enter image description here

AT Commandsโ€‹

Quick start of AT Commandsโ€‹

Hardwareโ€‹

The Materials required and Hardware connection are the same as Firmware update

Let's go to software part

Softwareโ€‹

You can use any serial Tools you like, we use Arduino here. And please make sure you have connect the USB to serial converter to your PC.

Step 1. Open the Arduino IDE, Click Tools choose the corresponding Port.

**Step 2.** Then click the button on the upper right corner to open the **Serial Monitor** of Arduino.

Step 3. Set the Serial Monitor as the following picture. Particularly :2- Select Both NL & CR, 3-Set the baud rate to 115200

Step 3. Tap the AT command you need in the command line then click the Send button. You will see the return information as the picture above.

Basic AT Commandsโ€‹

CommandDescription
ATTest AT startup
AT+RSTRestart module
AT+GMRView version info
AT+GSLPEnter deep-sleep mode
ATEEnable/Disable AT commands echo
AT+RESTOREFactory Reset
AT+UARTUART configuration(Deprecated)
AT+UART_CURUART current configuration (Won't save to Flash)
AT+UART_DEFUART default configuration (Save to Flash)
AT+SLEEPSleep mode
AT+RFPOWERSet RF TX Power
AT+RFVDDSet RF TX Power according to VDD33

WiFi AT Commandsโ€‹

CommandDescription
AT+CWMODEWIFI mode (Deprecated)
AT+CWMODE_CURCurrent WIFI mode (Won't save to Flash)
AT+CWMODE_DEFDefault WIFI mode (Save to Flash)
AT+CWJAPConnect to AP (Deprecated)
AT+CWJAP_CURCurrent Connect to AP (Won't save to Flash)
AT+CWJAP_DEFDefault Connect to AP (Save to Flash)
AT+CWLAPLists available APs
AT+CWQAPDisconnect from AP
AT+CWSAPConfigure softAP (Deprecated)
AT+CWSAP_CURConfigure current softAP (Won't save to Flash)
AT+CWSAP_DEFConfigure default softAP (Save to Flash)
AT+CWLIFList stations connected to softAP
AT+CWDHCPEnable/Disable DHCP (Deprecated)
AT+CWDHCP_CURCurrent Enable/Disable DHCP (Won't save to Flash)
AT+CWDHCP_DEFDefault Enable/Disable DHCP (Save to Flash)
AT+CWAUTOCONNConnect to AP automatically when power on
AT+CIPSTAMACSet station mac address (Deprecated)
AT+CIPSTAMAC_CURSet station mac address (Won't save to Flash)
AT+CIPSTAMAC_DEFSet station mac address (Save to Flash)
AT+CIPAPMACSet softAP mac address (Deprecated)
AT+CIPAPMAC_CURSet softAP mac address (Won't save to Flash)
AT+CIPAPMAC_DEFSet softAP mac address (Save to Flash)
AT+CIPSTASet station IP address (Deprecated)
AT+CIPSTA_CURSet station IP address (Won't save to Flash)
AT+CIPSTA_DEFSet station IP address (Save to Flash)
AT+CIPAPSet softAP IP address (Deprecated)
AT+CIPAP_CURSet softAP IP address (Won't save to Flash)
AT+CIPAP_DEFSet softAP IP address (Save to Flash)
AT+CWSTARTSMARTStart SmartConfig
AT+CWSTOPSMARTStop SmartConfig

TCP/IP AT Commandsโ€‹

CommandDescription
AT+CIPSTATUSGet connection status
AT+CIPSTARTEstablish TCP connection or register UDP port
AT+CIPSENDSend data
AT+CIPSENDEXSend data, if or "\0" is met, data will be sent
AT+CIPSENDBUFWrite data into TCP-send-buffer
AT+CIPBUFRESETReset segment ID count
AT+CIPBUFSTATUSCheck status of TCP-send-buffer
AT+CIPCHECKSEQCheck if a specific segment is sent or not
AT+CIPCLOSEClose TCP/UDP connection
AT+CIFSRGet local IP address
AT+CIPMUXSet multiple connections mode
AT+CIPSERVERConfigure as server
AT+CIPMODESet transmission mode
AT+SAVETRANSLINKSave transparent transmission link to Flash
AT+CIPSTOSet timeout when ESP8266 runs as TCP server
AT+CIUPDATEUpgrade firmware through network
AT+PINGPing an IP address or hostname

Seeed AT Commandsโ€‹

CommandDescription
AT+LEDONTurn the blue LINK led on
AT+LEDOFFTurn the blue LINK led off

Schematic Online Viewerโ€‹

Resourcesโ€‹

Tech Supportโ€‹

if you have any technical issue. submit the issue into our forum.


Loading Comments...