SGP30 not returning data

siclark
Posts: 2355
Joined: Tue Jun 13, 2017 5:08 am
Location: UK

SGP30 not returning data

Post by siclark »

Hi Karl,

I have bought a couple of new sensors as I look to expand my pibeacon setup, as you make it so easy.
The BME680 is working fine, but the SGP30 is not. It is telling me bad Sensor data.

I struggled a bit looking at both pimoroni and adafruit libraries but I can see it responding to CO2 changes in python as I breathe on it, so it is working. Are there specific libraries I should ensure are setup that you use? Anything else I could try to debug?

Thanks
User avatar
kw123
Posts: 8705
Joined: Sun May 12, 2013 4:44 pm
Location: Dallas, TX
Contact:

Re: SGP30 not returning data

Post by kw123 »

I have switched to the "mhz-i2c" co2 sensor.

for the sgp30 everything should be present.. (sgp30.py)

on the RPI:
please check if the i2c channel is active:

Code: Select all

i2cdetect -y 1
then

Code: Select all

cd pibeacon
sudo python sgp30.py
if your get

Code: Select all

06-09:18:37 piBeaconUtils   restartMyself        L:101  Lv:50 cBY:sgp30                --- restarting ---   badsensor
06-09:18:38 sgp30           readParams           L:183  Lv:30 sgp30 reading new parameter file
06-09:18:38 sgp30           startSensor          L:255  Lv:30 ==== Start sgp30 ===== @ i2c= 88
06-09:18:38 sgp30           startSensor          L:271  Lv:30 in Line 262 has error=[Errno 121] Remote I/O error
then the sensor is not recognized on the api

I will reactivate mine and check

Karl
User avatar
kw123
Posts: 8705
Joined: Sun May 12, 2013 4:44 pm
Location: Dallas, TX
Contact:

Re: SGP30 not returning data

Post by kw123 »

after reactivating I get:

Code: Select all

sudo python sgp30.py ; tail -f /var/log/pibeacon.log
06-10:44:25 sgp30           startSensor          L:255  Lv:30 ==== Start sgp30 ===== @ i2c= 88
06-10:44:25 sgp30           startSensor          L:263  Lv:30 SGP30 serial #['0x0', '0x64', '0xe603']
06-10:44:25 sgp30           startSensor          L:264  Lv:30 featureset   ['0x20']
06-10:44:26 master          startProgam          L:607  Lv:20 >>>> starting sgp30.py  -- restarting sgp30.py ..not running .. no alive file;--  with cmd: sudo /usr/bin/python /home/pi/pibeacon/sgp30.py  &
06-10:44:26 piBeaconUtils   getIPNumber          L:516  Lv:20 cBY:sgp30                found IP number:192.168.1.20
06-10:44:26 sgp30           readParams           L:183  Lv:30 sgp30 reading new parameter file
06-10:44:26 sgp30           startSensor          L:255  Lv:30 ==== Start sgp30 ===== @ i2c= 88
06-10:44:26 sgp30           startSensor          L:263  Lv:30 SGP30 serial #['0x0', '0x64', '0xe603']
06-10:44:26 sgp30           startSensor          L:264  Lv:30 featureset   ['0x20']
and

Code: Select all

tail -F temp/messageSend | grep sgp
tail: temp/messageSend: file truncated
...
tail: temp/messageSend: file truncated
10:45:38 sgp30:  send -- {"pi":"0","sensors":{"sgp30":{"526192700":{"CO2":"408","VOC":"5"}}},"program":"sgp30","ipAddress":"192.168.1.20","ts":{"tz":"CDT","time":1575650737.92}}
tail: temp/messageSend: file truncated
...
tail: temp/messageSend: file truncated
10:46:34 master:  send -- {"last_masterStart":"2019-12-06 10:43:51","temp":"60.0","rpi_type":"Pi 4 Model B Rev 1.1, ser#10000000f1d7dedb","ts":{"tz":"CDT","time":1575650794.5},"program":"master","last_boot":"2019-12-06 02:01:03","sensors_active":"sgp30, rdlidar, bme680, 3 INPUTpulse, OPT3001","pi":"0","ipAddress":"192.168.1.20","op_sys":"10 (buster), 4.19.75-v7l+, #1270 SMP Tue Sep 24 18:51:41 BST 2019","i2c_active":"16=x10,71=x47,124=x7c"}
tail: temp/messageSend: file truncated
...
tail: temp/messageSend: file truncated
10:47:06 sgp30:  send -- {"pi":"0","sensors":{"sgp30":{"526192700":{"CO2":"419","VOC":"4"}}},"program":"sgp30","ipAddress":"192.168.1.20","ts":{"tz":"CDT","time":1575650826.13}}
tai
thats how it should look like and the plugin updates as well..

I guess the software works..

so please do the i2cdetect
then switch debug on for that rpi in config

on rpi do
tail -f /var/log/pibeacon.log | grep sgp


Karl
siclark
Posts: 2355
Joined: Tue Jun 13, 2017 5:08 am
Location: UK

Re: SGP30 not returning data

Post by siclark »

Cheers. I was getting it on i2cdetect but not now. I think I need to check my soldering. Might be a loose connection.
User avatar
kw123
Posts: 8705
Joined: Sun May 12, 2013 4:44 pm
Location: Dallas, TX
Contact:

Re: SGP30 not returning data

Post by kw123 »

the sGP30 is a special sensor. the i2cdetect info is not reliable.
because of that i2c multiplexing will not work.

I have a new version that seems to work. will post later today.
need to play with baseline etc..


Karl
siclark
Posts: 2355
Joined: Tue Jun 13, 2017 5:08 am
Location: UK

Re: SGP30 not returning data

Post by siclark »

Thanks. No rush.
User avatar
kw123
Posts: 8705
Joined: Sun May 12, 2013 4:44 pm
Location: Dallas, TX
Contact:

Re: SGP30 not returning data

Post by kw123 »

I believe I and finished - rewrite of program, including (auto) calibration process and lots of error controls

... but it looks as if the SGP30 does not play well with some other i2c sensors

will add back some sensors to check which one.

Karl
siclark
Posts: 2355
Joined: Tue Jun 13, 2017 5:08 am
Location: UK

Re: SGP30 not returning data

Post by siclark »

Thank you Karl. You didn't need to go to trouble of rewriting it.
I don't think I'll be using it on a pi with other sensors but point noted.
Post Reply

Return to “piBeacon”