We've got jet packs! We've got computers that talk back! We've even got coffee pots that e-mail you when you're Joe is below tepid.
What we are still trying to get right, in my opinion, is the balanced result of computing power, form factor, ergonomics, and user experience.
That last point is very much a matter of user preference however. The reason that we don't see many of us using our high-end smartphones for hardware hacking, is mainly down to our actions not being high on the list of average consumer activities — ergo, the software and hardware interfaces are often lacking as a result. Boo!
It is in a similar train of thought that we find @arturo182 back at it again, this time on his way to designing a high-end, portable Linux handheld device!
He's thrown himself in at the deep end on this one, but he's not afraid to take on such a project. We've seen him in the news recently with his two new Feather boards based around the new NXP i.MX series devices. Given how quickly one of those was snapped up to be a collaboration project with Adafruit, we've got high hopes of seeing this build come to fruition! Let's take a look at what he's got so far!
Starting with the look and feel of this project, the first and foremost striking feature of this slick looking handheld is the HyperPixel 4" square aspect ratio display.
This beautiful display is a recent release from Pimoroni, and it is just stunning to behold. Weighing in with a crisp (and quirky!) 720px x 720px resolution, this square aspect ratio display requires some serious pixel pushing to deliver a rich UI.
Although the HyperPixel display is intended as a Raspberry Pi Hat, it does pose some restrictions when using a Pi as the host device; it gobbles up the SPI and I2C instances, leaving them unavailable for other tasks! Not to be deterred by this, arturo182 is looking to other ways to power this portable concept device.
While it's still in the concept stages of the design, arturo182 plans to create a custom motherboard for the device, allowing him to pair the HyperPixel display with a pokey little i.MX7 based SoM from TechNexion. It's a bold endeavour, but the SoM module does simplify some aspects of the layout, and frees you of the I/O limitations imposed by the Raspberry Pi H/W.
With some serious specs, this tiny ( <40mm^2) SoM is also available in a RPi form-factor breakout board, not only providing a good reference design, but also allowing arturo182 to get cracking on the software side of things straight away!
With the display chosen, arturo182 was able to write a script to generate the case and keypad button dimensions in relation to the display dimensions. Knowing these, a scale PNG is then generated.
This is then imported into Fusion360, to act as a sketch from which to derrive the case shell.
Importing a scaled drawing to act as a sketch is a neat tip to remember. It's one I've used a number of times to quickly draft mechanical models from datasheets, and saves a huge amount of time!
We now turn our attention to the custom silicone elastomer keypad, designed in collaboration with @timonsku, which is a project in itself!
Rather than using an "off-the-shelf" part - which in this case would be re-using a keypad designed for a completely different device / product, arturo182 has elected to lay out his own design, and have it cast in silicone.
With the right design of key layout, the next trick is achieving a fine surface finish/texture for the keypad buttons. Here, it's worth taking a little time to consider the implications of choosing the right rool for the job when creating a mold.
3D printers have seen limited use for this application, namely down to the tool path resolution- that is, any visible marks in the mold from chatter, or open-loop stepper control are going to be as present, if not more so, in the final product, given certain materials.
So, @timonsku offered to step in and produce a beautiful mold for the keypad, shown below.
Designed in Fusion360, and output on his Bantam Tools mill, there is a lot of thought visible in the design and realisation of this multi-part mold. Not only is there some complexity in the design, but also milling itself is a somewhat involved process, that makes FDM look almost "point and click" in comparison.
When you consider that with milling, you are removing material from stock (subtractive machining), it becomes apparent that the tool path is going to need a bit more consideration than something like the hot end of a 3D printer. Not only must the tool perform operations at different Z depths, it often will do so while traversing the X and Y axes.
Tool height therefore is a very important consideration in the path planning, as failing to retract the tool height when moving to another milling operation can quickly foul the work, and worse, break the tool!
Shown below is the Fusion output tool path preview, which lets the user check that there aren't any nasty oversights that might lead to a tool "crash". Neat!
It's clear to see that there is a huge amount of skill being thrown at this design. While arturo182 is still in the prototyping stages of this design, his updates on Twitter show he's probably not (too...) far off eyeing up the challenge of the custom SoM motherboard.