Commit Graph

58 Commits

Author SHA1 Message Date
Felix Rusu fbc65dedcf Replace promiscuous() with spyMode() 2020-01-21 12:52:45 -05:00
Felix Rusu 4a6f77ad47 A few optimizations 2019-08-02 16:38:00 -04:00
Felix Rusu 6ddfb2ff7d Add ISR_PREFIX for ESP
See Issue #124
2019-07-25 10:41:14 -04:00
Felix Rusu 3913d5689c null terminate radio.DATA 2019-06-05 11:38:14 -04:00
Felix Rusu 3ace1ac2a4 10bit addressing
Uses 4 least significant bits in the CTL header byte to upgrade from 8bit to 10bit addressing, thus extending from 256 to 1024 possible addresses.
2019-05-01 12:02:03 -04:00
Felix Rusu f072131779 Address issue #120 2019-05-01 11:35:34 -04:00
Felix Rusu 32a80592e2 Remove volatiles per issue #115 2019-01-15 19:29:39 -05:00
Felix Rusu 6b9d0c91b9 Add SPI_Transactions 2018-12-13 19:39:20 -05:00
Felix Rusu 3d4a8c99c4 Handle interrupt outside actual ISR
### Commit adapted from 2793a5a909

Handling an interrupt from the RFM69 inside an actual ISR given the
complexity of the handler appears to conflict with I2C devices, blocking
the Arduino indefinitely after a few seconds of concurrent use. In
general, complex ISRs are to be avoided.
2018-08-08 15:34:31 -04:00
Felix Rusu 65fe6dda5f fix hardcoded F_STEP
Thanks to Markus Kettner for spotting this.
2018-04-15 14:57:45 -04:00
Felix Rusu f1cbbea15a Update copyrights 2018-04-09 14:19:14 -04:00
Felix Rusu e1145c9543 Merge ListenMode branch code 2018-04-05 16:20:12 -04:00
Felix Rusu dfffbba7b8 update interrupt, move ctor 2018-04-05 16:00:36 -04:00
Felix Rusu e1faeefdb7
Revert "Allow choosing the SPI interface" 2018-04-05 15:15:36 -04:00
Adam Demuri dd5dc9a706 Allow caller specify a specific SPIClass in the constructor 2018-03-27 22:10:44 -06:00
Felix Rusu dcda86fb90 STM32 M3 support 2018-01-25 19:35:46 -05:00
LowPowerLab 928de01a2b add readAllRegsCompact() 2017-07-24 13:41:41 -04:00
LowPowerLab 18494fe085 merge new RFM69_OTA; upgrade wireless programming 2016-11-17 21:13:22 -05:00
Felix Rusu c4dd545556 Revert "Declare RFM69 interrupt with SPI.usingInterrupt()" 2016-07-13 08:51:55 -04:00
Mark Bergsma bc0665b018 Declare RFM69 interrupt with SPI.usingInterrupt()
This interrupt is then masked during SPI transactions of other
code/libraries that use SPI transactions, to prevent the RFM69
interrupt handler (which does SPI transfers) preempting other SPI
transfers.
2016-06-19 10:18:39 +02:00
Mark Bergsma 2133bbfe79 Don't reenable interrupts in the ISR
The unselect() method, liberally called directly and indirectly
from the interrupt handler, always reenables interrupts after it's
done. In ISRs, interrupts are disabled by default, and although
reenabling is allowed, the interrupt handler doesn't seem to have
reentrant code. Therefore, only reenable when not in an ISR.

This was causing problems in certain circumstances, e.g. with
an Arduino Ethernet shield, most packet receptions would cause
resets.
2016-06-04 20:22:45 +02:00
LowPowerLab ec90680e00 Revert "add SPI transaction support"
This reverts commit c38928ecb4.
2016-02-29 21:21:52 -05:00
LowPowerLab c38928ecb4 add SPI transaction support
Based on this commit:
e707b9a3ad
And also on Tom's SPI transaction branch:
https://github.com/TomWS1/RFM69/tree/With-SPI-and-transmit-power-updates
2016-02-29 17:37:42 -05:00
LowPowerLab c24051e933 minor tweaks & SPCR/SPSR filters 2016-02-29 14:36:24 -05:00
LowPowerLab 0c8fbacc5c +TomWS1's virtualization & more; +deadlock checks
Integrate TomWS1's virtualized changes, and virtual interruptHook().
Set ACK_REQUESTED = 0 in sendACK() to avoid ACK infinite looping.
Protect while(true) calls against infinite looping.
2015-10-01 12:15:28 -04:00
Felix Rusu 9de0c3ba9d Update RFM69.cpp 2015-08-22 22:13:20 -04:00
Ryan Pipkin c3c9c7df1b Merge remote-tracking branch 'upstream/master'
- Manually resolved RFM69.cpp

