bouncer
← Back

Salim Benbouziyane · 233.6K views · 13.4K likes

Analysis Summary

20% Minimal Influence
mildmoderatesevere

“Be aware that the 'mistakes' and 'challenges' shown serve a dual purpose: they provide educational value but also create a narrative 'problem' for which the sponsor's professional services are presented as the 'solution.'”

Transparency Mostly Transparent
Human Detected
98%

Signals

The content is a highly technical, first-person engineering log featuring specific problem-solving anecdotes and a unique creative voice that lacks the formulaic structure of AI scripts. The presence of a personal brand, GitHub repository, and detailed physical assembly process confirms human authorship.

Personal Narrative and Vulnerability The narrator discusses specific personal struggles, such as 'sinking an entire week' into battery charging design and admitting to 'not being comfortable' sharing untested circuitry.
Technical Nuance and Error Correction Detailed explanation of high-speed signal routing, differential pairs, and the specific decision to use a UPS module instead of a custom one due to scope creep.
Natural Speech Patterns The transcript includes informal phrasing like 'grossly simplified', 'it gets weird', and 'still has to do Raspberry Pi things' which reflect a personal voice.
Physical Evidence and Documentation The metadata links to a personal GitHub, specific hardware tools, and a detailed project timeline that matches the narrative of a long-term build.

Worth Noting

Positive elements

  • This video provides genuine educational value regarding high-speed PCB signal integrity, differential pairs, and the iterative nature of hardware prototyping.

Be Aware

Cautionary elements

  • The seamless integration of the sponsor into the 'troubleshooting' phase makes commercial outsourcing feel like a natural part of the creative process rather than a paid service.

Influence Dimensions

How are these scored?
About this analysis

Knowing about these techniques makes them visible, not powerless. The ones that work best on you are the ones that match beliefs you already hold.

This analysis is a tool for your own thinking — what you do with it is up to you.

Analyzed March 13, 2026 at 16:07 UTC Model google/gemini-3-flash-preview-20251217
Transcript

