Hacker News new | ask | show | jobs
by omrawaley 1 day ago
This is a project I've been working on for over a year and a half now.

It's an open-source modular pocket device based on the ESP32-S3. The entire bottom half can be swapped out with different modules like a gamepad, a Blackberry-style keyboard, and even DIY modules.

I wanted to build a device that would allow me to do things like play games, listen to music, and take notes without getting distracted by my phone. It's more like a PDA than a smartphone though.

It can be customized in many different ways and aligns with right-to-repair, DIY, and hacking.

Some of the stuff it can run are:

- Retro emulation (up to SNES and Genesis)

- Various game ports (Quake, Duke Nukem 3D, etc)

- Celeste (PICO-8 port)

- MP3 player app (it has a stereo headphone jack)

- Custom indie games (made using the C library, supporting various graphics backends)

- Text editor/note taking app that can sync to your computer

There's some cool stuff like an App Store that allows you to download programs via Wi-Fi! Plus the "OS" is inspired by the 3DS!

There are even more things I want to get it running in the future, like an SSH client so it can be used for portable admin stuff. The keyboard module will unlock a ton of possibilities.

It's 90% done, currently focusing on finishing the keyboard module and finalizing the shell. Software is still WIP (will be released at V1.0.0), and schematics will be released after I build first batch of DevKits.

Let me know what you think!

1 comments

It looks really cool, except the case looks like it puts mechanical force on the connectors, which aren't exactly known for reliability.

Having a tie bar with a screw into each half, or even just some bosses to prevent lateral movement would be nice.

The C instead of C++ or Rust SDK would be a major negative point for me, but I'm sure the more hacker minded people will love it!

Thanks for the feedback!

I might look into using pogo pins instead for the connector. That eliminates the pressure, but then requires a separate mechanical force to keep the parts in place.

Besides the header/pins, there are also currently magnets.

I went with C for the SDK because I wanted maximum compatibility/portability.

You can still use C++ (I tested it, works 100% fine), and I'm currently exploring Rust bindings! https://docs.pocketbyte.co/rust

Also check out spring pins for battery contacts. They tend to be cheaper and more robust. Here's the general category page, in Digi-Key: https://www.digikey.com/en/products/filter/rectangular-conne...
Oh I think I've seen these on a couple Chinese handhelds.

Currently the device uses a JST connector, but I'll definitely take a look at this.

Thanks!

I meant instead of the pogo pins, but if you do have a custom shell, then it is also a more convenient way to connect the battery, too.