A Project for Days to Come: Joey Castillo's Hiking Log Has Him Branching Out From eReaders!
Joey Castillo has a knack for designing hardware that appeals to the eye.
We first saw him on our pages with his remarkable OpenBook project — an open source, DRM-free eReader project, which in itself was a worth read — with a beautifully "self-documented" PCB to keep even the hardware in the spirit of the project.
One of the largest features on the back of that board was the ubiquitous Adafruit Feather PCB header set, and it's clear to see that Castillo is a fan of the form factor, bringing us yet another striking Feather-based build, with another clever name, but with a but more of a tongue-in-cheek approach: the Hiking Log.
Relax, It's not a late April Fools' post, and no, Castillo's not lost the plot — far from it in fact. He's probably a bit more clued up to his plot on the map than most of us — as there's a bit more going on here than initially meets the eye.
Isolation hasn't gotten the best of him, and he's not just plugging random bits of wood into his laptop — yet.
Something that seems like a distant memory already is the joy of going for a wonder about in the outdoors, getting lost in nature— or not, as is usually preferable — is a wonderful pastime, and if you're reading this, there's a good chance you'd probably also take interest in the metrics of your jaunt, such as speed, route, elevation, and perhaps even others such as temperature, humidity, etc.
If you were looking on the market, a number of GPS loggers support all of these measurements, but where's the fun in just buying something? Not to mention the cost of the units can be considerable (depending on features), and well, they just don't look very... fun.
Is its bark worse than its... byte?
Well, no, both the internals and the enclosure are equally noteworthy here, but we've got to hand it to Castillo for committing to the enclosure in style!
We can see a snapshot of the layer-by-layer view in the slicer below, with Cura showing us the Gyroid infill patterns in yellow, and the important component pockets infilled in cyan.
Being a relative newbie to 3D printing, I'd not yet considered the benefits of different infill patterns, but of Gyroid, Castillo comments "it’s is a type of infill that’s pretty strong against being crushed from any direction," so it makes perfect sense to use it here — to help the log stand up to general use and abuse!
Not only has he modeled a realistic, rough bark-like texture to the outer shell, but he's doubled down on the choice of filament, in opting for a textured PLA, with wood fibre mixed into the spool.
It's a pretty convincing effect, from a photo at least! The varying color of the wood fiber really does bring some natural looking depth and texture to the printed part.
Further to that, adding a few coats of paint to the outside of the enclosure really seals the deal, along with providing a little bit of protection to the hygroscopic PLA.
Textured filaments offer some really creative possibilities for adding another element to your designs, and this is really nice touch to the Hiking Log build!
Tired: Counting rings; Wired: GPS NMEA strings!
The rough appearance of the bark of the log fades away when we take a look at the bytes inside — a smooth, refined layout of stacked Feather boards, sensors, and a great big cylindrical cell to keep it all running.
While the convention is that you might count the rings of a tree to get some semblance of passed time, the Hiking Log can spit out NMEA formatted GPS data, good to some fractions of a second, along with the location data derived from those timings, of course.
Below we've got the full lineup of parts. Let's take a look (from left to right) at what's been squirreled away inside this log.
With an ST7789 display driver IC, this little breakout offers great readability, good library support, and perhaps helpfully for this build, a uSD card slot — perfect for storing screen graphics, or extended logging data!
This single-wire communications sensor offers readouts of -40 to 80°C temperature readings, with ±0.5°C accuracy, and 0-100% humidity readings with 2-5% accuracy.
If you're running up against the limitations of this sensor, you might want to adjust your route a bit!
Featuring a chipset based on the MTK3339, this wing can track up to 22 individual GPS satellites, and with a high sensitivity (-165dB) receiver, can give high accuracy location data at 10Hz!
The venerable workhorse of the Feather family, the Microchip SAM D21-based Feather M0 offers a 32-bit Cortex M0+ MCU running at 48MHz.
With the Express version intended to run CircuitPython, the on-board 2 Mbit flash is also available for storing quite a few GPS log entries on its own, and is available within the Arduino IDE through Adafruit_SPIFlash, if you want to program your log from that environment!
Beyond a slew of peripherals, it also offers some neat low power features, which we'll touch on later.
Cylindrical, steel jacketed cells offer quite a bit more protection against physical abuse in comparison to their LiPo chemistry, flat-cell cousins. Again, this is a wise choice for a device intended to take on life in the outside world! The JST connector is a nice touch also, and importantly, pinned correctly for the Feather boards!
Everything slots neatly in place, with the log enclosure modeled to provide snug recesses into which the components nestle. Note the placement of the DHT22, in order to provide it with good access to the ambient conditions.
Let the digital divining rod show you the way!
While it didn't make it into Castillo's full how-to post, I can't help but comment on one of his closing comments there:
we are using a grand total of five pins on this board and less than a quarter of the space available for code. This leaves a ton of room for expansion!
Because everything here is digital, even the DHT22, you're free to branch away from his core design, and add whatever extras you might want!
Take the 240x175 LCD screen show below for example. Throw in an I2C magnetic compass module, an IMU, and now this log can take the lead, and rather than just log where you've been, suggest where you should go next!
The high resolution and great contrast offered by the IPS display would make it perfect for maps and other graphics!
From a firmware perspective, Castillo has chosen to code this project using the Arduino IDE and libraries, rather than opting for the envisioned usage of CircuitPython that the Express was designed for.
Fortunately, the Arduino environment has a huge number of hardware drive libraries to call upon, and Castillo has enlisted a slew of them in order to allow you to take full use of the hardware available.
- DHT Sensor library
- Adafruit GPS Library
- Adafruit SPIFlash
- Adafruit TinyUSB Library
- Adafruit GFX
I'd throw in a suggestion or two of perhaps Adafruit_ImageReader, for loading image files from on-board flash / SD card, or maybe Adafruit_NeoPixel, for driving the on-board LED, for some more immediate user feedback.
Nevertheless, there is a whole heap of example code to show how to get the best out of the hardware in Castillo's full write-up, complete with a style and illustrations that are reminiscent of the app notes of the wonderful Jim Williams.
You can read through the entire Hiking Log project write-up series on Castillo's website, with part one linked here.
What's more, the project GitHub repository shows signs of Castillo's ever forward trend of optimizing and shrinking his designs. As with the baby brother to the Open Book, the Little Book, it looks like the Hiking Log might give way to the Wandering Twig or such, with the files of Hiking Log Rev B hinting at a tantalizing size reduction — all down to a single FeatherWing!
Not only does it look like he's managing to cram everything on to one board (there's a uSD card slot on the back!), but he's also bought the Temperature and Relative Humidity on board - while also adding a pressure sensor!
Center place, we see a footprint for the triple-hitter that is the Bosch BME280 T / Rh & Pressure sensor! For those wondering about the rather stark cut-outs around the device, take a look here at the integration application note for the BME280. It offers sound advice for the implementation of any similar environmental sensor!
No matter what is yet to come in this project, if not for the enclosure alone, I think we can all agree that this is a design that will "stick" in our minds for a while to come!
As always, catch up and follow along with Castillo on Twitter.