What is LoRa Radio Network?

What is LoRa®?

LoRa: Long range, low power wireless platform is the prevailing technology choice for building IoT networks worldwide.

Smart IoT applications have improved the way we interact and are addressing some of the biggest challenges facing cities and communities: climate change, pollution control, early warning of natural disasters, and saving lives. Businesses are benefiting too, through improvements in operations and efficiencies as well as reduction in costs.

This wireless RF technology is being integrated into cars, street lights, manufacturing equipment, home appliances, wearable devices – anything, really. LoRa Technology is making our world a Smart Planet.

Key Features of LoRa Technology and the LoRaWAN Protocol


    Enables GPS-free, low power tracking applications


    Reduces costs three ways: infrastructure investment, operating expenses and end-node sensors


    Improved global interoperability speeds adoption and roll out of LoRaWAN-based networks and IoT applications


    Protocol designed specifically for low power consumption extending battery lifetime up to 20 years


    Single base station provides deep penetration in dense urban/indoor regions, plus connects rural areas up to 30 miles away


    Embedded end-to-end AES128 encryption


    Supports millions of messages per base station, ideal for public network operators serving many customers

LoRa ™ Spread Spectrum Technology. This technology began to appear in the Second World War, the US military is an important wireless security communications technology. Until now, however, spread spectrum technology has been applied as a low-cost solution to sensor networks. Spread spectrum technology has several features as follows
Anti-interference: is one of the main characteristics of spread spectrum communication, because the signal reception needs spread spectrum coding related despreading processing can be obtained, even if the same type of signal interference, the signal is not known in the case of spread codes, Spread spectrum coding between the different correlation, interference also does not work. Because of the strong anti-interference spread spectrum technology, the US military in the Gulf War, etc. widely used in the spread spectrum technology to connect wireless communications distributed in different regions of the network.
Covert good: because the signal is extended in a wide band, the power per unit bandwidth is very small, that signal power spectral density is very low, the signal submerged in white noise among the others difficult to find the existence of the signal, plus I do not know Frequency coding, it is difficult to pick up useful signals, and very low power spectral density, and rarely constitute interference for other telecommunications equipment.

LoRa technology products can be used in the United States, the European Union, China and Japan regulatory agencies within the limits set to work, the suburb of the data transmission distance to 15 km (9 miles), urban-intensive areas of data transmission distance increased to 2-5 Km (3 miles) away.

LoRa is another feature of low power consumption, the most obvious benefits for the Internet of Things device that can extend the battery life for the future may be spread throughout the city in the sensor is undoubtedly a great gospel, is expected to reduce maintenance costs. At present, the majority of meter reading, safety or industrial automation systems deployed in the market are within 1 to 2 km (less than 1.25 miles) of data transmission in the suburbs. The use of LoRa ™ technology eliminates the need for repeaters with these applications, greatly simplifying system design and reducing overall deployment costs. The rapid development of the Internet of Things / machine-to-machine market offers significant opportunities for the development of the SX127x using LoRa ™ technology, according to industry analysts’ projections for a total of 50 billion nodes by 2020. The Internet of things / machine-to-machine market is in urgent need of improving its physical layer to achieve longer transmission distances, battery low-power operation, and low-cost bulk deployments. The LoRa ™ is not only an ideal solution to meet these needs, but also a great alternative to 2G / 3G GSM in this fast-growing market.

LoRa Architecture

LoRaWAN defines the communication protocol and the system architecture, while LoRa defines the physical layer.

Here is a typical system architecture of a LoRaWAN node.

LoRa Architecture

LoRa Network Architecture

Most of the modern IoT LAN technologies use mesh network architecture. By using mesh network, the system can increases the communication range and cell size of the network. But, nodes in a mesh network has additional responsibility of forwarding messages to other nodes, typically irrelevant to them. This affect the device battery life significantly.

LoRaWAN uses star topology as it increases battery lifetime when long-range connectivity is used.

LoRa Network Architecture

LoRa network consists of several elements.

LoRa Nodes / End Points: LoRa end points are the sensors or application where sensing and control takes place. These nodes are often placed remotely. Examples, sensors, tracking devices, etc.

LoRa Gateways: Unlike cellular communication where mobile devices are associated with the serving base stations, in LoRaWAN nodes are associated with a specific gateway. Instead, any data transmitted by the node is sent to all gateways and each gateway which receives a signal transmits it to a cloud based network server.

Typically the gateways and network servers are connected via some backhaul (cellular, Wi-Fi, ethernet or satellite).

Network Servers: The networks server has all the intelligence. It filters the duplicate packets from different gateways, does security check, send ACKs to the gateways. In the end if a packet is intended for an application server, the network server sends the packet to the specific application server.

Using this type of network where all gateways can send the same packet to the network server, the need of hand-off or handover is removed. This is useful for asset-tracking application where assets move from one location to another.

LoRa Device Class

Like other networks, where end devices can have different capabilities depending on devices classes, end nodes in LoRaWAN network can have different device classes.

Each device class is a trade-off between network downlink communication latency verses battery-life.

Class A Most suitable for battery power sensors

  • Most energy efficient and can have years of battery-life
  • All devices in LoRaWAN network support this device class
  • Downlink available only after sensor transmit something
Class B End-devices with schedule receive slots

  • Open extra receive slots at schedule time.
  • Receives time-synchronized beacon from gateway
Class C End-device with maximal receive slots

  • Continuously open receive window
  • RX is closed only when device is transmitting

LoRaWAN Frequency Bands

LoRaWAN operates in the sub-gigahertz frequency bands and it’s specification varies from region to region because of regulatory requirement.

At the time of writing this tutorial LoRaWAN specifications for Europe and North America were defined. Other regions like China, Korea, Japan and India do not have final specification till now.

LoRa Frequency Bands

LoRaWAN Europe Frequency Band

  • LoRaWAN defines ten channels for Europe. Out of which 8 channels are multi data rate from 250 bps to 5.5 kbps.
  • One channel can operate at higher data rate with a speed of 11 kbps.
  • And, one FSK channel at 50 kbps

The maximum power allowed is +14dBM.

LoRaWAN for North America

LoRaWAN defines 64, 125 kHz channels from 902.3 to 914.9 MHz increments.

There are an additional eight 500 KHz uplink channels in 1.6 MHz increments from 903 MHz to 914 MHz. The eight downlink channels are 500 kHz wide starting from 923.3 MHz to 927.5 MHz.

The maximum output power for North America is +30 dBM.

LoRa Security

Any communication technology dealing with many connected nodes need robust end-to-end security. LoRa achieve this by implementing security at two different layers:

  1. One for the network
  2. One for the application

Network security ensures authenticity of the node in the network and application security ensures operator does not have access to end user’s application data.

LoRa uses AES (Advanced Encryption Standard) security keys.

To achieve the required levels of security for LoRa networks, several layers of encryption have been employed:

  • Unique Network key (EUI64) and ensure security on network level
  • Unique Application key (EUI64) ensure end to end security on application level
  • Device specific key (EUI128)

OSYOO Universal Kit for Arduino – Graphical Programming Tutorials

Graphical Programming Tutorials for Arduino

Tutorials Link
Lesson 1:Introduction of Graphical Programming for Arduino Detailed Tutorial
Lesson 2:An Introduction to Mixly Detailed Tutorial
Lesson 3:Blinking the On-board LED Detailed Tutorial
Lesson 4:Hello World Detailed Tutorial
Lesson 5:Control an LED Detailed Tutorial
Lesson 6:Using a Button Detailed Tutorial
Lesson 7:Eight of Flowing Water Light Detailed Tutorial
Lesson 8:Breathing LED Detailed Tutorial
Lesson 9:RGB LED Detailed Tutorial
Lesson 10:Potentiometer Control LED Detailed Tutorial
Lesson 11:Relay Detailed Tutorial
Lesson 12:One Digit 7-Segment LED Display Detailed Tutorial
Lesson 13:Using 74HC595 with 7 Segment LED Display Detailed Tutorial
Lesson 14:I2C LCD1602 Display Detailed Tutorial
Lesson 15:DHT11 Detailed Tutorial
Lesson 16:Using the DHT11 with I2C 1602 LCD Display Detailed Tutorial
Lesson 17:Using an Active Buzzer Detailed Tutorial
Lesson 18:Ultrasonic Sensor HC-SR04 Detailed Tutorial
Lesson 19:PIR Motion Sensor Detailed Tutorial
Lesson 20:Ultrasonic Range Finder Detailed Tutorial
Lesson 21:Servo Detailed Tutorial
Lesson 22:Sound Detection Sensor Detailed Tutorial
Lesson 23:Photoresistor Detailed Tutorial
Lesson 24:Traffic Light Controller Detailed Tutorial
Lesson 25:Digital Dice Detailed Tutorial
Lesson 26:Use the Push-Button as a Switch Detailed Tutorial
Lesson 27:IR Remote Receiver Module and Controller Detailed Tutorial
Lesson 28:Infrared Remote Control the Lamp Detailed Tutorial
Lesson 29:Acousto-optic Light Control Detailed Tutorial
Lesson 30:IR Track Sensor Detailed Tutorial
Lesson 31:Simple Number counter Detailed Tutorial

OSOYOO Universal Kit for Arduino Packing List


Buy from US Buy from UK Buy from DE Buy from IT Buy from FR Buy from ES Buy from JP

Packing List

