View previous topic :: View next topic |
Author |
Message |
joshville
Joined: 13 Jun 2005 Posts: 34
|
Posted: Mon Jul 04, 2005 4:09 pm Post subject: Porting an existing extender to the DCP501-R remote |
|
|
Hal/Rob,
Here's the new thread as suggested in the hardware thread. As far as choosing which extender (TiVo or RTV5000) to port, I don't think I will be wanting to add too much complexity. I mostly want to make sure I can control all the functions of my other equipment and put in a few macros. If I make it too complicated then my wife will get ticked off every time she tries to watch TV. The speed of the RTV5000 extender sounds like a really nice feature, assuming that it's not too fast for my equipment. Not knowing what all is involved with porting an extender, I would say that whichever one is easiest to do would be fine. Is this something I could do myself with help, or does it require something like getting a ROM dump and finding the addresses of the different subroutines in the processor code?
-Josh |
|
Back to top |
|
|
The Robman Site Owner
Joined: 01 Aug 2003 Posts: 21238 Location: Chicago, IL |
Posted: Mon Jul 04, 2005 4:27 pm Post subject: |
|
|
Just FYI (for Hal), even though this remote is only a 5-device remote, it has what appears to be 9 device buttons (all of the extra "device" buttons select the audio device mode and presumably select the appropiate input on the DCP501).
So, if the extender supports 9 devices, these 9 "device" buttons could become true device buttons. _________________ 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 |
|
|
joshville
Joined: 13 Jun 2005 Posts: 34
|
Posted: Mon Jul 04, 2005 7:01 pm Post subject: |
|
|
Just confirming the previous from Rob - the fake device buttons are just input selectors for the DCP501 box. |
|
Back to top |
|
|
mtakahar Expert
Joined: 03 Aug 2003 Posts: 281
|
Posted: Mon Jul 04, 2005 10:19 pm Post subject: |
|
|
I've created the beta 1. See if it works once you get the remote back.
The activation key is any of the volume buttons. I gave a rather large portion of the EEPROM space to the upgrade area because this remote doesn't seem to have many devices/protocols built-in. We can tweak those details later as you test it and find what works better.
I just included the documents from TiVo ex2, but most of the things apply to this extender. I'll try to find some time updating them later. The build/install scripts and KeyCode.htm are already updated.
Hal |
|
Back to top |
|
|
joshville
Joined: 13 Jun 2005 Posts: 34
|
Posted: Tue Jul 05, 2005 7:36 am Post subject: |
|
|
Dang, you guys are fast! |
|
Back to top |
|
|
The Robman Site Owner
Joined: 01 Aug 2003 Posts: 21238 Location: Chicago, IL |
Posted: Tue Jul 05, 2005 12:59 pm Post subject: |
|
|
Just to show you that there are no slackers here in the JP1 world, Nils has already generated a new image map for this remote and has included it in the new release of RDFs...
http://www.hifi-remote.com/forums/viewtopic.php?t=4804 _________________ 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 |
|
|
joshville
Joined: 13 Jun 2005 Posts: 34
|
Posted: Fri Jul 08, 2005 10:32 am Post subject: |
|
|
I got the remote back in the mail yesterday (again, thank you so much, Rob!). I'm not sure when I'll get a chance to play with the extender. Maybe this weekend, but we've got a lot going on. I did download extinstall this morning. I didn't find it in the files section, so I assume the Yahoo version is the latest.
I noticed the hex file for the extender wasn't there, so I built the hex file from the asm file. Was there anything I was supposed to do in the asm file first? I think I can figure out the rest of the stuff I need to do. I'll post again when I get something going on.
Thanks!
-Josh |
|
Back to top |
|
|
The Robman Site Owner
Joined: 01 Aug 2003 Posts: 21238 Location: Chicago, IL |
Posted: Fri Jul 08, 2005 10:45 am Post subject: |
|
|
Hey Hal,
As this is Josh's first go round with extenders, it might be a good idea if you create IR.exe ready files for both the 1k and 2k versions.
Here's a "virgin" dump of the 1k chip:
http://www.hifi-remote.com/forums/dload.php?action=file&file_id=1893
This remote isn't programmed to look for a 2k EEPROM, so the checksum range doesn't change when a 2k chip is installed. _________________ 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 |
|
|
mtakahar Expert
Joined: 03 Aug 2003 Posts: 281
|
Posted: Fri Jul 08, 2005 12:14 pm Post subject: |
|
|
Sorry, I intended to include both .hex and the initial image for both 1k and 2k, but they didn't go in there because I forgot to take care of them in the Makefile. I updated the .zip file here: http://www.hifi-remote.com/forums/dload.php?action=file&file_id=1903
In this package, I've also updated the RDFs to point at the image map Nils created.
Josh, the image you created should be pretty much the same as the one I included. Just briefly check there are some macros, devices and protocols pre-installed. (extinstall sometimes doesn't complain when it cannot find the right RDF and it just creates wrong a image.)
Hal |
|
Back to top |
|
|
joshville
Joined: 13 Jun 2005 Posts: 34
|
Posted: Sat Jul 09, 2005 12:45 pm Post subject: |
|
|
Hal,
Thanks so much for the updated files! I have way more confidence in the ones you did than what I would have done. Anyway, I've played around some, and I'm not getting great results. I'm not sure I'm doing everything right, though. Here's what I did:
I opened the dcp501_extender1-2K.txt file in IR and uploaded to the remote. I left all the device buttons settings as they were at first. After the upload, I hit the volume buttons but got no change. I really didn't expect to, since the 1800 upgrade was not set. To set TV to 1800 I used the normal code setting method on the remote. Then when I hit a volume button I got one longish blink and 3 shortish blinks. When I tested operation, the remote was in Cable mode. It would control my digital cable box , but nothing else. Also, every key press that was in the button set for cable illuminated the "TV" button. I believe this is because in the Other Settings area of the General tab the O Device and V Device were both set to CATV. Those are the initial settings when the extender is initialized, correct?
I tried changing the O Device and V Device setting to Audio and uploaded again. After initializing the extender the remote was in Audio mode. The device buttons worked to select input on the DCP501 box, but had no effect changing the mode of the remote. It appears as if the the initial macros you set up for device selection are not running for some reason. The extender is definitely running, though. Changing those O and V devices to TV had the effect of essentially disabling the remote and initializing the extender (four blinks) with every other press of the volume key.
I'm not sure if I should have made more changes before uploading to the remote or what. I'm usually pretty good at debugging, troubleshooting, and generally figuring things out, but this is very "black box" to me due to my limited assembler code experience and really having no idea what is going on inside the remote.
If I'm sort of at a loss right now. Any suggestions on some things to try?
Thanks so much!
-Josh |
|
Back to top |
|
|
joshville
Joined: 13 Jun 2005 Posts: 34
|
Posted: Sat Jul 09, 2005 3:11 pm Post subject: |
|
|
I'm also trying to do a crash course on assembly code and learn exactly what is going on in the extender. There are a couple of things I can't really remember from what I've done before and I can't find it on the web either. I think I've ascertained that db and dw are define byte and word, respectively. I'm not sure what org and xorg mean. Is there a language reference for s3c8asm? Also, is there some sort of resource for extender writers that details what each of the subroutines in the ROM do? If not, I'll just keep trying to deconstruct what is going on in the asm file.
Thanks!
-Josh |
|
Back to top |
|
|
The Robman Site Owner
Joined: 01 Aug 2003 Posts: 21238 Location: Chicago, IL |
Posted: Sat Jul 09, 2005 4:35 pm Post subject: |
|
|
joshville wrote: | Is there a language reference for s3c8asm? |
First go here:
http://www.hifi-remote.com/files/
Then select this file:
S3C8-instruction-set.pdf (359k)
Instruction set for S3C80E5/P80E5/C80E7/P80E7 _________________ 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 |
|
|
joshville
Joined: 13 Jun 2005 Posts: 34
|
Posted: Sat Jul 09, 2005 7:13 pm Post subject: |
|
|
Thanks, Rob, I think I worded my previous post poorly. Being a mechanical guy with 90% of my programming skills (if you can call them that) self taught, I'm not so accurate with terminology. I had found the processor's instruction set previously in a google search. What I (think) I was trying to find is a list of the assembly directives... like the new IFDEF that is so well documented in the readme file for V7.4. I've looked all over for what exactly org and xorg do, but I haven't found anything. It looks like sort of a "start at this address and write all the following stuff" directive to the assembler, but I'm not sure. The other thing I'm trying to find with no luck is what the calls to the functions in the remote do, like
DebounceKeys = 1357 ;Debounced scan of keypad
I (think I) know that this line is just defining that the DebounceKeys routine starts at location 1357 in the ROM, but I have very little idea what a "debounced scan of keypad" is/does when it is called from the body of the extender.
If it's too complicated for someone who wasn't in it on the ground floor, that's OK. I'll just accept that and go on.
Sorry if I'm getting annoying.
Again, thanks for all you've done!
-Josh |
|
Back to top |
|
|
joshville
Joined: 13 Jun 2005 Posts: 34
|
Posted: Sat Jul 09, 2005 8:14 pm Post subject: |
|
|
Again, sorry if I'm being annoying. I'd like to learn to the point where I can actually contribute to the community.
I found some more info in the protocol-builder-assembler-readme.txt file that explains xorg, wreg, and a couple of other assembler directives. I assume that at least xorg works the same in the assembler that is part of the protocol builder.
Still digging,
-Josh |
|
Back to top |
|
|
mtakahar Expert
Joined: 03 Aug 2003 Posts: 281
|
Posted: Sat Jul 09, 2005 8:55 pm Post subject: |
|
|
You are right about DB (Define Bytes) and DW (Define Words).
ORG sets the ORiGin of the pc (program counter), and the pc keeps track of the current address.
s3c8asm has the secondary pc and XORG is for this pc. It is convenient to have two pcs because we sometimes want to know where a specific part of the assembled code falls into the EEPROM.
S3c8asm doesn't know which one is used for what purpose, but we usually use the primary (ORG) for RAM addresses and the secondary (XORG) for EEPROM addresses. $ is a built-in variable that always has value of the current pc, and $$ is the secondary.
Going back to the extender stuff, it's usually just a few things that are wrong and making it not working unless it has some newly written code, which is not the case here.
joshville wrote: | ...I hit the volume buttons but got no change. I really didn't expect to, since the 1800 upgrade was not set. |
This extender uses a different address range for the device button settings from the original location, so it is normal you don't see the setup code for the activation code with the extender RDF, however, I've just tried forcing IR to use the non-extender RDF (patched the signature bytes: $002-$009 in the image if you are interested) and now I see a problem. Looks like I incorrectly put Cable/1800 instead of TV/1800.
I fixed this and uploaded a new one:
http://www.hifi-remote.com/forums/dload.php?action=file&file_id=1903
Quote: | To set TV to 1800 I used the normal code setting method on the remote. Then when I hit a volume button I got one longish blink and 3 shortish blinks. |
I don't think this would work because the remote can't know about the device button settings addresses in the extender RDF. Expected behavior is the same blinking pattern as the one you would see when you do the 981 reset. Did the pattern looked similar to you?
Whatever the case, I think it's good to make sure the LED on/off addresses in the extender are correct first.
Could you try this set of upgrades on the unextended remote before you try the extender? This is the same pause protocol in the extender, and the device upgrade has functions assigned on the digit buttons, and each button should blink the LED as many times as the digit (but 0 for 10 times).
Code: | Upgrade code 0 = 2c 50 (TV/1104)
FB 00 81 0A 01 02 04 03 05 06 07 08 09
End
Upgrade protocol 0 = 01 FB (S3C80)
00 00 01 28 03 8D 14 50
End |
Hal |
|
Back to top |
|
|
|