What’s wrong with my Raspberry Pi?

My Pi was a great device: a pretty good processor – which has very low power consumption, over 20 GPIO pins to connect multiple sensors, modules, .. and the most important: a huge community! I was able to run my own Kubernetes (single node cluster), a Home Assistant Core server, a Treafik server, and several Alexa skills. Everything inside a cigarette-pack size PC!

However, it also comes with many limitations:

  • Overheating: the mainboard doesn’t come with any heat-sink / cooling-fan. My Pi usually reports 60-70°C under normal load. 
  • Missing GPU causes worse graphic performance.
  • My Pi comes with 1GB RAM, which is pretty low for my tasks.
  • The MicroSD ages very fast! Losing Samsung/Transcend card every 4-5 months.
  • Home Assistant becomes slower – Every restart took about 3 minutes, saving an automation took 30 seconds.

It’s time to change to another system!

First try: HP ThinClient T620

Honestly, I wanted to upgrade to a Rasberry Pi 4, but it’s pretty expensive right now – about 200-250€ for model B with 4GB RAM! So I’ve decided to buy an used HP ThinClient T620 from eBay – 50€ for a MiniPC with 4GB RAM and 16GB SSD. 

I was lucky, it came with a mSATA socket, allowing me to install 2 SSDs on board. Thanks to Parkytowers for many useful informations.

Everything was smooth, but soon after trying to switch from Ethernet to Wifi, many problems started.

Seems that Ubuntu doesn’t like my Broadcom BCM4352 wireless card. I fixed by installing bcmwl-kernel-source, dkms. It finally connected to my Wifi network, but then stopped working immediately after restart, also the external USB Wifi dongle didn’t work anymore! Uninstalling drivers didn’t help, wasted my Sunday troubleshooting & fixing the problem, in the end, Ubuntu didn’t start anymore.

So I had to edit files from the SSD – which was formatted with Ext4 FS. My Mac wasn’t happy with that, so I brought back my Dell Venue tablet which I installed Fedora years ago to take/edit files.

And after wasting a lot of time on the T620, a new idea came up: Why not use the Dell tablet instead? 

8 year old tablet with great specs!

Dell Venue Pro 11

  • Intel Core M 5y1c processor.
  • 256GB SSD & 4GB RAM – quite good for a Homelab
  • 38W battery could be used as a backup UPS
  • 1080p Touchscreen for quick troubleshooting. No need to bring a display and keyboard when it doesn’t connect to network.

Worths a try!

Create Ubuntu USB installer

After the installation steps, it recognized everything: Wifi, Bluetooth LE, Touchscreen, Battery keyboard, Zigbee stick,… !

Setup Home Assistant server

Create a dedicated user to run Home Assistant server:

sudo useradd -rm homeassistant -G dialout

Install required packages:

sudo apt install -y python3 python3-dev python3-venv python3-pip bluez libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libtiff5 libturbojpeg0-dev tzdata ffmpeg bluez

Prepare Home Assistant environment

mkdir /srv/homeassistant
chown homeassistant:homeassistant /srv/homeassistant
sudo -u homeassistant -H -s
cd /srv/homeassistant
python3 -m venv .
source bin/activate

Install Home Assistant

python3 -m pip install wheel
pip3 install mysqlclient
pip3 install homeassistant

I’ve got some errors with bleak and dbus-fast package, just need to upgrade them

nano lib/python3.10/site-packages/homeassistant/package_constraints.txt 

Set bleak and dbus-fast to latest versions

bleak==0.19.5
dbus-fast==1.83.1

Do the same thing with the Bluetooth component manifest

nano lib/python3.10/site-packages/homeassistant/components/bluetooth/manifest.json

Create Home Assistant service

nano /etc/systemd/system/hass.service

Setup a simple service

[Service]
Type=simple
User=homeassistant
ExecStart=/srv/homeassistant/bin/hass -c "/home/homeassistant/.homeassistant"
Restart=always

[Install]
WantedBy=multi-user.target

Enable and start Home Assistant service

sudo systemctl daemon-reload
sudo systemctl enable hass
sudo systemctl start hass

To restart Home Assistant

sudo systemctl restart hass

To troubleshooting Home Assistant

sudo journalctl -fu hass.service

Now Home Assistant should be up and run at http://127.0.0.1:8123

Setup MySQL server (optional)

Using MySQL could be a better choice for Home Assistant, allows us to save & query data more efficiently

sudo apt install mysql-server
sudo apt install default-libmysqlclient-dev libssl-dev
sudo systemctl enable mysql.service
sudo systemctl start mysql.service

Create MySQL user & database for Home Assistant

mysql
SET GLOBAL default_storage_engine = 'InnoDB';
CREATE DATABASE hass CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'hass'@'localhost' IDENTIFIED WITH mysql_native_password BY '***Your password***';
GRANT ALL ON hass.* TO 'hass'@'localhost';
exit

Config Home Assistant to use MySQL

nano /home/homeassistant/.homeassistant/configuration.yml

Setup recorder

recorder:
  db_url: mysql://hass:***You password***@localhost/hass
  purge_keep_days: 365

Restart Home Assistant

sudo systemctl restart hass

It took me only 2 hours to setup and migrate everything: Configurations, Integrations, Zigbee networks, … The result was awesome: 

  • Restarting Home Assistant took 3 seconds (126 devices & 748 entities). 
  • No lags on Tapo camera streams at all!
  • 5W consumption average!
  • Board temperature: about 35-40°C.
  • Bluetooth LE was fast and stable.
  • Some custom integrations which required headless Chromium are very fast.
  • The touchscreen could be used a Dashboard as well!

For next steps, probably I will take a Dell dock, which gives Ethernet and more USB ports (or maybe hang it on wall as a Smarthome dashboard?), upgrade to Intel AX210 card with Wifi 6e & Bluetooth 5.3, or even take a 4G/LTE card.

A pretty cool Touchscreen Homelab to me!