Osoyoo UNO x1
LED Pack(6 x Bright White, 6 x Red, 6 x Yellow, 6 x Green) x1
Push Buttons x5
Positive Buzzer x1
Potentiometer(10kilohm adjustable resistor) x3
Photoresistor(light sensor) x3
TMP36 x1
Tilt sensor x1
Infrared Remote Controller and Receiver(VS1838B) x1
1-digit 7 Segment LED Display(Common cathode) x1
4-digit 7 Segment LED Display(Common cathode) x1
Alphanumeric I2C LiquidCrystal Display(16×2 LCD ) x1
Stepper Motor+Bridge x1
SG90 Micro Servo Motor x1
Resistors Package (20 x 200ohm, 20 x 1Kohm, 20 x 10Kohm, 5 x 1Mohm) x1
Jumper Wires Pack(M/M Jumper x 20,F/F Jumper x 20, M/F Jumper x 20) x1
Full Size Breadboard x1
A to B USB Cable x1
Capacitors (100nF x 5, 10nF x 5)
74HC595 x 2
555 Timer IC
2-Channel Relay Module
PIR Motion Sensor
Sound Detection Sensor
Ultrasonic Sensor HC-SR04
DHT11 Sensor
8×8 LED Matrix
Battery Clip
Acrylic test stand
Phillips screwdriver

1 Channel Relay Module Board


0.1 seconds (min) ~999 min (max) continuously adjustable

With transparent box, safe and reliable, beautiful and generous!


1. Wide Voltage Supply (6~30V), support Micro USB 5.0V power supply, very convenient to use;
2. Clear and simple interface, powerful, easy to understand, almost meet all your needs;
3.There is a key emergent stop function (STOP), with reverse polarity protection;
4. There’s a sleep mode, enabling, no operation within 5 minutes, automatically turn off the monitor;
5. Can set different OP, CL, LOP parameters, these parameters are independent of each other and seperately saved;
6. All settings automatically saved when power lost.

Working Mode:

P1 Mode: After the signal is triggered, the relay is switched on OP Time, then disconnected; during OP Time, do the following:
P1.1 Invalid trigger again;
P1.2 Signal trigger again restart time;
P1.3 Signal trigger again reset, the relay is switched off, and the timer is stopped;

P-2 The trigger signal is given, after the relay disconnects CL time, switched on OP time, after the timing is completed, disconnect the relay;

P3.1 The trigger signal is given, after the relay switched on OP time, the relay disconnects CL time, then circulates the above actions. The signal is given again within the cycle, the relay disconnects and stops timing; The number of cycles (LOP) can be set;

P3.2 There is no need to trigger the signal after power on. The relay switched on OP time, and the relay disconnects CL time, circulates the above actions. The number of cycles (LOP) can be set;

P-4 Signal Holding Function — If there is a trigger signal, timing reset, the relay remains on; When the signal disappears, the timing OP disconnects the relay; Timing period, again signal, timing reset;

Product Parameters:

1: Operating voltage: 6–30V, support microUSB 5.0V power supply

3: Output capability: You can control the DC 30VDC 5A or 220VAC 5A device.

4: Quiescent Current: 20mA. Operating Current: 50mA

5: Life: more than 10 million times. Working temperature: -40-85 ℃. Size: 6.2*3.8*1.7cm.

6: With opto-coupler isolation, enhanced anti-jamming capability, industrial grade board.

Special Note: The relay outputs are passive contact, just a switch.

Timing Range:

0.1 seconds (min) ~999 min (max) continuously adjustable

How to select the timing range?

After setting the parameter value in the mode selection interface, press the STOP button to select the timing range:

XXX. Decimal point in single digit, the time limit: 1 second ~999 seconds

XX.X Decimal point in tens digit, the time limit: 0.1 seconds ~99.9 seconds

X.X.X. Decimal point all bright, time range: 1 minutes ~999 minutes

For example, if you want to set the OP to 3.2 seconds, then move the decimal point to ten digits, and the digital tube displays 03.2

Parameter Description:

OP on time, CL off time, LOP cycle number (1—999 times, “—” stands for infinite loop)

These parameters are independent of each other, but each mode shares these parameters. For example, when the on-time OP is set to 5 seconds in P1.1, the user wants to switch to the P1.2 mode, then enter the P1.2 to set the corresponding parameters, OP also will be 5 seconds;

Pressing the SET button on the main interface (display 000) will display OP (CL, LOP) and the corresponding time XXX;

If there is only OP (such as mode P1.1, P1.2, P1.3) time in the mode, then short press SET button will only display OP and corresponding time;

If there are OP, CL, LOP in the mode (for example, mode P3.1, P3.2), short press SET button will display OP and corresponding time, CL and corresponding time, LOP and corresponding times;

After setting the mode, you can easily view the parameters set in the current mode by pressing the SET button on the main interface, which is very convenient!

How to set parameters?

