{"id":2751,"date":"2026-08-12T00:12:41","date_gmt":"2026-08-12T00:12:41","guid":{"rendered":"http:\/\/luxregina.com\/portfolio\/?p=2751"},"modified":"2026-08-12T02:31:10","modified_gmt":"2026-08-12T02:31:10","slug":"building-a-handheld-console","status":"publish","type":"post","link":"http:\/\/luxregina.com\/portfolio\/building-a-handheld-console\/","title":{"rendered":"Building a handheld console"},"content":{"rendered":"<h2><span style=\"color: #00ccff;\">Garage collective<\/span> | Building a handheld console<\/h2>\n<blockquote><p><strong>Client<\/strong>: Garage Collective<br \/>\n<strong>Published<\/strong>: Physical project<br \/>\n<strong>Role<\/strong>: Designer and Maker<\/p><\/blockquote>\n<div class=\"x1hq5gj4\" data-block=\"true\" data-editor=\"9el30\" data-offset-key=\"d7iao-0-0\">\n<div class=\"_1mf _1mj\" data-offset-key=\"d7iao-0-0\">\n<h5>Context<\/h5>\n<p>I love making games! My main job is to <a href=\"http:\/\/luxregina.com\/portfolio\/category\/teaching\/\">teach how to make<\/a> games, and my main hobby is to <a href=\"http:\/\/luxregina.com\/portfolio\/category\/game-design\/bestof\/\">make them<\/a>, at Garage Collective. Needless to say that a <strong>majority of my time awake<\/strong>, I&#8217;m thinking about games, playing them or making them \ud83d\ude42<\/p>\n<p>After releasing <a href=\"http:\/\/luxregina.com\/portfolio\/isles-of-drakken-ridge-vr\/\">DrakkenRidge<\/a>, in September 2025, I needed a <a href=\"http:\/\/luxregina.com\/portfolio\/the-journey-so-far\/\">break from VR<\/a>. I&#8217;ve been mulling the idea of making new 2D &#8220;pixel-art&#8221; games, a return to my old field of expertise!<br \/>\nFor that purpose, I&#8217;ve re-installed a bunch of emulators (mostly RetroPie) and been re-engaging with various Genesis\/Megadrive\/SNES\/GBA titles, for &#8220;inspiration&#8221; as they say! (and yes, <strong>Zelda The Minish Cap<\/strong> graphics on GBA absolutely rule!).<\/p>\n<div id=\"attachment_2759\" style=\"width: 1034px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-2759\" data-attachment-id=\"2759\" data-permalink=\"http:\/\/luxregina.com\/portfolio\/building-a-handheld-console\/collection\/\" data-orig-file=\"https:\/\/i2.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/collection.jpg?fit=1143%2C518\" data-orig-size=\"1143,518\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"collection\" data-image-description=\"\" data-medium-file=\"https:\/\/i2.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/collection.jpg?fit=300%2C136\" data-large-file=\"https:\/\/i2.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/collection.jpg?fit=1024%2C464\" decoding=\"async\" loading=\"lazy\" class=\"size-large wp-image-2759\" src=\"https:\/\/i2.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/collection.jpg?resize=1024%2C464\" alt=\"\" width=\"1024\" height=\"464\" srcset=\"https:\/\/i2.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/collection.jpg?resize=1024%2C464 1024w, https:\/\/i2.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/collection.jpg?resize=300%2C136 300w, https:\/\/i2.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/collection.jpg?resize=768%2C348 768w, https:\/\/i2.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/collection.jpg?w=1143 1143w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" data-recalc-dims=\"1\" \/><p id=\"caption-attachment-2759\" class=\"wp-caption-text\">Only &#8220;some&#8221; of the hardware that I own&#8230;<\/p><\/div>\n<p>Aside the Raspberry Pie that runs my emulators, I also own a MASSIVE variety of consoles, handhelds, etc. that allow me to play retro-games as the Good Lord intended (!!!). Some are my consoles of old, that stayed in a pristine condition (I&#8217;m pretty caring after my stuff) and some others are new emulators, or dedicated machines like several <a href=\"https:\/\/evercade.co.uk\/\">Evercade<\/a> or a variety of <a href=\"https:\/\/www.hypermegatech.com\/\">HyperMegaTech<\/a> (yep, that&#8217;s the name!) consoles.<\/p>\n<p>When it comes to gaming, I&#8217;m as much in love with the hardware as in with the software (I also love, and <a href=\"http:\/\/luxregina.com\/portfolio\/technomages\/\">made<\/a>, some board games).<\/p>\n<p>I know how to make games, but <strong>never tried to make hardware<\/strong>&#8230; Something that had to be corrected!<\/p>\n<h5>The opportunity<\/h5>\n<p>One of the class that is offered in the department I teach in, <a href=\"https:\/\/catalog.scad.edu\/courses\/game\/\">GAME 347<\/a>, introduces students to <strong>physical computing<\/strong>, the world of microcontrollers, etc. It&#8217;s a class that follows <a href=\"http:\/\/luxregina.com\/portfolio\/core-principles-of-programming\/\">another I used to teach<\/a> (but haven&#8217;t in a long time) and that I&#8217;ve always been curious about. Well, this summer of 2026, it was offered as a <strong>Summer class<\/strong>, and since I wasn&#8217;t teaching at that time, I was free to sit-in: I had no more excuse to not explore my interest for the hardware side!<\/p>\n<h5>First Steps<\/h5>\n<div id=\"attachment_2760\" style=\"width: 1034px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-2760\" data-attachment-id=\"2760\" data-permalink=\"http:\/\/luxregina.com\/portfolio\/building-a-handheld-console\/kesselrun\/\" data-orig-file=\"https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/kesselRun.jpg?fit=1173%2C708\" data-orig-size=\"1173,708\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"kesselRun\" data-image-description=\"\" data-medium-file=\"https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/kesselRun.jpg?fit=300%2C181\" data-large-file=\"https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/kesselRun.jpg?fit=1024%2C618\" decoding=\"async\" loading=\"lazy\" class=\"size-large wp-image-2760\" src=\"https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/kesselRun.jpg?resize=1024%2C618\" alt=\"\" width=\"1024\" height=\"618\" srcset=\"https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/kesselRun.jpg?resize=1024%2C618 1024w, https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/kesselRun.jpg?resize=300%2C181 300w, https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/kesselRun.jpg?resize=768%2C464 768w, https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/kesselRun.jpg?w=1173 1173w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" data-recalc-dims=\"1\" \/><p id=\"caption-attachment-2760\" class=\"wp-caption-text\">A rudimentary Star Wars game, inspired by the Kessel Run : how may parsecs will you be able to run?<\/p><\/div>\n<p>No surprise, the class was a blast to take! The first couple assignments were about getting familiar with Microcontrollers, an opportunity for me to prototype a very simplistic Arduino game, the &#8220;Kessel Run&#8221; that <a href=\"https:\/\/youtu.be\/rGIgJ4GBLdM?si=wKukFcxEoEdBgEno&amp;t=44\">plays the iconic Star Wars tune<\/a> when the game ends.<br \/>\nHowever, the bulk of the class is dedicated at producing a much more ambitious final project. In my case, building a console, from scratch, that can play the type of games I teach my students to make in my <a href=\"http:\/\/luxregina.com\/portfolio\/intro-to-game-development\/\">Introduction to Game Dev<\/a> class.<\/p>\n<p>So let&#8217;s dive into it.<\/p>\n<h2>The Tutorial: <span style=\"color: #00ccff;\">How to build the console<\/span><\/h2>\n<p>First, here&#8217;s a quick introduction of what this tutorial is about:<\/p>\n<p><span class=\"embed-youtube\" style=\"text-align:center; display: block;\"><iframe class='youtube-player' type='text\/html' width='1180' height='664' src='https:\/\/www.youtube.com\/embed\/UZcDpu__DRo?version=3&#038;rel=1&#038;fs=1&#038;autohide=2&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' allowfullscreen='true' style='border:0;'><\/iframe><\/span><\/p>\n<p>Let&#8217;s start with the &#8220;Statement of Requirements&#8221;. I wanted the console to be:<\/p>\n<ul>\n<li>Easy to build by non-hobbyists (that would be me, or most of my students interested in the project)<\/li>\n<li>Relatively cheap to build (at the time of this tutorial, it&#8217;s around $50 to build, not counting the 3D printing costs)<\/li>\n<li>More powerful than what&#8217;s already sold (like the <a href=\"https:\/\/www.kittenbot.cc\/products\/meowbit-codable-console-for-microsoft-makecode-arcade\">Mewbit<\/a>, the <a href=\"https:\/\/shop.elecfreaks.com\/collections\/all\/products\/elecfreaks-retro-makecode-arcade-for-education\">Elecfreak<\/a> or the <a href=\"https:\/\/kitronik.co.uk\/blogs\/resources\/introducing-the-new-arcade-max-for-makecode-arcade-from-kitronik\">Kitronic Arcade Max<\/a>)&#8230; more on that later&#8230;<\/li>\n<li>Able to play custom games, or be plugged into a computer to change\/edit installed games<\/li>\n<li>Compatible with <a href=\"https:\/\/arcade.makecode.com\/courses\/introcs\">Microsoft MakeCode Arcade<\/a> games.<\/li>\n<\/ul>\n<p>I originally started with this <a href=\"https:\/\/austonstewart.com\/posts\/maketato-diy-handheld\/\">existing tutorial<\/a>, the <strong>&#8220;MakeTato&#8221;<\/strong> but while mine uses the same processor, my own build ended up streamlining the process a lot, leading to a different device, that I called the <span style=\"text-decoration: underline;\"><strong>RetroMate<\/strong><\/span>.<\/p>\n<div id=\"attachment_2762\" style=\"width: 984px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-2762\" data-attachment-id=\"2762\" data-permalink=\"http:\/\/luxregina.com\/portfolio\/building-a-handheld-console\/prototype\/\" data-orig-file=\"https:\/\/i2.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/prototype.jpg?fit=974%2C685\" data-orig-size=\"974,685\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"prototype\" data-image-description=\"\" data-medium-file=\"https:\/\/i2.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/prototype.jpg?fit=300%2C211\" data-large-file=\"https:\/\/i2.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/prototype.jpg?fit=974%2C685\" decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-2762\" src=\"https:\/\/i2.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/prototype.jpg?resize=974%2C685\" alt=\"\" width=\"974\" height=\"685\" srcset=\"https:\/\/i2.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/prototype.jpg?w=974 974w, https:\/\/i2.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/prototype.jpg?resize=300%2C211 300w, https:\/\/i2.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/prototype.jpg?resize=768%2C540 768w\" sizes=\"(max-width: 974px) 100vw, 974px\" data-recalc-dims=\"1\" \/><p id=\"caption-attachment-2762\" class=\"wp-caption-text\">My own breadboarded &#8220;Maketato&#8221; that looks like a prop from a Cyberpunk movie!<\/p><\/div>\n<h5>Bill of Materials<\/h5>\n<p>To follow this tutorial, you<span style=\"text-decoration: underline;\"><strong> need the exact same parts<\/strong><\/span> that I&#8217;m using: different parts may require different drivers, or wiring process, and unless you can solve the issues yourself, you won&#8217;t be able to follow the instructions&#8230; Since my students, and audience, is most likely in the US, I sourced my parts through Amazon.<\/p>\n<ul>\n<li><strong>Screen<\/strong>:<a href=\"https:\/\/www.amazon.com\/dp\/B07QLY3ZB1\">LCD display module, 1.8 inch 128*160 chip ST7735<\/a>. This one is the trickiest: make sure the driver is <span style=\"text-decoration: underline;\"><strong>ST7735<\/strong><\/span> and <span style=\"text-decoration: underline;\"><strong>NOT<\/strong> <\/span>ST7735 <strong>s<\/strong>, as the S version uses a different driver and renders everything in reversed black and white!<\/li>\n<li><strong>Microcontroller<\/strong>: <a href=\"https:\/\/www.amazon.com\/dp\/B08X7HN2VG\">Presoldered header Raspberry Pico RP2040 chip, dual-core ARM Cortex M0+ processor<\/a>. Make sure you get the PICO 1 (RP2040) and NOT the Pico 2.<\/li>\n<li><strong>Battery<\/strong>: <a href=\"https:\/\/www.amazon.com\/dp\/B0GWZQFK8T\">2 pack LiPo Battery module, USB-C rechargeable 1200mAh. 3.3V\/5V output<\/a>.<\/li>\n<li><strong>LED lights<\/strong>: <a href=\"https:\/\/www.amazon.com\/dp\/B0F1FB3DS5\">10 pcs 4pin RGB module for Arduino, rated 5V<\/a>. Make sure whatever LED you buy is rated 5V (or 3.3V, but you&#8217;ll need to change the wiring) since we won&#8217;t solder a resistance to them.<\/li>\n<li><strong>Thumbstick<\/strong>: <a href=\"https:\/\/www.amazon.com\/dp\/B09DPMQ1F3\">6 pcs 5D Rocker Joystick<\/a>. As long as they have the 4 directional channels (up, down, left, right) and a ground pin, any other provider should do.<\/li>\n<li><strong>Buttons<\/strong>: <a href=\"https:\/\/www.amazon.com\/dp\/B0GX1JBF2K\">4 pcs 2*4 Matrix Keypad Board<\/a>. You could very well use a 2*2 Matrix, but I wanted to space some buttons a bit more on the face plate. Technically, we will be only using 4 out of those 8 buttons.<\/li>\n<li><strong>Wires<\/strong>: <a href=\"https:\/\/www.amazon.com\/Chanzon-Female-Ribbon-Jumper-Dupont\/dp\/B09FP1WF8Q\/ref=sr_1_4?s=industrial\">10 cms female-to-female Dupont jumper wires<\/a>. You could go with longer lengths, but I found that 10cm is easier to pack in the enclosure.<\/li>\n<li><strong>Speaker<\/strong>: <a href=\"https:\/\/www.amazon.com\/dp\/B0177ABRQ6\">4 pcs Metal shell round internal magnet speaker, 2W 8Ohm<\/a>.<\/li>\n<li><strong>Screws<\/strong>: <a href=\"https:\/\/www.amazon.com\/dp\/B0GKMVNG4D\">M2 screw assortment Kit<\/a>.<\/li>\n<\/ul>\n<p>You will also need a solder iron, and a few male-to-female Dupont wires to solder the speaker to the wires.<\/p>\n<h5>The wiring diagram<\/h5>\n<p>Believe it or not, but ordering the <strong>right parts<\/strong> is the most difficult part of this tutorial! The rest is pretty straight-forward \ud83d\ude42<br \/>\nFirst, to save you some time looking online, here&#8217;s the <strong>pinout diagram of the Raspberry Pico RP2040<\/strong>:<\/p>\n<div id=\"attachment_2768\" style=\"width: 2855px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-2768\" data-attachment-id=\"2768\" data-permalink=\"http:\/\/luxregina.com\/portfolio\/building-a-handheld-console\/pinout\/\" data-orig-file=\"https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/pinout.png?fit=2845%2C1600\" data-orig-size=\"2845,1600\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"pinout\" data-image-description=\"\" data-medium-file=\"https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/pinout.png?fit=300%2C169\" data-large-file=\"https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/pinout.png?fit=1024%2C576\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-2768 size-full\" src=\"https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/pinout.png?resize=1180%2C664\" alt=\"\" width=\"1180\" height=\"664\" srcset=\"https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/pinout.png?w=2845 2845w, https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/pinout.png?resize=300%2C169 300w, https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/pinout.png?resize=1024%2C576 1024w, https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/pinout.png?resize=768%2C432 768w, https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/pinout.png?resize=1536%2C864 1536w, https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/pinout.png?resize=2048%2C1152 2048w, https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/pinout.png?w=2360 2360w\" sizes=\"(max-width: 1180px) 100vw, 1180px\" data-recalc-dims=\"1\" \/><p id=\"caption-attachment-2768\" class=\"wp-caption-text\">(Open the image in a new tab for a bigger version)<\/p><\/div>\n<p>Then, all you have to do is assemble all the elements you have purchased <strong>following this wiring diagram<\/strong> (refer back to the pinout diagram if there&#8217;s any confusion).<\/p>\n<p>Use the dupont wires to connect all the pins of the PICO to its screen, thumbstick, buttons and speakers.<\/p>\n<div id=\"attachment_2769\" style=\"width: 2510px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-2769\" data-attachment-id=\"2769\" data-permalink=\"http:\/\/luxregina.com\/portfolio\/building-a-handheld-console\/wiringfinal\/\" data-orig-file=\"https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/wiringFinal.png?fit=2500%2C1500\" data-orig-size=\"2500,1500\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"wiringFinal\" data-image-description=\"\" data-medium-file=\"https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/wiringFinal.png?fit=300%2C180\" data-large-file=\"https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/wiringFinal.png?fit=1024%2C614\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-2769 size-full\" src=\"https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/wiringFinal.png?resize=1180%2C708\" alt=\"\" width=\"1180\" height=\"708\" srcset=\"https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/wiringFinal.png?w=2500 2500w, https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/wiringFinal.png?resize=300%2C180 300w, https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/wiringFinal.png?resize=1024%2C614 1024w, https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/wiringFinal.png?resize=768%2C461 768w, https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/wiringFinal.png?resize=1536%2C922 1536w, https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/wiringFinal.png?resize=2048%2C1229 2048w, https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/wiringFinal.png?w=2360 2360w\" sizes=\"(max-width: 1180px) 100vw, 1180px\" data-recalc-dims=\"1\" \/><p id=\"caption-attachment-2769\" class=\"wp-caption-text\">(Open the image in a new tab for a bigger version)<\/p><\/div>\n<p>I would recommend to <strong>start with the screen<\/strong>, while plugging your PICO to its own USB power supply. Then <strong>flash the firmware<\/strong> (read next step) and test. Once you are sure the screen is working, move on to the <strong>thumbstick<\/strong>, test, then move on to the <strong>buttons<\/strong>.<\/p>\n<p>Then I would suggest moving on to <strong>connecting the LiPo power supply to VSYS and GROUND<\/strong>, then the LED to the 3.3V and GROUND pins of the battery.<\/p>\n<p>Then, finally, <strong>solder the male end of 2 dupont wires<\/strong> (I suggest RED for POWER (+) and BLACK for GROUND (-)) like so:<img data-attachment-id=\"2770\" data-permalink=\"http:\/\/luxregina.com\/portfolio\/building-a-handheld-console\/solder\/\" data-orig-file=\"https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/solder.jpg?fit=525%2C297\" data-orig-size=\"525,297\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"solder\" data-image-description=\"\" data-medium-file=\"https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/solder.jpg?fit=300%2C170\" data-large-file=\"https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/solder.jpg?fit=525%2C297\" decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-2770\" src=\"https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/solder.jpg?resize=525%2C297\" alt=\"\" width=\"525\" height=\"297\" srcset=\"https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/solder.jpg?w=525 525w, https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/solder.jpg?resize=300%2C170 300w\" sizes=\"(max-width: 525px) 100vw, 525px\" data-recalc-dims=\"1\" \/><\/p>\n<h5>FLASHING THE FIRMWARE<\/h5>\n<p>Once everything is wired (or, as I recommended, at least the screen) you will have to <strong>flash the firmware<\/strong> onto the Pico RP2040. The firmware includes everything it needs to run MakeCode Arcade games, as well as configuration files for the screen, buttons, etc.<br \/>\n<strong>Plug your Pico in the USB port<\/strong> while pressing the <strong>BOOTSEL<\/strong> button (the little white-ish button on the face of the RP2040 board).<\/p>\n<div id=\"attachment_2772\" style=\"width: 475px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-2772\" data-attachment-id=\"2772\" data-permalink=\"http:\/\/luxregina.com\/portfolio\/building-a-handheld-console\/bootsel\/\" data-orig-file=\"https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/bootSel.jpg?fit=465%2C251\" data-orig-size=\"465,251\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"bootSel\" data-image-description=\"\" data-medium-file=\"https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/bootSel.jpg?fit=300%2C162\" data-large-file=\"https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/bootSel.jpg?fit=465%2C251\" decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-2772\" src=\"https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/bootSel.jpg?resize=465%2C251\" alt=\"\" width=\"465\" height=\"251\" srcset=\"https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/bootSel.jpg?w=465 465w, https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/bootSel.jpg?resize=300%2C162 300w\" sizes=\"(max-width: 465px) 100vw, 465px\" data-recalc-dims=\"1\" \/><p id=\"caption-attachment-2772\" class=\"wp-caption-text\">The BOOTSEL button forces the chip to boot into its built-in USB mass-storage bootloader. This is what you need in order to drag and drop uf2 files.<\/p><\/div>\n<p>It should mount your Pico as a USB hard drive. Download the Custom firmware <strong>retroMate_firmware.uf2<\/strong> from <a href=\"https:\/\/drive.google.com\/file\/d\/17x0vXAtK480jzJ3TV_mSoCWYPgNGrcpG\/view?usp=drive_link\">this link<\/a> and drop it to the root. Let it reboot. Then redo the same thing (press BOOTSEL while inserting in the USB port) and drop <strong>arcade-functionalityTest.uf2<\/strong> from <a href=\"https:\/\/drive.google.com\/file\/d\/1deWJW-w0zGaSEAvqwqmG0AYGJHKFx_Ti\/view?usp=drive_link\">this link<\/a>.<img data-attachment-id=\"2773\" data-permalink=\"http:\/\/luxregina.com\/portfolio\/building-a-handheld-console\/test\/\" data-orig-file=\"https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/test.jpg?fit=274%2C203\" data-orig-size=\"274,203\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"test\" data-image-description=\"\" data-medium-file=\"https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/test.jpg?fit=274%2C203\" data-large-file=\"https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/test.jpg?fit=274%2C203\" decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-full wp-image-2773\" src=\"https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/test.jpg?resize=274%2C203\" alt=\"\" width=\"274\" height=\"203\" data-recalc-dims=\"1\" \/>This file isn&#8217;t a game, but a quick <strong>testing file I made that allows to check that everything is working well<\/strong>: it displays an image of the earth, a red square that you can move with your thumbsticks, a signal letting you know when you press A or B, and a repetitive melody that plays on a loop. (Please note that the speaker is very very tenuous. I&#8217;ll be trying to fix this and will update the tutorial when I have an easy to integrate solution).<\/p>\n<div id=\"attachment_2774\" style=\"width: 1034px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-2774\" data-attachment-id=\"2774\" data-permalink=\"http:\/\/luxregina.com\/portfolio\/building-a-handheld-console\/prototype2b\/\" data-orig-file=\"https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/prototype2b.png?fit=2845%2C1600\" data-orig-size=\"2845,1600\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"prototype2b\" data-image-description=\"\" data-medium-file=\"https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/prototype2b.png?fit=300%2C169\" data-large-file=\"https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/prototype2b.png?fit=1024%2C576\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-2774 size-large\" src=\"https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/prototype2b.png?resize=1024%2C576\" alt=\"\" width=\"1024\" height=\"576\" srcset=\"https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/prototype2b.png?resize=1024%2C576 1024w, https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/prototype2b.png?resize=300%2C169 300w, https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/prototype2b.png?resize=768%2C432 768w, https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/prototype2b.png?resize=1536%2C864 1536w, https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/prototype2b.png?resize=2048%2C1152 2048w, https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/prototype2b.png?w=2360 2360w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" data-recalc-dims=\"1\" \/><p id=\"caption-attachment-2774\" class=\"wp-caption-text\">For some of the prototypes, I had to solder, so I ordered a set of &#8220;helping hands&#8221; online. Now it looks like Doc Octopus is playing with the RetroMate!<\/p><\/div>\n<p>If everything is working as intended, you should get <strong>something like this<\/strong>. Now, let&#8217;s move to the shell!<\/p>\n<h5>The Shell \/ enclosure<\/h5>\n<p>I&#8217;ve designed a shell\/enclosure to host all the electronics. The STL file can be downloaded at <a href=\"https:\/\/drive.google.com\/file\/d\/1OkhXaa9QxOdokP8oBTTuN81w6FltjBwo\/view?usp=drive_link\">this link<\/a>.<br \/>\nThe file is composed of <strong>multiple components<\/strong>: The bottom shell, with support pillars to attach the various electrical components onto, the front plate, a individual screen plate and the buttons.<\/p>\n<p>I decided to print the <strong>front plate in one color<\/strong>, the <strong>bottom shell in another<\/strong> (to make the whole design look less &#8220;blocky&#8221; and <strong>the buttons and the screen plate in black PLA+<\/strong>. The reason for the screen plate is that I hated how small and square-ish the screen looks like, so the black plate gives the visual illusion that our console have a more &#8220;modern&#8221; screen format (scroll down the tutorial for pictures of the finished project).<\/p>\n<div id=\"attachment_2778\" style=\"width: 1034px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-2778\" data-attachment-id=\"2778\" data-permalink=\"http:\/\/luxregina.com\/portfolio\/building-a-handheld-console\/shell\/\" data-orig-file=\"https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/shell.png?fit=2845%2C1600\" data-orig-size=\"2845,1600\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"shell\" data-image-description=\"&lt;p&gt;The shell was designed to the exact dimension of the various electrical components, in order to get the smallest possible footprint.&lt;\/p&gt;\n\" data-medium-file=\"https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/shell.png?fit=300%2C169\" data-large-file=\"https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/shell.png?fit=1024%2C576\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-2778 size-large\" src=\"https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/shell.png?resize=1024%2C576\" alt=\"\" width=\"1024\" height=\"576\" srcset=\"https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/shell.png?resize=1024%2C576 1024w, https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/shell.png?resize=300%2C169 300w, https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/shell.png?resize=768%2C432 768w, https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/shell.png?resize=1536%2C864 1536w, https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/shell.png?resize=2048%2C1152 2048w, https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/shell.png?w=2360 2360w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" data-recalc-dims=\"1\" \/><p id=\"caption-attachment-2778\" class=\"wp-caption-text\">While they are not provided in the STL, I&#8217;ve modeled the various electronic components to their true specifications, to fit everything tightly and minimize the footprint of the console.<\/p><\/div>\n<h5>3D printing the shell<\/h5>\n<p>Here, the process will vary. I have an <a href=\"https:\/\/www.amazon.com\/dp\/B0FDQP54X8\">ELEGOO Centauri Carbon<\/a> 3D printer, so my splicer looks like this. Yours may look different.<br \/>\nJust <strong>make sure to flip the front plate 180 degrees<\/strong>, so that it&#8217;s face down on your heated bed. As I mentioned earlier, I personally chose to print some of the various elements in different colors, but you don&#8217;t have to \ud83d\ude42<img data-attachment-id=\"2780\" data-permalink=\"http:\/\/luxregina.com\/portfolio\/building-a-handheld-console\/3dprinting\/\" data-orig-file=\"https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/3Dprinting.png?fit=1912%2C1000\" data-orig-size=\"1912,1000\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"3Dprinting\" data-image-description=\"\" data-medium-file=\"https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/3Dprinting.png?fit=300%2C157\" data-large-file=\"https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/3Dprinting.png?fit=1024%2C536\" decoding=\"async\" loading=\"lazy\" class=\"aligncenter size-large wp-image-2780\" src=\"https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/3Dprinting.png?resize=1024%2C536\" alt=\"\" width=\"1024\" height=\"536\" srcset=\"https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/3Dprinting.png?resize=1024%2C536 1024w, https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/3Dprinting.png?resize=300%2C157 300w, https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/3Dprinting.png?resize=768%2C402 768w, https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/3Dprinting.png?resize=1536%2C803 1536w, https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/3Dprinting.png?w=1912 1912w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" data-recalc-dims=\"1\" \/><\/p>\n<div style=\"width: 640px;\" class=\"wp-video\"><!--[if lt IE 9]><script>document.createElement('video');<\/script><![endif]-->\n<video class=\"wp-video-shortcode\" id=\"video-2751-1\" width=\"640\" height=\"360\" loop=\"1\" autoplay=\"1\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"http:\/\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/ECC_0.4_consoleShell6_Elegoo-PLA-_0.2_2h46m-9662903.mp4?_=1\" \/><a href=\"http:\/\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/ECC_0.4_consoleShell6_Elegoo-PLA-_0.2_2h46m-9662903.mp4\">http:\/\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/ECC_0.4_consoleShell6_Elegoo-PLA-_0.2_2h46m-9662903.mp4<\/a><\/video><\/div>\n<p>For me, the total printing time is just south of 3 hours.<\/p>\n<h4>Assembling the console<\/h4>\n<p>At this point, we are almost done! All you have to do is carefully assemble everything together.<\/p>\n<p>Using the <strong>M2 screws<\/strong> you purchased, you will start by attaching the <strong>LiPo battery module<\/strong> to the pillars at the bottom of the shell. Then move on and <strong>secure the LED<\/strong> to its own pillars. You can then move to attaching the <strong>thumbstick<\/strong> and the <strong>buttons<\/strong> to their own pillars, like in the following picture:<\/p>\n<div id=\"attachment_2783\" style=\"width: 1034px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-2783\" data-attachment-id=\"2783\" data-permalink=\"http:\/\/luxregina.com\/portfolio\/building-a-handheld-console\/finalenclosure2\/\" data-orig-file=\"https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/finalEnclosure2.png?fit=1920%2C1080\" data-orig-size=\"1920,1080\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"finalEnclosure2\" data-image-description=\"\" data-medium-file=\"https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/finalEnclosure2.png?fit=300%2C169\" data-large-file=\"https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/finalEnclosure2.png?fit=1024%2C576\" decoding=\"async\" loading=\"lazy\" class=\"size-large wp-image-2783\" src=\"https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/finalEnclosure2.png?resize=1024%2C576\" alt=\"\" width=\"1024\" height=\"576\" srcset=\"https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/finalEnclosure2.png?resize=1024%2C576 1024w, https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/finalEnclosure2.png?resize=300%2C169 300w, https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/finalEnclosure2.png?resize=768%2C432 768w, https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/finalEnclosure2.png?resize=1536%2C864 1536w, https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/finalEnclosure2.png?w=1920 1920w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" data-recalc-dims=\"1\" \/><p id=\"caption-attachment-2783\" class=\"wp-caption-text\">Start with the elements at the bottom of the shell, and work your way up.<\/p><\/div>\n<p>One tricky part will be how to position the Pico RP2040: I&#8217;ve opened a slot on the bottom shell, so that you can open the console, and insert the USB cable in case you want to flash new games. You need to <strong>make sure that both the BOOTSEL button and the USB port are accessible<\/strong> through the bottom shell slot. What worked for me was to put the Pico <strong>sideways<\/strong>, like so:<\/p>\n<div id=\"attachment_2784\" style=\"width: 902px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-2784\" data-attachment-id=\"2784\" data-permalink=\"http:\/\/luxregina.com\/portfolio\/building-a-handheld-console\/assembly\/\" data-orig-file=\"https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/assembly.png?fit=892%2C705\" data-orig-size=\"892,705\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"assembly\" data-image-description=\"\" data-medium-file=\"https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/assembly.png?fit=300%2C237\" data-large-file=\"https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/assembly.png?fit=892%2C705\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-2784 size-full\" src=\"https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/assembly.png?resize=892%2C705\" alt=\"\" width=\"892\" height=\"705\" srcset=\"https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/assembly.png?w=892 892w, https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/assembly.png?resize=300%2C237 300w, https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/assembly.png?resize=768%2C607 768w\" sizes=\"(max-width: 892px) 100vw, 892px\" data-recalc-dims=\"1\" \/><p id=\"caption-attachment-2784\" class=\"wp-caption-text\">Both the USB port, and the BOOTSEL button are accessible though the bottom shell slot (sort of&#8230;)<\/p><\/div>\n<p>After that, you can finish by securing the screen. I originally planned to secure the speaker to the front plate, but since I know that I&#8217;m going to iterate on it, right now, I just tuck it on the side (see previous assembled picture)&#8230; I know, I&#8217;m a barbarian! \ud83d\ude42<\/p>\n<h4>Finished product<\/h4>\n<p>You are done! Close the shell, turn on the console, and enjoy<strong> your very own gaming on the go!<\/strong><\/p>\n<p>You can drop any game you made, by exporting them for the RP2040 on <strong>makeCode<\/strong>: put your RetroMate in Storage mode (BOOTSEL) and just drop your .uf2 file&#8230; Et Voila! \ud83d\ude42<\/p>\n<p>I will make a tutorial on <strong>how to make and upload MakeCode Arcade games<\/strong> next, so stay tuned! \ud83d\ude42<\/p>\n<div id=\"attachment_2785\" style=\"width: 1034px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-2785\" data-attachment-id=\"2785\" data-permalink=\"http:\/\/luxregina.com\/portfolio\/building-a-handheld-console\/final\/\" data-orig-file=\"https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/final.png?fit=2845%2C1600\" data-orig-size=\"2845,1600\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"final\" data-image-description=\"\" data-medium-file=\"https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/final.png?fit=300%2C169\" data-large-file=\"https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/final.png?fit=1024%2C576\" decoding=\"async\" loading=\"lazy\" class=\"size-large wp-image-2785\" src=\"https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/final.png?resize=1024%2C576\" alt=\"\" width=\"1024\" height=\"576\" srcset=\"https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/final.png?resize=1024%2C576 1024w, https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/final.png?resize=300%2C169 300w, https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/final.png?resize=768%2C432 768w, https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/final.png?resize=1536%2C864 1536w, https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/final.png?resize=2048%2C1152 2048w, https:\/\/i0.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/final.png?w=2360 2360w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" data-recalc-dims=\"1\" \/><p id=\"caption-attachment-2785\" class=\"wp-caption-text\">Your very own handheld console, playing your very own games: what&#8217;s better than that?<\/p><\/div>\n<h2><span style=\"color: #00ccff;\">POST-MORTEM<\/span><\/h2>\n<h4>What went right?<\/h4>\n<ul>\n<li>The console is functional, plays games, the controls work reasonably well (they won&#8217;t put to shame a proper GameBoy, of course)<\/li>\n<li>It looks pretty cool: it&#8217;s a bit blockier than I&#8217;d like, but without a PCB, it&#8217;s the smallest, thinnest I could get<\/li>\n<li>It&#8217;s easy to build, there&#8217;s a minimal amount of soldering, and I tried to provide a very precise wiring diagram, which is the essential part of this build<\/li>\n<li>The original Statement of Requirements is fulfilled, save for one point, which leads me to&#8230;<\/li>\n<\/ul>\n<h4>What went wrong?<\/h4>\n<ul>\n<li>While I could reasonably think the RP2040 was an upgrade against everything else on the market, I realized it wasn&#8217;t: it is less performant than the <span class=\"iNqyIf\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: Google Sans, Arial, sans-serif; font-size: 16px; font-weight: 500; margin: 0px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);\"><!--TgQPHd|||[]--><\/span><strong class=\"rQesXe MPyX\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: Google Sans, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);\"><span class=\"iNqyIf\" data-sfc-cp=\"\" data-sfc-root=\"ep\" data-complete=\"true\" data-copy-service-computed-style=\"font-family: Google Sans, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);\"><span data-copy-service-computed-style=\"font-family: Google Sans, Arial, sans-serif; font-size: 16px; font-weight: 700; margin: 0px; text-decoration: none; border-bottom: 0px rgb(0, 29, 53);\">Atmel SAMD51J19A<\/span><\/span><\/strong>, as I discovered when exploring Microsoft&#8217;s <a href=\"https:\/\/github.com\/microsoft\/pxt-arcade\/issues\/6398\">GitHub&#8217;s posts<\/a>. This means that large, ambitious games with a lot of sprites will trigger a significant FPS frop on the RetroMate. Oh well, this means a V2.0 of this tutorial with a better microcontroller is due in the future!<\/li>\n<li>The speaker is way, way too tiny. I&#8217;ve tried to add an Amp to it, but being a beginner in my electronics journey, I wasn&#8217;t able to figure out the correct wiring. I will be providing an update soon!<\/li>\n<\/ul>\n<h4>What did I learn?<\/h4>\n<ul>\n<li>I think I discovered a new hobby: I loved tinkering, figuring out solutions to my problems. I&#8217;m still very much limited by my inexperience, but I feel like this is the beginning of a new hobby!<br \/>\nI intend to keep building stuff adjacent to gaming, and bolster my knowledge of electronics. It is such a fun, rewarding activity when, at the end of it, you are holding in your hands the fruits of your work.<\/li>\n<li>3D printing is magical: how didn&#8217;t I acquired a printer sooner is beyond me! \ud83d\ude42<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<\/div>\n<\/div>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon sd-sharing\"><h3 class=\"sd-title\">Share this:<\/h3><div class=\"sd-content\"><ul><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-2751\" class=\"share-facebook sd-button share-icon no-text\" href=\"http:\/\/luxregina.com\/portfolio\/building-a-handheld-console\/?share=facebook\" target=\"_blank\" title=\"Click to share on Facebook\"><span><\/span><span class=\"sharing-screen-reader-text\">Click to share on Facebook (Opens in new window)<\/span><\/a><\/li><li class=\"share-linkedin\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-linkedin-2751\" class=\"share-linkedin sd-button share-icon no-text\" href=\"http:\/\/luxregina.com\/portfolio\/building-a-handheld-console\/?share=linkedin\" target=\"_blank\" title=\"Click to share on LinkedIn\"><span><\/span><span class=\"sharing-screen-reader-text\">Click to share on LinkedIn (Opens in new window)<\/span><\/a><\/li><li class=\"share-print\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-print sd-button share-icon no-text\" href=\"http:\/\/luxregina.com\/portfolio\/building-a-handheld-console\/\" target=\"_blank\" title=\"Click to print\"><span><\/span><span class=\"sharing-screen-reader-text\">Click to print (Opens in new window)<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Garage collective | Building a handheld console Client: Garage Collective Published: Physical project Role: Designer and Maker Context I love making games! My main job is to teach how to make games, and my main hobby is to make them, at Garage Collective. Needless to say that a majority of my time awake, I&#8217;m thinking [&hellip;]<\/p>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon sd-sharing\"><h3 class=\"sd-title\">Share this:<\/h3><div class=\"sd-content\"><ul><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-2751\" class=\"share-facebook sd-button share-icon no-text\" href=\"http:\/\/luxregina.com\/portfolio\/building-a-handheld-console\/?share=facebook\" target=\"_blank\" title=\"Click to share on Facebook\"><span><\/span><span class=\"sharing-screen-reader-text\">Click to share on Facebook (Opens in new window)<\/span><\/a><\/li><li class=\"share-linkedin\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-linkedin-2751\" class=\"share-linkedin sd-button share-icon no-text\" href=\"http:\/\/luxregina.com\/portfolio\/building-a-handheld-console\/?share=linkedin\" target=\"_blank\" title=\"Click to share on LinkedIn\"><span><\/span><span class=\"sharing-screen-reader-text\">Click to share on LinkedIn (Opens in new window)<\/span><\/a><\/li><li class=\"share-print\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-print sd-button share-icon no-text\" href=\"http:\/\/luxregina.com\/portfolio\/building-a-handheld-console\/\" target=\"_blank\" title=\"Click to print\"><span><\/span><span class=\"sharing-screen-reader-text\">Click to print (Opens in new window)<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div>","protected":false},"author":1,"featured_media":2810,"comment_status":"closed","ping_status":"open","sticky":true,"template":"","format":"standard","meta":{"sharing_disabled":false,"switch_like_status":false,"spay_email":"","jetpack_publicize_message":""},"categories":[36,28,3,12,35],"tags":[],"jetpack_featured_media_url":"https:\/\/i1.wp.com\/luxregina.com\/portfolio\/wp-content\/uploads\/2026\/08\/customHandheld.png?fit=960%2C960","jetpack_publicize_connections":[],"jetpack_shortlink":"https:\/\/wp.me\/p5xnSl-In","jetpack-related-posts":[],"_links":{"self":[{"href":"http:\/\/luxregina.com\/portfolio\/wp-json\/wp\/v2\/posts\/2751"}],"collection":[{"href":"http:\/\/luxregina.com\/portfolio\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/luxregina.com\/portfolio\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/luxregina.com\/portfolio\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/luxregina.com\/portfolio\/wp-json\/wp\/v2\/comments?post=2751"}],"version-history":[{"count":44,"href":"http:\/\/luxregina.com\/portfolio\/wp-json\/wp\/v2\/posts\/2751\/revisions"}],"predecessor-version":[{"id":2813,"href":"http:\/\/luxregina.com\/portfolio\/wp-json\/wp\/v2\/posts\/2751\/revisions\/2813"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/luxregina.com\/portfolio\/wp-json\/wp\/v2\/media\/2810"}],"wp:attachment":[{"href":"http:\/\/luxregina.com\/portfolio\/wp-json\/wp\/v2\/media?parent=2751"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/luxregina.com\/portfolio\/wp-json\/wp\/v2\/categories?post=2751"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/luxregina.com\/portfolio\/wp-json\/wp\/v2\/tags?post=2751"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}