Skip to content

Commit

Permalink
set LowDataRateOptimize if symbol time > 16ms.
Browse files Browse the repository at this point in the history
  • Loading branch information
Wei1234c committed Jan 15, 2018
1 parent 0e547ef commit 038f804
Show file tree
Hide file tree
Showing 16 changed files with 84 additions and 56 deletions.
8 changes: 4 additions & 4 deletions codes/controller/controller.py
Expand Up @@ -29,13 +29,13 @@ def __init__(self,
pin_id_led = ON_BOARD_LED_PIN_NO,
on_board_led_high_is_on = ON_BOARD_LED_HIGH_IS_ON,
pin_id_reset = PIN_ID_FOR_LORA_RESET,
blink_on_start = (2, 0.5, 0.5)):
blink_on_start = (2, 0.5, 0.5)):

self.pin_led = self.prepare_pin(pin_id_led)
self.on_board_led_high_is_on = on_board_led_high_is_on
self.pin_reset = self.prepare_pin(pin_id_reset)
self.spi = self.prepare_spi(self.get_spi())
self.pin_reset = self.prepare_pin(pin_id_reset)
self.reset_pin(self.pin_reset)
self.spi = self.prepare_spi(self.get_spi())
self.transceivers = {}
self.blink_led(*blink_on_start)

Expand Down
4 changes: 2 additions & 2 deletions codes/demo/LoRaDuplex.py
Expand Up @@ -40,9 +40,9 @@ def sendMessage(lora, outgoing):
def receive(lora):
if lora.receivedPacket():
lora.blink_led()
payload = lora.read_payload()

try:
try:
payload = lora.read_payload()
print("*** Received message ***\n{}".format(payload.decode()))
except Exception as e:
print(e)
Expand Down
2 changes: 1 addition & 1 deletion codes/demo/LoRaReceiver.py
Expand Up @@ -4,9 +4,9 @@ def receive(lora):
while True:
if lora.receivedPacket():
lora.blink_led()
payload = lora.read_payload()

try:
payload = lora.read_payload()
print("*** Received message ***\n{}".format(payload.decode()))
except Exception as e:
print(e)
Expand Down
2 changes: 1 addition & 1 deletion codes/demo/LoRaSetSpread.py
Expand Up @@ -43,9 +43,9 @@ def sendMessage(lora, outgoing):
def receive(lora):
if lora.receivedPacket():
lora.blink_led()
payload = lora.read_payload()

try:
payload = lora.read_payload()
print("*** Received message ***\n{}".format(payload.decode()))
except Exception as e:
print(e)
Expand Down
2 changes: 1 addition & 1 deletion codes/display/display_ssd1306_i2c.py
@@ -1,5 +1,5 @@
# https://learn.adafruit.com/micropython-hardware-ssd1306-oled-display/software

import time
import machine
import ssd1306

Expand Down
18 changes: 12 additions & 6 deletions codes/sx127x/sx127x.py
Expand Up @@ -102,7 +102,7 @@ def init(self, parameters = None):


# config
self.setFrequency(self.parameters['frequency'])
self.setFrequency(self.parameters['frequency'])
self.setSignalBandwidth(self.parameters['signal_bandwidth'])

# set LNA boost
Expand All @@ -113,13 +113,17 @@ def init(self, parameters = None):

self.setTxPower(self.parameters['tx_power_level'])
self._implicitHeaderMode = None
self.implicitHeaderMode(self.parameters['implicitHeader'])
self.implicitHeaderMode(self.parameters['implicitHeader'])
self.setSpreadingFactor(self.parameters['spreading_factor'])
self.setCodingRate(self.parameters['coding_rate'])
self.setPreambleLength(self.parameters['preamble_length'])
self.setSyncWord(self.parameters['sync_word'])
self.enableCRC(self.parameters['enable_CRC'])

# set LowDataRateOptimize flag if symbol time > 16ms (default disable on reset)
if 1000 / (self.parameters['signal_bandwidth'] / 2**self.parameters['spreading_factor']) > 16:
self.writeRegister(REG_MODEM_CONFIG_3, 0x04 | 0x08)

# set base addresses
self.writeRegister(REG_FIFO_TX_BASE_ADDR, FifoTxBaseAddr)
self.writeRegister(REG_FIFO_RX_BASE_ADDR, FifoRxBaseAddr)
Expand Down Expand Up @@ -243,12 +247,14 @@ def setSpreadingFactor(self, sf):

def setSignalBandwidth(self, sbw):
bins = (7.8E3, 10.4E3, 15.6E3, 20.8E3, 31.25E3, 41.7E3, 62.5E3, 125E3, 250E3)

bw = 9
for i in range(len(bins)):
if sbw <= bins[i]:
bw = i
break

# bw = bins.index(sbw)

