MobileDemand xTablet Hacking
As I’m deploying more LoRa nodes I find myself needing a more capable debugging system. While at home
I simply use an SDR
connected to my desktop to ensure devices are transmitting as expected. In the field
that is a loftier goal. I’ve tried using an SDR
connected to an Android phone with limited success, this
seems to just kill the battery more than anything.
Additionally one of the goals I had was a battery backed computer that could be semi-permanently mounted in my truck. I’ve casually looking at some industrial portables but it’s hard to tell what’s what, so I was pretty thrilled when saveitforparts posted this video the other week.
This is pretty much what I was looking for and thankfully, before the youtube-ebay effect kicked in, there were a handful of them for cheap. I managed to pick up a lower end model before they all disappeared into various hoards or had their prices driven up (I guess I helped there….).
The hardware specs are decent enough, Intel quad-core i5-3337U @ 1.8GHz, mine came with 4GB of RAM and a 64GB SSD. This one didn’t come with the keyboard, which looks pretty wonky anyhow and begs the real question… With Linux installed, can I 1) get the touch screen to work 2) get a virtual keyboard to work reasonably well.
Yes!
Once my device arrived first this I didn’t was slapped an Arch Linux live USB stick in it and booted up. A little fiddling with the boot order was needed but otherwise worked as expected. The Arch Linux installer is all console so I was unable to test any of the hardware at this point but just continued with the install. It should be noted as this has an entire Intel chipset drivers weren’t an issue for WiFi and that worked right out of the box.
The new Arch Installer is pretty handy, it asks some of the basic questions like server or desktop, which
Window Manager you want to use, etc. I want to eventually use a tiling window manager but it’s been so long
since I’ve used one I got hung up on bspwm
almost immediately and switch to something more familiar, Xfce4
.
So far so good, I plugged in a keyboard and to my complete shock and amazement the touchscreen….. JUST WORKED! Calibration was a touch off but not so much I’ve bothered to fix it yet.
Now can I get an onscreen keyboard to work? (As the image above suggests… YES!).
Virtual Keyboard⌗
There are two important parts for this, I need to be able to login with a virtual keyboard, and once the desktop
comes up. I decided to use onboard
as it seem active, light-weight and not terribly locked to GTK (I might
switch to KDE/Plasma at some point as I use it almost everywhere else).
Desktop Virtual Keyboard⌗
Setting up onboard
for the desktop was fairly straight forward, it comes with it’s own settings application.
The important settings are those top two checkboxes, Auto-show when editing text
and Start Onboard hidden
.
I also set the dock feature to keep it at the bottom and full width.
And with that it pretty much just worked. I should not at some point while hacking on various other bits it
just stopped working. I’m not sure what disabled it, but I fixed it through Xfce4
Session and Startup
, simply
checking the box in Application Autostart
, this might vary if another Window Manager is used.
Login Virtual Keyboard⌗
This part was a bit trickier and took some research but I managed to get it working with the default installed
Display Manager, lightdm
. This is actually made up of two parts, lightdm
is the actual Display Manager and
lightdm-gtk-greeter
is the login screen itself.
First off ensure that lightdm
is using the correct greeter in /etc/lightdm/lightdm.conf
…
[Seat:*]
...
greeter-session=lightdm-gtk-greeter
...
Then several edits need to me made to the greeter config at /etc/lightdm/lightdm-gtk-greeter.conf
in the [greeter]
section.
I’m showing the entire section but by default it was all commented out.
[greeter]
a11y-states=+keyboard
#background=
#user-background=
#theme-name=
#icon-theme-name=
#font-name=
#xft-antialias=
#xft-dpi=
#xft-hintstyle=
#xft-rgba=
indicators=~language;~a11y;~session;~power
#clock-format=
keyboard=onboard
keyboard-position=50%,center -0;100% 40%
#reader=
#position=
#screensaver-timeout=
The indicators
section controls which items are shown in the top toolbar, the important one here is ~a11y
as it allows the keyboard
to be controlled. Next is the a11y-states
, adding +keyboard
makes it so the keyboard is displayed by default, optional but I wanted
it already opened. Then the keyboard=onboard
option tells it to use Onboard
, this could be florence
or some other virtual keyboard
also. keyboard-position
only works with Onboard
but I wanted to maximize the size so I gave it 100% width and 40% height.
And that’s it! The last thing I’d like to figure out is how to get my keyboard theme settings on the login screen, but as it
appears Onboard
uses dconf
for settings it’s not as simple as passing a config string so I’m not bothering for now.
What’s Next?⌗
So generally I’m really stoked how well this setup went. I’ve been thinking about the custom mount in the truck for a while and now that
I have the computer I can start mocking that up. But since I mentioned SDR
I should also share the quick tinkering I’ve already done.
The eagle eyed reader might have already noticed the RTL-SDR
hanging off the side in the first picture and like most of this project
so far, it worked unreasonably well.
As a quick test I send a message from one of my ESP32 Dual LoRa boards and besides reading really hot when idle, it picked it up no problem.
The only real issue I’ve ran into so far is getting the internal speaker to work. I’ve always had a terrible time getting Linux audio to work if the setup is just slightly non-standard so I gave up after about an hour (narrator: it was more like four). Thankfully the headphone port does work and that will be more likely to get used to hook into the trucks (presently non-existent) sound system sometime in the future.
Wrap up⌗
I’m really excited for the potential here, especially as the one battery it came with even worked for about 4-6 hours of various use. I have
a bunch of SDR/HAM
related ideas I want to implement but hard to say how much I’ll get to this summer. Keep an eye out for more posts in the
future.
Thoughts?⌗
I would love to hear what you think, feel free to joint he conversation on Mastodon