Setting up an Arduino Uno with a LoRa module (RYLR896)

Good Morning,

I am new to electronics. Just received my first set of Arduino Unos for my first IoT attempt. I am trying to have one Uno send the other a 1 or 0 to blink a light using two Reyax RYLR896 modules (LoRa) at each end. After doing my research and understanding that the Uno is a 5v device and the Lora modules are 3v devices I also ordered a set of RoboDyn 4 Chanel Logic Level Converters to pass all the signals through. I saw all the youtube videos and felt ready to go yesterday when everything finally arrived.

I think I must be missing something VERY basic and after spending all night in frustration have decided to seek help from you guys. So thanks in advance!

Attached is a diagram of how I have hooked up the Lora modules to the Unos via the logic level converters. I then connected the Uno via USB to the computer, opened the IDE and made sure the proper board and port were selected. Then I opened the Serial Monitor and checked that "Both NL & CR" and "115200 baud" were selected in the bottom right hand option toggles.

However, I then attempted to send the first AT command to check connection and got no "+OK" response back from the transceiver module. Hookup is as per the attached illustration.

One thing I noticed is that in the related youtube videos they all seem to use a USB TTL adapter to setup the transceivers first. I am beginning to suspect that this might be the only way to "activate" these modules. Although this seems counter intuitive as in the sample codes/sketches for these modules you can clearly see the base AT commands used to communicate and set fundamental transceiver parameters in the sketches. This leads me to believe that there must be a way to utilize these modules without having to have a USB TTL type adapter.

Do any of you wonderful people have any experience with these modules? Is there something wrong with the way I have connected all the components? Does the transceiver module perhaps need its own power source (that is one idea I had) or just how lame is the thing I am obviously missing? Might it just be that to use the transceiver modules for the first time you have to use a USB TTL adapter?, if not could someone please explain how to correctly do this.

... This is my first real hands on experience with electronics. Even though this has not gone has "smoothly" as I thought it would I have to admit I LOVE IT! I cant wait to figure this hurdle out and move on to next challenge. Any help you guys might provide would be greatly appreciated.

BTW: I am a programmer by trade so not to concerned with the actual code/sketch C part of the project - that I get ~ok. But ill see around if I can help on any code questions some others may have.

Anyway - Thanks folks!

Hey,
I had the same problem just a month ago. you don't need a uart ttl adapter just hook the TX of one arduino and the RX to an other arduino then you will see the +OK , and more responses.

because what you do to see the respons is a Serial.print and it show it on the screen BUT also sent it to the module.
the module doesn't understand that so there is a conflict, I think.

And the module will only transmit if you touch the reset pin of the module with the GND.

