Depending on the device in hand and one’s temperament, bringing up a new part can be a frolic through the verdant fields of discovery or an endless slog through the grey marshes of defeat. One of the reasons we find ourselves sticking with tried and true parts we know well is that interminable process of configuration. Once a new display controller is mostly working, writing convenience functions to make it easier to use can be very satisfying, but the very first thing is figuring out how to make it do anything at all. Friend of Hackaday [Dan Hienzsch] put together a post describing how to use a particular LED controller which serves as a nice walkthrough of figuring out the right bitmath to make things work, and includes a neat trick or two.
The bulk of the post is dedicated to describing the way [Dan] went about putting together his libraries for a 7-segment display demo board he makes. At its heart the board uses the IS31FL3728 matrix driver from ISSI. We love these ISSI LED controllers because they give you many channels of control for relatively low cost, but even with their relative simplicity you still need to do some bit twiddling to light the diodes you need. [Dan]’s post talks about some strategies for making this easier like preconfigured lookup tables with convenient offsets and masking bits to control RGB LEDs.
There’s one more trick which we think is the hidden star of the show; a spreadsheet which calculates register values based on “GUI” input! Computing the bit math required to control a display can be an exercise in frustration, especially if the logical display doesn’t fit conveniently in the physical register map of the controller. A spreadsheet like this may not be particularly sexy but it gets the job done; exactly the kind of hack we’re huge fans of here. We’ve mirrored the spreadsheet so you can peek at the formulas inside, and the original Excel document is available on his blog.
How better to work on Open Source projects than to use a Libre computing device? But that’s a hard goal to accomplish. If you’re using a desktop computer, Libre software is easily achievable, though keeping your entire software stack free of closed source binary blobs might require a little extra work. But if you want a laptop, your options are few indeed. Lucky for us, there may be another device in the mix soon, because [Lukas Hartmann] has just about finalized the MNT Reform.
Since we started eagerly watching the Reform a couple years ago the hardware world has kept turning, and the Reform has improved accordingly. The i.MX6 series CPU is looking a little peaky now that it’s approaching end of life, and the device has switched to a considerably more capable – but no less free – i.MX8M paired with 4 GB of DDR4 on a SODIMM-shaped System-On-Module. This particular SOM is notable because the manufacturer freely provides the module schematics, making it easy to upgrade or replace in the future. The screen has been bumped up to a 12.5″ 1080p panel and steps have been taken to make sure it can be driven without blobs in the graphics pipeline.
If you’re worried that the chassis of the laptop may have been left to wither while the goodies inside got all the attention, there’s no reason for concern. Both have seen substantial improvement. The keyboard now uses the Kailh Choc ultra low profile mechanical switches for great feel in a small package, while the body itself is milled out of aluminum in five pieces. It’s printable as well, if you want to go that route. All in all, the Reform represents a heroic amount of work and we’re extremely impressed with how far the design has come.
Of course if any of the above piqued your interest full electrical, mechanical and software sources (spread across a few repos) are available for your perusal; follow the links in the blog post for pointers to follow. We’re thrilled to see how production ready the Reform is looking and can’t wait to hear user reports as they make their way into to the wild!
In the embedded world, twiddling a few bits is expected behavior. Firmware is far enough down the stack that the author may care about the number of bits and bytes used, or needs to work with registers directly to make the machine dance. Usually these operations are confined to the typical shifting and masking but sometimes a problem calls for more exotic solutions. If you need to descend down these dark depths you invariably come across the classic Bit Twiddling Hacks collected by [Sean Eron Anderson]. Here be dragons.
Bit Twiddling Hacks is exactly as described; a page full of snippets and suggestions for how to perform all manner of bit math in convenient or efficient ways. To our surprise upon reading the disclaimer at the top of the page, [Sean] observes that so many people have used the contents of the page that it’s effectively all been thoroughly tested. Considering how esoteric some of the snippets are we’d love to know how the darkest corners found use.
Every tech monopoly has their own proprietary smart home standard; how better to lock in your customers than to literally build a particular solution into their homes? Among the these players Apple is traditionally regarded as the most secretive, a title it has earned with decades of closed standards and proprietary solutions. This reputation is becoming progressively less deserved when it comes to HomeKit, their smart home gadget connectivity solution. In 2017 they took a big step forward and removed the need for a separate authentication chip in order to interact with HomeKit. Last week they took another and released a big chunk of their HomeKit Accessory Development Kit (ADK) as well. If you’re surprised not to have heard sooner, that might be because it was combined the the even bigger news about Apple, Amazon, the Zigbee Alliance, and more working together on more open, interoperable home IoT standards. Check back in 2030 to see how that is shaping up.
“The HomeKit ADK implements key components of the HomeKit Accessory Protocol (HAP), which embodies the core principles Apple brings to smart home technology: security, privacy, and reliability.”
– A descriptive gem from the README
Despite many breathless mentions in the press release it’s hard to tell what the ADK actually is. The README and documentation directory are devoid of answers, but spelunking through the rest of the GitHub repo gives us an idea. It consists of two primary parts, the HomeKit Accessory Protocol itself and the Platform Abstraction Layer. Together the HAP implements HomeKit itself, and the PAL is the wrapper that lets you plug it into a new system. It’s quite a meaty piece of software; the HAP’s main header is a grueling 4500 lines long, and it doesn’t take much searching to find some fear-inspiring 50 line preprocessor macros. This is a great start, but frankly we think it will take significantly more documentation to make the ADK accessible to all.
If it wasn’t obvious, most of the tools above are carefully licensed by Apple and intended for non-commercial use. While we absolutely appreciate the chance to get our hands on interfaces like this, we’re sure many will quibble over if this really counts as “open source” or not (it’s licensed as Apache 2.0). We’ll leave that for you in the comments.
Most electronics we deal with day to day are comprised of circuit boards. No surprise there, right? But how do they work? This might seem like a simple question but we’ve all been in the place where those weird green or black sheets are little slices of magic. [Teddy Tablante] at Branch Eduction put together a lovingly crafted walkthrough flythrough video of how PCB(A)s work that’s definitely worth your time.
[Teddy]’s video focuses on unraveling the mysteries of the PCBA by peeling back the layers of a smartphone. Starting from the full assembly he separates components from circuit board and descends from there, highlighting the manufacturing methods and purpose behind what you see.
What really stands out here is the animation; at each step [Teddy] has modeled the relevant components and rendered them on the PCBA in 3D. Instead of relying solely on hard to understand blurry X-ray images and 2D scans of PCBAs he illustrates their relationships in space, an especially important element in understanding what’s going on underneath the solder mask. Even if you think you know it all we bet there’s a pearl of knowledge to discover; this writer learned that VIA is an acronym!
If you don’t like clicking links you can find the video embedded after the break. Credit to friend of the Hackaday [Mike Harrison] for acting as the best recommendation algorithm and finding this gem.
Here at Hackaday we have a bit of a preoccupation with timepieces. Maybe it’s the deeply personal connection to an object you wear on your body, or the need for ultimate reliability. Perhaps it’s just a fascination with the notion of time itself. Whatever the case, we don’t seem to be alone as there is a constant stream of time-related projects coming through our virtual doors. For this article we’ve unearthed the LED Pocketwatch 1.0 by [Dr. Pauline Pounds] from way back in 2009 (ironically via a post about a wristwatch from last year!). Fortunately for us the Internet Archive has saved this heirloom nouveau from the internet dustbin so we can appreciate the craftsmanship involved in [Dr. Pounds]’ work.
My how far we’ve come; a decade after this project was posted a hacker might choose to 3d print a case for a new wearable, but in 2009 that would have been an entire project by itself! [Dr. Pounds] chose to use the casing from an antique Elgin pocket watch. Even through the mists of a grainy demo video we can imagine how soft the well-worn casing must be from heavy use. This particular unit was chosen because it was a hefty 50mm in diameter, leaving plenty of room inside for a 44mm double sided PCBA with 133 0603 LEDs (60 seconds, 60 minutes, 12 hours), a PIC 16F946, an ERM, and a 110mAh LiPo. But what really sets the LED Pocketwatch 1.0 apart is the user interface.
The ERM is attached directly to the rear of the case in order to best conduct vibration to the outside world. For maximum authenticity it blips on the second, to give a sense that the digital watch is mechanically ticking like the original. The original pocket watch was designed with a closing lid which is released when the stem is pressed. [Dr. Pounds] integrated a button and encoder with the end of the stem (on the PCBA) so the device can be aware of this interaction; on lid open it wakes the device to display the time on the LEDs. The real pièce de résistance is that he also integrated a minuscule rotary encoder, so when the stem is pressed you can rotate it to set the time. It’s all quite elegantly integrated and imminently usable.
At this point we’d love to link to sources, detailed drawings, or CAD files, but unfortunately we haven’t found any. If this has you inspired check out some of the otherpocket watches we’ve posted about in the past. If you’re interested in a live demo of the LED Pocketwatch 1.0, check out the original video after the break.
This year’s badge is designed to represent a single tooth on a single rotor of an Enigma machine. The full function of an Enigma machine is quite complex, but an individual device has three rotors with 26 teeth each (one for each letter) as well as a keypad for input and a character display to show each enciphered letter. For reference, the back of the badge has a handy diagram of a badge’s place in the Enigma system.
Reminiscent of the WWII device which the badge design recalls, each unit includes a full QWERTZ keyboard (with labeled keys!) and RGB “lampboard” for individual character output, but unlike the original there’s also a curved 16 x 64 RGB LED display made from those beguiling little ~1mm x 1mm LEDs. All in, the device includes 1051 LEDs! Combined with the unusually non-rectilinear shape of the badge and the Enigma-style Saintcon logo it makes for an attractive, cohesive look.