Firmware Details – Programming, and “To open source or not to open source”
by Dave on Aug.21, 2009, under Installation, The Future, Under the Hood, Will it do that?
I’ve been getting a lot of questions on firmware and the features that each version supports – So – I’ve updated the “Firmware Features” post (See the little menu to the right) with a detailed accounting of more of the features as well as a little matrix so you can see what the version of firmware you have is capable of…
Again, the firmware was not really designed to be field upgradeable, but I’m happy to upgrade your equipment if you have a need or give you the information you need to upgrade the firmware yourself…
So – the big question I’m looking for help and advice from the community, how does one decide whether to allow source code (for the remote in particular) to be open source? Frankly, I get a kick out of being able to find a new situation, go spend half an hour hacking up code and being able to have a completely programmable, versatile remote control, and I think there is a decent community of folks that would like it. But what is the overall value, support would have to be – well – zero. What are the chances it would just irritate people? Anyone had experience with this?
A little more technical detail on how we do programming
We use the TI MSPFET430UIF interface (USB connected to a PC – last I checked they are about $100) and the FETPRO software (free of charge from the Elprotronic website, the free version will not update serial numbers but programs software, the link provided goes directly to their download site) and a little custom board that allows us to connect the Remote or BOCS device to either the UIF interface or a serial port to a PC for debugging. I’m attaching a schematic of the interface board below. The jumper is set in “external power” position when programming a BOCS unit (with its own power supply applied) and set in on-board power mode with batteries removed for programming remotes. When the interface board is plugged in (straight through cable pin 1 on interface board to pin one on BOCS unit or remote – they have different ends but both are straight through cables), the pull up/dn states on the interface board enable a tri-state amp on the device to be programmed which disconnects an on board serial port and hijacks that to talk to the processor… So – if all you want to do is program firmware, only a cable with proper pull up/dn pins is required. Firmware must be programmed through the jtag port, debug info is only available on the serial port.
DO NOT LET THIS SCHEMATIC INTIMIDATE YOU – I’m providing it for general interest – there is a very simple way to hook up to the remote and you do not have to even understand the schematic to do so…

EDIT:
Thought I’d add a couple of notes -
As you can see from the above diagram, the main programming interface is from the jtag two wire direct into the connector that goes to the remote – i.e. unless you have a specific need to use the serial interface (mostly for debugging but rarely used), you don’t need to complicated board shown in the schematic – a 4 wire jumper from the jtag programmer over to the remote would suffice.
We have, indeed, decided to go open source – I’ll post the details on avsforum.com so if you are interested in modifying anything for your own use or posting your updates back to the community, there is now a way to do just that.
David Feller
