Your Smart TV Does 4K, Surround Sound, Denial-of-service…

Any reader who has bought a TV in recent years will know that it’s now almost impossible to buy one that’s just a TV. Instead they are all “smart” TVs, with an on-board computer running a custom OS with a pile of streaming apps installed. It fits an age in which linear broadcast TV is looking increasingly archaic, but it brings with it a host of new challenges.

Normally you’d expect us to launch into a story of privacy invasion from a TV manufacturer at this point, but instead we’ve got [Priscilla]’s experience, in which her HiSense Android TV executed a denial of service on the computers on her network.

The root of the problem appears to be the TV running continuous network discovery attempts using random UUIDs, which when happening every few minutes for a year or more, overloads the key caches on other networked machines. The PC which brought the problem to light was a Windows machine, which leaves us sincerely hoping that our Linux boxen might be immune.

It’s fair to place this story more under the heading of bugs than of malicious intent, but even so it’s something that should never have made it to production. The linked story advises nobody to buy a HiSense TV, but to that we’d have to doubt that other manufactures wouldn’t be similarly affected.

Header: William Hook, CC-BY-SA 2.0.

Thanks [Concretedog] for the tip.

Early CD Player Teardown

While CD players are nothing new today, they were the height of high-tech in the early 1980s. [w1ngsfly] shows us the inside of a Phase Linear 9500 player from 1983. Not only does it have many components, but it is also mechanically unusual.

The CD loads into a toaster-like slot and even pops out like a piece of toast. The tracking mechanism is quite complex, and there’s something that looks suspiciously like a dial string from an old slide rule tuner radio. Apparently, the unit was made by Kyocera and is internally similar to a Kyocera DA-01.

There’s a “head position” indicator that is actually just an LED connected to the tracking mechanism. The front panel controls look great but also allow you to control the head position exactly. As [w1ngsfly] mentions, it is almost like moving a turntable’s tonearm where you can drop it anywhere you want.

If we recall, they were about $600 to $1,000 new. If Phase Linear doesn’t ring a bell, they were well known in their day. Founded by [Bob Carver] and [Steve Johnston], the company was bought by Pioneer before the introduction and, later, by Jensen before the introduction of the 9500. [Bob] would go on to found Carver Corporation. You can find plenty of history about the company online.

We’ve seen CD players that look older. These days, CD drives are cheap and they are easy enough to control.

Continue reading “Early CD Player Teardown”

Who’s Afraid Of A CRT?

Older consumer electronic devices follow a desirability curve in which after they fall from favour they can’t be given away. But as they become rarer, they reach a point at which everyone wants them. Then, they can’t be had for love nor money. CRT TVs are now in the first stage, they’re bulky and lower-definition than modern sets, and thus thrift stores and dumpsters still have them in reasonable numbers. To retrogamers and other enthusiasts, this can be a bonanza, and when he saw a high-end late-model JVC on the sidewalk [Chris Person] wasted no time in snapping it up. It worked, but there were a few picture issues, so he set about fixing it.

Continue reading “Who’s Afraid Of A CRT?”

Building A Solar-Powered, Supercapacitor-Based Speaker

Inspired by many months of hours-long load shedding in South Africa, [JGJMatt] decided to make a portable speaker that can play tunes for hours on a single charge and even charge off the integrated solar panel to top the charge off. None of this should sound too surprising, but what differentiates this speaker is the use of two beefy 400 F, 2.7 V supercapacitors in series rather than a lithium-ion battery on the custom PCB with the Ti TPA2013D1 Class-D mono amplifier.

Insides of the speaker prior to stuffing and closing.
Insides of the speaker prior to stuffing and closing.

The reason for supercapacitors is two-fold. The first is that their lifespan is much longer than that of Li-ion batteries, the second that they can charge much faster. The disadvantages of supercapacitors come in the form of their lower energy density and linear discharge voltage. For the latter issue the TPA2301D1 amplifier has a built-in boost converter for an input range from 1.8 – 5.5 V, and despite the lower energy density a solid 6 hours of playback are claimed.

