How to Make Hot-Swappable Mechanical keyboard PCB?

Hot-swappable mechanical keyboard allows you to replace switches and LEDs on the go without soldering and without even powering off the keyboard. In this short video tutorial I explain how to make hot-swappable any printed circuit board for a mechanical keyboard with footprints for Cherry MX plate switches. Other brands such as Gateron and Kaihl are compatible with the Cherry MX switches so this solutions is universal.

Hot-Swappable Sockets for DIY Mechanical Keyboard

The video has been created with a maker kit of the open source mechanical keypad ANAVI Macro Pad 8. I have customized it by adding holtite sockets to make it hot-swappable.

Required Hardware

ANAVI Macro Pad 8 with holtite sockets for hot-swap of Cherry MX and Gategron mechanical switches

Step 1


Using the tweezers place the holtite sockets into the PCB. The sockets are small so be careful not to lose any of them. Turn on the soldering iron. Heat each socket and gently push it. So we are using a soldering iron but in this case not for soldering. We are just mounting the sockets using its heat.

It looks easier than it is. It took me some time to do it for all switches and LEDs. Each key has 2 holes for the switch and 2 holes for the LED so basically you need 4 sockets with appropriate sizes for each key.

Step 2

Next step is optional and specific for ANAVI Macro Pad 8. The maker kit includes WS2812B addressable LED strip which should be soldered on the back of side of the keyboard. Please note the arrow that indicates the direction of the LED strip and make sure you are placing it properly as shown in the video.

Step 3

Cut the legs of the 3mm LEDs to make sure they will fit well in the hot-swappable holtite sockets that we have already mounted.

Step 4

Assemble the switches, the LEDs and the key caps. Once you are done with steps 1 this is easy because you already have a hot-swappable printed circuit board for your mechanical keyboard.

Custom ANAVI Macro Pad 8 with blue Cherry MX switches and green 3mm LEDs for backlit

By default ANAVI Macro Pad 8 is with Gateron red switches, red LEDs and white translucent keycaps. However, in this case with the hot-swappable version I am experimenting primary with blue Cherry MX switches, green LEDs and dark translucent keycaps. I have purchased several different mechanical switches: Gateron Red, Cherry MX blue and Cherry MX brown. Please note that these particular Cherry MX brown switches in the video do not have slots for the 3mm LEDs.

Although in this video I am using the maker kit of ANAVI Macro Pad 8. The same approach with holtite sockets can be applied on any other PCB for mechanical keyboard with footprint for Cherry MX switches.

You may also like

“Spiderman” Raspberry Pi with ANAVI Infrared pHAT

Jesús Figueres, a data scientist interested in artificial intelligence (AI), shared in Twitter his setup of Raspberry Pi and ANAVI Infrared pHAT. It is living upside down on his lab’s ceiling so he calls it “Spiderman”. No doubt this is a suitable name in this case!

Jesús has attached various sensors for collecting data as we as a Raspberry Pi camera to take pictures of the room. He has developed energy efficiency algorithms running in the cloud which make decisions based on the data from the sensor and after that ANAVI Infrared pHAT takes care for transmitting commands as a stream of infrared signals to his air conditioner.

ANAVI Infrared pHAT
ANAVI Infrared pHAT

ANAVI Infrared pHAT is a low-cost open source hardware add-on board for Raspberry Pi with infrared receiver and transmitted. Furthermore it has slots for attaching up to 3 I2C sensor modules as well as convenient UART pins. We launched it in 2017 and it is one of our best-selling products. ANAVI Infrared pHAT is available at our distributors around the world and you can order it to build a similar home automation solution.

You may also like

Microchip ATmega32U4 – The Heart of ANAVI Macro Pad 8

Have you already ordered our open source mechanical keypad ANAVI Macro Pad 8 from the recent crowdfunding campaign? It is powered by Microchip ATmega32U4: an 8-bit microcontroller with 32K bytes of ISP Flash, USB Controller and I2C. This microcontroller is part of the AVR family of microcontrollers developed since 1996 by Atmel and acquired by Microchip Technology in 2016.

Microchip ATmega32U4 on the open source mechanical keyboard ANAVI Macro Pad 8

Microchip ATmega32U4 is how ANAVI Macro Pad 8 connects to the USB port of a personal computer, shows graphics and text on the mini OLED display through I2C. Furthermore, this microcontroller has more than enough general-purpose input/output (GPIO) pins for the mechanical switches.

