Posted: Thu Dec 18, 2008 3:48 pm
I've written a executor that should be able to send the signals that you need using just 2 variable data bytes. Do you have the ability to verify what the remote is sending and maybe make adjustments if the signal is incorrect? I ask because I have absolutely no expectation that this will work the first time and I haven't tested it.
The following zip file contains a KM upgrade, the PB file and a spreadsheet that shows how I'm looking at the data.
https://www.hifi-remote.com/forums/dload ... le_id=6024
First off, I had to reverse your view of the data, so a 1 is now ON and a 0 is now OFF.
Separating the start and stop bits, the 12-bit signal looks something like this...
1-000000000-11
I can replicate the start bit by using a leadin pair of "+630 -0" and I can replicate the stop bits with a leadout time of +1260. However, that still leaves 9 data bits, so to reduce it to 8 I included the 9th data bit in with the leadout.
The 9th bit of the first 4 words is always 1, and for the rest of all the signals it's 0, so, the format of the first 4 words is:
1-00000000-011
and the remaining words:
1-00000000-111
To switch from format1 to format2, I had to change the leadout from "OneOn, -1260" to "-1890".
The 1st and 3rd bytes are constant, so I have hard coded them in the executor. The 2nd, 4th and 5th bytes are supplied via the variable data.
If you look closely at the data in the 2nd byte, bit2 is 1 for the 3 short signals and it's 0 for the 3 long signals, so I use this for that purpose in the executor.
You'll notice that bytes 6 thru 15 are all $FF for the "download" button, and you'll also notice that bit4 of the 2nd byte is 1 for the "download" button (it's 0 for all the others), so I use this to format the download signal in the executor.
Unfortunately, there's nothing to differentiate between the 2 "start" buttons so I faked something. I set bit0 of the 4th byte data for the 2nd start button in the KM data, then in the executor I use this to differentiate between the two, but I always reset it to 0 in executor.
6 of the bytes used for the two start buttons are constant, only 4 are different.
Hopefully this made some sense, so if it doesn't work, you can have a crack at fixing the executor in PB.
The following zip file contains a KM upgrade, the PB file and a spreadsheet that shows how I'm looking at the data.
https://www.hifi-remote.com/forums/dload ... le_id=6024
First off, I had to reverse your view of the data, so a 1 is now ON and a 0 is now OFF.
Separating the start and stop bits, the 12-bit signal looks something like this...
1-000000000-11
I can replicate the start bit by using a leadin pair of "+630 -0" and I can replicate the stop bits with a leadout time of +1260. However, that still leaves 9 data bits, so to reduce it to 8 I included the 9th data bit in with the leadout.
The 9th bit of the first 4 words is always 1, and for the rest of all the signals it's 0, so, the format of the first 4 words is:
1-00000000-011
and the remaining words:
1-00000000-111
To switch from format1 to format2, I had to change the leadout from "OneOn, -1260" to "-1890".
The 1st and 3rd bytes are constant, so I have hard coded them in the executor. The 2nd, 4th and 5th bytes are supplied via the variable data.
If you look closely at the data in the 2nd byte, bit2 is 1 for the 3 short signals and it's 0 for the 3 long signals, so I use this for that purpose in the executor.
You'll notice that bytes 6 thru 15 are all $FF for the "download" button, and you'll also notice that bit4 of the 2nd byte is 1 for the "download" button (it's 0 for all the others), so I use this to format the download signal in the executor.
Unfortunately, there's nothing to differentiate between the 2 "start" buttons so I faked something. I set bit0 of the 4th byte data for the 2nd start button in the KM data, then in the executor I use this to differentiate between the two, but I always reset it to 0 in executor.
6 of the bytes used for the two start buttons are constant, only 4 are different.
Hopefully this made some sense, so if it doesn't work, you can have a crack at fixing the executor in PB.