JP1 Remotes Forum Index JP1 Remotes


FAQFAQ SearchSearch 7 days of topics7 Days MemberlistMemberlist UsergroupsUsergroups RegisterRegister
ProfileProfile Log in to check your private messagesLog in to check your private messages Log inLog in

Having PC drive an IR emitter based on JP1 upgrade data?
Goto page 1, 2  Next
 
Post new topic   Reply to topic    JP1 Remotes Forum Index -> JP1 - Beginners
View previous topic :: View next topic  
Author Message
semuther



Joined: 29 Sep 2003
Posts: 27

                    
PostPosted: Thu May 11, 2006 12:01 am    Post subject: Having PC drive an IR emitter based on JP1 upgrade data? Reply with quote

I would like to control various IR devices using an emitter connected to my PC. Is there software which would allow me to generate IR with a PC using data from JP1 upgrade files?

If not, I see lots of home brew and commercially made IR transceivers for the PC with learn/emit software. Anyone have any comments on what some of the better hardware and software combinations are for this?

Thanks

Steve
Back to top
View user's profile Send private message
The Robman
Site Owner


Joined: 01 Aug 2003
Posts: 21238
Location: Chicago, IL

                    
PostPosted: Thu May 11, 2006 7:35 am    Post subject: Reply with quote

I think this is what you need...
http://www.lirc.org/
_________________
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
View user's profile Send private message Visit poster's website
johnsfine
Site Admin


Joined: 10 Aug 2003
Posts: 4766
Location: Bedford, MA

                    
PostPosted: Thu May 11, 2006 8:52 am    Post subject: Re: Having PC drive an IR emitter based on JP1 upgrade data? Reply with quote

semuther wrote:
I would like to control various IR devices using an emitter connected to my PC. Is there software which would allow me to generate IR with a PC using data from JP1 upgrade files?


I don't know of that being done so far. It has been talked about several times. There is certainly enough information posted in files and threads here to answer any technical questions one might have while building that (but it is still a significant software project).

semuther wrote:

If not, I see lots of home brew and commercially made IR transceivers for the PC with learn/emit software. Anyone have any comments on what some of the better hardware and software combinations are for this?


I'm amazed at what various vendors get away with charging for such things.

I'm confused by almost every aspect of LIRC. LIRC is probably the most cost effective solution (free software and a choice of hardware including low cost options). LIRC is also probably the most flexible choice available (both in range of protocols supported and in ways of controlling the process from PC programs). But I have never found any beginner friendly documentation for LIRC.

Several JP1 experts are actively experimenting with the 8820 remotes and other JP1.2 remotes. We seem to be making slower progress than I would have expected toward a public set of hardware and software for doing JP1-like things with JP1.2. But there are no serious roadblocks, nothing we don't know how to do. It is just a matter of time and coordination to nail down all the details.

I'm saying all that because of the possibility of using an 8820 the way some very old (pre JP1) OneForAll were designed to be usable: Connected to a PC and sending IR signals as the PC requests them. That of course would give you direct access to JP1 upgrades as a command source (vs finding or translating to LIRC form).

The JP1.2 remotes do NOT have that capability designed in. But they are inherently enough more flexible than JP1 remotes (more internal ram etc.) that coding that cabability to be loaded across the JP1.2 cable would be a simple task. For JP1, such a thing should be possible but would be VERY tricky to code and I never found time to try. For JP1.2, I'm pretty sure I'll find the time to code that.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
semuther



Joined: 29 Sep 2003
Posts: 27

                    
PostPosted: Thu May 11, 2006 8:59 am    Post subject: Reply with quote

The Robman wrote:
I think this is what you need...
http://www.lirc.org/


Ah, I should have qualified that I am running XP not linux and am not likely to change due to the other applications I must run which are not supported and there are no alternatives under linux.

Steve
Back to top
View user's profile Send private message
johnsfine
Site Admin


