Happy Monday!
Iβve been having an issue with a single pioreactor in my array, with it being unable to proceed with calibrations due to the PCB heating not being detected. I replaced the PCB with a new unit, but the problem remains, which leads me to believe its a HAT issue.
I ran pio version -v on the command line and this is the output:
pioreactor@pio08:~ $ pio version -v
Pioreactor app: 26.2.26
Pioreactor HAT: 1.2
Pioreactor firmware:
Bioreactor model name: Pioreactor 40ml, v1.5
HAT serial number: 5db46022-156c-42c6-885a-92691184ff9d
Operating system: Linux-6.12.47+rpt-rpi-v8-aarch64-with-glibc2.41
Raspberry Pi: Raspberry Pi 4 Model B Rev 1.5
Image version: e990902c466a30253b3abeb6b8b7f706f1c3fa61
I thought it could be rp2040 being wonky, so then I ran sudo systemctl status load_rp2040 and got this output:
pioreactor@pio08:~ $ sudo systemctl status load_rp2040
β load_rp2040.service - Load program into RP2040
Loaded: loaded (/etc/systemd/system/load_rp2040.service; disabled; preset: enabled)
Active: inactive (dead) since Mon 2026-03-09 12:36:37 GMT; 13s ago
Invocation: 46ca0802f72f4284b41697d0ea39e1d6
Process: 1198 ExecStart=/bin/bash /usr/local/bin/load_rp2040.sh (code=exited, status=0/SUCCESS)
Process: 1201 ExecStartPost=/opt/pioreactor/venv/bin/pio log -m load_rp2040.service successful -n systemd --local-only (code=exited, status=0/SUCCESS)
Main PID: 1198 (code=exited, status=0/SUCCESS)
CPU: 867ms
Mar 09 12:36:37 pio08 bash[1200]: xPSR: 0xf1000000 pc: 0x000000ea msp: 0x20041f00
Mar 09 12:36:37 pio08 bash[1200]: 10632 bytes written at address 0x20000000
Mar 09 12:36:37 pio08 bash[1200]: downloaded 10632 bytes in 0.303226s (34.241 KiB/s)
Mar 09 12:36:37 pio08 bash[1198]: + success=1
Mar 09 12:36:37 pio08 bash[1198]: + break
Finally, I tried updating the firmware, but it failed with this error below:
pioreactor@pio08:~ $ pio update firmware
Traceback (most recent call last):
File β/opt/pioreactor/venv/lib/python3.13/site-packages/pioreactor/mureq.pyβ, line 188, in yield_response
conn.request(method, path, headers=dict(headers), body=body)
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File β/usr/lib/python3.13/http/client.pyβ, line 1338, in request
self._send_request(method, url, body, headers, encode_chunked)
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File β/usr/lib/python3.13/http/client.pyβ, line 1384, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File β/usr/lib/python3.13/http/client.pyβ, line 1333, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File β/usr/lib/python3.13/http/client.pyβ, line 1093, in _send_output
self.send(msg)
~~~~~~~~~^^^^^
File β/usr/lib/python3.13/http/client.pyβ, line 1037, in send
self.connect()
~~~~~~~~~~~~^^
File β/usr/lib/python3.13/http/client.pyβ, line 1472, in connect
super().connect()
~~~~~~~~~~~~~~~^^
File β/usr/lib/python3.13/http/client.pyβ, line 1003, in connect
self.sock = self._create_connection(
~~~~~~~~~~~~~~~~~~~~~~~^
(self.host,self.port), self.timeout, self.source_address)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File β/usr/lib/python3.13/socket.pyβ, line 840, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File β/usr/lib/python3.13/socket.pyβ, line 977, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
socket.gaierror: [Errno -3] Temporary failure in name resolution
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File β/opt/pioreactor/venv/bin/pioβ, line 6, in
sys.exit(pio())
~~~^^
File β/opt/pioreactor/venv/lib/python3.13/site-packages/click/core.pyβ, line 1157, in call
return self.main(*args, **kwargs)
~~~~~~~~~^^^^^^^^^^^^^^^^^
File β/opt/pioreactor/venv/lib/python3.13/site-packages/click/core.pyβ, line 1078, in main
rv = self.invoke(ctx)
File β/opt/pioreactor/venv/lib/python3.13/site-packages/click/core.pyβ, line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File β/opt/pioreactor/venv/lib/python3.13/site-packages/click/core.pyβ, line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File β/opt/pioreactor/venv/lib/python3.13/site-packages/click/core.pyβ, line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File β/opt/pioreactor/venv/lib/python3.13/site-packages/click/core.pyβ, line 783, in invoke
return __callback(*args, **kwargs)
File β/opt/pioreactor/venv/lib/python3.13/site-packages/pioreactor/cli/pio.pyβ, line 1232, in update_firmware
get(f"https://api.github.com/repos/pioreactor/pico-build/releases/{version}").body
~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File β/opt/pioreactor/venv/lib/python3.13/site-packages/pioreactor/mureq.pyβ, line 77, in get
return request(βGETβ, url=url, **kwargs)
File β/opt/pioreactor/venv/lib/python3.13/site-packages/pioreactor/mureq.pyβ, line 60, in request
with yield_response(method, url, **kwargs) as response:
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File β/usr/lib/python3.13/contextlib.pyβ, line 141, in enter
return next(self.gen)
File β/opt/pioreactor/venv/lib/python3.13/site-packages/pioreactor/mureq.pyβ, line 195, in yield_response
raise HTTPException(str(e)) from e
http.client.HTTPException: [Errno -3] Temporary failure in name resolution
Any ideas on how to proceed? Thank you!