SIM800L Flash Firmware

We will flash SIM800H firmware to this module, firmware download link:

We download this firmware:

SIM800L Module Pinout:

Connection: ( Here, I power it with 3.7V lithium battery, you can

power it with DC power supply too)

SIM800L            CP2102                  3.7V battery

VCC                                                          Positive

RST                                                         Negative

TX                             RX

RX                            TX

GND                       GND                      Negative

Note: RST need connect with switch and negative of battery

After connected, the blue LED of the SIM800L will blink fast.

Flash tool download link:

After download, please install flash tool:

Open flash tool, and make setting as below and choose the firmware file :

About the COM port, please check it in your computer’s device manager.

Click Start Download, then press the switch, it will begin to download

It need download several files, and will take a few minutes

When downloading, the TX and USBGND LED of CP2102 serial port module will turn on, LED of SIM800L will turn off.

If you see this message, just click OK

Once click OK, it will show this, that means success.

Remove RST cable and open serial port software, you can send ATI and AT command, then you will see below message:

Reference link:

Firmware download link: (please download SIM800H)


Note: If this firmware can not flash success, you can download other firmware  and try.

Benewake TF-LC02

Benewake TF-LC02 Lidar Ranging Module DC 3-3.6V TTL for Arduino 

Measuring range: 3cm~200cm @ 90% reflectivity
Detection speed: 33msec
Accuracy:土2cm @ (3cm~100cm); ±5% @ (100~200cm)
Storage temperature: -20~85°C
Working temperature: -20~70°C
Size: 20mm* 11.5mm*7.6mm

Light source: VCSEL
Supply voltage: 3~3.6V
Center wavelength: 940nm
Average current: ≤15mA
Eye safety: Class1 (IEC60825- 1:2400)
Power consumption: ≤50mW
Field of view: ±9° (9° on the left and right of the optical central axis; 18° in total)
Communication level: LVTTL (3.3V)

Connector: 1.0mm 6P
Cable Length: 10cm(including connector)


Connection with Arduino UNO:

Arduino code:

#include <SoftwareSerial.h> //软串口头文件

SoftwareSerial Port_Debug(2, 3); //定义软件口名称和PIN2为RX PIN3为TX

u8 cmd[5] = {0x55, 0xAA, 0x81, 0x00, 0xFA}; //获取距离指令

typedef struct {
int distance;
u8 ErrorCode; //TOF错误码请参考使用说明书
boolean receiveComplete;
} TF;
TF Lidar = {0,0,false};

* 通讯协议:
* 2 byte : 帧头 0x55 0xAA
* 1 byte : 功能码 (详细参考使用说明) 例:0x81 获取距离值 单位:mm
* 1 byte : 后面参数的长度
* N byte : 设定参数
* 1 byte : 帧尾 0xFA
* ***************************************
* 例:获取距离值
* Arduino 发送:55 AA 81 00 FA
* TOF模组回复 : 55 AA 81 03 01 55 00 FA
void getLidarData(TF* lidar) {
static char i = 0;
static int rx[8];
if (Serial.available())
rx[i] =;
if (rx[0] != 0x55)
i = 0;
} else if (i == 1 && rx[1] != 0xAA)
i = 0;
} else if (i == 7)
i = 0;
if (rx[7] == 0xFA)
lidar->distance = rx[5] + rx[4] * 256;
lidar->ErrorCode = rx[6];
lidar->receiveComplete = true;
} else

