• Stars
    star
    1,834
  • Rank 24,421 (Top 0.5 %)
  • Language
  • License
    MIT License
  • Created over 2 years ago
  • Updated 11 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Penkesu Computer - A Homebrew Retro-style Handheld PC

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.

More Repositories

1

MainboardTerminal

A Retro-style Computer with a Modern Core
768
star
2

ruha.camera

3D Printable Retro-style Raspberry Pi HQ Camera
467
star
3

terrarium-app

UI Prototyping Tool for Coders
QML
291
star
4

rasti.computer

a retro-futuristic laptop
174
star
5

qml-livereload

Simple QtQuick app live viewer
C++
166
star
6

SlateKit

Open Source Tablet UX Building Kit
JavaScript
122
star
7

mkxpud

Image Generator for xPUD project
JavaScript
103
star
8

qml-handwriting

Open source handwriting recognition keyboard written in QML/JavaScript
JavaScript
82
star
9

rasti64

64-key low-profile staggered mechanical keyboard
C
35
star
10

minimal-webbrowser-adblock

A Minimal Web Browser with Built-in Adblocker in Less Than 100 Lines of Code
C++
25
star
11

mini-P4-Cube

Mini P4 Cube - a Raspberry Pi 4 computer in a 4" Cube
24
star
12

UbunTuTu

ADB for Human Beings
QML
16
star
13

MeeTo

tablet UX for MeeGo
Shell
15
star
14

oxide-eglfs-snap

Hardware accelerated WebView for Ubuntu Core, without display server
Shell
13
star
15

Haori36

36-key monoblock split ortho keyboard
C
12
star
16

OkudagramsJS

JavaScript
10
star
17

qml-chewing

The Chewing engine for Qt/QML virtual keyboard
C++
8
star
18

hackathonBoard

Social media wall and countdown board
JavaScript
6
star
19

tensorflow-demo-snap

QML version of TensorFlow's Image Recognition demo.
Shell
6
star
20

qml-curatorim

QML client for curator.im
C++
4
star
21

CoreBook

World's first Ubuntu Core tablet
HTML
4
star
22

TravelStickUke

3D printable soprano ukulele
4
star
23

Kakuhomaru-bridge

The Kakuhomaru Bridge is a piezoelectric pickup for electric violins.
3
star
24

web-obex

web-based UI of obexftp to download and play music from mobile phone
JavaScript
3
star
25

PerryTheInactionFigure

3
star
26

MaterialWeather

Simple Weather app using OpenWeatherMap API
Java
1
star
27

ants.fm

Ant farm simulator
1
star
28

try_git

1
star