GithubHelp home page GithubHelp logo

penkesu's Introduction

Penkesu Computer - A Homebrew Retro-style Handheld PC

The Penkēsu (Japanese: ペンケース) is a retro-style handheld device powered by a Raspberry Pi Zero 2 W, a 7.9 inch widescreen display (1280 x 400 resolution), and a 48-key ortholinear mechanical keyboard.

The Design

The enclosure of the Penkesu Computer is designed around the display and keyboard to ensure (relatively) compact physical dimensions.

Repurposed Gameboy Advance SP hinges and a ribbon cable for HDMI are used to keep the hinge design thin, yet they hold the weight of the display so that it won't tip over.

Electronics are intentionally kept minimal (3 internal components) and most of the parts are either 3D printable or available as off-the-shelf products.

See also: the keyboard sound test video.

Open Source Hardware

Ever since the CutiePi tablet was successfully funded and started shipping, I felt the need to work on a new project; something that I didn't need to worry too much about (ie: commercial viability), and to remind myself why I started tinkering. A "rebound" project, so to speak.

And since there are no immediate plans on selling kits or making the Penkesu Computer mass producible, I wanted to publish all the designs and plans so there's enough information for anyone interested in making one.

Bill of Materials

Links are not affiliate links, and only provided as references.

Notes on the Keyboard

About the keyboard:

  • The keyboard is called Koda, which is originally designed by larrbo and released under Creative Commons BY-NC-SA 4.0 License. I've tweaked the layout so that it better fits my needs and looks closer to the Planck. More on this below.
  • If one wishes to use a different 40% keyboard for the build, it can be done by editing the STEP file and adjusting the compartment size in the chassis.
  • A thin metal sheet was glued to the base as the counterweight, your mileage may vary depending on how you like the weight distribution

For the keycaps:

Keyboard Layout:

image

