Thursday, February 28

Amazon’s latest program to curb emissions? One delivery day per house, per week

Tesla announces $35,000 Model 3, is closing its stores to pay for it

The real reason that Microsoft is already testing a 2020 Windows release? Azure

YouTube will fight predatory behavior by disabling comments on videos of minors

Teardown Of A Luxury Bluetooth Nightlight

If you had asked us yesterday what peak nightlight technology looked like, we might have said one of those LED panels that you stick in the outlet. At least it beats one of those little wimpy light bulbs behind the seashell, anyway. But after looking at a detailed teardown of the “Glow Light” from Casper, we’ve learned a lot about the modern nightlight. Such as the fact that there are adults who not only sleep with nightlights, but are willing to pay $89 USD for one.

But more importantly, as [Tyler Mincey] demonstrates in his excellent look inside one of these high-end nightlights, they are gorgeous pieces of engineering. Even if a nightlight next to the bed has long since gone the way of pajamas with feet on them for you personally, we think you’ll be impressed just how much technology has gone into these softly glowing gadgets.

On the outside they might look like marshmallows, but the insides look far more like what you’d expect from an expensive piece of consumer gear. It’s based on the Nordic nRF52832 Bluetooth SoC which is becoming an increasingly common sight in consumer gadgets, and uses an inertial measurement unit (IMU) to detect when it’s moved or twisted and adjusts the light output accordingly. If you’ve got the disposable income for two of these things, they’ll even synchronize so that twisting one will dim its counterpart.

The teardown that [Tyler] did on the Glow Light is quite frankly one of the best we’ve ever seen, and while it might be a bit light on the gritty technical details, it more than makes up for that with the fantastic pictures that are about as close to actual hardware porn as you can get. The only question we have now is, how long until a hacker replicates this design with a 3D printed enclosure and an ESP?

[Thanks to Adrian for the tip.]

The Volvo Polestar 2 is the first Google Android car

Archaeologists search Yucatan coast for Hernán Cortés’ lost ships

Zach Archer: Live Coding 500 Watts For ToorCamp

ToorCamp is a five-day open air tech camping event held every two years somewhere around the northwest corner of Washington state. Think of it as something like Burning Man, except you can survive for three hours without water, there aren’t a whole bunch of scenesters and Instagram celebs flying in on private planes, and everyone there can actually build something. Oh, and ToorCamp has delivery drones that will send you creme brulee. These mini creme brulees were probably made with the hot air gun hanging off a soldering station. Don’t worry, you’re getting fresh air that’ll balance out the heavy metal poisoning.

For last year’s ToorCamp, the biggest welcome sign was a 40-foot-long illuminated ToorCamp sign. This was designed, built and coded by Zach Archer, and he was at the 2018 Hackaday Superconference to give us the details on how he made it and how it was coded.

Live Coding 500 Watts

Beyond the mechanical problems of manufacturing 8-foot-tall letters, encasing them with plastic, transporting them to an island, running power, and making sure everything is waterproof (ish), there’s the issue of deciding what to put on a 40-foot-wide display. This is hard, because if you have months and months to work on a project, you can come up with some killer animations. Zach did not have months. He had a few weeks, and during that time he had to actually build the sign. The solution? Live coding.

There wasn’t any time between when the people behind ToorCamp gave the okay for a gigantic LED installation and the date of the camp to do a whole lot of coding, but Zach has been working on a framework for live coding LEDs for a while. He’s built an incredible installation at Ada’s Technical Books in Seattle with the same technology in the ToorCamp sign, and even this relatively small installation demonstrates the power of his scripting language. You can get fire effects using RGB LEDs, and if you turn that effect upside down and make it green, you get a Matrix-style screensaver.

To demonstrate this, Zach took to the stage during the Superconference to demonstrate his LED lighting system. This system is set up so that a microcontroller controls the LEDs (so good, so far), and the microcontroller receives commands from a computer. A system like this allows you to change the LEDs on the fly, vastly speeding up the time it takes to design a custom LED animation.

Although Zach wasn’t able to bring one of the gigantic LED letters from ToorCamp, he did pack a smallish LED display made out of WS2812 LEDs. With this setup, he was able to first set all the LEDs to red, then implement a wave pattern in the LEDs with just a few lines of code. All of these functions are just math operating on an array, and with the right code it’s easy to build a Mandelbrot set out of LEDs.

This talk was one of the highlights of the 2018 Hackaday Superconference. You don’t get to see live coding talks pulled off well very often, but this one went off without a hitch. Maybe it’s just our proclivity to blinky bling, but this is one of the best examples of what you can do with the right firmware running on a microcontroller connected to LEDs.

Dealmaster: Get a pair of Anker wireless noise-cancelling headphones for $80

Get ready for a Facebook-sponsored cryptocurrency

Singing mice could offer clues about how human brains manage conversation

PG&E: It’s likely our equipment was “ignition point” for deadly Camp Fire

OneWeb launches six low-Earth satellites, pledges global broadband in 2021

Help Make The Worlds Largest 3D Printed Duck

It isn’t every day that you can participate in a world record attempt! With the Great Duck Project, you could help construct the worlds largest 3D Printed duck. The Great Duck Project is an initiative to create the world’s largest globally crowdsourced collaborative 3D printed duck. Inspired by the Westport […]

Read more on MAKE

The post Help Make The Worlds Largest 3D Printed Duck appeared first on Make: DIY Projects and Ideas for Makers.

