One of the most popular projects involving Infrared remote control, is to use an Arduino to control an Air conditioner (AC) system. However, AC signals are usually very long and take up a lot of SRAM on a standard Arduino. Experienced users will go about reverse engineering the AC protocol to make the sketch fit within the 2K Bytes of SRAM. Many hobbyists will struggle, even with the help of tools like AnalysIR to guide them. In this post we cover sending long AC Signals from Flash with IRremote. IRremote (along with IRLib) is a popular open-source library for sending and receiving IR remote control signals with Arduino. The demo code covered in this sketch extends our previous sendRAW example by demonstrating how to store many long AC signals in Flash with little or no SRAM overhead.
Marco is a volunteer for an organization (NSW Australia) that builds custom aids for people with disability, and has recently been looking at a project to create a ‘very large button’ IR remote control for a cable TV Set Top Box (STB). The custom unit needed basic functions (Channel Up/Down, Volume Up/Down and Power On/Off). Commercially available large button remotes have buttons that are still too small and/or they have too many buttons. Soon he hit a roadblock trying to capture some difficult Foxtel signals and searched all over the web looking for a solution. Needless to say, nothing worked out for him until he came across AnalysIR via Google. Once he started Troubleshooting the Big Button Infrared remote control with AnalysIR the root cause of his problems became obvious.
In this blog post we follow up on our recent article about generation of infrared PWM from the Photon’s UART where we suggested that it may be possible to achieve something similar with the Arduino. In our previous attempt the Arduino was only able to generate PWM at 40 kHz and 33 kHz using the same approach. After some investigations we discovered a new approach which provides an even better set of results using the Arduino’s USART. Yes, we were able to generate 30, 33, 36, 38, 40 , 56 and surprisingly the illusive 455 kHz which was not possible on the Photon (using this approach). Read on for the details. Readers should also study our original series of articles on ‘softPWM‘ for a better understanding of the source code which can be downloaded below.
In Part 1 of this series, we demonstrated how to send signals using simple Infrared PWM on Arduino. In this Part 2 post we look at sending RAW IR signals – specifically a RAW NEC signal and a longer RAW Mitsubishi Air Conditioner signal. We have also improved the method shown in Part 1 due to some issues we identified when sending ‘real’ signals versus the ‘test’ signal we used before. (More on that later). In Part 3, we will take the signals from this post and show how to send them using their binary (or Hex) representation, which saves lots of SRAM.
Dublin, Ireland – 17th April 2015. We are happy to announce the latest release of AnalysIR V1 preview #2 is now available for download by our backers & supporters. Existing users of AnalysIR will receive an email with instructions on how to download this version. New users will receive the details as part of the registration process.
A major highlight of this release is full AnalysIR support for our soon to be released LearnIR (IR Learner). LearnIR delivers the best performance available for receiving and sending Infrared signals with excellent accuracy.
View the AnalysIR Product Sheet(PDF)
We would like to extend a big thanks to the many users around the world who have helped with feature requests, new protocols and testing over the last months.
Some Highlights in this latest release include:
This post is the second in a two-part series about Reverse Engineering AC Infrared protocols. This time we look at the Mitsubishi Air Conditioner IR Protocol. The project was undertaken by two of our users in France (Vincent & Mathieu), with the help of AnalysIR, who collaborated to reverse engineer this Mitsubishi and previously the Panasonic AC Infrared protocol, both examples of the more challenging AC Infrared protocols. Not only did they identify the individual field codes & checksum but also provided some impressive documentation. Detailed information is available via GitHub which is linked below. This 288 data bit Mitsubishi AC Infrared protocol is composed of two consecutive frames. Both frames are always identical for each signal sent. In common with most AC units the complete settings are sent with every IR signal (temperature, fan, swing etc…). AnalysIR was used to record and turn the signal into HEX/Binary format from which the reverse engineering of the individual fields was tackled.
Recently, two of our users in France (Vincent & Mathieu) collaborated to reverse engineer the Panasonic AC Infrared protocol, one of the more challenging AC Infrared protocols using AnalysIR. Not only did they identify the codes & checksum but also provided some impressive documentation and full source code to help others. Detailed information is available via GitHub which is linked below. This 216 data bit Panasonic AC Infrared protocol is composed of two consecutive frames. The first frame remains constant for every command sent to the AC unit. In common with most AC units the complete configuration is sent with every IR signal (temperature, fan, swing etc…). AnalysIR was used to record and turn the signal into HEX/Binary format from which the reverse engineering of the individual fields was tackled.
AnalysIR now provides support for the PSOC 4 Prototyping kit from Cypress. Effective immediately users of AnalysIR can use the kit to act as an Infrared source for AnalysIR. The PSOC 4 Prototyping kits are available from Cypress and via their global distributors for just US$4 plus shipping. To use the kit with AnalysIR you will also need an IR Receiver and an optional IR Learner, which can also be purchased with AnalysIR. Initially, the PSOC Firmware is available on request and will be included as part of the installation package in a future release.
A common question asked on forums is one about – Driving an Infrared Led directly from an Arduino pin. Although the answer may be obvious to anyone with at least a basic knowledge of Ohm’s Law, many are confused about how to choose a resistor value for optimum performance. Often, there is a debate about whether a resistor is required at all, given that the AVR pins are rated to deliver an absolute maximum of 40mA on a pin. (Note: All of the quoted specs in the data sheet are for test conditions of up to 20mA on a pin). Of course there are better ways to drive an IR LED with a transistor circuit or even a constant current circuit. However, in this post we consider only the direct drive circuit using a current limiting resistor, as illustrated in the diagram down below.
Make sure to read the caveats at the end of this post.
A new user of AnalysIR from the Netherlands, wanted to get the AnalysIR firmware working on Teensy 3.x . Although this has not been officially supported, we were happy to support his efforts knowing that it would most likely be a relatively easy exercise, based on past experiences. Needless to say, he was successful in decoding Infrared signals with AnalysIR within a short space of time. Prompted by his interest, we ordered our own Teensy 3.1 to add to our growing collection of 40+ MCUs and although
Teensy support is in beta for now, it will be oficially supported for AnalysIR from our next release. In the meantime, users of AnalysIR can just contact us for a copy of the Teensy sketch (firmware).
Teensy 3.x now joins a long list of devices supported for use with AnalysIR, including: Continue reading Teensy now supported for AnalysIR