I've been using WinLIRC with serial receiver for 4 years. Recently I found that there is a new audio receiver for WinLIRC, when I built and test the audio receiver, I found that it works, but also not working.
I can use IRRecord to create new config file with audio receiver, then WinLIRC can decode IR signal correctly by using audio receiver and new config file.
But WinLIRC fails to decode IR signal when I use audio receiver with any old config file that was created by serial receiver, or when I use serial receiver with any new config that was created by audio receiver.
In order to find out the reason, I throughly read the audio receiver web page again, and I found something suspicious. The output voltage of a typical IR receiver module is 5V when no IR signal is received. The output voltage first drops to 0V when IR signal is fired towards the receiver, then bounces between 5V and 0V, and finally returns to 5V when IR signal is removed. Unlike the waveform diagram shown in audio receiver web page which goes upward first, it should go downward first. I've attached a waveform diagram that was recorded with audio receiver plug into the onboard mic input at the rear of my computer motherboard with VIA VT1708B audio chip. I also tried with onboard Line-in and CD-in, even with a PCI soundcard with C-Media 8738/PCI-6ch-LX audio chip and an external USB soundcard with Crystal CS4228A-KS audio chip, in both Win XP/Sp3 and WIn 7, they all give the same downward waveform.
According to the audio receiver web page, WinLIRC detects the signal at a level slightly over midpoint. With the waveform flipped upside down, not only all the On's and Off's were inverted, the first pulse was also undetected. I think this is the reason why I can't use audio receiver with any old config file that was created by serial receiver, or vise versa. Although the first pulse was undetected, WinLIRC could still read the rest of the inverted pulses, so that new config file can be created and works fine with audio receiver.
To prove my theory, I tested again with a hardware inverter added to audio receiver. Now everything works fine, the waveform goes upward first, new and old config files, audio and serial receiver are now interchangeable.
But this is not the end of my test. When I plug my modified audio receiver to the onboard front mic input of my computer mother, it doesn't work again. Then I check the waveform of front mic input, I found that it goes downward first. I don't know why this is happening, maybe the VIA audio chip already has an inverter built in exclusively for the front mic input, maybe it is done by the VIA audio driver.
Since both upward and downward waveform may be recorded by different audio input, perhaps WinLIRC should add an option to let users to select whether upward of downward waveform is recorded, or let WinLIRC detect it automatically.
Log in to post a comment.