The lower key activates a layer that primarily has number keys from ` to 1 - 0 across the top row (excluding the top right key, which is the backspace key in all layers). The raise key activates a layer that has the shifted version of all of the numeral keys from the lower layer. As well as function keys using the tab,a,s,d,f,g and shift,z,x,c,v,b keys for F1-F6 and F7-F12 accordingly. Pushing func key down and holding it activates a mouse layer. The mouse layer uses an accelerated mode but allows one to temporarily activate the constant mode using an additional key. As you might have guessed, when using the accelerated mode the speed of the cursor is initially slow but over time increases in speed. This mode is active as soon as mouse mode is entered. (by holding down the func key) Your w,a,s,d keys are you cursor movement keys. Your left, right, and middle mouse buttons are j,k, and l respectively. Your scroll wheel uses the t,f,g,h keys. Finally mouse cursor speed can be toggled by tapping or by holding. If tapped the keys change the speed of acceleration. If the keys are held they will activate constant mode at the equivalent mousing speed. There are 3 overall speeds: 0, 1, and 2, with 0 being the slowest and most precise, and 2 being the fasted and most inaccurate. You access speed 0 using the v key. Speed 1 using the b key. And the fastest speed (2) using the n key.

The Assembly

  1. Glue the two hinges to the chassis (my 3D printer is not accurate enough to print a functional hinge lock, so I simply glued them with 5 minute epoxy.) You want to make sure that the hinge is able to still turn after the epoxy has set.

  1. Add heat-set threaded inserts (M2x6mm) to the 4 corners of screen bezel, and 2 to the hinge cover. You may also use heat insert at the front corners of the keyboard tray. Just note that placing these inserts are very difficult, and not entirely necessary. For ease of access you may wish to not use them at all.

  2. Wrap the ribbon cable twice and pull it out through the hinge cover. If you use a toothpick, it might make it easier to ensure you do this cleanly through the display cover.

  1. Wiring:

    Component Pin
    battery positive PowerBoost Bat pin
    battery negative PowerBoost GND pin
    switch 1 pin PowerBoost GND pin
    switch 2 pin PowerBoost EN pin
    PowerBoost 5V OUT display and Pi Zero's VCC
    PowerBoost GND display and Pi Zero's GND

  2. Connect the keyboard's micro USB and the display cable into the mini HDMI port of the Pi Zero 2 W; inset the micro SD card into the Pi Zero 2 W.

  3. Fasten all components with M2x6mm screws.

If you made it this far, you are welcome to check out my other project, the CutiePi tablet, which is also 100% open source hardware! :-)

Copyright and License

Copyright (c) 2022 Penk Chen. All rights reserved.

All files are licensed under MIT license, see the LICENSE for more information.

penkesu's People

Contributors

2disbetter avatar penk avatar skelemortal avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

penkesu's Issues

Os

You got slash dotted !

https://www.tomshardware.com/news/raspberry-pi-zero-2-w-penkesu-computer

Have you decided on an OS ?

gokrazy might be a good fit for super low resource device . I run it

https://github.com/gokrazy

for apps you can use Fyne or gioui

https://github.com/fyne-io/fyne

https://github.com/gioui

I use gio cause it’s gives the most flexibility. It would not be hard to get it running with gio and the community would probably help you ! They are pro open source .

This makes it very lean and easy for you and others to build apps for it .

Support Radxa Zero

Raspberry Pi Zero 2 W ram is only 512MB, which is not enough for desktop usage. Could you support Radxa Zero 4GB ram model?

Touch Display usable?

Dear Penk, my Penkesu is now almost finished! Thanks for the work, and most for sharing it! Just a question; As far as the used display is a touch display, is there any argument against using it that way? There is still an usb Port on the RasPi available...
UUps sorry, there aint! One is for Power, one for Keyboard. But what if I connect power via GPIO Pins? Or use a HAT with more USB Ports?

Re: PCB for Keyboard

This project is really cool, props!

I was wondering if you could flush out the README with more info as to how to order a version of the keyboard PCB? I've never tried ordering PCBs before and had no luck trying to find a fiscal way of getting it done. The only websites I could find to print custom PCBs wanted ~$60 to print 1x piece, so I was hoping maybe you had some good info on cheaper/decent pricing for ordering?

If there's a better place for this just let me know!

Keyboard Install

Dear Penk, for your Keyboard Hex File-what Keyboard software installation did you use in Bullseye? I am from germany, tried the Keyboard on my windows Computer (works), but the keys have different values then.

Function keys?

Am I missing some obvious QMK magic? Or are there no bindings for F1...F12? I could send a patch for the layout, but dunno if I just missed the key combination to get a function keys

Need help to rotate the screen

Hi Penk,

I've hooked up everything minus the keyboard (still waiting for PCB). However, for testing purpose, I hook up regular keyboard to Pi Zero's USB port. So everything works nicely except the default Waveshare screen is vertical. I edit the config.txt file as per Waveshare's Wiki page but it is not working :-(

Please let me know how to get the screen to rotate. Thanks!!!

Chocfox keycaps viability and stabilizers

Hi Penk! I came across the ChocFox CFX BoW keycaps and was wondering if these would be viable in the Penkesu. They're 16.5 mm square whereas the MBKs are 17.5mm (horizontal) x 16.5mm (vertical). I don't want to ruin the aesthetic with big gaps, so I'm hoping the extra .5 mm wouldn't be atrocious?

Also, they weren't listed in your list of materials so I'm assuming you didn't use them, but I was wondering if you do or don't recommend adding stabilizers.

TIA! This is my first ever build, probably a little ambitious, but it's something I'm really excited to make!

More details for assembling PCB - diode and chip orientation, location?

Hi Penk,

Excellent project, I am in the process of assembling one. As I have not assemble a mechanical keyboard before, I wonder if you could provide more details on making the PCB. I am assuming the diode and the Pro Micro goes on the bottom side of PCB where as the key switch goes on the top side. Where does the diode goes exactly? And when soldering the Pro Micro, what’s the orientation? Would you provide a simple illustration or diagram? Thanks in advance.

Wallpapers

Looks like you're using matrix live wallpaper.
How can I set the same?

design enclosure

  1. Please look at old Psion 5 keyboard and hiding it under screen.

  2. In my opinion second idea are waterproof box enclosure similar normal army box.

  3. is possible add some keys near screen? turn off wifi, decrease speed cpu, speed memory etc.

meybe add solar panel on top for increase working time?

Where are the - and + key?

Hi,

I have used your key map and I can't find the - and + key. I've searched the "raise" layer or the "lower" layer. Please advises. Thanks.

Original design files?

Probably too much to ask, but Im using this as a basis for a larger design for a 10.1" DSI display and a PI5. Ive been slicing and dicing the STL files in tinkercad, trying to keep all dimensions the same (hinges/bezels etc), and only inserting space along the xy axis by cutting and then extruding a center part. It's working well enough. But If the original files were available in fusion, freecad or whatever was used that would make it easier. The STEP files possibly could be used and look great, but I think it would be easier to adjust the constraints only in the places I need. Probably what I have would work fine if not. Just thought it might be worth asking.

Thanks again for a great project!.

Bryan

Keyboard connection

Hi, I would appreciate a little more detail about the hardware configuration of the keyboard. How do I attach the Arduino Mini to the Keyboard (Pin Numbers)? I suppose the USB Port has to be to the outside of the PCB, but in which direction? USB side to the PCB or away from it? A picture would do...also the connection of the 4-pin usb connector would be helpfull (PINS?)
Tks is advance?

Which Arduino Pro Micro did you use?

May seem like kind of an odd question.. but which specific pro micro did you go with? I'm familiar with the pro micro (RP2040 I think..) sold by SparkFun, but they've been out of stock and backordered for a while.

Booting directly to cool-retro-term console

Hello.
-1st. I must thank you for your project and the inspiration provided, I was looking for a portable terminal and this is the perfect size.
-2nd. I successfully completed my Penkesu! It works perfectly, albeit with some modifications (using instead a 30% gherkin keyboard) and a custom made LEGO case, it is beautiful!
-3rd. Here's my question. How can I boot directly into cool-retro-terminal (the terminal emulator you use with your Main Board Terminal project)? I know this is a software issue, but I figured you would know as you referr to it in your other project. Hardware-wise, the Raspberry Pi Zero 2W I'm using does run cool-retro-term at a decent speed when you adjust the performance from within the program, my issue is that I'd like to run it as closest to "bare metal" as possible, with the minimum requirements, and directly as possible. I managed to boot to cool-retro-term but only after the Raspbian desktop environment loads (it takes a while and the transition is ugly). Unfortunately cool-retro-term seems to need some kind of Window Manager, so It cannot boot directly from the terminal before the desktop environment starts. I tried loading have spent a lot of time trying to figure it out, whitout getting good results. What do you suggest?

External USB and/or UART ports

Any thought to bringing out UART (maybe from an FTDI?) or USB hub to allow for external USB connections as well? I imagine this could be a very handy micro computer to carry around to be able to flash/reprogram/debug IoT/micro stuffs.

Something like this USB + Ethernet could be quite handy to have. Pull the case off and mount it bare PCB internally. Or perhaps this one is better, since it could go in a corner and provide 2 external USB, and 2 internal USB while still giving USB3.0 speeds.

Or actually this adafruit board is interesting, and it uses pogo-pins to 'takeover' the USB header output. At least of the Zero/Zero W, not sure on the Zero 2 W.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.