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 theBrickPi3
and not for programming it. -
We use the
SWD
protocol for programming theBrickPi3
- this is done throughOpenOCD
which is a 2-pin alternative to the traditionalJTAG
.
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.