Trouble Joining network

I am using HTCC-ABO2A and HTCC-ABO2, but am unable to join console.helium.
I am running Platform.IO
I have a running RAK hotspot in my house.

Thank you for any help you can give me.

joining...TX on freq 903500000 Hz at DR 3 power 20 dBm
TX on freq 903500000 Hz at DR 3 power 20 dBm
Event : Tx Done
RX on freq 926900000 Hz at DR 13
Event : Rx Timeout
RX on freq 923300000 Hz at DR 8
Event : Rx Timeout
TX on freq 902500000 Hz at DR 0 power 20 dBm
TX on freq 902500000 Hz at DR 0 power 20 dBm
Event : Tx Done
RX on freq 923900000 Hz at DR 10
Event : Rx Timeout
RX on freq 923300000 Hz at DR 8
Event : Rx Timeout
TX on freq 903300000 Hz at DR 3 power 20 dBm
TX on freq 903300000 Hz at DR 3 power 20 dBm
Event : Tx Done
RX on freq 926300000 Hz at DR 13
Event : Rx Timeout
RX on freq 923300000 Hz at DR 8
Event : Rx Timeout
TX on freq 902300000 Hz at DR 0 power 20 dBm
TX on freq 902300000 Hz at DR 0 power 20 dBm
Event : Tx Done
RX on freq 923300000 Hz at DR 10
Event : Rx Timeout
RX on freq 923300000 Hz at DR 8
Event : Rx Timeout
TX on freq 903700000 Hz at DR 3 power 20 dBm
TX on freq 903700000 Hz at DR 3 power 20 dBm
Event : Tx Done
RX on freq 927500000 Hz at DR 13
Event : Rx Timeout
RX on freq 923300000 Hz at DR 8
Event : Rx Timeout

//C:\Users\terre.platformio\packages\framework-arduinocubecell\libraries\LoRa\src\LoRaWan_APP.h
#include “LoRaWan_APP.h”
#include “Arduino.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*/
 uint8_t devEui[] = { 0x49, 0x0A, 0x66, 0xF7, 0x71, 0xF9, 0x81, 0x60 };
 uint8_t appEui[] = { 0xA7, 0x30, 0xB0, 0x82, 0xF6, 0xF9, 0x81, 0x60 };
 uint8_t appKey[] = { 0xAC, 0x51, 0xEF, 0x18, 0xCA, 0x2D, 0x19, 0x00, 0xA7, 0x14, 0x16, 0x4A, 0xF3, 0xE6, 0xC5, 0x25 };

/* ABP para*/
uint8_t nwkSKey[] = { 0x15, 0xb1, 0xd0, 0xef, 0xa4, 0x63, 0xdf, 0xbe, 0x3d, 0x11, 0x18, 0x1e, 0x1e, 0xc7, 0xda,0x85 };
uint8_t appSKey[] = { 0xd7, 0x2c, 0x78, 0x75, 0x8c, 0xdc, 0xca, 0xbf, 0x55, 0xee, 0x4a, 0x77, 0x8d, 0x16, 0xef,0x67 };
uint32_t devAddr =  ( uint32_t )0x007e6ae1;

/*LoraWan channelsmask, default channels 0-7*/ 
uint16_t userChannelsMask[6]={ 0x00FF,0x0000,0x0000,0x0000,0x0000,0x0000 };

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


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

/*the application data transmission duty cycle.  value in [ms].*/
uint32_t appTxDutyCycle = 15000;

/*OTAA or ABP*/
bool overTheAirActivation = true;

/*ADR enable*/
bool loraWanAdr = false;

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

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

/* 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;

/* 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".
	*/
    appDataSize = 4;
    appData[0] = 0x00;
    appData[1] = 0x01;
    appData[2] = 0x02;
    appData[3] = 0x03;
}


void setup() {
	Serial.begin(115200);
#if(AT_SUPPORT)
	enableAt();
#endif
	deviceState = DEVICE_STATE_INIT;
	LoRaWAN.ifskipjoin();
}

