Big ESP32 + SX127x topic part 3

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,

They aren’t specific to a module but that is the best one to start with - you will need to set up the pins - the I/O for the module - so you’ll need to look at the documentation for the Heltec module and read down through the code to the pins section.

You should read the Topic Start carefully.

OLED WIFI LoRa 32 is not the correct full name of your board.

Your board is one of the following:

  • Heltec Wifi LoRa 32
  • Heltec Wifi LoRa 32 V2

V2 will have “V2” marked on the PCB.

The available Heltec Wifi LoRa 32 boards are listed exactly as follows:

  • Heltec Wifi LoRa 32
  • Heltec Wifi LoRa 32(V2)

The board you select must match your hardware. Select V2 only if you have a real V2 board.

As described in the Topic Start ttn-abp.ino is the correct example sketch to start with.
Important is to use the correct pin mappings and corresponding software configuration settings for your board. These are also described in the topic start.

Also note the I2C (SCL, SDA) remarks for V2 in the Topic Start. These are essential for getting the OLED display or other I2C peripherals to work (after you have the basics working).

For the correct format of the LoRaWAN keys and ID’s see:
Format of Keys and ID’s for Arduino LMIC libraries [HowTo]

Thanks bluejedi for this answer.
My module is really a V2. So the correct description is Heltex Wifi Lora 32 (V2).
I use this definition in the selection of my hardware.
Now I will check the pin mappings carrefuly. This part is not so easy and I appologise for those kind of question.
I will give you feedback as soon as possible.

Have not been active with my nodes for a while (they worked) but have started tinkering with the wireless stick lite and cubecell AB01. Both have impressive standby currents in my view of well under 1 ma while powered on battery (nothing connected to the usb interface).

With both using only a provided lipo I was seeing currents down to 40-50 uA. While the cubecell has a different architecture I was especially impressed with the wireless stick lite given that it has the full ESP32 onboard; had not seen such standby currents yet, especially not given that it has integrated lora peripherals as well!

Please note that I was trying to get down to the lowest power consumption and hence was using a clock speed of 80mhz for the wireless stick lite vs the standard 240mhz. All lora transmissions worked properly using the MCCI library OTA example (nss: 18, rst 14, dio { 26,35,34).

Also looking at the cost (around 12 euro excluding shipping) these are real gamechangers in my view!

1 Like

Was that for the Wireless Stick or the CubeCell?
The CubeCell HTCC-AB01 should be able to get (much) lower than 40 uA.

If you don’t need WiFi and Bluetooth you should be able to clock the ESP32 even lower, down to 10 MHz. See: ESP32 power consumption at different CPU speeds

Hello! I am trying to use ttgo t-beam v1.1 but the only way I could find was using paxcounter project. I would like to write my code as I wish and be able to deep sleep the device, put a button interrupt, connect to TTN and send the data in the format I choose. The paxcounter project let me connect to TTN, but I can’t do what I want because I am not so good at modifying that code (which is very ample). Is there any alternative for this simplist app I’m trying to create? Thanks.

T-Beam versions 1.x have a special power management chip.
For T-Beam specific things I suggest to visit the TTGO T-Beam topic instead.

Paxcounter is rather complex if you only want to write some basic code yourself.
For connecting to TTN you might want to start with the basic examples from the MCCI LMIC library as described in the topic start.
Note that you will have to use the proper pin mappings for your T-Beam version and that you have to enable/configure the power management chip (see T-Beam topic).

First try to get these basics working, from there you can extend the code with support for GPS and other things.

Keep in mind you only connect to TTN once and need to store the ‘connection’ information. You can not join every time you want to send data because you will run out of join opportunities.

I appreciate very much your answers! Thanks for the fast replays! Before trying the Paxcounter (the only way I succeded to connect to TTN) I tried LMIC library but with no succes. Now after you suggested me, I started on git an issue because I can’t succed in running the ttn-otaa.ino example from LMIC. Have a look here please! Thanks.

In this topic you have not provided any information whatsoever so I’m not sure what you expect from filing an issue for MCCI LMIC on Github.

Your issue will very probably not be caused by a shortcoming in MCCI LMIC.

If you want to get any useful input on this forum you will at least have to provide sufficient detailed information about your problem, what exactly is not working, what you have tried, what sketch you are using, what settings and pin mappings you have used, what error messages do you get, etc.

You can use the search option to find any relevant information for your issue on the forum.

Also don’t paste links without any further description (e.g. Github).
Users on the forum don’t like having to go elsewhere to read your information.

Try the steps already described on the forum.
If something is not working it is usually ones own fault (e.g. incorrect settings used, typo’s, not carefully following steps provided) and not because a bug in examples, libraries etc.

And if you do not setup the power management chip on a T-Beam v1.x correctly then it will not connect to TTN.