Commit graph

43 commits

Author SHA1 Message Date
GUVWAF
eda4ec22ae
[SX126x][SX128x][LR11x0] Don't report CRC mismatch if valid header received (#1203)
* Enable `HEADER_VALID` IRQ flags by default for receiving

* [SX126x] Don't report CRC mismatch if valid header received

* [SX128x] Don't report CRC mismatch if valid header received

* [LR11x0] Don't report CRC mismatch if valid header received
2024-09-01 20:48:17 +02:00
Jan Gromeš
bc801c7004
[PHY] Channel scan configuration (#1190)
* [PHY] Added channel scan configuration

* [LR11x0] Added channel scan configuration

* [SX126x] Added channel scan configuration

* [SX128x] Added channel scan configuration

* Use microsecond timeout

* [PHY] Added generalized IRQ handling via PHY

* [LR11x0] Added generalized IRQ handling via PHY

* [SX126x] Added generalized IRQ handling via PHY

* [SX127x] Added generalized IRQ handling via PHY

* [SX128x] Added generalized IRQ handling via PHY

* Added missing typedef

* [PHY] Fix IRQ method argument type

* [SX128x] Fix non-trivial initializer usage

* [LR11x0] Added missing override specifiers

* [SX126x] Added missing override specifiers

* [SX127x] Added missing override specifiers

* [SX128x] Added missing override specifiers

* [PHY] Added missing IRQ map initializer

* [CI] Drop APRS builds on AVR

* [CI] Drop Morse builds for AVR

* [PHY] Rework generic IRQ to allow multiple flags

* [LR11x0] Rework generic IRQ to allow multiple flags

* [SX126x] Rework generic IRQ to allow multiple flags

* [SX127x] Rework generic IRQ to allow multiple flags

* [SX128x] Rework generic IRQ to allow multiple flags

* [LoRaWAN] Use generic IRQ

* Add missing typedef

* [SX127x] Make Rx mode implicit based on timeout

* [SX127x] Fixed shadowed variable

* [LR11x0] Fix missing initializers

* [SX127x] Added default startReceive arguments

* [LR11x0] Pass scan config by const reference

* [SX126x] Pass scan config by const reference

* [SX128x] Pass scan config by const reference

* [PHY] Pass scan config by const reference

* [SX127x] Add missing IRQ conversion

* [SX126x] Fixed default CAD scan config IRQ

* [LR11x0] Fixed default CAD scan config IRQ

* [LR11x0] Fix comments referencing DIO1
2024-09-01 18:19:07 +02:00
Pavlo Manovi
6847fcda5c Reconcile implicit double / float promotion with math functions and passed function value types. Also suppress incorrect unused variable warnings when variables are used in logging macros. 2024-08-29 09:30:31 -04:00
StevenCellist
0bc0e3d9c8 [PHY, modules, LoRaWAN] Integrate feedback 2024-08-17 22:03:48 +02:00
StevenCellist
0eb987a83c [LR11x0] Generalize IRQ checks 2024-08-16 00:04:34 +02:00
jgromes
737e948efc [LR11x0] Fix printf types 2024-07-18 17:32:46 +02:00
jgromes
0a77cae0de [LR11x0] Remove debug hexdump 2024-07-18 17:25:53 +02:00
jgromes
15b8489f1d [LR11x0] Cleanup, mark GNSS methods as work-in-progress 2024-07-18 17:16:53 +02:00
jgromes
858bf6409e [LR11x0] Fix SNR calculation (#1161) 2024-07-16 21:10:47 +02:00
jgromes
fffb1fae9f [PHY] Make transmit data const (#1156) 2024-07-13 16:42:46 +01:00
Linar Yusupov
edae29e1e9 [LR11x0] use the same irq mask for both DIO9 and DIO11 2024-07-01 21:29:12 +03:00
jgromes
e406c550b8 [LR11x0] Fix output power configuration at S-band (#1128) 2024-06-21 17:53:11 +02:00
jgromes
87fac1797e [LR11x0] Do not read out GNSS and WiFi versions on LR1121 (#1128) 2024-06-21 17:04:46 +02:00
jgromes
81b9e6cd53 [LR11x0] Fix LR-FHSS time on air calculation (#1117) 2024-06-09 10:22:21 +02:00
jgromes
a465f64969 [LR11x0] Implemented RF switch control 2024-05-26 17:03:45 +02:00
jgromes
c3e99c8698 [LR11x0] Make regulator mode and Rx gain config public (#1108) 2024-05-26 14:11:05 +02:00
jgromes
6c11480416 [LR11x0] Cppcheck cleanup 2024-05-26 08:49:02 +02:00
jgromes
534a2f2d62 [LR11x0] Fix struct initialization 2024-05-19 19:09:04 +02:00
jgromes
5e398bd868 [LR11x0] Added firmware update support 2024-05-19 14:55:11 +02:00
jgromes
b5fd75b4dc [LR11x0] Implemented v2 GNSS commands 2024-05-18 08:44:50 +02:00
jgromes
47f5569e7f [LR11x0] Dump FW versions in debug mode 2024-05-15 21:27:31 +02:00
Dominic Moffat
b336dd59f9
Fixes overload warning when building with ESP IDF (#1089)
* fixes overload

* fixes overload

* fixes overload warnings in ESP-IDF
2024-05-15 18:40:08 +02:00
bkleiner
f3d358bbe3 LR11x0: fix setDioAsRfSwitch argument count 2024-05-12 19:01:17 +02:00
jgromes
be4ad51330 [LR11x0] Use const pointers where appropriate 2024-05-12 12:03:08 +01:00
jgromes
a643d0db7a [LR11x0] Fixed issues found by cppcheck 2024-05-10 20:45:54 +01:00
jgromes
46e6f78731 [LR11x0] Fixed inverted deallocation logic 2024-05-08 20:13:57 +01:00
jgromes
c494b983f5 [LR11x0] Added methods for LoRaWAN compatibility 2024-05-08 14:55:48 +02:00
jgromes
4f1e5c5521 [LR11x0] Added LoRa header configuration methods 2024-05-05 20:42:06 +02:00
jgromes
86cdefe8a2 [LR11x0] Added support for WiFi scanning 2024-05-05 11:35:35 +02:00
StevenCellist
1b2b8bd67b
[LoRaWAN] Improve PHY behaviour, update beginABP, bugfixes (#1080)
* [LoRaWAN] Add getter for ToA, prevent MAC queue overflow

* [LoRaWAN] Permute arguments to beginABP

* Implement & split off checkOutputPower

* [LoRaWAN] Configure physical layer on each up/downlink

* [LoRaWAN] Remove unnecessary dynamic array

* [LoRaWAN] Improve downlink handling

* Resolve return-warnings in checkOutputPower()

* [LoRaWAN] Improve buffer definition

* [LoRaWAN] Prevent requesting repeated MAC commands

* Update keywords.txt

* [CC1101] Resolve unused variable warning

* [CC1101] Update checkOutputPower

* [SX1278] Fix variable assignment

* Update keywords.txt

* [CC1101] Added checkOutputPower override for PHY compatibility

* [LR11x0] Added checkOutputPower override for PHY compatibility

* [SX127x] Added checkOutputPower override for PHY compatibility

---------

Co-authored-by: jgromes <jan.gromes@gmail.com>
2024-05-01 13:35:22 +02:00
Elizabeth Myers
205031550b
Use RadioLibTime_t (aka unsigned long) when dealing with millis() and micros() (#1075)
* Use unsigned long when dealing with millis() and micros().

Although sizeof(uint32_t) == sizeof(unsigned long) on Arduino, this is
not the case on 64-bit Linux, where sizeof(unsigned long) ==
sizeof(uint64_t).

Most timestamp arithmetic and comparisons have been left alone, to
reduce code churn. This is fine, as uint32_t is perfectly wide to store
most timestamp deltas this library will deal with, and C will promote
the integer rather than do a narrowing conversion. The real problem
arises with narrowing conversions being done by assuming timestamps are
32-bit.

No functional changes intended for platforms where sizeof(uint32_t) ==
sizeof(unsigned long) (so most 8/16/32-bit platforms).

Signed-off-by: Elizabeth Myers <elizabeth.jennifer.myers@gmail.com>

* Change most timestamps to use RadioLibTime_t.

This makes it obvious what is and isn't a timestamp.

Not everything has been converted; anything dealing with protocol and
chip-level timestamps has been left alone on purpose, to make it clear
that these functions do require 32-bit timestamps.

No functional changes intended on platforms where sizeof(uint32_t) ==
sizeof(unsigned long).

Signed-off-by: Elizabeth Myers <elizabeth.jennifer.myers@gmail.com>

* Use uint32_t internally in getTimeOnAir.

We need to not overflow the integers with the shifts and
multiplications, so this is correct behaviour.

Signed-off-by: Elizabeth Myers <elizabeth.jennifer.myers@gmail.com>

---------

Signed-off-by: Elizabeth Myers <elizabeth.jennifer.myers@gmail.com>
2024-04-25 21:50:58 +02:00
jgromes
43ca08d8ee [LR11x0] Added LR1120/21 classes 2024-04-21 15:24:49 +02:00
jgromes
e8a6297c60 [LR11x0] Added support for LR-FHSS 2024-04-21 15:01:57 +02:00
jgromes
ce4d9aa150 [LR11x0] Fixed LoRa CRC configuration 2024-04-21 08:47:27 +02:00
jgromes
9451f36332 [LR11x0] Use IRQ instead of DIO1 as pin name 2024-04-21 08:34:00 +02:00
jgromes
01208574d9 [LR11x0] Added CAD support (#679) 2024-04-20 21:29:32 +02:00
jgromes
99d2e6c452 [LR11x0] Added direct mode support 2024-04-20 18:05:31 +02:00
jgromes
6fa4aa3ebb [LR11x0] Added GFSK modem support (#679) 2024-04-19 20:30:53 +02:00
jgromes
88e1411399 [LR11x0] Fix potential use after free 2024-04-14 19:42:14 +01:00
jgromes
7bb747fdba [LR11x0] Add missing header for non-Arduino paltforms (#679) 2024-04-14 19:29:35 +01:00
jgromes
f956a66ef2 [LR11x0] Fix typos in variable names 2024-04-14 19:29:12 +01:00
jgromes
23f45153c1 [LR11x0] Suppress warnings for unimplemented features 2024-04-14 19:28:54 +01:00
jgromes
77ed4452ae [LR11x0] Added basic LR11x0 support (#679) 2024-04-14 20:22:55 +02:00