void setup() {
* TOF串口协议:TTL
* 波特率:115200
* 数据位:8
* 停止位:1
* 奇偶校验:无
* 流控:无
Serial.begin(115200); //通过硬件串口来获取实时性要求比较高的雷达数据,软串口容易出现掉帧的情况

void loop() {
if (!Lidar.receiveComplete)
Serial.write(cmd, 5);
} else
//Port_Print_Ascii(&Lidar); // Ascii 打印输出结果
Port_Print_Benewake_9Byte(&Lidar); // 北醒通用9Byte打印
Lidar.receiveComplete = false;
delay(33); //延时33ms,雷达探测速率最快33ms
void Port_Print_Ascii(TF* lidar)
Port_Debug.print(“Dist = “);
Port_Debug.print(“ErrorCode = “);

void Port_Print_Benewake_9Byte(TF* lidar)
u8 i = 0;
u8 CheckSum = 0;
u8 B_9Byte[9];
B_9Byte[0] = 0x59;
B_9Byte[1] = 0x59;
B_9Byte[2] = lidar->distance & 0xFF;
B_9Byte[3] = lidar->distance >> 8;
B_9Byte[4] = 0x00;
B_9Byte[5] = 0x00;
B_9Byte[6] = 0x00;
B_9Byte[7] = 0x00;
CheckSum += B_9Byte[i];
B_9Byte[8] = CheckSum & 0xFF;

void serialEvent() {



Reference link:

BW_TFDS V1.4.0 Download link:

Arduino code link:

Espressif ESP32-C3 works with Arduino

Arduino-Preferences-Additional Boards Manager URLs:
Then click OK

Tools-Board-Boards Manager-ESP32, you need download 2.0.0 version, (any 2.0.0 version is ok)

Connect ESP32-C3 board with Mac or PC

Choose Tools-Board-ESP32 Arduino-ESP32C3 Dev Module
Choose Port


Open Serial Monitor window, then you will see the wifi names

How to set refresh rate for GPS Module

You need install driver and u center first

Windows driver link
Driver name is u-blox GNSS Standard Driver for Windows, v1.2.0.8

 Ublox u center software link

U center user guide link

After open u center, you choose COM port and press F8 to open text console

Then press F9 to open the NEMA setting page:

You click UBX-CFG-RATE(Rates),  you will see the setting area in the right,  in the Measurement Period you can set it to 100ms, then the Measurement Frequency will change to 10.00Hz automatically
At last, you click Send to save the setting

Where to buy:

Any question please email



Driver link:

Video link:

Connection like below, then connect it to the PC USB interface:
You can use 2.54mm Pitch Jumper Cap or DuPont Cable

Install driver: Driver name is Zadig
Options-choose List All Devices

Choose USBasp,  Driver libsubK(v3.0.7.0) , you need click the drop-down menu to choose the correct driver


After install the driver successfully,  you can open device manger and see the device as below:


Open AVRDUDESS and setting as below:
Programmer: Uptanium USBASP
Port: usb
MCU: ATmega8
Flash: choose hex you want to use
Click Detect, then click Go
Please pay attention about the print information in the window


It will show writing …   Reading…, once done it will show avrdude.exe done.  You can check the details as below:

Any question please contact via

DIYmall USBASP Programmer

Burn bootloader Use  USBISP and Arduino UNO via Arduino IDE


Open Arduino IDE, choose board: Arduino uNO, programmer: USBasp, then click Burn Bootloader





User guide link:
Document link:
Driver link:
Youtube link:

Where to buy:

Any question please email

DIYmall AS3935 Lightning Detector Sensor

What you need:
1PCS Arduino UNO
1PCS USB Cable
1PCS AS3935 Light Sensor
6P Female to Male Dupont Cable

AS3935       Arduino UNO
VCC                   5V
GND                  GND
SCL                   A5
SDA                  A4
IRQ                    D5

First you need use IIC.ino to find the IIC address of the AS3935 sensor

Then you need change IIC address in the AE_AS3935DEMO-.ino, upload the code and open the serial monitor, please choose 9600 baud.
In my case, I changed the Line 11 and Line 66 to 0x03

11 #define AS3935_ADRS 0x03 66 Wire.write(0x03);

Below is the result

Code  link

Manual link

Video link

Website Link
Alibaba Link              
Aliexpress link
Amazon link                

Any question please email


DIYmall 0.96’’ OLED works with NodeMCU

What you need:
1PCS 0.96” OLED
4P Female to Female Dupont Cable

0.96” OLED               Nodemcu
VCC                                 3V3
GND                                GND
SCL                                 D1
SDA                                D2

Code download link:

Once download, please choose ssd1306_128X64_i2c in the example, in the code, there are 2 lines you need change as below:

#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)

if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3D for 128×64

Amazon Link

Website Link

Alibaba Link

Tutorial link

ESP8266 0.96 inch OLED Display with Arduino IDE

Any question please email