Big ESP32 + SX127x topic part 3

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:
http://www.lilygo.cn/prod_view.aspx?TypeId=50003&Id=1136&FId=t3:50003:3

I don’t have any problems connecting it to TTN/Cayenne. However, my v1.3 just does not work:
http://www.lilygo.cn/prod_view.aspx?TypeId=50003&Id=1253&FId=t3:50003:3

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:
MCCI_LoRaWAN_LMIC_library-20200619T092138Z-001.zip
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

Hello,
I try to connect a Heltec Lora 32 to TTN.
I work with IDE Arduino and the ESP32_LoRaWAN library (https://github.com/HelTecAutomation/ESP32_LoRaWAN).
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.

2 Likes

Thanks for your answer.

Hello,
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 library.properties 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.

Hi,
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