I found that after a lot of time... >:(

My problem I have now is that it only transmit every second and not faster.
Actually it respond with a +OK after I send a message every 20ms. OK great... until I touch the reset pin then it only respond me every 1 sec or so. so I guess it transmit only every sec?

I am also a beginner in electronics and programming.

If anyone had the same problem and has a solution, please leave a comment

And sorry for my bad english :cold_sweat:

Thanks Alex,

Yeah, figured that one out the hard way while I waited for my uart ttl adapter to arrive. Once I did hook up via the adapter I noticed that all the "AT" type commands I was sending to setup during "troubleshooting" the module were indeed being accepted by the module. You don't get a response back via the serial monitor, but the commands are certainly issued.

As for the problem you are having now; Are you still using this modified setup with tx from mod1 to uno1 and rx from mod1 to uno2? Do you have 2 transceiver modules? Finally, what are you trying to transmit at a less than 1 sec frequency (just curious, rough idea is fine).

My main concern with the hook-up was with the logic conversion from 5v to 3.3v logic levels between the Uno and the Reyax module. I was never able to get the logic level converter to work so ended up just using a simple voltage divider circuit to get around the situation, would still much prefer to use the logic level converters I bought specifically for this purpose. I despise having the resistors all hanging out in the open like that. Do you by chance have any experience with these Logic Level Converter units?

I search online for how-to-info but for some reason it just doesn't click. Any way, thanks for the response and glad to see I am not the only one.

(English is fine, no worries friend)

I have 2 tranceivers, at the moment I use 2 uno's with only a 1 directional communication so only TX is hooked up of one and RX of the receiver is hooked up at the transmitter I made a simple bridge to lower the voltage to 3.3max with 2 resistors . the receiver end directly to the uno RX pin. I have no idea if that is good but it works.

My project is a simple long range communication (1-2km) just to pull up some relais and control a servo. But I want a faster reaction. first I had trouble with reading strings over serial.print because that take also a second but I found a solution for that and hoped that that was the problem but...NOT (read.serialuntil()).
and than numbers for my servo also prblems with changing to ascii characters and so on... found that also (-48)

yeaa arduino and programming is new to me. But Im learning. :smiley:

the project I m on is not yet done, and I can use the module but 1 second is slow.
actualy its like controling a car or a drone with some feedback.
but I am not yet ready with the sending part so for getting feedback back is for later.

Why I bought a lora module instead of others is because I tough it was easy to program,
and also hope to have a very good communication at 1- 2 km.

no can't help you with the logic thing. sorry

I totally know what you mean friend. Cant tell you how many frustrations I have encountered over the last few weeks - but i absolutely love it!

I too am in the early stages of prototyping an idea I have had for a while. Your application is fundamentally different in end goal/objective BUT the use of the module for communication between end point and controller at least from a first pass through your code is very similar. Perhaps we can help each other along the way. Cool.

... The distance on these modules is impressive and so far after the initial hurdle the programming is fairly straight forward. I will take a look at your code in more detail tomorrow and let you know if I spot anything.

Thanks for sharing and good luck.

alex_lan:
My problem I have now is that it only transmit every second and not faster.
Actually it respond with a +OK after I send a message every 20ms. OK great... until I touch the reset pin then it only respond me every 1 sec or so. so I guess it transmit only every sec?

I am also a beginner in electronics and programming.

If anyone had the same problem and has a solution, please leave a comment!!

Hello Jwazar and Alex, Im new to Arduino, hope to get some help since I have encountered similar problems.

Similar to you guys, I have bought 2 arduino unos and 2 RYLR896 modules and hooked them together, the connections are as follows:

Tx Unit (Uno pin > RYLR896 pin)---------1

Tx>3.3V voltage divider>Rx
Rx>Tx*
3.3V(from uno)>Vcc
Gnd>Gnd

Rx Unit (Uno pin > RYLR896 pin)---------2

Rx>Tx
Tx>Rx*
3.3V(from uno)>Vcc
Gnd>Gnd

Please note for the connections marked * above, I saw in youtube tutorials that connections are not necessary, but it still worked fine. Nevertheless, it didnt work for me, whether connected or not.

The problem I encountered is as discussed in your posts above, there is no AT response using serial.print AT commands to configure the RYLR896 in the void setup. Reading your posts above, it seems to me that an USB to TTL adapter is not necessary and the uno should be able to send AT commands successfully for configuration, albeit it showed no response for whatever reason.

With that in mind, I continued my void loop programme, which is very simple by commanding the Tx Unit to send the letters 'H' and 'L' in the serial communication with 1000ms delay each, while commanding the Rx Unit to turn a LED on (at Rx Uno pin 2) when 'H' is received and off when 'L' is received. Disappointingly, the LED did not blink as expected :((((((. I tried to send the 'H' and 'L' directly in serial monitor, the LED works fine and there should be other problems.

Here are some actions I tried for finding the problem, but still didnt work:

  1. Shorting the RESET pin to EARTH on arduino uno then input AT commands in serial monitor for configuring the RYLR896 (I read from internet that it makes the arduino to act a USB to TTL adaptor?)
  2. Shorting the RESET pin to EARTH on RYLR896 (both Tx and Rx)
  3. Shorting the RESET pin to 3.3V on RYLR896 (both Tx and Rx)
  4. Using AT+SEND Command

Can you guys please tell me what have I done wrong? Do I really need a USB to TTL adaptor for configuration? Is there any ways I can identify whether the RYLR896 is transmitting / receiving signals (LED should blink at the back I suppose?) because there is no way I can tell whether it is working or not.

Thank you in advance!

Try a search on the Internet for a tutorial, I found some.

There are now a number of these UART front ended LoRa modules, and as far as I can see they use different types of control and commands.

If you bought the base SPI based LoRa modules, these all use the same register based SPI interface and there are a number of well established and proven libraries.

Hey, thanks for your reply.

I have followed tutorials in youtube / internet for setting up the micro controller with the RLYR896 , but it didnt work for me. The problem is, I'm not able to tell which part I did wrong (see my post above).

I have bought the following LoRa Modules:

REYAX RYLR896 Lora module SX1276 UART 868MHz 915MHz Antenna AT command FCC NCC

As described, it should be a UART device, and should be communicated with AT commands.

Not sure if anyone else got anywhere with same issue. I had same problem and was getting "+READY" after grounding out NRST pin and then sending "AT+FACTORY" with it responding back "+FACTORY". After this, I was able to change settings.

you misunderstand your logic level converter. you have a red wire coming from the 3.3 lead to the +V lead on the RF module. That lead is for +3.3V to the logic converter. it should connect to the 3.3V pin on the Arduino.

you should get a separate 3.3V power supply for the RF module. if you do that, power the module from that power supply too.