Terminal with builtin ortholinear keyboard and touch screen as a home automation interface.

Overview

OLKB-Terminal

Terminal with builtin ortholinear keyboard and touch screen as a home automation interface.

Features

  • Step and STLs available for non-commercial use.
  • 7" Touch Screen
  • Raspberry pi 4
  • Home assistant loads in kiosk mode.
  • 5x1 buttons to interact directly with home assistant with physical buttons

olkb-terminal olkb-terminal olkb-terminal

  • Customizable panels for the front, 3 in the back and a grid for custom attachments.

olkb-terminal

olkb-terminal olkb-terminal olkb-terminal olkb-terminal

Bill of Materials (BOM)

Note: I chose these because I mostly already had them. There are many other choices available. Some will be less expensive and some will work better. Some will just be different, but you might prefer them. That's all part of the fun.

Printed Parts

I used the Ziro Carbon Fiber PLA Filament.

Part Name Qty X size (mm) Y size (mm) STL
Screen Front 1 214 133 STL
Screen Rear 1 214 133 STL
Void30 Base Plate 1 207 111 STL
Rear Base Plate 1 211 139 STL
Pi Plate 1 106 74 STL
5x1 Front Acc Panel 1 119 22 STL
Small Front Acc Blank Panel 1 120 16 STL
Rear Large Blank Panel 1 116 107 STL
Rear Small Blank Panel 2 107 27 STL
Fan Holder (optional) 2 10 10 STL

These parts are licensed CC-BY-NC. That means you can't charge for them, and you can't send .stl to a shop that charges for prints.

I have designed these to be as easy to print as possible, but if you really want to buy a printed set, contact me and I'll see what solutions we can find.

Raspberry Pi Components

Name Link
Screen (C) [1] https://amzn.to/3ztpCKe
Raspberry Pi 4 2GB https://amzn.to/3nM6MMq
SD Card [2] https://amzn.to/3Cx8bug
USB Drive [2] https://amzn.to/3EDvPaz
Power Supply https://amzn.to/2XvkFU4
Power Cable (USB-C on both ends) https://amzn.to/3lLiLae
Case https://amzn.to/3kqMV3l
Fan https://amzn.to/39kYTVV

[1] I have this version, which is more than a year old now. There is a newer version of the screen that looks like it has some nice features:

[2] I use a USB Drive to run the pi. If you do that too, you can just use any 8GB+ micro SD card to get the raspberry pi booted, and then use the USB drive from then on.

Void30

Take a look at the victorlucachi/void30 repo for details.

I used an Elite-C microcontroller, which is essentially an Arduino Pro Micro with a USB-C port.

Cables

Name Link
Micro HDMI Video Cable https://amzn.to/3tWw2QZ
Micro USB Right Angle Touch Screen Cable https://amzn.to/39kEMXI
USB-C for Void30 (If you have a USB-C) https://amzn.to/3lLH9IQ
Power Cable (USB-C on both ends) https://amzn.to/3lLiLae

Make sure you get the right cable for your Void30 microcontroller. You need one that is about 6inches (15cm).

Screws

Location Size Min. Qty
Hinge M5x15mm+ 2
Hinge M5 Lockhnut 2
Screen Case M4x14mm-20mm 4
Accessory Mounts M3x6mm 18+

5x1 Front Switch Panel

You should have enough leftovers from the Void30 build. Except for the Dupont connectors.

  • Wires, 24awg-28awg should be fine. I would guess the farthest one is less than 8" (20cm) long.
  • 5x cherry mx compatible switches
  • 5x cherry mx compatible keycaps, but I hope to release some STLs for printable ones soon.
  • 2x3 Dupont connector. If you aren't already prepared to crimp dupont connectors, I would try to find a 2x3 dupont cable and just cut off the other end to solder.
  • Heat shrink. Optional, but makes these wires a little more tidy.

Scripts/Setup

I have a very peculiar raspberry pi setup. If this project takes off, I would consider making a custom image for it. But this can be accomplished with a regular raspian setup.

