BOCS 2way remote is now open source
Posted: Mon Jan 18, 2010 12:31 pm
Howdy:
The response of users to our system (www.bocsco.com) has been - well - overwhelming. I've found that we at BOCS are not able to respond to every feature request as fast as we would like, and there are some really great suggestions out there from real world users.
So, we have decided to go open source on our remote controls. In fact, I've "experimented" with one user who has far exceeded my expectations and over the holidays added a huge new macro feature to the remotes. I'll have him post everything here.
Why might anyone want to do this? While many remotes are macro programmable, even using some of the JP1 tools, there are many things that just cannot be done with them. This is a unique opportunity to take full control of both the IR and wireless systems at a core firmware level and get exactly what you want - customized to your home. One of the big features here is that the RF communications are TWO-WAY. We use that to verify keypresses sent to the hub have, in fact, gone through and we use retrys to create a more solid connection. The reverse channel, could easily be modified to allow the remote to receive information back from the hub as an example.
All I ask is that you document your changes well and post back your results for the community.
Here is how it works
1) Never heard of BOCS? See the avs threads in the "Home A/V Distribution and Networking" group.
http://www.avsforum.com/avs-vb/showthre ... st17149193
and the main THREAD here
http://www.avsforum.com/avs-vb/showthre ... st16089527
but basically we make a whole-home distribution system that includes 900MHZ (and IR) remotes that can act locally or from across the home.
2) The programming methods and connection to the remote are described on my blog in this entry
http://myxtender.com/wholehome/?p=79
3) I've posted the core firmware files that control button functionality and how the remote does learning and programming www.bocsco.com/opensource/BOCS1450base.zip. It is written in C and very well documented. At the bottom of this post, I'll briefly describe each file.
4) Note that what is posted is not enough to compile a firmware rev - I will provide the full source after you sign a simple source agreement (I'm working one up now and will post a link to it here once I've completed it - just fill it out, sign and send it back to me at dfeller@bocsco.com)
5) I'm available for "tech support" here, on the chat window on our website (www.bocsco.com/virtualbocs) or phone (see my signature). Note that we are not volunteering in every case to test your changes, help you debug, etc. And no guarantee of support is given beyond a basic overview of the code.
Files:
remote.c : Main remote control loop - handles keypresses, all programming modes and communication to the hub via RF
ir.c : Control IR output and multiple digit modes
remote_main.c : Main initialization and setup loop
remote_ir_scan.c : Process for doing an IR code scan
remote_ir_learn.c : Process for learning IR codes into the remote
ir_blaster.c : driver module for IR blaster subsystem, also contains methods for inserting new custom IR codes that are not already in the database
bocsmsp430.txt : Version 1450 (the latest) remote control firmware - complete and compiled. I include this as a safety measure in case you make a modification, screw something up and need to get back to a baseline!
So again, see the blog post for details, but basically, this is an MSP430 TI 8 bit microcontroller that controls an external TI 900MHz chip for communications and a UEI blaster chip for IR codes in and out. Communication is via a simple jtag/serial interface through a very common fetpro programmer.
I'll reserve a couple of posts right under this for more info to be added later and get the first participants to post here as well.
This is a big step for us - be gentle.
David
The response of users to our system (www.bocsco.com) has been - well - overwhelming. I've found that we at BOCS are not able to respond to every feature request as fast as we would like, and there are some really great suggestions out there from real world users.
So, we have decided to go open source on our remote controls. In fact, I've "experimented" with one user who has far exceeded my expectations and over the holidays added a huge new macro feature to the remotes. I'll have him post everything here.
Why might anyone want to do this? While many remotes are macro programmable, even using some of the JP1 tools, there are many things that just cannot be done with them. This is a unique opportunity to take full control of both the IR and wireless systems at a core firmware level and get exactly what you want - customized to your home. One of the big features here is that the RF communications are TWO-WAY. We use that to verify keypresses sent to the hub have, in fact, gone through and we use retrys to create a more solid connection. The reverse channel, could easily be modified to allow the remote to receive information back from the hub as an example.
All I ask is that you document your changes well and post back your results for the community.
Here is how it works
1) Never heard of BOCS? See the avs threads in the "Home A/V Distribution and Networking" group.
http://www.avsforum.com/avs-vb/showthre ... st17149193
and the main THREAD here
http://www.avsforum.com/avs-vb/showthre ... st16089527
but basically we make a whole-home distribution system that includes 900MHZ (and IR) remotes that can act locally or from across the home.
2) The programming methods and connection to the remote are described on my blog in this entry
http://myxtender.com/wholehome/?p=79
3) I've posted the core firmware files that control button functionality and how the remote does learning and programming www.bocsco.com/opensource/BOCS1450base.zip. It is written in C and very well documented. At the bottom of this post, I'll briefly describe each file.
4) Note that what is posted is not enough to compile a firmware rev - I will provide the full source after you sign a simple source agreement (I'm working one up now and will post a link to it here once I've completed it - just fill it out, sign and send it back to me at dfeller@bocsco.com)
5) I'm available for "tech support" here, on the chat window on our website (www.bocsco.com/virtualbocs) or phone (see my signature). Note that we are not volunteering in every case to test your changes, help you debug, etc. And no guarantee of support is given beyond a basic overview of the code.
Files:
remote.c : Main remote control loop - handles keypresses, all programming modes and communication to the hub via RF
ir.c : Control IR output and multiple digit modes
remote_main.c : Main initialization and setup loop
remote_ir_scan.c : Process for doing an IR code scan
remote_ir_learn.c : Process for learning IR codes into the remote
ir_blaster.c : driver module for IR blaster subsystem, also contains methods for inserting new custom IR codes that are not already in the database
bocsmsp430.txt : Version 1450 (the latest) remote control firmware - complete and compiled. I include this as a safety measure in case you make a modification, screw something up and need to get back to a baseline!
So again, see the blog post for details, but basically, this is an MSP430 TI 8 bit microcontroller that controls an external TI 900MHz chip for communications and a UEI blaster chip for IR codes in and out. Communication is via a simple jtag/serial interface through a very common fetpro programmer.
I'll reserve a couple of posts right under this for more info to be added later and get the first participants to post here as well.
This is a big step for us - be gentle.
David