Commit graph

239 commits

Author SHA1 Message Date
Matej Frančeškin
f3276c2e66 fix implicit conversion from float to double warnings 2025-01-15 16:06:47 +01:00
jgromes
5ea881c595 [SX126x] Added explicit typecast 2025-01-05 17:46:36 +01:00
jgromes
b2b4c9e0f7 [SX126x] Use dummy SPI transfer for wakeup (#1364) 2024-12-27 16:26:24 +00:00
jgromes
661b36cc4c [SX126x] Suppress unused variable warning 2024-12-17 21:05:50 +00:00
jgromes
6e3b870317 [SX126x] Drop support for FSK address filtering (#1268) 2024-12-17 20:12:19 +00:00
jgromes
eeff547aa4 [SX126x] Fix preamble detector configuration (#1350) 2024-12-16 18:49:18 +00:00
jgromes
5a8ba0003b [SX126x] Fix broken FSK packet params calls (#1350) (#1338) 2024-12-16 08:19:15 +00:00
jgromes
75f087b5c2 [SX126x] Use length from startReceive in implicit header mode 2024-12-15 15:53:13 +01:00
jgromes
577a0761ac [SX126x] Make Tx timeout at least 5 ms (#1338) 2024-12-08 10:15:22 +01:00
jgromes
4564d87721 [PHY] Use less generic modem names (#1294) 2024-10-29 17:14:04 +00:00
jgromes
4bd05dee3d [SX126x] Fix member variable 2024-10-28 14:06:36 +01:00
jgromes
e2fd3f7532 [SX126x] Added setDatarate for LR-FHSS 2024-10-28 14:04:56 +01:00
jgromes
b8b1afdae1 [SX126x] Calibrate image based on frequency change (#1292) 2024-10-27 07:40:10 +00:00
jgromes
f23f798fe0 [SX126x] Configure preamble detector length based on preamble 2024-10-26 18:13:02 +01:00
jgromes
3952fe9139 Use pointer assert 2024-10-26 16:59:13 +01:00
Jan Gromeš
e44e9b4bce
[PHY] Get/Set modem (#1294)
* [PHY] Added set modem method

* Added new keyword

* [SX126x] Added setModem implementation

* [LoRaWAN] Use setModem

* [PHY] Added getModem

* [LoRaWAN] Use getModem instead of caching modulation

* [SX126x] Implement getModem

* Added new keywords

* [LR11x0] Added get/set modem

* [LLCC68] Added get/set modem

* [SX126x] Added missing default branch

* [SX127x] Added get/set modem

* [SX128x] Added get/set modem

* [CI] Drop Hellschreiber from AVR builds

* [CI] Drop Arduino Uno from CI
2024-10-26 17:49:35 +02:00
jgromes
56ae9ad76b [SX126x] Fix second call to startReceive breaking reception (#1272) 2024-10-14 16:37:19 +01:00
jgromes
e9b6e27739 [SX126x] Fix FSK addresses on transmission (#1268) 2024-10-12 14:15:05 +01:00
Jan Gromeš
dc77e6e662
[SX126x] LR-FHSS support (#1228)
* [FEC] Added Vitervi encoder

* [SX126x] Added initial LR-FHSS transmission support

* [CI] Use RPi build for CodeQL

* [SX126x] Fix signed comparison warning

* [FEC] Make input to Viterbi encoder const

* [CI] Drop SX126x examples from Arduino Uno builds

* [CI] Build SX123x for CodeQL scan

* [FEC] Fix comparison type

* [SX126x] Added configurable grid step

* [SX126x] Rename convolutional coding class

* [SX126x] Fix payload CRC

* [SX126x] ADded LR-FHSS example

* [SX126x] Make argument const
2024-10-07 20:00:19 +02:00
jgromes
af27e44a52 [SX126x] Fix instant RSSI reading 2024-09-25 17:02:37 +01:00
jgromes
da74aa26d2 [SX126x] Simplify rx gain configuration 2024-09-25 17:02:09 +01:00
jgromes
ec6de3795b Merge branch 'master' of https://github.com/jgromes/RadioLib 2024-09-24 20:02:29 +02:00
jgromes
a7a99a2097 [SX126x] Simplify Rx gain retention config 2024-09-24 20:02:27 +02:00
jgromes
b8cd1353b1 [SX126x] Fix shadowed variable 2024-09-22 18:17:45 +01:00
jgromes
102d06a9f8 [SX126x] Added missing implementation 2024-09-22 17:28:51 +01:00
jgromes
0e7c723fb1 [SX126x] Move common setup code to common method 2024-09-22 17:24:59 +01:00
jgromes
c4a129ed74 [PHY] Pass scan config by reference 2024-09-10 19:18:56 +02:00
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
3a73ed8c1f [SX126x] Generalize IRQ checks 2024-08-16 00:04:42 +02:00
GUVWAF
8b5d705174 [SX126x] Remove unnecessary (void)update; 2024-08-10 18:40:09 +02:00
GUVWAF
0620d8edda [SX126x] Start reading from Rx buffer offset
Remove setting RxBaseAddr to 0
2024-08-10 12:56:12 +02:00
jgromes
7c3ed88c0d [SX126x] Clarify DIO3 for AFSK-based examples 2024-07-20 16:41:13 +02:00
jgromes
fffb1fae9f [PHY] Make transmit data const (#1156) 2024-07-13 16:42:46 +01:00
jgromes
ce8e6fdfb0 [SX126x] Added missing PHY getRSSI (#1132) 2024-06-25 16:56:26 +01:00
jgromes
3af427fefb [SX126x] Fix duplicate method 2024-05-26 16:43:54 +02:00
jgromes
852d336c50 [SX126x] Added getMod implementation 2024-05-26 16:32:51 +02:00
jgromes
3b412d7521 [SX126x] Add rounding when using custom image rejection (#1096) 2024-05-15 20:22:30 +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
jgromes
2f06885f9f [SX126x] Remove copypate from setSyncBits 2024-05-08 14:55:19 +02:00
jgromes
bfb7c8dd3b [SX126x] Use 32-bit IRQ flags 2024-05-08 14:54:22 +02:00
jgromes
3b62c88a2e [SX126x] Fixed issues found by cppcheck 2024-05-05 20:11:02 +01:00
jgromes
6fe581aea7 Fix minor format warnings 2024-05-03 20:54:18 +01: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
c9d8c601df [Mod] Use enum for bit widths 2024-04-07 17:34:31 +01:00
Jan Gromeš
4fa0656ddd
[MOD] SPI configuration interface rework (#1057)
* [MOD] Rework SPI config interface

* [CC1101] Rework SPI config interface

* [nRF24] Rework SPI config interface

* [SX126x] Rework SPI config interface

* [SX128x] Rework SPI config interface

* Fix missing moved debug info

* [MOD] Fix signed warnings
2024-04-07 17:05:07 +02:00
jgromes
f61be0d273 [SX126x] Added public method to set PA ramp time (#1054) 2024-04-05 17:30:05 +02:00
jgromes
a387b3b706 [SX126x] Fix image calibration (#1051) 2024-04-04 21:28:17 +02:00