Computer Algebra for Electronic Design

A 2,000-year-old tattoo needle still has ink on the tip

EU officials say Facebook, Twitter, Google failing in “fake news” battle

Microsoft’s latest security service uses human intelligence, not artificial

Why arcade Pac-Man players literally grabbed onto the game

Anodize Aluminum Easily

We’ve all seen brightly-colored pieces of aluminum and can identify them as anodized. But what does that mean, exactly? A recent video from [Ariel Yahni] starring [Wawa] — a four-legged assistant — shows how to create pieces like this yourself. You can see [Wawa’s] new dog tag, below.

[Ariel] found a lot of how to information on using sulphuric acid, but that’s dangerous stuff. One web page we covered years ago, though, discussed a safer chemistry. The process requires lye and a common pool chemical used to decrease pH. Sodium hydroxide isn’t super safe, but it is much less problem to buy, store, and use than battery acid.

Aluminum naturally forms an oxide layer on its surface when exposed to air. Anodizing in an electrolytic cell creates a thicker oxide layer that makes the part more resistant to corrosion and wear. It also presents a porous surface that will easily take dye, leading to the bright colors you often see on anodized pieces.

In this process, the lye is used to strip the surface. Then it’s on to anodization in a solution of sodium bisulfate, with a repurposed 12 V, 2 A power supply putting a bit of current through the piece. The trick is to realize this is anodization, not cathodization. Chemically, this is the sodium salt of sulphuric acid, and you can dispose of it safely after neutralizing it with baking soda. Rit dye can provide coloring.

Overall, this is a good trick to anodize with nothing more than a trip to your local home improvement store. And [Wawa] got a stylish dog tag out of it. Win, win.

If you have some titanium you want to anodize, we got you covered.

GoT’s Sophie Turner takes on the X-Men in new trailer for Dark Phoenix

Charles Xavier (James McAvoy) and his X-Men try to save Jean Grey (Sophie Turner) in second trailer for 20th Century Fox's Dark Phoenix.

Not even Magneto's levitating machine guns can stop Sophie Turner's Dark Phoenix in the latest trailer for the latest installment in the rebooted X-Men franchise. The Game of Thrones star plays Jean Grey, a powerful psychic and telekinetic mutant who finds herself succumbing to a dark entity called the Dark Phoenix, pitting her against her former colleagues.

(Some spoilers for The X-men franchise below.)

Jean's transformation is one of the classic storylines in The X-Men comics canon, and we've seen it on the big screen before, in X-Men: The Last Stand (2006). That's when Famke Janssen's Jean Grey took out two key X-Men, allied herself with Magneto, and destroyed an entire military battalion before someone finally managed to stop her. Those are pretty big shoes to fill, and we'll see if Turner is up to the challenge.

Read 6 remaining paragraphs | Comments

New ToeJam & Earl game, 8Bitdo controller get Genesis nostalgia right

Threading 3D Printed Parts: How to Use Heat-Set Inserts

The Most Impractical Electronics Hack Makes Your Remote Massive And Furry

Makermonster is back with a really clever hack. In this video he decides to spruce up his boring old remote control to be a bit more… monsterish.  I love his silly attitude toward things. Not only is he a bit of a joker in his behavior, the entire idea of […]

Read more on MAKE

The post The Most Impractical Electronics Hack Makes Your Remote Massive And Furry appeared first on Make: DIY Projects and Ideas for Makers.

Elon Musk needs to take SEC threat seriously, experts say

Random Item Generator — A Story About Joy and Exploding Kittens

How we made a fur-covered vending machine that took Comic-Con by storm

Read more on MAKE

The post Random Item Generator — A Story About Joy and Exploding Kittens appeared first on Make: DIY Projects and Ideas for Makers.

Does WiFi Kill Houseplants?

Spoiler alert: No.

To come to that conclusion, which runs counter to the combined wisdom of several recent YouTube videos, [Andrew McNeil] ran a pretty neat little experiment. [Andrew] has a not inconsiderable amount of expertise in this area, as an RF engineer and prolific maker of many homebrew WiFi antennas, some of which we’ve featured on these pages before. His experiment centered on cress seeds sprouting in compost. Two identical containers were prepared, with one bathed from above in RF energy from three separate 2.4 GHz transmitters. Each transmitter was coupled to an amplifier and a PCB bi-quad antenna to radiate about 300 mW in slightly different parts of the WiFi spectrum. Both setups were placed in separate rooms in east-facing windows, and each was swapped between rooms every other day, to average out microenvironmental effects.

After only a few days, the cress sprouted in both pots and continued to grow. There was no apparent inhibition of the RF-blasted sprouts – in fact, they appeared a bit lusher than the pristine pot. [Andrew] points out that it’s not real science until it’s quantified, so his next step is to repeat the experiment and take careful biomass measurements. He’s also planning to ramp up the power on the next round as well.

We’d like to think this will put the “WiFi killed my houseplants” nonsense to rest – WiFi can even help keep your plants alive, after all. But somehow we doubt that the debate will die anytime soon.

Inside the Secret World of Crimping

At some point in your electrical pursuits, you’ll need to make a connector. Maybe you’re designing something that will connect to another device, or maybe the spaghetti mess of wires coming out of your Raspberry Pi has become a pain to deal with. Whatever the reason, a proper connector can solve a lot of headaches in electronics projects.

