From 992c02c6619a764ffe3a8033234696128fe581cb Mon Sep 17 00:00:00 2001 From: deadprogram Date: Sun, 17 Sep 2023 19:50:39 +0200 Subject: [PATCH] lora: add starting point for US915 settings Signed-off-by: deadprogram --- lora/config.go | 1 + lora/lorawan/region/us915.go | 51 ++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 lora/lorawan/region/us915.go diff --git a/lora/config.go b/lora/config.go index 84e77bb..703eacd 100644 --- a/lora/config.go +++ b/lora/config.go @@ -80,6 +80,7 @@ const ( const ( MHz_868_1 = 868100000 MHz_868_5 = 868500000 + MHz_902_3 = 902300000 MHz_916_8 = 916800000 MHz_923_3 = 923300000 ) diff --git a/lora/lorawan/region/us915.go b/lora/lorawan/region/us915.go new file mode 100644 index 0000000..55bbd91 --- /dev/null +++ b/lora/lorawan/region/us915.go @@ -0,0 +1,51 @@ +package region + +import "tinygo.org/x/drivers/lora" + +const ( + US915_DEFAULT_PREAMBLE_LEN = 8 + US915_DEFAULT_TX_POWER_DBM = 20 +) + +type RegionSettingsUS915 struct { + joinRequestChannel *Channel + joinAcceptChannel *Channel + uplinkChannel *Channel +} + +// see https://www.thethingsnetwork.org/docs/lorawan/regional-parameters/#us902-928-ism-band + +func US915() *RegionSettingsUS915 { + return &RegionSettingsUS915{ + joinRequestChannel: &Channel{lora.MHz_902_3, + lora.Bandwidth_125_0, + lora.SpreadingFactor10, + lora.CodingRate4_5, + US915_DEFAULT_PREAMBLE_LEN, + US915_DEFAULT_TX_POWER_DBM}, + joinAcceptChannel: &Channel{lora.MHz_923_3, + lora.Bandwidth_500_0, + lora.SpreadingFactor7, + lora.CodingRate4_5, + US915_DEFAULT_PREAMBLE_LEN, + US915_DEFAULT_TX_POWER_DBM}, + uplinkChannel: &Channel{lora.MHz_902_3, + lora.Bandwidth_125_0, + lora.SpreadingFactor7, + lora.CodingRate4_5, + US915_DEFAULT_PREAMBLE_LEN, + US915_DEFAULT_TX_POWER_DBM}, + } +} + +func (r *RegionSettingsUS915) JoinRequestChannel() *Channel { + return r.joinRequestChannel +} + +func (r *RegionSettingsUS915) JoinAcceptChannel() *Channel { + return r.joinAcceptChannel +} + +func (r *RegionSettingsUS915) UplinkChannel() *Channel { + return r.uplinkChannel +}