Joined: 10 Aug 2003
Posts: 4766
Location: Bedford, MA

                    
PostPosted: Thu May 11, 2006 9:12 am    Post subject: Reply with quote

semuther wrote:

Ah, I should have qualified that I am running XP not linux


I should have qualified that I was already assuming you were running Windows, not Linux (if you were running Linux you would have selected LIRC without asking us). That assumption is part of the reason I mentioned the lack of beginner friendly LIRC documentation.

Even though there are ways to run LIRC in Windows, the documentation for that is seriously flawed. I think there are multiple ports of LIRC to Windows and no hint as to which to choose. They are missing most of the documentation, and rely on the main LIRC documentation instead. But the main LIRC documentation is somewhat flawed to begin with and assumes Linux.

One place to start is
http://winlirc.sourceforge.net/
Back to top
View user's profile Send private message Send e-mail Visit poster's website
semuther



Joined: 29 Sep 2003
Posts: 27

                    
PostPosted: Thu May 11, 2006 9:23 am    Post subject: Reply with quote

johnsfine wrote:
One place to start is
http://winlirc.sourceforge.net/

Thanks, I was hoping I would not have to make this into a really big science project. I'll do more searching. Ideally, it would have been nice to be able to load my saved device upgrade files into some sort of command or script driven application for scheduled control of various devices. Or even call up a virtual remote on screen for manual IR blasting to a given device. Unfortunately, I'm not a software developer myself but it seems there might be some interest in such a system.

Steve
Back to top
View user's profile Send private message
The Robman
Site Owner


Joined: 01 Aug 2003
Posts: 21238
Location: Chicago, IL

                    
PostPosted: Thu May 11, 2006 9:37 am    Post subject: Reply with quote

How soon do you need this to be up and running? If you can wait a while, as John mentioned earlier, there's a good chance that once JP1.2 remotes are fully supported by our JP1 software and hardware, we might have the ability to control the remote from the PC, so your JP1.2 remote would, in effect, be your IR emitter.

ps. If you check "disable BBCode" iwhen you post, you can't quote other people's posts. I've had to go back and edit all of your previous posts so they display correctly.
_________________
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
View user's profile Send private message Visit poster's website
johnsfine
Site Admin


Joined: 10 Aug 2003
Posts: 4766
Location: Bedford, MA

                    
PostPosted: Thu May 11, 2006 9:45 am    Post subject: Reply with quote

1) Try reading through the winlirc site before you search elsewhere. Maybe I have a mental block about Windows ports of Linux applications. I always find their documentation is a serious impediment. Maybe you'll find your way through winlirc more easily than I did, or maybe it's the best choice despite documentation issues, or maybe their support forum is as beginner friendly as ours (I don't think many online forums are, but maybe).

2) A question for any lurkers drawn to this topic:

What is the best basic model for a program in the remote that give the PC control?

A) Let the PC give the ID of a button in the remote and tell the remote to pretend that button was pressed. So the PC would "press" the CBL button, then "press" the button for some command in CBL mode, etc.

B) Let the PC give a setup code and hex command and that signal would be transmitted.

C) Let the PC give a protocol ID and fixed data and hex command (and probably duration as well) and THAT signal would be transmitted.

If I were using it, I would prefer C because it is more flexible, it is less dependant on the prior state of the remote, and I'm comfortable copying fixed data and hex commands from an rm upgrade (and/or writing my automation software so it pulls the data from an rmdu file).

But I expect most users would find (A) gives a better fit to the way they think about the problem.

What do you think? I may or may not use your answers when I may or may not write software for the 6820/8820 to do this operation (10820 is the same for software, but I think external rather than battery power is appropriate for the remote and a 10820 is harder to externally power).
Back to top
View user's profile Send private message Send e-mail Visit poster's website
semuther



Joined: 29 Sep 2003
Posts: 27

                    
PostPosted: Thu May 11, 2006 9:52 am    Post subject: Reply with quote

