bouncer
← Back

Salim Benbouziyane · 674.4K views · 27.6K likes

Analysis Summary

30% Minimal Influence
mildmoderatesevere

“Be aware that the high-end resin printing system featured is a professional-grade tool provided by a sponsor, which may make the project's 'DIY' accessibility seem higher than it is for a typical hobbyist.”

Transparency Transparent
Human Detected
98%

Signals

The content is a highly specific, technical DIY project documentation with clear personal continuity from previous work and authentic problem-solving narratives. The presence of original engineering files and personal references strongly confirms human creation.

Personal Anecdotes and Context The narrator references specific feedback from a previous project (Ocreeb MK1), mentions specific creators like Zack Freedman as inspiration, and explains personal design choices.
Natural Speech Patterns The transcript includes natural phrasing like 'kind of works 😅', 'let's get to it', and 'more on that later', which flows like a personal project log rather than a generated script.
Technical Problem Solving Detailed explanation of GPIO constraints on the XIAO RP2040 and the specific cost-benefit analysis of buying vs. making pogo pin connectors.
Channel Identity The channel is named after a specific individual (Salim Benbouziyane) with links to personal GitHub and Instructables repositories containing original code and CAD files.

Worth Noting

Positive elements

  • This video provides excellent technical insight into I2C communication, the Seesaw framework, and modular PCB design for electronics hobbyists.

Be Aware

