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.
Since we received our Photon several months ago it has been difficult to find a working example of Hardware PWM on the Photon. Initially, we ported our softPWM approach to the Photon, which is excellent. However, we figured it must be possible to use at least one of the spare UARTs on the Photon to achieve our goal. So first we started prototyping on the Arduino and quickly got a working example with some limitations – only 40 kHz and 33 kHz carrier frequencies were possible with the UART without delving into the registers a bit more. Then we moved the code over to the Photon, leveraging our previous softPWM examples, upgraded with the Arduino code – EUREKA! The Backdoor uPWM Hack on Photon for Infrared signals.
The fifth member of our MakeIR series of devices & kits is the A.IR Shield Nano. This shield works out of the box with AnalysIR and is essentially plug & play , with additional prototyping options. The shield comes attached to an Arduino nano compatible device (clone). Although designed specifically for AnalysIR, users can also upload IRremote, IRLib or any Arduino sketches that run on the Nano. A.IR shield is built with only the highest quality IR components available and boasts dual Infrared emitters with configurable IR Power.
We have provided a link below to the preliminary product data sheet and would welcome feedback on additional, nice to have or missing features, if any. Please read the data sheet for a more detailed description of the A.IR shield. Continue reading Preview: A.IR Shield Nano, a high-end Infrared Shield for AnalysIR, IRremote & IRLib
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.
We are often asked on discussion boards, about conflicts between IRremote or IRLib and other Arduino Libraries. In this post, we present a sketch for ‘Simple Infrared PWM on Arduino’. This is the first part in a 3 part series of posts. Part 1 shows how to generate the Simple Infrared PWM on Arduino (AKA carrier frequency), using any available IO pin and without conflicting with other libraries. Part 2 will show how to send a RAW infrared signal using this approach and Part 3 will show how to send a common NEC signal from the binary or HEX value.
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.
Anyone who has tried controlling an Air Conditioner unit using an Arduino, USB IR Toy, RPi or any MCU will know how difficult it can be to record the longer infrared signals they use. Typical TV systems use IR signals circa 32 bits long, while this Chigo AC unit uses a signal with 197 marks & spaces (or 97 data bits). One of our users, Sertunc – from Istanbul in Turkey, reported his success using AnalysIR to easily record the signal timings for his AC unit and sent us the details along with some nice photos. After testing the validity of the recorded signals using an Arduino, he then set about loading the signals onto his Samsung smart phone (models S4, s4 mini, S5 and more supported). This was helped by installing the free ‘Samsung IR – Universal Remote‘ app onto his phone via Google Play.
Many electronics enthusiasts will be familiar with how Infrared receivers demodulate IR signals. In this post we show a visualisation of the time lag and distortion of the signals as they pass through the IR receiver for demodulation and noise filtering. Most DIY projects use the raw timings from the IR receiver to decode individual signals. However, not many will be aware that IR receivers can distort the signal timings by significant amounts. Fortunately, common IR decoders take this into account and compensate for timing distortions introduced by infrared demodulators / receivers.