Raspberry Pi B+ and the BrickPi3: BrickPi not found (Problem ID 24280)

Stacked a BrickPi 3 hat onto a Raspberry Pi B+. Mounted on a simple robot car with elements of LEGO MIndstorms NXT 2 motors connected, to connection MB and MC. An ultrasone sensor connected to S1… O.S.: Raspbian Jessie, latest upgrade. WiFi working. RealVNC session from desktop PC (Windows 10) into Raspi works. I cloned the BrickPi python script tree from .github. Various python scripts seem to wait for a response that obviously does not come. I ran the troubleshoot.sh and sent the result log via this script. Problem ID is 24280. The end of the error_log.txt tells that the BrickPi is not found. The troubleshooting log reports: “I2C still in blacklist (ERR)” and “SPI still in blacklist (ERR)” but I had uncommented them before. The log also reports "Serial Port not Enabled (ERR), but I had it enabled via raspi-config.
I would appreaciate your help.

Hellp @paul.schulinck,

You mentioned cloning the repo but there’s no mention of running the install script.
The install script can be found here: https://github.com/DexterInd/BrickPi3/blob/master/Install/install.sh

Could you confirm that you did run it?

Cleo

Hi Cleo, Thank you for your reply. I checked the README.md file again and I think I cloned the wrong set for the BrickPi and the BrickPi+. From the Setup_Files folder I ran the install.sh. I have a screenshot of it.
I am going to clone now the one for the BrickPi3 and see what happens.

Hi Cleo. I now cloned the BrickPi3 repo into /home/pi/Dexter/BrickPi3 and I ran the …/install/install.sh.
No problems. But the Read_Info.py reports "BrickPi3 firmware needs to be version 1.4.x but is currently version 1.0.1. I am a bit astonished that I have to update the firmware so soon because this BrickPi3 was bought on the 18th of May 2017. See order: 121836.
So I ran “sudo bash /home/pi/Dexter/BrickPi3/Firmware/brickpi3samd_flash_firmware.sh”
This did not run successful. The first error reported is “Error: Could not initialize the debug port”.
What can I do to correct this?

Hi Cleo, Today I burned a copy of the Dexter Ind’s Raspbian-For-Robots to a 32GB SD-card. Installation went OK. Then I tried to run the DI Update - the part to update the Firmware for the BrickPi3. The log gave the same errors as when I was using the updated Raspbian-Jessie distro. Then I ran the DI Update for the Raspbian system. That took about 45 minutes to complete. Again I ran the update for the firmware of the BrickPi3. Unfortunately the same errors are continuing to appear. I begin to get the feeling that there is something wrong with the hardware or the PCB of this BrickPi3. I attach the latest update log for you to check. I hope that the inability to update the firmware is not hardware related. Awaiting your reply… Dexter_Software_Update_log_2017_07_02__17_54_43.txt (168.5 KB)
Dexter_Software_Update_log_2017_07_02__18_33_18.txt (2.1 KB)

Today around noon I interchanged the Raspberry Pi B+ for a Raspberry Pi 3B. I Connected the latter with the BrickPi3, booted up and ran the Firmware update script. It ran without problem. Then I ran the python scripts: Read_Info.py and Test_Connected.py. Also these ran OK. See the images. Conclusion: my Raspberry Pi model B+ is not compatible with the BrickPi3 while using the latest version of “Raspbian-For-Robots” neither with the stock Raspbian Jessie (Pixel). So now I go to do further tests…see if I can get the NXT motors running. For me this problem case can be closed.

Hi @paul.schulinck,

Okay, so I’ve been running the BrickPi3 on a Raspberry Pi 3 and it worked.
So, that’s great news to hear.


But seeing that I have a Raspberry Pi B+ Model around, I’ll try to give it a try and see if fails just as yours did.
Maybe we reach a common denomitator and conclude that the BrickPi3 does have a problem on a Raspberry Pi B+ Model.


EDIT

@paul.schulinck, I concur the issue you had.
It seems that I cannot flash the firmware onto a BrickPi3 with a Raspberry Pi B+ Model.

On the other hand, the BrickPi3 can communicate with a Raspberry Pi B+ Model provided it was updated to the appropriate version - as of now I have version 1.4.3 and it works.


Thank you!

Hi @RobertLucian,
Thank you very much for your reply. Yes, that would be great if you could do a test with a model B+. I think that I read somewhere here at DI webpages that the model B+ is compatible with the BrickPi3. It is possible that there is now a problem with the latest Rasbian distros. Anyway I appreciate your intention very much, because if we’re able to find the cause of the problem I could go to use my model B+ again because I was using my model 3B for other things. I want to add that when using the model B+ I found an error in dmesg saying that kernel modules could not be loaded. Then by a cut-ant-try method I discovered that when I uncommented “spi-dev” in the file /etc/modules, the error mentioned disappeard in dmesg. and since I still had the “dtparam=spi=on” in the /boot/config.txt I think that would be enough to activate SPI. – Awaiting the results of your tests. Tnx|

Hi @paul.schulinck,

So, I’ve been diving a little bit on this issue.
Before briefing you on this matter, here’s some clarification:

  • We use the SPI protocol for communicating with the BrickPi3 and not for programming it.

  • We use the SWD protocol for programming the BrickPi3 - this is done through OpenOCD which is a 2-pin alternative to the traditional JTAG.


Our issue is that OpenOCD uses a configuration file that’s valid for the Raspberry Pi 2 & 3 and not for the Raspberry Pi B+ we have tested with.
So, this configuration file we’re currently using is named raspberrypi2-native.cfg can be found in /usr/local/share/openocd/interface folder.

Our task is to create a configuration file that’s supporting the Raspberry Pi B+ - that’s all.

Again, this holds true until proven otherwise, so we need some time to work on this before coming out with something.


At the moment, you can use your BrickPi3 along with a Raspberry Pi B+ just fine.
The only downside is that you won’t be able to reflash the BrickPi3 with a Raspberry Pi B+.

Provided your BrickPi3 is updated to the latest version, stack it on top of your Raspberry Pi B+ and try to run Read_Info.py again and see if it works. Mine did!


Again, thank you for helping us getting this thing solved.
We will try to come up with a solution these days.

Thank you!

Hi @RobertLucian ,
Thank you for your reply and all the information and tips. As you suggested, I stacked the BrickPi3 once again on top of the Raspberry Pi model B+, booted it. Then I started a remote session into the B+ via VNC. I went to the python examples folder and ran. Test_Connected.py and Read_Info.py. Both python scripts ran without problem and returned the expected output. See the attached screenshots. This confirms what you wrote that it is possible to use a Raspberry Pi model B+ with a BrickPi3 as long as the BrickPi3 is flashed as needed by the software. It was a pleasure to help.
For now I am going to use again the model 3B with the BrickPi3 because of the benefits the 3B has: more rapid booting, Wireless incorporated and so on.

I found the source of the bug that prevented the B+ from flashing the firmware, and I fixed it. You can update the BrickPi3 installation (instructions here) to take advantage of the bug fix.