Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No way to force US Sub-band #2 (channels 8-15) to join Helium network reliably #140

Open
Joshbloam opened this issue Dec 22, 2024 · 5 comments

Comments

@Joshbloam
Copy link

Joshbloam commented Dec 22, 2024

I have spent hours trying to find a way to force the modem to only send joins on US915 Sub-band 2 (channels 8-15) used by Helium. I can force the modem to use sub-band 1 by setting modem.begin(US915_HYBRID) and talk to The Things Stack successfully. The problem is Helium in the US uses sub-band 2 and I need a way to force joins on only US915 channels 8-15.

Does anyone know how to do this? My fear is there is no way to do this currently. Could someone look at creating a variation of US915_HYBRID which only uses US915 band 2 (Helium) instead of sub-band 1 (TTS)?

Currently, I can get successful joins 1 out of 50 attempts. I can provide my entire sketch if needed.

if (!modem.begin(US915)) {
  Serial.println("Failed to start module");
  while (1) {}
};
modem.disableChannel(0);
modem.enableChannel(1);  // only one enabled for Helium
modem.disableChannel(2);
modem.disableChannel(3);
modem.disableChannel(4);
modem.disableChannel(5);
modem.disableChannel(6);

modem.setADR(true);
modem.dataRate(0);  //set data rate to be 0/5, Spreading Factor 7 and channel bandwidth to 125kHz. SF7BW125

modem.configureClass(CLASS_C);
int connected = modem.joinOTAA(appEui, appKey);
while (!connected) {
  Serial.println("Something went wrong; are you indoor? retring after 30sec");
  delay(1000);
  int connected = modem.joinOTAA(appEui, appKey);
}
@Joshbloam
Copy link
Author

Never mind. I figured out how to set a custom channel mask for US915 Helium!

@Deiikerc
Copy link

Hello, could you tell me how you configured custom channels for US915? I have an SX1302 that I'm using with the packet forwarder and it seems that the node (initially) has problems transmitting data to the gateway.

@Joshbloam
Copy link
Author

Looking through the source I discovered a sendmask method. I set the reginal band to US915 and apply the mask.
Through trial and error this seems to keep joins on sub-band2 channels 8-15 plus channel 65 only.

modem.begin(US915)
modem.sendMask("ff0000000000000080020000");

@Deiikerc
Copy link

Deiikerc commented Jan 2, 2025

Looking through the source I discovered a sendmask method. I set the reginal band to US915 and apply the mask. Through trial and error this seems to keep joins on sub-band2 channels 8-15 plus channel 65 only.

modem.begin(US915) modem.sendMask("ff0000000000000080020000");

I'm really grateful, I was having a lot of trouble getting my gateway to listen to this node.

@Joshbloam
Copy link
Author

Looking through the source I discovered a sendmask method. I set the reginal band to US915 and apply the mask. Through trial and error this seems to keep joins on sub-band2 channels 8-15 plus channel 65 only.
modem.begin(US915) modem.sendMask("ff0000000000000080020000");

I'm really grateful, I was having a lot of trouble getting my gateway to listen to this node.

Glad you had success!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants