The consumer electronics space is always in a state of flux, but perhaps nowhere is this more evident than with entertainment equipment. In the span of just a few decades we went from grainy VHS tapes on 24″ CRTs to 4K Blu-rays on 70″ LED panels, only to end up spending most of our viewing time watching streaming content on our smartphones. There’s no sign of things slowing down, either. In fact they’re arguably speeding up. Sure that 4K TV you bought a couple years back might have HDR, but does it have HDMI 2.1 and Dolby Vision?
So it’s little surprise that eBay is littered with outdated A/V gadgets that can be had for a pennies on the dollar. Take for example the SB700-100 Sling Adapter we’re looking at today. This device retailed for $99 when it was released in 2010, and enabled Dish Network users to stream content saved on their DVR to a smartphone or tablet. Being able to watch full TV shows and movies on a mobile device over the Internet was a neat trick back then, before Netflix had even started rolling out their Android application. But today it’s about as useful as an HD-DVD drive, which is why you can pick one up for as little as $5.
Of course, that’s only a deal if you can actually do something with the device. Contemporary reviews seemed pretty cagey about how the thing actually worked, explaining simply that plugging it into your Dish DVR imbued the set-top box with hitherto unheard of capabilities. They assured the reader that the performance was excellent, and that it would be $99 well spent should they decide to dive headfirst into this brave new world where your favorite TV shows and movies could finally be enjoyed in the bathroom.
Now, more than a decade after its release, we’ll crack open the SB700-100 Sling Adapter and see if we can’t figure out how this unusual piece of tech actually worked. Its days of slinging the latest episode of The Office may be over, but maybe this old dog can still learn a few new tricks.
A Crimson Enigma
To be sure, the Sling Adapter is a very unusual device. It has no controls, no display, and its only link to the outside world is the short USB pigtail that’s permanently attached to the rear of the unit. Yet despite its apparent simplicity, its heat-dissipating metal enclosure hints at considerable raw power underneath its Merlot hood. Even today the device looks impressively high-tech, which may explain why the reviewers from the previous decade were so enamored with it. If the Sling Adapter looks like some piece of advanced technology now, imagine what they thought of it in 2010.
Upon opening up the device we’re greeted with a healthy application of thermal compound, which confirms that the metallic grid case is essentially a massive heatsink. With the removal of four more screws, the 70 mm x 80 mm PCB can be lifted out of the case, and surprisingly, the USB pigtail can be disconnected from what turns out to be a female Mini-B jack. As far as disassembly goes, it surely doesn’t get much easier than this. But of course, we’ve still got to figure out what this board does.
Before I went any farther and potentially damaged something, I decided it would be wise to plug the board into the computer to see what happens. We’ve found unexpected USB functionality in previous teardowns, but even still, I’ll admit to being momentarily stunned by the output of lsusb
.
Incredibly, the Sling Adapter was immediately recognized as a Cypress CY7C68013 EZ-USB FX2 Development Kit. The EZ-USB FX2 pairs an Intel 8051 microcontroller with a high-speed USB 2.0 interface that’s designed to facilitate bulk transfers and has the ability to renumerate itself on the fly. A bit of digging uncovers that firmware for the chip is generally downloaded from the host system and copied into RAM on power-up, after which point the code is executed and the USB parameters readjust as necessary for the new application.
It would appear that, accidentally or otherwise, the Sling Adapter’s default state is to advertise itself as a development board until a firmware image has been provided by the Dish DVR. My first thought was that the device might be operating as sort of a security dongle, where the DVR would upload some code to it and wait to see if it gets the appropriate response after execution. But the device wouldn’t be generating the sort of heat its’s clearly been designed for if it was just calculating some checksums; obviously there’s some serious number crunching going on.
H.264 on a Chip
After spending some quality time with cotton swabs and isopropyl alcohol, we have our answer. Hidden under the thick layer of thermal compound is a Magnum DX6225-LHG00-A3 that was designed to transcode MPEG-2 video to a lower-resolution H.264 stream suitable for playback on early smartphones and tablets. The two identical chips next to it are obviously external RAM, but I’ve been having some trouble identifying them conclusively. My best guess is that they are Micron 8 MB MT47R64M16’s with some alternate branding, but even for 2010, 16 MB of RAM seems pretty low.
Combined with the bulk transfer capabilities of the EZ-USB FX2, things are starting to make sense. The Dish DVR pushes the MPEG-2 video stored on its hard drive to the DX6225 over USB, where its transcoded in real-time to a mobile friendly format and sent back to the set-top box where it’s ultimately distributed over the network.
It’s a concept we still see in use today, albeit with considerably different workloads. The Coral USB Accelerator and Intel Neural Compute Stick are essentially modern answer to the Sling Adapter; plug-in modules that handle the computational workload of machine learning so the host system can focus on the logistics and user interface. This helps performance-constrained “edge” platforms such as the Raspberry Pi handle tasks like high-framerate computer vision, and back in 2010, it let Dish subscribers play videos on their phones without bogging down the DVR.
New Marching Orders
I know what you’re thinking. If the USB side of the Sling Adapter is really based on a Cypress CY7C68013 EZ-USB FX2 development kit, does that mean you can buy one of these things for $5 and load new code into its 8051 MCU? The answer, at least so far, would appear to be yes. But as usual, the Devil is in the details.
After compiling the open source cyusb linux suite, I was successfully able to connect to the EZ-USB FX2 and upload one of the included demonstration firmware images into RAM. After the Sling Adapter renumerated, a program running on the computer was able to establish a loop-back connection with the firmware. While I haven’t personally tested it yet, you should be able to use the official (and relatively modern) EZ-USB FX3 Software Development Kit from Cypress to start writing your own firmware as its backwards compatible with FX2.
Now for the bad news. Remember how I said the Sling Adapter doesn’t have any controls or displays? Unfortunately, that doesn’t make it a very exciting platform for experimenting with. Sure you can get it to run your own code, but this is a machine built for a very specific purpose, so there’s not much that code can actually do. Though if you do manage to create a custom firmware for these things that does something interesting, we’d certainly love to hear about it.
What was the point of the article if you can’t make the device useful after tearing it down?
But this really leaves me to wonder, how many millions of devices running embedded OS are currently going to waste? How many more will we continue to waste over the years?
Is this the reason why electronics cost so much today? Are we just burning the candle at both ends for short term efficiency gains?
The point is to make the information public so other people can experiment with it too.
Electronics is expensive? IMHO it never has been so cheap.
Software costs a lot, that’s why devices get dumped along the road of software improvements, as individuals are willing to pay for hardware but not software
It’s a bit like talking about free-market in efficiency
I can’t tell if you’re just trolling along, or you seriously don’t understand the purpose of a tear down and hardware analysis?
I’ll assume the latter and that you main device is your cellular.
So people tear down and experiment with unknown hardware to see what makes it tick under the hood, but they also look into the possibility to upgrade, salvage parts, or re-purpose the system to do something new for them. This was a great cursory investigation that revealed usable hardware that we might not otherwise have known about. Whilst the author himself didn’t create anything useful with the device, he was able to inform others that its a possible platform to experiment with, what chips it was using and what dev kit you can use to get started.
I hope that helps with you foray into electronic experimentation.
There is nothing to be excited about when you can get the same capability or better from a $5 modern SBC. I understand that much of the hackaday content is geared toward electrical engineers, but a big part of engineering is making cost decisions, and this hardware is old and unsupported making it very costly to renew into something useful.
It’s great to see people sharing information, but if all you’re sharing is reference without real application then you might was well just go back to college.
I would actually suspect most of the hackaday readership is not EEs, or at least isn’t reading these teardowns in their professional role. In any case, there are entire companies that just do teardowns and sell their data to other companies, so you can learn what components your competitors are using, or which of your competitors has a “design win” by having their components used in a device.
If you’re only looking for information you can apply immediately in your work, you’ve probably got mistaken expectations about this site. However, being exposed to how things are built, what components others use, how others solve problems, you will actually grow professionally if that’s your goal.
Much on hackaday has “hack value” beyond simple utility.
RAM chips are MT47R64M16HR-25E:H. Micron uses a code to identify most of their parts now. Decoder is currently at https://www.micron.com/support/tools-and-utilities/fbga
Since I went ahead and googled it, I’ll spoil the linked info. They’re 1Gb each.
https://www.digikey.com/en/products/detail/micron-technology-inc/MT47R64M16HR-25E-H/2663933
1 Gigabit :)
Not sure why the 722K dvr is pictured, is that the DVR you’d use this with? I got the chance to scrap one, sadly there’s not much you can reuse the whole thing for, but there’s a DVR duty hard drive (that needs some low level commands to work with a normal PC), and a pretty cool circuit board: printed circuit inductors (little spirals), and a ton of really good Japanese name brand capacitors… Build quality appears excellent, clearly one of those things the TV company would have to come and replace for free if it broke and thus was highly motivated to avoid having it break.
Seems to me like there is still a need for a device like this, lots of people run home media servers and want to on the fly downscaling to suit the bandwidth/device, sure they could throw a GPU at the problem, but those things are extra valuable right now, this thing I’ve never heard of before seems to be almost free and designed to do the job… If you can make it work at its original function.
I remember the old old days of dedicated MPEG-2 accelerator cards. And high end special purpose AV encode accelerators still exist.
I was recently shopping around hoping that something like a cheap M.2 video decode accelerator existed that I could use to offload decoding video streams for a DIY NVR. Sadly those don’t seem to exist.
Not M.2, but Raspberry Pi Zero and CM has USB OTG and could in fact be used as a video transcoder with the correct programming. Or just make use of the video decode/encode cores found in modern integrated GPUs.
I could see the use of a decoder for a older computer where there isn’t native decoding ability for a new popular codec du jour in the hardware so the CPU and GPU doesn’t go full chooch just for watching a mere video.
For example my 2012 netbook goes full send with system load (and fan) when attempting to watch YouTube in 720p unless I manually force it to mp4.
And that’s absurd for doing basic web stuff.
Yeah, the computer I’m using is a recycled HP mini desktop with an AMD A10 APU. It’s actually fairly powerful, but as best as I can tell the hardware doesn’t support accelerated decoding on the iGPU. It’s powerful enough to decode several streams on the CPU, but I’m still looking for a way to offload them and free up the CPU for other tasks.
The Strongene H.265 decoder uses OpenCL to leverage the GPU for hardware decoding even if it has no dedicated H.265 decoder. But that alone won’t do the trick in Windows. You also need LAV (get it with the Mega install of K-Lite Codec Pack) and use Video under K-Lite Codec Pack\Configuration. Under hardware acceleration you check the HEVC box and I don’t recall what to select in the two drop downs.
A friend’s old TV computer ran a dual core Athlon 64 with an nVidia 8800GT. With Strongene and LAV it could run any 1280×720 HEVC perfectly and 1080p worked as long as there wasn’t any scene with a ton of detail.
Note that this will not detect as hardware HEVC decoding in spite of it using the GPU hardware to decode HEVC. Yes, I did have someone adamantly insist that Strongene+LAV was absolutely not using the GPU hardware to decode HEVC because some video software he used didn’t detect it as “Hardware HEVC decoding”. What that software does is ‘divert’ HEVC decoding, or at least part of it, from the CPU to the OpenCL part of the GPU. With a single core Athlon 64 it coundn’t handle 1080p at all and 720p would choke at high detail and/or fact motion. It was easy to show that the GPU was picking up a lot of the work, simply unchecking the HEVC box in the LAV video settings app would make HEVC unplayable.
Switching to a 3.0 Ghz tri-core Phenom II gave it enough CPU grunt it no longer needed the software to repurpose the OpenCL support in the GPU, and it no longer has the 8800GT since along with a 65″ flatscreen (replacing the 65″ rear projection behemoth) it got an ATi GPU with HDMI.
The Strongene HEVC OpenCL decoder shows how powerful it can be on such an “ancient” GPU as an 8800GT that predates the codec by quite a while.
The A10 APU does have OpenCL, but good luck making that work with anything but Windows. While searching to see if it had OpenCL I found a forum thread from 2021 about how difficult it is to get that working with Linux.
So there ya go, OpenCL can be a powerful tool for video work, if you can figure out how to write the software to use it.
It makes me wonder how the firmware image was delivered to the USB device. Is there a Dish DVR out there in a thrift store with the image on it waiting to be discovered so someone can RE this device? Was it delivered via a server that might happen to be still live so it can be downloaded? That would really jumpstart the process of getting these device up and running again. Then it would be cool to see what could be built on top of that.
This seems interesting. But if there is no control, how does it stream video? It at least need the SSID/WiFi-password, right? Now, if you can host your own server on the device. The sky is the limit.
But I am still confused. With a single USB interface. How does the Sling adapter access the DVR’s recording? Does the Dish box behaves like a USB Drive (even though it has a USB A connector)?
Likely their was firmware stored on the DVR to push to the device each time it powered up, and the DVR simply pushed the content to the encoder and read it back, maybe by constant polling. The DVR would need the network access, not the device, and since the hard drive is already designed for constant reading and writing, it likely stored the encoded stream back to disk for buffering purposes or maybe in ram. From there it’s like any other web server but the encoder would give it the ability to skip time pretty quickly or at least slightly slower than it can from the regular TV interface. Pretty nifty trick for the price as back in 2010 is was stupid expensive to get hardware encoders for h.264. They were primarily sold to the broadcast industry as part of a system upgrade since everything else was still recorded in raw (analog) or mpeg-2 streams. You feed them through fiber or coax over to a rack that the cards installed into proprietary enclosures. Mpeg-2 is too large to fit too many streams over cat5 so dedicated links are used from control rooms. Fun stuff of you’ve ever visited a live broadcasting control room or cable headend that would from satellite.
I had one of these – the DVR itself had the networking capabilities (ethernet jack) that needed to be plugged in. The DVR itself did most of the work – but used the dongle for transcoding as it supported multiple bitrates. Over Wifi you got good quality but if you were outside your home network, it often needed lower bandwidth to play smoothly. The DVRs themselves go back several more years (I got mine in 2006) so this was a feature that came in later.
The dongle definitely got warm – in fact in later years, mine would quit working after a bit due to thermal issues. But that was nearing the end of that era and Dish had other streaming options. It was a cool feature that wasn’t really replicated elsewhere for quite a while
Even finding a way to reuse it for its original task seems useful, especially if it could be paired with Plex instead.
An FX2 dev kit for $5 is also good if there are more test pads that could be traced to the FX2 chip. Are there more images of the board including the back side of the board?
Besides bulk transfer based devices, it can make for a half decent USB HID device too.
D9MSV appears to be 1Gbit DDR2, giving 128MB for each package.
Funny, I have one of these sitting right beside me on my disassemble-for-cool-heatsink list… just looking for my security bit set to unscrew it…
I want a USB 3 HEVC encoder so I can convert videos with my laptop. NVenc on a dongle, whatever the latest version is. Crazy that a nVidia 1050 card still sells for $150, and its NVenc doesn’t do B frames.
I want the same thing but decoding. I was thinking you could do it with an FPGA, but that’s a difficult task and you’d also need software support.
Well of course the dongle would decode and encode. Too bad that ExpressCard 2.0 didn’t go anywhere.
My first thought was using it to circumvent HDCP in some way or use it to avoid Cinavia playback errors with Blu-Ray video streams or some other 1337 piracy related endeavors. Lol. Jk.