CrokPocket is the second in my series of handheld gaming devices that share a similar form factor. It's powered by an ESP32-S3 and runs Retro-Go firmware. This emulation software package supports NES, Game Boy, GBC, Master System, Game Gear, Doom, and other games. SNES and Genesis are also supported, but performance is poor. More information on Retro-Go can be found on its GitHub repository
This is a hobbyist DIY retro gaming handheld and does not compete with the hundreds of retro gaming handhelds flooding out of China. CrokPocket has similar performance to the iconic ESP32-based Odroid Go.
As with PicoPocket, review the bill of materials and instructions before diving in. There are a few "I'm not sure I can do this" micro-soldering moments (e.g. the 16-pin USB port). You will need a hot plate and advanced skills. I made it for myself, but if the project looks manageable and you fancy a go - crack on.
Licensing: My PCB files and STLs are released under The Unlicense (see terms). Everything else retains the licenses assigned by their creators. I take no responsibility for anything.
SuppliesThe image above shows most parts. The list is extensive. I sourced everything (except the case and PCB) from AliExpress and LCSC Electronics.
The cases on the left were resin-printed by a Chinese manufacturer but can be printed on any 3D printer. Case printing instructions mirror those of PicoPocket.
Step 1: SolderingI did a build video which shows the soldering order I took.
I started with the hotplate components first, which for me was the ESP32, the AMP (NS4168), the TP4056 and the USB C port. I find it easier to hand solder, so I just do the minimum with the hotplate.
On the back (pictured above) the only really tricky parts are the 16 pin USB C port, and the package at Q1. This Q1 component (UMH3N - a six-legged dual transistor) lacks an orientation dot. There is one on the PCB, and you must have the letter "H" nearest the dot. It goes without saying, you can't do any of this without magnification of some sort.
My recommendation is to complete the back completely, and then move to the front. Applying too much heat to the on/off switch or headphone jack will render them useless. Also getting too much isopropanol in any of the buttons will make them unreliable or stop working completely!
The front is straightforward. I soldered the screen ribbon cable last. The LCDs I used were Orange, Green and Red (from top to bottom). Cathode is on the left. Usually it's marked with a bit of green on the upper side of an SMD LCD.
As stated before, getting isopropanol in any of the buttons will make them unreliable or non-functional.
Not much to say about the screen ribbon cable. Get it bang in the middle. In the picture above it's a little off, but I re-soldered it. I tin the pads first, but you do you.
Before soldering the speaker, it needs to be glued in place. I went for a clear back on this version, so I hot glued it at the front.
When attaching the battery, make sure the polarity is correct ! Some batches of batteries will have the red (positive) and black (negative) wires swapped around. I also shortened my wires quite a lot to give the exposed back a cleaner finish. A bit of double-sided tape was used to fix the 600mAh 602550 battery.
Step 2: Screen AlignmentMy method of screen alignment uses two 3d printed parts. Some might consider this odd, but it works for me. It also raises the screen about 3mm which is needed for the case design. The two pegs of the small "end stop" go into the larger piece. There are two holes in the PCB which the pegs legs also fit into. Once you are happy this all fits, I would use some thin double sided to attach it to the PCB.
Another small blob of double sided tape is applied as seen in image 3. The screen is then carefully pushed into place. For me this gave a perfectly aligned screen, but perhaps other people will have to make some very small adjustments?
If all else fails, you can just manually align and raise the screen with 2 or 3 strips of 1mm sponge foam double-sided tape. There is plenty of slack in the ribbon cable.
Step 3: The CaseThe above picture is the case for the PicoPocket. Exactly the same method can be used on CrokPocket. Colours used for the buttons were black, grey, yellow, orange red & brown PLA from Eryone. The case was printed on a Bambu Lab A1 mini 3D Printer.
The Base
The base is printed in what you might describe as the "correct" way. I used a wide wide 8mm brim to stop corner lift. The other setting changes are :
- System preset = 0.16mm Optimal
- Brim enabled - Outer brim only 10mm
- Supports enabled - Snug
- Bottom surface pattern Hilbert Curve
- Seam position = Back
You could also slow down the bottom layer print speed for a better finish. After printing the base, it's bottom curves can be sanded to a smooth finish using grits from 240 to 1500.
The Top
This is printed in the "wrong way"... why? Just accept it and move on. Mostly default setting, with the following changes:
- System preset = 0.16mm Optimal
- Brim enabled - Outer brim only 10mm
- Supports enabled - Default
- TOP surface pattern Hilbert Curve
You could also slow down the top layer print speed for a better finish. After printing the top, carefully remove the supports and brim. This takes a while to do well, as does the sanding of the base.
The Buttons and Thumbs stick
System preset 0.16mm Optimal, again with brims (8mm) and then sanded with grits from 240 to 1500. If you want it to feel like it was injection moulded, you have to put the work in.
Case Design Links
The design is available on TinkerCad and as STL files at the bottom of this post.
Step 4: Speaker InsertI just printed the the speaker grill insert in solid grey PLA and then sprayed it with Chrome paint. Brush on Chrome paint would also work. After drying, I glued it into the case front.
Step 5: Light PipesThis is again a picture of PicoPocket, but the same applies for CrokPocket. I glued light pipes for the LED's using 1.3mm clear lawn trimmer line. On the resin printed front (pictured top and bottom of this post), I actually used 1.75mm clear Petg since the holes had less shrink.
Step 6: Silicone SheetI used some 0.5mm silicone sheet to dampen the button's clickiness. This doesn't have to be that accurate. Just cut some sheet as shown in the picture. Without it, the buttons are going to have too much rattle and the wrong height. You could adjust them in CAD Software if you want to skip the silicone for some reason.
Step 7: Screws4 x M2 x 16mm Flat Head Hex Socket Screws. If you do a home printed PLA case, these will go in perfect. If you get a resin printed case like I did, there is less hole shrink (or none probably) so you may have to get "fatter" screws, or glue them in.
Step 8: SoftwareFirst upload the custom Retro-Go img file to CrokPocket.. This can be done by first downloading Esptool and unzipping it on your Desktop. I used esptool-v4.8.1-win64.zip. Place the retro-go_1.44_crokpocket.img file (available from Github) in the same Esptool directory. Open a CMD (command prompt) instance in the directory.
Type in, or cut and paste the following command :
esptool -b 921600 write_flash --flash_size detect 0x0 retro-go_1.44_crokpocket.img
Make sure the CrokPocket is connect to the PC via a USB data cable. Make sure the CrokPocket is ON (and a battery is attached). Press ENTER and watch as your electronic brick is magically transformed in to a retro gaming handheld.
After this you will need to prepare a micro SD card. Copy the contents of the CrokPocket.SD.zip to your micro SD card. You need to find some game ROM's from somewhere. Add game ROMs to their respective roms/
subfolder
ConclusionCrokPocket is based on a schematic by Ohdarling (Chinese website). I feel enough changes and improvements were made to the design to call it unique. It's actually taken 6 revisions to get to a final. That's not to say it's perfect, but I'm happy with the result.
Run time on a full charge is about 4 hours. An orange low battery warning light will start flashing very shortly before the 3V battery cut off.
The version of Retro-Go running on CrokPocket was compiled by DynaMight1124 who has his own projects on Hackster.io, Thingiverse and other sites. He is also working on some of his own Retro-Go handhelds due out this year (2025).
A lot of people have made similar ESP32 devices both commercial and hobbyist starting with the arguably iconic Odroid Go in 2018. I've always wanted to make one, and this project is also part of a personal quest to create a themed range of handhelds. Many thanks to Ohdarling, Dynamight, and Ducalex over at Retro-Go
Comments