Beyond the exquisitely finished 3D printed PETG shell and TPU-based passive bass radiator, the functionality consists out of a single full-range speaker and an analog audio input (TRS jack and USB-C). To add Bluetooth support [JGJMatt] created a module consisting out of a Bluetooth module that connects to the USB-C port for both power and analog audio input.

Charging the speaker can be done via the USB-C port, as well as via the solar panel. This means that you can plug its USB-C port into e.g. a laptop’s USB-C port and (hopefully) charge it and play back music at the same time.

For those feeling like replicating this feat, the Gerbers, bill of materials, enclosure STLs, and everything else needed can be be found in the tutorial.

Continue reading “Building A Solar-Powered, Supercapacitor-Based Speaker”

Big Red Button Puts Toddler In Command Of Chromecast

Controversial position: the world needs more buttons. We’ve gotten so far away from physical interfaces like buttons, knobs, and switches in favor of sleek but sterile touch-screen “controls” that when we see something like this big red button so toddlers can start a TV show, we just have to latch onto the story and see what it’s all about.

As it turns out, the big red button itself is probably the least interesting part of [Mads Chr. Olesen] build. The real meat of the project is the reverse engineering effort needed to get Chromecast to start the show. As [Mads] explains, once upon a time a simple GET request to a URL was all it took to do so, but no more; Google has repeatedly nerfed the Chromecast API over the years, enough that [Mads] had some digging to do.

Luckily, pyChromecast is a thing, but using it for DRTV, a streaming service of the Danish Broadcasting Corporation, required figuring out the AppID of the DRTV app. It looks like [Mads] used Wireshark to sniff traffic to and from the Chromecast, and netlog-viewer to analyze the capture. That and a little Developer Tools action in Chrome led to all the information needed to modify pyChromecast to support DRTV. The rest of the project consisted of building a box for the huge red arcade button and wiring it up to a Wemos D1. A Raspberry Pi actually talks to the Chromecast, and now the toddler is able to call up his favorite show and pause and restart it at will, no parent required.

We appreciate the reverse engineering heroics [Mads] displays here, which provide good general lessons for other purposes. It’s been a while since we’ve seen a Chromecast physical interface build, too, so we appreciate the refresher.

Heartbeat packets of LKV373

Audio, Not Video Over The LKV373 HDMI Extender

[eta] found herself in a flat with several LKV373 HDMI extenders. Find the corresponding transmitter, plug it into your device, and you’ve got a connection to the TV/sound system, no fussing with wires behind the TV. However, [eta] wanted to get rid of the need to plug in a laptop and start sending packets directly to play music. As her flatmate [dan] had already reverse-engineered the receiver, she tested her prototype against their virtualized receiver, de-ip-hmdi.

The actual sending of images was surprisingly straightforward — just a JPEG sliced into 1024 bytes chunks and sent over. However, early testing showed nothing on the receiver. The end of a frame needed marking by setting the most-significant bit of the chunk number to one. Now de-ip-hdmi showed the image, but the actual hardware would not. With something missing, [eta] returned to Wireshark to scan packets. Noticing some strange packets on port 2067, she analyzed the pattern to reveal it sent another packet just before a new frame and included the frame number. With this tweak, it was still not enough. Ultimately, heartbeat packets sent every second synchronize things, but compared to the noise of the video packets, they were easy to miss. Now [eta] had some functioning video streaming rust code.

In theory, audio for the LKV373 followed the same thought process as video. Two channels of 32-bit big Endian integers at 44,100 hz chunked into 992-byte sections and sent as a packet formed the audio stream. With only 992 bytes, two streams, and 4 bytes per sample, each packet only held 2.812 milliseconds of sound. The first tests resulted in no audio output or distorted crunchy sound. Of course, this was every audio engineer’s worst nightmare: jitter. With a spin loop and an efficient ring buffer, the audio packets were soon slinging across the network reliably.

The code is available on a hosted version of GitLab. It’s a beautiful journey through reverse engineering some obscure but relatively cheap hardware. Along the way, there is nicely annotated Rust code, which makes it all the better.