Your first thought might be to run to your favorite component distributor and order the connectors, terminals, and crimping tool. Unfortunately, those tools can cost thousands of dollars. Maybe you’ll just solder the connectors instead? Don’t! It makes for easily damaged connections.

Fortunately, [Matt Millman] has a great guide on wire-to-board connectors. This guide will explain why you should never solder crimp terminals and then get into working with some of the most common wire-to-board connector families.

For example, the Mini-PV series (which often get called “Dupont”) are one of the most ubiquitous connectors in hobbyist electronics. They’re the connector on those rainbow colored jumper wire sets, and connect perfectly to 0.1″ pin headers. The connectors and terminals are cheap, but the official HT-0095 crimp tool costs over $1500. Most crimp tools make a mess of these terminals since they require a cylindrical jaw to crimp correctly. By using a combination of two unofficial tools, you can crimp these connectors properly for under $60.

If you want to learn more about the art of wiring, the NASA Workmanship Standards are an interesting read.

[Thanks to MarkMLl for the tip!]

Arduino Revives A Classic 1980s Minitel Terminal

Before there was the Internet, there were a lot of would-be Internets. Compuserve comes to mind, as do Prodigy, GEnie, Delphi, and the innumerable BBS systems that were once gateways to worlds beyond our CRT monitors and 300 baud Hayes Supermodems.

Service providers varied by region, of course. The French postal and telephone service rolled out their service, Médium interactif par numérisation d’information téléphonique, in 1978. Mercifully and memorably shortened to Minitel, the service was originally intended primarily as an online telephone directory, and later expanded to include other services. [Kevin Driscoll] and [Julien Mailland] recently resurrected a Minitel terminal, a Videotex terminal that was the gateway to the service. The terminal they used, a model 1B, is a stylish machine with a monochrome CRT display and compact “AZERTY” keyboard. [Kevin] and [Julien] built a Videotex server for it using an Uno and a logic-level converter to keep the two talking. Using the hardware, they’ve developed a Twitter client, a webcam display, and dumb Linux terminal.

[Julien] and  [Kevin] previously authored a great history of Minitel that’s worth a read. And we’ve seen a few Minitel hacks before, including converting one to USB for use as a Raspberry Pi terminal.

Ceramic Aerogel Meets Stretch Goals

Aerogels have changed how a lot of high tech equipment is insulated. Resembling frozen smoke, the gel is lightweight and has extremely low thermal conductivity. However there’s always a downside, traditional aerogel material is brittle. Any attempt to compress it beyond 20% of its original size will change the material. Researchers at UCLA and eight other universities around the world have found a new form of ceramic aerogel that can compress down to 5% of its original size and still recover. It is also lighter and able to withstand extreme temperature cycles compared to conventional material. The full paper is behind a paywall, but you can view the abstract.

Traditional aerogel is more likely to fracture when exposed to high temperatures or repeated temperature swings, but the new material is more robust. Made from boron nitride, the atoms have a hexagonal pattern which makes it stronger.

The new material stood up to hundreds of exposures to sudden and extreme temperature spikes ranging from -198 C to  900 C over a few seconds. In a separate test, the gel lost less than 1 percent of its mechanical strength after being stored for one week at 1,400C.

Oddly, this material reacts differently to heating. Unlike most materials, it contracts as it gets hotter. This, apparently, has something to do with its ability to withstand thermal cycles and extremes better than other aerogels.

Aerogel makes great 3D printer insulation. We don’t know exactly how to make the special boron nitride material, but it is possible to create aerogels in a reasonable home lab.

Google turbo-charging the back button with Chrome’s new “back/forward cache”

Ridley Scott’s Alien will finally be released in 4K HDR for its 40th anniversary

Alphabet subsidiary trained AI to predict wind output 36 hours in advance

Flexible PCB Robot Flops Around To Get Around

In his continuing quest to reduce the parts count of a robot as far as possible, [Carl Bugeja] has hit upon an unusual design: robots built of almost nothing but PCBs.

Admittedly, calling these floppy four-legged critters robots is still a bit of a stretch at this point. The video below shows that while they certainly move under their own power, there’s not a lot of control to the movement – yet. [Carl]’s design uses an incredibly fragile looking upper arm assembly made from FR4. Each arm holds a small neodymium magnet suspended over the center of a flexible PCB coil, quite like those we’ve seen him use before as actuators and speakers. The coils are controlled by a microcontroller living where the four legs intersect. After a few uninspiring tethered tests revealed some problems with the overly compliant FR4 magnet supports, [Carl] made a few changes and upped the frequency of the leg movements. This led to actual motion and eventually to untethered operation, with the bot buzzing around merrily.

There are still issues with the lack of stiffness of the magnet arms, but we’re optimistic that [Carl] can overcome them. We like this idea a lot, and can see all sort of neat applications for flapping and flopping locomotion.

Wednesday, February 27

Star Trek: Discovery gets renewed for season three, adds a new showrunner

The city of Angkor died a slow death

Fast, friendly, and fun—we test the McLaren 720S Spider

New Part Day: The STM32 That Runs Linux

Here’s why you shouldn’t cremate radioactive dead people

Mayak Turns WiFi Traffic Into Sound

Dial-up modems were well known for their screeching soundtrack during the connection process. Modern networking eschews audio based communication methods, so we no longer have to deal with such things. However, all is not lost. [::vtol::]’s Mayak installation brings us a new sound, all its own.

