A Remote for CHDK Cameras Made Possible with Arduino

[AlxDroidDev] built himself a nice remote control box for CHDK-enabled cameras. If you haven’t heard of CHDK, it’s a pretty cool software modification for some Canon cameras. CHDK adds many new features to inexpensive cameras. In this case, [AlxDroidDev] is using a feature that allows the camera shutter to be activated via USB. CHDK can be run from the SD card, so no permanent modifications need to be made to the camera.

[AlxDroidDev’s] device runs off of an ATMega328p with Arduino. It operates from a 9V battery. The circuit contains an infrared receiver and also a Bluetooth module. This allows [AlxDroidDev] to control his camera using either method. The device interfaces to the camera using a standard USB connector and cable. It contains three LEDs, red, green, and blue. Each one indicates the status of a different function.

The Arduino uses Ken Shirrif’s IR Remote library to handle the infrared remote control functions. SoftwareSerial is used to connect to the Bluetooth module. The Arduino code has built-in functionality for both Canon and Nikon infrared remote controls. To control the camera via Bluetooth, [AlxDroidDev] built a custom Android application. The app can not only control the camera’s shutter, but it can also control the level of zoom.

Simple and Inexpensive Heartbeat Detector

There are many ways to detect a heartbeat electronically. One of the simpler ways is to take [Orlando’s] approach. He’s built a finger-mounted pulse detector using a few simple components and an Arduino.

This circuit uses a method known as photoplethysmography. As blood is pumped through your body, the volume of blood in your extremities increases and decreases with each heartbeat. This method uses a light source and a detector to determine changes in the amount of blood in your extremities. In this case, [Orlando] is using the finger.

[Orlando] built a finger cuff containing an infrared LED and a photodiode. These components reside on opposite sides of the finger. The IR LED shines light through the finger while the photodiode detects it on the other side. The photodiode detects changes in the amount of light as blood pumps in and out of the finger.

The sensor is hooked up to an op amp circuit in order to convert the varying current into a varying voltage. The signal is then filtered and amplified. An Arduino detects the voltage changes and transmits the information to a computer via serial. [Orlando] has written both a LabVIEW program as well as a Processing program to plot the data as a waveform. If you’d rather ditch the PC altogether, you might want to check out this standalone heartbeat sensor instead.

Reverse Engineering a Bathroom Scale for Automated Weight Tracking

[Darell] recently purchased a fancy new bathroom scale. Unlike an average bathroom scale, this one came with a wireless digital display. The user stands on the scale and the base unit transmits the weight measurement to the display using infrared signals. The idea is that you can place the display in front of your face instead of having to look down at your feet. [Darell] realized that his experience with infrared communication would likely enable him to hack this bathroom scale to automatically track his weight to a spreadsheet stored online.

[Darell] started by hooking up a 38khz infrared receiver unit to a logic analyzer. Then he recorded the one-way communication from the scale to the display. His experience told him that the scale was likely using pulse distance coding to encode the data. The scale would start each bit with a 500ms pulse. Then it would follow-up with either another 500ms pulse, or a 1000ms pulse. Each combination represented either a 1 or a 0. The problem was, [Darell] didn’t know which was which. He also wasn’t sure in which order the bits were being transmitted. He modified a software plugin for his logic analyzer to display 1’s and 0’s on top of the waveform. He then made several configurable options so he could try the various representations of the data.

Next it was time to generate some known data. He put increasing amounts of weight on the scale and recorded the resulting data along with the actual reading on the display. Then he tried various combinations of display settings until he got what appeared to be hexadecimal numbers increasing in size. Then by comparing values, he was able to determine what each of the five bytes represented. He was even able to reconstruct the checksum function used to generate the checksum byte.

Finally, [Darell] used a Raspberry Pi to hook the scale up to the cloud. He wrote a Python script to monitor an infrared receiver for the appropriate data. The script also verifies the checksum to ensure the data is not corrupted. [Darell] added a small LED light to indicate when the reading has been saved to the Google Docs spreadsheet, so he can be sure his weight is being recorded properly.

Multi Input IR Remote Control Repeater

[Peter]’s folks’ cable company is terrible – such a surprise for a cable TV provider – and the digital part of their cable subscription will only work with the company’s cable boxes. The cable company only rents the boxes with no option to buy them, and [Peter]’s folks would need five of them for all the TVs in the house, even though they would only ever use two at the same time. Not wanting to waste money, [Peter] used coax splitters can take care of sending the output of one cable box to multiple TVs, but what about the remotes? For that, he developed an IR remote control multidrop extender. With a few small boards, he can run a receiver to any room in the house and send that back to a cable box, giving every TV in the house digital cable while still only renting a single cable box.