1. First determine the operating mode of the relay;

2. According to the working mode of the relay, in the main interface (when the module is powered on, it will flash the current working mode (default P1.1 mode), then enter the main interface), press and hold the SET button for 2 seconds and then release, enter the mode selection interface, select the mode to be set (P1.1~P-4) by short pressing the UP and DOWN buttons;

3. After selecting the mode to be set (for example, P3.2), press the SET button to set the corresponding parameter. At this time, the parameter to be set will flash (OP on time, CL off time, LOP cycle number (“- – “represents an infinite loop”), adjust the parameter value through UP, DOWN, support long press (rapid increase or decrease) and short press (increase or decrease 1 unit); after setting the parameter value, press the STOP button shortly to select the decimal point position, select the timing range (corresponding time 0.1 seconds ~ 999 minutes); short press the SET button to set the next parameter of the current mode, the process is the same as above;

4. After setting the parameters of the selected mode, press and hold the SET button for 2 seconds to release, the currently set mode will flash, then return to the main interface, setting the parameters successfully.

Main interface:  “000” (no decimal point) is displayed when the relay is not working. The relay has a decimal point under working condition, which is very clear!

Mode selection interface: Long press SET button to enter, after setting is completed, long press SET button to exit, return to the main interface

STOP button function extension:

Relay enable mode:

1. ON: The relay is allowed to conduct during the OP conduction time;

2. OFF: The relay is prohibited from being turned on and is always off.

Short press the STOP button on the main interface to switch between ON and OFF. The current state will flash and then return to the main interface. (This function is the emergency stop function, one button to open and close the relay)

Sleep mode:

1.C-P sleep mode: within five minutes, without any operation, the digital tube automatically turns off the display, and the program runs normally;

2.O-d normal mode: the digital tube is always on display;

Press and hold the STOP button for 2 seconds and then release it to switch between C-P and O-d. The current state will flash and return to the main interface.

Arduino lesson – VL53L0X Time-of-Flight Distance Sensor

This sensor is a carrier/breakout board for ST’s VL53L0X laser-ranging sensor, which measures the range to a target object up to 2 m away. The VL53L0X uses time-of-flight measurements of infrared pulses for ranging, allowing it to give accurate results independent of the target’s color and surface. Distance measurements can be read through a digital I²C interface. The board has a 2.8 V linear regulator and integrated level-shifters that allow it to work over an input voltage range of 2.6 V to 5.5 V, and the 0.1″ pin spacing makes it easy to use with standard solderless breadboards and 0.1″ perfboards.


Time of Flight Distance Sensor-VL53L0X is a high speed, high accurary and long range distance sensor based on VL53L0X.

The VL53L0X is a new generation Time-of-Flight (ToF) laser-ranging module housed in the smallest package on the market today, providing accurate distance measurement whatever the target reflectances unlike conventional technologies. It can measure absolute distances up to 2m, setting a new benchmark in ranging performance levels, opening the door to various new applications.

The VL53L0X integrates a leading-edge SPAD array (Single Photon Avalanche Diodes) and embeds ST’s second generation FlightSenseTM patented technology.

The VL53L0X’s 940 nm VCSEL emitter (VerticalCavity Surface-Emitting Laser), is totally invisible to the human eye, coupled with internal physical infrared filters, it enables longer ranging distances, higher immunity to ambient light, and better robustness to cover glass optical crosstalk.

Hardware Overview

First let’s check out some of the characteristics of the VL53L1X sensor we’re dealing with, so we know what to expect out of the board.

Characteristic Range
Operating Voltage 2.6V-3.5V
Power Consumption 20 mW @10Hz
Measurement Range ~40mm to 4,000mm
Resolution +/-1mm
Light Source Class 1 940nm VCSEL
I2C Address 0x29
Field of View 15° – 27°
Max Read Rate 50Hz



  • Dimensions: 0.5″ × 0.7″ × 0.085″ (13 mm × 18 mm × 2 mm)
  • Weight without header pins: 0.5 g (0.02 oz)
  • Operating voltage: 2.6 V to 5.5 V
  • Supply current: 10 mA (typical average during active ranging)
    • Varies with configuration, target, and environment. Peak current can reach 40 mA.
  • Output format (I²C): 16-bit distance reading (in millimeters)
  • Distance measuring range: up to 2 m (6.6 ft); see the graph at the right for typical ranging performance.
    • Effective range depends on configuration, target, and environment.
    • The datasheet does not specify a minimum range, but in our experience, the effective limit is about 3 cm.


PIN Description
VDD Regulated 2.8 V output. Almost 150 mA is available to power external components. (If you want to bypass the internal regulator, you can instead use this pin as a 2.8 V input with VIN disconnected.)
VIN This is the main 2.6 V to 5.5 V power supply connection. The SCL and SDA level shifters pull the I²C lines high to this level.
GND The ground (0 V) connection for your power supply. Your I²C control source must also share a common ground with this board.
SDA Level-shifted I²C data line: HIGH is VIN, LOW is 0 V
SCL Level-shifted I²C clock line: HIGH is VIN, LOW is 0 V
XSHUT This pin is an active-low shutdown input; the board pulls it up to VDD to enable the sensor by default. Driving this pin low puts the sensor into hardware standby. This input is not level-shifted.
GPIO1 Programmable interrupt output (VDD logic level). This output is not level-shifted.


Schematic diagram

The above schematic shows the additional components the carrier board incorporates to make the VL53L0 easier to use, including the voltage regulator that allows the board to be powered from a 2.6 V to 5.5 V supply and the level-shifter circuit that allows for I²C communication at the same logic voltage level as VIN. This schematic is also available as a downloadable PDF (110k pdf).


  • User detection for personal computers/laptops/tablets and IoT (energy saving)
  • Robotics (obstacle detection)
  • White goods (hand detection in automatic faucets, soap dispensers etc.)
  • 1D gesture recognition.
  • Laser assisted autofocus. Enhances and speeds up camera autofocus system performance, especially in difficult scenes (low light levels, low contrast) or fast moving video mode.

Getting started with VL53L0X

in this tutorial we are going to see how to interface the VL53L0X sensor with arduino. The VL53L0X is a I2C sensor. That means it uses the two I2C data/clock wires available on most microcontrollers, and can share those pins with other sensors as long as they don’t have an address collision.The VL53L0X is a Time of Flight distance sensor like no other you’ve used! The sensor contains a very tiny invisible laser source, and a matching sensor. let’s start our tutorial

Step1: Hardware required

  • Arduino Board
  • VL53L0x module
  • jumper wires

Step2: Connecting the Hardware

  • Connect Vin to the power supply, 3-5V is fine. Use the same voltage that the microcontroller logic is based off of. For most Arduinos, that is 5V
  • Connect GND to common power/data ground
  • Connect the SCL pin to the I2C clock SCL pin on your Arduino. On an UNO & ‘328 based Arduino, this is also known as A5, on a Mega it is also known as digital 21 and on a Leonardo/Micro, digital 3
  • Connect the SDA pin to the I2C data SDA pin on your Arduino. On an UNO & ‘328 based Arduino, this is also known as A4, on a Mega it is also known as digital 20 and on a Leonardo/Micro, digital 2

As shown below

Download Adafruit_VL53L0X

To begin reading sensor data, you will need to install theAdafruit_VL53L0X Library.

The easiest way to do that is to open up the Manage Libraries…menu in the Arduino IDE


Then search for Adafruit VL53L0X and click Install


We also have a great tutorial on Arduino library installation at:

Load Demo

Open up File->Examples->Adafruit_VL53L0X->vl53l0x and upload to your Arduino wired up to the sensor


Thats it! Now open up the serial terminal window at 115200 speed to begin the test.


Move your hand up and down to read the sensor data. Note that when nothing is detected, it will say the reading is out of range

Don’t forget to remove the protective plastic cover from the sensor before using!

Connecting Multiple Sensors

I2C only allows one address-per-device so you have to make sure each I2C device has a unique address. The default address for the VL53L0X is 0x29 but you can change this in software.

To set the new address you can do it one of two ways. During initialization, instead of calling lox.begin(), call lox.begin(0x30)to set the address to 0x30. Or you can, later, call lox.setAddress(0x30) at any time.

The good news is its easy to change, the annoying part is each other sensor has to be in shutdown. You can shutdown each sensor by wiring up to the XSHUT pin to a microcontroller pin. Then perform something like this pseudo-code:

  1. Reset all sensors by setting all of their XSHUT pins low for delay(10), then set all XSHUT high to bring out of reset
  2. Keep sensor #1 awake by keeping XSHUT pin high
  3. Put all other sensors into shutdown by pulling XSHUT pins low
  4. Initialize sensor #1 with lox.begin(new_i2c_address) Pick any number but 0x29 and it must be under 0x7F. Going with 0x30 to 0x3F is probably OK.
  5. Keep sensor #1 awake, and now bring sensor #2 out of reset by setting its XSHUT pin high.
  6. Initialize sensor #2 with lox.begin(new_i2c_address) Pick any number but 0x29 and whatever you set the first sensor to
  7. Repeat for each sensor, turning each one on, setting a unique address.

Note you must do this every time you turn on the power, the addresses are not permanent!



有前面第一课安装及L298电机驱动板编程调试,相信大家对我们的智能小车有了更深的理解。在上一课的基础上,我们代领大家 学习如何用红外遥控小车,让小车前进、后退、左右转以及停止等功能。


Arduino UNO
Motor with wires
L298N MOTOR driver module
Box for 18650 3.7V battery+
DC power connector
voltage meter
Jumper wires(male-male,male-female,female-female)

3 接线



红外接收模块与Arduino UNO链接请参考下图

4 软件

安装好红外接收模块,按照上图接好线后,就可以烧录软件到Arduino UNO中进行测试了。


5 测试







How to burn the An-Thinker AT Command firmware for the ESP WiFi shield


In this projct, we will show how to burn the An-Thinker AT Command firmware for the ESP13 WiFi shield. To complete the next operation, we need to do the following preparations:

Hardware Preparations:

  • ESP13 WiFi Shield x 1
  • USB to TTL adapter x 1(We use the CP1202 here) or Arduino UNO board
  • Computer x 1
  • Some Jumpers

Software Preparations:

Before install firmware, you need download following software first:

Unzip above files into c:\flash_download_tools_v3.6.3 folder.


Overhere, we use the CP1202 USB to TTL adapter. There are two kinds of voltage modes,you can use this addpter to connect the ESP WiFi Shield to computer as follows:

Option 1)


  • Do not connect the ESP13 WiFi Shield to Arduino,connect the shield with the adapter directly
  • Connect the adapter to computer

