New Project: Remoteli – The Worlds Smallest TV Remote

So this isn’t really a new project. I’ve actually been working on it for a couple of months on and off. In fact, I already did a post related to it. But I wasn’t really sure if it was going anywhere or whether to post it. Now it’s gotten to the point where I have ordered circuit boards online and begun soldering so I think it’s a legitimate project.

The reason this has taken me so long is that I have recently moved to the US to do an exchange year at MIT. That takes some getting used to, so finding the time to work on hardware projects has been a bit tricky, but now I think I’m good to get back into the usual rhythm of building stuff.

I’ll post more detail on the project soon, but for now, I have a new soldering iron! A Hakko FX-888D.

hakkofx888d

Because I’m currently in the US, this model actually runs off of 110V as opposed to the 240V we have in the UK. Therefore I’ll have to modify it in order to use it when I return home. However, even with the cost of a new transformer, it will still come out significantly cheaper than buying it in the UK!

Advertisements

Mini Project: Infra-red Repeater

As part of a larger project I’m thinking about, I wanted to see how easy it would be to make a TV remote control repeater. What it needs to do is listen for a TV remote control command, learn the command and then repeatedly send out that command.

Only 3 external components required. (I used four).

Only 3 external components required. (I used four).

For the processor I am using an Arduino Mega 2560 rip-off with the Arduino bootloader removed so that it is effectively just a development board for an Atmega2560. This has far more pins than I need, but it is very suitable for development. I am programming it using Atmel Studio 6.2 in C via an AVRISP MKII.

On the input I am using a TSOP31238 Infra-red receiver module. There are thousands of variations of this type of component, but this one has three pins:

GND Connect to ground
VCC 2.5V-5.5V
OUT Outputs low when there is a 38kHz IR signal incident on the receiver, otherwise outputs high

Therefore, it is easy to detect when an IR pulse is sent from a TV remote by listening to the output pin and waiting for it’s voltage to drop.

On the output, I am using an IR LED connected directly to the output of the Atmega, in series with a 156Ω resistor (actually a 100Ω + a 56Ω). This limits the current to about 20mA.

The code is relatively simple in concept. When the processor detects the first falling edge on the input pin, it starts a timer. Each time the input pin changes state, it stores the value of the timer in an array and resets the timer. If the timer overflows, this is taken to mean the command is over. This leaves us with an array of integers indicating how long the signal must be low or high.

The input from the IR Receiver module. The signal drops low when there is a 38kHz signal incident.

The input from the IR Receiver module. The signal drops low when there is a 38kHz signal incident. (Timebase in milliseconds).

The processor then uses the same timer to activate the output pin with the same timing as the input signal by reading back the array of integers.

There is a slight complication in that the output signal has to modulate a 38kHz square wave. This is achieved by using another timer to generate a 38kHz signal, which is then outputted to the LED only if the other timer indicates that the output should be high.

The output from the processor. The red blocks are actually 38kHz pulses.

The output from the processor. The red blocks are actually 38kHz pulses.

It then sends the signal once a second.

This works very well and it can easily copy the signals from my TV remote and repeat them to the TV. The only issue at the moment is that this method of storing the pulses takes up a relatively large amount of space – approximately 300 bytes for one command.

Project: Analogue Tape Delay – Assembley

It’s been about a month since my last post. The first two weeks of which were very productive. The last two have been more frustrating.

In the week before I went back to uni I had a big push to try and get the project finished before I came back. This resulted in me staying up until 7am the day I went back to uni. …And I still didn’t get it finished. However, the box had been constructed, the circuit board soldered and installed, the metal work drilled and the inputs mounted.

At 2am the day before I came back to uni, all I had to do was solder on the switches etc and mount them on the board. However, due to a lack of forethought, I hadn’t actually put proper thought into how it would be assembled. As it turned out, it was impossible to mount the switches in the case because you simply couldn’t reach them when you put the lid on. Multiple attempts nonetheless resulted in broken wires and a lot of lost sleep, hair and sanity.

I ended up taking the project back to uni with me to finish off, and I think it’s pretty much there. Unfortunately, exam term comes with other priorities and I don’t have half as much time as I would like. Anyway, now for some pictures.

The front panel I made for the project

The front panel I made for the project

All of the electronics can be seen if you remove the metal panel.

All of the electronics can be seen if you remove the metal panel.

I think the jack connectors look pretty smart.

I think the jack connectors look pretty smart.

The metal panel will be mounted over the bottom hole.

The metal panel will be mounted over the bottom hole.