The Robman wrote:
How soon do you need this to be up and running? If you can wait a while, as John mentioned earlier, there's a good chance that once JP1.2 remotes are fully supported by our JP1 software and hardware, we might have the ability to control the remote from the PC, so your JP1.2 remote would, in effect, be your IR emitter.

ps. If you check "disable BBCode" iwhen you post, you can't quote other people's posts. I've had to go back and edit all of your previous posts so they display correctly.


Thanks for the BBCode tip and the edits.

Oh, I'd love to have something up and running yesterday! But, if there's interesting work being done, I'll certainly watch and beta test as I use other less desireable apps in parallel.

Steve
Back to top
View user's profile Send private message
The Robman
Site Owner


Joined: 01 Aug 2003
Posts: 21238
Location: Chicago, IL

                    
PostPosted: Thu May 11, 2006 11:57 am    Post subject: Reply with quote

I think option A is probably easier to implement, but option C is the better approach. Of course, your analysis of what's physically possible will dictate what options can even be considered.

Under option C, if it's possible to feed fixed and variable data to the remote, along with a protocol upgrade if the protocol isn't resident in the remote, I'm imagining that we could create a virtual remote on the PC where the user can add unlimited upgrades, in unlimited device modes. They would then be able to program macros that would kick off at specified times that would send a series of "buttons" to the remote, where a "button" is a combination of fixed data, variable data and possibly a protocol. They should also be able to just "press" a button.

Option A would be simpler. The virtual remote would be an accurate reflection of the real remote, so any upgrades available in the virtual remote would have to be actually installed in the real remote. But from that point on, it would work the same as under option C, where the user can both "press" a button live and also program timed macros.
_________________
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
View user's profile Send private message Visit poster's website
johnsfine
Site Admin


Joined: 10 Aug 2003
Posts: 4766
Location: Bedford, MA

                    
PostPosted: Thu May 11, 2006 1:07 pm    Post subject: Reply with quote

I haven't tried coding it yet, but I expect B would be easiest to create, and C slightly harder and A harder still.

