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
touch command for Windows

Touch touch command for Windows Setup: Clone the repository git clone https://github.com/g-paras/touch.git cd touch Install touch module python setup.

Paras Gupta 5 Jan 04, 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
Simple script to download OTA packages from Realme's endpoint.

Realme OTA Downloader CLI tool (based on this C# program) to create requests to the Realme's endpoint. Requirements Python 3.9. pycryptodome. Installa

Roger Ortiz 64 Dec 28, 2022
WazirX Portfolio Tracker on your Terminal!

If you have been investing in crypto in India, there is a very good chance that you are using WazirX. If you are using WazirX, then you definitely know that there is no P&L report, no green arrows no

Raunit 15 Jan 10, 2022
This is a repository for collecting global custom management extensions for the Django Framework.

Django Extensions Django Extensions is a collection of custom extensions for the Django Framework. Getting Started The easiest way to figure out what

Django Extensions 6k Jan 03, 2023
Project scoped command execution to just do your work

Judoka is a command line utility that lets you define project scoped commands and call them through their alias. It lets you just do (= judo) your work.

Eelke van den Bos 2 Dec 17, 2021
pyGinit is a command line tools that help you to initialize your current project a local git repo and remote repo

pyGinit pyGinit is a command line tools that help you to initialize your current project a local git repo and remote repo Requirements Requirements be

AlphaBeta 15 Feb 26, 2022
Python3 parser for Apple's crash reports

pyCrashReport in intended for analyzing crash reports from Apple devices into a clearer view, without all the thread listing and loaded images, just the actual data you really need to debug the probl

7 Aug 19, 2022
A useful and easy to use Terminal Timer made with Python.

Terminal SpeedCubeTimer Installation ยกNo requirements! Just Download and play Usage Starts timer.py and you will see this. python timer.py Scramble

Achalogy 5 Dec 22, 2022
PdpCLI is a pandas DataFrame processing CLI tool which enables you to build a pandas pipeline from a configuration file.

PdpCLI Quick Links Introduction Installation Tutorial Basic Usage Data Reader / Writer Plugins Introduction PdpCLI is a pandas DataFrame processing CL

Yasuhiro Yamaguchi 15 Jan 07, 2022
A Telegram Bot Written In Python To Upload Medias To telegra.ph

Telegraph-Uploader A Telegram Bot Written In Python To Upload Medias To telegra.ph DEPLOY YOU CAN SIMPLY DEPLOY ON HEROKU BY CLICKING THE BUTTON BELOW

Rithunand 31 Dec 03, 2022
A simple note taker CLI program written in python

note-taker A simple note taker program written in python This allows you to snip your todo's, notes, and your tasks easily without extra charges Requi

marcusz 4 Nov 02, 2021
The most comprehensive, exhaustive, parameterized command-line wordle solver.

Wordle Solver The most comprehensive, exhaustive, parameterized command-line wordle solver. Wordle is a real

Debarghya Das 27 Nov 21, 2022
This is an app for creating your own color scheme for Termux!

Termux Terminal Theme Creator [WIP] If you need help on how to use the program, you can either create a GitHub issue or join this temporary Discord se

asxlvm 3 Dec 31, 2022
jrnl is a simple journal application for the command line.

jrnl To get help, submit an issue on Github. jrnl is a simple journal application for the command line. You can use it to easily create, search, and v

jrnl 5.7k Dec 31, 2022
Display Images in your terminal with python

Term-Img Display Images in your terminal with python NOTE: This project is a work in progress and not everything on here has actually been implemented

My avatar ;D 118 Jan 05, 2023
PyArmor is a command line tool used to obfuscate python scripts

PyArmor is a command line tool used to obfuscate python scripts, bind obfuscated scripts to fixed machine or expire obfuscated scripts.

Dashingsoft 2k Jan 07, 2023
Command Line For Truecaller Written In Python

Truecaller-CLI Command Line Version For Truecaller Written In Python Never Login With A Number Over And Over Or It Will Be Banned Because Program Is S

Sandaru Ashen Fernando 16 Nov 08, 2022
A dec-bin converter uses 2's complement.

2's Complement Dec-Bin Converter A dec-bin converter uses 2's complement. Visit my Medium Post. What is 2's complement? Two's complement is the most c

C.H Jacky 9 Mar 01, 2022
Python script to tabulate data formats like json, csv, html, etc

pyT PyT is a a command line tool and as well a library for visualising various data formats like: JSON HTML Table CSV XML, etc. Features Print table o

Mobolaji Abdulsalam 1 Dec 30, 2021