In the distant past before smart phones became identical black rectangles there
was a category of devices called palmtops. Palmtops were a class of PDA PC
thing that fit in the palm of your hand. Today the Psion 5 series of devices
most often capture peoples attention. Not only are they small and awesome, but
they have something like a real keyboard.
Earlier this year the world caught up and two big crowd funding projects
appeared for modern Psion like palmtop devices. Neither the Gemini or the
GPD Pocket campaigns convinced me that real hardware would ever appear. In
May reviews of the GPD Pocket started to appear and I became aware of people
that had backed and received their earlier campaign for the GPD WIN.
With a quirk in indiegogo allowing me to still back the campaign I jumped on
board and ordered a tiny little laptop computer.
FreeBSD is the only choice of OS for a pc computer. Support is good enough
that I could boot and install without any real issues, but there was enough
hardware support missing that I wanted to fix things before writing a blog post
Somethings don't work out of the box others will need drivers before they will
WiFi (broadcom 4356)
Bluetooth (broadcom BCM2045A0)
Audio (cherry trail audio chrt54...)
Keyboard vanishes sometimes
Touch Screen (goodix)
fan (there is some pwm hardware)
The most obvious issue is the display panel, the panel it self reports as being
a high resolution portrait device. This problem exists in the bios menus and
the windows boot splash is rotated for most of the time.
Of course the FreeBSD bootsplash and framebuffer are also rotated, but a little
neck turning makes the installer usable. Once installed we can address the
rotated panel in X, accelerated graphics are probably in the future for this
device, but the X framebuffer drive is good enough for FreeBSD hacking.
The screen resolution is still super high, there doesn't seem to be anyway to
do DPI hinting with the framebuffer driver (or in i3 at all), but I can make
terminals usable by cranking up the font size.
Keyboard and touchpoint
A Keyboard is vital for a usable computer, out of the box the keyboard works,
but the touch point does not. Worse, touching the touch point caused the
built in USB keyboard to die.
Some faffing trying to debug the problem with gavin@ at BSDCam and
we got both keyboard and mouse working. For some reason my planck keyboard
presents as a mouse among other things, pluggin in a mouse and power cycling
the USB device caused ums(4) to correctly probe and attach.
Manually loading ums(4) at boot got the touch point working correctly. In
fact, ig4(4) also attaches when manually loaded.
Add these lines to /boot/loader.conf
The dmesg shows some problems with ACPI probing, this is probably the
source of some of the device problems.
Wifi, bluetooth and graphics are bigger problems that will hopefully be caught
up in others work and made to work soon. The touchscreen controller is adding a
driver and support for Cherry View GPIO, there are datasheets for these and I am
working on them.
No battery level indicator makes it annoying to use the GPD Pocket out and
about. Without a driver the charge controller is using a really low current to
recharge the battery. Datasheets are quite readily available for these devices
and I am writing drivers now.
The Pocket is a great little device, I think its 'cuteness' makes everyone fall
in love with it on first sight. I am really looking forward to getting the
final things working and using this as a daily device.
I like keyboards, I have been using an OLKB Planck as my daily driver for
18 months now. I saw a really nice ortholinear 30% keyboard go by on
mastodon and I had to have one.
The keyboard I saw was actually the excellent gherkin by di0ib. di0ib
has worked in the true spirit of open source and provided all of the design
files and firmware for the gherkin. Beyond that they have included child proof
instructions to order pcds.
I tricked some friends into agreeing to build boards if I got a run of PCBS and
set off. Amazingly easyeda.com was offering 5 more boards (10 vs 5) for just $2
extra. I managed to get 10 sets (board, key plate and base) of the PCBs for
The build was really easy to do, there is some advice for the socket
on 40 percent club, but if you test fit everything as you go it should be
straight forward. A build is probably around 2 hours depending on proficiency.
With the board built and programmed (first try) it is time to figure out how to
use it. It took a couple of months of daily use to get used to using the
planck, it will be the same with the gherkin. To help learn I have printed out
the keyboard layout and the combination of layers.
I modified the default layout a little to make it more similar to how I
normally type. I moved space bar to my left hand, made 'X' a repeatable
key(gotta be able to delete chars in vim) and added a 'CMD' key. I have a fork
of the repo with my layout and Makefile changes.
The layer system is easy to use, if you hold any of the keys on the base layer
it will enable the alternate function for a meta key or it will switch to
another layer for a layer key.
I did more bread, but at batch 8 this is no longer really interesting to anyone
other than me.
People have been complaining that my tweets are marked as offensive material,
which is really funny I only really tweet about bread and technology. I looked
at my settings and the 'mark as offensive' option was enabled on my output.
I'm sure I accidentally enabled it, but the twitter documentation does say they
will add it to accounts that have flagged posts.
I have no love for twitter, if literally anything else had the communities I
want to pay attention to posting I would move away. Ideally something
federated, but that is only a pipe dream.
Yes my phone autocompleted flour to four, you can't edit twitter posts and
phones are the worst thing ever.
The vibrate function is amazing for notifications. My phone hasn't been off silent for since I got the pebble, notifications for calls and messages are awesome. Better I can forward notifications from a service bus app like pushover and generate them based on things I want.
I can just wear a watch to deal with 1, for 2 I am probably going to use the
awesome forecast.io app and not rely on being able to casually check the
For 3 I am really at a loss what to do. I could just replace the pebble, but
really I think I want a smart band with a vibration motor for notifications.
If what I want doesn't already exist, it is probably too niche to ever become a
Reading: The Moon is a Harsh Mistress, The Difference Engine