Hello, my Htcc-ab02a only reboots

Hello, i have cube cell 1/2aa Lora node, and it now just reboots, how can i fix that?

15:12:42.652 -> Copyright @ 2019 Heltec Automation.All rights reserved.
15:12:42.791 -> Copyright @ 2019 Heltec Automation.All rights reserved.
15:12:42.933 -> Copyright @ 2019 Heltec Automation.All rights reserved.
15:12:43.025 -> Copyright @ 2019 Heltec Automation.All rights reserved.
15:12:43.166 -> Copyright @ 2019 Heltec Automation.All rights reserved.
15:12:43.306 -> Copyright @ 2019 Heltec Automation.All rights reserved.
15:12:43.401 -> Copyright @ 2019 Heltec Automation.All rights reserved.
15:12:43.540 -> Copyright @ 2019 Heltec Automation.All rights reserved.
15:12:43.681 -> Copyright @ 2019 Heltec Automation.All rights reserved.
15:12:43.822 -> Copyright @ 2019 Heltec Automation.All rights reserved.
15:12:43.915 -> Copyright @ 2019 Heltec Automation.All rights reserved.
15:12:44.055 -> Copyright @ 2019 Heltec Automation.All rights reserved.
the code is normal sending via LoRa

Can you show specific code?

1 Like

That’s simply the device bootloader starting, you need to share what code you uploaded and if you have anything attached to the reset pin too

Code, sorry for this type of pasting, i don’t realy know how to do it correctly, i just deleted LoRa keys and deveui, another thing is like in my code, and i found the way to this device works, i use luke ups module for 18650, and when there is no battery there the device won’t start at all, but when there is a battery it works correctly

#include “LoRaWan_APP.h”
#include “Arduino.h”
#include <CayenneLPP.h>//the library is needed ��https://github.com/ElectronicCats/CayenneLPP��
#include <Wire.h>
#include “Adafruit_SHT31.h”
#include <NDIRZ16.h>
#include <SoftwareSerial.h>
set LoraWan_RGB to Active,the RGB active in loraWan
RGB red means sending;
RGB purple means joined done;
RGB blue means RxWindow1;
RGB yellow means RxWindow2;
RGB green means received done;

/* OTAA para*/

/* ABP para*/

/LoraWan channelsmask, default channels 0-7/

/LoraWan region, select in arduino IDE tools/
LoRaMacRegion_t loraWanRegion = ACTIVE_REGION;

/LoraWan Class, Class A and Class C are supported/
DeviceClass_t loraWanClass = LORAWAN_CLASS;

/the application data transmission duty cycle. value in [ms]./
uint32_t appTxDutyCycle = (10 * 60 * 1000 - 41 * 1000);

bool overTheAirActivation = LORAWAN_NETMODE;

/ADR enable/
bool loraWanAdr = LORAWAN_ADR;

/* set LORAWAN_Net_Reserve ON, the node could save the network info to flash, when node reset not need to join again */

/* Indicates if the node is sending confirmed or unconfirmed messages */
bool isTxConfirmed = LORAWAN_UPLINKMODE;