Photo of Microchip ATmega32U4 between microUSB connector and 4-pin slot for I2C mini OLED display on ANAVI Macro Pad 8

The popular open source Quantum Mechanical Keyboard (QMK) Firmware supports Microchip ATmega32U4 and therefore it is easy to use as the default firmware for ANAVI Macro Pad 8. However, it is technically also possible use ANAVI Macro Pad 8 as a development board and upload Arduino sketches compatible with Arduino Leonardo through Arduino IDE or PlatformIO. Many popular development boards such as Arduino LeonardoSparkFun Pro MicroTeensy 2.0Olimex eduArdu also use ATmega32U4.

ANAVI Macro Pad 8

You may also like

ANAVI Macro Pad 8 – (Not) Yet Another Mechanical Keyboard

After several months of development, the crowdfunding campaign for ANAVI Macro Pad 8 has been launched at Crowd Supply!

ANAVI Macro Pad 8

ANAVI Macro Pad 8 is an open source, programmable, eight-key mechanical keyboard with backlighting, underlighting, and OLED screen. The popular open source QMK firmware allows you to easily configure custom keyboard layouts and macros, even directly in a web browser.

The crowdfunding campaign has a very modest goal of just $1. We have 3 stretch goals! If we raise $500 or more we’ll add super cool 32 transparent emoji keyboard stickers to all kits. You can stick them to the top or the sides of the key caps.

Transparent stickers for the translucent keycaps on ANAVI Macro Pad 8

The crowdfunding campaign will help us manufacture it in a local factory in Plovdiv, Bulgaria, EU. We hope you’ll jump in and help us bring this entirely open source project to life!

You may also like

ANAVI Fume Extractor Parts Sourcing

The crowdfunding campaign for ANAVI Fume Extractor in Crowd Supply has been very successfully so far so we have already contacted suppliers and started sourcing various components. Most of the mechanical parts have already been delivered and we can have a closer look at them.

As some of you know, we will make and assemble the printed circuit boards in my beautify hometown of Plovdiv, Bulgaria. One of our goals is to support local manufacturing and if possible purchase parts from local factories and suppliers even when their prices are not the best. Of course, ANAVI Fume Extractor contains a lot of parts and some are so specific that nobody manufactures them locally. Because of this the project also relies on trusted suppliers from the US, the UK, Germany, Poland and China.

Parts for ANAVI Fume Extractor

Transparent Acrylic Enclosures

Each kit of ANAVI Fume Extractor contains 4 transparent acrylic enclosures. They have been designed with the free and open source tool OpenSCAD. The source and the schematics are available in GitHub. For the laser cutting I rely on a local Bulgarian company from Stara Zagora.

There are protective films on both sides of each acrylic enclosure. You must carefully remove them before assembly your do-it-yourself kit with ANAVI Fume Extractor.

Screws, Nuts and Stand-offs

20mm M4 stands-offs

ANAVI Fume Extractor contains various screws, nuts and washers for attaching the printed circuit board, the fan, the display and the sensor modules. The most difficult-to-source part is the 20mm M4 metal stand-off. Each kit contains 4 of them. We couldn’t find anyone in Bulgaria making stand-offs with the required size, so through a local supplier we imported the “abstandsbolzen” from Germany.

80mm Fan

80mm 5V DC fan

The key part of ANAVI Fume Extractor is the 80mm 5V/0.25A brushless DC fan. This type of a fan is primarily used in personal computers which makes it relatively quite and compact. Unfortunately, this is another part that nowadays nobody makes in Bulgaria so we are importing it from China.

Packaging

All kits will come in an eco friendly recyclable cardboard box made in another Bulgarian town Lyaskovets. Although we do our best to reduce plastic packaging as much as I can, some small plastic bags made in Veliko Tarnovo, Bulgaria are still required to store the components in the kit. The stickers will be printed in Plovdiv.

Cardboard box with ANAVI Fume Extractor Advanced Kit

The next step is the manufacturing of the printed circuit boards. Numerous components from various suppliers all around the world have to be assembled on the PCB. We will make it in a small local factory in my hometown of Plovdiv, Bulgaria. The manufacturing is scheduled to start right after the end of the campaign when we know the exact quantities.

Thank you for supporting entirely open source projects like ANAVI Fume Extractor!

