<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[M5sTACK ATOM LITE with PbHUB and sensors: how do I set this up for ESPHOME?]]></title><description><![CDATA[<p dir="auto">I have a M5sTACK ATOM LITE (<a href="https://docs.m5stack.com/#/en/core/atom_lite" target="_blank" rel="noopener noreferrer nofollow ugc">https://docs.m5stack.com/#/en/core/atom_lite</a>). Via the PbHUB (<a href="https://docs.m5stack.com/en/unit/pbhub" target="_blank" rel="noopener noreferrer nofollow ugc">https://docs.m5stack.com/en/unit/pbhub</a> AND <a href="https://github.com/m5stack/M5Stack/tree/master/examples/Unit/PbHUB" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/m5stack/M5Stack/tree/master/examples/Unit/PbHUB</a>) I connect the following sensors in this order into the ports of the PbHUB:<br />
On CH0: TVOC/eCO2 (<a href="https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/datasheet/unit/Sensirion_Gas_Sensors_SGP30_Datasheet.pdf" target="_blank" rel="noopener noreferrer nofollow ugc">https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/datasheet/unit/Sensirion_Gas_Sensors_SGP30_Datasheet.pdf</a>)<br />
On CH1: ENV III (<a href="https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/datasheet/unit/enviii/QMP6988%20Datasheet.pdf" target="_blank" rel="noopener noreferrer nofollow ugc">https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/datasheet/unit/enviii/QMP6988 Datasheet.pdf</a> + <a href="https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/datasheet/unit/SHT3x_Datasheet_digital.pdf" target="_blank" rel="noopener noreferrer nofollow ugc">https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/datasheet/unit/SHT3x_Datasheet_digital.pdf</a>)<br />
On CH2: DLight Unit (<a href="https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/datasheet/hat/BH1750FVI" target="_blank" rel="noopener noreferrer nofollow ugc">https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/datasheet/hat/BH1750FVI</a>).<br />
On CH3: Microphone Unit (LM393) (<a href="https://docs.m5stack.com/en/unit/mic" target="_blank" rel="noopener noreferrer nofollow ugc">https://docs.m5stack.com/en/unit/mic</a>).</p>
<p dir="auto"><strong>In the Home Assistant I have ESPHOME and the following YAML:</strong><br />
esphome:<br />
name: esphome-web-06c2e0<br />
friendly_name: ESPHome Web 06c2e0 ATOM</p>
<p dir="auto">esp32:<br />
board: esp32dev<br />
framework:<br />
type: arduino</p>
<p dir="auto">logger:</p>
<p dir="auto">api:<br />
encryption:<br />
key: !secret</p>
<p dir="auto">ota:</p>
<p dir="auto">wifi:<br />
ssid: !secret wifi_ssid<br />
password: !secret wifi_password</p>
<p dir="auto">ap:<br />
ssid: !secret<br />
password: !secret</p>
<p dir="auto">captive_portal:</p>
<p dir="auto">spi:<br />
clk_pin: 18<br />
mosi_pin: 23<br />
miso_pin: 26</p>
<p dir="auto">i2c:</p>
<ul>
<li>sda: 26<br />
scl: 32<br />
scan: true<br />
frequency: 400 kHz<br />
id: grove</li>
</ul>
<p dir="auto">sensor:</p>
<ul>
<li>
<p dir="auto">platform: sgp30<br />
address: 0x58<br />
eco2:<br />
name: "eCO2"<br />
accuracy_decimals: 1<br />
id: eco2<br />
tvoc:<br />
name: "TVOC"<br />
accuracy_decimals: 1<br />
id: tvoc<br />
update_interval: 1s<br />
baseline:<br />
eco2_baseline: 0x86C5<br />
tvoc_baseline: 0x8B38</p>
</li>
<li>
<p dir="auto">platform: sht3xd<br />
temperature:<br />
name: "temperature SHT30<br />
humidity:<br />
name: "humidity<br />
address: 0x44<br />
update_interval: 1s</p>
</li>
<li>
<p dir="auto">platform: qmp6988<br />
temperature:<br />
name: "temperature QMP6988<br />
accuracy_decimals: 1<br />
oversampling: 16x<br />
id: ENVIII<br />
pressure:<br />
name: "air pressure<br />
oversampling: 64x<br />
accuracy_decimals: 1<br />
address: 0x61<br />
update_interval: 1s<br />
iir_filter: 2x</p>
</li>
<li>
<p dir="auto">platform: bh1750<br />
name: "LUX<br />
address: 0x61<br />
update_interval: 1s<br />
address: 0x61<br />
update_interval: 1s</p>
</li>
</ul>
<p dir="auto"><strong>The sensors are displayed. But the values are wrong. Here still the LOG:</strong><br />
[10:53:37][C][logger:293]: Logger:<br />
[10:53:37][C][logger:294]:   Level: DEBUG<br />
[10:53:37][C][logger:295]:   Log Baud Rate: 115200<br />
[10:53:37][C][logger:296]:   Hardware UART: UART0<br />
[10:53:37][C][spi:101]: SPI bus:<br />
[10:53:37][C][spi:102]:   CLK Pin: GPIO18<br />
[10:53:37][C][spi:103]:   MISO Pin: GPIO26<br />
[10:53:37][C][spi:104]:   MOSI Pin: GPIO23<br />
[10:53:37][C][spi:106]:   Using HW SPI: YES<br />
[10:53:37][C][i2c.arduino:052]: I2C Bus:<br />
[10:53:37][C][i2c.arduino:053]:   SDA Pin: GPIO26<br />
[10:53:37][C][i2c.arduino:054]:   SCL Pin: GPIO32<br />
[10:53:37][C][i2c.arduino:055]:   Frequency: 400000 Hz<br />
[10:53:37][C][i2c.arduino:058]:   Recovery: bus successfully recovered<br />
[10:53:37][I][i2c.arduino:068]: Results from i2c bus scan:<br />
[10:53:37][I][i2c.arduino:074]: Found i2c device at address 0x61<br />
[10:53:37][C][sgp30:220]: SGP30:<br />
[10:53:37][C][sgp30:221]:   Address: 0x58<br />
[10:53:37][W][sgp30:237]: Unknown setup error!<br />
[10:53:37][C][sgp30:251]:   Update Interval: 1.0s<br />
[10:53:37][C][sgp30:252]:   eCO2 sensor 'eCO2'<br />
[10:53:37][C][sgp30:252]:     Device Class: 'carbon_dioxide'<br />
[10:53:37][C][sgp30:252]:     State Class: 'measurement'<br />
[10:53:37][C][sgp30:252]:     Unit of Measurement: 'ppm'<br />
[10:53:37][C][sgp30:252]:     Accuracy Decimals: 1<br />
[10:53:37][C][sgp30:252]:     Icon: 'mdi:molecule-co2'<br />
[10:53:37][C][sgp30:253]:   TVOC sensor 'TVOC'<br />
[10:53:37][C][sgp30:253]:     Device Class: 'volatile_organic_compounds'<br />
[10:53:37][C][sgp30:253]:     State Class: 'measurement'<br />
[10:53:37][C][sgp30:253]:     Unit of Measurement: 'ppb'<br />
[10:53:37][C][sgp30:253]:     Accuracy Decimals: 1<br />
[10:53:37][C][sgp30:253]:     Icon: 'mdi:radiator'<br />
[10:53:37][C][sgp30:256]: Store baseline: YES<br />
[10:53:37][C][sgp30:262]:   Compensation: No source configured<br />
[10:53:37][C][sht3xd:029]: SHT3xD:<br />
[10:53:37][C][sht3xd:030]:   Address: 0x44<br />
[10:53:37][E][sht3xd:032]: Communication with SHT3xD failed!<br />
[10:53:37][C][sht3xd:034]:   Update Interval: 1.0s<br />
[10:53:37][C][sht3xd:036]:   Temperature 'Temperatur SHT30'<br />
[10:53:37][C][sht3xd:036]:     Device Class: 'temperature'<br />
[10:53:37][C][sht3xd:036]:     State Class: 'measurement'<br />
[10:53:37][C][sht3xd:036]:     Unit of Measurement: '°C'<br />
[10:53:37][C][sht3xd:036]:     Accuracy Decimals: 1<br />
[10:53:37][C][sht3xd:037]:   Humidity 'Luftfeuchtigkeit'<br />
[10:53:37][C][sht3xd:037]:     Device Class: 'humidity'<br />
[10:53:37][C][sht3xd:037]:     State Class: 'measurement'<br />
[10:53:37][C][sht3xd:037]:     Unit of Measurement: '%'<br />
[10:53:37][C][sht3xd:037]:     Accuracy Decimals: 1<br />
[10:53:37][C][qmp6988:368]: QMP6988:<br />
[10:53:37][C][qmp6988:369]:   Address: 0x61<br />
[10:53:37][C][qmp6988:373]:   Update Interval: 1.0s<br />
[10:53:37][C][qmp6988:375]:   Temperature 'Temperatur QMP6988'<br />
[10:53:37][C][qmp6988:375]:     Device Class: 'temperature'<br />
[10:53:37][C][qmp6988:375]:     State Class: 'measurement'<br />
[10:53:37][C][qmp6988:375]:     Unit of Measurement: '°C'<br />
[10:53:37][C][qmp6988:375]:     Accuracy Decimals: 1<br />
[10:53:37][C][qmp6988:376]:     Temperature Oversampling: 16x<br />
[10:53:37][C][qmp6988:377]:   Pressure 'Luftdruck'<br />
[10:53:37][C][qmp6988:377]:     Device Class: 'pressure'<br />
[10:53:37][C][qmp6988:377]:     State Class: 'measurement'<br />
[10:53:37][C][qmp6988:377]:     Unit of Measurement: 'hPa'<br />
[10:53:37][C][qmp6988:377]:     Accuracy Decimals: 1<br />
[10:53:37][C][qmp6988:378]:     Pressure Oversampling: 64x<br />
[10:53:37][C][qmp6988:379]:   IIR Filter: 2x<br />
[10:53:37][D][qmp6988:389]: Temperature=44.34°C, Pressure=-4106.19hPa<br />
[10:53:37][D][sensor:127]: 'Temperatur QMP6988': Sending state 44.33594 °C with 1 decimals of accuracy<br />
[10:53:38][D][sensor:127]: 'Luftdruck': Sending state -4106.18994 hPa with 1 decimals of accuracy<br />
[10:53:38][C][bh1750.sensor:118]: BH1750 'LUX'<br />
[10:53:38][C][bh1750.sensor:118]:   Device Class: 'illuminance'<br />
[10:53:38][C][bh1750.sensor:118]:   State Class: 'measurement'<br />
[10:53:38][C][bh1750.sensor:118]:   Unit of Measurement: 'lx'<br />
[10:53:38][C][bh1750.sensor:118]:   Accuracy Decimals: 1<br />
[10:53:38][C][bh1750.sensor:119]:   Address: 0x61<br />
[10:53:38][C][bh1750.sensor:124]:   Update Interval: 1.0s<br />
[10:53:38][C][captive_portal:088]: Captive Portal:<br />
[10:53:38][C][mdns:108]: mDNS:<br />
[10:53:38][C][mdns:109]:   Hostname: esphome-web-06c2e0<br />
[10:53:38][C][ota:093]: Over-The-Air Updates:<br />
[10:53:38][C][ota:094]:   Address: esphome-web-06c2e0.local:3232<br />
[10:53:38][C][api:138]: API Server:<br />
[10:53:38][C][api:139]:   Address: esphome-web-06c2e0.local:6053<br />
[10:53:38][C][api:141]:   Using noise encryption: YES<br />
[10:53:38][D][bh1750.sensor:159]: 'LUX': Got illuminance=28.9lx<br />
[10:53:38][D][sensor:127]: 'LUX': Sending state 28.86319 lx with 1 decimals of accuracy<br />
[10:53:38][D][qmp6988:389]: Temperature=44.34°C, Pressure=-4106.19hPa<br />
[10:53:38][D][sensor:127]: 'Temperatur QMP6988': Sending state 44.33594 °C with 1 decimals of accuracy<br />
[10:53:38][D][sensor:127]: 'Luftdruck': Sending state -4106.18994 hPa with 1 decimals of accuracy</p>
<p dir="auto">Have already tried a few things, but just do not get to the goal! Thanks for your help!</p>
]]></description><link>https://community.m5stack.com/topic/5234/m5stack-atom-lite-with-pbhub-and-sensors-how-do-i-set-this-up-for-esphome</link><generator>RSS for Node</generator><lastBuildDate>Thu, 07 May 2026 17:00:21 GMT</lastBuildDate><atom:link href="https://community.m5stack.com/topic/5234.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 18 Apr 2023 09:01:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to M5sTACK ATOM LITE with PbHUB and sensors: how do I set this up for ESPHOME? on Fri, 05 May 2023 15:43:07 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/gunnm" aria-label="Profile: gunnm">@<bdi>gunnm</bdi></a> I do not have any experience with ESPHOME, I use Arduino and write directly with C, C++! The PaHub (named after the 'Grove port A' I2C port in the M5Stack system) is an i2c expander. So if you have a bunch of i2c devices they can be plugged in and "polled" and read over a single i2c connection. The devices can even have the same i2c address, like having two ENV sensors, without conflict. Works very well. 'Polled' is where sensors are read one at a time and their value 'at that moment' is read and transmitted to the Atom<br />
The PbHub (also polled) on the other hand connects to your controller the same way, i2c, but hosts almost any 'discrete' sensor like a switch or a lamp (GPIO, PWM, Servo control, ADC sampling, RGB light control) but remember that it has to squish the signals of  all those devices into one i2c channel, so some very high speed devices may jitter. Very short signals such as an encoder blip could be missed altogether, periodically.<br />
-Terry</p>
]]></description><link>https://community.m5stack.com/post/20755</link><guid isPermaLink="true">https://community.m5stack.com/post/20755</guid><dc:creator><![CDATA[teastain]]></dc:creator><pubDate>Fri, 05 May 2023 15:43:07 GMT</pubDate></item><item><title><![CDATA[Reply to M5sTACK ATOM LITE with PbHUB and sensors: how do I set this up for ESPHOME? on Fri, 05 May 2023 09:10:58 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/teastain" aria-label="Profile: teastain">@<bdi>teastain</bdi></a> Hello<br />
Thank you for the feedback. But how do I get all the sensors through the ATOM? PaHub? Or are there other possibilities?</p>
]]></description><link>https://community.m5stack.com/post/20751</link><guid isPermaLink="true">https://community.m5stack.com/post/20751</guid><dc:creator><![CDATA[gunnm]]></dc:creator><pubDate>Fri, 05 May 2023 09:10:58 GMT</pubDate></item><item><title><![CDATA[Reply to M5sTACK ATOM LITE with PbHUB and sensors: how do I set this up for ESPHOME? on Mon, 01 May 2023 16:51:56 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/gunnm" aria-label="Profile: gunnm">@<bdi>gunnm</bdi></a> Hi!<br />
PbHub is for digital I/O. (like switches)<br />
It is not for I2C devices. (like ENVIII)<br />
-Terry</p>
]]></description><link>https://community.m5stack.com/post/20725</link><guid isPermaLink="true">https://community.m5stack.com/post/20725</guid><dc:creator><![CDATA[teastain]]></dc:creator><pubDate>Mon, 01 May 2023 16:51:56 GMT</pubDate></item><item><title><![CDATA[Reply to M5sTACK ATOM LITE with PbHUB and sensors: how do I set this up for ESPHOME? on Sun, 30 Apr 2023 10:01:40 GMT]]></title><description><![CDATA[<p dir="auto">Im after help on this also.<br />
see here for a lead on using the hub<br />
<a href="https://github.com/Chill-Division/M5Stack-ESPHome/blob/main/IO%20Hub%201%20to%206%20Expansion%20Unit%20(STM32F0).md" target="_blank" rel="noopener noreferrer nofollow ugc">https://github.com/Chill-Division/M5Stack-ESPHome/blob/main/IO Hub 1 to 6 Expansion Unit (STM32F0).md</a><br />
I would like to hire someone who can do integrations in esphome</p>
]]></description><link>https://community.m5stack.com/post/20720</link><guid isPermaLink="true">https://community.m5stack.com/post/20720</guid><dc:creator><![CDATA[DIYGuy]]></dc:creator><pubDate>Sun, 30 Apr 2023 10:01:40 GMT</pubDate></item></channel></rss>