There was a time when you could hold onto a TV or A/V receiver for the better part of the decade and not feel as though you were missing out on the latest and greatest features. But today you’re lucky to get three years out of a “smart” TV before it’s either supplanted by a vastly improved version, or falls victim to some weird issue that (surprise, surprise) means you need to buy a new one.
Not content with the status quo of planned obsolescence, [aamarioneta] recently set out to add a sprinkling of modern convenience to a circa 2008 Denon AVR 2308 home theater receiver. Like any good A/V receiver, the AVR 2308 features a dizzying array of ports on the back panel, one of which happens to be for an external infrared receiver. This turned out to be the perfect place to jack in an ESP8266, earning this 12 year old receiver an honorary membership into the Internet of Things.
The interesting thing about this hack is that there’s actually no IR involved. Sure, the code could be used to drive an IR LED attached to the ESP8266’s GPIO pins, and the AVR 2308 would respond as if the original remote was being used; but where’s the fun in that? Thanks to the receiver port, they’re able to inject the IR codes directly into the device. It’s the same protocol, just without the photons.
With a simple web-interface running on the ESP8266, they can control the AVR 2308 from a smartphone’s browser anywhere in the house. From here it would only take a few more lines of code to tie it into an existing home automation system or add in support for Alexa voice control.
Like many of us, [Zach Archer] enjoys the comfort of his darkened room so much that he has trouble getting up and facing the day. To make things a little easier for himself, he decided to put together a custom alarm clock that would fill his mornings with the glorious glow of LEDs; and since he finds the mountains an inspirational sight he decided to wrap the whole thing up in a 3D printed enclosure that resembles snow capped peaks.
But even Bob Ross himself couldn’t have imagined a snowy mountain range that featured an integrated e-ink screen. The big 4.2″ panel is connected to a custom designed PCB by [romkey], which was graciously donated for this project. An ESP32 runs the show, providing a convenient web interface to control not only the clock, but various aspects of the mountain’s internal LEDs such as fade in time and total duration.
[Zach] says he originally printed the mountains in PLA, but the heat generated by the LEDs eventually started to cause things to warp. Switching over to translucent PETG not only solved the heat problem, but made for a very effective LED diffuser. Rather than complex animation patterns, he’s found that smoothly transitioning between different shades of blue and green seems to work best for him in the mornings.
If that’s your wish, then help could be at hand in the form of [Victor Ribeiro]’s RPiAPI. As its name suggests, it’s an API for your Raspberry Pi, and in particular it provides a simple web-accessible endpoint wrapper for the Pi’s GPIO library from which its expansion port pins can be accessed. By crafting a simple path on the address of the Pi’s web server each pin can be read or written to, which while it’s neither the fastest or most accomplished hardware interface for the platform, could make it one of the easiest to access.
Security comes courtesy of Apache password protected directories via .htaccess files, so users would be well-advised to consider the implications of connecting this to a public IP address very carefully. But for non experts in security it still has the potential to make a very useful tool in the armoury of ways to control hardware from the little single board computer. It’s not the first try at this idea as we’ve seen a PHP example early in the Pi’s lifetime as well as one relying upon MySQL, but it does seem to be a simpler option than the others.
But don’t worry, the WordClock-1 knows more than just the bad words. Rather than using an array of illuminated letters as we’ve seen in previous clocks, this one uses six alphanumeric LED displays. So not only can it display the time expressed with words and numbers, but it can show pretty much any other text you might have in mind.
[Mitch] is partial to having his clock toss a swear word on the display every few seconds, but perhaps you’d rather have it show some Klingon vocabulary to help you brush up. The lack of extended characters does limit its language capabilities somewhat, but it still manages to include Spanish, Italian, French, and Croatian libraries.
The ESP32 powered clock comes as a kit, and [Mitch] has provided some very thorough documentation that should make assembling it fairly straightforward as long as you don’t mind tackling a few SMD components. Additional word databases are stored on an SD card, and you can easily add your own or edit the existing ones with nothing more exotic than a text editor. The clock itself is configured via a web interface, and includes features like RGB LED effects and support for pulling the time down from an external GPS receiver.
Generally speaking, home automation isn’t as cheap or as easy as most people would like. There are too many incompatible protocols, and more often than not, getting everything talking requires you to begrudgingly sign up for some “cloud” service that you didn’t ask for. If you’re an Apple aficionado, there can be even more hoops to jump through; getting your unsupported smart home devices working with that Cupertino designed ecosystem often involves running your own HomeKit bridge.
To try and simplify things, [Michele Gruppioni] has developed a firmware for the ubiquitous Sonoff WIFI Smart Switch that allows it to speak native HomeKit. No more using a Raspberry Pi to act as a mediator between your fancy Apple hardware and that stack of $4 Sonoff’s from AliExpress, they can now talk to each other directly. In the video after the break you can see that the iPad identifies the switch as unofficial device, but since it’s compliant with the HomeKit API, that doesn’t prevent them from talking to each other.
Not only will this MIT licensed firmware get your Sonoff Basic, Sonoff Slampher, or Sonoff S26 talking with your Apple gadgets, but it also provides a web interface and REST API so it retains compatibility with whatever else you might be running in your home automation setup. So while the more pedestrian users of your system might be turning the porch light on with their iPhones, you can still fire it up with a Bash script as nature intended.
Debuggers come in all shapes and sizes, offering a variety of options to track down your software problems and inspecting internal states at any given time. Yet some developers have a hard time breaking the habit of simply adding print statements into their code instead, performing manual work their tools could do for them. We say, to each their own — the best tools won’t be of much help if they are out of your comfort zone or work against your natural flow. Sometimes, a retrospective analysis using your custom-tailored debug output is just what you need to tackle an issue.
If the last part sounds familiar and your language of choice happens to be Python, [Alex Hall] created the Bird’s Eye Python debugger that records every expression inside a function and displays them interactively in a web browser. Every result, both partial and completed, and every value can then be inspected at any point inside each individual function call, turning this debugger into an educational tool along the way.
With a little bit of tweaking, the web interface can be made remote accessible, and for example, analyze code running on a Raspberry Pi. However, taking it further and using Bird’s Eye with MicroPython or CircuitPython would require more than just a little bit of tweaking, assuming there will be enough memory for it. Although it wouldn’t be first time that someone got creative and ran Python on a memory limited microcontroller.
Just get on the same network and load up the module’s WiFi address for a graphical representation of the 5×7 LED matrix. Pick a color, turn pixels on or off, or choose a predefined pattern and send it to the hardware. This is a powerful way to get use input and with this as a guide it’s fast to set up for pretty much an application you can think of. Just work your way through the documents he put together for the workshop (Zip file link), including all of the code and the slides he used to run the workshop.