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
Ros command - Unifying the ROS command line tools

Unifying the ROS command line tools One impairment to ROS 2 adoption is that all

37 Dec 15, 2022
Command-line tool for looking up colors and palettes.

Colorpedia Colorpedia is a command-line tool for looking up colors, shades and palettes. Supported color models: HEX, RGB, HSL, HSV, CMYK. Requirement

Joohwan Oh 282 Dec 27, 2022
Display Images in your terminal with python

A python library to display images in the terminal

Pranav Baburaj 57 Dec 30, 2022
Message commands extension for discord-py-interactions

interactions-message-commands Message commands extension for discord-py-interactions README IS NOT FINISHED YET BUT IT IS A GOOD START Installation pi

2 Aug 04, 2022
A python command line tool to calculate options max pain for a given company symbol and options expiry date.

Options-Max-Pain-Calculator A python command line tool to calculate options max pain for a given company symbol and options expiry date. Overview - Ma

13 Dec 26, 2022
A command line tool made in Python for the popular rhythm game

osr!name A command line tool made in Python for the popular rhythm game "osu!" that changes the player name of a .osr file (replay file). Example: Not

2 Dec 28, 2021
Oil is a new Unix shell. It's our upgrade path from bash to a better language and runtime

Oil is a new Unix shell. It's our upgrade path from bash to a better language and runtime. It's also for Python and JavaScript users who avoid shell!

2.4k Jan 08, 2023
A user-friendly python CLI for Fmask 4.3 software (GERS Lab, UCONN).

pyFmask What is pyFmask pyFmask is a user-friendly python CLI for Fmask 4.3 software (GERS Lab, UCONN; https://github.com/GERSL/Fmask). Fmask (Zhu et

1 Jan 05, 2022
A simple python application for running a CI pipeline locally

A simple python application for running a CI pipeline locally This app currently supports GitLab CI scripts

Tom Stowe 0 Jan 11, 2022
Magnificent app which corrects your previous console command.

The Fuck The Fuck is a magnificent app, inspired by a @liamosaur tweet, that corrects errors in previous console commands. Is The Fuck too slow? Try t

Vladimir Iakovlev 75k Jan 02, 2023
CLI based diff viewer

Rich Diff CLI based diff viewer

Suresh Kumar 24 Nov 15, 2022
A simple CLI tool for getting region-specific status of Logz.io components.

About A simple CLI tool for checking the current status of Logz.io components per region. Built With Python 3 The following packeges (see requirements

Yotam Bernaz 1 Dec 11, 2021
GetRepo-py is a command line client that queries GitHub API and searches repositories by given arguments

GetRepo-py is a command line client that queries GitHub API and searches repositories by given arguments

Davidcin 3 Feb 14, 2022
AlienFX is a CLI and GUI utility to control the lighting effects of your Alienware computer.

AlienFX is a Linux utility to control the lighting effects of your Alienware computer. At present there is a CLI version (alienfx) and a gtk GUI versi

Stephen Harris 218 Dec 26, 2022
An interactive cheatsheet tool for the command-line

navi An interactive cheatsheet tool for the command-line. navi allows you to browse through cheatsheets (that you may write yourself or download from

Denis Isidoro 12.2k Dec 31, 2022
Regis-ltmpt-auto - Program register ltmpt 2022 automatis

LTMPT Register Otomatis 2022 Program register ltmpt 2022 automatis dibuat untuk

1 Jan 13, 2022
A Simple Python CLI Lockpicking Tool

Cryptex a simple CLI lockpicking tool What can it do: Encode / Decode Hex Encode / Decode Base64 Break Randomly :D Requirements: Python3 Linux as your

Alex Kollar 23 Jul 04, 2022
moviepy-cli: Command line interface for MoviePy.

Moviepy-cli is designed to apply several video editing in a single command with Moviepy as an alternative to Video-cli.

Kentaro Wada 23 Jun 29, 2022
Stephen's Obsessive Note-Storage Engine.

Latest Release · PyPi Package · Issues · Changelog · License # Get Sonse and tell it where your notes are... $ pip install sonse $ export SONSE="$HOME

Stephen Malone 23 Jun 10, 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