This is the CM5, a tiny computer module from Raspberry Pi. And today I'll show you how I turned it into this custom Cyber Deck built from scratch. You're about to see the whole process. Months of design, building, and a bunch of mistakes in between. Let's get started. This video is sponsored by PCB Way. More on them later. I've wanted to build a Cyber Deck for a while, and it was the perfect excuse to attempt my most ambitious project yet. What I had in mind was this wide clam shell design, basically in the same footprint as a regular keyboard. So, the first thing I needed was a screen that make this possible. I picked this 12-in IPS panel from Wave Share. It uses the Mippy interface, which is more power efficient and keeps both HDMI ports free. It also comes with capacitive touch baked in. Just by the look of it, I had a feeling it might be too heavy, but I decided to get it anyway. Like any other laptop, you'd want the lid to stay propped at a usable angle. So, I grabbed these industrial torque hinges from McMaster Car. They should have enough resistance to hold the screen up, but hopefully not so stiff that it's annoying to open. And just because this is a portable device, it doesn't mean I'm compromising on the keyboard. I'm making a custom lowprofile mechanical one that matches the display. After pulling inspiration from few projects, I went with a split ortho layout with a trackpad and a small screen in the middle. plus a few extra controls that are going to make more sense later. We're also going to need key caps, and this set from work louder is perfect for a norto layout. Now, for power, I sunk an entire week trying to design the battery charging and power path myself, but the scope started creeping way too far, and I'm not comfortable sharing a project with charging circuitry that isn't proven and tested. So, I'll be using this UPS module designed for the Pi 5. And I'll use few tricks to make it work with the compute module. With the concept and core features locked in, it's time to start designing the CM deck. A compute module is basically a Pi without the IO, and that's actually the point. You get to make those decisions for yourself and tailor to your own project. But designing a carrier with a bunch of high-speed signals has some challenges. I've never done that before. So, I started from the official IO board as a reference and basically worked backward my way from the documentation and design files. I was able to replicate the schematic for everything I needed, but routin is where it gets weird. If I mess this up, nothing works, and I won't even know why. High-speed signals are apparently super sensitive to surrounding noise. I'm still far from understanding this properly myself, but grossly simplified, these signals run as differential pairs. That means two traces with the same geometry carrying the same signal with one inverted so that the receiver can subtract them and cancel out any noise that affected both the traces the same way. To make that work, you need controlled impedance. So I use this online calculator from Digi to set trace width and spacing based on the four layer stackup I'm using from PCB way. There's also length matching in other rules, but we're not going into that here. If you're interested, I'll link a few much more qualified resources down below. I focused on the critical runs first and I left the slower signals for later. Fusion signals integrity tool was telling me most of my routing was within target, which was great to see, but I still had no idea if it would work in real life. For IO, I added a USB hub chip adapted from the CM4 IO board this time so that I can connect the keyboard internally and still have some extra USB ports. I also stole one more idea from that design for a secret feature I'll show you later. I added two GPIO headers to have a few general purpose pins. I squared Cart, you know, still has to do Raspberry Pi things. For audio, I used an I2S DAC circuit based on this Adafruit design. Then I fed it into two amps. One for these tiny speakers and the other one for headphones with the jack switching mechanically between them without any special frameware needed. And the last important piece was power. I needed a way to adapt the UPS module because those pogo pins are meant for what's under the Pi 5 and not a flat PCB. So, I probed and mapped everything first and used this mechanical drawing from the manufacturer to pull all the center points for the pogo pins and made a custom footprint in Fusion for all those pads to land exactly where they need to. Hopefully, that works as planned. Now, the keyboard side is pretty straightforward and I've built similar projects like this before. The main difference this time is I'm not using a div board and I'm putting the RP2040 directly on the PCB. I use the hardware design guide and follow the minimal example for the controller block. I then tied it into the key matrix LEDs and connectors for the OLED screen and trackpad. To connect both the PCBs, I'm using two of these board-to-board connectors carrying the USB connection for the keyboard and the extra stuff like power button, activity LEDs, speakers, and so on. They're also passing the CM5 hardware toggle, which are going to matter later. I'm glossing over a lot of details here to keep the video reasonable, but if you have questions, drop them in the comments below, and I'll do my best to answer them. After weeks of staring at these boards and painstakingly routing each signal, I checked everything one more time and was ready to hand them off for manufacturing, today's sponsor, PCB Way. I've been using this service for years in every project on my channel with a custom circuit board has gone through them. The quality has been consistently amazing. They always review your files, flag issues, and recommend helpful changes. And the best part is they don't just do PCBs. They also offer assembly, 3D printing, CNC machining, sheet metal fabrication, and even injection molding. They have a ridiculous range of options and materials. If you're building anything involving electronics, PCB way can be a one-stop shop for your project. Link down below if you want to check them out. While I was waiting on the boards, I switched focus to the enclosure. The goal was simple. Mount the torque hinges properly, keep the shell thin, and make it look like something I would actually want to use. Problem is, at the time, I didn't have the display in hand yet. So, I modeled it from the product dimensions. And yeah, that's something that I later regretted. I tried to balance aesthetics and functionality, but a few issues started showing up. I left all the IO in the back because I thought it looks cleaner, but once you plug anything in, the screen can no longer fully swing open. So, I had to carve clearances into the back panel for the lid to go at least 140° without smashing into the cables. At that point, I also decided the bottom needs to be translucent. I love transparent tech and if I'm going through all this effort to make custom parts, I might as well show a bit of what's inside. It was then when I realized that I completely boxed myself in. I designed the IO panel in a way where you couldn't assemble it in a normal order. So, I had to add a cutout for the back panel to slide in after you put the main board. It probably weakens that area a bit, but restarting the whole design process was out of the question. Also, those hinge looking pieces in the middle aren't structural. They're just hollow because I need a path for the display cable to reach the main board. The last important detail was this riser modules. I wanted the keyboard on an angle and I needed more room for cooling. So, I made way too many versions of these until they felt right. As I finished all that, the PCBs and few more parts showed up. The boards look amazing, but at this point, I had no clue if they're going to work or I just made an expensive pile of parts. To save myself a few headaches down the line, I printed and assembled the prototype for the enclosure first. The three main pieces barely fit in. Basically maxed out the height on my printer. This was just to validate measurements and catch anything stupid early. I installed the heated inserts in the display back shell which I already modified quite few times. Turns out the product diagram I modeled the display from was missing couple of important details. So I had to remove a lot of that wall I needed for the hinge screws, but I gave it a shot anyways. I dropped the boards in to check if everything fits. At first glance it looked great, but after opening and closing a few times, the hinge screws pulled right out, which was kind of expected to be honest. I went back to the CAD and reworked the hinge mount. Since these are 360 hinges, I drafted the opening at 18° and switched to screws that go all the way through and that can be actually tightened properly. That fixed the hinge issue, but then I noticed the next problem. The display was way heavier than I expected. At 775 g for the screen alone, this thing was definitely going to tip when you open it fully. Even with the riser feet shifting the center of mass, it still wasn't enough. So, I redesigned them to swing as far back as possible, and that helped a lot. Once I added the two batteries, I'm only missing about 180 g to be fully balanced. So, I kept that in mind for later. After way too many more tweaks, the enclosure prototype was finally in a good place. Normally, I'll just produce and finish my own parts, but this project was getting out of control, and I still had all the electronics to deal with. Plus, my setup for resin printing isn't really made for big parts like these. So, I used PCB away 3D printing and CNC service again for the enclosure parts that needed the real finish, especially the transparent bottom. That freed me up to focus on the parts that I was actually nervous about. Heat. Heat. After a while of manual pick and place, I had most of the SMD down and it It's time to reflow. But this board is huge and it was hanging off the hot plate. So I had to do it in sections and kind of help it along just to get the important stuff to reflow, which also meant that I was definitely going to have to rework later. This keyboard normally only connects to the carrier through the board to board connector. So to test it on its own, I lift these test pads on the PCB. I soldered on the cursed cable and powered it from the bench supply. The power rails looked fine. Nothing was on fire, so I moved it to my Mac and it showed up as a drive, which was a huge relief. But I still couldn't flash anything to it. Turns out I missed the one very obvious mistake. I never connected this very important pin on the flash chip. Oops. One botch wire later and the test sketch uploaded fine. LEDs started lighting up, but not all the way. I had a couple more cold zones to retouch and then it was finally working. Next, I tested the OLED screen, then added the throughhole components on the other side along with the power button and two LEDs. To wrap up the keyboard, I flashed QMK, the open- source keyboard firmware I'll be using this time. At that point, it was good enough to set aside, so I moved on to the carrier board. For starters, I was surprised by the size of the box the stencil came in. Turns out that I am an idiot and I ordered it with framework. I still used it though. I clamped it to a scrap board and lined it up the best I could. It was not the best or cleanest based application, but I did the job. Assembly was basically the same process as the keyboard, except that I made it way harder for myself by accidentally picking some of the tiniest ESD protection I've ever seen. I could barely place them by hand. I stared at these footprints for weeks in CAD, but I didn't realize how small they actually are. Reflow was a bit smoother this time, but I still had to do a bunch of rework by hand, especially on the QFN packages. I don't use those often, but it wasn't as terrifying as I thought it would be. With the components soldered, it was time to start integrating, testing everything together. I started slow on the V supply with the low current limit just to make sure nothing was shorted before introducing the compute module. I checked all the voltages on the test pads and everything looked fine. The CM5 was drawing around 500 milliamps. So I added the monitor to the setup and rebooted. I could not believe my eyes after months of working on this. Seeing anything on screen was a huge milestone. Now I needed to see if the rest of it actually works too. For this next part, I needed to disable the boot from the eMMC. So I added the keyboard PCB and toggled one of the hardware switches I mentioned earlier. With both boards connected and powered on, I plugged it into my Mac and followed the official flashing guide. If everything went well, it should show up as a mass storage device. Once it booted in a desktop environment, I tested the audio by literally taping the speakers on the PCBs. They sound terrible and undersized, but hey, they work. I also tested the headphone jack switching and to my surprise, it worked first try. Ethernet was next. I ran a quick transfer test from another machine and I was getting great results. At this point, I was starting to get suspicious that things are going way too well. Of course, that streak ended the moment I tried the screen. First, I realized I had the wrong flat cables and I had wired it for same side instead of opposite. But even after I got the right ones, it still wouldn't work. With the display connected, the CM5 just refuses to boot. So, I started poking around with the multimeter. And what I found was the display was leaking 3vt back into the system through the DSI connection. With the display powered externally and connected to the board, I could see 3volt present and even 2.5 on the 5volt rail, which is probably what was freaking out the CM5. To fix it, I cut the 3volt line going from the CM5 to the display because I didn't actually need it in this case. After that, the screen finally worked as intended. Once the display was stable, I moved on to storage. The NVME drive showed up right away, so I partitioned it and ran a couple of quick transfer tests. Speeds looked great once I switched to PCIe Gen 3. And I also tested the USB 2.0 ports of the hub, and those were okay, too. Next up was the power module, which was the last part of the integration. But before I could install it, I had to remove the power jack and power buttons since they were going to interfere with other components. I also added a bit of solder to the pass that contact the shorter pogo pins since those were meant to land under a header on a normal pie. First power test. It could shut the system down, but it wouldn't turn it back on. The module takes over the main rail, and after a few seconds of being off, it cuts off power. So, the keyboard power button can't wake up the CM5 from the shutdown line. Once power is gone, the only way to wake it up is through the power module. So, to fix this, I cut the trace going to the power button and rerouted it with two small wires and a connector to the power board instead. Up to this point, I was using the CM4 thin cooler for the compute module, and I actually designed the case around it. But I noticed that the CM5 runs hot and under stress, it hits throttling temps pretty fast. There just isn't enough surface area on that cooler, and once assembled and sitting close to a tabletop, it's not going to get any better. So, for now, I switched to a thicker cooler that's actually intended for the CM5. and performance under stress was way better. It also let me test the fan header I included just in case something like this happened. That brings me to the last two tests, GPIO headers and batteries. The two GPIO connectors are the same. So, I hooked the same pin on both sides to the scope and toggled it high and low from the terminal to make sure that the signal matched. Then, I tested the I squed C and I scanned for the power module and I was able to decode it without any problems. The batteries I got are 5,000 milliamps and both exactly the same, but they came with 2 mm GSC connectors and the power module uses 2.5. So, I had to make new connectors and solder them on the packs. The UPS module lets you run two batteries in parallel. So, I checked that both of them are at the same voltage before connecting them. Everything booted fine on batteries. I used the manufacturer script to monitor what was going on. Then I plugged in that 27 watt official power supply to test charging and power path behavior. For the first time, the system was running fully off batteries, charging properly, and cutting off at the right voltage. At first, I was going to pull the battery information into the keyboard frameware and show it on the OLED screen since the keyboard can access that same I squared C bus. But luckily, I found a native kernel driver for that exact battery gauge chip used on the power board that gave me native battery reporting, graceful shutdown, and I was even able to add a charger detect. Before assembling the device in its final form, I reprinted the entire support structure in PETG this time and I installed all heated inserts. And while I was doing that, the enclosure part showed up and it looks amazing. Everything was packed really well and the finish is flawless. The resin PCB way we recommended has this neon color underneath, so even if it gets scratched eventually, it's still going to look sick. The tinted purple shell is easily my favorite one. To start the assembly, I glued the tiny speaker grills and the LD diffusers. It doesn't really need to be glued, but it makes moving these parts less annoying. I also embedded some magnets in the keyboard shell to help keep the lid closed. No idea how strong that's going to be yet, but it was worth a try. For any important fasteners, I used a bit of thread lock. Some of these are basically impossible to reach once everything is assembled. For the ribbon cables, I had to fold them gently and get the orientation right so they could snake through the hollow sections I showed before. The CM5 sits kind of buried in the middle of the device, so I added this antenna as a backup just in case wireless ended up being bad. It leaves between both PCBs inside the support structure. Not going to lie, This part sucked. I fought the ribbon cables for a while and when I finally got them positioned, I ended up with way too much slack on the carrier side. So, I had to start over this time routing from the mainboard to the display and leaving all the slack in the lid instead. And to deal with the weight distribution issues from the prototype, I also added two brass weights that PCB way machined for me. You might not even need both or any at all, but I wanted to be able to open the lid fully and have a solid base. After fastening what felt like a thousand screws, it was finally done. And here is the final result. Heat. Heat. Now that it's fully put together, let me show you a couple of changes I made and some features that I really like about this build. I mentioned earlier a secret feature. Well, if you plug the CM deck into another host through this special port, it basically lets you steal the keyboard in all the downstream USB devices. It's a neat thing to have on the bench when you're working on something else and you need an input device without having to dig for a spare keyboard or mouse. One thing to note here is the CM deck needs to be already on for this to work and you cannot power it from that port. It only takes power from the main input on the UPS module. The other bonus with this is I can update the keyboard firmware without taking anything apart. And since the display is touch, I can still do some basic stuff on the CM deck, even while the keyboard is borrowed by another device. I ended up switching to the other cooler with the fan for better thermals, and I had to mod the bottom shelf for it. The only downside to this is I can't really sit it flat anymore without the risers deployed, but honestly, it's not a big deal. Battery life has been decent, too. I'm getting around 4 hours with normal usage and with the native driver support, I can actually set the idle behavior to save on battery and shut down when it's low like a real laptop. I'm really happy with the form factor, but I'm still getting used to the layout for the keyboard. I can really see myself using this for some everyday tasks. The screen ratio is a bit awkward for watching video, but it's great with two small windows side by side. Writing on this format is surprisingly fun and that's something I see myself doing more of on this device. If you want to use a part of this project or just to poke around in the design files, I will post a link to the GitHub repo below. I'm not sure I'll have time to make a full build guide for this time, but if there's demand for it enough, I might consider working on one. Let me know in the comments. This has been the longest I've worked on a single project. It took me months to finish, but I learned a lot and I picked a lot of new tricks along the way. I hope you enjoyed following the process. Thanks again to PCB Way for making this project possible and thank you for watching. I'll see you on the next one.

