The batteryless energy harvesting remote control was a project undertaken to demonstrate the low power of the ARM Cortex-M0+ processor. We wanted to create an extremely low power remote control that was compatible with the vast majority of existing systems. As a result, the remote control had to be able to learn, store and repeat infrared protocols and commands.
In addition to this primary objective, we wanted to use as many of the on chip features as we possibly could. Using the MCU for as many tasks as possible has the advantage of keeping power consumption down and also demonstrates some of the additional features that are emerging in MCU’s such as the one we used, the MkL25Z128VLK4 from Freescale. By using the built in peripherals of the MCU, for example touch sensing, we were able to reduce the number of integrated circuits on the PCB and make the design much simpler than it would otherwise have been. This had the additional advantage of reducing the Bill of Materials for the final design produced.
We also wanted to add some additional sensors and an interesting user interface to the remote control that would make it stand out when compared to your “everyday” remote control. It was very important that the device did not contain a battery and was able to harvest energy without the user actively trying to generate energy, through a winding mechanism for example.
The remote control we have developed can “learn” IR codes from existing remote controls, store these in flash, and then replay them when required. This is done using IR receivers and the PIT on the MCU to determine the protocol. The remote can control up to four devices. In our demo remote control this includes a television, a dvd player, a set top box and a hifi system. The protocols included in our demo remote control include RC-5, NEC, LG, JVC, SONY and Samsung protocols.
The MkL25Z128VLK4 we used in the remote control allowed us to do all of the power management control on the MCU. The ADC, PWM, SMC and the Low Leakage Wake-up Unit (LLWU) modules were utilised to achieve this. In addition, the user interface, which made use of an E-Ink screen required SPI communication and the accelerometer and magnetometer sensors added required I2C communication. The MkL25 series also has the interesting addition of a touch sensing feature. We made use of this on chip touch sensing feature to make a net of electrodes instead of buttons.
As previously mention, the user interface for the remote control consisted of an e-ink screen with a touch sensing overlay. The e-ink screen was a low power solution to having a changeable user interface and coupled with the touch sensing feature provided a flexible effective solution. We were able to have a user interface that changed depending on the device we wanted to control. The E-Ink screen allowed us to keep the power consumption to a minimum because it only required 20mA of current for 4 seconds to change the user interface. In addition, an accelerometer and a magnetometer were added to allow the remote to learn the location of a device. This allowed us to make a remote control that, when pointed at the television for example, automatically change the device selected on the remote control to the television.
The remote control we created is completely battery-less. It harvests energy from solar cells. The energy harvested from these is stored in a 5 volt, 3 farad super capacitor. The remote control also featured a coil enclosing a magnet so that any addition energy generated when simply moving the remote control around was harvested and stored.
The MkL25Z128VLK4 was chosen initially because it has attractive additional features such as Touch Sensing, but also because it is present on the Freescale FRDM-KL25Z board. This board can be used with the mbed online development platform.
This is where our initial development and investigations took place for many of the features of the remote control. The online compiler is useful for initial tests because it allows for quick and easy implementation.
Many of the initial features were tested using the mbed platform. This included the touch sensing in which we were able to test different electrode designs quickly and easily. The IR encoding and decoding were also initially investigated using the mbed platform. As well as these, we were able to test the buck-boost converter circuit which was used as part of the power management. We were also able to test the circuits for the accelerometer and magnetometer using breakout boards from sparkfun.
After our initial investigations using the online compiler it was easy to use the FRDM board with Keil MDK and the CMSIS-DAP debug. This allowed us to develop the circuits and code for the remote control. We were able to test some of the sleep modes for the KL25z series and how to write data to flash at this stage as well.
At this point we had much of the circuit design and some parts of the software completed before having to order any printed circuit boards. The mbed platform allowed us to prototype extremely quickly. It allowed us to work out which approaches were viable and which were not before we moved to a more in-depth and lengthier investigation using the Keil MDK.
Being able to use the FRDM board easily with the Keil MDK saved a lot of time. We were able to easily move over to the MDK and write the software that became the basis for the final device. The added security of knowing the hardware designs were correct at this stage really helped in the process.
Writing Data to Flash Memory
IR Encoding and Decoding for a Universal Remote Control
Energy Harvesting Remote Control Power Management
Putting the KL25z into LLS Mode and Waking it up using the LLWU
Having done extensive development on the FRDM board, moving to an actual PCB with the same MCU was relatively easy. We were able to successfully design and create PCBs for the remote control, the only really tricky bit being the soldering of the extremely small components used.
We ended up making three versions of the PCB. The first was used to test the hardware for some of the smaller trickier parts of the circuit such as the E-Ink screens which used Zif Connectors. The second version was used to successfully create a device that worked. The final version simply made some refinements to the design to ensure the remote worked as well as it possibly could. This was only possible because of the extensive testing we were able to perform with the mbed platform and the Keil MDK. The combination of these two tools was very powerful for the production of this demo. The final device was placed in a 3D printed case.