Option 2) 


  • Hit the two dialing switches on the upper right to “ON” position
  • Do not connect the ESP13 WiFi Shield to Arduino,connect the shield with the adapter directly
  • Connect the adapter to computer

Option 3)
If you don’t have USB to TTL adapter , you can use Arduino to connect ESP13 wifi Shield and burn firmware

Wire Connection:

Hit the two dialing switches on the upper right to “1,2” position
Arduino D0(RX) to ESP13 shield TX0
Arduino D0(TX) to ESP13 shield RX0
Arduino 3.3V to ESP13 shield 3.3V
Arduino GND to ESP13 shield G
Arduino Reset to Arduino GND


After completed above operations, open C:\FLASH_DOWNLOAD_TOOLS_V3.6.3 folder and run ESPFlashDownloadTool_v3.6.3.exe program file, now you can config the software settings as per following steps:

Choose the “ESP8266 DownloadTool” for this project.

Set the field values as per following instruction:

  • Ai-Thinker_ESP8266_DOUT_8Mbit_v1.5.4.1-a_20171130.bin ?? 0x00
  • CrystalFreq: 26M
  • SPI SPEED: 40MHz
  • FLASH SIZE:  8Mbit
  • From the COM drop-down menu select the COM port which your adapter is connected to.

Burning Firmware

  1. Make sure your software settings are correct
  2. Make sure the connections are completed
  3. Dial the SW1 switches to 1,2 Position
  4. Click the “Start” button on the ESP8266 DownloadTool
  5. Hold the “Key” button down
  6. Press the “RST” button for once
  7. Release the “Key” button,

