Apple HomeKit Accessory Development Kit Gets More Accessible

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

Apple’s previous loosening-of-restrictions allowed people to begin building devices which could interact natively with their iOS devices without requiring a specific Apple-sold “auth chip” to authenticate them. This meant existing commercial devices could become HomeKit enabled with an OTA, and hobbyists could interact in sanctioned, non-hacky ways. Part of this was a release of the (non-commercial) HomeKit specification itself, which is available here (with Apple developer sign in, and license agreement).

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.

Think You Know CURL? Care To Prove It?

Do you happen to remember a browser-based game “You Can’t JavaScript Under Pressure”? It presented coding tasks of ever-increasing difficulty and challenged the player to complete them as quickly as possible. Inspired by that game, [Ben Cox] re-implemented it as You Can’t cURL Under Pressure!

In it, the user is challenged in their knowledge of how to use the ubiquitous curl in a variety of different ways. Perhaps this doesn’t sound terribly daunting, especially if your knowledge of curl is limited to knowing it is a command-line tool to fetch something from a web server. But curl has a staggering number of features. The man page is over 4500 lines in length. The software’s main site offers a (free) 250+ page guide on how to use curl and libcurl. Reflecting on this is exactly what led [Ben] to create his challenge.

It’s a wonderful piece of work, but things get really interesting once [Ben] starts talking about the infrastructure behind it all. At its core the game works by giving the user a problem and a virtual machine, and catching outgoing HTTP calls to see whether they look correct. If the outgoing HTTP call is the right solution for the problem, terminate the current VM and start up the next one with the next problem. He’s put a lot of work into getting suitable VMs up and running quickly, securely, and properly isolated. The code can be found on the project’s GitHub repository for those who want a closer look.

But that’s not all. [Ben] says that in the past he’s had a bad habit of presenting interactive features in his blog posts that can’t keep up with sudden demand. So to address that, the system auto-scales as needed with a small Linux cluster; small brick-sized PCs are started and shut down automatically to meet demand. Hey, the only thing cooler than a functioning cluster is a cluster doing an actual job, like this one that detects NSFW images.

Word Clock Does The Job With Laser-Etched Acrylic

As far as telling the time, word clocks go out of their way to spell it out for you. As long as you know the language, they’re a stylish and effective way to get the message across. [Simon] built an elegant, stripped-back word clock of his own, with a laser cutter helping to get the job done.

The core of the build is an Arduino Nano, hooked up to a string of 22 WS2812B LEDs, driven via the FastLED library. An NXP PCF8563T serves as the real-time clock, to ensure stable and accurate timekeeping. The electronics are all housed inside an enclosure that appears to be constructed from PCBs, with instructions on operating the clock printed on the base.

The actual display is via laser-cut and laser-etched acrylic. The display piece slides into the top of the clock, with the LEDs edge lighting various segments to display the relevant words that make up the current time. The clock is designed in such a way that these display slides can be easily switched out to change the look of the clock, with different fonts and designs.

It’s a quick and clean take on the popular word clock design, and one any makerspace could whip up in a weekend. As far as word clocks go, however, the sky really is the limit when it comes to complexity. Video after the break.

Continue reading “Word Clock Does The Job With Laser-Etched Acrylic”

3D Printing Paper — Sort Of

There are only a few truly ancient engineered materials, and among the oldest is paper. Traditionally, paper is flat and can be bent into shapes. However, paper can be molded into for example packing material or egg cartons. [XYZAidan]  has a process that can recycle paper into 3D cardboard-like objects. You need a 3D printer, but it doesn’t actually print the paper. Instead, you use the printer to create a mold that can form paper pulp you make out of recycled paper and a blender.

[Aidan] provides seven different molds ranging from a desk tray and a dish to simple cubes and coasters. The molds are made in three parts to assist in removing the finished product.

Continue reading “3D Printing Paper — Sort Of”