The installation consists of four WiFi routers, connected to four LTE modems. These are configured as open hotspots that anyone can connect to. [::vtol::] was careful to select routers that had highly responsive activity LEDs. The activity LEDs are wired to an Arduino, which processes the inputs, using them to trigger various sounds from an attached synthesizer.

As users connect to the routers and go about their business on the Internet, the activity LEDs flash and the synthesizer translates this into an otherworldly soundtrack. The hardware is all hung on a beautiful metal and acrylic frame, which stands as a striking form in the sparse gallery.

The piece creates a very electronic soundscape, but you may prefer your installations to have a more mechanical racket. Video after the break.

Migrating blue whales rely on memory to find their feeding grounds

Breakfast spots, coffee shops, and watering holes pepper the daily commutes of modern urban humans, but we try to remember the ones where we get the best food or drinks. If we do longer journeys routinely, we also keep track of the best grazing grounds—a diner, a gas station with the best snacks, and so on.

Blue whales, according to research published in PNAS this week, seem to make similar mental notes. On their annual migration, their path takes in the spots that have proven to be the most reliable feeding grounds over the years. In doing this, the whales may bypass hotspots that pop up and fade from one year to the next, suggesting that they rely heavily on memory to find a solid meal. But in a world where “normal” is shifting rapidly, the endangered whales may no longer be able to rely on the abundance of those old, faithful feeding grounds.

Why do whales go where they go?

Blue whales are the largest animal that we know to have lived, and that means they need colossal amounts of food. Despite this, they’re picky eaters, feeding almost exclusively on small crustaceans called krill, which they eat by lunging through a large swarm with an open mouth, trapping the animals in their mouths while the sea water filters back out. And they manage to find sources of food while migrating from a summer near the poles to a winter spent closer to the equator.

Read 9 remaining paragraphs | Comments

First trailer for The OA looks as strangely surreal as its predecessor

Netflix will release Part II of The OA, its critically divisive, genre-busting drama, on March 22, 2019.

Fans of Netflix's 2016 surprise hit series The OA, rejoice—the first trailer for Part II just dropped. Be forewarned: it's fairly spoiler-y for those who haven't already seen Part I. Then again, there are probably people who are still puzzling over what, exactly, happened in Part I of this genre-busting show—is it science fiction? Fantasy? A supernatural drama? So perhaps a refresher would be welcome.

(Warning: major spoilers for season 1 of The OA below.)

Part I opened with an adopted young woman, Prairie Johnson (Brit Marling), miraculously returning home after being missing for seven years. Her adoptive parents are thrilled and perplexed, not just about where she's been all this time, but because now their once-blind daughter can see. Prairie befriends several misfits from the local high school: four boys (Steve, French, Buck, and Jesse) and a teacher, Betty Broderick-Allen (Phyllis Smith), dubbed "BBA." Over the rest of the season, she tells them her story, beginning with a near-death experience (NDE) when she was a child, the same accident that left her blind.

Read 7 remaining paragraphs | Comments

KiCon Gets Our KiCad Conference On

Oh, what’s KiCon you say? KiCon is the first dedicated conference on our favorite libre EDA tool: KiCad, organized by friend of Hackaday Chris Gammell and scheduled for April 26 and 27th in Chicago.

Having stuffed ourselves full of treats through the holidays, followed by sleeping through the calm winter months, we find ourselves once again facing the overwhelming tsunami of conference season. This year things are heating up early, and you’ll find a lot of Hackaday staff are headed to Chicago for KiCon.

Now that early selection of talks has been released, the end of April can’t come soon enough. Being user focused the conference is centered around what people make using the tool, and how it can be leveraged to improve your next project. Wayne Stambaugh, the project lead for KiCad itself, will be on hand to talk about the state of the tool and what the road map looks like from here. There will be a pair of talks on effective version control and applying the practice of continuous integration and deployment to the EDA world. We’ll hear about methods for working with distributed project members and tips for designing easy to learn beginner soldering kits. And there will be two talks on RF and microwave design, one of which we hope will teach us how to use that mysterious toolbar with the squiggly lines.

For an extra dash of flavor there will be a few Hackaday staff participating in the festivities. is making the flight over to present a talk about how to quickly generate and use 3D models in FreeCAD, something we’re very interested in applying to our messy part libraries. Kerry Scharfglass will be around to walk through how to lay out a manufacturing line and design the test tools that sit on it. And our illustrious Editor in Chief Mike Szczys will be roaming the halls in search of excellent hacks to explore and brains to pick.

Interested in attending or volunteering for the conference? Now is the time to buy your tickets and/or apply as a volunteer!

Of course there’s a ton of fun and games that surround KiCon. Hackaday will be hosting another edition of our always exciting bring-a-hack the evening of Saturday April 27th after official activities wrap up. Plan to stop by and enjoy a beverage at this gathering of like minded hackers who are showing off awesome toys. We’ll get more location details out soon, but for now, grab a ticket to the con and make your travel arrangements.

Renewable hydrogen could be competitive in a decade, researchers say

FTC lipoes diet company for fake Amazon reviews of “fat-blocking” pills

Energizer’s beastly smartphone has an 18,000mAh battery

Teardown: AppLights Personalized Projection

Cooling 2D ion crystal may pave way for large-scale quantum computer

Ask Hackaday: Can We Get Someone To Buy And Destroy RAM?

