Wykres commitów

145 Commity (master)

Autor SHA1 Wiadomość Data
jgromes 7d96b4290e Bump version to 6.6.0 2024-05-28 17:53:19 +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
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 0707a326a5 Bump version to 6.5.0 2024-03-27 19:03:51 +01:00
Jan Gromeš cfc425970c
[LoRaWAN] Resolve warnings, fix bugs for fixed bands (#1021)
* [LoRaWAN] Resolve warnings

* [LoRaWAN] Fixed bands: improve initial datarate, fix CFList bug

* [LoRaWAN] Improve MAC debug output formatting

* Fix hexdump debug level

* Remove unnecessary error, add new ones to keywords

* [LoRaWAN] Discard useless check

---------

Co-authored-by: StevenCellist <steven@boonstoppel.nu>
2024-03-18 16:39:55 +01:00
StevenCellist ca2a3073b9
[LoRaWAN] Change and upgrade persistence handling (#1017)
* [LoRaWAN] Change and upgrade persistence handling

* [BuildOpt] Patch to upstream

* [LoRaWAN] Fix #1018

* [LoRaWAN] Remove outdated parts

* [LoRaWAN] Resolve feedback

Warning: untested - am not at my desk

* [LoRaWAN] Small bugfixes
2024-03-18 08:51:38 +01:00
jgromes 4ee17cc168 Debugging rework 2024-03-10 11:07:23 +01:00
jgromes 547328f375 Bump version to 6.4.2 2024-01-28 14:04:33 +01:00
jgromes 139574d963 Bump version to 6.4.1 2024-01-27 18:50:16 +01:00
jgromes c1bf281f21 Bump version to 6.4.0 2024-01-14 16:00:57 +01:00
StevenCellist 574555ca09 [LoRaWAN] Revamp internal processing, key checking, new MAC commands, implement DutyCycle & DwellTime 2024-01-05 11:06:24 +01:00
jgromes 94bd83329d Bump version to 6.3.0 2023-11-29 17:31:00 +01:00
jgromes a2e2003001 Reworked macro configuration system 2023-11-27 19:38:10 +01:00
Jonathan Bennett f4938ea585
Check for RADIOLIB_SPI_PARANOID = 1 rather than just defined (#883)
* Update BuildOpt.h to set RADIOLIB_SPI_PARANOID to 1 by default

* Update Module.cpp to check for RADIOLIB_SPI_PARANOID set to 1
2023-11-27 18:45:18 +01:00
jgromes 615cebcf6b Added warning for low-end platforms (Uno etc.) 2023-11-18 15:07:19 +01:00
jgromes bd1fbb3b0a Updated version macro print 2023-11-18 15:06:46 +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
StevenCellist 556f37f608
[LoRaWAN] Implement full session persistence & more v1.1 specification (#835)
* Implement session persistence & more 1.1 protocol

* [LoRaW] Improve session persistence, check frame counters & Nonces, multiple MAC commands

* [LoRaWAN] fix popping MAC command from queue

I just realized that the method popMacCommand did not correctly remove items from the queue - this should solve the problem

* [LoRaWAN] implement improvements from #835

* [LoRaWAN] String --> uint8_t[]

* [LoRaWAN] Fix typo
2023-10-23 17:50:16 +02:00
jgromes 6e26852689 Fixed debug float print 2023-10-14 10:27:31 +02:00
jgromes b817819c60 [RM9x] Drop RFM9x as separate class 2023-09-24 18:19:48 +02:00
jgromes 690a050ebb Bump version to 6.2.0 2023-09-16 08:21:25 +02:00
jgromes bc7e82999c Disable EEPROM on SAMD 2023-09-15 20:20:00 +02:00
jgromes 4b80080a37 Disable EEPROM on nRF52 and Portenta 2023-09-15 18:31:53 +02:00
jgromes a4aace3ad0 Disable EEPROM on Nano 33 BLE and RP2040 2023-09-15 18:13:26 +02:00
jgromes 7de4a4693e [HAL] Disable EEPROM on Arduino Due 2023-09-15 18:10:47 +02:00
jgromes eb21f320ac [SX126x] Use debug macro for hexdump 2023-09-12 17:20:27 +02:00
jgromes 414e338505 Fixed ESP32 platform detection 2023-08-29 21:57:51 +02:00
jgromes 8fd0a67a78 Typo fixes 2023-07-15 19:13:16 +02:00
jgromes df691db0a5 [HAL] Updated persistent management 2023-07-06 13:30:29 +02:00
jgromes d725215e20 [HAL] Added persistent parameters to buildopt 2023-07-06 11:19:44 +02:00
jgromes d1f7c18240 Added support for Arduino Uno R4 2023-06-27 07:28:57 +02:00
jgromes 523f28fd6b Bump version to 6.1.0 2023-06-26 20:18:01 +02:00
jgromes efbec6b9d1 Added custom min/max/abs macros 2023-05-16 17:13:43 +01:00
jgromes c2b9e19551 Removed dependency on algorithm (#748) 2023-05-15 20:34:19 +02:00
jgromes b2af390c14 Added nonvolatile pointer macro 2023-04-29 22:52:11 +02:00
jgromes f244caa0bb Bump version to 6.0.0 2023-04-24 18:32:02 +02:00
jgromes 09c3ac4f6b [HAL] Formatting cleanup, added doxygen comments 2023-04-22 18:11:00 +02:00
Mestery 9a68a3c901 use uint32 instead of uint8 for pin type 2023-04-16 21:39:00 +02:00
Mestery 0cf308be04 remove byte usage 2023-04-16 21:00:05 +02:00
Mestery ec3d4eaf20 Improve hardware abstraction layer 2023-04-12 23:16:18 +02:00
Mestery 17ae017f89
address changes 2023-04-10 14:51:07 +02:00
Mestery 220b4dad7f
use printf in both build 2023-04-10 09:13:58 +00:00
Mestery 6456da188d
fix debug print 2023-04-10 09:13:58 +00:00
Davide Lasagna 642cbd8bfd added link to original issue 2023-03-30 09:49:50 +01:00
Davide Lasagna c400a1428e fix #709 2023-03-29 18:21:18 +01:00
jgromes 97ab0d357a [SX126x] Added spectral scan 2023-03-11 20:09:03 +01:00
jgromes 6677b15d93 Bump version to 5.7.0 2023-03-05 18:24:14 +01:00
jgromes eaaac36f28 Bump version to 5.6.0 2023-01-15 17:42:44 +01:00
Matthijs Kooijman e52ffb0a69 [STM32WLx] Only build on compatible STM32 boards
This checks for some system macros to be set, but also includes the
doxygen build to generate documentation.

This reuses the RADIOLIB_EXCLUDE_STM32WLX that the code already checks
for to prevent having to duplicate this macro check in four places.

To detect running inside doxygen, this configures doxygen to predefine
a DOXYGEN macro (it seems no such macros are defined by default by
doxygen).
2023-01-10 18:09:55 +01:00
Matthijs Kooijman 5e47d94418 [STM32WLx] Add module for STM32WL MCUs with integrated radio (#588)
This is a nearly complete implementation, except that the Dio1 interrupt
is not yet supported (this will be added in a subsequent commit to
simplify review).

This fixes #588.
2023-01-10 18:09:55 +01:00