Cautionary elements

  • The seamless integration of the sponsored resin printer makes professional-grade manufacturing look effortless, which may lead viewers to underestimate the cost and complexity of achieving similar results.

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 Ocreeb, a 12 key  macropad that I made last year. I received a lot of feedback and suggestions  during the last few months and I decided it was time to design another version. Not only that  but I will also try to make a bunch of external modules that snap together in many possible  layouts with this custom magnetic connector. Let’s get to it. Last version of this project was a great  introduction and I recommend it if you're getting started with this kind of thing. However, for this version there are a few improvements and  some completely new features I want to explore. So let’s go over the changes  and constraints first. It seems that some of you couldn't get the  microcontroller I used before (the KB2040) and I understand that swapping the PCB footprint from  the get go isn't for everyone. So for this version I will use the XIAO RP2040 from Seed Studio. It’s  small, cheap and available pretty much everywhere. Plus you get to choose from several drop  in replacements either from Seed Studio, Adafruit’s QT Py line or others. The  only thing to keep in mind is that it only breaks out 11 GPIOs which  is definitely not enough for the way things were set up before but there is a  way we can make it work. More on that later. In the last design I made the switch plate and  the top shell all in one part. Once you solder the switches to the board it’s pretty much  closed off. You can’t access the pcb from the other side without desoldering all of  them. So this time we will do two things: Add support for hotswap sockets and decouple  the plate from the rest of the enclosure. The two encoders in the previous version required  6 pins. Given that we don’t have a lot of GPIOs this time, we're going to have just one. But in  exchange we'll add the much-asked-for OLED screen. I will be using one of these  widely available I2C modules to display layer changes and maybe other information. I got inspired to do the previous  project after using the Creativity Console by Monogram. A standout feature of  the console is these connectors. They allow you to rearrange modules into various shapes  and layouts, tailoring to diverse workflows. I wondered for a while if I could pull off  something similar for the macropad and It was until I watched this video by Zack  Freedman that reignited my interest in the idea. You should definitely check  out this project BTW. Link down below So the idea would be to be able to attach  to the macropad all sorts of different peripherals like encoders, buttons and maybe  potentiometers in various combinations. We will need some sort of a grid system with  a standard way to connect all the elements. Let me show you what I mean by all this  and let’s get started on the prototype. I begin by making the size grid relative to the  macropad’s dimensions — where 1 grid unit equals the quarter of the macropad — assuming that the  macropad will be a perfect square of course. Each external module could be a multiple of these  units. Should have one upstream connection and many possible landings on all remaining sides.  All connectors are centered within the grid units. Now, for the connection itself we will need power, ground, 2 pins for I2C and maybe an  extra pin to use as an interrupt. For a total of 5 pins and of course the  magnets arranged with the right polarity. I went on Digikey and found these that you can  get with magnets embedded already. There is only one slight problem: they cost over 10$ each and  they come in pairs only (pins and mating part). If I make 5 modules for example I will only need 5  of them with pogo pins and around 30 landing pads. So maybe it’s a good idea to design  my own exactly how I needed them. I will be making them out of small PCBs  that will interlock with the main board. They'll have two locating features  and will be soldered on both sides to castellated pads on the edge, ensuring  both mechanical and electrical connections. As for the other upstream connector I will  use the exact same part as the landing and add these through-hole pogo pins to the  center with a small shroud to keep them aligned and I will be soldering them  the exact same way as the other ones. With the connectors more or less figured out, let's discuss how the macropad  will communicate with the module. Each one of them should function as  an I2C peripheral and the macropad should detect when there is an input event. Given that I’m not a very good programmer  and I certainly didn’t want to try and write special firmware to account for each and  every scenario on both sides: I did some research first and fortunately, I stumbled  upon Adafruit's Seesaw framework which can be configured to give a wide range of  capabilities via I2C out of the box. In fact they use it for this exact reason as  a near universal system for many of their I2C boards. This is awesome and will save us a  ton of work. So exactly like the breakouts our modules we will be running the Seesaw firmware  on ATtiny microcontrollers from Microchip. With all this in mind I threw  together some parts that are fairly similar to whatever I will be using for the end product — to do a sanity check and see how  things work together before making more decisions. Remember when I said that we don’t have  enough pins for a regular matrix setup? Well for that reason we will use another  technique to scan using shift registers. This only requires 3 pins from our main  controller and it’s already supported by KMK, the circuit python firmware running on Ocreeb. To test out the module idea, I connected  a Seesaw breakout board. I attached an encoder, a potentiometer, and a button to cover  the basic cases we would want in these modules. Now, this extra wire: represents the interrupt  in the connector I mentioned earlier. I’m trying to avoid spamming the I2C bus constantly  as much as possible and try to leverage the seesaw’s configurable interrupt for the  digital inputs. It triggers when there is an interaction on the module and it will clear the  flag after we read it from the macropad side. One thing to note here that  I allocated only one pin for all the modules in our setup. So we can't  pinpoint the exact source of the trigger, any change in that pin's state should  prompt a scan of all the modules. I also added this I2C hot swap controller, I’m not sure how useful it would be but  since we plan on making removable modules, I thought it’s a good idea to avoid messing with  the microcontroller if we disconnect mid com. With these requirements laid out  and a basic prototype in hand, let's jump into Fusion 360  and get started on the PCBs. The first thing I did in this step is make  these main sketches to derive from them the board outlines and have an easy way to update  and tweak the shapes down the line. Everything, from the pogo pin height to the magnet  thickness affects these dimensions and I will be referencing these geometries  throughout the entire design process. I got to work and layed out 5 boards in total: The main macropad core with  six possible attachment points A four rotary encoder module we’ll call Dials. One with two slider  potentiometers we'll call Faders. Another one with three switches and an encoder we’ll be calling Combo ..  I know right very original. Lastly this funky one using a big  ol 60mm CNC encoder and 4 switches. I think this covers a good range  of possibilities to start with. So I double checked all the  files including the two tiny connectors and sent them all to the PCB Way. While waiting for the PCBs to show up  I can get started on the enclosures. Back in Fusion 360 I referenced the 3D PCBs produced in the previous  step to design around them. The most crucial piece in my opinion is  this section that surrounds the connectors it needs to house the magnets and have precise  tolerances where the connectors will interface. I did some tests to see how thin the  walls should be to get the magnets as close together as possible and I  also had to determine the thickness for the shell to have the pogo pins  setting just right on the other part. Next, I dealt with the top part.  Including the switch plate, the Oled Screen opening and the fasteners to  secure the middle section and the main board. Then, it was the bottom part  to close off everything and also act as a diffuser for the RGB underglow. After figuring out the enclosure for  the Core macropad I repeated the exact same process for all the modules, reusing parts, patterns and sharing dimensions as much as  possible to keep the overall design uniform. With the enclosures completed It’s time for  the fabrication and for that I will be using the UltraCraft Reflex 3D printing system  by HeyGears, the sponsors of this video. This was my first experience with resin printers  and I was happily surprised to be honest. HeyGears created a One-stop production platform to produce  commercial-grade parts on a hobbyist level. The build quality of these machines  is outstanding and the closed-loop system ensures predictable success and  offers a seamless 3D printing experience. I started by loading the resin bottle which  the printer detected automatically. It also monitors the resin level and will refill  as needed on its own. How cool is that? The first batch for the top parts is done. I put them in the wash station  with some isopropyl and sent the proper settings from the slicer directly. HeyGears came up with this cool dual  tub system so that you don’t have to fish for parts in the IPA, you  simply open this valve into the empty container and collect your  parts after the alcohol drains. Next, I removed the supports and put the models  in the cure station which again received settings specifically for the shape, material and size of  this model directly from the Blueprint slicer. From then it was rinse and repeat untilI  went through all the top enclosure parts. Next it’s the translucent bottom  parts. I repeated the same steps but this time using the PAT10 resin,  a strong and clear material with 88% transparency which works great  to diffuse light for the RGB. The quality of these prints is amazing. Straight  out of the machine, the only post-processing I did was to sand down the support traces in  a few places where I needed a flat surface. I'm really happy with the outcome, and if  you've watched any of my previous projects, you would see how much time I spent  just to get a decent surface finish. Now that we have all the parts printed  it’s time to talk about the keycaps. In the previous version I  used these DSA style ones that I got online but this time I modeled this. Heavily inspired from the GRID Set by RAMA  WORKS and I’m going to try and print them in custom colors using the UltraPrint Design PAM10  mixable resins. Let me show you how that works. You get this swatch of colors that you  reference in a table to get the exact mixing ratios by weight for any of  these shades. You can mix batches as needed and you get consistent  and repeatable results each time. I tried to stay closer to the  original color scheme I had in the previous version and I think  it turned out even better this time. If you’re in the market for an all-in-one resin  system checkout the UltraCraft Reflex. I will leave a link to it in the description below and  Thank you HeyGears for sponsoring this video. Now, Let’s get started on the assembly. All the PCBs finally arrived and  I was eager to test the connectors … and of course they didn't fit right away. When designing on-screen all the way zoomed-in,  it's easy to overlook some obvious details, like how these tight corners might  be a little rounded for example. Well at least I can adjust them slowly by  filing until I get a nice friction fit. I got a stencil just for the core macropad  PCB to try it out with a hot plate. However, I made sure to pick components  with somewhat DIY-friendly sizes. I realized just now that I made  this footprint a little too tight and some rework was necessary to  connect all the pads properly. Now for the connectors: I glued that  small shroud to the receiving part to hold the pogo pins in place temporarily before  soldering it to the main board for each module. Before starting the final assembly  I needed to lay and glue the magnets in place in the correct order before  inserting the PCBs to hold them. So I made this little jig to make sure  I don’t mess up their polarities. To upload the Seesaw firmware To the ATtiny  chips on all the external modules we will need a UPDI programmer. You can easily  make one using a 1K resistor and a USB to Serial cable. I'll put a link  to more details on that down below. That’s it. I’m going to call it  done and here are the final shots. Now that it’s done we can go over  how the code is set up and show you some mistakes and flaws that  almost ruined the entire build. The main macropad is still running  the KMK firmware. I just made a custom module to handle whatever hardware  configuration we have on the other side. This little arrow on the oled is a visual  indicator for that interrupt line on the connector. Whether it’s a first connection or an  interaction on the module it shows up briefly on the screen. That way if it stays too long we know  that something went wrong or actively going wrong. For the analog devices they are set up in a  similar way but instead of interrupts they are polled on an interval and send midi control  signals for the provided midi notes that way we can attach that to special actions on the computer  side. More info on this in the description below. It doesn't matter if you boot with  or without the modules as long as they have a proper configuration they will  be able to attach later and swap position during runtime without problems which  is cool and exactly what I set out to do BUT there is a major flaw in the way  the interrupt is handled right now. Remember when I said that a single interaction  will trigger a scan for everything? … well that turned out to be a horrible  idea when you have a lot of them. What ends up happening is transactions  to scan each module start to stack up really quickly and you end up missing  sometimes the interactions because it takes you too long to get to  the ones that triggered it. With just one or two of the modules it works  really great and the delay isn’t very noticeable, also the analog ones aren’t affected a  lot by this because they update state on an interval. I’ve tried as a potential  solution to encode the I2C address on each module and send it as a custom pulse  to the controller on the interrupt that way it knows which of the module is  trying to talk and scans just that. It didn’t really work great because  It still too slow to read in circuit python and I’m still looking into it  and how to make it run better. In the meantime If you have any ideas please  let me know in the comments section. The other thing that didn’t work exactly like  I anticipated is the magnets. Unfortunately they don't have enough force for this orientation  and you can knock the module and disconnect it. On the other hand when you have 2 of  them or on the sides they work really great and they have just the right  amount of force to keep them secured. If for some reason you still want  to build this or just a part of it PLEASE be aware of the issues and limitations I  mentioned earlier before pouring time into it. As per usual I will leave all the files  in the description down below and so that you know the build is structured in a  modular way. You can build just the parts that interests you. You can make just the  macropad for example or just a detachable module if you're making a full keyboard and  want something like that. it will work great. I also want to warn you that the 3D  printed parts in this project are finicky, and very thin in a few places. If you're planning  on doing this in FDM expect some post processing to make the tight tolerances work and make  them fit nicely. The UltraCraft reflex from HeyGears made it very easy for me to produce  precise parts with great surface finish. and lastly I just want to point out even though  it’s pretty obvious that I’m not an expert in any of this and what you’re watching is me  learning by doing and by failing sometimes. Thank you so much for your time  and I will see you in the next one.

