SX1262 Applications

Has anyone used the SX1262 LoRa device for TTN nodes under the Arduino platform ?

Looking in particular for some working Arduino code.

1 Like

These chips have a very different interface from the SX127x normally used.

There’s been some discussion of what would be involved in adding support to one fork of LMiC here

But currently no resource committed to the project of doing so - as with most open source projects, the work doesn’t typically happen until someone with the capability to do or fund it has a need justifying the effort.

What is your goal in changing to the SX126x?

1 Like

I make some test with SX1262, my code is here: https://github.com/ngraziano/LMICPP-Arduino/tree/master/examples/simple_sx1262 , it is derived from LMIC with a lot modification just to test.

I only test it with EU868 and one SX1262 board with TCXO (like this one : https://www.nicerf.com/product_193_292.html). It only compile with platformio.

Look at Thomas Telkamp’s talk about Lacuna at The Things Conference. Specifically at the linked timestamp he talks about the sx1262:

He lists the reasons why we should switch to the sx126x:

  • More power efficient
  • More features
  • Smaller footprint
  • Less external components
  • Can use them for the satellite service
1 Like

I have been working on a hardware design that will work with a range of LoRa devices. The DRF1217x and RFM9x modules for instance.

Adding support for the SX1262 is not difficult, but the question arizes if the device is compatible to be used with TTN, hence the question about Arduino applications, I would like to test the SX1262 with TTN.

I appreciate the software interface to the SX1262 is very different to the register centric SX127x, but I have written an Arduino library for the SX1280 and the interface to the SX1262 is very similar.

2 Likes

OK, thanks, very useful.

If not for the Arduino part of the question, the Onethinx module is based on SX1262 and it works with TTN. However, completely different IDE to work with.

That was one of the things I wanted to check, to see if using the DC-DC converter option (which should save power) does actually cut the power consumption and if it also affects sensitivity.

Anyway I now have my Arduino library for SX1272 working, it was converted from the SX12809 one, so I can do the tests.

Ah, there is always a but…

For the SX1262 modules I have, only power to the core is from the DC-DC converter, the PA is powered from VCC (3.3V). The net effect is that current consumption during 10dBm TX is circa 50mA, much the same as an SX1278.

The SX1261 however, does power the PA from the DC-DC converter and the data sheet claims the current consumption at 10dBm would be 14.2mA.

For a node with a low sleep current, where most all of the battery power is used for transmissions, the SX1261 could double battery life.

Anyone know a supplier of SX1261 modules ?

I would prefer not to use it in a deployment but to try the idea there’s Semtech’s own SX1261MB2BAS oddly enough US vendor Digikey has only the 868 version. I guess one could still check the TX power consumption into a dummy load, RF power meter, or DC block and attenuators stepping down to safely feed an SA, or someone really determined could change the surrounding networks, presumably the design docs include the 915 component values.

The silicon itself seems available.

Not so keen to invest the money to test a SX1261MB2BAS, willing to accept freebies though.

I wonder if the different interface has put developers off, the SX1261/2 (and SX1280/1) are not register centric like the SX127x, but its not so difficult a change really ?

Although the silicon can be bought, its the availabilty of modules such as RFM96 etc that has a major affect on the application take up.

Written a complete new stack for these devices for our Onethinx LoRaWAN core.

I love these devices, lower power consumption and higher output.

I’ve seen that your topic was automatically closed … I opened it :sunglasses:

https://www.thethingsnetwork.org/forum/t/onethinx-core-module/22633/48

One oddity that does not assist compatibility between the SX126x and SX127x devices is the way they handle the ‘LoRa Sync Word’

The Semtech SX126x data sheet says;

Set to 0x3444 for Public Network
Set to 0x1424 for Private Network

And the SX127x datasheet says;

LoRa Sync Word - Value 0x34 is reserved for LoRaWAN networks.

So 16bits of ‘Sync Word’ for SX126x and 8bits of ‘Sync Word’ for SX127x.

Apparently Public Network = LoRaWAN network.

And yes for a Private (non LoRaWAN) network you set the SX126x to 0x1424 and the SX127x to 0x12.

I’m not sure this really different on the air, vs. different in how you configure it, but it could be interesting to ask Semtech about if there’s a way to do so.

I’ve noticed that the detection of the sync word is fairly leaky in terms of mismatches still being picked up some fraction of the time by gateways; it might be interesting to do statistical tests with different values in the node and see what is most successful in being detected by a gateway with TTN’s normal public lorawan network sync word setting.

Oh I have, and the developer portal guys did say how the LoRa sync word is configured, but as far as I know there is no explanation in the data sheets. Can you spot how its done, in essense (SX126x 16bit versus SX127x 8bit)

0x3444 = 0x34
0x1424 = 0x12

I too have noticed the detection of sync word is ‘leaky’ (I do like to check these things) which you might be inclined to think is a bug or at least worthy of a proper explanation.

1 Like

According to the documentation,

RF transmitter output (SX1261 low power PA or SX1262 high power PA)
That probably explains why.

Hi Grazy,

From the code you have,

`.dio = {/* busy */ 9, /* DIO1 */ 8},`

How does this work? Is the busy Pin used same as DIO0 in the SX1276?

No, the BUSY pin is the BUSY pin. It indicates when the SX1261/2 is BUSY doing something as in it has not finished processing the last command.

The DIO0 pin on a SX1276 is normally programmed to tell you something has happened, a packet received, finished sending a packet etc.

Hi,
As @LoRaTracker say DIO0 from SX1276 and BUSY from SX1262 has nothing in common.

SX1262 do not have DIO0 and you can program the chip to send all events on DIO1 (this is simpler than SX1271)
But SX1262 has a BUSY pin that the SX1276 do not have. The code need to know connection of BUSY pin and DIO1 pin.

I reuse the same struct for the new chip.
for SX1276 .dio is [DIO0, DIO1]
for SX1262 .dio is [BUSY, DIO1]

The values are not used the same way in the library depending on which radio module is define for object radio line 32.

I may have to add more explanation to the README or make two different structure (it will make the compiled library larger).