/* Application port /
uint8_t appPort = 2;
Number of trials to transmit the frame, if the LoRaMAC layer did not
receive an acknowledgment. The MAC performs a datarate adaptation,
according to the LoRaWAN Specification V1.0.2, chapter 18.4, according
to the following table:

Transmission nb Data Rate
1 (first) DR
2 DR
3 max(DR-1,0)
4 max(DR-1,0)
5 max(DR-2,0)
6 max(DR-2,0)
7 max(DR-3,0)
8 max(DR-3,0)

Note, that if NbTrials is set to 1 or 2, the MAC will not decrease
the datarate, in case the LoRaMAC layer did not receive an acknowledgment
uint8_t confirmedNbTrials = 4;

Adafruit_SHT31 sht31 = Adafruit_SHT31();

SoftwareSerial mySerial(GPIO2, GPIO1);
NDIRZ16 mySensor = NDIRZ16(&mySerial);
unsigned long i;
/* Prepares the payload of the frame */
static void prepareTxFrame( uint8_t port )
/*appData size is LORAWAN_APP_DATA_MAX_SIZE which is defined in “commissioning.h”.
appDataSize max value is LORAWAN_APP_DATA_MAX_SIZE.
if enabled AT, don’t modify LORAWAN_APP_DATA_MAX_SIZE, it may cause system hanging or failure.
if disabled AT, LORAWAN_APP_DATA_MAX_SIZE can be modified, the max value is reference to lorawan region and SF.
for example, if use REGION_CN470,
the max value for different DR can be found in MaxPayloadOfDatarateCN470 refer to DataratesCN470 and BandwidthsCN470 in “RegionCN470.h”.

// Vext ON
digitalWrite(Vext, LOW);


while (!sht31.begin(0x44)) { // Set to 0x45 for alternate i2c addr
Serial.println(“Couldn’t find SHT31”);
float t = sht31.readTemperature();
float h = sht31.readHumidity();

// Vext OFF
// digitalWrite(Vext, HIGH);

if (! isnan(t)) { // check if ‘is not a number’
Serial.print("Temp *C = "); Serial.println(t);
} else {
Serial.println(“Failed to read temperature”);

if (! isnan(h)) { // check if ‘is not a number’
Serial.print("Hum. % = "); Serial.println(h);
} else {
Serial.println(“Failed to read humidity”);
while (!mySensor.measure()) {
Serial.print("CO2 Concentration is ");


// if(millis()> i +(1601000)){
// break;
// }
// ppm=mySensor.ppm;

float ppm = mySensor.ppm;
i = 0;
digitalWrite(Vext, LOW);
float batteryVoltage = (getBatteryVoltage() * 0.001);
lpp.addTemperature(1, t);
lpp.addRelativeHumidity(2, h);
lpp.addAnalogInput(3, ppm * 0.01);
lpp.addAnalogInput(4, batteryVoltage);
appDataSize = lpp.getSize();
memcpy(appData, lpp.getBuffer(), appDataSize);

void setup() {
deviceState = DEVICE_STATE_INIT;
pinMode(Vext, OUTPUT);


void loop()
switch ( deviceState )
LoRaWAN.init(loraWanClass, loraWanRegion);
deviceState = DEVICE_STATE_JOIN;
prepareTxFrame( appPort );
// Schedule next packet transmission
txDutyCycleTime = appTxDutyCycle + randr( 0, APP_TX_DUTYCYCLE_RND );
deviceState = DEVICE_STATE_INIT;

now i try to unsolder all things and it continues reboots
when i add some sensor it initialize but cannot join by LoRa

Will it work properly without adding any sensors?

while (!sht31.begin(0x44)) { // Set to 0x45 for alternate i2c addr

It should be wait until sensor detect

when there is no battery there the device won’t start at all

Check you USB cable and power.

thats my mistake, not at all, it continues to reboots, about sht31, it connected and worked allright

No, without any sensors it continue reboots

Regardless I upload a basic led test app just to make sure you have no hardware issues, once you know the device is ok then move forward.

99% thats because something burns up, but my knollege doesnt full enought to detect what burns, i have modules woth this problem and one with botloader, i can use 2 of them as a parts to fix at least one

the problems what i have now

  1. Device without sensor on (5v pin and somewhere of GPIO’s) reboots avery 0.03 sec
  2. If the sensor conected device initialises but cannot join LoRa
  3. I have 3 of this modules that doesnt work(2 with same problem and 1 problem with bootloader)

I cant help sorry, your jumping all over the place with issues - you need to be clear re what are specific heltec device issues, hardware issues and coding issues

Are all your devices working with a simple upload of say a led blinker? they dont reboot?

Maybe just trying to check with a multimeter the reset/user button will be a good start.
Unplug everything, put the continuity mode, probes on the button pins and click the button.

i use UNI-t UT50C multimeter, and

  1. between 1 and 3.3v pin there multimeter squeaks, same as with ground pin with 1
  2. between 2 and 3.3v pin no squeaking, but with ground there is a squeak
  3. between 3 and 3.3v have ~700 on multimeter screen until the button pressed, and with ground not squeaking until button pressed
  4. bettwen 4 and 3.3v there is 1860 on my multimeter, and between ground it squeaks

between 1, 2,3, 4 and ground there is 0.9M ohm resistance,
between 2, 4 and 3.3 there is 2.8 M ohm resistance
and between 1 and 3.3 there is 5 Mohm resistance