How to Unleash the Power of the DevTerm Portable Hacking Console
The ClockworkPi DevTerm is a peculiar portable Linux device with
numerous delightful features, albeit some frustrating ones as
well. This guide will demonstrate how to configure the DevTerm to
overcome its limitations, such as the small screen size and the
somewhat challenging trackball. Additionally, it will provide
instructions on using the DevTerm with an iPad Pro.
In 2021, I got the
ClockworkPi DevTerm. This is a very portable Linux machine that comes as a kit. It
is easily assembled, and you get a handy battery-powered portable
computer with a small but usable keyboard and a wide screen.
Despite its ClockworkPi name, the DevTerm model I got is not based
on the Raspberry Pi. When I ordered, only three models were
available: the Pi CM3-based model with 1GB of RAM, a low-power
A-04 model with two cores, and the one I got with the A-06. All
models can be powered by two 18650 batteries that you have to get
The A-06 CPU is an ARM64-bit Dual-core Cortex-A72 combined with
Quad-core Cortex-A53. It comes with 4GB RAM. The DevTerm A-06 runs
a variant of Armbian.
Since last year, ClockworkPi also offers two newer models. The
DevTerm based on the Pi CM4 board is the one I'd get if I didn't
already have the A-06 model. And ClockworkPi even offers a model
with an "open-source" RISC-V CPU. Though they carefully call it
The ClockworkPi DevTerm. Left: fully assembled. Right: in its
original kit form (Source:
ClockworkPi DevTerm A-06
The DevTerm A-06 is a fully-featured Linux PC you could
theoretically use as a primary machine. It runs most Linux
software, only limited to the compatibility with Armbian and the
CPU architecture. This is admittedly a bit more limited than the
thriving Raspberry OS ecosystem or the mature and widespread
Ubuntu catalog. Unfortunately, I could never get the UI for the
package manager to work. This is not an issue because nearly
everything I need is easily installed using the CLI.
You also get a clip-on thermal printer that is fun to play around
with, but I ultimately never found a use for it and regard it as a
gimmick. I ended up removing it. The printer attaches to the wide
expansion port, reminding me of the old 8-bit computers from the
1980s. The DevTerm comes with a surprisingly good assortment of
ports, including three USB type-A ports, a USB type-C port for
charging, a headphone jack, and a micro HDMI port (that can drive
displays of up to 1080p since one of last year's OS updates). A
MicroSD card is used as the main storage.
It has onboard Bluetooth and Wifi connectivity. Unfortunately, no
4G/5G option is available unless you use a USB modem.
How does the DevTerm hold up in daily use?
The mainstays like Chromium, LaTex, LibreOffice, Gimp, and even
Blender work fine. And the latest version of the OS even comes
with VSCodium, the open variant of VSCode. So the DevTerm can be
used as a complete web development setup. The machine's
performance is more than enough for NodeJS and React development.
Apart from that, the device has many uses, including running
emulators for the Atari ST, the Commodore Amiga, and many others,
as well as fantasy consoles like the Pico-8.
I'm a stickler for tiny computers. They allow me to work while on
the go. And I don't mean just where there is a desk like in a café
or bar. I can use it pretty much anywhere, standing up as a thumb
keyboard, on my lap, while sitting in the metro, or in the
confines of a bus, train, or plane on the small folding trays. I
love the DevTerm's small package.
Ideally, I'd use it in its super-portable mode and connect to a
larger setup to continue using it. Below I describe what I came up
with using the iPad Pro as a large screen, keyboard, and trackpad.
Typing on the keyboard is a bit finicky. I'd describe it as just
about adequate to get things done. The keys are very close
together, and some are in different positions. I definitely
wouldn't use it for National Novel Writing Month.
Unfortunately, it is not backlit.
The odd screen size, with its resolution of 1280 x 480, makes the
dialog boxes of some applications unusable because, in some cases,
the button to submit or cancel is just outside the screen. There
is a solution for this that I describe below.
You control the mouse cursor with a ridiculous trackball in the
style of the old Blackberries. This is a source of frustration.
The trackball is very imprecise. Moving the mouse pointer from one
end of the screen to the other is a chore because the trackball is
so tiny and unpleasant.
At first, I used a wireless mouse until I found a better solution.
To remedy the terrible trackball, there is a solution described
below. It uses a set of arrow keys in a game controller's style
and accompanying buttons along the top of the device.
Pimping the ClockworkPi DevTerm
While using the ClockworkPi completely on the go works to an
extent there are three things I wanted to improve
Terrible Trackball: I needed a way to avoid
using the atrocious trackball. Using a mouse is great, but you
need a surface to move the mouse around on. I wanted to find a
solution to the DevTerm itself.
Small Screen: The integrated screen is usable
in most contexts, but the low vertical resolution cramps
everything. Using an external monitor via HDMI works great, but
that is not an option on the go.
Small Keyboard: The built-in keyboard is
usable, and the external USB keyboard work great with the
DevTerm. But I didn't want to lug around another device.
Using the Game Pad Instead of the Trackball
The DevTerm has a gamepad-like assortment of directional keys and
fire buttons in the upper left & right corners. These default to
key inputs that can be used for games and retro emulators.
This provides a much easier control of the mouse pointer. You can
move across the screen faster and more comfortably. Though precise
small movements are harder. You can still use the trackball for
If you want to use the gamepad as a controller in a game, you will
need to install xinput (install with
sudo apt install xinput) and then run the following
command to deactivate mouse emulation:
Using Panning for More Vertical Screen Real Estate
As described above, using some applications is very cramped due to
the low vertical resolution. In some cases they become unusable
because controls are postioned outside of the screen becoming
There is a solution for that. You can increase the virtual
vertical screen resolution. Then the screen will pan down and up
whenever the mouse pointer reaches the edge.
This is done using xrandr (install with
sudo apt install xrandr). Then you increase the
vertical resolution and activate screen panning with this command:
xrandr --output DSI-1 --fb 1280x720 --rotate right --panning 720x0 ### (you can replace the vertical resolution of 720 with anything up to 1080)
The command above activates panning but the rendering of the
screen is impeded by compositor. When the mouse reaches the bottom
edge, the screen pans down but remains black and does not show the
actual content. You will need to deactivate compositor to fix this
with this command:
xfwm4 --replace --compositor=off
The main use of compositor on the DevTerm is to enable you to zoom
in and out on the screen using the trackball. I can live without
Panning the whole screen area on the DevTerm using the game pad
to control the mouse pointer
Using the iPad Pro as the DevTerm's Monitor, Keyboard and Mouse
Most Linux user know that you can SSH into a machine and then use
a VNC solution as a graphical desktop sharing system and remotely
control the machine over a network connection including keyboard
and mouse access.
So let us look at how to do this on the DevTerm. By default, SSH
access is deactivated. The "flag" for this during bootup is an
empty file called sshd_not_to_be_run. If a file with
this name is present in the ssh directory during bootup then SSH
is not enabled. A user on the ClockworkPi forum describes all the
steps to enable SSH on the A-06 DevTerm running Armbian.
We need to remove this file like this:
sudo rm -f /etc/ssh/sshd_not_to_be_run
Then we activate SSH access:
sudo systemctl enable sshsudo systemctl start ssh
The DevTerm needs to be connected to a network, then it will have
an IP address. Just enter ip a to see what the IP
Please note that the DevTerm has a default admin password. Make
sure to change that before activating SSH. You don't want someone
else to access your DevTerm and steal all your secrets (I keep the
true identity of JFK's killer on mine). Once enabled, SSH access
will remain open across reboots.
With SSH enabled, we can connect to the DevTerm using another
machine. I do this on my iPad Pro with the Magic Keyboard. The
iPad has a largish screen and the Magic Keyboard provides a...
well... keyboard and a trackpad. (Make sure that both
machines have a network connection, though they don't have to be
on the same network.)
Using a terminal application like Panic's Prompt app (or
alternatively Blink), you SSH into the DevTerm with:
(You replace the username with the one you use on the DevTerm, by
default it is cpi, and the IP address you got from
Then you enter the password and can use the DevTerm via the iPad
(or the guest computer of your choice).
This is already very useful solution. You can run any terminal
apps you like on the DevTerm and use them on the iPad's large
screen and use the comfortable Magic Keyboard. But we can also use
VNC for full access to the DevTerm's graphical user interface.
In both cases, you will need to make it executable:
chmod +x startvnc.sh
When everything is set up, you SSH into the DevTerm and then run
./startvnc.sh. This will start the VNC server on port
Now you can use a remote desktop client on the iPad to have full
access to the user interface of the DevTerm. I use the
Edovia Screens 4
app but that is not free of charge. You can also user Microsoft's
In your app of choice, set up a new VNC connection. Enter the
DevTerm's IP address and port 5900. Then select the authentication
method VNC password and enter your password.
Then you can connect remotely and use the DevTerm on the iPad.
iPad Pro connected to DevTerm with the standard resolution
Unless you activated screen panning on the DevTerm as described
above, you will see a comically small vertical screen resolution.
I strongly suggest to increase the vertical screen resolution and
activate panning by running the xrandr command shown
iPad Pro connected to DevTerm with an increased vertical
Faking a Large Screen with an HDMI Dummy
I understand that some folks might find it to be a bit of a hassle
to run the xrandr command only for a larger screen
real estate in VNC. There is an alternative... without any
configuration, you can set the screen resolution to full HD
1920x1080 by connecting an HDMI dummy dongle to the DevTerm's
micro HDMI port.
HDMI Dummy Adapter and Converter to Micro HDMI
Please bear with me. It is a bit of a hack. You get an HDMI dummy
this one) and an HDMI adapter for micro HDMI (e.g.
this one). When you connect this contraption to the DevTerms HDMI port,
it "thinks" that it is connected to an external monitor and forces
itself into 1080p. And the VNC connection on the iPad shows this
in all its glory.
Please note that if you boot up your device with the HDMI Dummy already inserted the display won't be mirrored but extended. This means that there will be the large 1920x1080 display and the DevTerms internal 1280x480 display. This makes it unpractical during a VNC session because you get a large screen on the left and a narrow screen attached to it on the right. It is best to start up the DevTerm and only after booting attach the HDMI Dummy.
iPad Pro connected to DevTerm with the resolution automatically
increased due to the connected HDMI dummy
No matter which solution you use (xrandr to increase
the virtual screen size or the HDMI dummy), there is a caveat. By
default the DevTerm's OS is not well suited to handle resolutions
higher than the integrated screen. When you maximize an
application window by clicking on the respective widget in the top
right, it will expand to only occupy the puny 1280x480 pixels. If
you don't click on the window's maximize widget but instead just
use the mouse to expand the window then you can make use of the
full screen's real estate.
The Best of Both Worlds
Using the ClockworkPi DevTerm on the go has many advantages. It is
convenient and portable. Despite its slightly subpar keyboard, you
have a complete Linux system to develop anywhere you like.
You can compensate for some of its shortcomings. The gamepad can
be configured as a mouse emulator instead of the terrible
trackball. The low vertical screen resolution can be increased by
activating screen panning.
Then you have a much more usable device when you are out and
When seated at a desk or in a café, you can use another device
like an iPad with a Magic Keyboard to continue work using a much
larger screen and proper keyboard and trackpad through a VNC
connection to the DevTerm. I am pretty happy with this solution
because I love the iPad but am well aware of some of its
shortcomings. I also adore the DevTerm warts and all. By combining
both devices, I get a workable setup.
The iPad is an excellent device for creative work using Procreate,
the Affinity apps for pixel and vector graphics, and LumaFusion
for video editing. The DevTerm has the advantages of an open
system for web development. Now they complement each other.
Other Options at Present and in Future
That being said, ClockworkPi has announced another device called
uConsole. It is smaller than the DevTerm. It's keyboard is backlit and
the screen has a native resolution of 1280x720. The uConsole even
has an integrated 4G modem. There will be a model using the
Raspberry Pi CM4. It will be an even better and more portable
setup. It even has a dedicated 4G modem, so you are not reliant on
I've already ordered the
model and can't wait to try it.
This particular model has additional advantages. The Raspberry Pi
CM4 supports USB gadget mode through the USB-C connector. The iPad
can connect through USB-C as ethernet, then SSH and VNC into the
device instead of "roundtripping" through Wifi.
Additionally, you independently set the CM4 as a server to access
its file system using the Files app on the iPad, all through the
Using a Raspberry Pi4 with an iPad Pro
I have a similar setup running on a regular Raspberry Pi4. In this
case, the iPad even supplies the Pi4 with power through the USB-C
port. This was my previous development setup.
In contrast to the DevTerm A-06, the disadvantages are that you
need to use the Pi4 with the iPad. If you want to use it
independently, you need a keyboard, a mouse and a screen. The Pi4
reduces the iPad's battery life by drawing power from it.
Furthermore, the connection via the USB cable should never be
interrupted during use because then the Pi4 shuts down. So this
setup is better suited for a desk or table. I've put velcro on the
iPad's Magic Keyboard and the Pi4's case which allows me to
physically attach the two devices but this not secure enough for
truly mobile work.
Connecting through USB type-C requires USB gadget mode. Power and the network connection are fed through USB. This is available on the Pi4 but not on Pi3 and previous models. The DevTerm A-06 does not support this. Its USB-C port can only be used for charging.
Will USB Gadget mode work with the DevTerm CM4 which is based on the Pi4? I haven't tried it myself, but it is unlikely that this works. The DevTerm CM4 uses an adapter to connect the CM4 to the DevTerm's internal connector port which was conceived to use the CM3. So it is unlikely. Though I would be curious if someone could try it.
If you want to use the Raspberry Pi4 with an iPad through USB
type-C, please find further information here.
I know that in the closing section of this article, I might be
making matters confusing by introducing these different options
without addressing the most obvious questions: Why not use an
actual notebook running Linux, MacOS or Windows? Or if I really
want to keep using the iPad why not use it with a virtual machine
in the cloud?
Of course, the main reason is because I can. But that is not a
satisfactory answer. I just like the iPad and don't want to do
without a real Linux machine. I use my iPad with a 5G connection,
so I don't rely on having Wifi. There is a splendid immediacy in
being out and about and then getting an idea, popping open the
iPad and just doing whatever came to mind without the friction of
having to tether to mobile phone or having to find a place with
Wifi to sit down. The iPad with the Magic Keyboard is also much
faster in certain operations. And I don't mean raw performance.
Simple things like opening it up and replying to an email are ever
so slightly faster and frictionless than doing the same thing on a
notebook. Jotting down notes or drawings with the Apple Pencil
while standing in line in a queue or while waiting for the metro
is much more direct and non-intrusive.
And using a device like the DevTerm to complement the iPad in the
very same settings is just liberating. I can use the DevTerm
standing or seated in a cramped space. And when space allows for
it, I can use it connected to the iPad.
There are not many notebooks that have an integrated cellular
modem. Certain models of Microsoft's Surface devices come to mind.
Oddly enough none of the Macs have integrated cellular networking
(yet). Even on the fastest and slickest Windows device, wake from
sleep is much clunkier. Depending on the duration of sleep or
hibernation, the mobile modem needs to reconnect to the cellular
network after fully awakening. Contrast this level of friction
with opening and laglessly waking an iPad, getting a minute of
work done, then closing it and moving on.
I understand that this is not the way most people work.
Admittedly, I don't work like this some of the time. Often, I need
a real desk, a full laptop connected to an external monitor and a
external keyboard and mouse. When given the opportunity this is a
much more productive setup. But when I am on the move and I still
want to remain productive, I find that the solution described in
this article suits me the best at the moment.
Alternatives on Android and ChromeOS
I could use an Android tablet with a keyboard case
instead. This provides 4G/5G connectivity and the full tablet
experience. Many of the same apps are available both on Android
and iPadOS. Then you install
Using the Termux application in tandem with AndroNix, you can
create a Linux environment directly on your Android smartphone or
tablet. This allows you to run various Linux-based UI applications
and use terminal-based Linux functionalities. You can run a full
Ubuntu on your Android tablet. Find out more about how to do this
article on makeuseof.com.
This is definitely a workable option. Unfortunately, it is also
not entirely as frictionless as it seems. After getting everything
set up correctly, you need to launch Termux and then, from inside
it, launch the Linux distro with AndroNix. Then you need to open a
VNC application and connect it to the locally running Linux. The
performance of Linux on Android could be better. Even on fast
tablets, it is a bit worse than on a DevTerm A-06 or a Raspberry
Pi4. If you keep Linux running, then the battery life of the
Android tablet suffers greatly. Of course, the battery life is
much longer if you use two separate, very portable devices with
their batteries and specialization.
Additionally, using Termux/AndroNix with a Linux distribution is
oddly similar to connecting the iPad to the DevTerm or Raspberry
Pi4. Even though you run Linux locally on the Android table, you
still VNC into Linux running on your local machine! That is not
only weird, and it also has an even worse performance.
Please don't think that I'm poopooing the Android option. I've
become very appreciative of Android tablets. This works great for
Okay... So if you, like me, want portability, responsiveness, pen
input, and full Linux in a tablet form factor with a physical
keyboard, there is another option. You could get a Chromebook or
tablet running ChromeOS with a keyboard/trackpad combo. One that
comes to mind is the compact
11" Lenovo Chromebook Duet 3
(sold as the Lenovo IdeaPad Duet 3 in some markets). It is
inexpensive. It is compatible with a pen stylus. It comes with the
keyboard/trackpad cover with a kickstand out of the box. It has
4GB of RAM. There is a model with 4G connectivity. And ChromeOS
lets you install full Linux natively!
Lenovo Chromebook Duet 3 with keyboard/trackpad cover and pen
I have yet to try this. But it combines the best of both worlds:
the usability and responsiveness of ChromeOS and Android apps and
the power and flexibility of Linux desktop applications. I have no
idea what the performance is like or how much Linux cuts into the
battery life of this device. Still, color me curious!
The DevTerm and iPad combination described in this article is the
one I chose for me. To quote Full Metal Jacket: "There
are many others like it, but this one is mine."
Bonus: Close Resemblance to the Tandy TRS-80 Model 100/102
A commenter on Youtube noted that the DevTerm looks similar to the Tandy TRS-80 Model 100. This was an early portable computer introduced in 1983. Equipped with a 2.4 MHz processor and 8KB by default (expandable to 32KB of RAM). It featured a monochrome LCD screen, full-size keyboard, and built-in software including a text editor and communications program. It was powered by batteries. The Model 102 was its successor introduced a few years later. It had a slimmer case and more RAM, but otherwise the same features.
The DevTerm definitely hommages the design but due to the small size of its keyboard does not provide the greatest advantage of the TRS-80 Model 100/102: the large and comfortable keyboard. The DevTerm's keys are quite mushy. The DevTerm's keys are so small and close together that user sometimes inadvertently press two keys at the same time. While the Model 100/102 has clicky keys with a good travel and that are well spaced out. I'm sure that ClockworkPi chose to quote the Model 100/102's design deliberately to evoke a retro feel.
Please find below a comparison between the two.
The DevTerm (right) really resembles the Tandy TRS-80 Model 100 (though this photo shows the model 102 on the left)