As the below photo, you can see “FINISH” on the software, it means you have burned the Ai-Thinker AT Command firmware successfully.



When we have burned the firmware, if the ESP WiFi Shield restarts?again and again, or the softAP?can’t be built up, please click the “ERASE” button to erase the flash, then repeat the above steps.

{:en}OSOYOO 7inch HDMI Touchscreen Keyboard-Matchbox Keyboard{:}{:ja}OSOYOO 7inch HDMI タッチスクリーン ソフトキーボードのインストール{:}


So you’ve got a shiny new touchscreen for your raspberry pi but are a little miffed that you still need to plug a keyboard in to be able to type… Well after this tutorial there will be no need!

We will assume you have installed Raspbian and that you have booted to the GUI (or run the command startx)

All the commands listed are run in Terminal. Make sure you have an internet connection!

Start off by making sure you Raspberry Pi is up-to-date

sudo apt-get update
sudo apt-get upgrade

Now simply install the matchbox-keyboard package

sudo apt-get install matchbox-keyboard

reboot Your PI, using the command:

sudo reboot

To enable up the keyboard, simply go MENU >> ACCESSORIES >> KEYBOARD

Job Done!

Now, you might want to create a shortcut on your desktop to make it nice and easy to start up the keyboard when you need it. To do this start by creating a file on the desktop

cd Desktop
nano keyboard.sh

Now write the following code


Press Ctrl+X and then Y to close and save the file

Now we need to make the file we just created executable,using the command:

chmod +x keyboard.sh

That’s it, we now have a shortcut on the desktop that we can double click to load up the on screen keyboard.

Or You can download the keyboard.sh file directly to your desktop.Change some parameters,watch the VIDEO for details.



準備工作:Raspbian(with desktop)を装着ずみです。

下記のコマンドはすべてTerminalで実行されます。 インターネットに接続していることを確認してください!


sudo apt-get update
sudo apt-get upgrade


sudo apt-get install matchbox-keyboard


sudo reboot

