CrokPocket

by Megazoids Hut in Circuits > Electronics

325 Views, 8 Favorites, 0 Comments

CrokPocket

crok5.png

CrokPocket



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... go for it.

Licensing: My PCB files and STLs are released under The Unlicense. Everything else retains the licenses assigned by their creators. I take no responsibility for anything.



Supplies

stuff1.png


1 x 2 inch TFT LCD Display - 240x320 - ST7789 AliExpress

1 x 602550 Polymer Lithium Battery AliExpress

1 x ESP32-S3 N16R8 AliExpress

1 x Ghxamp Mini Speaker 8Ohm 1W - 34.8mm*11.2mm*6.0mm AliExpress

10 x Buttons - hanxia HX TS5220A 160gf LCSC

1 x Slide Switch - Shenzhen Kinghelm Elec KH-SS12F23-G6 LCSC

1 x 3.5mm Stereo Audio Jack Socket AliExpress

1 x G-Switch Card Slot MicroSD - GT-TF003-H0185-01 LCSC

1 x MOLEX PicoBlade(MX 1.25) - Mfr. Part #532610271 LCSC

1 x Female USB Connector 16pin LCSC

1 x TP4056 LCSC

1 x NS4168 LCSC

1 x CH340C LCSC

1 x 700mA Voltage Regulator - XC6210B332MR-G LCSC

1 x Transistor package - UMH3N LCSC

1 x NPN Transistor - S8050 (J3Y) LCSC

2 x Buttons - GT-TC029B-H025-L1N LCSC

3 x 0603 LEDs 3 Colours AliExpress

2 x Schottky Diode LCSC

5 x 0805 Capacitors 10uF LCSC

5 x 0603 Capacitors 100nF LCSC

1 x 0603 Capacitor 1uF LCSC

20 x 0603 SMD Resistors (See Schematic & PCB) AliExpress

4 x M2 x 16mm Flat Head Hex Socket Screws Amazon

1 x Silicone Rubber Sheet Thickness 0.5 AliExpress

1 x Clear Grass Trimmer Line Amazon

1 x Micro SD card 32gb Amazon


Hand Tools & Equipment


Soldering iron + Solder Wire 40/60 + Solder Flux + Isopropyl

A Hot Plate and 3d printer

Watch Makers Loupe or other Magnification

Kapton tape + Hot Glue + Sand Paper + Double Sided Tape


Design files like the STL's, gerbers, schematic, etc. can be found on the GitHub Page for this project

The custom PCB can be ordered from a PCB fabrication manufacturer Like JLBPCB : Gerber File Zip (Use default PCB board settings. 1.6mm thickness etc. Just upload the gerber zip and order)



Soldering

IMG_PCB1.png

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!


Soldering 2

IMG_PCB2.png
IMG_PCB3.png
img_20250612_162229870_hdr_UnpJ92pvrq_jpg.png

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.


Screen Alignment

untitled2_IHurJ3VLss_png.png
3_EZ7V0kGuYj_png.jpg

My 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.


The Case

IMG_20241024_195301524.jpg
IMG_20241024_195347232.jpg
IMG_20241024_200005470.jpg

The 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 :

  1. System preset = 0.16mm Optimal
  2. Brim enabled - Outer brim only 10mm
  3. Supports enabled - Snug
  4. Bottom surface pattern Hilbert Curve
  5. 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:

  1. System preset = 0.16mm Optimal
  2. Brim enabled - Outer brim only 10mm
  3. Supports enabled - Default
  4. 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 are on GitHub


Speaker Insert

img_20250612_141938407_hdr_V55hL9XJL1_jpg.jpg

I 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.


Light Pipes

img_20241024_201001120_3gSblvH8DH_jpg.png

This 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.


Silicone Sheet

ddd3_jJY58GAY7t_jpg.png

I 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.


Screws

img_20241024_201942418_hdr_8Zd7uVzhJ2_jpg.png

4 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.


Software

untitled-5_IDIxO9D3aa_png.png

First 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




Concusion

CrokPocket 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 Instructables.

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