1. 16 Aug, 2014 1 commit
    • TMRh20's avatar
      Fix: Multicast pipe0 address handling issue · 9da3eac0
      TMRh20 authored
      Previous behaviour:
      1. Radio #1: Pipe 0 opened for writing (Address1), pipe 1 opened for
      reading (Address2)
      2. The radio would end up listening on the following pipes/addresses,
      because pipe0 was not assigned a separate reading address.
      Pipe0: Address1
      Pipe1: Address2
      3. This is generally not a problem with 2 radios, but when multicasting
      with three. If two of the radios transmit to the same address, then
      start listening, all three radios will be listening to the same address
      on pipe0, unless pipe0 has been assigned a separate reading address
      
      New behaviour:
      1. Radio #1: Pipe 0 opened for writing (Address1), pipe 1 opened for
      reading (Address2)
      2. When calling radio.startListening() pipe0 is closed, because it is
      not assigned a reading address
      3. Pipe0 is re-opened for writing only, unless a reading address is
      assigned to pipe0
      
      This wouldn't really affect things while using auto-ack, because two
      radios should not be writing to the same pipe/address.
      
      - Add closeReadingPipe for RPi
      - Also adjusted timing for startListening();
      - Fix failure detect variable on RPi
      9da3eac0
  2. 07 Aug, 2014 1 commit
  3. 06 Aug, 2014 4 commits
  4. 31 Jul, 2014 1 commit
    • TMRh20's avatar
      Add optional write timeout/failure handling · 327f0609
      TMRh20 authored
      Per issue #5 by sven337
      - Add optional failure handling/timeout
      - Un-comment #define FAILURE_HANDLING in RF24_config.h to enable
      - Add radio.errorDetected variable - indicates if an error/timeout was
      detected
      example:
      if(radio.failureDetected){
      delay(1000);
      radio.begin();
      radio.failureDetected = 0;
      radio.openWritingPipe(addresses[1]);
      radio.openReadingPipe(1,addresses[0]);
      report_failure(); //blink leds, send a message, etc.
      }
      
      Additional:
      - removed unused wide_band boolean
      - remove rx buffer flushes for RPi also
      327f0609
  5. 29 Jul, 2014 1 commit
    • TMRh20's avatar
      Modify write,startWrite, remove rx buffer flushes · 1d180150
      TMRh20 authored
      Modified write() to use startFastWrite, then toggle CE after completion
      to remove need for a delay on some boards.
      Added delay to startWrite for non-Arduino boards.
      Removed receive buffer flushes. This prevents an issue in the
      RF24Network library, where payloads would be received, but flushed when
      a transmission takes place prior to reading.
      Should address issues #7 and #11
      1d180150
  6. 16 Jun, 2014 1 commit
    • TMRh20's avatar
      Due & RPi bugfix - #9 - root cause resolved · 2869663f
      TMRh20 authored
      - Discovered a bug affecting Arduino Due using extended SPI methods, it
      seems an extra delay is required before switching to TX mode
      - Found the same bug affected the RPi, and removed all delays from
      bcm2835 driver, since this bug caused the strange behaviour on RPi
      2869663f
  7. 15 Jun, 2014 1 commit
    • TMRh20's avatar
      RPi - Example updates, minor bmc driver change · ea987810
      TMRh20 authored
      - Modified spi transfernb hopefully for the last time, re #9
      - Updated RPi examples to minimize CPU usage
      - Updated transfer example for Arduino and RPi to exit TX mode after 4ms
      per manufacturer. Improves multicast streaming.
      - Bit of a cleanup on RPi examples
      ea987810
  8. 14 Jun, 2014 1 commit
    • TMRh20's avatar
      Final tweaks to address #9 · b8d97f53
      TMRh20 authored
      - Adjusted spi writes (delay vs no delay)
      - Re-enabled buffer flushes on start/stop listening
      - Adjusted delay for transfernb()
      - Testing indicates that with gettingstarted_call_response example, ack
      responses may not be written soon enough if CPU load is high on RPi. eg:
      testing indicates this is a limitation of the hardware, not the driver.
      b8d97f53
  9. 06 Jun, 2014 1 commit
    • TMRh20's avatar
      - Fixes and modifications for Due & Teensy3.x · aac16506
      TMRh20 authored
      - Moved printf.h to root library folder
      - Modified printf.h for better compatibility with Arduino Due and Teensy
      - Fixed some potential bugs preventing Teensy from working
      - Improved Due support and performance
      - may help correct issue #7
      aac16506
  10. 25 May, 2014 1 commit
    • TMRh20's avatar
      Further tweaks per #9 · b62e179a
      TMRh20 authored
      - moved radio.flush_tx(); to public
      - adjusted call_response example to use tx_flush();
      - adjusted write_payload, read_payload
      b62e179a
  11. 22 May, 2014 1 commit
    • TMRh20's avatar
      Performance tweaks to address #9 · 5ec5b06b
      TMRh20 authored
      - added delays to stop/start listening on RPi
      - removed buffer flushes on start/stop listening for RPi
      - added modified transfernbd function to BCM library - one has no
      delays, also removed one delay period from both by waiting for RX data
      - modified transfernb function to stop sending if RX fifo is full
      - added delay to stoplistening for arduino etc. (actually seems to
      improve performance)
      - tests on-par with Arduino performance
      5ec5b06b
  12. 19 May, 2014 3 commits
  13. 18 May, 2014 2 commits
  14. 08 May, 2014 1 commit
    • TMRh20's avatar
      Updated address assignment · b7c24a81
      TMRh20 authored
      - Added setAddressWidth()  - allows address widths of 3 to 5 bytes
      (24,32 or 40 bits)
      - Addresses can now be specified via a byte array
      - Thanks to Zephyrr for suggestion
      b7c24a81
  15. 07 May, 2014 1 commit
  16. 06 May, 2014 4 commits
  17. 30 Apr, 2014 6 commits
  18. 26 Apr, 2014 1 commit
    • TMRh20's avatar
      RPi SPI functionality and RPi fix for startWrite · 6530f954
      TMRh20 authored
      - Enabled use of hardware CS1 pin
      - Removed custom_cs code for software driven CSN
      - Modified BCM driver to allow use of hardware SPI pins not in use while
      SPI is active.
      - Updated constructor in examples
      6530f954
  19. 24 Apr, 2014 2 commits
  20. 23 Apr, 2014 1 commit
  21. 22 Apr, 2014 1 commit
  22. 15 Apr, 2014 1 commit
  23. 11 Apr, 2014 1 commit
  24. 10 Apr, 2014 2 commits
    • TMRh20's avatar
      Revert powerUp() delay to 5ms delay · 18583123
      TMRh20 authored
      For nRF24L01+ to go from power down mode to TX or RX mode it must first
      pass through stand-by mode.
      There must be a delay of Tpd2stby (see Table 16.) after the nRF24L01+
      leaves power down mode before
      the CEis set high.
      
      5ms is the maximum defined in the v1.0 datasheet
      18583123
    • TMRh20's avatar
      enableDynamicAck(), Single NOACK, default RT, · 92a19af8
      TMRh20 authored
      - 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
      92a19af8