ラズパイのデスクトップでMENU >> ACCESSORIES >> KEYBOARDをクリックして、ソフトキーボードを起動する



cd Desktop
nano keyboard.sh





chmod +x keyboard.sh


或いは keyboard.shファイルを直接にラズパイのデスクトップにダウンロードして、 一部パラメータを変更してください。詳しくは動画 をご覧ください。


How to burn the OSOYOO smartcar firmware for the ESP WiFi shield


In this projct, we will show how to burn the OSOYOO smartcar firmware for the ESP13 WiFi shield. To complete the next operation, we need to do the following preparations:

Hardware Preparations:

  • ESP13 WiFi Shield x 1
  • USB to TTL adapter x 1(We use the CP1202 here.)
  • Computer x 1
  • Some Jumpers

Software Preparations:

Before install firmware, you need download following software first:

Unzip above files into c:flash_download_tools_v3.6.3 folder.


Overhere, we use the CP1202 USB to TTL adapter. There are two kinds of voltage modes,you can use this addpter to connect the ESP WiFi Shield to computer as follows:

Use the 3.3 V voltage


  • Do not connect the ESP13 WiFi Shield to Arduino,connect the shield with the adapter directly
  • Connect the adapter to computer

Use the 5 V voltage


  • Hit the two dialing switches on the upper right to “ON” position
  • Do not connect the ESP13 WiFi Shield to Arduino,connect the shield with the adapter directly
  • Connect the adapter to computer


After completed above operations, open C:FLASH_DOWNLOAD_TOOLS_V3.6.3 folder and run ESPFlashDownloadTool_v3.6.3.exe program file, now you can config the software settings as per following steps:

Choose the “ESP8266 DownloadTool” for this project.

Set the field values as per following instruction:

  • smartcar.bin   0x00
  • CrystalFreq:                                         26M
  • SPI SPEED:                                           40MHz
  • SPI MODE:                                           DIO
  • FLASH SIZE:                                       8Mbit
  • From the COM drop-down menu select the COM port which your adapter is connected to.

Burning Firmware

  1. Make sure your software settings are correct
  2. Make sure the connections are completed (Overhere we choose the 5V voltage)
  3. Dial the SW1 switches to 1,2 Position
  4. Hold the “Key” button down
  5. Press the “RST” button for once
  6. Release the “Key” button,
  7. Click the “Start ” button on the ESP8266 DownloadTool

As the below photo, you can see “FINISH” on the software, it means you have burned the smartcar firmware successfully.



When we have burned the firmware, if the ESP WiFi Shield restarts again and again, or the softAP can’t be built up, please click the “ERASE” button to erase the flash, then repeat the above steps.

Rasberry Pi Tank Robot Car Starter Kit Lesson 4: Obstacle Avoidance Auto-driving

In this lesson we will use 3 Ultrasonic sensors to detect front obstacles and guide robot car to drive automatically.

Circuit Connection:
Before starting this project, you need complete hardware installation in Lesson 2 . Make sure the Lesson 2 software test is ok which means your motor installation and wiring to Raspberry Pi are all correct.

Now we can add 3 ultrasonic sensors(distance sensor) in front side. The center sensor should face straight ahead, right sensor face a 30 to 45 degree right of straight ahead direction , left sensor should face 30 to 40 degree left of straight ahead direction. Wiring connection should be as per following graph:

Sensor Pin Pi GPIO(BCM)
Right Sensor TRIG 18
Right Sensor ECHO 23
Center Sensor TRIG 24
Center Sensor ECHO 25
Left Sensor TRIG 16
Left Sensor ECHO 20

Software Installation:
1)Use putty (or ssh in Linux/iOS terminal)  to connect your Raspberry Pi and then type following command:

wget http://osoyoo.com/driver/obstacle.tar.gz

tar -zxvf obstacle.tar.gz

2)Put your robot car onto ground, turn on the car again, now use putty or ssh to connect to Raspberry Pi again. Then type following command in terminal:

cd obstacle

python autodrive.py

You will see your car is automatically moving and avoiding front obstacles. You will see obstacle situation and car action from your Raspberry Pi terminal . The obstacle status is a string. For example 001 means right

Osoyoo V2 Robot Car Lesson 6: Use Wifi to control an IoT Robot Car

Buy from US Buy from UK Buy from DE Buy from IT Buy from FR Buy from ES Buy from JP

In this project we will connect Robot Car to Wifi and Use an APP to control the car through Internet. This is a typical Internet of Things(IoT) Application.

You must complete lesson 1 (assembling the car) before you continue on with this lesson.

Parts and Devices:

Hardware Installation :

Step 1: Install the smart car basic frame work as per Smart Car Lesson 1 . If you have already completed installation in Lesson 1 , please remove all wires on Osoyoo Uno R3 board

Step 2: Insert to Osoyoo Wifi Shield onto your UNO board