We like blinky things. We’re moths drawn to the flame of serially-addressable RGB LEDs. If the LEDs are smaller, we want to know. If you can drive more of them, we want to know. That said, the most interesting news out of CES last January was both right up our alley, and immensely disappointing. Corsair, makers of RGB computer fans, RGB CPU coolers, and RGB keyboards and mice, have a new product out: RGB RAM, because professional gamers and streamers have a higher win percentage when their RAM is illuminated.

The key innovation of the new Corsair Dominator Platinum RGB DDR4 DRAM is called, ‘Capellix LEDs’. The press surrounding these LEDs gives a clear advantage: right now, the RGB LEDs in your gaming system are mounted in a large SMD package, like a WS2812 or APA101. These large packages reduce LED density, and making LEDs smaller means moar RGB — more colors, or brighter colors, or better efficiency. The key advancement in Capellix LEDs is taking the guts of a serially addressable RGB LED and putting it in a smaller package. Instead of a package that’s 2.8mm³ in volume, the Capellix LED is ‘just 0.2mm³ in size’. The few pictures available of these LEDs give the impression they’re about the size of an 0805 package. It’s small, and we’d like to get our hands on some.

Where these LEDs come from is anyone’s guess, but Corsair did partner with Primax, a Taiwanese manufacturer of computer peripherals, to pull this off. There is no mention of Capellix LEDs in Primax’s press releases, and we don’t actually know if these are the smallest serially addressable RGB LEDs available; we don’t even know if they’re serially addressable. There could easily be a small microcontroller in the Corsair Dominator Platinum RGB DDR4 DRAM, as each stick is only driving twelve individually controllable RGB LEDs.

The bottom line is, someone needs to spend $160 for 16GB of RAM, then tear the whole thing apart, preferably with close-up pics of the fancy new RGB LEDs.

A cynical reader would say that Capellix LEDs are simply existing LEDs, the name ‘Capellix’ was trademarked by Corsair, and these LEDs were shoved into a stick of RAM with a significant markup. This, surprisingly, is demonstrably wrong because there is no entry for ‘Capellix’ in the United States Patent and Trademark Office Trademark Electronic Search System. That doesn’t mean the spirit of the cynic is wrong, though; ROHM semiconductors just released a new side-view RGB LED that might be smaller than Corsair’s Capellix LEDs. There are, of course, RGB LEDs available in similar sizes, but none of these are serially-addressable like a WS2812 or APA101. We don’t know what’s in these fancy sticks of RAM, but we’re waiting for someone to do a tear down so we can find out.

Report: US Cyber Command took Russian trolls offline during midterms

Anti-cheat software causing big problems for Windows 10 previews

Ten 3D Printed Gadgets That Just Can’t Stay Still

There was a time, not so very long ago, when simply getting a 3D printer to squirt out an object that was roughly the intended shape and size of what the user saw on their computer screen was an accomplishment. But like every other technology, the state of the art has moved forward. Today the printers are better, and the software to drive them is more capable and intuitive. It was this evolution of desktop 3D printing that inspired the recently concluded 3D Printed Gears, Pulleys, and Cams contest. We wanted to see what hackers and makers can pull off with today’s 3D printing tools, and the community rose to the challenge.

Let’s take a look at the top ten spinning, walking, flapping, and cranking 3D printed designs that shook us up:

Mechanical Take on a Classic Part

The seven segment LED display has been part of the hacker’s arsenal since we first started banging electrons together, but Peter Lehnér’s mechanical recreation of this quintessential circuit component shows that even the classics can benefit from a fresh perspective now and again. These giant digits might retain the look of their electronic counterparts, but that’s where the similarities end. Behind the scenes, there’s nothing but 3D printed cogs and wheels actuating the individual segments. They aren’t just some novelty either, as Peter makes a compelling case for how these large high visibility displays could be put to practical use in scoreboards or other outside displays where real LEDs might not be ideal.

An impressive mechanical design that not only looks gorgeous but may even have a practical application, this entry was an early favorite for all the judges and was an easy pick for our first $275 cash prize.

The Mad Scientist’s Music Box

If you had to associate a sound with 3D printed mechanical gadgets, it would likely be the whir of a stepper motor or the hollow clacking of plastic pieces hitting each other. But the incredible Automata Music Sequencer created by Dean Segovis proves that even PLA has a song in its heart. Inspired by the design of the classic music box, his creation uses printed drums with movable lugs to trigger banks of micro switches; giving you the makings of a basic sequencer. When paired with that most classic of ICs, the 555 timer, electronic music is born.

Not only did Dean create a printed contraption that ticks all the boxes for our contest, but we were impressed with his documentation which gives the reader insight into his creative process for this project. This project beeped and blooped its way into the number two spot, and another $275 cash prize.

Time Flies With this Printed Clock

If you had a mental sound in mind for moving 3D printed creations, you certainly had a look in mind as well. If you expected all the entries to be rough-hewn and rainbow colored, Steve’s 3D Printed Pendulum Clock is here to show you that even plastic can be gorgeous if you know how to work with it. His mechanical pendulum clock isn’t just a pretty face either, it can run for up to eight days on a single winding while maintaining an accuracy within two minutes. But frankly, even if this beauty only kept time for a single day, we’d still be happy to have it on our wall.

The culmination of six months of work, this printed timepiece is a true work of mechanical art and more than deserving of the $275 cash prize.

Runners Up:

Truth be told, this was a difficult contest to judge as we were absolutely floored with the creativity shown in so many of the entries. Some of these creations really exceeded our expectations with this contest, and served as a fascinating look into what’s possible with the technology. While they couldn’t all take the top spots, we think any one of these runners-up prove that the 3D printing revolution is alive and well:

Even narrowing it down to these seven entries was quite a challenge. Check out the complete list of contest entries if you’re looking to get inspired for your next 3D printed project.

Honorable Mentions

We want to feature three notable entries that didn’t make it into the prize pool above, but are all well worth celebrating. Vertical landing and takeoff for fixed-wing aircraft means rotating the thrust and that’s exactly what this tilt rotor project accomplishes. The 3D printed syringe actuator is demonstrated by injecting liquid into an acoustic levitator; a great trick to remember when getting into scientific experimentation. And finally, the crossed helical gears design tool is a great way to leverage OpenSCAD to print gears for your projects when the axes are not on the same plane.

We had a blast looking in on these gear projects and that excitement doesn’t end with this contest. Keep those hacks coming!

IT snafu leads to IBM asking applicants if they are “yellow” or “coloured”

Hack My House: Raspberry Pi as a Touchscreen Thermostat

Your thermostat is some of the oldest and simplest automation in your home. For years these were one-temperature setting and nothing more. Programmable thermostats brought more control; they’re alarm clocks attached to your furnace. Then Nest came along and added beautiful design and “learning features” that felt like magic compared to the old systems. But we can have a lot more fun. I’m taking my favorite single-board computer, the Raspberry Pi, and naming it keeper of heat (and cool) by building my own touchscreen thermostat.

Mercury thermostats started it all, and were ingenious in their simplicity — a glass capsule containing mercury, attached to a wound bi-metal strip. As the temperature changes, the contraption tilts and the mercury bead moves, making or breaking contact with the wiring. More sophisticated thermostats have replaced the mercury bead with electronics, but the signaling method remains the same, just a simple contact switch.

This makes the thermostat the prime target for an aspiring home automation hacker. I’ve had this particular project in mind for quite some time, and was excited to dive into it with simple raw materials: my Raspberry Pi, a touchscreen, and a mechanical relay board.

Hot Wiring a Heater

If you replace your standard home thermostat you find the most common setup has either 4 or 5 wires running to your HVAC equipment. These include a 24 volt AC power wire, leads to switch the heater, air conditioner, and fan, and finally an optional “common” wire, which is often used to power a smart thermostat. In order to remain backwards compatible, virtually all residential HVAC units in my part of the world use a version of this layout. A common troubleshooting technique is to “hot wire” an HVAC system — directly connecting the 24 volt wire to either the heater line or the the AC line.

For the hacker, the takeaway is that a simple relay is perfect to drive the system. For my setup shown above, I bridge the red 24 volt line to the yellow heater line, and the system roars to life. I’m using the 4 channel relay module from SainSmart. Anything that has GPIO and can talk to a temperature sensor is enough to build a thermostat. As you all know, however, I have committed to a building a Raspberry Pi into every room in my house, and I’m using all that extra power to run the official 7 inch touchscreen as a display and interface for the HVAC. I’m also using some Adafruit MCP9808 temperature sensors, which talk to our Pis using the I2C bus.

I2C Gotcha: Never Cross the Streams

Partway through the build, I did run into a very strange problem. After a few minutes of working perfectly, the temperature sensor began returning 0C, the touchscreen stopped responding to touches, and i2cdetect thought there was an i2c device at every address. I knew the touchscreen and temperature sensor were sharing the I2C bus, so I began troubleshooting what was causing that bus to hang.

The display has 4 pins and a ribbon cable. Those pins are power, ground, and the two I2C pins. When connecting an original Raspberry Pi A or B, those I2C pins need to be wired to the Pi’s single I2C bus. Starting with the Pi A+ and B+, there is a second I2C bus dedicated to the display, physically connected through the ribbon cable. I was unknowingly connecting the display to both I2C buses, not to mention bridging the two buses together. When they happened to both talk at once, both went down. TLDR: Only connect the two dedicated power pins and the ribbon cable, not the I2C pins on the display.

Temperature Monitoring with Python and Flask

Last time, we used Python and Flask to send requests to the Raspberry Pi wired to the garage door. We’re expanding on that idea to build an HTTP interface for the Thermostat Pi as well. An HTTP request to the correct path will return the detected temperature value. Readers have pointed out the possibility of overheating the Raspberry Pis, so I’ve also added the Pis’ CPU temperatures to the list of monitored temperatures.

from flask import Flask
import smbus
import os
import time
import RPi.GPIO as GPIO
app = Flask(__name__)
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.OUT, initial=GPIO.HIGH)
GPIO.setup(18, GPIO.OUT, initial=GPIO.HIGH)
GPIO.setup(27, GPIO.OUT, initial=GPIO.HIGH)
bus = smbus.SMBus(1)
config = [0x00, 0x00]
bus.write_i2c_block_data(0x18, 0x01, config)

@app.route("/enable/<pin>")
def enable(pin):
        GPIO.output(int(pin), GPIO.LOW)
@app.route("/disable/<pin>")
def disable(pin):
        GPIO.output(int(pin), GPIO.HIGH)