You may also like

Install Jitsi Meet on Raspberry Pi

This step by step tutorial explains how to install and configure the free and open source video conference software Jitsi Meet on Raspberry Pi with 64-bit Ubuntu Server 20.04. Although the Jitsi Meet installation is simple, the network configuration is not.

This tutorial is only for 64-bit Raspberry Pi models and versions, for example Raspberry Pi 4 or 3. It is recommended to use Raspberry Pi 4 with 4GB or more. Please note that Raspberry Pi 0, 2 and other older versions are 32-bit and this tutorial is NOT suitable for them.

Setup Network

To successfully run self-hosted Jitsi Meet on your Raspberry Pi at home and allow your friends and family to access it from anywhere you need to make several network configurations.

The network setup depends on your WiFi router and although the steps in general are the same they vary depending on the router model and version:

  • Dynamic DNS (DDNS) – the public IP of your WiFi router is provided by your ISP (Internet Service Provider) and in general may change over time. To avoid service downtime and hassle to remember IP address, it is highly recommended to setup DDNS. Some ASUS routers, like RT-AC68U, have this advanced service built-in. Alternatively you can use one of the many free or low-cost DDNS services.
  • SSL (Secure Sockets Layer) certificate – for secure communication over HTTPS. It is highly recommended to get a free certificate from the automated and open certificate authority Let’s Encrypt. You can do this through your WiFi router (if it supports it), manually or during the installation of Jitsi Meet.
  • Port Forwarding – two ports must be forwarded from the Raspberry Pi on which Jitsi Meet is running to the Internet through the configurations of the WiFi router. By default these ports are: 443/TCP for the HTTPS server and 10000/UDP for the video bridge of Jitsi Meet.

Install Jitsi Meet

Download and add Jitsi GPG key to the list of trusted keys. Once added you can remove the downloaded file.

wget https://download.jitsi.org/jitsi-key.gpg.key
sudo apt-key add jitsi-key.gpg.key
rm jitsi-key.gpg.key

Create Jitsi repository for downloading and installing appropriate packages:

echo "deb https://download.jitsi.org stable/" | sudo tee -a /etc/apt/sources.list.d/jitsi-stable.list

Obtain the Jitsi repository and after that install package jitsi-meet:

sudo apt update
sudo apt install jitsi-meet

During the installation jitsi-meet will ask you to either use your own SSL certificate or to create one for you.

You may also like

ANAVI Fume Extractor

ANAVI Fume Extractor is a smart, open source, solder smoke absorber. It is powered by ESP8266 with WiFi, 80 mm fan and supports various peripherals: mini OLED display, MQ-135 analog gas sensor for air quality, sensors for temperature, humidity, barometric pressure and light. The filters are replaceable.

Soldering fumes are dangerous, keep them away with ANAVI Fume Extractor

Furthermore out the box the open source firmware of ANAVI Fume Extractor works with the popular IoT platform Home Assistant over the protocol MQTT. This means you can gather sensor data and control the fume extractor remotely using your smartphone, tablet or personal computer!

Turning on and off ANAVI Fume Extractor from a smartphone using Home Assistant

After more than 10 months of development we launched a crowd funding campaign at Crowd Supply! We are ready for manufacturing in Plovdiv, Bulgaria and now we need your support. We hope you’ll jump in and help us bring this entirely open source project to life!

ANAVI Fume Extractor is a must-have tool for any maker!

You may also like

Getting started with MicroPython

What is MicroPython?

MicroPython allows you to run Python on constrained embedded devices, including our favorite ESP8266 and ESP32. It is a full Python compiler and runtime.

You can use MicroPython on the whole range of our boards with ESP8266 like ANAVI Thermometer, ANAVI Gas Detector, ANAVI Light Controller, ANAVI Miracle Controller, ANAVI Fume Extractor, etc.

How to Install MicroPython?

Follow the steps below to install MicroPython on ANAVI Thermometer or any other of our open source hardware development boards with ESP8266:

esptool.py --port /dev/ttyUSB0 erase_flash
esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect 0  esp8266-20191220-v1.12.bin
  • Install a terminal emulation program for serial communication, for example picocom:
sudo apt install picocom
  • Start the terminal emulation program with baud rate 115200, for example on Ubuntu:
sudo picocom /dev/ttyUSB0 -b115200
  • Write “Hello World”:
print ("Hello World!")

You may also like

Getting Started with the open source JavaScript Internet of Things platform ioBroker

ioBroker is an open source Internet of Things platform written in JavaScript and using Node.js for the back-end. It is perfect to run on single board computers such as Raspberry Pi. The project started in 2014. The source code is hosted in GitHub and the core is available under MIT license. The creators and maintainers of ioBroker are from Germany and the project is very popular among the German open source community interested in home automation.

In this article you will learn how to get started with ioBroker by installing it on a Raspberry Pi and after that how to measure temperature and humidity from the built-in DHT22 sensor on ANAVI Thermometer through the machine-to-machine protocol MQTT.

ioBroker Installation Guide

Step by step video tutorial for installing ioBroker on Raspberry Pi

Only two steps are required to install ioBroker on GNU/Linux distributions, including on a Raspberry Pi with Raspbian:

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs
curl -sL https://iobroker.net/install.sh | bash -

After successfully installing ioBroker, open the web interface and complete the initial setup as explained in the video.

Monitoring Temperature and Humidity from DHT22 in ioBroker via MQTT

Integrating ANAVI Thermometer with DHT22 temperature and humidity sensor in ioBroker

ANAVI Thermometer is an open source hardware, Wi-Fi development board for measuring temperature that’s powered by an ESP8266 processor. It comes with a built-in DHT22/AM2302 temperature and humidity sensor and has slots for a mini OLED display, waterproof DS18B20 temperature sensor, and empty slots for up to three additional I2C sensor modules.  Out of the box, the open source firmware of ANAVI Thermometer, works with Home Assistant specification for automatic discovery and MQTT messages with JSON payload.

Although ioBroker is an alternative open source IoT platform, through an adapter it supports the Home Assistant specification. The process for using ANAVI Thermometer in ioBroker is straight-forward thanks to the adapters MQTT Client/Broker and HASS-MQTT.

Adapter MQTT Client/Broker can be configured either as MQTT broker or as a client mode and use an external broker. In the particular demonstration in the video the instance of ioBroker adapter MQTT Client/Broker has been configured as a broker, without username/password and with disabled publish check-boxes from the MQTT Settings tab.

Adapter HASS-MQTT is required to support the Home Assistant MQTT specification. It have to be installed separately and bound to the instance of adapter MQTT Client/Broker as shown in the video. Get the HASS-MQTT adapter from: https://github.com/smarthomefans/ioBroker.hass-mqtt

ANAVI Themometer reporting temperature and humidity to the open source IoT JavaScript platform ioBroker

After turning on the instances of both adapters in Home Assistant, ANAVI Thermometer must be configured to connect to the same MQTT broker. After that ANAVI Thermometer will be automatically detected and the data from DHT22 as well as from any other attached supported sensors will be automatically reported to ioBroker. You just need to configure how to display it in your preferred graphical user interface (ioBroker offers several of them). In the video I used the ioBroker visualisation adapter which requires activation through an unique key. The activation requires registration with a email and is not shown in the video. Adapter visualisation if free for personal use. The other adapters, MQTT Client/Broker and HASS-MQTT are free and open source without any limitations.

You may also like

Let’s Build Together smart LEGO Rainbow with Home Assistant

Recently the famous toy manufacturer LEGO announced a competition to build a rainbow as a symbol of hope. Although the challenge is targeted primary for kids, there are no age restrictions so veterans can also join.

#LetsBuildTogether ​a smart LEGO rainbow with WS2812B LED strip and control it from Home Assistant

This was a great opportunity to have some fun and to add an addressable LED strip which through ANAVI Miracle Controller can be controlled remotely via web interface or moble application of the popular open source home automation platform Home Assistant.

Front view of the LEGO rainbow with a WS2812B LED strip on the first row

To build something similar you will need:

A LEGO rainbow shining at night thanks to ANAVI Miracle Controller and WS2812B LED strip

Although ANAVI Miracle Controller supports 2 addressable LED strips, for this particular use case only one is used so during the initial configuration set the number of LEDs of the other LED strip to 0. This way only one LED strip will be automatically discovered by Home Assistant over the machine to machine protocol MQTT.

A look of our LEGO rainbow from the top

For more details how to enable Home Assistant discovery over MQTT have a look at our other step by step video tutorials for assembly guide, WS2811 12V LEDs as well as for NeoPixels.

You may also like