self.writeRegister(REG_MODEM_CONFIG_1, (self.readRegister(REG_MODEM_CONFIG_1) & 0x0f) | (bw << 4))

Expand Down Expand Up @@ -281,9 +287,9 @@ def setSyncWord(self, sw):
# self.writeRegister(REG_IRQ_FLAGS_MASK, self.readRegister(REG_IRQ_FLAGS_MASK) | IRQ_RX_DONE_MASK)


def dumpRegisters(self):
for i in range(128):
print("0x{0:02x}: {1:02x}".format(i, self.readRegister(i)))
# def dumpRegisters(self):
# for i in range(128):
# print("0x{0:02x}: {1:02x}".format(i, self.readRegister(i)))


def implicitHeaderMode(self, implicitHeaderMode = False):
Expand Down
8 changes: 4 additions & 4 deletions examples/DuplexCallback/controller.py
Expand Up @@ -29,13 +29,13 @@ def __init__(self,
pin_id_led = ON_BOARD_LED_PIN_NO,
on_board_led_high_is_on = ON_BOARD_LED_HIGH_IS_ON,
pin_id_reset = PIN_ID_FOR_LORA_RESET,
blink_on_start = (2, 0.5, 0.5)):
blink_on_start = (2, 0.5, 0.5)):

self.pin_led = self.prepare_pin(pin_id_led)
self.on_board_led_high_is_on = on_board_led_high_is_on
self.pin_reset = self.prepare_pin(pin_id_reset)
self.spi = self.prepare_spi(self.get_spi())
self.pin_reset = self.prepare_pin(pin_id_reset)
self.reset_pin(self.pin_reset)
self.spi = self.prepare_spi(self.get_spi())
self.transceivers = {}
self.blink_led(*blink_on_start)

Expand Down
2 changes: 1 addition & 1 deletion examples/DuplexCallback/display_ssd1306_i2c.py
@@ -1,5 +1,5 @@
# https://learn.adafruit.com/micropython-hardware-ssd1306-oled-display/software

import time
import machine
import ssd1306

Expand Down
18 changes: 12 additions & 6 deletions examples/DuplexCallback/sx127x.py
Expand Up @@ -102,7 +102,7 @@ def init(self, parameters = None):


# config
self.setFrequency(self.parameters['frequency'])
self.setFrequency(self.parameters['frequency'])
self.setSignalBandwidth(self.parameters['signal_bandwidth'])

# set LNA boost
Expand All @@ -113,13 +113,17 @@ def init(self, parameters = None):

self.setTxPower(self.parameters['tx_power_level'])
self._implicitHeaderMode = None
self.implicitHeaderMode(self.parameters['implicitHeader'])
self.implicitHeaderMode(self.parameters['implicitHeader'])
self.setSpreadingFactor(self.parameters['spreading_factor'])
self.setCodingRate(self.parameters['coding_rate'])
self.setPreambleLength(self.parameters['preamble_length'])
self.setSyncWord(self.parameters['sync_word'])
self.enableCRC(self.parameters['enable_CRC'])

# set LowDataRateOptimize flag if symbol time > 16ms (default disable on reset)
if 1000 / (self.parameters['signal_bandwidth'] / 2**self.parameters['spreading_factor']) > 16:
self.writeRegister(REG_MODEM_CONFIG_3, 0x04 | 0x08)

# set base addresses
self.writeRegister(REG_FIFO_TX_BASE_ADDR, FifoTxBaseAddr)
self.writeRegister(REG_FIFO_RX_BASE_ADDR, FifoRxBaseAddr)
Expand Down Expand Up @@ -243,12 +247,14 @@ def setSpreadingFactor(self, sf):

def setSignalBandwidth(self, sbw):
bins = (7.8E3, 10.4E3, 15.6E3, 20.8E3, 31.25E3, 41.7E3, 62.5E3, 125E3, 250E3)

bw = 9
for i in range(len(bins)):
if sbw <= bins[i]:
bw = i
break

# bw = bins.index(sbw)

self.writeRegister(REG_MODEM_CONFIG_1, (self.readRegister(REG_MODEM_CONFIG_1) & 0x0f) | (bw << 4))

Expand Down Expand Up @@ -281,9 +287,9 @@ def setSyncWord(self, sw):
# self.writeRegister(REG_IRQ_FLAGS_MASK, self.readRegister(REG_IRQ_FLAGS_MASK) | IRQ_RX_DONE_MASK)


def dumpRegisters(self):
for i in range(128):
print("0x{0:02x}: {1:02x}".format(i, self.readRegister(i)))
# def dumpRegisters(self):
# for i in range(128):
# print("0x{0:02x}: {1:02x}".format(i, self.readRegister(i)))


def implicitHeaderMode(self, implicitHeaderMode = False):
Expand Down

0 comments on commit 038f804

Please sign in to comment.