Add article about Protovac

This commit is contained in:
Tanner Collin 2025-06-22 15:49:36 -06:00
parent 118c471d00
commit 005a371dcb
5 changed files with 193 additions and 62 deletions

View File

@ -1,17 +1,32 @@
[
"file-explorer",
"global-search",
"switcher",
"graph",
"backlink",
"canvas",
"page-preview",
"note-composer",
"command-palette",
"editor-status",
"bookmarks",
"markdown-importer",
"outline",
"word-count",
"file-recovery"
]
{
"file-explorer": true,
"global-search": true,
"switcher": true,
"graph": true,
"backlink": true,
"outgoing-link": false,
"tag-pane": false,
"page-preview": true,
"daily-notes": false,
"templates": true,
"note-composer": true,
"command-palette": true,
"slash-command": false,
"editor-status": true,
"starred": false,
"markdown-importer": true,
"zk-prefixer": false,
"random-note": false,
"outline": true,
"word-count": true,
"slides": false,
"audio-recorder": false,
"workspaces": false,
"file-recovery": true,
"publish": false,
"sync": false,
"canvas": true,
"bookmarks": true,
"properties": false,
"webviewer": false
}

View File

@ -16,7 +16,9 @@
"file": "Secret Garden.md",
"mode": "source",
"source": false
}
},
"icon": "lucide-file",
"title": "Secret Garden"
}
},
{
@ -28,7 +30,9 @@
"file": "Fake Dog.md",
"mode": "source",
"source": false
}
},
"icon": "lucide-file",
"title": "Fake Dog"
}
},
{
@ -40,7 +44,9 @@
"file": "Secret Garden.md",
"mode": "source",
"source": false
}
},
"icon": "lucide-file",
"title": "Secret Garden"
}
},
{
@ -49,10 +55,12 @@
"state": {
"type": "markdown",
"state": {
"file": "Makerspace Tours.md",
"file": "Protovac Retro Terminal.md",
"mode": "source",
"source": false
}
},
"icon": "lucide-file",
"title": "Protovac Retro Terminal"
}
},
{
@ -64,7 +72,9 @@
"file": "Helios Alpha.md",
"mode": "source",
"source": false
}
},
"icon": "lucide-file",
"title": "Helios Alpha"
}
},
{
@ -76,7 +86,9 @@
"file": "Hydroponics.md",
"mode": "source",
"source": false
}
},
"icon": "lucide-file",
"title": "Hydroponics"
}
}
],
@ -99,8 +111,11 @@
"state": {
"type": "file-explorer",
"state": {
"sortOrder": "alphabetical"
}
"sortOrder": "alphabetical",
"autoReveal": false
},
"icon": "lucide-folder-closed",
"title": "Files"
}
},
{
@ -115,7 +130,9 @@
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical"
}
},
"icon": "lucide-search",
"title": "Search"
}
},
{
@ -123,7 +140,9 @@
"type": "leaf",
"state": {
"type": "bookmarks",
"state": {}
"state": {},
"icon": "lucide-bookmark",
"title": "Bookmarks"
}
}
]
@ -146,7 +165,7 @@
"state": {
"type": "backlink",
"state": {
"file": "Makerspace Tours.md",
"file": "Protovac Retro Terminal.md",
"collapseAll": false,
"extraContext": false,
"sortOrder": "alphabetical",
@ -154,7 +173,9 @@
"searchQuery": "",
"backlinkCollapsed": false,
"unlinkedCollapsed": true
}
},
"icon": "links-coming-in",
"title": "Backlinks for Protovac Retro Terminal"
}
},
{
@ -163,8 +184,13 @@
"state": {
"type": "outline",
"state": {
"file": "Makerspace Tours.md"
}
"file": "Protovac Retro Terminal.md",
"followCursor": false,
"showSearch": false,
"searchQuery": ""
},
"icon": "lucide-list",
"title": "Outline of Protovac Retro Terminal"
}
}
],
@ -181,46 +207,47 @@
"graph:Open graph view": false,
"canvas:Create new canvas": false,
"command-palette:Open command palette": false,
"markdown-importer:Open format converter": false
"markdown-importer:Open format converter": false,
"templates:Insert template": false
}
},
"active": "24a62ccdfd18a884",
"lastOpenFiles": [
"Secret Garden.md",
"Hydroponics.md",
"Makerspace Tours.md",
"Linux Flavour.md",
"Fake Dog.md",
"Wine Crate Coffee Table.md",
"Things I Recommend.md",
"t0txt.md",
"t0 Services.md",
"Spaceport.md",
"QotNews.md",
"Protovac Retro Terminal.md",
"Fake Dog.md",
"Bypassing Ports.md",
"Backup Strategy.md",
"Algae Growth.md",
"t0 Services.md",
"Solar Car.md",
"Sensors.md",
"Helios Alpha.md",
"QotNews.md",
"Protospace.md",
"Plant Waterer.md",
"Painting.md",
"Notica.md",
"Light Switch.md",
"LED Dress.md",
"Japan Photography.md",
"Helios Alpha.md",
"Hand of Ozymandias.md",
"Airflow.md",
"media/protovac1.png",
"media/fake-dog.jpg",
"media/dress1.jpg",
"media/cookies2.jpg",
"media/cookies1.jpg",
"Acoustic Panels.md",
"About.md",
"Hydroponics Log 3.md",
"Hydroponics Log 2.md",
"Hydroponics Log 1.md",
"Hydroponics Aphid War.md",
"Hand of Ozymandias.md",
"pages/writing.md",
"pages/projects.md",
"pages/creations.md",
"Makerspace Tours.md",
"Secret Garden.md",
"Hydroponics.md",
"Linux Flavour.md",
"media/nft2.jpg",
"media/nft1.png",
"media/ports1.svg",
"media/backup1.svg",
"media/japan12hi.jpg",
"media/japan11hi.jpg",
"media/japan10hi.jpg",
"media/japan09hi.jpg",
"media/japan08hi.jpg",
"media/japan07hi.jpg"
"media/japan12hi.jpg"
]
}