Video description

Check out HeyGears UltraCraft Reflex: https://store.heygears.com/referral/reflex036 Join the HeyGears IdeaShapers community: https://bit.ly/41ZgYle 🍃 Grovemade Premium Desk Accessories: Get 10% off using code SALIM10 → https://bit.ly/grovemade-accessories Notepad: https://bit.ly/Grovemade-NotePad Display Rail: https://bit.ly/Grovemade-Display-Rail Vertical Organizer: https://bit.ly/Grovemade-Vertical-Organizer Entire Kit: https://bit.ly/Grovemade-The-Note-Taking-Kit Ocreeb MK2 is the second iteration of my macropad project. This version features the XIAO RP2040, hotswap sockets support, a detachable switch plate, an OLED screen and I'm exploring a fun new idea inspired by the Monogram Creative Console – a custom magnetic connector that lets me attach all sorts of external modules to make different layouts. Join me as I try to design and build the modular macropad system that kind of works 😅 👋 Follow me: https://linktr.ee/salimbenbouz ⚡️ Project links: Github: https://github.com/sb-ocr/ocreeb-mk-2 Instructables: https://bit.ly/3vCNajG 🧪 Project resources: KMK Keyboard Firmware: https://kmkfw.io Adafruit Seesaw Framework: https://bit.ly/Adafruit-Seesaw Using the UPDI Programmer: https://bit.ly/3tX4NtZ MIDI commands into Lightroom actions: https://rsjaffe.github.io/MIDI2LR/ Zack Freedman's project: https://www.youtube.com/watch?v=EWWJ1x2VMJs&t=903s _______________________ ⚙️ 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 🛠 Tools: Autodesk Fusion 360: https://bit.ly/49dQyQN Soldering station: https://geni.us/16zcw5 PEI build plate: https://geni.us/9K0md 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:38 Parts and changes 02:25 Prototype 06:00 PCBs 07:05 Enclosures 08:05 3D Printing 12:19 Assembly 15:46 Final result 16:25 Firmware usage and mistakes 18:47 Outro Affiliate links may be included in this page. I may receive a small commission at no additional cost to you. #diy #modular #mechanicalkeyboard #macropad #3dprinting #maker

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