The receiver module uses the same type of IR module found in the cable box to decode the signals from the remote. With a few MOSFETs, this signal is fed over a three-position screw terminal to the transmitter module stationed right next to the cable box. This module uses a PIC12F microcontroller to take the signal input and translate it back into infrared.

[Peter]’s system can be set up as a single receiver, and single transmitter, single receiver and multiple transmitter, many receivers to multiple transmitters, or just about any configuration you could imagine. The setup does require running a few wires through the walls of the house, but even that is much easier than whipping out the checkbook every month for the cable company.

Video below.

Continue reading “Multi Input IR Remote Control Repeater”

Infrared-controlled Light Switch

If you’re looking for your first electronics project, or a project to get someone else started in electronics, [Vadim] has you covered. Back when he was first starting out in electronics he built this infrared-controlled light switch that works with a standard TV remote control.

[Vadim]’s first few projects ended up as parts for other projects after they were built, so he wanted to build something useful that wouldn’t ultimately end up back in the parts drawer. The other requirements for the project were to use a microcontroller and to keep it simple. [Vadim] chose an ATtiny2313 to handle the RC-5 IR protocol and switch the light.

The circuit still has a switch to manually control the lights, preserving the original functionality of the light switch. The rest of the design includes a header for programming the board and another header for tying into the high voltage lines. This is a great project for anyone who knows what they’re doing with mains power but is just getting started with microcontrollers. If properly designed and implemented you’ll never stumble across a room to turn the lights out again!

Perhaps mixing high and low voltages on the same circuit board doesn’t spark your fancy or you can’t modify the light switch in your place of residence? Check out this mechanically-switched light switch.


Bare Bones Arduino IR Receiver

TV Remote

Old infrared remote controls can be a great way to interface with your projects. One of [AnalysIR’s] latest blog posts goes over the simplest way to create an Arduino based IR receiver, making it easier than ever to put that old remote to good use.

Due to the popularity of their first IR receiver post, the silver bullet IR receiver, [AnalysIR] decided to write a quick post about using IR on the Arduino. The part list consists of one Arduino, two resistors, and one IR emitter. That’s right, an emitter. When an LED (IR or otherwise) is reverse biased it can act as a light sensor. The main difference when using this method is that the IR signal is not inverted as it would normally be when using a more common modulated IR receiver module. All of the Arduino code you need to get up and running is also provided. The main limitation when using this configuration, is that the remote control needs to be very close to the IR emitter in order for it to receive the signal.

What will you control with your old TV remote? It would be interesting to see this circuit hooked up so that a single IR emitter can act both as a transmitter and a receiver. Go ahead and give it a try, then let us know how it went!

Game Boy vs. Electronic Shelf Labels

SANYO DIGITAL CAMERAWhile they’re probably rare as hen’s teeth in the US, there have been a few major stores around the world that have started rolling out electronic shelf labels for every item in the store. These labels ensure every item on a shelf has the same price as what’s in the store’s computer, and they’re all controlled by an infrared transceiver hanging on the store’s ceiling. After studying one of these base stations, [furrtek] realized they’re wide open if you have the right equipment. The right equipment, it turns out, is a Game Boy Color.

The shelf labels in question are controlled by a base station with a decidedly non-standard carrier frequency and a proprietary protocol. IR driver chips found in phones are too slow to communicate with these labels, and old PDAs like Palm Pilots, Zauruses, and Pocket PCs only have an IrDA chip. There is one device that has an active development scene and an IR LED connected directly to a CPU pin, though, so [furrtek] started tinkering around with the hardware.

The Game Boy needed to be overclocked to get the right carrier frequency of 1.25 MHz. With a proof of concept already developed on a FPGA board, [furrtek] started coding for the Game Boy, developing an interface that allows him to change the ‘pages’ of these electronic labels, or display customized data on a particular label.

There’s also a much, much more facepalming implication of this build: these electronic labels’ firmware is able to be updated through IR. All [furrtek] needs is the development tools for the uC inside one of these labels.

There’s a great video [furrtek] put together going over this one. Check that out below.

Continue reading “Game Boy vs. Electronic Shelf Labels”