Ebyte LoRa E220 LLCC68 device for Arduino, esp32 or esp8266: specs and basic use – 1
LoRa or Long Range wireless data telemetry is a technology pioneered by Semtech that operates at a lower frequency than NRF24L01 (433 MHz, 868 MHz, or 916 MHz against 2.4 GHz for the NRF24L01) but at thrice the distance (from 5000m to 11000m).
Here a selection of Ebyte LoRa E220 E220-400T22D 433MHz 5Km - E220-400T30D 433MHz 10Km - E220-900T22D 868MHz 915MHz 5Km - E220-900T30D 868MHz 915MHz 10Km
LLCC68
LoRa Smart Home (LLCC68) is a sub-GHz LoRa® RF Transceiver for medium-range indoor and indoor to outdoor wireless applications. SPI interface. Pin-to-pin compatible with SX1262. SX1261, SX1262, SX1268, and LLCC68 are designed for long battery life with just 4.2 mA of active receive current consumption. The SX1261 can transmit up to +15 dBm, and the SX1262, SX1268, and LLCC68 can transmit up to +22 dBm with highly efficient integrated power amplifiers.
These devices support LoRa modulation for LPWAN use cases and (G)FSK modulation for legacy use cases. The devices are highly configurable to meet different application requirements for consumer use. The device provides LoRa modulation compatible with Semtech transceivers used by the LoRaWAN® specification released by the LoRa Alliance®. The radio is suitable for systems targeting compliance with radio regulations, including but not limited to ETSI EN 300 220, FCC CFR 47 Part 15, China regulatory requirements, and the Japanese ARIB T-108. Continuous frequency coverage from 150MHz to 960MHz allows the support of all major sub-GHz ISM bands worldwide.
Features
- The new LoRa spread spectrum modulation technology developed based on LLCC68, it brings a more extended communication distance and stronger anti-interference ability;
- Support users to set the communication key by themselves, and it cannot be read, which significantly improves the confidentiality of user data;
- Support LBT function, monitor the channel environment noise before sending, which significantly improves the communication success rate of the module in harsh environments;
- Support RSSI signal strength indicator function for evaluating signal quality, improving communication network, and ranging;
- Support air wakeup, that is ultra-low power consumption, suitable for battery-powered applications;
- Support point to point transmission, broadcast transmission, channel sense;
- Support deep sleep, the power consumption of the whole machine is about 5uA in this mode;
- The module has built-in PA+LNA, and the communication distance can reach 5km under ideal conditions;
- The parameters are saved after power-off, and the module will work according to the set parameters after power-on;
- Efficient watchdog design, once an exception occurs, the module will automatically restart and continue to work according to the previous parameter settings;
- Support the bit rate of2.4k~62.5kbps;
- Support 3.0~5.5V power supply, power supply greater than 5V can guarantee the best performance;
- Industrial standard design, supporting long-term use at -40~+85℃;
Comparison
LLCC68 | SX1278-SX1276 | |
---|---|---|
Distance | > 11Km | 8Km |
Rate (LoRa) | 1.76Kbps – 62.5Kbps | 0.3Kbps – 19.2Kbps |
Sleep power consumption | 2µA | 5µA |
Description
Like the little brother e32, the module features the FEC Forward Error Correction algorithm, ensuring its high coding efficiency & good correction performance. In the case of sudden interference, it can automatically correct the interfered data packets, so correspondingly improve the reliability and transmission range. But without FEC, those date packets can only be dropped. And with the rigorous encryption & decryption, data interception becomes pointless.
Support LBT function monitors the channel environment noise before sending, which significantly improves the communication success rate of the module in harsh environments.
It has onboard LoRa spread spectrum technology that helps the communication stability with this long-range anti-interference technology.
And finally, have an essential feature, the RSSI, you can check the signal strength on all messages sent.
Operating and transmission type
These devices have some interesting functions:
Transmission
Transparent transmission
This can be considered like a “Demo mode”. By default, you can send messages to all devices of the same configured address and channel.
Fixed transmission
You can specify an address and a channel to send the message in this transmission type.
You can send a message to a:
- Specified device with a predeterminated Address Low, Address High and Channel.
- Broadcast a message on predeterminated Channel.
Normal mode
Simply send the message.
WOR transmitter mode and WOR receiver
As you can intend, if a device is in WOR transmitter mode, you can “wake” one or more devices in a WOR receiver mode with preamble communication.
Program/sleep mode
With this configuration, you can change the configuration of your device.
Specifications
Here are the specifications for the module:
Main Parameters | Value | Remarks | ||
Min. | Typical | Max | ||
Operating voltage(V) | 3 | 5.0 | 5.5 | ≥5.0 V ensures output power |
Communication level(V) | – | 3.3 | – | For 5V TTL, it may be at risk of burning down |
Operating temperature(℃) | -40 | – | 85 | Industrial design |
Operating frequency(MHz) | 410.125 | 433.125 | 493.125 | Support ISM band |
TX Current(mA) | – | 110 | – | Instant power consumption |
RX current(mA) | – | 16 | – | – |
Sleep current(μA) | – | 2 | – | Software is shut down |
Max Tx power(dBm) | 21.5 | 22.0 | 22.5 | – |
Receiving sensitivity(dBm) | -146 | -147 | -148 | Air data rate is 0.3 kbps |
Air data rate(bps) | 2.4k | 2.4k | 62.5k | Controlled via user’s programming |
Main parameter | Description | Remarks |
Distance for reference | 5km | Test condition:clear and open area, antenna gain: 5dBi,antenna height:2.5m,air data rate: 2.4kbps |
TX length | 200 Byte | Can be configured via command as 32/64/128/200 bytes per packet totransmit |
Buffer | 400 Byte | – |
Modulation | LoRa | New generation LoRa modulation technology |
Communication interface | UART | TTL level |
Package | DIP | – |
Connector | 1*7*2.54mm | – |
Size | 21*36 mm | – |
Antenna | SMA | 50 ohm impedance |
- Communication Interface: UART – 8N1, 8E1, 8O1, Eight kinds of UART baud Rate, from 1200 to 115200bps (Default: 9600)
You must pay attention to communication level that differs from the power supply, the second can receive voltage like 3.3v (esp8266 and esp32) and 5v (Arduino), but the first want a 3.3v, so to connect to an Arduino, you must use a Voltage divider (Voltage divider: calculator and application) to prevent damage to the device.
Pinout
Pin No. | Pin item | Pin direction | Pin application |
---|---|---|---|
1 | M0 | Input(weak pull-up) | Work with M1 & decide the four operating modes. Floating is not allowed. It can be ground. |
2 | M1 | Input(weak pull-up) | Work with M0 & decide the four operating modes. Floating is not allowed; it can be ground. |
3 | RXD | Input | TTL UART inputs connect to external (MCU, PC) TXD output pin. It can be configured as open-drain or pull-up input. |
4 | TXD | Output | TTL UART outputs connect to external RXD (MCU, PC) input pin. Can be configured as open-drain or push-pull output |
5 | AUX | Output | To indicate the module’s working status & wake up the external MCU. During the procedure of self-check initialization, the pin outputs a low level. It can be configured as open-drain output or push-pull output (floating is allowed). |
6 | VCC | Power supply 3V~5.5V DC | |
7 | GND | Ground |
As you can see, you can set various modes via M0 and M1 pins.
Mode | M1 | M0 | Explanation |
---|---|---|---|
Normal | 0 | 0 | UART and wireless channels are open, and transparent transmission is on |
WOR Transmitter | 0 | 1 | WOR Transmitter |
WOR Receiver | 1 | 0 | WOR Receiver (Supports wake up over air) |
Deep sleep mode | 1 | 1 | The module goes to sleep (automatically wake up when configuring parameters) |
Normal mode connection
For the following simple test, we are going to use Normal mode.
Connecting Wemos D1 mini (esp8266) for a basic usage
esp8266 has the advantage of having the same voltage of communication interface, so the connection schema is simpler than Arduino.
It’s essential to add a pull-up resistor (4,7Kohm) to get good stability.
E220 | WeMos |
---|---|
M0 | GND (Set normal mode) |
M1 | GND (Set normal mode) |
RX | PIN D2 (PullUP 4,7KΩ) |
TX | PIN D3 (PullUP 4,7KΩ) |
AUX | Not connected |
VCC | 3.3v-5v |
GND | GND |
Or better use the shield.
You can get more info on the relative article (this shield is suitable for E32, E22, and E220).
Connecting esp32 for a basic usage
As WeMos, esp32 logic works at 3.3v, but It has 3 HardwareSerial so we will use Serial2.
E220 | esp32 |
---|---|
M0 | GND (Set normal mode) |
M1 | GND (Set normal mode) |
RX | TX2 (PullUP 4,7KΩ) |
TX | RX2 (PullUP 4,7KΩ) |
AUX | Not connected |
VCC | 3.3v-5v |
GND | GND |
Or also, for this, you can use the relative shield.
You can get more info on the relative article (this shield is suitable for E32, E22, and E220).
Ebyte LoRa E32 device for Arduino, esp32 or esp8266: WOR (wake on radio) and new ESP32 shield
Connecting Arduino for a basic usage
Arduino’s working voltage is 5v, so we need to add a voltage divider on the RX pin of the LoRa module to prevent damage; you can get more information here. Voltage divider: calculator and application.
You can use a 2Kohm resistor to GND and 1Kohm from the signal, then put it together on RX.
E220 | Arduino |
---|---|
M0 | GND (Set normal mode) |
M1 | GND (Set normal mode) |
RX | PIN D2 (PullUP 4,7KΩ & Voltage divider) |
TX | PIN D3 (PullUP 4,7KΩ) |
AUX | Not connected |
VCC | 3.3v-5v |
GND | GND |
Or the relative shield.
You can get more info on the relative article (this shield is suitable for E32, E22, and E220).
Arduino MKR WiFi 1010
M0 | GND (Set normal mode) |
M1 | GND (Set normal mode) |
TX | PIN 14 Tx (PullUP 4,7KΩ) |
RX | PIN 13 Rx (PullUP 4,7KΩ) |
AUX | Not connected |
VCC | 5V |
GND | GND |
Simple communication sketch
If you put to 0 M1 and M0 pin you enter in “Normal” mode, you can receive and transmit all the data from device A to B; this modality is defined as “Transparent transmission”.
You can use two microcontrollers of your choice.
At the start, send a message, and if you write on a serial from one device, the text is transferred to the other device. You can use 2 Arduinos or 2 Wemos or one and one as you prefer.
Arduino sketch
/*
* LoRa E220
* Start device or reset to send a message
* by Renzo Mischianti <https://mischianti.org>
* https://mischianti.org/category/my-libraries/lora-e220-llcc68-devices/
*
* E220 ----- Arduino UNO
* M0 ----- GND
* M1 ----- GND
* TX ----- PIN 2 (PullUP)
* RX ----- PIN 3 (PullUP & Voltage divider)
* AUX ----- Not connected
* VCC ----- 3.3v/5v
* GND ----- GND
*
*/
#include "Arduino.h"
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); // Arduino RX --> e220 TX - Arduino TX --> e220 RX
void setup() {
Serial.begin(9600);
delay(500);
Serial.println("Hi, I'm going to send message!");
mySerial.begin(9600);
mySerial.println("Hello, world?");
}
void loop() {
if (mySerial.available()) {
Serial.write(mySerial.read());
}
if (Serial.available()) {
mySerial.write(Serial.read());
}
}
Wemos D1 mini sketch
/*
* LoRa E220
* Start device or reset to send a message
* by Renzo Mischianti <https://mischianti.org>
* https://mischianti.org/category/my-libraries/lora-e220-llcc68-devices/
*
* E220 ----- Wemos D1 mini
* M0 ----- GND
* M1 ----- GND
* TX ----- PIN D2 (PullUP)
* RX ----- PIN D3 (PullUP)
* AUX ----- Not connected
* VCC ----- 3.3v/5v
* GND ----- GND
*
*/
#include "Arduino.h"
#include <SoftwareSerial.h>
SoftwareSerial mySerial(D2, D3); // WeMos RX --> e220 TX - WeMos TX --> e220 RX
void setup() {
Serial.begin(9600);
delay(500);
Serial.println("Hi, I'm going to send message!");
mySerial.begin(9600);
mySerial.println("Hello, world?");
}
void loop() {
if (mySerial.available()) {
Serial.write(mySerial.read());
}
if (Serial.available()) {
mySerial.write(Serial.read());
}
}
esp32 sketch
/*
* LoRa E220
* Start device or reset to send a message
* by Renzo Mischianti <https://mischianti.org>
* https://mischianti.org/category/my-libraries/lora-e220-llcc68-devices/
*
* E220 ----- esp32
* M0 ----- GND
* M1 ----- GND
* TX ----- RX2 (PullUP)
* RX ----- TX2 (PullUP)
* AUX ----- Not connected
* VCC ----- 3.3v/5v
* GND ----- GND
*
*/
#include "Arduino.h"
void setup() {
Serial.begin(9600);
delay(500);
Serial.println("Hi, I'm going to send message!");
Serial2.begin(9600);
Serial2.println("Hello, world?");
}
void loop() {
if (Serial2.available()) {
Serial.write(Serial2.read());
}
if (Serial.available()) {
Serial2.write(Serial.read());
}
}
Arduino MKR WiFi 1010 sketch
/*
* LoRa E220
* Start device or reset to send a message
* by Renzo Mischianti <https://mischianti.org>
* https://mischianti.org/category/my-libraries/lora-e220-llcc68-devices/
*
* E220 ----- Arduino MKR
* M0 ----- GND
* M1 ----- GND
* TX ----- RX2 (PullUP)
* RX ----- TX2 (PullUP)
* AUX ----- Not connected
* VCC ----- 3.3v/5v
* GND ----- GND
*
*/
#include "Arduino.h"
void setup() {
Serial.begin(9600);
delay(500);
Serial.println("Hi, I'm going to send message!");
Serial2.begin(9600);
Serial2.println("Hello, world?");
}
void loop() {
if (Serial1.available()) {
Serial.write(Serial1.read());
}
if (Serial.available()) {
Serial1.write(Serial.read());
}
}
But this primary usage is quite unuseful, so in the next chapter, we will use my library and go in deep into device features.
Library
Here is the last example with my library:
sketchArduino
/*
* LoRa E220
* Write on serial to transfer a message to other device
* by Renzo Mischianti <https://mischianti.org>
* https://mischianti.org/category/my-libraries/lora-e220-llcc68-devices/
*
* E220 ----- Arduino UNO
* M0 ----- GND
* M1 ----- GND
* TX ----- PIN 2 (PullUP)
* RX ----- PIN 3 (PullUP & Voltage divider)
* AUX ----- Not connected
* VCC ----- 3.3v/5v
* GND ----- GND
*
*/
#include "Arduino.h"
#include "LoRa_E220.h"
LoRa_E220 e22ttl(2, 3); // Arduino RX --> e220 TX - Arduino TX --> e220 RX
void setup() {
Serial.begin(9600);
delay(500);
Serial.println("Hi, I'm going to send message!");
// Startup all pins and UART
e220ttl.begin();
// Send message
ResponseStatus rs = e220ttl.sendMessage("Hello, world?");
// Check If there is some problem of successfully send
Serial.println(rs.getResponseDescription());
}
void loop() {
// If something available
if (e220ttl.available()>1) {
// read the String message
ResponseContainer rc = e220ttl.receiveMessage();
// Is something goes wrong print error
if (rc.status.code!=1){
rc.status.getResponseDescription();
}else{
// Print the data received
Serial.println(rc.data);
}
}
if (Serial.available()) {
String input = Serial.readString();
e220ttl.sendMessage(input);
}
}
Wemos D1 (esp8266) sketch
/*
* LoRa E220
* Start device or reset to send a message
* by Renzo Mischianti <https://mischianti.org>
* https://mischianti.org/category/my-libraries/lora-e220-llcc68-devices/
*
* E220 ----- Wemos D1 mini
* M0 ----- GND
* M1 ----- GND
* TX ----- PIN D2 (PullUP)
* RX ----- PIN D3 (PullUP)
* AUX ----- Not connected
* VCC ----- 3.3v/5v
* GND ----- GND
*
*/
#include "Arduino.h"
#include "LoRa_E220.h"
LoRa_E220 e220ttl(D2, D3); // WeMos RX --> e220 TX - WeMos TX --> e220 RX
void setup() {
Serial.begin(9600);
delay(500);
Serial.println("Hi, I'm going to send message!");
// Startup all pins and UART
e220ttl.begin();
// Send message
ResponseStatus rs = e220ttl.sendMessage("Hello, world?");
// Check If there is some problem of successfully send
Serial.println(rs.getResponseDescription());
}
void loop() {
// If something available
if (e220ttl.available()>1) {
// read the String message
ResponseContainer rc = e220ttl.receiveMessage();
// Is something goes wrong print error
if (rc.status.code!=1){
rc.status.getResponseDescription();
}else{
// Print the data received
Serial.println(rc.data);
}
}
if (Serial.available()) {
String input = Serial.readString();
e220ttl.sendMessage(input);
}
}
esp32 sketch
/*
* LoRa E220
* Start device or reset to send a message
* by Renzo Mischianti <https://mischianti.org>
* https://mischianti.org/category/my-libraries/lora-e220-llcc68-devices/
*
* E22 ----- esp32
* M0 ----- GND
* M1 ----- GND
* TX ----- RX2 (PullUP)
* RX ----- TX2 (PullUP)
* AUX ----- Not connected
* VCC ----- 3.3v/5v
* GND ----- GND
*
*/
#include "Arduino.h"
#include "LoRa_E220.h"
LoRa_E220 e220ttl(&Serial2); // WeMos RX --> e220 TX - WeMos TX --> e220 RX
void setup() {
Serial.begin(9600);
delay(500);
Serial.println("Hi, I'm going to send message!");
// Startup all pins and UART
e220ttl.begin();
// Send message
ResponseStatus rs = e220ttl.sendMessage("Hello, world?");
// Check If there is some problem of successfully send
Serial.println(rs.getResponseDescription());
}
void loop() {
// If something available
if (e220ttl.available()>1) {
// read the String message
ResponseContainer rc = e220ttl.receiveMessage();
// Is something goes wrong print error
if (rc.status.code!=1){
rc.status.getResponseDescription();
}else{
// Print the data received
Serial.println(rc.data);
}
}
if (Serial.available()) {
String input = Serial.readString();
e220ttl.sendMessage(input);
}
}
Arduino MKR WiFi 1010 sketch
/*
* LoRa E220
* Start device or reset to send a message
* by Renzo Mischianti <https://mischianti.org>
* https://mischianti.org/category/my-libraries/lora-e220-llcc68-devices/
*
* E220 ----- Arduino MKR
* M0 ----- GND
* M1 ----- GND
* TX ----- RX2 (PullUP)
* RX ----- TX2 (PullUP)
* AUX ----- Not connected
* VCC ----- 3.3v/5v
* GND ----- GND
*
*/
#include "Arduino.h"
#include "LoRa_E220.h"
LoRa_E220 e220ttl(&Serial1); // Arduino RX --> e220 TX - Arduino TX --> e220 RX
void setup() {
Serial.begin(9600);
delay(500);
Serial.println("Hi, I'm going to send message!");
// Startup all pins and UART
e220ttl.begin();
// Send message
ResponseStatus rs = e220ttl.sendMessage("Hello, world?");
// Check If there is some problem of successfully send
Serial.println(rs.getResponseDescription());
}
void loop() {
// If something available
if (e220ttl.available()>1) {
// read the String message
ResponseContainer rc = e220ttl.receiveMessage();
// Is something goes wrong print error
if (rc.status.code!=1){
rc.status.getResponseDescription();
}else{
// Print the data received
Serial.println(rc.data);
}
}
if (Serial.available()) {
String input = Serial.readString();
e220ttl.sendMessage(input);
}
}
If you have already changed the configuration, you must restore the base parameter:
// If you have ever change configuration you must restore It
ResponseStructContainer c;
c = e220ttl.getConfiguration();
Configuration configuration = *(Configuration*) c.data;
Serial.println(c.status.getResponseDescription());
configuration.ADDL = 0x03; // First part of address
configuration.ADDH = 0x00; // Second part
configuration.CHAN = 23; // Communication channel
configuration.SPED.uartBaudRate = UART_BPS_9600; // Serial baud rate
configuration.SPED.airDataRate = AIR_DATA_RATE_010_24; // Air baud rate
configuration.SPED.uartParity = MODE_00_8N1; // Parity bit
configuration.OPTION.subPacketSetting = SPS_200_00; // Packet size
configuration.OPTION.RSSIAmbientNoise = RSSI_AMBIENT_NOISE_DISABLED; // Need to send special command
configuration.OPTION.transmissionPower = POWER_22; // Device power
configuration.TRANSMISSION_MODE.enableRSSI = RSSI_DISABLED; // Enable RSSI info
configuration.TRANSMISSION_MODE.fixedTransmission = FT_TRANSPARENT_TRANSMISSION; // Enable repeater mode
configuration.TRANSMISSION_MODE.enableLBT = LBT_DISABLED; // Check interference
configuration.TRANSMISSION_MODE.WORPeriod = WOR_2000_011; // WOR timing
e220ttl.setConfiguration(configuration, WRITE_CFG_PWR_DWN_SAVE);
c.close();
but we are going to see It better in the following article.
Thanks
But this kind of usage is very reductive; in the following articles, we are going more deeply, and we start to use the library massively to simplify the complex configuration and settings.
- Ebyte LoRa E220 device for Arduino, esp32 or esp8266: settings and basic usage
- Ebyte LoRa E220 device for Arduino, esp32 or esp8266: library
- Ebyte LoRa E220 device for Arduino, esp32 or esp8266: configuration
- Ebyte LoRa E220 device for Arduino, esp32 or esp8266: fixed transmission, broadcast, monitor, and RSSI
- Ebyte LoRa E220 device for Arduino, esp32 or esp8266: power-saving and sending structured data
- Ebyte LoRa E220 device for Arduino, esp32 or esp8266: WOR microcontroller and Arduino shield
- Ebyte LoRa E220 device for Arduino, esp32 or esp8266: WOR microcontroller and WeMos D1 shield
- Ebyte LoRa E220 device for Arduino, esp32 or esp8266: WOR microcontroller and esp32 dev v1 shield
- Mischianti Arduino LoRa shield (Open source)
- Mischianti WeMos LoRa shield (Open source)
- Mischianti ESP32 DOIT DEV KIT v1 shield (Open source)
olá, poderia me ajudar?
Como faço para configurar o módulo E220-900T30D como repetidor? Olhei sua biblioteca e somente têm disponível para E22.
Hi Rafael,
the module E220 don’t have the repeater function, only e22 can work as repeater.
If you need a simple repeater I think the only solution is to develop It from scratch.
Bye Renzo
Can I repeat sending a string from E220 quickly? (10Hz)
I’d like to know if there’s a way.
Hi Tom,
I never use it at that speed, you must test It, but first, you must set the maximum data rate, remove LBT, reduce packet size, and so on.
Bye Renzo
ResponseContainer LoRa_E220::receiveMessageComplete(bool rssiEnabled)
Missing last char in rc.data.
How to solve:
//rc.data = tmpData.substring(0, tmpData.length()-1);
rc.data = tmpData.substring(0, tmpData.length());
Hi Simon,
check if you enable rssi.
Bye Renzo
Hi Renzo,
RSSI is enabled.
I use ESP32 Dev Module with VSCode.
LoRa Module is E220-900T22D.
#define FREQUENCY_868
#define ENABLE_RSSI true
#include
#include
LoRa_E220 e220ttl(&Serial2, 15, 18, 19); // RX AUX M0 M1
and in setup()
ResponseStructContainer c;
c = e220ttl.getConfiguration();
// It’s important get configuration pointer before all other operation
Configuration configuration = *(Configuration*) c.data;
configuration.TRANSMISSION_MODE.enableRSSI = RSSI_ENABLED;
I think the last byte in receive string should be the RSSI value, but I don’t get it.
I use transparent transmission.
Best regards Simon
Hi Renzo,
the empty includes are Arduino.h and LoRa_E220.h
I’m now testing Fixed Transmission.
If I send fixed from ESP32-1 ‘World, hello?’
ResponseStatus rs = e220ttl.sendFixedMessage(0, 3, 15, “World, hello?”);
Serial2 on ESP32-2 receive: 00030F576F726C642C2068656C6C6F3F0D0A
The first 3 Bytes are ADDH(00), ADDL(03) and CHAN(15).
I had to remove this 3 Bytes from tmpData in
receiveMessageComplete(bool rssiEnabled) to get a valid rc.data.
Do these 3 Bytes need to be checked?
Best regards Simon
Hi Simon,
I think you have some problem with configuration and the code you use.
Please open a forum topic and post your code with the relative configuration.
Bye Renzo
Hi Renzo,
Unfortunately, I cannot delve deeper into the subject.
It’s enough for me if I can send and receive.
(I have used the example: 04_sendFixedTransmission.ino
with the changes already described.)
Thank you very much for your efforts.
Best regards, Simon
Hi Simon,
Ok, but you must pay attention to the configuration and the method to retrieve data.
Follow the examples in the articles.
Bye Renzo
Hi Renzo,
I’ve tried a few things now.
I think I found the mistake.
I had to save the changed configuration:
ResponseStatus rs = e220ttl.setConfiguration(configuration);
Unfortunately you didn’t mention that in your description!
An additional byte is now also transmitted.
I get values around 220 at a distance of 2m.
Is that OK?
Best regards, Simon
Hi Simon,
The value is variable and depend by type of antenna, distance power supply etc.
But I think that it’s correct.
Bye Renzo
When using e220ttl.sendMessage() with transparent mode, what is required receiver address and channel?
Need to be same channel and address?
I tested
Sender Channel=70, Address=2 —> Receiver Channel=70, Address=3 : No data recieved
Sender Channel=70, Address=3 —> Receiver Channel=70, Address=3 : data recieved
lovefool
Hi Lovefool,
based on my test, yes, if you want a communication limited to the channel you must use Broadcast and Monitor modality.
Some additional info here.
Ebyte LoRa E220 device for Arduino, esp32 or esp8266: fixed transmission, broadcast, monitor, and RSSI – 4
Bye Renzo
Renzo, thank you. I will test several configuration.
I have checked Japanese manual from Japanese vendor not from Ebyte. In English version of Ebyte , only explaining Fixed transmission mode, but in Japanese manual “For transparent transmission, channel and address of sender and receiver need to be same” is written.
I can confirm with my test, thanks for your feedback.
Bye RM
Hey, Renzo,
My ESP32 and E220 is sending strings to Arduino and I am seeing them, but when I am trying to send something and read strings at the same time, Arduino doesn’t see it anymore and ESP32 with E220 aren’t getting anything too. What do I do?
And another question – How do I connect an SD card to Arduino for a back up?
Hi,
please open a forum topic with your code, so we can try to check your problem.
Bye Renzo
You can connect SD by following this article
How to use SD card with esp8266 and Arduino – 1
Bye Renzo
Hi, I tried using the e220 and the range was very low(50 meters). Could this be because of a faulty antenna or some other reason?
50 meters is very low.. I think it’s the antenna, but verify also the 5v power supply.
Bye Renzo
Hello Renzo,
thank you for your library!
I am trying to use an ESP32 board that doesn’t have Serial2 pins available. I would like to use software serial to define pins 12 and 13 as RX and TX.
How can I use your library with ESP32 without using hardware serial ?
I hope you can help…
Here is how I try to construct e220ttl:
// ———- esp32 pins ————–
#include
SoftwareSerial mySerial(12, 13);
LoRa_E220 e220ttl(&mySerial, 18, 21, 19); // RX AUX M0 M1
This is the error message when compiling:
exit status 1
Compilation error: invalid conversion from ‘HardwareSerial*’ to ‘byte’ {aka ‘unsigned char’} [-fpermissive]
Hi I disable SoftwareSerial for ESP32, because you can create an HardwareSerial with every pin you want.
or
But if you want to use SoftwareSerial paste this line
here.
Bye Renzo