The Goobatron (Custom KDE-Powered "Laptop") (WIP)
by camdenlvannoort in Circuits > Raspberry Pi
51 Views, 1 Favorites, 0 Comments
The Goobatron (Custom KDE-Powered "Laptop") (WIP)
School provided laptops are objectively an annoyance in my opinion. They have an extremely low amount of provided ram, poor cooling, poor processing power, an outright abhorrent data management system, break easily, are constantly monitored by admins which discourages the use of them outside of school, and most importantly of all;
THEY GOT NO SWAG!!
All of these are massive issues in my personal opinion, which I severely dislike. You are held responsible for everything that happens to the chromebooks provided and you don't have any alternatives unless you bring in a different, severely overpriced laptop that's probably only slightly better, unless you specifically buy a laptop with Windows as the default operating system. Even if that is the case, nine times out of ten they have really poor production quality, parts that overheat instantaneously, batteries which drain faster than a reservoir in a drought, and they STILL HAVE NO SWAG!!
So I got to thinking and realized: What's stopping me from just, making my own..?
I'm a fan of things like Cyberpunk and within worlds like it, there are small computers completely tailored to ones individual goals, aspirations, and lines of work called "Cyberdecks". People in the real world saw this and began making their own compact computers with things like Raspberry Pi's as the computing processors, letting them sideload their own operating systems, design custom cases, install more advanced cooling architecture, and most importantly of all, GIVE THEIR TECH SOME SWAG!!
For my personal needs, I need something powerful enough to act as an access point for a data server and be able to run minor processes in the background, be able to use browsers like Firefox without issue, be able to check system diagnostics with ease, and most importantly of all, look cool as hell.
To achieve these, I'll be renovating a storage case to use as a housing for all of the internal components. I'll also be designing a custom keyboard with a blank 50% PCB board and a joystick-based mouse to save on space and be truly portable. The computing power will be centered around a Raspberry Pi 4b.
Every 3D file is linked with their respective steps, allowing for you to modify it yourself in design software to fit any case or hardware, or you can get the same parts that I have.
Supplies
For this project I will be using;
MAIN ASSEMBLY PARTS
1x Raspberry Pi (Any mainline dedicated computer unit, 4b in this case)
1x 15x12x5 Protective case
1x USB Fan
2x USB Hubs
1x 10 Inch Wired MHDMI/HDMI Display
1x Power Bank (ANY BRAND/TYPE)
ACCESSORY PARTS
1x Blank Keyboard PCB
1x Set of keyboard switches.
1x Arduino-Compatible Joystick
1x Arduino "Nano" microcontroller
10x2mm neodymium magnets
MANUFACTURING SUPPLIES
PLA Filament
FASTENERS
Self-tapping screws (1/8 inch)
M2.5 screws
M3 screws
The Rudimentary Design
In order to properly envision what the end goal of this design process is, I need to make the most ultra-realistic, high definition, 1:1 size-accurate model ever.
Yeah I'm not gonna lie this box kinda sucks but it's better than working off of absolutely nothing. It isn't at all accurate to the size of the toolcase or the internal parts, but this gives me an idea as to how I'll need to map out the wiring and how the main assembly might come together fully.
After the box design was made, I mapped out more design details inside the actual case with cardboard panels from old boxes. Sadly I ended up not using the secondary screen in this project as time and space constraints forced me to cut it out. :(
Test Computing Functions
For this step we'll be installing the operating system to the Raspberry Pi. In my case, I'll be using KDE Plasma, a Linux distro based on debian with extra compatibility layers for pre-existing products made for Windows. To initially test the setup however, Ubuntu will be used as it is far easier to install with pre-existing imaging being available for the Raspberry Pi and will serve as a good benchmark.
After connecting all features together and enabling the power bank, the rough draft of the Goobatron is alive!
It has pretty mixed performance but this is because of issues relating to cooling. To ensure benchmarking will remain accurate, I purchased a third-party heat system and installed it to the computing module.
Mount 1 (Computing)
In order to properly fasten the various modules to the case, I need to design mounts to allow interfacing between the screws and the components. In order to do this, we need to use a micrometer and a tape measure.
The first mount I began designing was the interface for the main computing module. Luckily for me, I managed to track down the official documentation for the Raspberry Pi 4b, which gave me the spacing specifications for the mounting holes. This allowed me to properly manufacture the M2.5 holes as precisely as I could. After I modeled the rest of it in Fusion, I printed it with a 3D printer.
Drilling the holes was made pretty easy by using self-tapping 1/8 inch screws, allowing me to thread through both the mount and the case. Eventually I did swap the screws to dedicated M3 threaded bolts and nuts to properly secure the computing module better.
Mount 2 (Power)
The mount for the power storage is a little bit trickier. The power bank I ordered isn't really from a fixed retailer, so there isn't good documentation on it. That's where a pair of calipers can come in to help. The battery measured out to be decently large, so for this mount design I decided to make space for a ratchet or tape to be used to secure it further.
Upon manufacturing the mount with a 3D printer I inserted the power bank and it fit relatively snug. This was a good sign, so I went through with using black duct tape to secure it further. It may not be entirely professional, but it secures it to a very good degree. I would probably use a ratchet if I had the option, as power banks can get a little warm and the heat may take a toll on the tapes adhesive compound over time, but it will likely take months of continuous use before I need to do maintenance on this module, which I will likely be cleaning out the computer anyways at this point.
After securing the power supply I mounted the bank with more 1/8 inch self-tapping screws, this time keeping them to ensure the fastener would be thick enough to support its weight.
The Lid Module
The lid module might be the most fun part of the design process. This is because in order to properly conceal the cables and secure the display I need to make front panels for it, which I can customize later on with paint and stickers. Initially I was thinking of putting an array of LED's on the right to act as an audio spectrogram, but time and space constraints prevented me from seeing that through.
One of the only roadblocks I ran into while designing it was the fact it had the potential to be too large for a traditional 3D printer, but this was solved by splitting the part in two and connecting them using pegs.
The first attempt at printing it out failed, as the right half of the mounting plate didn't have enough clearance for the HDMI port on the screen. To account for this, I modified the cable entry ramp to be completely flat and indented the bottom half of the security plates in Fusion to account for potential space.
On the topic of the security plates, manufacturing these is a MAJOR pain. Due to the odd shaping and size of the main screen security plate, I need to print it at around a 45 degree angle if I want them to be one piece without any extra combining, which makes printing it a major hassle due to requiring extremely large support pillars.
After I printed out the plates, I began sanding them down (optional) to prepare them for painting and to give them a smooth finish. I alternated between low and high grit sandpaper, starting off dry for the first two swaps then finishing with a wet sand.
Only after sanding down and painting the plates did I realize that I forgot to add a slot for cables to feed through on the lower plate. Shortly after this realization I also reprinted the main module to change the color of it without the need for paint and to also add more space for the board of the display.
To prevent interference with cables or the display and to overall speed up the mounting process, I'll be using adhesive rather than screws.
(OPTIONAL STEP) Customizing the Computer
This step is completely optional so I'm not going too far into detail with it.
I personally customized my case with a metallic finish on the edges and orange paint in several secondary areas.
I like the look of older computer technology so I styled the panels for the monitor with paint that resembles the coloring plastic would have when computers first started becoming available to consumers.
The Bottom Plate
The purpose of the bottom plate is to cover all the components for the RPi related modules and to hold the keyboard alongside the joystick. A major part of the bottom plate is to also hold the USB hub, which allows for plugging in USB drives and external devices.
Luckily enough, the toolcase's dimensions were universal for the top and bottom, so I was able to use the same general shape I made for the top module. I then added a hole to route cables, a slot for the USB hub, and a slot for the joystick. I also indented areas to allow for the installation of neodymium magnets for easier maintenance on the computer. The cable hole provides a slight vent for heat as well, along with the corners of the module.
Assembly for this goes the same as the lid module, this time using three pegs for added integrity to support anything put on top of it.
Unfortunately my initial design for the USB hub isn't going to work, as not only would it stretch down past the panel, it would also collide with the battery mount. The new draft has the slot at an incline to prevent it from reaching down further than it needs to, and it also makes plugging in devices a bit easier due to having a clearer view.
To mount the bottom plate, rather than screw it in directly, I'll be using bolts to provide minor holds on each side to stop it from shifting while still allowing for easy disassembly without tools.
The Joystick (WIP)
(MANUFACTURING AT LATER DATE)
(OPTIONAL STEP) the Keyboard (WIP)
Now, you could get away with finding a keyboard that will fit inside the case, but I think it would be better and overall cooler to make my own keyboard with a salvaged PCB.
I had a Keychron Q1 75% keyboard collecting dust due to the previous owner not installing switches or keys, so I began my work on that one. I started off by ordering Keychron Banana switches, which provide decent tactile feedback and sound decently nice, then I began gutting the frame from it, leaving me with a blank PCB. Installation ran pretty smoothly, so now I needed to get the actual keys for it as I'd prefer to see what I'm typing and to be able to press switches without jamming my fingertips into the pegs.
Personally, I went on a few 3D model databases to find keyboard keys other people have designed, landing on "Nasa Keycaps" by "CrapUsername_660915" on Printables in the same Creality Skin colored filament used for the lid module to get that same tan color.
A "case" (not exactly a case, more or less just something to hold the keyboard together) is also made to allow interfacing between the keyboard and what's being made in the next step.
As of now, nearly every letter on the keyboard apart from Z has been made, along with the standard 0-9 keys and some actions.
(OPTIONAL STEP) the Resin Plate (WIP)
I did design a 3D model for the bottom module which is fully functional, but I decided it would be better if I cast it in epoxy resin to allow for a clear view of the electronics within the bottom and to provide better insulation. The reason why I'm labeling this step as optional is due to the added weight and general difficulty along with potential material cost. (MANUFACTURING AT LATER DATE)
Cooling
To prevent the entire computer from developing into a supernova and melting the plastic, vent holes will be cut in the side of the case. While it does somewhat compromise the water resistance, this can be counteracted with a mountable vent cover at a later date based on the type of cooling architecture you want to go with.
Personally, I'm sticking with a basic air vent for now. I will likely add a fan or some sort of heat sink later on.
The Operating System
I initially had a bit of trouble with this step. Normally for installing an operating system on a Raspberry Pi, an application called an "imager" would be used to format the main storage device the RPi utilizes, then the operating system of your choice would overwrite the drive, allowing for the device to immediately boot into it.
However, the operating system I'm using, KDE Plasma Desktop, does not have an "appimage" formatted for Raspberry Pi modules, which is required in order to utilize an imager. Instead, I installed Ubuntu Server onto the storage, allowing me to directly run commands to download the necessary components for the operating system like the graphical interface, which in this case I'll be utilizing LightDM as I do not know if I'll end up switching to a different operating system, and LightDM allows for better cross compatibility.
Finally, after downloading all the prerequisites manually, I ran the command "sudo apt install kde-plasma-desktop -y", which executes the installation for the operating system as an operative user, or a "superuser".
The final bits regarding system installation mainly regarded installing software and customizing the color scheme. Personally I'm a MASSIVE DORK LOSER NERD so I styled my color scheme and layout to look vaguely like the Magi operating system from Neon Genesis Evangelion purely because it looks cool and flashy (and it stands out in both dark and light environments, necessary for traveling between classrooms and day-to-day life).
Stress testing results will be pictured above in the images, utilizing games on Steam.