Until then, these are some of the key parts I used to get the software/OS side working:

  1. Home Assistant should already be running (probably on another machine).
  2. Change your user password, please.
  3. Install chromium browser. Any browser should work ok, but chromium has a kiosk mode.
    • The command I use to launch the browser is: /usr/bin/chromium-browser --kiosk --noerrdialogs --enable-features=OverlayScrollbar --disable-restore-session-state http://homeassistant:8123
  4. Use raspi-config to auto login.
  5. Disable screen savers. I do that so I can see what is on the screen without touching it. Run these commands at startup. Check to see if they work with xset q: xset s noblank xset s off xset -dpms
  6. Set up the buttons.py

Connected Projects

This project is very dependent on a lot of other open source and hardware projects.

  • Home Assistant let me write a few lines of code and scripts instead of thousands to get a clean interface.
  • victorlucachi/void30 made a fun keyboard that is not only a perfect fit, but it inspired some of the design choices in CAD.
  • qmk_firmare QMK Firmware is the brains of the void30 and is a pleasure to work with.
  • browser_mod makes it possible to control the display with home assistant automations.

Of course, raspberry pi, Linux, and a thousand projects related to getting a computer running on a pi are also integral.

License

License: CC BY-NC 4.0

This version of this project Has shapes and measurements based off of the Void30 project by @victorlucachi. That project, and this one are licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.

You might also like...
Random scripts and other bits for interacting with the SpaceX Starlink user terminal hardware
Random scripts and other bits for interacting with the SpaceX Starlink user terminal hardware

