I'm trying to get the IR timings from a Remote and play them back using Puck.IR
I got the correct times from a website and they work using Puck.IR but I cannot get the correct timings using times recorded from a connected IR Receiver, I have a few different IR receivers and they all give more or less the same result - firmware was 1.89 and also tested with the new beta 1.89.35
I've been using the examples given on the site, 1 issue i've noticed is when using this snippet
pinMode(D1,"input_pullup");
var times =[];
var currentWatch;
function startWatching() {
currentWatch = setWatch(function(e) {
var pulseLen = (e.time - e.lastTime);
if (pulseLen < 1000) {
times.push(pulseLen);
} else {
times = [];
}
}, D1, {repeat:true});
}
startWatching();
function stopWatching() {
clearWatch(currentWatch);
currentWatch = null;
}
The times given back are to max 3 decimal places e.g. [ 0.009, 0.004, 0.001, 0, 0.001, 0.001, 0, 0.002, 0, ... Is this expected behavior from e.time and e.lastTime? It's not really accurate enough for this.
I set up my own timers using the onPulseOn and OnPulseOff examples (https://www.espruino.com/Infrared+Remote+Control) and get better accuracy, however these still do not work when played back and are quite a bit different to the ones i got off the website
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
I'm trying to get the IR timings from a Remote and play them back using Puck.IR
I got the correct times from a website and they work using Puck.IR but I cannot get the correct timings using times recorded from a connected IR Receiver, I have a few different IR receivers and they all give more or less the same result - firmware was 1.89 and also tested with the new beta 1.89.35
I've been using the examples given on the site, 1 issue i've noticed is when using this snippet
The times given back are to max 3 decimal places e.g. [ 0.009, 0.004, 0.001, 0, 0.001, 0.001, 0, 0.002, 0, ... Is this expected behavior from e.time and e.lastTime? It's not really accurate enough for this.
I set up my own timers using the onPulseOn and OnPulseOff examples (https://www.espruino.com/Infrared+Remote+Control) and get better accuracy, however these still do not work when played back and are quite a bit different to the ones i got off the website
Website times (ms): 9.024 ,4.512 ,0.564 ,0.564 ,0.564 ,0.564 ,0.564 ,1.692 ,0.564
Puck recorded times (ms): 8.9993, 4.57763671875, 0.9765625, 1.06811523437, 0.94604492187, 1.0986328125, 0.91552734375, 1.12915039062, 0.91552734375
Any help would be appreciated