Commit graph

210 commits

Author SHA1 Message Date
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
jgromes
88f26c4aab [SX126x] Use millis for timeouts (#1013) 2024-03-29 08:36:51 +01:00
jgromes
9fd7db4d13 [SX126x] Fix rx/tx fallback mode (#1008) 2024-03-13 07:00:20 +01:00
jgromes
b288485d6c [SX126x] Added option to select standby mode (#1008) 2024-03-12 21:52:17 +01:00
jgromes
4ee17cc168 Debugging rework 2024-03-10 11:07:23 +01:00
jgromes
118980fd27 [SX126x] Fixed data rate checking (#948) 2024-01-28 13:28:48 +01:00
jgromes
a642f5a8df [SX126x] Implemented data rate check 2024-01-27 18:46:22 +01:00
jgromes
34d80faaf0 [SX126x] Cleanup private/protected members 2024-01-12 20:00:08 +01:00
jgromes
bf061c655f [SX126x] Allow custom band calibration 2024-01-04 18:30:22 +01:00
jgromes
19b61739e6 [SX126x] Fixed image calibration 2024-01-04 18:23:36 +01:00
jgromes
49feff6df2 [SX126x] Reworked macro configuration system 2023-11-27 19:43:01 +01:00
jgromes
51169106c2 [SX126x] Fixed unused variable warning 2023-11-18 16:34:48 +01:00
StevenCellist
82258105b7
[LoRaWAN] Rework bands, official Rx windows, support ADR, confirm frames, improve EEPROM handling, support clock drift (#867)
* [LoRaWAN] rework bands, add ADR, partial MAC support

Known problem: terribly bad at receiving downlinks
Mask-list bands (e.g. US915) untested, likely a few bugs

* [LoRaWAN] Change Rx windows from CAD to RxSingle

* [LoRaWAN] improve persistence, better Rx windows, wear leveling, confirmed frames

* [LoRaWAN] Module-independent (OTAA) Rx windows, fix confirming downlinks

* [LoRaWAN] Implement SX127x support, fix MAC uplinking, support clock drift

* [ArduinoHal] fix clock drift calculation

* [LoRaWAN] Improve band & ADR logic, allow setting ADR, DR, subband, update examples

* [LoRaWAN] Fix EU868 coding rate, improve example

* [LoRaWAN] fix unused channel index

* [LoRaWAN] fix merge issue (deleted line)

* [LoRaWAN] fix CSMA calling now incorrect function

* [LoRaWAN] fix include logic

* [LoRaWAN] fix warnings, remove duplicate function

* [LoRaWAN] improve examples, add unified sendReceive, bugfixes, add FSK

* [LoRaWAN] improve examples

* [LoRaWAN] add new keywords, add debug guard

* [SX127x] Updated startReceive interface to be more in line with SX126x

* [SX127x] Added public method to convert from bytes to symbols

* [LoRaWAN] Update start receive for SX127x

* Added note about LoRaWAN beta

* [SX127x] Fixed potential float overflow

---------

Co-authored-by: jgromes <jan.gromes@gmail.com>
2023-11-12 14:02:39 +01:00
Amalinda Gamage
aca1d78a97
added functionality for LoRa Alliance TR-13 Enabling CSMA for LoRaWAN (#859)
* added functionality for LoRa Alliance TR-13 Enabling CSMA for LoRaWAN

* Addressed feedback on CSMA implementation

* symbolNumValues[6] array no longer needed as we will utilize only two symbol CAD operations for all SFs.
2023-10-29 14:19:00 +01:00
jgromes
46bf0445fa [SX126x] Decrease startup wait to 10 ms (#850) 2023-10-17 20:14:26 +02:00
jgromes
7dec9477ae [PHY] Added coding rate to data rate struct 2023-09-12 19:06:30 +02:00
jgromes
d0c4e3d6fb [SX126x] Skip printing symbol length 2023-09-12 19:04:26 +02:00
jgromes
eb21f320ac [SX126x] Use debug macro for hexdump 2023-09-12 17:20:27 +02:00
jgromes
ca95135d8a [SX126x] Skip wiping IRQ flags on CAD done 2023-08-12 18:49:05 +02:00
jgromes
db3ac8bf19 [SX126x] Implemented common CAD methods 2023-08-12 18:45:42 +02:00
jgromes
5d80dd46ae [SX126x] Explicitly set non-inverted IQ on startup 2023-08-12 18:38:15 +02:00
jgromes
86724197ec [SX126x] Added default channel scan override 2023-08-06 16:07:28 +02:00
jgromes
d561d41e95 [SX126x] Implemented new common PHY methods 2023-07-06 11:14:44 +02:00
Alistair Francis
445bc01450 modules: Don't read excess status data
The SX126x get status command returns a single status byte. The status
byte is automatically read in the `Module::SPItransferStream()` function
when we increment buffLen (see
https://github.com/jgromes/RadioLib/blob/master/src/Module.cpp#L259).

By setting numBytes we incorrectly end up reading 2 bytes. Instead set
numBytes to zero so we only read the single status byte.

Signed-off-by: Alistair Francis <alistair@alistair23.me>
2023-06-27 21:29:02 +10:00
jgromes
4975828d03 [SX126x] Fixed debug print format 2023-06-24 22:22:56 +02:00
jgromes
7f40ee49c6 [SX126x] Fixed blocking receive (#777) 2023-06-24 19:23:09 +02:00
jgromes
787ebde43e [SX126x] Implemented generic IRQ actions (#773) 2023-06-21 22:21:55 +02:00
jgromes
2b28296c94 [SX128x] Added default startReceive method 2023-05-28 22:20:54 +02:00
jgromes
5158ac5b6b [SX126x] Fixed long prints 2023-05-21 18:26:03 +02:00
jgromes
efbec6b9d1 Added custom min/max/abs macros 2023-05-16 17:13:43 +01:00