starlink-grpc-tools This repository has a handful of tools for interacting with the gRPC service implemented on the Starlink user terminal (AKA "the d

Rich is a Python library for rich text and beautiful formatting in the terminal.
Rich is a Python library for rich text and beautiful formatting in the terminal.

The Rich API makes it easy to add color and style to terminal output. Rich can also render pretty tables, progress bars, markdown, syntax highlighted source code, tracebacks, and more — out of the box.

Lets you view, edit and execute Jupyter Notebooks in the terminal.

Lets you view, edit and execute Jupyter Notebooks in the terminal.

Module for converting 2D Python lists to fancy ASCII tables. Table2Ascii lets you display pretty tables in the terminal and on Discord.
Module for converting 2D Python lists to fancy ASCII tables. Table2Ascii lets you display pretty tables in the terminal and on Discord.

table2ascii Module for converting 2D Python lists to a fancy ASCII/Unicode tables table2ascii 📥 Installation 🧑‍💻 Usage Convert lists to ASCII table

A terminal UI dashboard to monitor requests for code review across Github and Gitlab repositories.
A terminal UI dashboard to monitor requests for code review across Github and Gitlab repositories.

A terminal UI dashboard to monitor requests for code review across Github and Gitlab repositories.

CLabel is a terminal-based cluster labeling tool that allows you to explore text data interactively and label clusters based on reviewing that data.
CLabel is a terminal-based cluster labeling tool that allows you to explore text data interactively and label clusters based on reviewing that data.

CLabel is a terminal-based cluster labeling tool that allows you to explore text data interactively and label clusters based on reviewing that

This CLI give the possibility to do a queries in Star Wars API and returns a JSON in a terminal.

Star Wars CLI (swcli) This CLI give the possibility to do a queries in Star Wars API and returns a JSON in a terminal. Install $ pip install swcli Qu

WA Terminal is a CLI application that allows us to login and send message with WhatsApp with a single command.

WA Terminal is a CLI application that allows us to login and send message with WhatsApp with a single command.

A terminal spreadsheet multitool for discovering and arranging data
A terminal spreadsheet multitool for discovering and arranging data

VisiData v2.6.1 A terminal interface for exploring and arranging tabular data. VisiData supports tsv, csv, sqlite, json, xlsx (Excel), hdf5, and many

Comments
  • First Draft CAD Fixes

    First Draft CAD Fixes

    Things I'd like to fix:

    [X] The clearance for the screws in the back of the monitor need some geometry to fix the overhangs. [X] The front accessory panels have clearance holes for M3 screws instead of tapped. [ ] The pi plate needs just a little clearance if we are going to fill in that rear panel with stuff.

    opened by jeffeb3 0
Releases(v1.0.0)
Owner
Jeff Eberl
Jeff Eberl
pwy - A simple weather tool.

A simple weather tool. I made this as a way for me to learn Python, API, and PyPi packaging. Name changed from wwy to pwy.

Clint 105 Dec 31, 2022
A simple CLI to convert snapshots into EAVT log, and EAVT log into SCD.

EAVT helper CLI Simple CLI to convert snapshots into eavt log, and eavt log into slowly changing dimensions Usage Installation Snapshot to EAVT log EA

2 Apr 07, 2022
CLI/library to control FNIRSI DC Power Supply (DC-6006L, etc)

dc6006l - CLI/library to control FNIRSI DC Power Supply (DC-6006L, etc) What is this? FNIRSI DC6006L is a programmable DC power supply that is quite c

Taisuke Yamada 7 Sep 25, 2022
3DigitDev 29 Jan 17, 2022
Borderless-Window-Utility - Modifies window style to force most applications into a borderless windowed mode

Borderless-Window-Utility Modifies window style to force most applications into

8 Oct 22, 2022
Wappalyzer CLI tool to find Web Technologies

Wappalyzer CLI tool to find Web Technologies

GOKUL A.P 17 Dec 15, 2022
A terminal written in Python.

PyDOS Read the title and then you'll figure out what this actually is. Running First, download or clone this repo. Next, run run.py. After this, you c

TechStudent10 2 Mar 01, 2022
CLI para o projeto Compilado (Newsletter e Podcast do Código Fonte TV)

Compilado CLI Automatização de tarefas através de linha de comando para a geração de assets para episódios do Compilado, a newsletter e podcast do can

Gabriel Froes 18 Nov 21, 2022
Python and data science snippets on the command line

Python Snippet Tool A tool to get Python and data science snippets at Data Science Simplified on the command line. You can read my article to learn ho

Khuyen Tran 19 Dec 21, 2022
command line interface to manage VALORANT skins

A PROPER RELEASE IS COMING SOON, IF YOU KNOW HOW TO USE PYTHON YOU CAN USE IT NOW! valorant skin manager command line interface simple command line in

colinh 131 Dec 25, 2022
Wik is use to get information about anything on the shell using Wikipedia.

WIK wik is a tool to view wikipedia pages from your terminal. It also let you search for any wikipedia up to date article on one query from your termi

Yash Singh 340 Dec 18, 2022
Sink is a CLI tool that allows users to synchronize their local folders to their Google Drives. It is similar to the Git CLI and allows fast and reliable syncs with the drive.

Sink is a CLI synchronisation tool that enables a user to synchronise local system files and folders with their Google Drives. It follows a git C

Yash Thakre 16 May 29, 2022
A simple command-line tracert implementation in Python 3 using ICMP packets

Traceroute A simple command-line tracert implementation in Python 3 using ICMP packets Details Traceroute is a networking tool designed for tracing th

James 3 Jul 16, 2022
A simple script to make the operation of AltServer-Linux more easier with cli

A simple script to make the operation of AltServer-Linux more easier with cli

powen 23 Dec 13, 2022
Openstack bucket retention cli

Openstack bucket retention cli

Fatih Sarhan 3 Apr 03, 2022
CLI translator based on Google translate API

Translate-CLI CLI переводчик основанный на Google translate API как пользоваться ? запустить в консоли скомпилированный скрипт (exe - windows, bin - l

7 Aug 13, 2022
commandline version of wordle game and my auto solver.

Wordle Machine (and Wordle Game) (in commandline) My implementation of the Wordle game (inspired by https://www.powerlanguage.co.uk/wordle/) and my in

Kevin Xu 11 Jan 03, 2023
Fetch is use to get information about anything on the shell using Wikipedia.

Fetch Search wikipedia article on command line [Why This?] [Support the Project] [Installation] [Configuration] Why this? Fetch helps you to quickly l

Yash Singh 340 Dec 18, 2022
CryptoCo-py is a Python CLI application that uses CoinGecko API to allow the user to query cryptocurrency information by typing simple commands.

CryptoCo-py is a Python CLI application that uses CoinGecko API to allow the user to query cryptocurrency information by typing simple com

1 Jan 10, 2022
🐾 Get the nftables counters easier to read

nft-stats Get the nftables counters easier to read It kind of hard to read the output of nft list ruleset so there is a small program parcising the ou

7 Oct 08, 2022