@app.route("/temp/<sensor>")
def temp(sensor):
        if sensor == "internal" :
                temp = os.popen("vcgencmd measure_temp").readline()
                ctemp = float(temp.replace("temp=","").replace("'C",""))
                return str(ctemp * 1.8 + 32)
        if sensor == "external" :
                bus.write_byte_data(0x18, 0x08, 0x03)
                time.sleep(0.5)
                data = bus.read_i2c_block_data(0x18, 0x05, 2)
                ctemp = ((data[0] & 0x1F) * 256) + data[1]
                if ctemp > 4095 :
                        ctemp -= 8192
                ctemp *= 0.0625
                ftemp = ctemp * 1.8 + 32
                return str(ftemp)
if __name__ == "__main__":
        app.run(host='0.0.0.0', port=80, debug=False)

As you can see above, we’ve exposed the two temperatures as part of our RESTful interface. Now that we have access to that data, what do we do with it? Enter RRDTool.

Round-Robin Databases and Pretty Graphs

You may not be familiar with the name, but you’ve probably seen graphs produced by RRDTool, most notably in the Cacti monitoring suite. RRDTool is a simple round-robin database built on creating pretty graphs, and the idea that older data needs less resolution than fresh data. It might be useful to track temperature minute-by-minute, but usually only the last couple hours of that data. Last week’s data doesn’t need to be as granular: an average temperature for each hour might be enough. Last month, you might just care about the daily averages, etc. RRDTool lets you specify multiple round robin archives for each data source, with different time spans and granularity.

One more trick I’ve made use of is specifying a data source to track when the heater or air conditioner is running. This allows comparing temperatures to the HVAC duty cycle, which is useful for tracking down insulation and efficiency issues. Also, this data will be important for tuning the thermostat to avoid “short cycles”, when the system doesn’t run long enough to reach full efficiency, but turns on and off several times in short succession.

Stitching Together All The Parts That Make an Automatic Thermostat

Now that we’ve sorted the connection to the heater, temperature monitoring, and database, it’s time to put them all together. I’ve opted for a one-minute cycle: polling all our data sources, recording that data, and running the heater control logic every 60 seconds. To avoid short cycling, there is a temperature width setting — you could call it the system hysteresis. I’ve settled on a four degree swing: The thermostat turns on once the observed temperature drops two degrees below the target, and runs until it’s raised two degrees above it. This is the great thing about rolling your own system: you get to decide exactly how it will work.

import time
from rrdtool import update as rrd_update
import pycurl
import json
from StringIO import StringIO
starttime=time.time()
tempSensors = ("thermostat-temp-external", "thermostat-temp-internal", "office-temp-external", "office-temp-internal",
               "office-temp-outside", "garage-temp-internal", "garage-temp-external", "livingroom-hum-external",
               "livingroom-temp-external", "livingroom-temp-internal", "office-hum-outside")
#settings = {"temp": 70, "mode": "heat", "heater-width": 2, "ac-width": 2}
c = pycurl.Curl()
c.setopt(c.URL, 'http://thermostat/disable/17')
c.perform()
c.setopt(c.URL, 'http://thermostat/disable/27')
c.perform()
c.close()
state = {"activity": "idle"}
while True:
        with open('/var/www/data/settings', 'r') as f:
                settings = json.load(f)
        f.closed
        temperatures = {}
        c = pycurl.Curl()
        for sensor in tempSensors:
                try:
                        buffer = StringIO()
                        c.setopt(c.URL, 'http://' + sensor.replace("-", "/")) #change dashes to /
                        c.setopt(pycurl.WRITEFUNCTION, buffer.write)
                        c.perform()
                        temperatures[sensor] = float(buffer.getvalue())
                        rrd_update('/var/www/data/' + sensor + '.rrd', 'N:%f' %(temperatures[sensor]))
                except Exception as e:
                        print(e)
        with open('/var/www/data/temps', 'w') as f:
                json.dump(temperatures, f)
        f.closed
        if settings["mode"] == "heat": #if mode heat (auto should compare to the outside temp, to figure out heat or AC
                if state["activity"] == "idle" and temperatures["thermostat-temp-external"] < (settings["temp"] - (settings["heater-width"] / 2.0)) :
                        c.setopt(c.URL, 'http://thermostat/enable/17')
                        c.perform()
                        c.close()
                        state["activity"] = "heating"
                elif state["activity"] == "heating" and temperatures["thermostat-temp-external"] > (settings["temp"] + (settings["heater-width"] / 2.0)) :
                        c.setopt(c.URL, 'http://thermostat/disable/17')
                        c.perform()
                        c.close()
                        state["activity"] = "idle"
        with open('/var/www/data/state', 'w') as f:
                json.dump(state, f)
        f.closed
        if state["activity"] == "heating" :
                rrd_update('/var/www/data/heater-state.rrd', 'N:100')
        else :
                rrd_update('/var/www/data/heater-state.rrd', 'N:0')
        if state["activity"] == "cooling" :
                rrd_update('/var/www/data/ac-state.rrd', 'N:100')
        else :
                rrd_update('/var/www/data/ac-state.rrd', 'N:0')
        time.sleep(60.0 - ((time.time() - starttime) % 60.0))

Touchscreens: You’re Going to Want a GUI

All that’s left is the user interface. The actual hardware is a Raspberry Pi 3 B+, booted over PXE, with the official 7 inch touchscreen, mounted on a 3-gang wall box. For software, we’re using Chromium in fullscreen mode, and building a webpage optimized for the Pi display’s small size. You may remember when wiring in the garage door opener, we put a single button on a web page. Today we’re expanding that page to make a central control panel.

