I got a Raspberry Pi B 512MB RAM and hooked up a NRF24l01. Now using the TMRh20 library I wanted to configure the radio as followed:
#!/usr/bin/env python from __future__ import print_function import time import sys from RF24 import * import RPi.GPIO as GPIO irq_gpio_pin = None try: radio = RF24(RPI_V2_GPIO_P1_15, BCM2835_SPI_CS0, BCM2835_SPI_SPEED_8MHZ) pipes = [0xF0F0F0F0E1, 0xF0F0F0F0D2] print('pyRF24 - testing') radio.begin() radio.setChannel(60); radio.setDataRate(RF24_2MBPS); radio.setPALevel(RF24_PA_MIN); radio.setAutoAck(True); radio.enableDynamicPayloads(); radio.enableAckPayload(); radio.setRetries(5,15) radio.printDetails() radio.openReadingPipe(1,pipes) radio.startListening() print("Started to listen..") while True: [... stuff ...] except KeyboardInterrupt: print("\nProgram manually interupted.") except: print("\nUnexpected error:", sys.exc_info()) finally: GPIO.cleanup() # this ensures a clean exit
Looking at the output of
radio.printDetails() it seems like nothing changed (e.g. PA_Power still max and data rate at 1MBPS).
pyRF24 - testing ================ SPI Configuration ================ CSN Pin = CE0 (PI Hardware Driven) CE Pin = Custom GPIO22 Clock Speed = 8 Mhz ================ NRF Configuration ================ STATUS = 0xff RX_DR=1 TX_DS=1 MAX_RT=1 RX_P_NO=7 TX_FULL=1 RX_ADDR_P0-1 = 0xffffffffff 0xffffffffff RX_ADDR_P2-5 = 0xff 0xff 0xff 0xff TX_ADDR = 0xffffffffff RX_PW_P0-6 = 0xff 0xff 0xff 0xff 0xff 0xff EN_AA = 0xff EN_RXADDR = 0xff RF_CH = 0xff RF_SETUP = 0xff CONFIG = 0xff DYNPD/FEATURE = 0xff 0xff Data Rate = 1MBPS Model = nRF24L01 CRC Length = 16 bits PA Power = PA_MAX
I tried similar stuff with C++ and had the same effect. Also I googled about it, but couldn't find related problems. Therefor I think, that I got a stupid mistake that I'm currently unable to see.
So my question is: What am I doing wrong here? How to configure the radio object?