Lora Ebyte E220 communication only works if the code is compiled on one specific PC

Hello everyone!

I'm working on a project that uses LoRa transmission with the Ebyte E220-900T30D module on the ESP32 (LoRa_E220.h library), but I'm facing an inexplicable problem.

I configured both the transmitters and receivers to channel 50 using the Ebyte software, only changing their addresses. However, the channels are only maintained when I compile the code on a specific computer. If I compile on any other computer, the channel automatically changes to 133 and I can't establish communication.

Even if I comment out the "configuration.CHAN" function, it keeps changing the channel automatically. Does anyone have any idea what could be causing this? Tks!

M0 —– 25
M1 —– 26 (19 on the transmitter)
AUX —– 34 (18 on the transmitter)
TX —– RX2
RX —– TX2
GND —– GND
VCC —– 3.3V

I had to change the receiver's pin configuration to include an SD card, but even using the transmitter's pin configuration, the problem persists.

My guess is: the libraries of both computers are not the same. That is to say, some libraries are outdated, some are updated, but new and old are not the same on the two computers. I would discover the discrepancies first (so you can fallback when everything stop working), then update both computer libraries and resolve the problems that you will definitely have.

The library is properly updated on all computers. It's strange because I tested it on machines with same and different technical specifications, and yet the problem persists.

Verify your USB cable is a data cable (most USB cables are power - for charging).

Hi @gabrixxxxl. I'm going to ask you to provide the full verbose output from a compilation of the sketch on each of the computers. We might be able to spot some difference that explains the different results from the program compiled by the specific computer.


:exclamation: This procedure is not intended to solve the problem. The purpose is to gather more information.


Please do this:

  1. Open the sketch in Arduino IDE on the computer that produces the program that maintains the channels.
  2. Select File > Preferences... (or Arduino IDE > Settings... for macOS users) from the Arduino IDE menus.
    The "Preferences" dialog will open.
  3. Check the box next to "Show verbose output during: ☐ compile" in the "Preferences" dialog.
  4. Click the "OK" button.
    The "Preferences" dialog will close.
  5. Select Sketch > Verify/Compile from the Arduino IDE menus.
  6. Wait for the compilation to finish.
  7. Right click on the black "Output" panel at the bottom of the Arduino IDE window.
    A context menu will open.
  8. Select Copy All from the menu.
  9. Open a forum reply here by clicking the "Reply" button.
  10. Click the <CODE/> icon on the post composer toolbar.
    This will add the forum's code block markup (```) to your reply to make sure the error messages are correctly formatted.
    Code block icon on toolbar
  11. Press the Ctrl+V keyboard shortcut (Command+V for macOS users).
    This will paste the compilation output into the code block.
  12. Move the cursor outside of the code block markup.
  13. Open the sketch in Arduino IDE on a computer that produces the program that changes the channel to 133.
  14. Repeat the procedure described above on that computer.
  15. Click the "Reply" button to publish the forum post that contains the compilation output.

In case the output is longer than the forum software will allow to be added to a post, you can instead save it to a .txt file and then attach that file to a reply here.

Click here for attachment instructions

  1. Open any text editor program.
  2. Paste the copied output into the text editor.
  3. Save the file in .txt format.
  4. Open a forum reply here by clicking the "Reply" button.
  5. Click the "Upload" icon (Upload icon) on the post composer toolbar:
    Upload icon on toolbar
    The "Open" dialog will open.
  6. Select the .txt file you saved from the "Open" dialog.
  7. Click the "Open" button.
    The dialog will close.
  8. Click the "Reply" button to publish the post.

Alternatively, instead of using the "Upload" icon on the post composer toolbar as described in steps (5) - (7) above, you can simply drag and drop the .txt file onto the post composer field to attach it.

1 Like

which specific ESP32 are you using?
is it the transmitters or receivers which have problems or both?
is it the devices with the SD cards which have problems - if so what happens if you remove the SD card code?
could you be having power supply problems on transmission?
have you pullup resistors on the RXD and TXD lines?

EDIT: try running example code
File>Examples>Ebyte LoRa E220 Library>01_getConfiguration

@ptillisch Hello, friend. These are the verbose outputs when I compile the same code (in this case, the receiver's code) on different machines.

It's important to note that in the transmitter's code, it's also automatically changing the channel when it's not compiled on this specific computer.

VERBOSE OUTPUT - SPECIFIC COMPUTER.txt (3,0,MB)

VERBOSE OUTPUT - ANOTHER COMPUTER.txt (354,5,KB)

VERBOSE OUTPUT - ANOTHER COMPUTER 2.txt (322,6,KB)

OK, great. I did spot a very significant difference in the outputs.

In this one:

We see that you have version 2.0.11 of the "esp32" boards platform installed on that computer:

Using board 'esp32' from platform in folder: C:\Users\Automação\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11

In this one:

we see that you instead have version 3.0.0 of the platform installed:

Using board 'esp32' from platform in folder: C:\Users\Oficina 4.0 area 3\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.0

And in this one:

we see you have version 3.0.1 installed:

Using board 'esp32' from platform in folder: C:\Users\Win10\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.1

There have been some very significant changes to the "esp32" boards platform between the 2.0.11 version installed on the computer that produces the "good" behavior and the 3.0.0 version installed on the computer that produces the "bad" behavior.

You can test my hypothesis that this difference is the cause of the problem by performing an experiment of installing version 2.0.11 of the "esp32" boards platform on the computer that produces the "bad" behavior, uploading the sketch to the board from that computer, then checking to see whether it now produces the "good" behavior.

I'll provide instructions you can follow to do that:

  1. Start Arduino IDE on one of the computers that produces the "bad" behavior.
  2. Select Tools > Board > Boards Manager... from the Arduino IDE menus.
    The "Boards Manager" dialog will open.
  3. Wait for the updates to finish, as shown by the messages printed at the bottom of the "Boards Manager" dialog.
  4. Scroll down through the list of boards platforms until you find the "esp32" entry. Click on it.
    A "Select version" dropdown will appear in the entry.
  5. Click on the "Select version" dropdown.
    It will expand.
  6. Select "2.0.11" from the menu.
  7. Click the "Install" button in the "esp32" entry.
  8. Wait for the installation to finish.
  9. Click the "Close" button on the "Boards Manager" dialog.
    The "Boards Manager" dialog will close.
  10. Open your sketch.
  11. Upload the sketch to your board, as usual.

Now check whether the board now exhibits the "good" or the "bad" behavior.

1 Like