Commit Graph
239 Commits
Author SHA1 Message Date
TMRh20 92a19af8f8 enableDynamicAck(), Single NOACK, default RT,
- Added new function: enableDynamicAck()  to enable single-write NOACK
payloads (merge closer with gcopeland fork)
- Added single NOACK writes for write(), writeFast(), startWrite() and
startFastWrite()
- powerUp() now checks to see if radio is powered on. No delay if
powered up.
- radio must still be powered up manually if powered down manually
- use setRetries function in begin()
- set CE low on powerDown
- updated readme
2014-04-10 09:49:23 -06:00
TMRh20 07eb9f8749 ATTiny support fr jscrane fork tested and working
ATTiny support pulled in from https://github.com/jscrane/RF24
- SPI support for ATTiny is included with the library. Do NOT include
SPI.h with tiny.

Pin info etc can be found at:
http://programmablehardware.blogspot.ca/2013/09/rf24-with-attiny84.html

ATTiny 85 Example:
RF24 radio(4,3);    // CE: 4  CS: 3
2014-04-09 10:53:47 -06:00
TMRh20 8077f56a7f Merge pull request #1 from zephyrr/master
Merge improved write_payload() and read_payload()  - looks good and passes my testing.
2014-04-08 01:33:04 -06:00
zephyrr 84146a17f3 Revamped write_payload() and read_payload()
Restructured based on needing or not needing blank padding
2014-04-07 23:31:52 -07:00
TMRh20 afdb084daf Fix: Due write() issues.
Found that Due would send multiple payloads or fail in writing in some
cases. Change ensures single-payload transmission using write().
- Updated pingpair_dyn.ino example sketch to conform with available()
changes
- Slight doc update
2014-04-07 20:41:38 -06:00
TMRh20 d28323aadc Fix: Missing byte with due RX
- SPI transfer fix to read every available byte in the payload with
payloads less than 32 bytes with dynamic payload size disabled.
2014-04-06 08:49:35 -06:00
TMRh20 e1aaa57172 Full Due support, maskIRQ function
- Tested and now fully functional on Arduino Due
- Added support for the extended SPI functions: brings Due performance
up to par with Due managing the CSN   pin and settings
- Corrected issues with printDetails() on Due
- Changed added variables to staticly defined types: ie: uint16_t
instead of unsigned int
- I think this will work on all ARM based boards that use the Arduino
libs
- Added maskIRQ function - to be used in RF24Network sleep mode
- Changed csn(int mode) to csn(bool mode)
- Updated GettingStarted_CallResponse.ino example: Capture start time
AFTER printing to serial so measurement is more accurate
2014-04-05 05:34:52 -06:00
TMRh20 3455e489f4 Add powerUp to begin(), increase powerUp delay
- Found I could create a hang condition on startup with some code.
a: Now power up the radio on begin() to simplify things
b: Increase delay to 5ms for powerUp, although it should only take 2ms
tops, this prevents the hanging condition.
2014-04-02 22:08:29 -06:00
TMRh20 2f7e4489ba Fix: Ext. timeout hang, examples, board support
- Initial support for Due and ATTiny boards
- Fix for 0 timeout period causing hang
- Remove unnecessary delays from startWrite
- Cleaned up/Updated example files
- Optimization is nearing completion
2014-04-01 23:47:19 -06:00
TMRh20 6263bccd02 Extended timeouts, txStandBy changes
- For use in noisy or low signal scenarios
- Allows user specified timeout period of extended duration
- Modified txStandBy() and writeBlocking() functions to rely on a user
defined timeout period, automatic retries and payload reUse
2014-03-29 05:29:29 -06:00
TMRh20 0ddec52563 Forgot to move startFastWrite to public
for use in wireless audio sketch, needed to move startWrite() to a
public function
2014-03-23 01:05:04 -06:00
TMRh20 1cc7454d97 txStandby() function modified completely
txStandBy() now either works in two modes. The main mode will block
until success or fail. Using txStandBy(1) will block and retry forever
until succesful. Using a while loop with the function is no longer
required. See the updated class reference at
http://tmrh20.github.io/RF24/class_r_f24.html
2014-03-22 20:32:31 -06:00
TMRh20 4340d9339a Lib now passes all tests
Added back original startWrite function for when users want to use
manual methods. The library uses startFastWrite for its internal
functions. Provides compatibility with prev. code while still using the
new methods for everything else.
2014-03-22 18:39:46 -06:00
TMRh20 f3b3fb1f44 Fix: txStandBy hang. Updated Transfer example
- txStandBy was hanging if the last of the data timed out. Now clears
the MAX_RT flag if timed out
- Finished updating example file Transfer.ino for demonstrating
half-rate transfers using the FIFO buffers
2014-03-22 01:52:22 -06:00
TMRh20 4d8da2f01d Fixed link 2014-03-19 21:16:38 -06:00
TMRh20 bcd48f2f47 Fix: Standby after regular write cmd
Realized that the normal write command should always drop to standby-I
mode immediately since the FIFO cannot be filled using this method, and
TX will be complete.
2014-03-19 20:47:37 -06:00
TMRh20 99571d6530 Updated some examples to show the new lib usage
Updated GettingStarted, pingpair, added medium speed version of transfer
rate test
2014-03-19 20:23:33 -06:00
TMRh20 63ee0ce2c0 Corrected part of the documentation 2014-03-19 19:27:07 -06:00
TMRh20 14187cd1a1 Updated readme and h file for doxygen
See http://tmrh20.github.io/RF24/class_r_f24.html for the class
documenation.
2014-03-19 19:13:26 -06:00
TMRh20 1e2f41c3f8 Inspired idea to change TX standby code
Realised that data would be lost if dropping to standby or power down
mode before the FIFO is empty.
txStandby now returns a boolean value to indicate whether the
transmission is complete. If there is data in the TX FIFO the radio will
not drop out of TX mode. eg: while(  !txStandBy()  ){}
2014-03-19 08:26:59 -06:00
TMRh20 77b1e2c140 - Slight modification to reUseTX cmd
- put the CE HIGH, LOW changes in the cmd for non-internal use
- Put the clearing of MAX_RT in the reUse cmd for non-internal use
- Removed unneeded delay from writeBlocking()
2014-03-19 03:43:13 -06:00
TMRh20 281ace4ba2 Added writeFast() cmd - fill FIFO or return 0
- WriteFast allows the FIFO buffers to be filled up before returning 0
- The current payload will be dropped, and the previous payload resent
- The user should just keep trying to send the same data if a 0 is
received
2014-03-19 03:19:39 -06:00
TMRh20 d0ec0c461c Changed writing modes
- Changed writeClear to the default radio.write() option
- Changed write() to writeBlock() - uses the auto-retry functionality of
the chip and will block forever until successful
2014-03-19 00:46:47 -06:00
TMRh20 dfc75db8e6 Update readme temporarily
- advisory of non-compliance with current documentation
2014-03-18 08:32:10 -06:00
TMRh20 4cf0fb0c5a High Speed Data Transfers/Optimization
Changes:

- Enable PTX at radio begin, in standby-I mode
- Enable PTX at radio stopListening(); in standy-I mode

- Radio startListening
- removed delay. What is there to wait for when the radio will just be
listening anyway?

- Radio powerUp
- radio will need to be powered up after configuration
- radio will not power down unless instructed to
- need to issue radio.txStandBy(); when finished transmitting to engage
standby-I mode

- Added txStandBy() to drop to standBy-I mode if not switching to RX
mode

- Radio Write: Sped up
- radio previously did not use standby mode effectively, after TX
sending of each packet, the radio is
powered down introducing a 1.5ms delay in addition to the 130us delay
from standby.
- No observe-tx code, a simple NOP cmd is sent to get the status info
- No millis() timeout, hanging condition should only occur because of
faulty code
- Simplified whatHappened() code
- Flush TX FIFO if MAX_RT met as lib does not support re-transmit
instead of flush every time.
- Remove ack size monitoring
- No powerdown needed,

- Added writeClear() function for writes that need the interrupt flags
cleared (ack payloads, etc). Same as write() otherwise

- Radio startWrite: Sped up
- Enable PTX mode is now done in stopListening() code. Enter TX mode by
writing CE high.
This brings the data transfer capabilities up to a reasonable level
- No need to power up, already in Standby-I mode
- No need for delayMicroseconds() in write functon.
- No need for delay after writing CE high
- Does not enter Standby-I mode be default. It is up to the MCU to call
the new txStandBy() function to enter standby-I mode from PTX if not
switching back to PRX

- Radio available:
- Now checks the FIFO buffer instead of the interrupt flag (no missed
data)
- Moved clearing of interrupt flags to Read()

- Radio read:
- No longer returns any value - use available to check for more data

- Radio isAckPayloadAvailable() now checks the FIFO directly

- Radio getDynamicPayloadSize() - Per the datasheet, added fix to flush
corrupted packets
2014-03-18 07:07:03 -06:00
maniacbug ebcd0d1d0b Add isValid 2013-10-03 06:53:28 -07:00
maniacbug 8eaad77b2c Merge pull request #16 from RWSDev/master
Updated led_remote example to use correct var on line 172
2013-07-12 20:31:56 -07:00
Jason Becht 49f22eae21 Update examples/led_remote/led_remote.pde
Line 172 was using button_pins instead of led_pins.  This caused leds to be lit dim when set to HIGH.  Changed to correct var.
2013-02-06 18:43:42 -06:00
maniacbug 84e464def4 latest jamfiles 2012-06-23 19:46:42 -07:00
maniacbug 2c97186329 Fix bug introduced in the move to PROGMEM. Props to @basilrx for finding this. Also added a test case to demonstrate the bug, and guard against more like it in the future. 2012-02-26 19:53:08 -08:00
maniacbug f6e59b9de8 Remove prog_char, for compliance with gcc 4.6.1 2012-01-17 22:05:11 -08:00
maniacbug 205d4b5cc1 Tune timing and upload rate of tests 2012-01-17 22:04:20 -08:00
maniacbug 94635e8cc5 runtests now hups between each test instead of uploading 2012-01-15 23:35:07 -08:00
maniacbug c6262edbce FAQ- How much RAM?? 2012-01-15 22:23:10 -08:00
maniacbug 99df87cba9 Merge branch 'master' of github.com:maniacbug/RF24 2012-01-15 22:18:16 -08:00
maniacbug dc48235343 Refactor pingpair_test to remove all serial io from within the irq handler, as necessitated by Arduino 1.0 2012-01-15 22:15:45 -08:00
maniacbug dec61af85f pingpair_blocking test now uses expect and runs on linux 2012-01-15 22:07:13 -08:00
maniacbug c2e9564678 Use latest Jamfile 2012-01-15 22:06:27 -08:00
maniacbug eb3b2d800a Reduce RAM footprint by moving static const data to progmem, and refactoring out switch statements. 2012-01-15 22:05:44 -08:00
maniacbug e31f8c8211 Update docs and comments for new nordic fob blog post 2012-01-08 08:30:01 -08:00
maniacbug cb6613d62f Really...Pins 9 & 10 this time. I mean it\! 2012-01-04 21:23:15 -08:00
maniacbug 33e59af725 Fix Jamfile for proper ordering of libraries 2012-01-04 21:21:02 -08:00
maniacbug b3f7f51510 docupdate 2012-01-04 21:20:39 -08:00
maniacbug d1653e8cad nordic_fob example fully working. 2012-01-04 21:00:15 -08:00
maniacbug 36167a9e02 New 'nordic_fob' example started, based on pingpair 2012-01-04 20:11:28 -08:00
maniacbug 76f79e62ed Fix bug in pingpair Jamfile 2011-12-24 10:09:46 -08:00
maniacbug 07a4bcf425 Use latest copyright 2011-12-24 10:07:16 -08:00
maniacbug fc06760736 Documentation update. 1.0 fully supported, Maple works, more examples, links and pictures for proejcts 2011-12-21 10:17:16 -08:00
maniacbug 238e9d27b6 Merge branch 'master' of github.com:maniacbug/RF24 2011-12-21 08:33:01 -08:00
maniacbug 5cb32c92cc Handle SPI.h better in Maple 2011-12-21 08:32:57 -08:00