Folding An Off-The-Shelf 3D Printer

Most 3D printers don’t take up a lot of space, but they can be pretty bulky and awkward to travel with. [Jón Schone] needed a compact folding 3D printer for a secret project on his YouTube channel ProperPrinting, so he decided to modify a Creality Ender 3 Pro to achieve this.

Starting with a brand new Ender 3 Pro, and his first steps were to move the display and power supply unit into the bottom frame to make space for the folding top frame. For the folding mechanism, he settled on a four bar linkage that allows the vertical frame to translate to the front of the printer as it folds down, which lets it become a really compact package with minimal wasted space. The joints consist of fitting 3D printed in carbon fibre reinforced nylon, with bolts for shafts. The entire mechanism is made adjustable for fine-tuning by using threaded rod and sliding mounting points on the extruded frame. Small brackets on each side of the frame allows the printer to snap securely into both its upright and folded positions.

All in all we think this is well-designed and beautifully executed hack, enough to make us really want to build one for ourselves. It will remain to be seen if any slop develops with repeated folding and use, especially at the snap-in end stops, but that should still be an easy fix if it happens.

We’ve previously featured [Jón]’s custom 3D printed D-sub connectors, also for his Ender 3. Also check out another folding printer, the X-printer.

Continue reading “Folding An Off-The-Shelf 3D Printer”

Compact 3D Printed Hovercraft Is Loungeroom Floor Fun

Hovercraft come in all shapes and sizes. and while they’ve largely disappeared as a major commercial transit option, they remain popular in the hearts and minds of makers everywhere. [RCLifeOn’s] latest project concerns a compact, indoor-sized hovercraft piloted via FPV, and it looks to be brilliant fun.

The build consists of a 3D printed chassis, with a skirt cut out of a garbage bag and held on with press-fit clamps. Twin ducted fans are employed, one for propulsion, the other for levitation. A 5GHz FPV camera is nestled on top of the rear fan housing to provide a video feed for the pilot.

The craft was somewhat uncontrollable in initial testing. Tweaks to the weight distribution and the addition of a bigger rudder helped tame the rig. [RCLifeOn] also demonstrates a unique way of balancing damaged fan assemblies in the field; it’s a technique we’ll keep in the back of our mind for future use.

The trick to a good hovercraft build is light weight, big control surfaces, and a good skirt. You can even go off-book and use the Coanda effect, if you’re so inclined. Video after the break.

Continue reading “Compact 3D Printed Hovercraft Is Loungeroom Floor Fun”

Handheld MQTT Remote For Home Automation

If you’re working on a home automation project, you’re probably knee-deep into MQTT by now. If not, you should be. The lightweight messaging protocol is an ideal choice for getting your “Things” on the Internet, and controlling them all can be done easily through a simple web interface or an application on your mobile device. Or if you’re [serverframework], you make yourself a handsome little all-in-one MQTT remote.

The hardware here is pretty simple; inside there’s just a NodeMCU ESP8266 development board, some buttons, an RGB LED to give feedback, and a 3.7v 1200mAh LiPo battery with associated charging module. Everything is held inside a nice little wooden box that looks like it would fit right in with the living room decor. We’d like to see some kind of a cover over the exposed perfboard the circuit is assembled on, but that’s arguably a personal preference kind of thing.

Most of the magic in this project is actually happening on the software side. Not only does the provided source code handle all the MQTT communications with Home Assistant, but it provides a clever user interface that allows [serverframework] to perform 25 functions with just five buttons. No, you aren’t seeing things. There are actually six buttons on the device, but one of them is a dedicated “power” button that wakes the remote out of deep sleep.

If you’d like to learn more about getting this protocol working for you, our resident MQTT guru [Elliot Williams] has plenty of thoughts on the subject. From his talk at the 2017 Hackaday Supercon to his home automation tutorial series, there’s plenty of information to get you started.

Continue reading “Handheld MQTT Remote For Home Automation”