Skip to content
cobanovPublic

About

Printable pocket cyberdeck for an iPhone 12 mini and a mini Bluetooth keyboard: hinged clamshell or one-piece slate, MagSafe phone pocket, parametric FreeCAD scripts

Topics

Resources

Stars

10 stars

Watchers

1 watching

Forks

Repository files navigation

Cyberdeck

A pocket deck you can print: an iPhone 12 mini and a Torima M7 mini Bluetooth keyboard in a 3D-printed shell, in two builds.

  • Clamshell. The keyboard sits in the base, the phone in a lid that stays open at 112°. 138 × 81 × 24.5 mm closed.
  • Slate. One flat piece, phone above the keyboard. 138 × 140.5 × 13.4 mm.

In both, the phone drops into an open pocket, and its own MagSafe magnets hold it to a steel ring sticker. There is nothing over the screen and no latch to break.

The earlier slide-in versions, where the phone slides into a frame and needs no ring sticker, are in stl/slide-in/. They come from commit b10fc7d, whose scripts build them; their last revisions haven't been printed.

Turn the models in your browser and download them at cyberdeck.cobanov.dev.

The clamshell, open on an oak desk, with a terminal on the phone The slate on an oak desk, the phone above the keyboard

What you need

  • An iPhone 12 mini
  • A Torima M7 mini Bluetooth keyboard (133 × 68 × 9.5 mm)
  • A MagSafe steel ring sticker, about 56 mm across
  • For the clamshell, 2 × M3×20 socket head screws as hinge pins

Print

These times and weights are for a Creality K1 in PLA: 0.2 mm layers, 3 walls, 20 % gyroid, no brim or skirt. ./slice_k1.sh slices every part with the profiles in profiles/.

File Part How Time PLA
stl/slate.stl Slate Back down, no supports 1 h 32 min 53 g
stl/base.stl Clamshell base Floor down, no supports 57 min 32 g
stl/lid.stl Clamshell lid Back down, supports under the two hinge knuckles 1 h 4 min 35 g
stl/slide-in/lid.stl Slide-in clamshell lid, no ring sticker (the earlier design, with the same base) Plate down, tree supports under the knuckles 1 h 22 min 37 g
stl/slide-in/slate.stl Slide-in slate, no ring sticker (the earlier design) Back down, tree supports from the bed; cut the skins out of the screen and camera windows 2 h 2 min 55 g
stl/fit_keyboard.stl A slice of the keyboard pocket, to try the fit Flat 7 min 3 g
stl/radius_gauge*.stl A corner radius gauge and its case, for another phone or keyboard Flat 1 h 3 min 28 g

Assemble

  1. Stick the ring sticker into the round recess in the phone pocket.
  2. Press the keyboard in, keys up. Friction holds it. To charge it, push it out through the window in the back.
  3. Drop the phone in screen out, camera on the left. To take it out, push it up through the window in the back.
  4. Clamshell only: close the lid on the base so each lid knuckle sits between two base knuckles. Drive an M3×20 in from each side; the screws are the hinge pins, and tightening them adds friction.

Change it

Every measurement is a named parameter. The shared ones are in deck.py: the keyboard, the phone, the fits and the MagSafe pocket. cyberdeck.py and slate.py build the two shells and assert that everything fits: both pockets hold their part, the phone lifts straight out, the lid swings clear and stays open on its own. radius_gauge.py builds the gauge.

freecadcmd slate.py        # or cyberdeck.py, radius_gauge.py

Each script rebuilds its .FCStd, STLs and render meshes. In FreeCAD's Python console, use p = "<repo>/slate.py"; exec(open(p).read(), {"__file__": p}). You'll most likely change these:

  • RING_D, your ring sticker's diameter. MAG_DX and MAG_DY move the ring off the phone's centre; leave them at 0 for the iPhone 12 mini, whose MagSafe sits at the centre on Apple's dimensional drawing.
  • CORNER_R, the corner radius shared by the phone and keyboard. Print the radius gauge and find the tile whose arc touches all along.

Renders and site

render/scene.py renders the decks on an oak desk in Blender 5.2 (Cycles). The HDRI and wood in render/assets/ are CC0 from Poly Haven.

blender -b -P render/scene.py -- --render [--slate] [--color=mint|white|black] [shot ...]

site/ holds cyberdeck.cobanov.dev, a static page with a three.js viewer. site/deploy.sh publishes it with the models from the last commit.

Status

The first clamshell and five slates printed in October and November 2026; the git log has what each one taught. The MagSafe slate printed on 1 November and fit well. Since then the side-key slot has moved to the button's place on Apple's dimensional drawing, the phone's clearance is 0.25 mm, and the slate's bed edge has a 1 mm chamfer so its camera corner doesn't lift. Those changes and the MagSafe lid haven't been printed yet. Nothing holds the clamshell's lid closed, and the keyboard has to come out of the slate to charge.

The phone runs DeckTerm, a landscape SSH terminal made for this deck.

License

The scripts, slicer profiles and site code are under the MIT License. The STL and FreeCAD models and the images are under CC BY 4.0: you can print, change, share and sell them if you credit Mert Cobanov and link to this repository. This covers the design files, not the iPhone or the Torima keyboard they fit. The site's JetBrains Mono font keeps its own OFL license.

About

Printable pocket cyberdeck for an iPhone 12 mini and a mini Bluetooth keyboard: hinged clamshell or one-piece slate, MagSafe phone pocket, parametric FreeCAD scripts

Topics

Resources

Stars

10 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages