What is a cyber deck ?
Its origins are with William Gibsons Neuromancer and other related cyberpunk media. In its modern form it is a portable computer without a traditional screen interface.
I dislike how unrepairable laptops have become so I built my own. I can easily repair and replace the screen, batteries, RAM, CPU, network adaptor, keyboard, etc.
The cyberdeck's brain is a Lenovo ThinkCentre mini. As you would find behind a TV, I chose this over a Raspberry Pi as it gives me a full x86 computer. The main body is made from 20x40 aluminum extrusion and a Lenovo VESA mount. The handle is a 20x20 aluminum extrusion. The power bank holder is 3d printed PETG.
For WiFi, I have an ALFA AWUS036AXML adaptor for pentesting the full WiFi 7 spectrum of 2.4, 5, and 6 GHz. The adaptor also features Monitor Mode and Packet Injection.
Power is supplied over USB-C PD. This means it can run off any 65-watt USB-C charger or power bank. Currently, I have two 74Wh power banks that run for ~6 hours each. The power bank can quickly be swapped out for a fresh one with the Velcro strap.
I swapped out the bare 40x20 aluminum extrusion of the body for two 20x20 black annodised aluminum extrusions. These sit between the VESA mount of the screen and the ThinkCentre, holding everything together.
The Wi-Fi adapter then sits between these two and is Velcroed down to a custom mounting plate. The new position of the Wi-Fi adapter means I don't need to plug it in every time, reducing the setup time.
I replaced the wired keyboard and mouse with wireless options. This greatly reduced the setup time, as I no longer have to plug them in, and it reduced the number of cables.
I replaced the handle with a carbon fiber rod (left over from V1 of the robot arm) and with 3d printed PETG brackets. The rod is round, which makes it much more comfortable to hold. I also moved the handle to the side, which allows me to slide it out of my bag vertically. This greatly improves the ergonomics.
What is home labbing?
This is a hard question as it can mean lots of things. A home lab could be an old laptop running 2 Docker containers, or a giant 42U server rack with a UPS and fans louder than a jet engine. A home lab is a place you can play around with networking and computer equipment.
My home lab used to run out of a 36U server rack in my lounge. "Big Blue" as my flatmates dubbed it. The networking half was built around a 16-port Gigabit switch, on which I set up VLANs for separating the Wi-Fi, Guest, Server, and normal networks. The servers host game servers like Minecraft and other services like Plex and AdGuard.
I moved the home lab over to a smaller 12U network rack. The large 36U server rack took up too much space and was a pain to move. The rack now acts as a hub for the flat's networking equipment, with the servers placed on top of it.
Along with the new setup, I have moved my services over to run in containers hosted on Proxmox. This has given me some experience in constructing Docker containers and virtualisation.
The ESP32 is a single board computer with built in WiFi and Bluetooth. I used these to build a controller which can wirelessly control both a rotic arm and rover.
My first design used an Arduino Uno with a 433 MHz radio. The radio was reliable and long-range. I could control the rover from the other side of my house. However, the latency was very noticeable, with a delay between moving a joystick and the rover moving.
I upgraded to an ESP32 to solve the latency problem. ESP32 boards can use a built-in protocol called ESP-NOW, which has much lower latency. Version 2 also included 3 new potentiometers and dual XT60 connectors for power in and passthrough.
The first iteration was made with 3d printed PLA and carbon fibre rods. It used 3 NEMA 17 stepper motors with A4988 stepper motor drivers and an Arduino Uno. I used 6mm timing belts with matching gears to add a 3:1 reduction for the second half of the arm. However, with higher gear reductions, the belt would start to slip. So i added a belt tensioning system. This helped but did not fix the problem.
Due to issues with the belt system, V1 could not lift much weight. So instead of belts and gears, I used planetary gearboxes. These increase torque at the cost of reducing the arm's speed. I also swapped the carbon fiber rods for aluminum plates. I did this as the aluminum is much stiffer than PLA, which will reduce the belt slipping even more. I cut the aluminum with an angle grinder and a set of files. To ensure the accuracy of the aluminum plates, I made use of 3d printed templates.
My first design used a folded sheet metal body, which I measured, cut, folded, and riveted all myself. The motors were mounted with 3d printed holders. These went through 5 iterations on their own. The electronics were powered from a small 12V AGM battery. The brain was an Arduino Uno with a 433 MHz radio to receive commands from my V1 controller.
The second version's body was entirly 3d printed. I did this as I had issues aligning the wheels of the folded sheet metal body and i was happy with the 3d printed motor mounts of V1. The electronics were all the same. I integrated M3 nylon standoffs into my 3d print so they could all be mounted securely with m3 screws.
I then redesigned the rover completely for version 3. The electronics were entirely replaced. The Arduino Uno was replaced with an ESP32 to allow the V2 controller to communicate with it using ESP-NOW. The motor driver board was replaced with one that could drive the wheels in reverse. The AGM battery was replaced with a much smaller lithium-ion battery.
The body was simplified to use 3 wheels. One caster at the back to add stability and 2 wheels driven by rollers at the front. The body is made from a sheet of 20mm MDF, and the side panels are made from 3mm aluminium. This was my first use of aluminium. I found it to be a great material. I then used it heavily in V3 of the arm.