Part of the problem (maybe a big part) is knowing what the invoked operations will do to ram (finding the safe parts of ram for the program to use that won't be stepped on by the things invoked). Keystrokes can invoke macros, which can do who knows what. Direct use of protocol executors makes it easier to assume reasonable restrictions on the ram use of the invoked actions.

Downloading protocol executors on the fly is enough harder, with rare enough benefits, that I'm pretty much rejecting that without further investigation, sorry. (vs. sending fixed data with the hex commands, eliminating the need for device upgrades, which is not much harder than using setup codes, might even turn out to be easier).
Back to top
View user's profile Send private message Send e-mail Visit poster's website
semuther



Joined: 29 Sep 2003
Posts: 27

                    
PostPosted: Thu May 11, 2006 1:54 pm    Post subject: Reply with quote

Sorry, posted this from an old screen before seeing the previous post. My
question below would, from a user perspective, seem like the cleanest way to go but obviously there are other considerations. I may for the time being simply use some apps I am finding which just memorize LED blink sequences and play them back on demand. My applications are limited in terms of the required functions but this approach is OK for the time being.

-----

My simplistic question after reading the above:

- You've got learned device upgrades on a PC
- You know what the various protocols are

Can you have an app that takes the above, integrates it with some sort of GUI and commandline interface (such that batch files can be written and scheduled) and simply blinks an IR led connected to one of the PC's parallel port lines via a resistor? Why involve a permanently connected remote?

The GUI might emulate a common remote such as an 8910.

Sorry, I'm not a software guy, I design RF and microwave hardware for a living....

Steve
Back to top
View user's profile Send private message
johnsfine
Site Admin


Joined: 10 Aug 2003
Posts: 4766
Location: Bedford, MA

                    
PostPosted: Thu May 11, 2006 2:49 pm    Post subject: Reply with quote

semuther wrote:

- You've got learned device upgrades on a PC
- You know what the various protocols are


Right

semuther wrote:

Can you have an app that takes the above, integrates it with some sort of GUI and commandline interface (such that batch files can be written and scheduled) and simply blinks an IR led connected to one of the PC's parallel port lines via a resistor?


The primary reason I don't do that is the time it would take to write the software. I'm especially not good at building GUI.

semuther wrote:

Why involve a permanently connected remote?


But there are other aspects.

Windows OS latency is a big one. Windows frequently interrupts whatever task is running to service some network event or display or mouse bookkeeping, etc.

If a PC application is directly managing an IR LED, it is switching that IR LED at typically 38Khz (but maybe much faster). Steal the CPU away from it for a couple hundred microseconds and it is seriously out of sync. Even ten microseconds would glitch the phase of the outgoing signal and some IR receivers care about that.

There are some pretty cheap (refurbished) 8820's available online, so the cost (vs. buying an IR LED and a little support circuitry) isn't too bad.

Using the 8820 reduces the amount of software that must be written, and it solves the interrupt latency problems (assuming you communicate with that remote in a method that doesn't reintroduce the latency problems).

semuther wrote:

Sorry, I'm not a software guy, I design RF and microwave hardware for a living....


So you're probably more comfortable than I would be with the details of powering and controlling an IR LED through the parallel port. Now if you find someone who is more comfortable with the GUI and latency issues, the part that needs IR signal expertise is already available in C++ source code, such as my MakeHex program.

I don't know how winLIRC deals with latency. A device driver in Windows has somewhat more ability to manage that than an application program. The few times I've tried to follow online instructions for building simple device drivers the build process just fails. Symbols that are supposed to be included from the SDK or DDK aren't there. Obviously other people manage to get such things done, but I haven't had time to follow through. I'm good at designing and writing software. That can be a very different skill from being good at digging through bad documentation and examples to figure out how to access features of the rotten foundation we have to layer all software on top of.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
semuther



Joined: 29 Sep 2003
Posts: 27

                    
PostPosted: Thu May 11, 2006 6:24 pm    Post subject: Reply with quote

For me anyway, the gui is a secondary issue. What I would want to do is, assuming a commandline interface, write batch files for sequences of IR button pushes to, say, move my satellite dish from one bird to another at a certain time via windows scheduler.

Understand the latency issues. That, as we hardware people say, is a software issue.

I can, however, assist with the design of the parallel port to IR interface. A signle output pin (or bit) on the parallel port can source up to 2.5mA of current which is enough to light a low power LED (IR or visible) OR drive a buffer for more current and larger emitters. In fact, in the industrial control world, this is done all the time for opto-isolated power switches for large machines.

If a way can be found to deal with the latency issue, that port could feed, I forget how many lines but there are at least 8 bits, multiple LEDs going to multiple IR controlled devices for all kinds of interesting control applications.

Steve
Back to top
View user's profile Send private message
johnsfine
Site Admin


Joined: 10 Aug 2003
Posts: 4766
Location: Bedford, MA

                    
PostPosted: Thu May 11, 2006 6:46 pm    Post subject: Reply with quote

If you want to run long wires from your printer port all over the room, I guess it isn't harder for the PC to support up to a dozen instead of one.

I was assuming one IR output aimed at several devices across the room.

When I did such things long ago on much slower computers without Windows (so latency was entirely under my control) I found it much easier to use a pair of IR LEDs wired in series rather than just one. That reduced aiming problems, and the hardware person helping me at the time said the higher voltage across two series IR LEDs made the current control simpler. Just currious if you have an opinion on that one. I have no idea now how you do current limiting for an IR LED powered by the printer port.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic       JP1 Remotes Forum Index -> JP1 - Beginners All times are GMT - 5 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


 

Powered by phpBB © 2001, 2005 phpBB Group
Top 7 Advantages of Playing Online Slots The Evolution of Remote Control