<?php
  $settings = json_decode(file_get_contents('/var/www/data/settings'));
  $temps = json_decode(file_get_contents('/var/www/data/temps'));
  $state = json_decode(file_get_contents('/var/www/data/state'));
  if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if ($_POST["up"]) {
      $settings->{'temp'} += 1;
    }
    if ($_POST["down"]) {
      $settings->{'temp'} -= 1;
    }
    if ($_POST["heat"]) {
      $settings->{'mode'} = "heat";
    }
    if ($_POST["cool"]) {
      $settings->{'mode'} = "cool";
    }
    if ($_POST["auto"]) {
      $settings->{'mode'} = "auto";
    }
    if ($_POST["off"]) {
      $settings->{'mode'} = "off";
    }
    if ($_POST["GDO"]) {
      $curl_handle = curl_init();
      curl_setopt( $curl_handle, CURLOPT_URL, 'http://garage/moment/20' );
      curl_exec( $curl_handle ); // Execute the request
      curl_close( $curl_handle );
    }
    $file = fopen('/var/www/data/settings', "w") or die("Unable to open file!");
    fwrite($file, json_encode($settings, JSON_NUMERIC_CHECK));
  }
?>
<!DOCTYPE html>
<html>
<head>
 <meta http-equiv="refresh" content="60">
 <script src="functions.js"></script>
 <script>
  function startTime() {
   var today = new Date();
   document.getElementById('txt').innerHTML = formatDate(today, "dddd h:mm:ss TT d MMM yyyy");
   var t = setTimeout(startTime, 500);
  }
 </script>
</head>
<body onload="startTime()">
 <div style="width:790px; margin:auto;">
  <div style="height:140px;">
   <div style="float:left;">
    <form method="post">
     <input type="submit" name="up" value="▲" style="padding:25px 25px;">
    </form>
    <form method="post">
     <input type="submit" name="down" value="▼" style="padding:25px 25px;">
    </form>
   </div>
   <div style="float:left; margin-left:5px; margin-top:60px;">
    Thermostat set to: <?php  echo $settings->{'temp'}; ?>
   </div>
   <div style="float:left; margin-left:25px;">
    <div id="txt"></div>
    Inside: <?php echo round($temps->{'thermostat-temp-external'}, 2); ?>
    <br> Outside: <?php echo round($temps->{'office-temp-outside'}, 2); ?>
    <br> System is: <?php echo $state->{'activity'}; ?>
   </div>
   <div style="float:right;">
    <form method="post">
     <input type="submit" name="cool" value="cool" style="height:70px; width:100px;<?php if($settings->{'mode'} == "cool"){echo "color:red;";}?>">
    </form>
    <form method="post">
     <input type="submit" name="off" value="off" style="height:70px; width:100px;<?php if($settings->{'mode'} == "off"){echo "color:red;";}?>">
    </form>
   </div>
   <div style="float:right;">
    <form method="post">
     <input type="submit" name="heat" value="heat" style="height:70px; width:100px;<?php if($settings->{'mode'} == "heat"){echo "color:red;";}?>">
    </form>
    <form method="post">
     <input type="submit" name="auto" value="auto" style="height:70px; width:100px;<?php if($settings->{'mode'} == "auto"){echo "color:red;";}?>">
    </form>
   </div>
  </div>
  <div style="margin:auto; text-align:center;">
<?php
  $opts = array ( "-w", "709", "-h", "200", "-Y",
    '-a', "PNG", "--start=-14400","--end=now",
    'DEF:heater-state=/var/www/data/heater-state.rrd:state:AVERAGE',
    'AREA:heater-state#FF000050:"Heater usage"',
    'DEF:air-state=/var/www/data/ac-state.rrd:state:AVERAGE',
    'AREA:air-state#0000FF50:"air usage"',
    'DEF:livingroom-hum=/var/www/data/livingroom-hum-external.rrd:humidity:AVERAGE',
    'LINE1:livingroom-hum#000000:humidity',
    'DEF:therm-temp=/var/www/data/thermostat-temp-external.rrd:temperature:AVERAGE',
    'LINE1:therm-temp#0000FF',
    'DEF:outside-temp=/var/www/data/office-temp-outside.rrd:temperature:AVERAGE',
    'LINE1:outside-temp#FF0000'
    );
  $graphObj = new RRDGraph('-');
  $graphObj->setOptions($opts);
  try {
    $ret = $graphObj->saveVerbose();
  } catch (Exception $e) {
    echo 'Caught exception: ',  $e->getMessage(), "\n";
    echo rrd_error()."\n";
  }
  if(!$ret){
    echo rrd_error()."\n";
  } else {
    #var_dump($ret);
    echo '<img alt="My Image" src="data:image/png;base64,' . base64_encode($ret['image']) . '" />';
  }
?>
  </div>
  <div style="float:left;">
   <form method="post">
    <input type="submit" name="GDO" value="Cycle Garage" style="padding:25px 15px; margin-right:25px;">
   </form>
  </div>
</body>
</html>

Most of it is straightforward PHP and HTML. The most interesting element is the way the RRDTool graphs are dynamically generated at page load, and included in the html document. This allows future customization, like the ability to zoom out and see older data, or select other data sources to include.

The 3D printed mount finishes the project nicely. It’s rather important to get that temperature sensor away from the heat of the Pi, in order to get an accurate reading.

We have more to come, so keep your eyes peeled, and feel free to follow me over on twitter for the occasional sneak peak or suggetions for the next step in my home automation adventure!