Big ESP32 + SX127x topic part 3

And that is maybe a very small percentage of TTN users.

But what is the specific reason that the SX126x is required ?

IIRC, in case of satellite usage this has to do with a special LoRa modulation mode that uses more frequencies for the chirp spread spectrum modulation. To allow for more capacity, because the satellite covers a very large area.
(But I don’t remember the exact technical details.)

Interesting, the only significant difference reported in the datasheet I can recall is that the SX126x supports explicit mode in SF6 and has an additional SF5. SF6 on the SX126x is not compatible with SF6 on the SX127x.

The SX126x has a TCXO and that allows for stable operation down to a bandwidth of 7800hz, which was never really possible with SX127x.

In many way the SX1261 would be a better choice, it allows for a DCDC converter in TX mode which ought to cut node power use in half, meaning much longer battery life. The SX1262 has the DCDC converter on RX only, and that does more or less, cut receive power consumption in half.

TTGO LoRa32 V2.1.6:

ESP32          LoRa (SPI)      Display (I2C)  LED
-----------    ----------      -------------  ------------------
GPIO18 SS      NSS
GPIO23         RST
GPIO26         DIO0
GPIO33         DIO1 (see #1)
GPIO32         DIO2 (see #2)
GPIO21 SDA                     SDA
GPIO22 SCL                     SCL
GPIO25                                        LED
  1. Required. Unknown if this already wired on PCB or must be manually wired .
  2. Optional (needed for FSK only) . Unknown if this already wired on PCB .

in the shematics of the board TTGO Lora32_v2.1.6 shematics is the LoRa1 to 33 and LoRa2 to 32 connected

1 Like

They have started 'migration onto SX1262 process by offering a new variant of TTGO T-Beam board at first:

New ESP32-S2 modules: ESP32-S2-MINI

Espressif’s ESP32-S2-MINI series of modules currently consists of ESP32-S2-MINI-1 and ESP32-S2-MINI-1U , which are two powerful, generic Wi-Fi MCU modules with a rich set of peripherals. They are an ideal choice for a wide variety of application scenarios relating to the Internet of Things, wearable electronics and smart home.

ESP32-S2-MINI-1 comes with a PCB antenna, whereas ESP32-S2-MINI-1U with an IPEX antenna. They both feature a 4-MB embedded SPI flash.

At the core of the ESP32-S2-MINI modules is ESP32-S2FH4 , an Xtensa® 32-bit LX7 CPU that operates at up to 240 MHz. This chip has a low-power co-processor that can be used instead of the CPU, in order to save power while performing tasks that do not require much computing power, such as the monitoring of peripherals. ESP32-S2FH4 has up to 43 GPIOs and integrates various peripherals, such as SPI, I2S, UART, I2C, LED PWM, LCD, camera interface, ADC, DAC, touch sensor and temperature sensor. ESP32-S2FH4 also includes a full-speed USB On-The-Go (OTG) interface which enables USB communication in any place, at any time.

Will go into mass production end of 2020.

Using the TTGO LoRa32 board with the LMIC library works fine with next setup:

– board Heltec WiFi LoRa 32
– LMIC library
– included demo sketch ttn-otaa
– edited some lines as below to meet the requirements of the TTGO board:

const lmic_pinmap lmic_pins = {
        .nss = 18,
        .rxtx = LMIC_UNUSED_PIN,
        .rst = 14,
        .dio = {26, 33, 32},

The demo sketch sends the message “Hello, world!” once every 10 minutes (TX_INTERVAL = 600). So far so good.

Between the tranmissions I want to measure incoming analog values from a pin, say every 10 seconds, calculate the average thereafter which I want to send to TTN. Trying to code this part within the loop of the sketch does not work, I suppose this is LMIC (timing) related.

Can someone help me with a sketch which does above or similar? Or are there other libraries I can use?

Excellent ressource!
I’ve purchased a v1.0 board:

I don’t have any problems connecting it to TTN/Cayenne. However, my v1.3 just does not work:

I am quite sure that I use the correct pin mapping, as provided by the manufacturer:

Besides the reset pin, the code between v1.0 and v1.3 should be identical. What do you think about that?

I’m now planning to buy a newer version of those boards. Can you recommend the V2 ones?

They introduced V1.3 while several V2.x version were already out.
I never understood why.

I lost track of the TTGO ESP32 LoRa boards, because once in a while LilyGO comes out with new versions and they usually do not document changes between previous versions and a new version (and errors in pinouts hardly get/got fixed).

I’m not aware what the latest V2.x version number and board are, others possibly do.
It’s difficult to advise some V2.x over your V1.3 if the specs of both boards are not exactly known.

Recommend V2 for what purposes?
For good advice it will be useful to list your requirements.
Maybe a V2.x may not be better for you, possibly a Heltec board could be better or an alternative and maybe even not an ESP32 based board at all. It all depends on your requirements (and having the specs of the boards so they can be properly compared).

The software you linked is LoRa, not LoRaWAN. I assume you only used this for checking the pin mappings and use LoRaWAN software instead?

The Arduino LMIC LoRaWAN libraries require both DIO0 and DIO1. I see no mapping for DIO1 above.

What software / Arduino sketch are you using and how have you configured your pin mappings? If unsure check the topic start for more information.

Thank you @bluejedi
I’ve already opened another thread about it:

The problem was with different versions of the lmic library. The newest version of the arduino-lmic and the mcci-lmic didn’t work for me. I had to switch back to version 2.3.2 of mcci library:
I needed to manually install the file in Arduino IDE. When picking the 2.3.2 version from the library manager, it didn’t work for me again. All in all that sounds pretty strange, I know. I’ve spend like 6-8 hours troubleshooting it without gaining much knowledge.

As you say, I need DIO0 and DIO1, if I don’t define those correctly, I get a failure when communicating with the lora radio.

You can configure DIO1 incorrectly (or depending on the board not have it physically wired to an IO port) and not get any error messages, but your downlinks will not work or work unpredictable and inconsistent.
When downlinks do not function correctly OTAA will also not work and neither will ADR. But when using ABP (as you said) you will at first not run into the problem that downlinks are not working.

Questions about the same issue shall not be posted in different topics because this fragments information and responses, so please don’t.

I found that my TTGO T3_V1.6 board (labelled “20180606”) has a i2c chip answering at i2c address 0x50. This seems to be a serial EEPROM, 6 pin package, placed right beneath the OLED display.

Can anyone confirm this?

Can you drive the OLED for a few seconds and then turn it off?

I want to display the metadata from sensors for 10 sec and then off to conserve battery power.

You cannot power it off via programming an IO pin but you can put the display in power save mode.

When using the u8g2 display library you can enable and disable power save mode.
Other libraries may have a similiar function.

See: u8g2 setpowersave

I try to connect a Heltec Lora 32 to TTN.
I work with IDE Arduino and the ESP32_LoRaWAN library (
I try to compile the OTAA_OLED sample program and I get an error message regarding the following error message ‘LoRaWAN_DEBUG_LEVEL’ was not declared in this scope.
Can someone help me to solve this problem ?
Thanks before hands,

Heltec’s ESP32_LoRaWAN library is proprietary. Essential parts of the source code are not public, not open source and its use is limited to Heltec ESP32 boards. You will therefore not find much support for it on this forum. Many prefer to use non-proprietary open source software instead.

See the tips and instructions in the topic start.
It will be easier to start with the library and examples mentioned there.
Those examples provide the basics to get a LoRa board working with TTN and will be easier to get support for on the forum.
The MCCI LMIC library currently is the standard LoRaWAN library to use with the Arduino framework.
It is open source, well-documented, well-maintained and different from Heltec’s library, it is not limited to a single microcontroller (family) and not limited to boards from one specific manufacturer.

Also see: Overview of LoRaWAN Libraries

LoRaMac-node is a LoRaWAN reference library created by Semtech. It does not support the Arduino framework however. Both LoRaMac-node and the Arduino framework are open source.
Heltec has ported LoRaMac-node to the Arduino framework but they have made their port proprietary. Heltec does not provide essential parts of the source code and their library can only be used with Heltec ESP32 boards.

Heltec has taken from the open source community to benefit their products, but does not contribute back to the community. Instead they have made their port closed source and proprietary instead. This is poor practice and conflicts with the mindset and mentality of the open source and Arduino communities.
As a result Heltec’s ESP32_LoRaWAN library will only be used and tested by a limited number of users.


Thanks for your answer.

I’m still working on this topic and now with the MCCI LMIC library.
I still have compilation problem with the following error message :
‘EV_TXSTART’ was not declared in this scope

Since 5d, do I read many internet pages with different samples, github references, TTN configurations (msb or lsb declaration of DevEUI, AppEUI,…)

Globaly I’m lost in the middle of all those informations…

Is there some one who wrote a “complete” setup to connect the Heltec ESP32 V2 on the TTN network with the arduino code, the TTN node configuration,… and would like to share because I don’t find the correct complete methodology for this connection.

Thanks before hands,

This error message indicates a problem in either the MCCI LMIC library, the (included example) sketch that you are using and/or a mismatch between these two.

What is the exact version of the MCCI LMIC library that you are using (see its file) and which example sketch included with that library are you using?

In addition, please specify the corect full name of your board (see topic start).

What IDE are you using, Arduino or PlatformIO and which version?
How exactly did you specify or add the MCCI LMIC library to your IDE?

Probably unrelated to your error message but what are your pin mappings and what are your regional settings? Have you selected the correct board in your IDE?

Please provide sufficient information and be specific.

First thanks for your answer.
Then here are the details informations :

  • I use a Heltec module : OLED WIFI Lora 32.
  • I work with Arduino IDE 1.8.13.
  • as working board, I select "Tools, Heltec ESP32 Arduino, WifiLora32(V2)
  • I use the MCCI LoRaWAN LMIC library, downloaded from github
  • its version is 3.2.0.
  • I open the sample file “ttn-abp.ino” from example directory.
  • the compilation doesn’t give an error message.
    After your last message do I clean my libraries and download the MCCI LoRaWAN library.
    Thanks for the recommandations of your last message.

Before going in the modification of this sample program, can you confirm that I’m working on the correct sample program for my module.

Thanks before hands,