Conflicts:
	RFM69.cpp
2015-08-22 20:03:51 -05:00
LowPowerLab 4b82e285b0 add more comments 2015-05-19 15:08:41 -04:00
LowPowerLab 5502c186db Fix setPowerLevel 2015-04-01 16:26:54 -04:00
Daniel A. Maierhofer c9440c9249 Save program space by calculating CTLbyte instead of fixed literal
by fca63f659d
2015-02-06 12:21:13 +01:00
Daniel A. Maierhofer d665e5cf80 Disable 1MHz ClkOut on DIO5 to save power 2015-01-24 15:10:52 +01:00
Daniel A. Maierhofer a0948ed849 Update RFM69registers.h 2015-01-24 14:20:28 +01:00
Daniel A. Maierhofer 3899f1f018 Ensure _slaveSelectPin is driven high after initialize() or setCS() 2015-01-18 12:31:16 +01:00
Daniel A. Maierhofer 8cecd36d9b Follow Optimized Frequency Hopping Sequence
by cf13c60ae5
Don't remove "if (newMode == _mode)" to prevent unnecessary mode switching by setFrequency()
2015-01-18 12:22:43 +01:00
Daniel A. Maierhofer c491a2ab82 Ensure FIFO & associated flags are reset during initialize()
by aa3ebc2997
2015-01-18 12:09:08 +01:00
Daniel A. Maierhofer c34a63c2e7 Fixed Warning Wnarrowing 2015-01-12 15:09:49 +01:00
Daniel A. Maierhofer 5832c173fe Changed byte etc. to standard types for compatibility
binary compatible - only source changed
2015-01-12 11:34:16 +01:00
Daniel A. Maierhofer 4767945f7f Unify hexadecimal notation and whitespace 2015-01-12 11:00:43 +01:00
Daniel A. Maierhofer bfa5dd8afd Unify comment style and whitespace
Use 'git diff --ignore-space-change --word-diff=plain' to verify.
2015-01-06 15:25:29 +01:00
Daniel A. Maierhofer 0999c802eb Unify indentation (from TAB to two spaces)
Use 'git diff --ignore-space-change' to verify.
2015-01-06 14:49:50 +01:00
Neil Stockbridge 13882ae71c RFM69::readTemperature no longer emits * characters on Serial while waiting for a reading 2015-01-03 14:24:25 +13:00
LowPowerLab ed2fd5b8d5 Fix RX deadlocks, update examples
This is a major patch release that should address the rx deadlocks which
cause hangs in multiple nodes networks. Thread on this is here:
https://lowpowerlab.com/forum/index.php/topic,736.0.html
Also updated node/gateway examples, and wireless programming sketches.
2014-11-17 14:58:00 -05:00
LowPowerLab dc6b33d98b License, add/update get/setFrequency(), & more
Update license to GPL 3.0
Add getFrequency()
Update setFrequency(freq in hz)
Add setNetwork(id)
Modify IRQ pinout for atmega32u4 (Arduino Leonardo)
2014-11-14 15:25:45 -05:00
Ryan Pipkin 5f9b239212 Added more registers and avoiding ram for strings. 2014-11-11 22:05:36 -06:00
Ryan Pipkin c9873f7888 Starting to decode and detail the register output from the device. It should be conditionally compiled to remove it from the codespace if necessary. 2014-11-10 23:02:52 -06:00
Ryan Pipkin 3571ef3be6 Add register dump header 2014-11-09 18:01:51 -06:00
Felix Rusu e8a0767849 Support for MEGA, GPL3.0, nonintrusive SPI 2014-08-12 22:03:37 -04:00
Felix Rusu cec7f05940 new BROADCAST_ADDR=255, avoid calling receiveBegin() in RX 2014-02-01 21:13:40 -05:00
DeKay 2d233df459 Added a few new register definitions and a couple minor cleanups. 2014-01-02 15:57:18 -06:00
Felix Rusu a0f2aaf113 Add reception RSSI (more accurate) 2013-11-06 23:15:51 -05:00