I started to write a series of posts about programming on Crestron’s VC-4 platform, but realized I should probably back up and document how I got my VC-4 instance running.
Continue reading “VC-4: Part 0”Category: av
Crestron MC3 Tear-down
Saw another wave of failed MC3 processors while browsing the Crestron forums so I decided I’d better make a backup of my SD card while I still could.
To get the cover off, I had to remove all visible screws from the outside (including the grounding screw). There’s also a lock nut on the RF antenna that had to be removed. The whole board slides out from the rear of the unit.
Once out of the chassis, there are two plastic screws holding a daughter board down. I removed those, then pulled the daughter board out. This exposes the SD card below. I had to slide the SD card to the right to unlock the socket, then I could remove it.

Using Ubuntu, I made a copy of the SD card and compressed it for storage in my Dropbox:
$ dd if=/dev/sde of=mc3-sd-card.img
$ bzip2 -v9 mc3-sd-card.img
Now I have a copy of the SD card saved, I wondered what was actually on it. First I tried fdisk to see what it reported:
$ fdisk -l mc3-sd-card.img
Disk mc3-sd-card.img: 1.9 GiB, 2027945984 bytes, 3960832 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
So fdisk didn’t detect any partition scheme. Maybe it’s just a FAT file system?
$ sudo mount -t vfat -o loop,ro mc3-sd-card.img /mnt
mount: /mnt: wrong fs type, bad option, bad superblock on /dev/loop6, missing codepage or helper program, or other error
$ sudo mount -t auto -o loop,ro mc3-sd-card.img /mnt
mount: /mnt: wrong fs type, bad option, bad superblock on /dev/loop6, missing codepage or helper program, or other error
What’s in this file? Using hexdump, I can page down and find messages about the Windows CE Ethernet Boot loader…
000219a0 31 39 3a 34 31 3a 33 33 00 00 00 00 4f 63 74 20 |19:41:33....Oct |
000219b0 20 37 20 32 30 31 35 00 57 69 6e 64 6f 77 73 20 | 7 2015.Windows |
000219c0 43 45 20 45 74 68 65 72 6e 65 74 20 42 6f 6f 74 |CE Ethernet Boot|
000219d0 6c 6f 61 64 65 72 20 25 64 2e 25 64 20 28 25 73 |loader %d.%d (%s|
000219e0 20 25 73 29 20 66 6f 72 20 43 72 65 73 74 72 6f | %s) for Crestro|
000219f0 6e 0d 0a 00 50 52 4f 47 52 41 4d 20 52 45 51 20 |n...PROGRAM REQ |
I’m sure there is some information to be found reading Microsoft’s documentation. Maybe I’ll come back to this again someday?
The Future of AV Programming: Part 4
This is the final entry in my series on the future of AV programming. I started writing it over a year ago, but kept putting it down. It’s probably time to just get something out there and move onto the next idea. Getting my thoughts organized on this topic has been difficult because they keep changing. It’s an underwhelming finish, but the road ahead is widening, making it hard to pin down what’s good or bad about where we’re currently at.
Continue reading “The Future of AV Programming: Part 4”The Future of AV Programming: Part 3
This is one part in a series of posts about my journey through the AV world. I’ve broken these up into bite-sized portions that shouldn’t take more than 10 minutes to read. I’m hoping to explore the future of systems programming in the Audio/Visual sense. Let me know if I wander off into a tangent somewhere, I tend to forget where I’m going.
I went to ITT Tech and studied subjects designed so I could land a job in IT. Instead, I took a left turn and ended up in AV. Well, joke’s on me because AV and IT ended up merging anyways. I may have traded away my knowledge about ASN.1 for the Inverse Square Law, but I think you can agree I’m the winner there.
The Future of AV Programming: Part 2
This is one part in a series of posts about my journey through the AV world. I’ve broken these up into bite-sized portions that shouldn’t take more than 10 minutes to read. I’m hoping to explore the future of systems programming in the Audio/Visual sense. Let me know if I wander off into a tangent somewhere, I tend to forget where I’m going.
Last time, I talked about my aspirations of one day becoming a professional programmer. I hadn’t touched on the AV industry at all since it was largely unknown to me then. I had a few interviews lined up the week before graduating, and I ended up accepting an entry-level position at an AV company. They were primarily a TANDBERG reseller who also did occasional system integration work.
The Future of AV Programming: Part 1
This is one part in a series of posts about my journey through the AV world. I’ve broken these up into bite-sized portions that shouldn’t take more than 10 minutes to read. I’m hoping to explore the future of systems programming in the Audio/Visual sense. Let me know if I wander off into a tangent somewhere, I tend to forget where I’m going.
Hi. My name’s Kiel. How you pronounce it is all on YOU, but to me it’s Kyle. I’ll accept anything with a K sound since at least you tried.
I sort of fell into AV programming 12 years ago, but let me start back at the very beginning.
Tandberg Classic API
Since Cisco seems to have deleted the entire existence of the legacy Tandberg video codecs, I’ve been unable to find documentation on the classic API anywhere. Luckily, I still have access to a Tandberg 6000 MXP and can write down what help is offered within it.