Hi guys, I am new to Grove products and have recently bought their sensor starter kit. I’m not new to the Raspberry Pi however and have completed many projects with sensors and lcd etc. I like the idea of the modular approach of Grovepi but for the life of me I cannot configure a fresh Debian 32bit Os to work with this kit. I have followed the official steps to the letter but none of the commands work as they should. I have searched this topic and tried some of the remedy’s but to no avail. I really want to get going with this kit. Can anyone help. Many thanks,
Chris.
Hi @c.down, welcome to the forum.
Normally, I as a “know nothing about GrovePi+ except what I learned here on this forum”, recommend this thread:
Is this that OS you tried?
What commands are you referring to?
Where you user “pi” when you executed them?
What error messages did you see?
Hi, many thanks for your reply. I am using a 32bit Debian Pi OS but I will try that OS that you suggest. It’s interesting that the thread mentions making the user name “Pi”, I did try this when setting the OS up but it suggested strongly that I didn’t. I wonder if that is why when I use the official commands in the terminal errors of “this not found that not found” etc?
When I say commands I mean the command lines suggested by Dexter themselves.
The wrong username will cause no end of strange problems.
In essence, none of this is valid without the username being “pi”.
I agree that trying the base software package first is a great idea, if for no other reason than to verify that things work.
Once that’s done, (and you know how the pieces fit together), you can experiment with porting to other versions and distributions.
Good luck and don’t forget to let us know what’s going on.
P.S.
Regarding @cyclicalobsessive’s question about the “commands used” and error messages - it’s much easier for us to help you if you provide the exact text of what happened - a cut-and-paste from the command window where the errors are is the best way to give us the correct context and information to best help you.
Addendum:
Early versions of the Raspbian OS for the Raspberry Pi were preset with the username hard-coded to “pi” and the password to “raspberry”.
The original manufacturer of these items, (Dexter Industries), modified the operating system used by the BrickPi, GrovePi, and the GoPiGo robots by extending it with the special software and OS services needed for the robot to function. To make it easier to tell them apart, they named the software “Raspbian for Robots”.
They used the default user, (pi), and changed the default password to “robots1234” for the software, and all the configuration utilities were designed to use these credentials.
As a result, All of the utilities for the GoPiGo, BrickPi, and GrovePi REQUIRE the username and password to be set to “pi” and “robots1234”.
This is due to the legacy nature of these libraries.
There has been discussion about allowing any username and/or password, but - so far - nobody has had either the time or desire to update all the Dexter configuration scripts.
hi, thanks for your reply. i have tried using the suggestions detailed here but to no avail. However using using “PI” as the OS user name i can download the Update script but it throws up an error at the end of installation, this is it…“Downloading https://files.pythonhosted.org/packages/30/85/cdbf2c3c460fe5aae812917866392068a88d02f07de0fe31ce738734c477/scipy-1.12.0.tar.gz#sha256=4bf5abab8a36d20193c698b0f1fc282c1d083c94723902c447e5d2f1780936a3
Best match: scipy 1.12.0
Processing scipy-1.12.0.tar.gz
error: Couldn’t find a setup script in /tmp/easy_install-b4vdw6lr/scipy-1.12.0.tar.gz”…
Therefore when i try to detect the i2c adress there isnt one.
i am using the legacy OS image from Pi Imager build date 3rd May 2023. can you help its all very frustrating i cant wait to start using the GrovePi+ and sensors.
Chris
Sorry that build date was 5th May 2023!
@c.down You are making good progress. You have the recommended OS up and running. Let’s check a few things:
- Please copy from your terminal typing these commands and the results:
whoami
groups pi
uname -a
cat /etc/os-release
i2cdetect -l <-- lowercase L
i2cdetect -y 1 <--- number one
curl -kL dexterindustries.com/update_grovepi | bash
In your reply type three back quotes, twice like this with a blank line in between:
```
```
Then copy everything from your terminal, commands and the output results, place your cursor between the back quotes and paste it all in.
And post it.
Sometimes I have seen ipv6 create issues - so you might have to try disabling ipv6:
sudo cp /boot/cmdline.txt /boot/cmdline.txt.bak
sudo nano cmdline.txt
ctrl-e to end of line (do not add a return), type a space then:
ipv6.disable=1
save and exit: ctrl-x then: y return/enter
Hi Cyclical, thank you so much for this. As it happened I didn’t have the recommended OS but I have found an image of it and put it on an SD card and booted it up no problem. I followed the DexterInd instructions to the letter and got further with the installation than before but ultimately threw up an error right at the end. So as it stands my Pi4 is still not talking to the Grove Hat but I will persevere and try again following your latest advice.
Thank you again.
Chris
‘’’
pi@raspberrypi:~ $ whoami
pi
pi@raspberrypi:~ $ groups pi
pi : pi adm dialout cdrom sudo audio video plugdev games users input netdev spi i2c gpio lpadmin
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 5.10.103-v7l+ #1529 SMP Tue Mar 8 12:24:00 GMT 2022 armv7l GNU/Linux
pi@raspberrypi:~ $ cat /etc/os-release
PRETTY_NAME=“Raspbian GNU/Linux 10 (buster)”
NAME=“Raspbian GNU/Linux”
VERSION_ID=“10”
VERSION=“10 (buster)”
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL=“http://www.raspbian.org/”
SUPPORT_URL=“RaspbianForums - Raspbian”
BUG_REPORT_URL=“RaspbianBugs - Raspbian”
pi@raspberrypi:~ $ i2cdetect -1
Error: Unsupported option “-1”!
Usage: i2cdetect [-y] [-a] [-q|-r] I2CBUS [FIRST LAST]
i2cdetect -F I2CBUS
i2cdetect -l
I2CBUS is an integer or an I2C bus name
If provided, FIRST and LAST limit the probing range.
pi@raspberrypi:~ $ i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: – 04 – – – – – – – – – – –
10: – – – – – – – – – – – – – – – –
20: – – – – – – – – – – – – – – – –
30: – – – – – – – – – – – – – – – –
40: – – – – – – – – – – – – – – – –
50: – – – – – – – – – – – – – – – –
60: – – – – – – – – – – – – – – – –
70: – – – – – – – –
pi@raspberrypi:~ $ curl KL dexterindustries.com/update_grovepi | bash
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:–:-- --:–:-- --:–:-- 0curl: (6) Could not resolve host: KL
100 251 100 251 0 0 912 0 --:–:-- --:–:-- --:–:-- 916
bash: line 1: syntax error near unexpected token newline' bash: line 1:
’
pi@raspberrypi:~ $
‘’’
hi, here are th responses to your suggested terminal commands.
Chris.
try curl -kL not KL
with the hyphen lowercase k
Hi,and good morning, i tried the curl command as you suggested, the installation went ahead but culminated with and error at the very end,
‘’’
return self.install_item(None, spec, tmpdir, deps, True)
File “/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py”, line 732, in install_item
self.process_distribution(spec, dist, deps)
File “/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py”, line 777, in process_distribution
[requirement], self.local_index, self.easy_install
File “/usr/lib/python2.7/dist-packages/pkg_resources/init.py”, line 782, in resolve
replace_conflicting=replace_conflicting
File “/usr/lib/python2.7/dist-packages/pkg_resources/init.py”, line 1065, in best_match
return self.obtain(req, installer)
File “/usr/lib/python2.7/dist-packages/pkg_resources/init.py”, line 1077, in obtain
return installer(requirement)
File “/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py”, line 704, in easy_install
return self.install_item(spec, dist.location, tmpdir, deps)
File “/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py”, line 730, in install_item
dists = self.install_eggs(spec, download, tmpdir)
File “/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py”, line 915, in install_eggs
return self.build_and_install(setup_script, setup_base)
File “/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py”, line 1183, in build_and_install
self.run_setup(setup_script, setup_base, args)
File “/usr/lib/python2.7/dist-packages/setuptools/command/easy_install.py”, line 1169, in run_setup
run_setup(setup_script, args)
File “/usr/lib/python2.7/dist-packages/setuptools/sandbox.py”, line 253, in run_setup
raise
File “/usr/lib/python2.7/contextlib.py”, line 35, in exit
self.gen.throw(type, value, traceback)
File “/usr/lib/python2.7/dist-packages/setuptools/sandbox.py”, line 195, in setup_context
yield
File “/usr/lib/python2.7/contextlib.py”, line 35, in exit
self.gen.throw(type, value, traceback)
File “/usr/lib/python2.7/dist-packages/setuptools/sandbox.py”, line 166, in save_modules
saved_exc.resume()
File “/usr/lib/python2.7/dist-packages/setuptools/sandbox.py”, line 141, in resume
six.reraise(type, exc, self._tb)
File “/usr/lib/python2.7/dist-packages/setuptools/sandbox.py”, line 154, in save_modules
yield saved
File “/usr/lib/python2.7/dist-packages/setuptools/sandbox.py”, line 195, in setup_context
yield
File “/usr/lib/python2.7/dist-packages/setuptools/sandbox.py”, line 250, in run_setup
_execfile(setup_script, ns)
File “/usr/lib/python2.7/dist-packages/setuptools/sandbox.py”, line 45, in _execfile
exec(code, globals, locals)
File “/tmp/easy_install-rOQ_4k/smbus-cffi-0.5.1/setup.py”, line 48, in
import os
File “/usr/lib/python2.7/dist-packages/setuptools/init.py”, line 145, in setup
return distutils.core.setup(**attrs)
File “/usr/lib/python2.7/distutils/core.py”, line 111, in setup
_setup_distribution = dist = klass(attrs)
File “/usr/lib/python2.7/dist-packages/setuptools/dist.py”, line 447, in init
k: v for k, v in attrs.items()
File “/usr/lib/python2.7/distutils/dist.py”, line 287, in init
self.finalize_options()
File “/usr/lib/python2.7/dist-packages/setuptools/dist.py”, line 739, in finalize_options
ep.load()(self, ep.name, value)
File “/tmp/easy_install-rOQ_4k/smbus-cffi-0.5.1/.eggs/cffi-1.16.0-py2.7-linux-armv7l.egg/cffi/setuptools_ext.py”, line 216, in cffi_modules
File “/tmp/easy_install-rOQ_4k/smbus-cffi-0.5.1/.eggs/cffi-1.16.0-py2.7-linux-armv7l.egg/cffi/setuptools_ext.py”, line 71, in add_cffi_module
File “/tmp/easy_install-rOQ_4k/smbus-cffi-0.5.1/.eggs/cffi-1.16.0-py2.7-linux-armv7l.egg/cffi/setuptools_ext.py”, line 109, in _add_c_module
File “/tmp/easy_install-rOQ_4k/smbus-cffi-0.5.1/.eggs/cffi-1.16.0-py2.7-linux-armv7l.egg/cffi/_shimmed_dist_utils.py”, line 16
raise Exception(“This CFFI feature requires setuptools on Python >= 3.12. The setuptools module is missing or non-functional.”) from ex
^
SyntaxError: invalid syntax
‘’’
You need to install the Raspberry Pi setup tools for Python 3.12 or later.
There are instructions on how to install it here.
You need to be able to open a python console and use “pip”. A web search is your friend.
Thankyou I will do that.
Personally, I would not pursue that rabbit hole.
If something the GrovePi install depends on has changed, the onus for maintenance falls on the seller of the product. Fire off your findings to support@modrobotics.com and don’t kill your enthusiasm with blind attempts to bring the universe into harmony.
The Python folks have determined that Python 2.7 is EOL, dead, deprecated, abandoned, eschewed, and hope it to pass quietly and meekly into computer science history.
So the GrovePi requiring an equally abandoned OS version is forcing a rift in the smooth fabric of our universe.
Sad, frustrating, and maddening.
ill try that but before i go this is the latest log i have from the Test and Troubleshooter…
‘’’
Check space left
Filesystem Size Used Avail Use% Mounted on
/dev/root 14G 4.5G 8.9G 34% /
devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 8.6M 1.9G 1% /run
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mmcblk0p1 253M 49M 204M 20% /boot
tmpfs 384M 4.0K 384M 1% /run/user/1000
Check for dependencies
python 2.7.16-1 install ok installed
python-pip 18.1-5+rpt1 install ok installed
git 1:2.20.1-2+deb10u8 install ok installed
libi2c-dev 4.1-1 install ok installed
python-serial 3.4-4 install ok installed
python-rpi.gpio 0.7.0-0.1~bpo10+4 install ok installed
i2c-tools 4.1-1 install ok installed
python-smbus 4.1-1 install ok installed
scratch 1.4.0.6~dfsg1-6 install ok installed
I2C still in blacklist
SPI still in blacklist
Check for addition in /modules
I2C-dev already there
i2c-bcm2708 already there
spi-dev already there
Hardware revision
Traceback (most recent call last):
File “”, line 1, in
ModuleNotFoundError: No module named ‘auto_detect_rpi’
Check the /dev folder
i2c-1
ttyAMA0
USB device status
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 001 Device 005: ID 04d9:0006 Holtek Semiconductor, Inc.
Bus 001 Device 003: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 3: Dev 3, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 1: Dev 5, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 1: Dev 5, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 4: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
Raspbian for Robots Version
cat: /home/pi/di_update/Raspbian_For_Robots/Version: No such file or directory
Hostname
raspberrypi
Checking I2C bus for devices
Checking I2C bus 0
NOTE: it is normal for this one to fail
Error: Could not open file /dev/i2c-0' or
/dev/i2c/0’: No such file or directory
Checking I2C bus 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: – 04 – – – – – – – – – – –
10: – – – – – – – – – – – – – – – –
20: – – – – – – – – – – – – – – – –
30: – – – – – – – – – – – – – – – –
40: – – – – – – – – – – – – – – – –
50: – – – – – – – – – – – – – – – –
60: – – – – – – – – – – – – – – – –
70: – – – – – – – –
Checking for firmware version
Traceback (most recent call last):
File “/home/pi/Dexter/GrovePi/Software/Python/grove_firmware_version_check.py”, line 37, in
import grovepi
File “/home/pi/Dexter/GrovePi/Software/Python/grovepi.py”, line 54, in
import di_i2c
File “build/bdist.linux-armv7l/egg/di_i2c.py”, line 29, in
ImportError: No module named periphery
‘’’
Chris.
Long ago this was suggested to try if you get that:
sudo apt-get install build-essential libi2c-dev i2c-tools python-dev libffi-dev
sudo pip install cffi && sudo pip3 install cffi
(and then some folks retried the grovepi_update script)
Reference: Robert Lucian 2019
The other side of that is the fact that MR isn’t likely to invest a lot of time into updating old operating systems for unsupported hardware so they comply with current standards. Especially since the Grove side of things hasn’t seen much interest up until now.
(Admittedly, there seems to be a resurgence of interest in the GrovePi in recent times, which is good.)
Ergo, the onus falls upon us, the interested users, to find solutions to these problems in the same way that it falls to us to find a way to import the GoPiGo-3 libraries into something that will run on a Pi-5, if that’s important to us in the long term.[1]
What we CAN do is research these issues and, when a good solution is found, open a pull request via Nicole to update the repositories on GitHub.
Maybe it’s a "rabbit-hole’. Maybe it’s a unicorn. But what IS true is if we twiddle our fingers while we wait for someone else to do it, we’re going to be waiting a long time.
What say ye?
====================
- Those of us who have been here on these forums for awhile may remember the community-driven research into Buster on the Pi-4 that ultimately culminated in MR releasing the current GoPiGo OS series of operating systems.
It is due, in great measure, to the untiring research done by the community that the GoPiGo OS operating system even exists.