Debugging notes

Active today
Viewed 16 times

I am new to the Raspberry Pi platform and I have been trying to get my Pi to communicate with an NRF24L01 module. I have been at this for a few days and just cannot get it to work. Here is my info and what I have tried so far:

@raspberrypi:~ $ ./versioncheck.sh
- Original Installation
Raspberry Pi reference 2020-02-13
- Current OS
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 10 (buster)
Release:    10
Codename:   buster
- Kernel
- Model
Raspberry Pi 4 Model B Rev 1.1
- Firmware
Feb 12 2020 12:36:21 
Copyright (c) 2012 Broadcom
version c3c8dbdf147686fb0c3f32aece709d0653368810 (clean) (release) (start)
Filesystem created:       Sun Mar 15 20:45:11 2020

I have followed a bunch of tutorials and none have worked for me, however I was closest with this one: Youtube Tutorial

My code is:

import RPi.GPIO as GPIO
from lib_nrf24 import NRF24
import time
import spidev


pipes = [[0xE8, 0xE8, 0xF0, 0xF0, 0xE1], [0xF0, 0xF0, 0xF0, 0xF0, 0xE1]]

radio = NRF24(GPIO,spidev.spiDev())

radio.setPayloadsize (32)
radio.setChannel (0x76)
radio.setDataRate (NRF24.BR_1MBPS)
radio.setPALevel (NRF24.PA_MIN)


radio.openReadingPipe(1, pipes[1])

while True:

        while not radio.available(0):

        recievedMessage = []
        radio.read(receivedMessage, radio.getDynamicPayLoadSize())
        print("Recieved: {}".format(recievedMessage))

        print("Translating our received message into unicode characters...")
        string = ""

        for n in receivedMessage:
            if (n >= 32 and n <= 126):
                string =+ chr(n)
            print("Our received message decodes to: {}".format (string))

When I run the code I get:

  File "/home/pi/Desktop/NRF24L01/recieveArduino.py", line 11, in <module>
    radio = NRF24(GPIO,spidev.spiDev())
AttributeError: module 'spidev' has no attribute 'spiDev'

I have tried the following:(I think the is everything)

sudo apt-get install python3-dev 
  174  wget https://github.com/Gadgetoid/py-spidev/archive/master.zip
  175  unzip master.zip
  176  ls
  177  rm master.zip
  178  cd py-spidev-master/
  179  sudo python3 setup.py install
  180  cd desktop
  181  cd
  182  cd desktop/
  183  cd Desktop/
  184  ls
  185  mkdir NRF24L01
  186  cd NRF24L01/
  187  git clone https://github.com/BLavery/lib_nrf24
  188  cd lib_nrf24/
  189  ls
  190  cp lib_nrf24.py ~/Desktop/NRF24L01/
194  cd
  195  cd Desktop
  196  git clone https://github.com/tmrh20/RF24

I tried updating:

sudo apt-get update
  258  sudo apt-get dist-upgrade
  259  sudo easy_install RPi.gpio
  260  sudo apt-get install python-rpi.gpio python3-rpi.gpio
  261  sudo reboot
  262  history
  263  sudo apt-get python-dev python3-dev gcc python3-setuptools python3-pip
  264  sudo apt-get python3-dev gcc python3-setuptools python3-pip
  265  sudo apt-get instal python-dev python3-dev gcc python3-setuptools python3-pip
  266  sudo apt-get install python-dev python3-dev gcc python3-setuptools python3-pip
  267  sudo pip3 install RPi.GPIO


cd py-spydev
  283  git clone https://github.com/Gadgetoid/py-spydev
  284  sudo apt-get update
  285  sude apt-get install python-dev python3-dev -y
  286  sudo apt-get install python-dev python3-dev -y
  287  history
  288  wget https://github.com/Gadgetoid/py-spidev/archive/master.zip
  289  ls
  290  unzip master.zip
  291  rm master.zip
  292  cd py-spidev-master/
  293  ls
  294  sudo python setup.py install
  295  sudo python3 setup.py install

I have referenced the following answers:

Read this if you use Python Spidev

Raspberry Pi won’t recognize nRF24L01+

‘SpiDev’ object has no attribute ‘GPIO’

Possible SPI issues around NRF24 operations post RPi system update?

Problem with SPI after updating to Stretch

Sorry about the long post but I am at a loss and hoped to give as much info as I can in order to get this module to work. Thank you all in advance.

NOTE: Yes SPI is enabled and I have verified proper hardware connections

 New contributor
  • Hi, this guy does not seem to have your spiDev problem: raspberrypi.stackexchange.com/questions/107608/…. – tlfong01 4 hours ago   
  • 1
    True, however it got to the point that I was searching all over for any kind of hints that may help. – PiMikeTSQL 3 hours ago
  • Well, you got stuck at a point after “import spidev”, So I would suggest to check if you import garbage, and therefore output garbage. You might like to study Ref 28 of my answer to the following question related to non standard spidav:. raspberrypi.stackexchange.com/questions/109773/…. Cheers. – tlfong01 2 hours ago   
  • And you might like to read Parts 3 and 4 on how I debug garbage SPI stuff. In Part 3, I do a SPI loopback test, to make sure relevant SPI hardware and software are compatible, updated, upgraded, wired, and configured OK. In Part 4 I only use two statements: (a) “from ABC import CDE”, (b) create an object “xyz = CDE()”, and job is done. – tlfong01 2 hours ago    
  • 1
    @tlfong01 thank you very much for your comments it was really great information. I just needed to pay attention to my case sensitivity haha. – PiMikeTSQL 33 mins ago
  • Hi @PiMikeTSQL, LOL. Many thanks for bringing back me my sweet memory of making my very first typo mistake, when copying and pasting my teacher’s little demo program to run by the huge computer, in my very first day of learning computer programming, and going to the computer lab. After so many decades, now I still remember vividly my big joy of, after correcting the typo and the big, unforgiving computer finally accepted my little 4 line program and ran it! – tlfong01 2 mins ago    Edit   


Python is case sensitive.

Linux is case sensitive.


Try spidev.SpiDev() not spidev.spiDev().

  • 1
    Thank you so much I almost laughed when I read that. I also happened to find a few other typo’s and what do ya know it works. Thank you so much! – PiMikeTSQL 32 mins ago

Categories: Uncategorized

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: