LoPy - Raw Lora mode for connecting TTN
-
Hello,
I am trying to change the parameters of my LoRa node by configuring the node is raw mode i.e (LoRa(mode=LoRa.LORA)). But I am getting following error
{
Traceback (most recent call last):
File "<stdin>", line 25, in <module>
OSError: the requested operation is not possiblePycom MicroPython 1.18.1.r1 [v1.8.6-849-b0520f1] on 2018-08-29; LoPy4 with ESP32
Type "help()" for more information.}
My sample code is as follows:
{
import time
import pycom
import network
from network import LoRa
import struct
import ubinascii
import binascii
import socket
import pycom
import timelora = LoRa(mode=LoRa.LORA, frequency=868100000, power_mode=LoRa.ALWAYS_ON, tx_power=14, bandwidth=LoRa.BW_250KHZ, sf=7, preamble=8, coding_rate=LoRa.CODING_4_5, tx_iq=False, rx_iq=False)
lora.init(mode=LoRa.LORA, frequency=868100000, power_mode=LoRa.ALWAYS_ON, tx_power=14, bandwidth=LoRa.BW_250KHZ, sf=7, preamble=8, coding_rate=LoRa.CODING_4_5, tx_iq=False, rx_iq=False)
app_eui = ubinascii.unhexlify('xxxxxxxxxxxxxxxxxxxxxxx')
app_key = ubinascii.unhexlify('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')lora.join(activation=LoRa.OTAA, auth=(app_eui, app_key), timeout=0)
while not lora.has_joined():
time.sleep(2.5)
print('Not yet joined...')
if lora.has_joined():
time.sleep(2.5)
print ("Joined the network")
s = socket.socket(socket.AF_LORA, socket.SOCK_RAW)
s.setsockopt(socket.SOL_LORA, socket.SO_DR, 5)pycom.heartbeat(False)
while True:
s.setblocking(True)
s.send("30")
time.sleep(1.5)
}I would like to know if it is even possible to configure the node in raw Lora mode for connecting it to TTN network server?
If yes where am I going wrong ?
(Note: I am using a multichannel gateway)
Please help
Thanks and Regards,
Aniket
-
@aniket_yeole you can change some of the parameters (including SF) using
setsockopt
. To change the frequency you’ll need to remove all channels and re-add channels with your chosen frequency. But beware, the network can change those settings via MAC commands.
-
@jcaron
I wanted to change the parameters like BW, Spreading Factor, Transmitting Power and to transmit on particular frequency manually. How to enforce the lopy to do it in LoRaWAN mode?
-
@aniket_yeole what exactly are you trying to achieve? Connecting to the network means using LoRaWAN, so why would you want/need to use raw LoRa? That would require you to re-implement the LoRaWAN stack yourself.
By definition, if you use raw LoRa, you can’t use
join
as that’s part of LoRaWAN...Just use LoRaWAN mode and you should be all set...