Step 3: Connect SG90 servo motor, OSOYOO MODEL X motor driver module and OSOYOO Wifi Shield as following graph:

Step 4: Connect 5pcs tracking sensor modules with OSOYOO wifi shield as below connection diagram (if you remove the wires on tracking sensor modules, you need to remove the screws on copper pillars)

Step 5: Connect ultrasonic module, buzzer module with OSOYOO Wifi shield as below connection diagram

Step 6: Connect E_TX pin to Arduino D5 and E_RX pin to D4 as per following picture

Step 7: Fix the screws on copper pillars to connect upper chassis to lower chassis (if don’t remove screws on copper pillars, please skip this step)

Step 8: After connected above wires, download a test sketch file from L6 test code. After uploading this file to Arduino and turning on your car, it should move forward ,backward, left turn , right turn and then stop. If the car does not move in above mentioned scenario, please check your wiring

Software Installation:

Open-source Arduino
Download Arduino IDE here:
7 zip is a free zip
utility that un-zips zip files
Download 7zip here for free
Osoyoo Wifi Robot APP search “Osoyoo Wifi Robot APP” in
Google Play or Apple Store

Step 1)      APP installation: you need search “Osoyoo Wifi Robot APP” in Google Play or Apple Store, and then install this APP

Step 2) Please download the library zip file from WiFiEsp-master .Open Arduino IDE ->click Sketch ->Include Library ->Add .ZIP library , then load above zip file into Arduino.

Step 3) Arduino Sketch code Installation:
Osoyoo V2 Robot Car can work in two Wifi modes: STA mode and AP mode. The Arduino sketches for these two modes are different. Let’s explain these two modes one by one

A)STA mode
In STA mode, V2 Robot Car will be a client device of your LAN router. You need save the SSID name and password of your LAN router in Arduino sketch.
Once the sketch is running, your router DHCP service will assign an IP address to your robot car and your APP will use this IP address to access your car.

1) Please download STA mode sketch code from v2smartcar-lesson6A . Unzip the file, you will see a folder “v2smartcar-lesson6A”. Open Arduino IDE -> click file -> click Open -> choose code “v2smartcar-lesson6A.ino” in v2smartcar-lesson6A folder, load the code into Arduino

2) You need change the code Line 96 and Line 98 :

char ssid[] = “YOUR_ROUTER_SSID”; // replace this with your router wifi SSID

char pass[] = “YOUR_ROUTER_WIFI_PASSWORD”; // replace with your wifi  password

3) Upload the sketch to Arduino. Finally, click the Serial monitor window in upper right corner of Arduino IDE, you will see following result:

4) In this mode, your will see an IP address which is our LAN IP address assigned by my router. Please write down this IP address and click Setting to set up robot IP address and set this IP address to your APP Setting section (no need change default port 80 in APP).

Now your Robot car is connected to your LAN, you can use Mobile phone under same LAN to control the robot car. If your APP is in WAN, you need to go to your Router Control Panel, forward Port 80 to Robot car LAN IP address, then you can use Router IP to control the car. This feature makes our robot car A REAL INTERNET OF THING device

B)AP mode
Sometimes we do not have a LAN or Wifi Router. In order to control the car, we need to use AP mode.
When working in AP mode, our robot car itself will become a Wifi Hot Spot. Our cell phone can connect to Robot Car as its wifi client. The IP address of Robot is fixed as and It is not connected to WAN.
1) Please download sketch from following link: v2smartcar-lesson6B. Unzip the file, you will see a folder “v2smartcar-lesson6B”. Open Arduino IDE -> click file -> click Open -> choose code “v2smartcar-lesson6B.ino” in v2smartcar-lesson6B folder, load the code into Arduino

2) Open your Arduino Serial monitor, and you will see a similar result as STA mode. A new Wifi SSID “osoyoo_robot” with IP address will show up in the window. This means your Robot car has a Wifi Hot Spot name “osoyoo_robot” , its IP address is

3) Connect your cell phone to “osoyoo_robot” wifi hot_spot, and set IP address as “” to your APP Setting section

Now your Robot car become a Wifi Hot Spot, you can use Mobile phone control the robot car.

Final Testing:

Trun on the car. Now click Setting to set up robot IP address.

In STA mode, you need connect cell phone to the same LAN ssid of your robot car and set IP address same as the Robot IP showed in Arduino Serial Monitor.

In AP mode , you need contact your cell phone to “osoyoo_robot” wifi hot_spot and set IP address as

you can click the < > ^ v direction keys to make the car move. Use || pause key to stop the car movement.

If you click Obstacle key, the car will do obstacle avoidance auto driving similar to  Lesson 5

If you click Tracking key, the car will do link tracking auto driving similar to lesson 4
Note: F1~F6 are further development functions in the future.