In the previous post in this series, I dismantled and modified a white Apple infrared (IR) Remote control.
In this post I describe a foot controller which can be plugged into the DB9 socket on the modified remote, and then go on to consider what you can do if your Mac doesn’t have an IR receiver built in.
I had already constructed a very simple foot controller, which I had used with the Superstylonanophone. The controller was – well it was exactly what it looks like: a length of plastic guttering with a few push switches inserted into it, and a multi-way socket.
There were just 4 buttons on the foot controller: two for bass drums and two for hi-hats. These were connected very simply underneath: one side of each switch was a common connection, the other sides went to 4 appropriate pins on a 15-way D socket.
It occurred to me that the same controller could also be used for the IR Remote, which also required a number of push switches with a common connection. There would need to be more of them – at least 6 – and an alternative 9-way connector, but provided both connectors weren’t used at the same time, the controller could operate either device.
I had some spare buttons of the same type, so I added 3 extra ones in the spaces between the 4 originals (not in a very straight line between the 4 originals, it has to be said!), a new DB9 connector, and an LED which would come on when the foot controller was connected to the modified remote.
Only 6 of the buttons were required to duplicate the functioning of the Apple remote. Using my IR Remote Tester in iRedLite, I verified that all the button presses – short, long and double – were being received and transmitted correctly from the six buttons I had wired up. I connected the seventh so that the LED – which can be seen illuminated at the bottom of the picture – would go out if it was pressed, as a warning that it had no function.
I moved the bass drum triggers to the two leftmost buttons, and hi-hat triggers to the two rightmost. At some point, when I revisit the Superstylonanophone, I can consider adding in further drums as there are now 3 spare buttons in the middle of the controller.
The foregoing is all very well if you have a MacBook, MacBook Pro or whatever, which has a built-in IR receiver – but what if your Mac doesn’t have this capability?
Fortunately, if this is your situation, all is not lost. As I implied when discussing Joystick and Gamepad Tester, the Mac’s IR receiver is part of the USB system – this can be verified by checking the machine’s System Profiler:
So, to add IR control, the ideal thing to get hold of would be an Apple IR receiver module which has a USB connection.
Luckily just such a device exists!
There may be a number of these, but the one I got was either Apple part number 922-7195 or 922-8355, not sure which: one is from a MacBook 15″, the other from a MacBook Pro; both have an IR receiver input and a USB output, so I daresay both would work equally well in this application.
I bought mine here: http://www.powerbookmedic.com/MacBook-Pro-Infrared-board-p-18041.html at a cost of less than £10, including postage from the U.S. – a bargain!
I got the idea for this part of the IR project from this article: http://photos.pottebaum.com/2009/IR. The aim was to install this module in a new case with a USB lead, thus enabling a Mac with no IR receiver to benefit from the remote, or to use the remote at a distance or from an angle where a direct line of sight to the computer wasn’t available.
The new case I chose was this one:
It’s a Fisher Price ‘CD Player’. It doesn’t, in fact, play CDs at all, but I picked it partly because of a definite stylistic connection with the modified Apple remote described above, partly because of its large front ‘window’ – which might allow for a certain degree of repositioning of the IR receiver inside – and partly because it was powered by three AA batteries, somewhat similar to the 5v provided by USB.
I undid the 6 screws in the back (four of them are already out in the above picture, the two at the top remain), revealing the internal structure.
It was very well made, and very difficult to get apart as a matter of fact, as the two large white surfaces you can see were glued together. It looked like blobs of a sticky adhesive which stretched when pulled, so I was able to prise the two halves apart slightly and cut the glue with a craft knife.
The speaker is visible in the top right-hand corner. One of the three circuit boards in the unit can be seen at the bottom of the back section; the other two are underneath the two sides of the front section.
The 8 press switches that can be seen on the tops of the circuit boards are operated by the 4 buttons on the front of the unit. The switches are in pairs and the two switches in each pair are identical.
I tested each switch in turn and noted their outputs. They worked by cycling through a number of samples: a short bell-like tune, some spoken phrases (‘Sing with me!’, ‘Oh, yeah!’ and ‘Let’s Boogie!’) and some longer songs with voices and instruments (‘One, two, buckle my shoe’, ‘Itsy-bitsy spider’, ‘Row, row, row the boat’, and some songs that sounded as if they may have been specially written for the unit). Three of the pairs had a 9-step sequence, one of them a 6-step.
I wasn’t, in this instance, interested in the songs, as I wasn’t intending to circuit bend the device, but I wanted the LEDs to come on when IR input was received. The best LED display was seen while a song was playing; during the bell tune and the spoken phrases the lights came on only for a short time. The sequences weren’t the same for each button, and I decided that button three (bottom left) was the best one to concentrate on, as there was a higher proportion of songs in the sequence compared to short phrases.
Steps in the sequence were initiated simply by a short +V pulse to an appropriate point on the PCB, which should be easy to generate.
First of all, however, I needed to connect up the IR receiver module.
Being color-blind, I’m always nervous about connecting up colour-coded wires – especially to a USB plug which would be going into my laptop. However, the module seemed – to my eyes at least! – to follow the conventional red-white-green-black USB wiring scheme (+5v, Data +, Data -, Ground, in that order), so I snipped off the small 4-way connector it came with and connected the four wires to a short length of multi-core cable. The other end of the multi-core cable was connected to a USB plug, via a small PCB connector. There was no PCB: this was just a convenient way of joining together various wires – the four USB wires, power leads from the batteries and some others I’ll explain shortly.
So, the Apple IR receiver module was connected to a USB plug. I didn’t want the unit to have a long lead trailing out from it, so the lead to the plug was kept very short, and plugged into a small USB hub which I fixed to the battery compartment lid on the back of the unit:
The new receiver module can be seen lying in the middle of the front of the unit. The short USB lead and plug can be seen emerging from the back, and at the bottom of the picture the mini-USB lead goes from the hub to the laptop. The purpose of the three unused wires in the multi-core cable is explained later on, and is not to do with the Apple receiver.
Checking in the System Profiler, I now saw two IR Receivers instead of one:
I experimented simply by covering up one or other of the receivers and making sure, using iRed Lite, that my remotes – especially the new modified one – were able to control various functions in Safari and would print the correct numbers in Text Edit. The two receivers seemed to work in tandem on the MacBook – it didn’t matter which of the two I covered up, the other would immediately register the button presses and carry out the required function.
The vital question was: what would happen if I connected the unit up to a computer that didn’t have a built-in IR capability?
I started with my eMac, which runs the same OS as the MacBook, 10.5.8. I checked the System Profiler – no mention of an IR receiver; then I plugged the unit in and was gratified to see the IR receiver shown (I needed to close the System Profiler and reopen it to make the new device show up):
I didn’t have Joystick and Gamepad Tester or iRed Lite installed on the eMac, so I had to content myself with testing the functions the remote normally performs on a Mac – opening and closing Front Row and turning the volume up and down. Using the new modified remote, I confirmed that it would do this.
I then tried the same procedure on an old G5. I can’t remember what OS it uses, but I think it’s either 10.5 or 10.6. Once again, using the System Profiler, I verified that no internal IR receiver showed up at first, but when plugged in the new device was registered:
The one thing that did appear first of all in the USB section was my iPazzPort. I’ve described in a past post what this is – a very handy little device, no more than 4 or 5 inches tall, which duplicates the function of the keyboard and trackpad:
As can be seen, it connects via USB – not a problem, even on the G5, which only has one USB socket on the front, as I was able to plug it into the hub on the back of the new receiver and use the two devices together.
Once again, the remote worked exactly as intended, proving that IR functionality could be added to a Mac which originally had none.
I didn’t immediately reassemble the unit, as there were a couple more things I wanted to do with it. First of all, as mentioned earlier, I wanted to include a method of making the lights flash when an infrared signal was received from the remote. As described, this needed something to give a +V pulse when the signal came in.
I didn’t want to interfere with the Apple receiver module, so added a second IR receiver like this:
This device, an AX1838, has three leads: two for the power supply, with the third giving an output when it detects an IR input. It wouldn’t be necessary to interpret the input – which is what the Apple module does – just give an output pulse on receipt of a signal. Unfortunately, according to the data sheet, the output of the device goes low when IR input is detected, not high, which is what the ‘CD Player’ circuit requires.
I was under the impression that the low level output from the device would be sufficient, when inverted, to operate the switch in the CD Player, but this wasn’t the case. In the end I looked around at circuits for simple infrared-operated switches, and used an adapted version of this one, using just three components, a BC588 transistor, a 22μF capacitor and a 100k resistor.
Apart from the existing electronics concerned with playing the samples and sequencing the lights, the electronics I added to the device looked like this:
In fact, this is what I intended, but as I didn’t have a 100Ω resistor, I added a 470Ω instead. I don’t know if this was too large a value, but I’ll find out when I come to use the wii later.
I didn’t bother with a piece of stripboard, I just wired everything up to the three legs of the transistor. This addition to the circuit seemed to have the desired effect: the output of the transistor is normally kept low; an incoming IR signal is detected by the AX1838 and as the capacitor charges up the multiple signals are smoothed out into one. The output of the transistor goes high and is boosted to a level sufficient to operate the CD Player switch and turn on the lights, giving a visual indication that an instruction has been received by the Apple IR receiver.
Stiff wires were attached to the two IR detectors, anchored inside the unit, so the detectors could be repositioned within the CD Player front window.
Finally, while on the infrared theme, I just had two more things to do before reassembling the finished unit.
Firstly, I added two infrared LEDs to the front of the unit. These had nothing to do with the receiver or the flashing lights: they’re a little closer together than the original, but they’re designed to duplicate the function of the wii ‘sensor bar’.
I’ll be blogging about the wii system later, but the ‘sensor’ bar’ is a most inaptly named device, since it doesn’t ‘sense’ anything at all, but instead provides two points of infrared light which the wii remote controller – or ‘wiimote’ – uses to fix its position. Being a little closer together than the Nintendo original isn’t a problem – the wiimote might just think it was further away from the sensor bar than it really was. As I’m not proposing to use my wii controller for playing sports, I don’t anticipate a problem with this. Further information will appear in my wii posts.
The new infrared device had one more secret, hidden in the carrying handle:
There are many reports on the internet of wii users who have substituted candles for infrared LEDs when using their wiimote, so I thought I’d guard against battery failure in the unit by adding candle holders – the kind you buy for birthday cakes. Believe it or not, this does work!
After reassembling the unit, and thinking again about the wii remote, I added an extra external item to the USB hub: a tiny Bluetooth dongle. I found this in Poundland, for £1 (obviously!) and thought for that price it would be worth experimenting with.