Video description

Check out PCBWay, a one-stop solution for your projects. Go to https://pcbway.com/g/TC4KGU and Get $10 off your $30+ order using code: PCBWay-Salim Benbouziyane10 Works for PCB prototyping, CNC machining, 3D printing, and more. CMDeck is a clamshell style cyberdeck built around the Raspberry Pi Compute Module 5. It has a custom carrier board and a low profile mechanical keyboard with a trackpad and a small OLED. In this video I’ll show you the whole process from PCB design and enclosure prototyping to soldering, debugging, and final assembly, including all the mistakes I made along the way. 👋 Follow me https://linktr.ee/salimbenbouz ⚡️ Project link Github: https://github.com/sb-ocr/cmdeck 🔗 PCB design resources @PhilsLab --- ⚙️ Bambu Lab 3D Printers: Bambu Lab A1 https://bit.ly/4gwNFhK Bambu Lab P1S-Combo https://bit.ly/3VW4QBg Bambu Lab X1-Carbon https://bit.ly/3VTKfxx Bambu Filaments https://bit.ly/41RpVRe 🖥️ Desk gear: Grovemade Premium Desk Accessories 🍃 Get 10% off using code SALIM10 → https://bit.ly/grovemade-accessories 🛠 Tools: Autodesk Fusion 360: https://bit.ly/49dQyQN Soldering station: https://geni.us/16zcw5 iFixit Driver Kit: https://geni.us/pE8dvKd Magnetic Helping Hand: https://geni.us/qmbA3W Digital Microscope: https://geni.us/OvfXE Oscilloscope: https://geni.us/rHzAS8 🎬Video gear: Sigma 18-35mm f/1.8 DC Art Lens: https://geni.us/43RyE 90cm Octagonal Softbox: https://geni.us/tXzLg2U Motorized Camera Slider: https://geni.us/CKpHVYp Aputure Amaran 100D Light: https://geni.us/DitmF6 Aputure Amaran PT1C Tube Light: https://geni.us/zcYT Heavy Duty Light Stand with Casters: https://geni.us/W3aZy4Z RØDE VideoMic GO II Microphone: https://geni.us/3gEQb4 RØDE Wireless GO II Microphones: https://geni.us/HTWPS 🎧 Music: Epidemic Sound https://share.epidemicsound.com/cp32b6 --- 00:00 Intro 00:20 Project Goals 01:55 Design 07:40 Prototype 09:40 Electronics 13:45 Integration 18:55 Assembly 23:10 Usage and Features 24:45 Outro Affiliate links may be included in this page. I may receive a small commission at no additional cost to you.

© 2026 GrayBeam Technology Privacy v0.1.0 · ac93850 · 2026-04-03 22:43 UTC