Better Controls For Your Chromecast Through CEC

Modern home cinema equipment is well-equipped with features for interoperability and convenience, but in practice, competing standards and arcana can make it fall over. Sometimes, you’ve gotta do a little work on your own to glue it all together, and that’s what led [Victor] to develop a little utility of his own.

ChromecastControls is a tool that makes controlling your home cinema easier by improving Chromecast’s integration with the CEC features of HDMI. CEC, or Consumer Electronics Control, is a bidirectional serial bus that is integrated as a part of the HDMI standard. It’s designed to help TVs, audio systems, and other AV hardware to communicate, and allow the user to control an entire home cinema setup with a single remote. Common use cases are TVs that send shutdown commands to attached soundbars when switched off, or Blu-Ray players that switch the TV on to the correct output when the play button is pressed.

[Victor]’s tool allows Chromecast to pass volume commands to surround sound processors, something that normally requires the user to manually adjust their settings with a separate remote. It also sends shutdown commands to the attached TV when Chromecast goes into its idle state, saving energy. It relies on the PyChromecast library to intercept traffic on the network, and thus send the appropriate commands to other hardware. Simply running the code on a Raspberry Pi that’s hooked up to any HDMI port on a relevant device should enable the CEC commands to get through.

It’s a project that you might find handy, particularly if you’re sick of leaving your television on 24 hours a day because Chromecast never bothered to implement a simple CEC command on an idle timeout. CEC hacks have a long history, too – we’ve been covering them as far back as 2010!

Raspberry Pi 4 HDMI Is Jamming Its Own WiFi

Making upgrades to a popular product line might sound like a good idea, but adding bigger/better/faster parts to an existing product can cause unforeseen problems. For example, dropping a more powerful engine in an existing car platform might seem to work at first until people start reporting that the increased torque is bending the frame. In the Raspberry Pi world, it seems that the “upgraded engine” in the Pi 4 is causing the WiFi to stop working under specific circumstances.

[Enrico Zini] noticed this issue and attempted to reproduce exactly what was causing the WiFi to drop out, and after testing various Pi 4 boards, power supplies, operating system version, and a plethora of other variables, the cause was isolated to the screen resolution. Apparently at the 2560×1440 setting using HDMI, the WiFi drops out. While you could think that an SoC might not be able to handle a high resolution, WiFi, and everything else this tiny computer has to do at once. But the actual cause seems to be a little more interesting than a simple system resources issue.

[Mike Walters] on a Twitter post about this issue probed around with a HackRF and discovered a radio frequency issue. It turns out that at this screen resolution, the Pi 4 emits some RF noise which is exactly in the range of WiFi channel 1. It seems that the Pi 4 is acting as a WiFi jammer on itself.

This story is pretty new, so hopefully the Raspberry Pi Foundation is aware of the issue and working on a correction. For now, though, it might be best to run a slightly lower resolution if you’re encountering this problem.

HDMI From Your Arduino

Creating a video signal from a computer, a job that once required significant extra hardware, is now a done deal with a typical modern microcontroller. We’ve shown you more NTSC, PAL, and VGA projects than you can shake a stick at over the years. Creating an HDMI video signal however is not so straightforward. It’s not a loosely defined analogue standard but a tightly controlled digital one upon which the clever hacks that eke full colour composite video from a single digital I/O pin will have little effect. Surely creating them from a simple microcontroller will be impossible! Not according to [techtoys], who has created an Arduino shield that creates an HDMI output from an SPI control input.

At its heart are two interesting integrated circuits that give us a little bit of insight into creating graphics at this level. First up is an RA8876 MIPI TFT controller which is a full graphics engine that produces a digital RGB output, followed by a CH7035B HDMI encoder that produces an HDMI output from the RGB. This combination of chips is particularly interesting one, because the RA8876 supports a variety of different interfaces that between them should be able to talk to most microcontrollers. In the Arduino world the only other HDMI options come via the use of an FPGA.

This is a project that seems to have been around for a couple of years, but which is still an active one. The classic Arduino shield form factor may now seem a little past its zenith, but as this board shows it’s still capable of being used for interesting new applications.

Thanks [th_in_gs] for the tip.

An HDMI Input For A Laptop Screen, Minus Laptop

The lack of HDMI inputs on almost all laptops is a huge drawback for anyone who wants to easily play a video game on the road, for example. As to why no manufacturers offer this piece of convenience when we all have easy access to a working screen of this size, perhaps no one can say. On the other hand, if you want to ditch the rest of the computer, you can make use of the laptop screen for whatever you want.

This project from [Avner] comes to us in a few parts. In the first section, the teardown of the laptop begins and a datasheet for the screen is discovered, which allows [Avner] to prepare an FPGA to drive the screen. The second part involves building an HDMI sink, which is a device which decodes the signal from an HDMI source into its constituent parts so it can be sent to the FPGA. The final section of the project involves actually sending a video to this impressive collection of hardware in order to get a video to appear on the old laptop screen.

