Finished CO2 sensor in 3D-printed case with USB cable

It’s getting ridiculously easy to make sensors for your smart home these days. I’ve built a carbon dioxide sensor using Senseair S8 LP (bought here) and ESP8266 NodeMCU board with native Home Assistant integration using ESPHome framework. Here are the steps:

Read more

If you dual boot on your PC you may have noticed that Bluetooth devices need to be re-connected in each OS after their use in another. That’s super annoying, but can be fixed by syncing the encryption keys in the OSes (Linux and Windows in my case). I tried to do it manually first and it worked for my headphones (Sony WH-1000X M3), but not for my mouse (Logitech MX Anywhere 2S). I searched for an automated solution and found this one. It may not be the simplest (you’ll have to download an extra Windows app and run a command there first), but it worked like a charm. Oh, and you’ll need root/admin access on both OSes.

Recently I’ve put together a simple e-paper (a.k.a. e-ink) display which shows current time and temperature. Why e-paper? Unlike LCD it provides better contrast at any angle and unlike TFT it doesn’t require backlight. The only downside is long screen refresh time (~4 s in my case).

The idea was to get current time from an NTP server and temperatures from Home Assistant instance which in turn gets them from wireless sensors.

Read more

Li-ion batteries don’t like being fully charged. They will retain capacity significantly longer if you charge them up to 80% or less. Check this plot from Battery University:

If you usually use up all of your laptop battery during the day, gradual battery degradation is something you’ll have to live with. However, if you mostly work with AC charger plugged in, you can set lower limit to your battery charge and prolong its life.

Read more

Lenovo ThinkPad T460s laptop has a built-in fingerprint reader, but unfortunately until recently there was no way to make it work. You know the story: the manufacturer (Validity, later bought by Synaptic) refuses to release the documentation and says they may release proprietary Linux driver someday. Thankfully, Nikita Mikhailov started reverse engineering these sensors and that work has been adapted by Marco Trevisan to create a functional fprint driver for 2016 ThinkPads (including T460s).
The procedure to make it work is not very straightforward, so I’ve decided to document it here for posterity.

Read more

I’ve upgraded my Manjaro kernel from 4.9.65 to 4.14.2 today and suddenly my bluetooth mouse stopped working. The adapter is Intel Wireless 8260 on Lenovo T460s laptop. After some searching I stumbled upon this kernel bug, but fiddling with firmware didn’t seem like an exciting prospect.
Thankfully, I’ve found solution in this thread on Manjaro Forums. Seems like the bug is there at least since kernel 4.13.2:
sudo nano /etc/modprobe.d/iwlwifi.conf

options iwlwifi bt_coex_active=0

After reboot the mouse is working fine with Wi-Fi turned on, audio receiver is yet to be tested.
UPD: bluetooth audio receiver is working fine too.

Recently I was struggling to make tab close icons look closer to Breeze theme. Now I managed to make tabs look Breeze-ish too! The icon rules are also better now, opacity works without superposition problems:

Read more

In this post I want to share some details about my simple low budget smart home system based on 433.92 MHz receiver/transmitter controlled by Arduino. It can be easily extended with many cheap wireless devices, such as door bells, remote sockets, smoke alarms, leak detectors, etc. I’ll describe how to control remote socket, receive alarms from wireless smoke detector and draw a plot of room temperature obtained from regular wired sensor.

Read more

Ever since I’ve learned about alternative router firmware I wanted to give it a try. With bugs and security holes being found in vendor firmware every now and then it was becoming even more relevant. Being an open source software advocate, I was mostly looking into OpenWrt. Unfortunately, my hardware was either not supported (ZyXEL P660 ADSL router) or in some early alpha stage (D-Link DIR-300). But then I learned about a reasonably cheap TP-LINK TL-WR841N[D] router which has good OpenWrt support. So I bought it (for ~18 €, got version 9.2) and immediately flashed OpenWrt on it — which was super easy: I just uploaded .bin file and waited for reboot.
Read more

I’ve recently updated my little wallpaper generator app with classic “plasma” effect. For some reason it looks surprisingly well despite of 256-color palette. Also, simple diagonal stripes (á la Material design) were added. The latter are produced by rotating canvas by 45°, drawing horizontal stripes and then rotating back. To prevent cropping the edges, a very big canvas is created initially and this may cause memory problems. Please report any errors.
WPGen - plasma wallpaper WPGen: stripes (Material)
PS: Yeah, I’ve switched from CyanogenMod 12.1 to some Android 6 ROM in the process. Wi-Fi wasn’t connecting when the screen was off, making Wi-Fi Reminders barely useful, but now all is good on Marshmallow.
PPS: Does the image on the right seems wider to you too? They are actually the same size. :)