View previous topic :: View next topic |
Author |
Message |
3FG Expert
Joined: 19 May 2009 Posts: 3368
|
Posted: Mon Aug 30, 2010 5:37 pm Post subject: |
|
|
Rob,
Whenever possible, I prefer to use the "Features Section" at RC rather than CCF files, since those codes are already Pronto Hex, and are much more likely to be learned codes. Finally, these codes don't have all the extraneous other components typically included in CCF files.
http://www.remotecentral.com/cgi-bin/codes/bang_&_olufsen/ |
|
Back to top |
|
|
Kevin Timmerman Expert
Joined: 09 Jan 2007 Posts: 142 Location: West Michigan |
Posted: Mon Aug 30, 2010 6:10 pm Post subject: |
|
|
Robman wrote: | along with the binary data that I got from the Pronto CCF file. |
I think the codes I posted are comprehensive for the unidirectional protocol. The key names are exactly what is printed on the remote or in the LCD menu (Beo4).
I designed and built custom capture hardware just for the B&O protocol so I could rapidly capture all the codes from all the B&O remotes I have (Beo4 Mk1, Beo4 Mk3, Beolink 1000, Audio Link, A9).
I also have a few bidirectional remotes, but haven't done much with them yet. Each model uses a different code set. |
|
Back to top |
|
|
abcdpxy
Joined: 13 Aug 2010 Posts: 3
|
Posted: Mon Aug 30, 2010 8:06 pm Post subject: |
|
|
Thanks all of experts for what you have done for me .
I will try to read all the infomation above even I am quite don't get into it
3FG wrote: | abcdpxy,
just to make sure that the procedure is working correctly. |
I have made some upgrade with JP1 interface like cd player NAD cd 0512 and its ok for remote operation.
late I will try to make some other upgrade about B&O devices to see what will happen.
abcdpxy |
|
Back to top |
|
|
abcdpxy
Joined: 13 Aug 2010 Posts: 3
|
|
Back to top |
|
|
The Robman Site Owner
Joined: 01 Aug 2003 Posts: 21248 Location: Chicago, IL |
Posted: Mon Aug 30, 2010 9:02 pm Post subject: |
|
|
I am in the process of trying to fully understand this protocol, and how the UEI executor works. Then I'll either write a new executor and some upgrades that use it, or make some upgrades using UEI's executor. _________________ Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help! |
|
Back to top |
|
|
3FG Expert
Joined: 19 May 2009 Posts: 3368
|
Posted: Mon Aug 30, 2010 11:19 pm Post subject: |
|
|
Pronto NG pcf files can be converted (if the signals are learned, and the one in this file are) to Pronto Hex format, and from there can be converted (by hand) to a 8910 upgrade. You can search on Pronto NG at RC and find the exe file to run it.
However, I checked a couple of the codes, and they match the codes we already have. Kevin Timmerman (who works very carefully and accurately) has already completely catalogued all the B&O signals, so we really don't need any more sources. We just need to understand why the upgrade hasn't worked for you yet. |
|
Back to top |
|
|
The Robman Site Owner
Joined: 01 Aug 2003 Posts: 21248 Location: Chicago, IL |
Posted: Tue Aug 31, 2010 11:31 am Post subject: |
|
|
Kevin Timmerman wrote: | I think the codes I posted are comprehensive for the unidirectional protocol. The key names are exactly what is printed on the remote or in the LCD menu (Beo4). |
I don't doubt it, but the terminology that you used to describe the signals wasn't completely clear to me, so I wanted to see the raw signals myself so I could see what they look like.
One thing that I got from the raw data that I didn't get from your description is that the first data stream is followed by a leadout pair, but any repeating streams are not.
Btw, I couldn't find any Pronto hex samples of the longer "V.TAPE2" signals, do you have any samples?
Regarding the 9 buttons that send different codes when they repeat, do you see any relationship between the two codes? In other words, is there a formula you can use to get one code when given the other?
Writing a good executor for this is going to be a challenge. Apart from finding the best way to handle the "repeat bit" logic, we'd have to find a way to make the POWER button repeat once, the VOLUME buttons repeat endlessly and the GO/ARROW/COLOR buttons repeat using a different OBC. Plus, we'll need a way to select different device codes.
I think I can do it using just 2 variable bytes. The first byte would be the 8-bit OBC.
The second byte would be broken down as follows:
3 bits: device code selector (8 unique device codes: 0,1,5,15,27,29,30,41)
5 bits: lower 5 bits of OBC2 (top 3 bits hard-coded to "011")
Hard-code a test for OBC 12 (POWER) to make it repeat once.
If the 5-bit OBC2 is zero, no repeats
If the 5-bit OBC2 is not zero, repeat using generated OBC2 value.
There would be 8 bytes of fixed data, where each byte holds the device code. Even though the device codes use 8 bits, only 6 bits are ever set (ie, largest device code is 41, binary "00101001") so I plan to use the top 2 bits for something else.
If bit6 is set, set the length of the link code to 4 bits and set the bits to 0001, otherwise set the length to 1 bit.
If bit7 is set, set the MSB of the link code. _________________ Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
Last edited by The Robman on Thu Sep 02, 2010 1:38 pm; edited 1 time in total |
|
Back to top |
|
|
Kevin Timmerman Expert
Joined: 09 Jan 2007 Posts: 142 Location: West Michigan |
Posted: Tue Aug 31, 2010 2:17 pm Post subject: |
|
|
B&O Beo4 capture with some TV, RADIO and V.TAPE2 codes
I don't see any obvious way to calculate the repeat codes.
Note that the power button will send 11:0000C (video devices) or 11:0010C (audio devices) when it is pressed, and about 1.5 seconds later will always send 11:00F0C (all off).
I think doing this on a JP1 remote is unnecessary. Having Audio Off, Video Off and All Off codes would be adequate. These codes would not repeat.
The power button on a B&O remote usually has a red dot (no text) and functions as a discrete power OFF. It will not turn anything on - the device select buttons are used for power on. The power button is sometimes called the standby button. |
|
Back to top |
|
|
The Robman Site Owner
Joined: 01 Aug 2003 Posts: 21248 Location: Chicago, IL |
Posted: Tue Aug 31, 2010 3:44 pm Post subject: |
|
|
I think I've figured out how to send the data: Code: | LFF5E: LD W6,#08h ;set index to 8
LFF60: RL W5 ;rotate input left (left bit into CARRY)
JRNC ZERO ;if carry is clear, jump to ZERO logic
ONE: BTJRT REPEAT,W3.7 ;if w3(bit7) is 1, jump to repeat
LD W1,#1Ah ;Prepare burst pair R1A (ONE pair)
JR LFF6E ;jump to SEND
ZERO: BTJRF REPEAT,W3.7 ;if w3(bit7) is 0, jump to repeat
LD W1,#12h ;Prepare burst pair R12 (ZERO pair)
JR LFF6E ;jump to SEND
REPEAT: LD W1,#16h ;Prepare burst pair R16 (REPEAT pair)
LFF6E: RRC W3 ;set the "last bit"
CALL 014Ch ;send the selected pair
DJNZ W6,LFF60 ;reduce index and loop back
RET | Note: Before calling the above routine for the first time, I would load the W5 register into W3 and complement it. _________________ Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help! |
|
Back to top |
|
|
Kevin Timmerman Expert
Joined: 09 Jan 2007 Posts: 142 Location: West Michigan |
Posted: Tue Aug 31, 2010 3:47 pm Post subject: |
|
|
Upload was corrupted and several keys missing.
Fixed file has been uploaded.
Edit: Still doesn't work.
IRScope 2.01 fails to see several keys that are in the file.
Edit2: Found the problem and fixed it by editing the *.ict file.
Fixed file has been uploaded.
Last edited by Kevin Timmerman on Tue Aug 31, 2010 4:29 pm; edited 1 time in total |
|
Back to top |
|
|
vickyg2003 Site Admin
Joined: 20 Mar 2004 Posts: 7073 Location: Florida |
Posted: Tue Aug 31, 2010 4:28 pm Post subject: |
|
|
Kevin Timmerman wrote: | Upload was corrupted and several keys missing.
Fixed file has been uploaded.
Edit: Still doesn't work.
IRScope 2.01 fails to see several keys that are in the file. |
I am jumping in without looking at the file in question, but did you know that when you are saving 1 big ICT file in irscope, and the protocol is unrecognized, keys will be lost if the leadout time isn't long enough?
If you edit the time before the "note" to be longer it will recover the missing keys. _________________ Remember to provide feedback to let us know how the problem was solved and share your upgrades.
Tip: When creating an upgrade, always include ALL functions from the oem remote, even if you never plan on assigning them to a button. Complete function lists makes an upgrade more helpful to others.
|
|
Back to top |
|
|
Kevin Timmerman Expert
Joined: 09 Jan 2007 Posts: 142 Location: West Michigan |
Posted: Tue Aug 31, 2010 4:32 pm Post subject: |
|
|
I looked at the source code and suspected that was the problem. Manual editing fixed it.
That is a bug that should be fixed.
There is also no \r on the note lines - widget.cpp line 334 - easy fix |
|
Back to top |
|
|
vickyg2003 Site Admin
Joined: 20 Mar 2004 Posts: 7073 Location: Florida |
Posted: Tue Aug 31, 2010 5:13 pm Post subject: |
|
|
Kevin Timmerman wrote: | I looked at the source code and suspected that was the problem. Manual editing fixed it.
|
Oh I didn't notice who I was talking to. Kevin Timmerman, inventor of the Widget and original author of IRScope. I can't sing your praises loud enough. I was spinning my wheels FOR YEARS trying to figure out what all those numbers and words that described what protocols meant, and a few days with IRScope and a widget made it all perfectly clear. _________________ Remember to provide feedback to let us know how the problem was solved and share your upgrades.
Tip: When creating an upgrade, always include ALL functions from the oem remote, even if you never plan on assigning them to a button. Complete function lists makes an upgrade more helpful to others.
|
|
Back to top |
|
|
The Robman Site Owner
Joined: 01 Aug 2003 Posts: 21248 Location: Chicago, IL |
Posted: Tue Aug 31, 2010 5:34 pm Post subject: |
|
|
Second file looks much better. In case you're interested, here is the data converted to binary [B = Begin(start) bit, E = End (stop) bit]
Here are the approximate (ie, rounded) burst pairs used:
0 = +200 -3000 (the ZERO pair)
R = +200 -6000 (Repeat: sent if this pair is logically the same as the previous pair)
1 = +200 -9000 (the ONE pair)
E = +200 -12000 (sent at the end of the data string)
B = +200 -15000 (sent at the beginning of the data string)
Code: | 1: TV
00B00000000010000000E +200 -500000
2: TV_Power
00B00000000000001100E +200 -1360000
00B00000111100001100E +200 -500000
4: TV_Vol_Up
00B00000000001100000E +200 -136000
00B00000000001100000E
00B00000000001100000E
00B00000000001100000E
00 +200 -500000
5: TV_Up_Arrow
00B00000000000011110E +200 -139000
00B00000000001110010E
00B00000000001110010E
00B00000000001110010E
00 +200 -500000
6: TV_Green
00B00000000011010101E +200 -136000
00B00000000001110110E
00B00000000001110110E
00B00000000001110110E
00 +200 -500000
7: TV_0
00B00000000000000000E +200 -500000
8: TV_1
00B00000000000000001E +200 -500000
9: TV_2
00B00000000000000010E +200 -500000
10: RADIO
00B00000000110000001E +200 -500000
11: RADIO_Power
00B00000000100001100E +200 -1360000
00B00000111100001100E +200 -500000
13: RADIO_Vol_Up
00B00000000101100000E +200 -136000
00B00000000101100000E
00B00000000101100000E
00B00000000101100000E
00 +200 -500000
14: RADIO_Up_Arrow
00B00000000100011110E +200 -139000
00B00000000101110010E
00B00000000101110010E
00B00000000101110010E
00 +200 -500000
15: RADIO_Green
00B00000000111010101E +200 -136000
00B00000000101110110E
00B00000000101110110E
00B00000000101110110E
00 +200 -500000
16: RADIO_0
00B00000000100000000E +200 -500000
18: V.TAPE2_Vol_Up
00B00000000001100000E +200 -136000
00B00000000001100000E
00B00000000001100000E
00B00000000001100000E
00 +200 -500000
17: V.TAPE2
00B00010010100110000101E +200 -500000
19: V.TAPE2_Up_Arrow
00B00010010100100011110E +200 -139000
00B00010010100101110010E
00B00010010100101110010E
00B00010010100 +200 -500000
20: V.TAPE2_Right_Arrow
00B00010010100100110100E +200 -139000
00B00010010100101110001E
00B00010010100101110001E
00B00010010100 +200 -500000
21: V.TAPE2_GO
00B00010010100100110101E +200 -500000
22: V.TAPE2_Green
00B00010010100111010101E +200 -136000
00B00010010100101110110E
00B00010010100101110110E
00B00010010100 +200 -500000
23: V.TAPE2_0
00B00010010100100000000E +200 -500000 |
_________________ Rob
www.hifi-remote.com
Please don't PM me with remote questions, post them in the forums so all the experts can help!
Last edited by The Robman on Tue Feb 21, 2012 12:32 pm; edited 3 times in total |
|
Back to top |
|
|
Kevin Timmerman Expert
Joined: 09 Jan 2007 Posts: 142 Location: West Michigan |
Posted: Tue Aug 31, 2010 5:53 pm Post subject: |
|
|
The editing to fix the file messed up the power codes, this is correct...
Code: |
2: TV_Power
00B00000000000001100E +200 -1360000
00B00000111100001100E +200 -500000
11: RADIO_Power
00B00000000100001100E +200 -1360000
00B00000111100001100E +200 -500000
|
There is aprox 1.5 seconds between start of first code and start of second code. |
|
Back to top |
|
|
|