Support and General Use > Hardware
H120 remote control
bluebrother:
--- Quote from: bonapardo on May 31, 2011, 05:47:34 AM ---btw, I'm having problems viewing the updated schematic - do I need a special viewer?
--- End quote ---
It's an Eagle file -- there's a (limited) free version available which I was using for drawing it. I've put a png export of it online: http://tinyurl.com/bluebrother/ir-remote.png
--- Quote ---What was your approach to working out what the controller needed to output (i.e. what the iRiver was expecting to be sent to it)? What/how did you measure? Do you think, with a spare LCD remote, that it should be pretty simple for me to program the extra commands into the controller - or would I need to redesign the circuit?
--- End quote ---
The Rockbox wiki has some information on how the remote works (see the links in the Readme file in the github repository). If you want to add navigation you'll face two problems:
* you need to tell the player it's an LCD remote. This is done via pulling th Hold line around (I've figured this out in the meanwhile but haven't documented it yet. The change is simple).
* when you're faking the H100 LCD remote you need completely different resistor values. That is, the direct connection of RMC to a pin is useless right now -- it generates a value of 0, and that value is Stop for the LCD remote but not handled for the non-LCD remote. All other values are different as well, and you need more buttons (i.e. GPIO pins). So you basically need to redesign parts of the circuit.
However, depending on what exactly you want to achieve there isn't much need to change anything: I'm usually playing music from the file browser. Once the playlist ends Rockbox drops me back into the file browser, and I can navigate and select a new folder / playlist that way. The only "problem" is that I can't switch out of the WPS (by pressing Select or Stop since those don't exist) with the current solution.
bonapardo:
Brilliant, I'll download the software. Thanks for the PNG.
Sounds like the only additional functionality I need are just the select and stop buttons in order for me to back out to a menu while the music is playing and go up a folder level respectively. I wonder if we even need to fool it into thinking it's an LCD remote or whether we can get away with fooling it into thinking it's a non-lcd remote with additional buttons (!). I suspect that's wishful thinking.
How did you finalise the resistor values for each control, was it just trial and error, did you connect everything up and measure values while using the remote or were there hidden truths within the non-lcd remote itself?
EDIT: I just looked at the section above the remote section in the wiki (which I was familiar with from the extension cable) and can see some resistor values. When you mention completely different resistors being necessary for faking the LCD remote, is this due to the fact that we're faking LCD (i.e. does this even affect resistors for your existing non-lcd buttons) or do you simply mean we need different resistors for the additional two buttons? Also, would I need a different controller (with more generic I/Os) for the additional buttons?
Sorry to keep pestering you with questions! Navigation is one of my requirements and just wanted to check whether I'd need to know this info before I actually put things together - either way, I'm going to give it a shot for fun. I really appreciate your advice and don't want you to regret kick starting the project again!
Cheers,
Ben.
bluebrother:
--- Quote from: bonapardo on June 01, 2011, 01:17:32 PM ---I wonder if we even need to fool it into thinking it's an LCD remote or whether we can get away with fooling it into thinking it's a non-lcd remote with additional buttons (!). I suspect that's wishful thinking.
--- End quote ---
Yes, you need to.
It's basically this way: Rockbox checks for the type of the remote. Depending on the type of the remote it checks the input ADC for various value ranges. The H100 LCD remote produces completely different values than the H300 non-LCD remote due to different resistors in the setup. As an example take the connection between PB4 and RMC: for the H100 LCD remote this is Stop, for the H300 non-LCD remote this does nothing. It is wired for the simple reason that I had this connection in my initial circuit (since I started with the H100 LCD remote) and didn't remove it. Since the controller software doesn't use PB4 it doesn't hurt.
You could of course also adjust the Rockbox source code to work with different resistor values. I would try to avoid that to simplify updating (and adjusting the values really isn't that much of an issue).
--- Quote ---How did you finalise the resistor values for each control, was it just trial and error, did you connect everything up and measure values while using the remote or were there hidden truths within the non-lcd remote itself?
--- End quote ---
I measured the values directly on the remote.
--- Quote ---When you mention completely different resistors being necessary for faking the LCD remote, is this due to the fact that we're faking LCD (i.e. does this even affect resistors for your existing non-lcd buttons) or do you simply mean we need different resistors for the additional two buttons? Also, would I need a different controller (with more generic I/Os) for the additional buttons?
--- End quote ---
First, the Play button (which is a special case for the buttons) is the same for both remotes, so no changes needed here. Second, all other buttons (except Hold, but that isn't of interest anyway) are handled via the resistor network you see both in the Wiki and the circuit. However, H100 LCD remote and H300 non-LCD remote use completely different values.
For two additional buttons you won't need a different controller -- the used one still has various GPIOs left. For adding those two buttons you even need only one additional line due to th PB4 connection already been made. It's basically an additional element in the line of resistors, connect that to PD6 (which has even a quite good location on the controller pinout; furthermore you could even add more buttons by dropping the UART, LED and unused crystal lines). Then you need to adjust all resistors to produce the needed values and adjust the controller firmware. Last, you need to tell the player that you use a different type of remote. This is done by pulling the Hold line to a certain level. I haven't tried this but a resistor network like the following should do
--- Code: ---Vcc---[2k9]---HOLD---[2k1]---GND
--- End code ---
I might even update the circuit with that some time later -- I've kept the UART lines open to be able of interacting with an Ipod later (since that uses a simple UART). Unfortunately I haven't managed to get that working with my current prototype, and I fear the UART might have been damaged during my repeated (un-)soldering work, so I might build up a new prototype. This won't happen too soon though since this weekend DevCon is coming up.
--- Quote ---I really appreciate your advice and don't want you to regret kick starting the project again!
--- End quote ---
As long as there is someone interested I'm unlikely to do :)
bonapardo:
Brilliant, that's exactly the kind of info I was after. Doesn't seem like too great an obstacle for me to add those buttons (he says with trepidation). I'll order the controller and get started over the coming weeks.
Thanks again for all your help, enjoy DevCon!
bonapardo:
(I had a question, but worked it out)
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version