diff --git a/content/support/RYLR993_Config_Guide.md b/content/support/RYLR993_Config_Guide.md new file mode 100644 index 00000000..d2c9f893 --- /dev/null +++ b/content/support/RYLR993_Config_Guide.md @@ -0,0 +1,262 @@ +--- +title: How to set up RYLR993 LoRa Modules for Basic Communication +date: 2025-6-5 +authors: + - name: Sebastian Campos +--- + +![alt text](SebastianCamposPhotos/LoRa.png) + +## Introduction + +This tutorial is going to teach readers how to setup two RYLR993 modules for basic communication. +I decided to create this tutorial because it was tedious to figure out how to configure the modules as the online videos +available were often unclear. Overall, readers should be able to understand the basic wiring and serial commands needed to set up +the modules. + + +### Learning Objectives + +- Learn how to wire the LoRa modules to recieve and transmitt signals +- Learn the serial commands needed to configure the LoRa modules +- Understand what hardware is needed to setup the modules +- Write simple signal reception code + +### Background Information + +![alt text](SebastianCamposPhotos/RYLR993.png) + +LoRa is short for "long range" and is a form of communication that is able to send +signals over long distances using low power. LoRa uses a chirped modulation +format to send its signals and is a wide-spectrum technology. LoRa can be used in many applications +but is often used for direct line-of-sight wireless communication in IoT (internet of things) +devices. + +Sigfox is another form if communcation that is used in IoT devices which +uses binary phase-shift keying. Generally, Sigfox communication is less noisy than LoRa because it's +receivers only listen to a small signal spectrum. However, Sigfox basestations +are more expensive compared to LoRa. Furthermore, Sigfox is not available everywhere and users can not +manage their own network. Finally, LoRa is able to send signals bidirectionally due to its symmetric link +technology. Although Sigfox can be configured to work bidirectionally, there are more requirements as +Sigfox is an inherently asymetric link. + +All things considered, LoRa is a good option for IoT devices +because it is supported in the US, is cheap to use, and uses low power. + +## Getting Started + +### Required Downloads and Installations + +To complete this tutorial, download Arduino version 1.8.16 by completing the following steps: + +1. Go to https://www.arduino.cc/en/software/OldSoftwareReleases/ +2. Click and Install the version for your operating system by following the built-in guide +3. Nice! You have downloaded all the software needed to complete this tutorial +4. Note: Version 1.8.16 is used because it includes an easy to use serial monitor + +### Required Components + +List your required hardware components and the quantities here. + +| Component Name | Quanitity | +| -------------- | --------- | +| RYLR993 | 2 | +| | | +| Male to Female | 8 | +| Jumper cables | | +| | | +| CP2102 USB to | 1 | +| TTL 5PIN Serial| | +| Converter for | | +| UART STC 3.3V | | + +### Required Tools and Equipment + +- Computer +- ESP 32 +- USB-C to USB-A adapter (Only if your device does not have a USB-A port) +- Another computer or power supply (needed to power the ESP 32 while the CP2102 is connected to the computer) +- Note: the CP2102 will be connected to your computer using a cable. I used an old CP2102 which uses a USB-A to USB-Mini. However, newer modules may use USB-A to USB-C or USB-C to USB-C. + +## Part 01: Connecting the CP2102 to the RYLR998 and RYLR993 + +### Introduction + +In this section you will learn how to wire the CP2102 and RYLR993 modules together. + +### Objective + +- Understand how to wire the CP2102 to the RYLR993 modules. + +### Background Information + +To complete this section, you just need to make sure your +jumper cables are properly connecting each module. + +### Components + +- 1 CP2102 +- 2 RYLR993 (should include coax and monopole antenna) +- 4 Jumper Wires +- 1 USB-A to USB-Mini cable (your cable may be different) + +### Instructional + +1. Connect the **GND** male pin on the CP2102 to the **GND** female pin of the RYLR993 using a male to female (M-to-F) jumper cable. +2. Connect the **3.3V** male pin on the CP2102 to the **3.3V** female pin of the RYLR993 using a M-to-F jumper cable. +3. Connect the **Tx** male pin on the CP2102 to the **Rx** female pin of the RYLR993 using a M-to-F jumper cable. +4. Connect the **Rx** male pin on the CP2102 to the **Tx** female pin of the RYLR993 using a M-to-F jumper cable. +5. Connect the CP2102 USB-A cable to your computer + +- Note: Rx goes to Tx and Tx goes to Rx is correct and necessary for proper configuration. + +## Visual + +![alt text](SebastianCamposPhotos/wiring.jpeg) + +## Part 02: Configuring the RYLR998 + +### Introduction + +Now that every module is properly connected, you can now learn +what commands are necessary to configure the RYLR998. + +### Objective + +- Understand the commands needed to configure the RYLR998 + +### Background Information + +To complete this section, you will need to open your arduino IDE +and use the serial monitor to configure the RYLR993 through the +CP2102. The commands used in this tutorial are taken directly from the +[documentation.](https://reyax.com/upload/products_download/download_file/RYLR993_AT_Command.pdf) +You can open the +[documentation](https://reyax.com/upload/products_download/download_file/RYLR993_AT_Command.pdf) +to verify the commands being used here. + +The beauty of using the CP2102 is that you can simply plug and play. The CP2102 does not need to be configured like the +RYLR998. + +### Components + +- No other components needed + +### Instructional + +1. Open the Arduino IDE +2. Go to Tools -> Port and make sure the CP2102 port is connected. On +My side the following is displayed: /dev/cu.usbserial-A900fshd. Your port name may be slightly different, but the correct choice should be fairly straigthforward. +3. Go to Tools -> Serial Monitor to open the serial monitor +4. In the serial monitor, follow the next steps: + - Type `AT+OPMODE=?` and press "Return" on your keyboard (from now on, everytime you type a command you must press enter or return) + - The serial monitor should respond with `0` and then `OK` + - `+OK` response indicates that your wiring is correct and you can proceed with configuring the RYLR998. + - If the serial monitor responds with `AT_ERROR`, then you most likely have wired your modules incorrectly or have typed the command incorrectly. You must fix this before proceeding. +5. Now, `0` indicates that you are on the LoRaWan mode. You will need to change the mode to the REYAX RYLR998 proprietary mode following the next steps: + - Type `AT+OPMODE=1` + - The serial monitor will with `OK`and then `Need RESET!` + - Reset the 993 by clicking the button on the module, located behind the chip + - The serial monitor will respond with `+READY` + - Now we are on opmode 1, we can use the RYLR998 commands even though we are using a 993. + - In the next steps we will need to set the frequency and ADDRESS ID +6. By default the frequency should be at 915 Mhz. However, to make sure the frequency is correct, complete the following steps + - Type `AT+BAND=?` + - The serial monitor should respond with `+BAND=915000000` and then `OK` + - If for some reason the band is incorrect type the following `AT+BAND=915000000` and then press the reset button +7. Now we must setup the address ID. By default, the addresses are set to 0. You can keep the addresses at 0 or change each LoRa module to have its unique address. + - Set the address by typing `AT+ADDRESS=2` (note you can choose any two unique addresses from 0 - 65535 for your modules) and then pressing the reset button + - Check that the setup worked by typing `AT+ADDRESS=?` +8. Now one of your RYLR998 modules is setup properly. Now repeat the steps for your other RYLR993 module. + +- Note: There are many other commands to configure the RYLR998 modules. However, this tutorial is meant to illustrate only the essential configs for basic one-to-one communication. For instance, if a RYLR998 is used instead, you can set the NETWORK ID from 0 - 18; However, the RYLR993 only supports one default network ID = 18. + +### Visual + +![alt text](SebastianCamposPhotos/screenshot.png) + +## Part 03: Writing Simple LoRa Reception Code + +### Introduction + +In this section you will learn how to write simple reception code for your ESP 32. Another benefit of the CP2102 is that it can also send signals to other LoRa modules. We will be illustrating signal reception success by writing reception code using Arduino. + +### Objective + +- Understand how to send signals using the CP2102 +- Understand how to write simple LoRa reception code +- Learn how to upload Arduino code to an ESP 32 + +### Background Information + +To complete this section, you will need to understand basic programming logic. The most "confusing" parts of this section mainly come from the setup commands. However, to complete this tutorial, these commands are not necessary to fully understand. + +### Components + +- 1 ESP 32 +- 2 RYLR993 +- 8 Jumper Wires +- Power bank or another computer + +### Instructional + +1. Similar to the wiring setup used to connect the CP2012 and RYLR993 (3.3V to 3.3V, GND to GND, ... etc), now connect the remaining RYLR993 to your ESP 32. And connect the ESP 32 to your computer +- Note: you should still have one of your RYLR993's connected to the CP2012 (not connected to your computer) +2. Now, before you write the code, you want to make sure your ESP 32 is properly connected to your computer by going to Tools -> Ports +- The port should be named as follows: /dev/cu.usbmodem101 (ESP32 Family Device) +3. Now that your ESP 32 is connected to your board, you can write the following code into your Arduino IDE: + +``` +const unsigned int LED{17}; // define a constant for the LED pin +String incomingstring; + +void setup() { + pinMode(LED, OUTPUT); // configure the LED pin to be an output + Serial.begin(9600); +} + +void loop() { + if(Serial.available()) { + incomingstring = Serial.readString(); + if(incomingstring.indexOf("H") > 0) { + digitalWrite(LED, HIGH); + } else if (incomingstring.indexOf("L") > 0) { + digitalWrite(LED, LOW); + } + + } +} +``` +This code does the following: +- Defines a constant for the LED pin. In your ESP 32, your can use PIN 17 or 18 +- Creates a string variable which represents the incoming signal information +- In setup(), the LED is configured and the baud rate is set to 9600 +- In loop(), serial.available() is used to check if a signal is detected. If it is, then it will store the signal as a string into incoming string +- Then, if the signal sent has a "H" in the signal, then the LED will turn ON +- If, the signal sent has a "L" in the signal, then the LED will turn OFF + +Essentially, this code makes the ESP 32 ready for any sent signals. When a signal is received it will turn an LED ON or OFF + +4. Now, unplug the ESP 32 and connect it to your other computer or power supply and make sure it turns on. Connect your CP2102 (which is connected to your other RYLR993) to your computer. Now we can send a signal and see if your ESP 32 reciever can detect the signal +5. Open up the serial monitor (no need to change into a new Arduino sketch) and follow the next steps +- Note: I configured both 993's to have an ADDRESS = 2. +- Type `AT+SEND=2,1,H`. The first number in this command is the address of the module you are sending your signal too, the 1 represents the length of the string, and H represents the character in the string +- Change the address number to the number you chose in step 2. +- The serial monitor should respond with `+OK` if your signal was sent properly. If not, then an error will show as aforementioned. Check the documentation. to see what your error is and try to debug. +- If everything was setup properly, the LED on your ESP 32 should have turned ON and stayed ON +- Now you can type `AT+SEND=2,1,L` to turn OFF the LED +- You have officially finished configuring the 993 modules! + +## Example + +![alt text](SebastianCamposPhotos/example.jpeg) + +### Analysis + + +Overall, this example uses a CP2102, RYLR993 modules, and an ESP 32 to send basic signals. The LoRa modules where configured using the CP2102 and the appropriate commands to set the opmode, frequency, and address IDs. The receiver code was uploaded onto the ESP 32 shown, and a signal was sent to it using the CP2102 connected to the computer. The signal was sent using the `AT+SEND` command through the CP2102. The reception code was programmed to set the string character 'H' as high and 'L' as low, or LED ON and LED OFF, respectively. After a signal was sent to turn ON the LED, the LED on the ESP 32 should turn ON. As shown in the image above, the ESP 32 LED turns ON red, indicating that the modules were correctly configured and the reception code works. + +## Additional Resources and Useful Links + +- [RYLR993 Documentation](https://reyax.com/upload/products_download/download_file/RYLR993_AT_Command.pdf) +- [RYLR998 Documentation](https://reyax.com/upload/products_download/download_file/RYLR998_EN.pdf) diff --git a/content/support/images/esp32-bottom.jpeg b/content/support/images/esp32-bottom.jpeg new file mode 100644 index 00000000..11f46798 Binary files /dev/null and b/content/support/images/esp32-bottom.jpeg differ diff --git a/content/support/images/led-off.jpeg b/content/support/images/led-off.jpeg new file mode 100644 index 00000000..7da09faf Binary files /dev/null and b/content/support/images/led-off.jpeg differ diff --git a/content/support/images/led-on.jpeg b/content/support/images/led-on.jpeg new file mode 100644 index 00000000..788841e3 Binary files /dev/null and b/content/support/images/led-on.jpeg differ diff --git a/content/support/images/ryl993-front.jpeg b/content/support/images/ryl993-front.jpeg new file mode 100644 index 00000000..214ea88a Binary files /dev/null and b/content/support/images/ryl993-front.jpeg differ diff --git a/content/support/images/wired-esp32-ryl993.jpeg b/content/support/images/wired-esp32-ryl993.jpeg new file mode 100644 index 00000000..47ad9572 Binary files /dev/null and b/content/support/images/wired-esp32-ryl993.jpeg differ diff --git a/content/support/images/workshop-logo.jpeg b/content/support/images/workshop-logo.jpeg new file mode 100644 index 00000000..911e6278 Binary files /dev/null and b/content/support/images/workshop-logo.jpeg differ diff --git a/content/tutorials/JVillanueva_Tutorial.md b/content/tutorials/JVillanueva_Tutorial.md new file mode 100644 index 00000000..95c144bf --- /dev/null +++ b/content/tutorials/JVillanueva_Tutorial.md @@ -0,0 +1,324 @@ +--- +title: Long Range Communication with ESP32 and RYLR993 LoRa Modules +date: 2025-06-05 +author: + - name: Joshua Villanueva +--- + +![LORA_WORKSHOP](../support/images/workshop-logo.jpeg) + +## Introduction + +In this tutorial, you'll learn how to create reliable long-range, low-power wireless communication between two ESP32 S3 Mini 1 boards using RYLR993 LoRa modules. This method doesn’t rely on WiFi or Bluetooth, making it great for places without regular internet access. + +The goal is to make LoRa communication easier to understand and more approachable for students and developers who are new to the technology. Readers will get practical experience wiring the modules and using AT commands to send and receive data. + +### Learning Objectives + +* Set up communication between two ESP32 S3 Mini 1 boards using RYLR993 LoRa modules +* Wire the hardware correctly and verify serial connections +* Use AT commands to configure and test LoRa modules +* Write Arduino code to send and receive messages over LoRa +* Monitor communication using the Serial Monitor + +### Background Information + +LoRa stands for Long Range. It is a wireless communication protocol designed to send small amounts of data over large distances using very little power. This makes it useful in places where WiFi or cellular is not available. + +The RYLR993 module handles the complexities of radio communication, so all you need to do is send it simple AT commands over serial. This means you don’t need advanced radio knowledge to get started. + +LoRa is a good choice when: +* Data is small and does not need to be sent constantly +* Devices are far apart +* Power consumption needs to be low +* There is no existing network infrastructure + +Compared to WiFi or Bluetooth, LoRa is slower but can reach much farther. It also works well with battery powered devices that need to last a long time without charging. + +This tutorial uses the ESP32 S3 Mini 1 board because it is small, easy to program, and powerful enough to handle real world tasks. It also supports USB programming which simplifies setup. + +## Getting Started + +To follow this tutorial, a few tools and files need to be installed. This section explains how to set up the development environment and prepare the hardware. All tools used are free and open source. + +### Required Downloads and Installations + +* **Arduino IDE** + This is the development environment used to write and upload code to the ESP32. Download it from: [https://www.arduino.cc/en/software](https://www.arduino.cc/en/software) + +* **Serial Monitor** + This comes built into Arduino IDE and will be used to view messages sent and received over LoRa. + +### Required Components + +| Component Name | Quantity | +|---------------------------|----------| +| ESP32 S3 Mini 1 | 2 | +| RYLR993 LoRa Module | 2 | +| Breadboard | 2 | +| Jumper Wires | 10 | +| USB-C Cable | 2 | +| USB-C power source | 1 | + + +### Required Tools and Equipment + +* Computer with USB-C port +* Arduino IDE installed +* Internet access for installing packages +* External USB-C power source for second ESP32 + (such as a USB-C power bank or a second computer) + +## Part 01: ESP32 and LoRa Hardware Setup + +### Introduction + +Here you'll wire each ESP32 S3 Mini 1 to its own LoRa module. Proper wiring ensures stable power and smooth communication later when sending and receiving messages. + +Photos below show the labeled pins on the underside of the ESP32 S3 Mini 1 and the layout of the RYLR993 LoRa module, including GND, TXD, RXD, RST (not used), and VDD. + +![ESP32 S3 Mini 1 Pinout](../support/images/esp32-bottom.jpeg) +![RYLR993 Module Pinout](../support/images/ryl993-front.jpeg) + +### Objective + +* Connect each ESP32 S3 Mini 1 to its own RYLR993 LoRa module +* Match the correct UART pins for TX and RX +* Provide stable power using the 3.3V and GND lines +* Confirm that both modules are physically ready for communication + +### Background Information + +The RYLR993 module uses UART to communicate with the ESP32. This means one wire will be used to transmit data (TX) and another to receive data (RX). Each ESP32 will need to be connected to its LoRa module using the correct TX and RX pins, along with 3.3V for power and GND for reference. + +The default hardware UART on the ESP32 S3 Mini 1 is located on RX0 and TX0, which are clearly labeled on the bottom of the board. The RYLR993 has five pins: GND, TXD, RXD, RST (not used), and VDD. These must be connected properly for the module to receive power and pass data. + +Wiring each module correctly now avoids problems later during testing and transmission. + +### Components + +* 2 ESP32 S3 Mini 1 boards +* 2 RYLR993 LoRa modules +* 2 Breadboards +* 8 Male to Male jumper wires +* 2 USB-C cables +* 1 USB-C power bank or second USB-C computer port + +### Instructional + +1. Place the ESP32 S3 Mini 1 on a breadboard with the USB-C port facing outward for easy access. +2. Place the RYLR993 module on the second half of the breadboard or nearby, keeping the pins easy to reach. +3. Connect the **GND** pin on the ESP32 to the **GND** pin on the RYLR993. +4. Connect the **3.3V** pin on the ESP32 to the **VDD** pin on the RYLR993. +5. Connect the **TX0** pin on the ESP32 to the **RXD** pin on the RYLR993. +6. Connect the **RX0** pin on the ESP32 to the **TXD** pin on the RYLR993. +7. Leave the **RST** pin on the RYLR993 unconnected. It is not used in this setup. +8. Double check the connections for each wire to avoid reversed or loose pins. + +Repeat these steps for the second ESP32 and second LoRa module using the second breadboard. + +Make sure both boards are connected to power either through your computer or a USB-C power bank before continuing. + +![Wired ESP32 to RYLR993](../support/images/wired-esp32-ryl993.jpeg) + +## Part 02: Sending a Basic Message with AT Commands + +### Introduction + +Now you’ll test your hardware setup using basic AT commands. This confirms both modules are responding and able to communicate with each other before moving on to Arduino code. + +### Objective + +* Open the Arduino Serial Monitor and connect to one ESP32 +* Send AT commands to confirm the RYLR993 module is responsive +* Use AT commands to transmit a basic message +* Check that the second LoRa module receives the message while powered externally + +### Background Information + +The RYLR993 LoRa module is controlled through a set of AT commands sent over a serial connection. These commands are typed directly into the Arduino Serial Monitor. Once received, the module will respond with confirmation messages like `OK`, `+READY`, or `+RCV`. + +Each module has a unique address and communicates by sending data to the address of another module. To test basic messaging, one ESP32 will be connected to the computer and used to send commands. The second ESP32 will be powered separately and should receive the message if everything is wired correctly. + +This step confirms that the modules are powered, paired, and able to transmit data wirelessly. + +### Components + +* 1 ESP32 S3 Mini 1 connected to a computer +* 1 ESP32 S3 Mini 1 powered by a USB-C power bank +* 2 RYLR993 LoRa modules +* 2 Breadboards +* 8 Jumper Wires +* 2 USB-C cables +* Arduino IDE with Serial Monitor open + +### Instructional + +1. Make sure both ESP32 boards are fully wired and powered. + One should be connected to the computer. The other should be powered by a USB-C power bank. + +2. Open Arduino IDE. + Go to **Tools → Port** and select the port connected to the ESP32. + +3. Open the **Serial Monitor** (top right corner or Tools → Serial Monitor). + Set the baud rate at the bottom of the Serial Monitor to **9600 baud**. Choose **Both NL & CR** for line endings. + +4. Type and enter the following command into the input box: + ``` + AT + ``` + The module should reply with: + ``` + OK + ``` + This confirms the module is powered and responding. + +5. Check the current address of the module: + ``` + AT+ADDRESS=? + ``` + This should return a number like `+ADDRESS=0`. + Set the address if needed: + ``` + AT+ADDRESS=1 + ``` + +6. Confirm the other module is set to a different address (for example, 2). You can set it in the same way by connecting the second ESP32 to your computer temporarily and repeating the above steps. + +7. Send a test message to the second module using: + ``` + AT+SEND=2,5,HELLO + ``` + This sends the string `HELLO` to address 2 with a length of 5. + +8. If everything is set up correctly, the second ESP32’s module will receive the message. If the receiving board is connected to Serial Monitor, it will print something like: + ``` + +RCV=2,5,HELLO + ``` + +If no response is received, check that the modules are on different addresses, powered, and wired correctly. You can also refer to the external configuration guide for more help. +[RYLR993 Configuration Guide (PDF)](https://lemosint.com/wp-content/uploads/2022/08/RYLR993_and_Helium_Network_EN-1.pdf?srsltid=AfmBOooRkFksV0ymHadRzPjJr33ngE3c-Wo56RDMjwzJ5JY3tswh3avU) + +## Part 03: Writing Arduino Code to Send and Receive LoRa Messages + +### Introduction + +Here you'll learn to automate LoRa communication using Arduino code. Instead of typing commands by hand, the ESP32 boards will automatically send and receive messages, making your project practical for real world applications. + +### Objective + +* Write Arduino code that sends a LoRa message from one ESP32 +* Write code on the second ESP32 to receive the message +* Turn the onboard LED on or off based on the message received +* Run the system without using the Serial Monitor + +### Background Information + +Each ESP32 S3 Mini 1 can run Arduino code that sends and receives messages through its connected RYLR993 module. The modules communicate using AT commands over a serial connection. By sending these commands from inside the Arduino code instead of typing them manually, the devices can run on their own without using the Serial Monitor. + +The receiving ESP32 will look for messages that contain the letter "H" or "L". If it sees "H", it will turn the onboard LED on. If it sees "L", it will turn the LED off. This is a simple way to confirm that wireless communication is working and that the receiver is interpreting the message correctly. + +### Components + +* 2 ESP32 S3 Mini 1 boards +* 2 RYLR993 LoRa modules +* 2 Breadboards +* 10 Jumper Wires +* 2 USB-C cables +* 1 USB-C power bank or second USB-C port for power +* Arduino IDE with both sender and receiver code uploaded + +### Instructional + +#### Step 1: Upload the Sender Code + +On the first ESP32, upload the following code. It repeatedly sends "H" and "L" to the LoRa module at address 2 every five seconds. + +```cpp +void setup() { + Serial.begin(9600); + delay(100); +} + +void loop() { + Serial.println("AT+SEND=2,1,H"); + delay(5000); + Serial.println("AT+SEND=2,1,L"); + delay(5000); +} +``` + +--- + +#### Step 2: Upload the Receiver Code + +On the second ESP32, upload this code. It listens for incoming LoRa messages and turns the onboard LED on or off based on the message content. + +```cpp +String incoming; + +const int LED = 17; + +void setup() { + pinMode(LED, OUTPUT); + Serial.begin(9600); +} + +void loop() { + if (Serial.available()) { + incoming = Serial.readString(); + if (incoming.indexOf("H") >= 0) { + digitalWrite(LED, HIGH); + } + if (incoming.indexOf("L") >= 0) { + digitalWrite(LED, LOW); + } + } +} +``` + +--- + +#### Step 3: Power and Run + +1. Leave the **Sender ESP32** connected to the computer +2. Connect the **Receiver ESP32** to a USB-C power bank +3. Watch the onboard LED on the receiver it should turn on and off every 5 seconds as messages are received + +--- + +This setup shows real-time wireless control without using the Serial Monitor. + +## Example + +### Introduction + +This example shows how the receiver ESP32 responds to messages from the sender by turning the onboard LED on and off. It uses the Arduino code written in the previous steps. + +### Example + +Once both ESP32 boards are powered and running the correct code, the LED on the receiver should turn on for 5 seconds, then turn off for 5 seconds, repeating continuously. The message "H" turns the LED on, and "L" turns it off. This confirms that LoRa communication is working and the receiver is correctly parsing the message. + +![LED ON](../support/images/led-on.jpeg) +![LED OFF](../support/images/led-off.jpeg) + +### Analysis + +With this setup, your ESP32 boards automatically communicate over LoRa without needing the Serial Monitor. Using an LED gives you a straightforward, visual way to verify that everything’s working correctly. + +## Additional Resources + +### Useful Links + +* [RYLR993 AT Command Documentation (Official)](https://reyax.com/upload/products_download/download_file/RYLR993_AT_Command.pdf) +* [RYLR993 Configuration Guide (PDF)](https://lemosint.com/wp-content/uploads/2022/08/RYLR993_and_Helium_Network_EN-1.pdf?srsltid=AfmBOooRkFksV0ymHadRzPjJr33ngE3c-Wo56RDMjwzJ5JY3tswh3avU) +* [LoRa Overview (Semtech)](https://www.semtech.com/lora/what-is-lora) + +## Troubleshooting + +If your LoRa modules aren't communicating, first check your antenna connections. For detailed configuration steps like setting the right frequency, address, and operating mode, refer directly to the following guide. It clearly explains how to verify and correct these settings: + +[RYLR993 Configuration Troubleshooting Guide](../support/RYLR993_Config_Guide.md) +*Credit to Sebastian Campos for the Configuration Troubleshooting Guide + +Make sure your wiring matches the recommended TX and RX connections from the guide, and double-check antenna connections carefully. diff --git a/content/tutorials/images/RYLR998.png b/content/tutorials/images/RYLR998.png new file mode 100644 index 00000000..2f8e1ec8 Binary files /dev/null and b/content/tutorials/images/RYLR998.png differ