View File

@ -2,21 +2,110 @@ Title: Protovac Retro Terminal
Date: 2025-06-14
Category: Creations
Summary: A retro dumb terminal interface at my local makerspace.
Image: protovac1.jpg
Tags: feed
Image: protovac1.png
xTags: feed
Protovac is a retro dumb terminal interface that lives at my local makerspace, [[Protospace]]. Its main use is printing storage labels and name tags for members and guests when they visit.
![[protovac1.png]]
An 85-year-old member donated the 1983 Morrow MDT-60 video display terminal that he bought new from London Drugs and kept in his closet. Originally this terminal is supposed to connect to a mainframe computer (perhaps in a different room) and display text over a serial connection.
In this case it connects to a Raspberry Pi computer mounted to the back over 9600 baud serial UART. The Pi has been configured to output a terminal over its UART pins and auto login the protovac user with `agetty`. The protovac user's shell has been replaced with the Python script that runs the curses-based TUI.
You can find the source code and set up instructions here: https://github.com/Protospace/protovac
You can find the [source code](https://github.com/Protospace/protovac) on Protospace's GitHub.
In addition to printing labels for members, Protovac:
- can control the train in the Protospace welcome room
- displays stats about Protospace (next meeting, next class, member counts, etc)
- can send a message to our marquee LED sign
- has a chat interface to message ChatGPT
- has an interface to access Wolfram Alpha
- can play the games NetHack, Moria, 2048, Zork, and Hitchhiker's
Here's what the home screen looks like:
```
_______ _______ ___ _________ ___ ____ ____ _ ______
|_ __ \|_ __ \ .' `. | _ _ | .' `.|_ _| |_ _|/ \ .' ___ |
| |__) | | |__) | / .-. \|_/ | | \_|/ .-. \ \ \ / / / _ \ / .' \_|
| ___/ | __ / | | | | | | | | | | \ \ / / / ___ \ | |
_| |_ _| | \ \_\ `-' / _| |_ \ `-' / \ ' /_/ / \ \_\ `.___.'\
|_____| |____| |___|`.___.' |_____| `.___.' \_/|____| |____|`.____ .'
[I] Info [N] Nametag UNIVERSAL COMPUTER
. * - )-
[S] Stats [L] Label . * o . *
|
[G] LED Sign [Z] Games . . -O-
| * . -0-
[C] Classes [V] Protovac Sign
. . | *
[P] Protocoin * -O- .
. * | ,
[M] Message . o
.---.
[T] Think = _/__[0]\_ . * o '
= = (_________) .
[A] About . *
* - ) - *
Copyright (c) 1985 Bikeshed Computer Systems Ltd.
```
If you press the "C" key, for example, a list of Protospace classes appears:
```
PROTOVAC UNIVERSAL COMPUTER
Protospace Classes
================== Instructor Cost Students
[PAST] Woodworking Tools 1: Intro to Saws
Sun Jun 22, 2025 2:00 PM Mike M. $20.00 5 / 6
Woodworking Tools 2: Jointer, Thickness Planer, Drum Sander
Sun Jun 22, 2025 5:00 PM Mike M. $20.00 6 / 6
Blender Phreaking Phrydays
Fri Jun 27, 2025 7:00 PM Jeff D. Free 0
New Member Orientation and Safety
Sun Jun 29, 2025 3:00 PM Cole N. Free 3 / 10
Laser I: Basic Cutting and Engraving (Thunder Laser)
Wed Jul 9, 2025 8:30 PM Craig P. $20.00 6 / 8
Woodworking Tools 1: Intro to Saws
Sun Jul 20, 2025 2:00 PM Vince K. $20.00 6 / 6
[B] Back [J] Down [K] Up
```
The "S" key shows stats about Protospace:
```
PROTOVAC UNIVERSAL COMPUTER
Protospace Stats
================
Next meeting: None
Next clean: None
Next class: Woodworking Tools 2: Jointer, Thickness Planer, Drum Sander
Sun Jun 22, 2025 5:00 PM
Last class: Woodworking Tools 1: Intro to Saws
Sun Jun 22, 2025 2:00 PM
Member count: 464 Green: 408 Paused / expired: 1590
Card scans: 18
[B] Back
```

