-
Notifications
You must be signed in to change notification settings - Fork 76
/
CHANGELOG.txt
64 lines (63 loc) · 5.42 KB
/
CHANGELOG.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
Change Log for IRLib – an Arduino library for infrared encoding and decoding
Copyright 2013-2015 by Chris Young http://tech.cyborg5.com/irlib/
Version 1.51 March 2015
Added USE_ATTACH_INTERRUPTS define to allow disabling IRrecvPCI and IRfrequency both of which use the built-in "attachInterrupt()" function that can cause conflicts with other ISR routines using INT0_vect.
Version 1.5 June 2014
New bit-bang option for PWM output frequency setting. Now can use any output pin with no hardware timers. Note:bit-bang output not as accurate as timer-based frequency selection.
Major rewrite of IRLibTimer.h to facilitate bit-bang. Separated hardware timer selection and specification into sending and receiving sections in order to implement bit-bang.
New IRfrequency class for detecting input frequencies. Previously was a stand-alone special sketch but now is a class including a DumpResults method.
New IRfreq and IRrecvDumpFreq illustrate simultaneous detection of frequency and pattern with both an IR learner and IR receiver is connected.
New #define USE_IRRECV define can be commented out to completely remove the interrupt driven IRrecv receiver class from the library. This resolves ISR conflicts with other libraries such as Tone() when not using IRrecv class.
New #define USE_DUMP define can be commented out to disable DumpResults methods. Saves code space when these methods are not needed.
Revised user manuals to document new features and correct previous documentation problems.
Version 1.42 May 2014
Added support ATmega256RFR2 based Pinoccio Scout platform with examples
Version 1.41 April 2014
Fixed interframe delay for JVC protocol
Version 1.4 – March 2014
Added IRLIB_ prefix to debug macros to avoid name collisions
Debug macros now report more information
Added example new protocol Phillips RCMM used by AT&T U-Verse boxes and Nokia satellite boxes
Added ABS_MATCH macro which allows you to match using absolute number of microseconds versus the old way which used a percentage. Necessary for implementing RCMM protocol.
Added IRLIB_USE_PERCENT definition which when commented out changes the default from percentage match to absolute match. Also added DEFAULT_ABS_TOLERANCE. More details on these changes will be provided in the documentation when the section on adding new protocols is completed.
Version 1.31 – March 2014
Commented out debug code that was accidentally left active in 1.3 release
Version 1.3 – January 2014
NEW FILES
Added new file IRLibRData.h and moved irparams structure and related items to that file. Allows users to create custom IRrecv classes
NEW EXAMPLES
Rewrote Samsung36 example to include both send and receive
Added new examples for new protocols DirecTV and GIcable
Added new example IRanalyze gives more detailed analysis of timing. Useful in analyzing the protocols
Added new example IRfreq reports modulation frequency of a signal. Requires TSMP58000 IR learner chip
Cleanup of other example routines.
NEW CLASSES
Created IRrecvBase class to allow custom receiver classes. IRrecv is now a derived class from it.
Created IRrecvLoop class which receives IR signals without using any hardware interrupts or timers. Also created IRrecvPCI class which uses Pin Change Interrupts to receive IR signals. These new receivers are more accurate than the 50µs timing of the original IRrecv. However they also have other limitations described in comments.
New functions, variables and methods
In IRrecvBase added "unsigned char Mark_Excess" with default value 100. Was a define macro but now is user settable.
In IRrecvBase added method "unsigned char getPinNum(void);" which retrieves the pin number used from irparams.recvpin. This value not normally accessible to end user.
Globally available function "void do_Blink(void);" blinks pin 13 LED. For use by user created extensions of IRrecvBase.
INTERNAL CHANGES
Data collected by IRrecvBase classes in irparams.rawbuf is now converted to actual microseconds rather than clock ticks of 50 µs each. IRrecvBase::GetResults has a new parameter "Time_per_Ticks" that is used to convert ticks into actual microseconds if needed.
Adjustments to mark and space to deal with overreporting and underreporting of intervals is now done once in IRrecvBase::GetResults eliminating the need for MATCH_MARK(d,v) and MATCH_SPACE(d,v). Just use MATCH(d,v) everywhere.
Modified IRLibsendBase::mark() and IRLibsendBase::space() to overcome limitations of "delayMicroseconds()".
Changed many int to char or unsigned char to save memory
Eliminated DEBUG macro in IRLib.h and its use elsewhere. Macro TRACE is more useful.
Changed IRTYPES to unsigned char and a list of #defines rather than an enum (even though I still really like enums, changing it saves memory)
MEMORY EFFICIENCY
Code changes result in memory savings of approximately 54 bytes in code space and 39 bytes of RAM.
--------------------------------
Version 1.2 – July 2013
Internal version. No public release
--------------------------------
Version 1.1 – April 2013
Constructor of IRsendBase now initializes output pin and forces it low immediately.
New IRrecv::No_Output() method initializes output pin and forces it low. Use this in sketches which receive only by the have output hardware connected.
Added examples IRservo and IRserial_remote
--------------------------------
Version 1.0a – February 2013
Removed debugging test switch which was accidentally left on in file "IRLib.h"
--------------------------------
Version 1.0 – January 2013
Initial Release