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
Gamestonk Terminal is an awesome stock and crypto market terminal

Gamestonk Terminal is an awesome stock and crypto market terminal. A FOSS alternative to Bloomberg Terminal.

Gamestonk Terminal 18.6k Jan 3, 2023
jenkins-tui is a terminal based user interface for Jenkins.

jenkins-tui ?? jenkins-tui is a terminal based user interface for Jenkins. ?? ⚠️ This app is a prototype and in very early stages of development. Ther

Craig Gumbley 22 Oct 24, 2022
A simple script that outputs the current date on the user interface/terminal.

Py-Date A simple script that outputs the current date on the user interface/terminal. How to Run > Open your terminal and cd into the folder containi

Arinzechukwu Okoye 1 Jan 13, 2022
⌨ Toward a more useful keyboard

Toward a more useful keyboard Steve Losh's Modern Space Cadet is an inspiration. It opened my eyes to the fact that there's a more useful keyboard hid

Jason Rudolph 1.7k Jan 1, 2023
Runs a command in P4wnP1 and displays the output on OLED screen (SH1106)

p4wnp1-oled-terminal Runs a command in P4wnP1 and displays the output on OLED screen (SH1106) Works on Raspberry Pi Zero 2 W Tested successfully on RP

PawnSolo 1 Dec 14, 2021
A simple automation script that logs into your kra account and files your taxes with one command

EASY_TAX A simple automation script that logs into your kra account and files your taxes with one command Currently works for Chrome users. Will creat

leon koech 13 Sep 23, 2021
a CLI that provides a generic automation layer for assessing the security of ML models

a CLI that provides a generic automation layer for assessing the security of ML models

Microsoft Azure 268 May 9, 2021
Interactive Redis: A Terminal Client for Redis with AutoCompletion and Syntax Highlighting.

Interactive Redis: A Cli for Redis with AutoCompletion and Syntax Highlighting. IRedis is a terminal client for redis with auto-completion and syntax

null 2.2k Dec 29, 2022
A Terminal Client for MySQL with AutoCompletion and Syntax Highlighting.

mycli A command line client for MySQL that can do auto-completion and syntax highlighting. HomePage: http://mycli.net Documentation: http://mycli.net/

dbcli 10.7k Jan 7, 2023