View File

@ -61,6 +61,6 @@ The data gets collected by a central Python script that process and stores it in
## InfluxDB Regrets
My biggest regret was using InfluxDB. It's a stupid database that I wouldn't recommend it to anyone. I ran into timezone issues with `group by time()`. It assumes the column data type is an integer if your sensor happens to send it a whole number at first and it won't let you change it. Their docs are a confusing mess. They dropped the SQL-like InfluxQL syntax for querying with a pipeline-like syntax called Flux in version 2.0. Debian's repos seem to be staying with version 1.x though. You can only delete data by time ranges, not values. It also logs every single thing to `/var/log/syslog` and there's no easy way to disable it (completely). They shut down InfluxDB cloud in Belgium and [didn't warn customers](https://community.influxdata.com/t/getting-weird-results-from-gcp-europe-west1/30615/7) before deleting all their data.
My biggest regret was using InfluxDB. It's a stupid database that I wouldn't recommend it to anyone. I ran into timezone issues with `group by time()`. It assumes the column data type is an integer if your sensor happens to send it a whole number at first and it won't let you change it. Their docs are a confusing mess. They dropped the SQL-like InfluxQL syntax for querying with a pipeline-like syntax called Flux in version 2.0. Debian's repos seem to be staying with version 1.x though. You can only delete data by time ranges, not values. It also logs every single thing to `/var/log/syslog` and there's no easy way to disable it (completely). They shut down InfluxDB cloud in Belgium and [didn't warn customers](https://community.influxdata.com/t/getting-weird-results-from-gcp-europe-west1/30615/7) before deleting all their data. They changed schemas again in version 3.x and made useful features closed-source. Read the comments [here](https://news.t0.vc/TUTF/c#doctoboggan1750217574).
Just stick to SQLite or Postgres.

BIN
content/media/protovac1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1001 KiB