void loop()
{
	switch( deviceState )
	{
		case DEVICE_STATE_INIT:
		{
#if(LORAWAN_DEVEUI_AUTO)
			LoRaWAN.generateDeveuiByChipID();
#endif
#if(AT_SUPPORT)
			getDevParam();
#endif
			printDevParam();
			LoRaWAN.init(loraWanClass,loraWanRegion);
			deviceState = DEVICE_STATE_JOIN;
			break;
		}
		case DEVICE_STATE_JOIN:
		{
			LoRaWAN.join();
			break;
		}
		case DEVICE_STATE_SEND:
		{
			prepareTxFrame( appPort );
			LoRaWAN.send();
			deviceState = DEVICE_STATE_CYCLE;
			break;
		}
		case DEVICE_STATE_CYCLE:
		{
			// Schedule next packet transmission
			txDutyCycleTime = appTxDutyCycle + randr( 0, APP_TX_DUTYCYCLE_RND );
			LoRaWAN.cycle(txDutyCycleTime);
			deviceState = DEVICE_STATE_SLEEP;
			break;
		}
		case DEVICE_STATE_SLEEP:
		{
			LoRaWAN.sleep();
			break;
		}
		default:
		{
			deviceState = DEVICE_STATE_INIT;
			break;
		}
	}
}

Try changing your Channels mask to sub-band 2, channels 8-15 like so.

uint16_t userChannelsMask[6]={ 0xFF00,0x0000,0x0000,0x0000,0x0000,0x0000 };

Helium docs says sub-band 2 is important.

Also is any activity showing up for the device in the Helium Console? I’m having the same problem with an HTCC-AB02 dev board. I have an HTCC-AB02S GPS board that connects no problem, using the same sketch from three years ago, so I know it’s not a coverage issue.

@sysfu thank you for your suggestion. Unfortunately it did not change the behavior. My board still does not join the network.

To answer your question, the Helium Console does not show any activity at all.

I’m beginning to wonder if this has something to do with the migration to Solana. Is activation of new devices not possible for the time being? I have emailed nova sales to find out.

Just found this documentation which mentions some default Heltec library settings that are incompatible with the Helium network, especially in North America. Will try testing these myself and update this thread with the results.

Thank you @sysfu I look forward to what you find out.

Well I started from scratch with the platformIO instructions, which uses LongFi, which I thought was outdated, but anyway…
I ended up ignoring the instructions I read somewhere about indianness.

Instructions were:
devEui = little (reverse)
appEui = little (reverse)
appKey = big (normal)

I switched the littles to normal and I am connecting now.

Also setting these in the platformio.ini file must have set everything straight.

board_build.arduino.lorawan.region = US915
board_build.arduino.lorawan.class = CLASS_A
board_build.arduino.lorawan.netmode = OTAA
board_build.arduino.lorawan.uplinkmode = UNCONFIRMED
board_build.arduino.lorawan.rgb = DEACTIVE
board_build.arduino.lorawan.debug_level = FREQ_AND_DIO
board_build.arduino.lorawan.adr = OFF
board_build.arduino.lorawan.at_support = OFF
board_build.arduino.lorawan.net_reserve = OFF

Thanks for your help.
I am still interested in what you find out about Heltic/Helium/North America.

Glad to see you got it working, I’ll try these settings and see if they work with my CubeCell Dev Plus board.

I did get a response from Nova sales dept and they confirmed that the Heltec devices will still activate post Solana migration.

Can you please share a download link to the sketch that you used successfully?

I’m currently using a Helium-LoraWAN-txrx-demo. This can be found under Arduino IDE File Menu => Examples => Examples for CubeCell Plus menu section => LoraWanMinimal => SendReceive

sysfu, I am using PlatformIO, not Arduino IDE.

C:\Users\terre.platformio\packages\framework-arduinocubecell\libraries\LoRa\examples\LoRaWAN\LoRaWan\LoRaWan.ino

Would you like me to post the code I am using?

Please do. I figured out how to get Platform.io going last week so any working example code you could share would be a nice way to eliminate potential software misconfigurations.

So make sure you have an empty project compiling for one of your heltec boards. I will start posting some code.

@sysfu
I posted the code in a new topic called:

PlatformIO LoraWan project code