This build is worth checking out if you’ve ever dealt with anything involving digital video. It goes into great depth on a lot of the technical details involving HDMI, video devices, and hardware timing issues. This is a great build and, even though we’ve seen similar projects, definitely worth diving into if you have some time on your hands and a spare laptop screen.

Hidden LED Video Wall At The Oregon Museum Of Science

Glowing and blinking things are some of our favourite projects around these parts, and the bigger, the better. [Thomas] wrote to us recently to share the design and construction of a large LED wall at the Oregon Museum of Science, and the results are nothing short of impressive.

The concept involved a large LED wall that would be completely hidden when switched off. The team decided to approach this by hiding high-brightness LED panels using APA102 strings behind milky-white plexiglass panels covered with a woodgrain print. The screen has a total of 90,000 pixels, arranged in a 408×220 resolution display.

A lot of bespoke LED displays have some pre-coded patterns, or perhaps some basic reactive features. In this case, FPGA grunt was brought to bear on the problem and the display accepts standard HDMI input. Four Spartan 6 Mojo FPGA boards split up the task of addressing the panels, each receiving the same HDMI signal, but only crunching the pixels relevant to their area of the display. To make sure clean SPI signals get to each panel, special RS485 driver chips are used to send the signal over a differential pair from the FPGA, before breaking the signal back out to standard SPI at the destination.

Building such a large display takes special techniques, and [Thomas] notes that the help of a local construction company was imperative to making the construction of the final video wall look easy. It’s always interesting to see what goes into these large installations. Sometimes, a major build can even clear out world stocks of important components.

Rooting The Amazon Fire TV Cube With An Arduino

Amazon might not be happy about it, but at least part of the success of their Fire TV Stick was due to the large hacking and modification scene that cropped up around the Android-powered device. A quick search on YouTube for “Fire Stick Hack” will bring up a seemingly endless array of videos, some with millions of views, which will show viewers how to install unofficial software on the little media dongle. Now it looks like their latest media device, the Fire TV Cube, is starting to attract the same kind of attention.

The team at [Exploitee.rs] has recently taken the wraps off their research which shows the new Fire TV Cube can be rooted with nothing more than an Arduino and an HDMI cable you’re willing to cut apart. Of course, it’s a bit more complicated than just that, but between the video they’ve provided and their WiKi, it looks like all the information is out there for anyone who wants to crack open their own Cube. Just don’t be surprised if it puts you on the Amazon Naughty List.

The process starts by putting the device’s Amlogic S905Z into Device Firmware Upgrade (DFU) mode, which is done by sending the string “boot@USB” to the board over the HDMI port’s I2C interface. That’s where the HDMI cable comes in: you can cut into one and wire it right up to your Arduino and run the sketch [Exploitee.rs] has provided to send the appropriate command. Of course, if you want to get fancy, you could use an HDMI breakout board instead.

With the board in DFU mode in you gain read and write access to the device’s eMMC flash, but that doesn’t exactly get you in because there’s still secure boot to contend with. But as these things tend to go, the team was able to identify a second exploit which could be used in conjunction with DFU mode to trick the device into disabling signature verification. Now with the ability to run unsigned code on the Fire TV Cube, [Exploitee.rs] implemented fastboot to make it easier to flash their custom rooted firmware images to the hardware.

As with the Fire TV Stick before it, make sure you understand the risks involved when you switch off a device’s security features. They’re often there to protect the end user as much as the manufacturer.

Continue reading “Rooting The Amazon Fire TV Cube With An Arduino”

Hackaday Prize Entry: Low Cost KVM

Back in the old days, when handing someone a DB serial cable when they asked for a DE serial cable would get you killed, KVM switchers were a thing. These devices were simple boxes with a few VGA ports, a few PS/2 ports, and a button or dial that allowed your input (keyboard and mouse) and output (video) to be used with multiple computers. Early KVMs were really just a big ‘ol rotary switch with far, far too many poles. Do you remember that PS/2 wasn’t able to be hot plugged? The designers of these KVMs never knew that.

Today, KVM switchers are a bit more complicated than a simple rotary switch. We’re not dealing with VGA anymore — we have HDMI muxes. We’re also not dealing with PS/2 anymore, and USB requires a bit of microelectronics to switch from one computer to another. For one of his many Hackaday Prize entries, [KC Lee] is designing a low-cost HDMI switch and USB mux. It works, it’s cheap, and if you need to switch a keyboard, mouse, and monitor between boxes, it’s exactly what you need.

First off, the HDMI switching. Designing a switch for HDMI would usually take some obscure parts, intricate routing, and a lot of prototyping time. [KC] found a way around this: just hack up a $5 HDMI switch. This cheap HDMI switch is as simple as it gets, with an HDMI mux doing the heavy lifting and an 8-pin microcontroller to handle the buttons and a selector LED.

For the USB, there are a few more design choices. For USB 1.x switching, [KC] figures he can get away with a 74HC4052 dual 4:1 analog mux. Yes, he’s doing digital with analog chips, the heathen. There are drawbacks to this: everything could break, and it’s only USB 1.x, anyway. For a USB 2.0 KVM, there are a few more professional options. The OnSemi NCN9252 is a proper USB 2.0 mux, and in the current design.