Posts Tagged ‘Construction

25
Feb
18

Dismantling a hard drive

Note that in the following post I’m describing taking a hard drive apart in order to reuse some of the parts, but have no intention of putting it back together, or making it work again as a hard drive!

This the 3.5″ hard drive I took apart as my first experiment:

Front & Back IMG_1515

I’m sorry the PCB side is rather blurry, but I was less interested in that than what was inside.

The tools required for the job were a small screwdriver set, from which I mostly used a Torx or ‘star’, which I think was size 8, and a very small Philips or crosshead for a couple of screws inside:

Tools IMG_1525

I also needed a large flat-bladed screwdriver, which I used two or three times.  If you’re going to do the same, you may find a few differences in the details – type and positioning of screws, differently shaped fittings, and so forth, but the principles should be the same.

I first removed the circuit board, and put that aside.  Turning it over, you can clearly see in the first picture the 6 screws round the edge of the ‘lid’ which needed removing.

Having taken these out, it seemed that the top was glued in place as well as screwed, so I went round with the large screwdriver, prying it open.  This almost freed it, but it was only after still experiencing considerable difficulty in getting it completely open that I realised there must be another screw somewhere in the middle, under the label.  I scraped away the label until I found it and took it out.  The arrow shows where it was.

Top IMG_1527

I was then able to take the lid right off and expose the inner workings – of which there aren’t actually that many.

Top removed Captioned IMG_1528

The picture shows the disk or disks, one on top of the other, like a stack of pancakes – except there are gaps between them, and the arm is actually several arms, one for each disk; the arm itself with the delicate heads on the end which read the data from the disks, and with its other end moving between two magnets (not visible at the moment); and finally a flexible plastic multi-way ‘cable’ which joins the arm – and some small circuitry on the arm – to a connector.  This would have poked through a gap in the case to connect to the circuit board  on the other side.

Later on, connections will have to made to some very, very tiny points on the arm, and it’s going to be a lot easier to trace these points back to the connector, so its important not to damage the plastic cable.  The connector could be poked out from the other side, once it two fixing screws had been removed.

The fitting obscuring the back end of the arm wasn’t – in this model of drive anyway – screwed in place, it was just slotted on some pins and just needed prising off.  I believe the magnets in hard drives are made of neodymium.  This is classed as a ‘rare earth’ (although it’s isn’t actually any rarer than, say, copper) and makes very strong magnets.  Just be a bit careful as you remove them, and think where you’re going to put them down as you can be surprised at how firmly they grab lighter metal objects.

This picture shows the top magnet fitting removed:

Top Magnet Out Captioned IMG_1529

Once the top magnet is off, it’s possible to move the arm out of the way and get the disks out.  This involves removing 6 screws around the centre (on top of the motor) and two screws at the side. the disks and the various fittings associated with them all come off in layers.  The disks – there were three of them in this drive, look very much like CD’s, with a large hole in the middle, except they’re made of metal.

I put the disks carefully to one side – I had an idea they might be good for chimes or cymbals – and focused on the arm.

With the top magnet out of the way, it was possible to see the so-called ‘voice’ coil’.  Two impossibly tiny wires connected the voice coil with the arm actuation circuitry, and to test that the arm was working I needed to attach a battery to these wires.

In the end these wires were just too small, so I traced them back through the plastic cable to the connector, where it was slightly easier to get at them.  Attaching the battery leads to the two points produced nothing at 4.5v, but at 9v there was a loud and satisfying clunk, which showed that the arm was working fine.

*

The procedure with the next disk I worked on, a smaller 2.5″ was exactly the same.  The top came off once I had removed the 6 visible screws and the 7th screw hidden under the label.  I needed a smaller Torx/star screwdriver – a size 5 or 6 – for this disk compared to the other one.

1_IMG_1555

This exposed the single disk and arm:

2_IMG_1557

A single screw in the middle of the motor housing allowed the disk to come out.

3_IMG_1558

Removing two screws freed the unit in the bottom right, which connected the arm with the circuit board on the other side.

4_IMG_1559

I prised off the top magnet (bottom left), just to make sure the construction was the same as the 3.5″ drive – which it was.

I replaced the magnet and tested the drive with a battery.  I’d already removed a plastic retainer on the right, by the heads at the end of the arm; I also had to remove the plastic piece which you can see on the left, which was restricting the arm’s movement.  However, once I had done this, applying 9v to the appropriate pins on the connector reliably operated the arm.

In fact, this smaller mechanism would also work with 4.5v, which was a useful discovery.  If parts of the circuitry which would operate it had to be quite low – say, 5v – it could be handy if the arm would also work at the same voltage.

*

So, I had verified that an arm from an inexpensive broken hard drive could operate as an electrically-operate striker, like a solenoid; that arms from both 3.5″ and 2.5″ drives would work; that the 3.5″ drive arm would operate at 9v; and the 2.5″ drive arm would operate at 4.5v.  It will be some time before I get round to the next part of this project, but the next thing will be to see how the arms could be set up to operate outside the hard drive housing.

06
Nov
13

Notes on game controllers

I decided to write this post just to tie together some of my experiences of using game controllers of various sorts to make music.

Generic USB controllers like these are generally pretty easy to use:

Game Controller 3

StyloSim6sm

Since computers come with USB ports on them, it’s usually just a case of plug them in and get going.  There are lots of them about and they can be picked up cheaply on eBay and Gumtree or from local charity shops.

The main consideration is what program to use which can interpret the signals the controller is sending out and allow you to use those signals for your own purposes.  There are many of these, ranging from simple apps to tweak the operation of a particular device, to large and complex  programs designed to customise a device’s every action to the user’s requirements.

This is made possible by the existence of the ‘HID’ standard for USB devices.  HID = ‘Human Interface Device’, a description which can be used to cover devices such as computer keyboards, mice, game controllers, joysticks, and the like – all the things which humans use to interact with computers.  As long as the device is made to conform to the standard – and manufacturers have readily got used to the idea of doing so – these programs can interpret the input and make it available to be changed to a different input; to perform an action completely unrelated to the device’s original purpose; or send data to another program which can use it creatively.

I’ve used several of these for different purposes.  There’s Multicontrol, which I used for this MIDI Drum controller:

MultiControlDrums1

Multicontrol has the ability to interpret the game controller’s signals and pass them on in the form of MIDI messages, or OSC (Open Sound Control).  Designed by Alexander Refsum Jensenius, it’s distributed free for Mac OS.  There is a source file downloadable from the site referenced above, although I have no idea if this can be compiled for Windows PC’s.

I’ve also used a commercial program, ControllerMate, which enables very sophisticated interpretation of controller signals.  This allows not only for simple button ‘mapping’, where you specify, for example, keystrokes for each controller button, but also, with this window you can build up complicated series of events, initiated by a button press.:

ControllerMate window

The small drop-down list to the right indicates the wide variety of actions that can be incorporated into the instructions for each button or other control.

The list in the left-hand column indicates a couple of devices which I’ve made customised groups of special controls for: once you’ve set the controls up, you can save them and call them up by name.  It’s possible in this way to have several different set-ups for the same device, depending on what you want to use it for at different times.

*

My favourite program is PureData, or Pd for short.  Using Pd means you have to write the programs yourself – but this is done graphically, rather in the manner of flow-charts, rather than by writing lines of code, and the program is specifically designed for making music, so it has typical audio and MIDI functions (Pd calls them ‘objects’) ready to use.

I’ve used Pd both for creating instruments, like the Theresynth, which uses the PCLine Rumble Pad pictured above, and for sound and sample manipulation.  The blog post for the Theresynth (which uses one of the joysticks on the controller for changing pitch in a way reminiscent of a theremin), also has quite a detailed description of the Pd programming.  I’ve also blogged about various sound manipulation apps (or ‘patches’) in the past, including the StyloSim, which uses the joystick controller pictured above, and the Black Widow.

The StyloSim patch isn’t very extensive, and looks like this:

StyloSim2

The small box with ‘hid’ in it, near the top right-hand corner, is the Pd object which recognises input in the HID standard; the ‘route’ objects below split up the different inputs, and then you can send them off to do whatever you need them to do – control oscillators or filters, perform mathematical functions, create MIDI messages, and so on.

While on the subject of software, a handy piece of freeware which I often use is Joystick and Gamepad Tester from AlphaOmega Software.  AlphaOmega produce a number of simple but ingenious apps which help you with your Mac, including an app which cuts out that annoying ‘chime’ when the computer opens (my car doesn’t sing at me when I turn the ignition, my hi-fi stays silent until I put in a CD, my TV remains mute until I select a channel – why on earth do computer manufacturers think we want to hear the machine start up!  One of life’s unexplained mysteries . . .), but also some apps which can have a value in computer music.  I may well have blogged about some others elsewhere.

The purpose of Joystick and Gamepad Tester is to tell you what controls your USB device has, and if they are devices like joysticks, what are the minimum and maximum readings you can get from them: 0 – 127, 127 – 255, etc.

I recently bought a game controller like this from a charity shop:

Logitech Buzz

It looked as if it was originally part of a quiz game, and had a USB connector, so it looked as if it would be easy to use with the computer.

I took it home, plugged it in and started up Joystick and Gamepad Tester.

JAGT 1

The instructions say to press all the buttons and move joysticks and other controls so they’re recognised. but when I clicked ‘OK’ on the screen above, I saw this:

JAGT 2

I found out first of all what the device was – a ‘Logitech Buzz Controller V1’ – and was able to select it from the drop down list.  Note by the way that all the normal USB-connected devices are also listed: in my case, there’s the laptop keyboard, the infrared receiver on the front and the trackpad.

The Apple IR Remote – listed in the screenshot above as ‘IR Receiver’ – isn’t exactly a game controller, and isn’t exactly an HID device like the others discussed here, but it’s worth a brief digression as its uses are very much the same.

As far as  Joystick and Gamepad Tester is concerned, nothing was listed when I selected ‘IR Receiver’ or registered when I pressed buttons on any of my Apple remotes – only when I selected one of the two entries ‘IOSPIRIT IR Receiver Emulation’.  I don’t know why there are two entries, but they’re identical and are the result of installing either the app Remote Buddy, or its free driver Candelair – or very probably both – as I’ve been working on using Apple Remotes recently (see blogposts, starting here).

A useful feature of  Joystick and Gamepad Tester in this respect was that it showed the remote’s individual ID No. in the ‘Now’ column.  (The ID numbers in the ‘Min’ and ‘Max’ columns are irrelevant, as they will just show the highest and lowest Remote ID numbers used in the past).  Just picking up a remote and pressing a button will change the now column to verify the number.

When I selected ‘Logitech Buzz Controller V1’, all the controls were already listed:

JAGT 3

There are 5 buttons on each of the controls, and the list suggests that they are unique – that’s quite a decent number of buttons for a game controller, so that could be handy in some situations.  Buttons usually show up with a minimum and maximum of ‘0’, so it was quite interesting see that 4 of them with a different reading in ‘Max’: perhaps these were the big red buttons, one on each handset?

Actually, there weren’t: as you go round the buttons pressing them, you can see exactly which is which – the value appears in the ‘Now’ column: ‘1’ for pressed, ‘0’ for not pressed, which is typical for buttons, so by the time you’ve finished, they all have ‘0’ in the ‘Min’ column and ‘1’ in the ‘Max’ column.  If you’re intending to modify the controller you’re testing by taking it out of its case and fixing new buttons to it, this is very useful because you can make a note at this point of which one is which.

Better still, if you click the ‘Save’ button – indicated by the arrow on the screenshot above – you can save the list as a text file, print it out and make your notes on that.

First you’re given the usual ‘Save’ options:

JAGT 4

Then  Joystick and Gamepad Tester confirms that the text file has been saved and it’s safe to quit or begin testing another device.

JAGT 5

I was impatient and clicked ‘Save’ before testing all the buttons, so the text file shows an incomplete test – I haven’t verified yet that each of the buttons gives a maximum ‘1’ when pressed and goes back to a minimum ‘0’ when released.

JAGT 6

I was intrigued by the two entries at the bottom for ‘X-Axis’ and ‘Y-Axis’.  I studied the device carefully, and could find no control on it which resembled a joystick, which is what an entry like this would be for: data from these sources wouldn’t just be a ‘0’ or ‘1’, but a number moving from perhaps as low as -255 to +255.  I’m assuming this indicated that the chip used in the device is capable of supporting a joystick, but this hasn’t been implemented.  Perhaps, if one knew how, one could hack the PCB which controls the buttons and add this capability.

*

There are two things worth mentioning about HID devices at this point.  The first is that, provided you leave the USB output leads intact, you can remove the circuit board from the original case, solder your own buttons and potentiometers to it and it will still be recognised as the same device by the computer.  This was the theory tested by the Cybersynth, which is basically a Theresynth, as described above, with the PCB removed from the Rumble Pad and put into a completely different case.  It doesn’t look like it any more, but the computer still thinks it’s a game controller.

Cybersynthsm

In fact, you can also do this with an old computer keyboard.  It’s possible to remove the PCB from these, work out which connections make which letters and wire these connections to your own buttons or switches.  I did this with the board from inside an old Apple keyboard (as described here):

Blueberry keyboardsm

It was very cheap, having been scrapped as being broken, but what was wrong with it was nothing to do with the electronics.  I took the board out, rewired it, and use it for controlling a looping program.

MIDI CPU insidesm

You may be able to tell from this picture – although the scale isn’t particularly evident – that the PCB inside this particular brand of keyboard is ridiculously large.  You could undoubtedly find a make with a much smaller board which would be more practical.

As it happens, I’m using this particular board for an application which requires letters as an input, and no remapping – i.e. ‘A’ is ‘A’, ‘B’ is ‘B’ and so on.  However, since the keyboard is an HID device, using one of the programs above, you could change the functions of the buttons and have a very large number of different control buttons available: the equivalent of 26 letters, 10 numbers, numerous punctuation keys; and programs will normally distinguish between lower and upper case letters, increasing the total number of controls even further.

The second thing to mention is that there are many PCBs on the market with circuitry on them to output HID standard signals, and allowing you to attach your own combinations of buttons, switches, knobs and joysticks.  People who make their own arcade games like them, so this is where you’re likely to come across them (on sites like this, for example).

Some of these are relatively inexpensive.  I got this one, which can encode 12 buttons and 2 joysticks for £8.00, complete with connecting leads for the buttons, joysticks and USB:

Zero Delay Encoder Board Rev2 -2

You have a free choice of what kind of buttons to attach, and using a board like this is easier than extracting and rewiring an existing game controller board

*

As for other types of controller: there are many.  This one by Nyko for Playstation – which I have in the collection, but haven’t worked on yet – combines the traditional game controller with a QWERTY keyboard:

Nyko IMG_1668

This one, the Airpad, is interesting because it contains a tilt mechanism which enables control by tipping the device up:

Airpad IMG_1667

You may notice something odd about the above two controllers – the funny connectors on the end.  Your computer probably doesn’t have sockets that shape.  This is no problem, though, as Playstation to USB adapters are easy to come by and not expensive.  This one cost less than £2:

PS Adapter IMG_1669

It’s also possible to find extenders and hubs for Playstation devices, and these don’t usually cost much second-hand on eBay:

Extension IMG_1255

Hub IMG_1561

Using PS3 (wireless) controllers is also perfectly possible.  There are drivers for Windows; later versions of Mac OS (from 10.6 upwards, I believe: see here for further details) have drivers built in, using Bluetooth.  Earlier versions of the Mac OS can work with a driver from Tattiebogle.

USB adapters also exist for XBox controllers, although replacing the proprietory connector with a USB plug doesn’t seem difficult,  according to this illustrated article.

[Edit: unfortunately, both the sites I used for this information are unavailable now.  I’ve left the link in case that site’s unavailability is temporary, and I have an image from the other one:

xboxcablemodpaintThis implies that the Xbox cables have wires using the standard USB colour-coding, so if the wire attached to your USB plug uses these standard colours, they can simply be attached like-for-like].

Once again, Tattiebogle provides a driver for wireless XBox controllers – although you’ll also need one of these wireless receivers:

wireless receiver2

Third-party receivers can cost as little as £5.

At the time of writing, the most advanced consumer-oriented controllers are the Nintendo wii and Microsoft’s Kinect.  The wiimote controller is a hand-held device which uses accelerometers and infrared to detect position and motion in addition to control by button-presses; Kinect uses infrared, cameras and microphone to detect spoken commands as well as hand and body positions from a distance.  I’ll be looking at musical uses of these two systems in the next post in this series.

04
Nov
13

Fun with the Apple IR Remote, Part 3: Additions

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.

Footswitches1

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.

Footswitches2

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.

Outside DSCF0004

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.

Inside DSCF0003

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.

Connection DSCF0002

*

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:

system profiler ir receiver2

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.

IR Rec module IMG_0679L

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!  [Edit: and apparently still available 5 years later!  The part is still shown for sale on that website in October 2018.  The current MacBook/MacBook Pro no longer has this IR receiver in it].

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:

IR REC front IMG_1567

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.

IR Rec back IMG_1568

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.

IR Rec inside IMG_1571

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.

Circuit boards IMG_1569

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:

hub IMG_1585

hub 3 IMG_1587

It was an excellent little hub – only £2 or £3 on eBay, and capable of being powered, if required.
Now ready for testing, the unit looked like this:
Back&Front_IMG_1603

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:

System profiler 2510

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):

eMac before&after IMG_1605

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:

G5 before and after IMG_1608

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:

iPazzPort_IMG_1607

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:

AX1838

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:

IR Receiver Electrics Revised2

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’.

IR LEDs IMG_1609

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:

Candles 1 IMG_1612

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!

*

Front & Back

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.

22
Oct
13

Fun with the Apple IR Remote, Part 2: Modifications

In the first part of this series of posts, I described the Apple infrared (IR) Remote system and some software which allows you to use the IR signals for controlling apps on the Mac.

In this post I take a closer look at the Remote controller itself, and describe the way I modified mine.

I must say that I’m not familiar with the silver aluminium remote, although I have no reason to believe it’s substantially different on the inside from the original white remote.  This is the one I have experience of.

What’s good about the white remote is also what’s bad about it – it’s very tiny.  This is great if you just want to tuck it away somewhere and not have a bulky TV/DVD player-type remote to lug about, but not so good from the point of view of it easily being overlooked or mislaid.

So, one reason you might want to modify the remote is to make it larger and more suitable for the human hand.

Frankly, the most cunning solution to his problem is the one described here by Brad Moon.  I hope he won’t mind me using his picture:

Remote wood block

Yes, what Brad has done is simply to glue his Apple remote to a hand-sized piece of wood.  Job done!  As he says in his blog post: ‘Too big to lose, too big to slip behind a cushion or slip into a pocket . . . The Apple TV remote hack has been in place for roughly a month.  In that time, the remote has been lost exactly zero times.’

This certainly takes care of the problem of the unit itself being rather small, but to address the problem of the size of the buttons themselves and their awkward layout, the unit has to be taken apart.  At the time of writing, you can still get hold of these white remotes on eBay for about £3, so if you want to try this, there’s no need to sacrifice the one that came with your Mac.

This is how it’s done:

1_IMG_1533

The picture above shows the unit and the tool (or maybe one of the two tools) you need to open the remote unit.  This is a small Philips or crosshead screwdriver.

As well as being used in a moment for taking out screws, the first thing you can do with it is poke the small depression on the right-hand side of the base of the remote unit.  This releases the battery tray, which pops out on a spring:

2_IMG_1534

Next, you have to undo a screw which is right down inside, next to the release button:

3_IMG_1536

Undo the screw and take it out:

4_IMG_1535

The next bit is the most difficult.  On the opposite side – the lower side in these pictures – is the spring which pushes the battery compartment out.  The spring is firmly attached to the bottom of a small piece of plastic, and you have somehow to grab this piece of plastic and pull it out, with the spring on the bottom of it.

The next picture shows what the spring and the plastic piece look like.  You might reach in and grab it with tweezers or narrow long-nosed pliers, but it’s right up against the edge of the case, and hard to get hold of:

6_IMG_1538

If you look at the full-size version of the picture, you can see that the piece of plastic has tags on it, so I was able to poke the screwdriver under a tag and drag the plastic and spring out.

Underneath where the spring was is another small screw.  Unscrew this and take it out:

7_IMG_1539

You can then pull the battery compartment out.  I did this with a pair of narrow pliers, gripping the white release button, which you can see in this photograph.

8_IMG_1540

Then you can push out the remaining parts left inside the case.  I did that by inserting the screwdriver here:

9_IMG_1541

The circuit board, with the springy battery connectors behind, slid out very easily:

10_IMG_1542

You can carefully detach the end  piece from the circuit board, clicking it off the tabs which hold it in place over the end of the board and the IR LED:

11_IMG_1543

This an exploded view of the remote, with all the parts visible:

11B_IMG_1547

Putting it back together, of course, is the reverse of this procedure.  The trickiest part is undoubtedly getting the spring and its plastic top back in.  This video by Andrew Williams, to which I’m greatly indebted: http://www.youtube.com/watch?v=vuP6CH770NM shows a remote being put back together, and explains the direction in which the tabs must face – front and back – for the plastic piece to go back in the correct position.

*

I wasn’t interested in putting it back together again, so I looked more closely at the circuit board:

12&13_IMG_1545&6

You can see in the top part of the picture the infra-red LED and the 6 buttons.  You can also see 4 screws which attach the circuit board the the plastic fitting.

The first thing to do was take off the six silver ‘domes’ which make the contacts when the buttons are pressed, and see what connections they made.  These are often, in my experience, attached together to a transparent sticky sheet which peels off, and so it was in this case.

Remote PCB IMG_1554

As you can see from this photograph – taken after I’d removed the four small screws holding the PCB to the plastic fitting – each button makes a contact between an outer ring and a centre spot.  All the outer rings were connected together, to what looked like +V, while the six centre spots were separate.  What I wanted to do was transplant the board into a larger unit, so I needed to solder seven wires to the board, and connect them to buttons in the new unit.

The larger unit I’d chosen was this one:

vtech_tinytouch_phone

This is a vtech Tiny Touch Phone: it’s powered by two AA batteries – 3v, same as the Apple Remote; has 12 buttons – exactly twice as many as the Remote, which could be handy for dissociating short, long or double presses; and has flashing lights – which is always good.  It also makes sounds, and under normal circumstances I would be looking to ‘bend’ these, but in this instance making noises wasn’t what the project was all about, so I decided I’d remove the sounds completely by taking out the speaker.

The Phone also has a hollow plastic ‘antenna’, which was perfectly placed for installing the IR LED.

aerial

This is what it looked like inside.  In  this picture the large mechanical unit, which looks like the film sprockets in an old 35mm film camera is obscuring the speaker housing.  With the speaker removed there looked as though there’d be plenty of room for the small Apple Remote PCB there.  The wires for the LED could easily pass from there up into the antenna.

Phone inside IMG_1552

The general idea would be to rewire the button connections on the Apple Remote PCB to the Tiny Touch Phone buttons.  The Phone buttons (visible in the first picture above) are, however, hollow, and make connections with a membrane, rather like  QWERTY keyboard, via their edges .

I wanted to leave the membrane intact, to operate the flashing lights, so I decided to add small tactile switches with longish 3.5mm actuators which would be glued in the hollows with the actuators sticking out through a hole in the top of the Tiny Touch buttons.  It was these switches which would actually operate the IR remote.

Gluing these in without gluing them together so they wouldn’t function proved difficult.  Letting superglue anywhere near them – even the gel type which I usually use – could prove fatal, as it has a habit of running everywhere.  In the end I used epoxy, which is stickier and less runny, and tiny pieces of tissue paper soaked in epoxy to keep the switches in place.  The moon and star buttons aren’t hollow, so I stuck tactile switches with short 1mm actuators to the top of them, on the outside, with wires running in through a small hole.

In the end I only connected up the star: it would have been difficult to make the hole in exactly the right place in the moon and route the wires inside without disturbing the membrane too much.  The star operates the ‘Menu’ button, which is less important than the others and doesn’t require more buttons to distinguish types of presses.

Buttons IMG_1550

In the event, all but one of the tactile switches worked after this treatment, which was OK, as there were two new buttons for each button on the original remote, so all functions would still be available.

To modify the new unit, I first removed the speaker and replaced it with a resistor (two 22Ω resistors in parallel, actually, as I had these lying about.  I didn’t have any 8Ω resistors to match the speaker, but 11Ω, I reasoned, was close enough).

This created enough space in the top of the unit for the small Apple remote PCB.

I reinstalled the buttons in their places and connected the tactile switches together.  One side of each switch was connected to +3v, the other sides of the switches were connected together in pairs (except the moon, as explained above).  This made 7 extra wires running down to the bottom of the unit.  The presence of the wires might have an effect on the operation of the TouchPhone’s original buttons, but this wasn’t important as their only function now was to light up LEDs when the remote was operated, a feature which Apple neglected to provide in the original.

Buttons_connector_IMG_1574

As can be  seen in the above picture, there was just about enough room for a 9-way D socket in the base of the unit.  I put this in partly because it would allow for external operation of the 6 remote buttons – perhaps by means of a footswitch – and partly because it provided a handy link point between the tactile switches and the Apple remote PCB.

To attach the remote PCB, wires were connected to the centres of the 6 switch points, and one of the outer rings, which were all connected together on the board.  3v and 0v power cables were connected to the springy metal pieces which formerly connected to the coin-battery in the original remote housing.  These connectors were shortened in order to fit the PCB neatly in the space where the speaker had been.

PCB_LED_IMG_1577

At the same time I detached the infrared LED and put it on the end of a longer lead, so it would reach to the front of the unit when in operation.

At this point everything was connected up, although not back in place, so I made a quick check, using iChat and the laptop camera in the way described before.  I pressed all the buttons in turn, pointed the unit at the camera, and watched for the infrared LED to come on.

When I was satisfied that it did so, I replaced the membrane and the TouchPhone PCB, as this would make pressing and testing the buttons a great deal easier.

*

For the next step I needed a way of thoroughly testing if the remote worked as intended.  I did this by creating a Tester program, using iRedLite.

It takes quite a few steps to create a ‘Layer’ – a set of instructions for each remote button – in iRedLite, but this is how I created a ‘Remote Tester’.

The ‘Menu’ button has special functions in iRedLite, but the other 5 buttons respond to short presses, long presses and double presses, so 15 separate instructions would be required.  What I decided to do was use Text Edit, and simply have it print the numbers 1 – 15, according to which remote button was activated.

Step 1 was to open iRedLite.  You can set it up in various ways in the preferences, but I have it set so it just opens an icon in the menu bar:

1 iredlite menu bar

The first step is to select the Editor from the drop-down menu:

2 Show editor

This brings up the Editor screen.  The top half of the window is a copy of what iRedLite calls the OnScreen Display (OSD).  The bottom half allows you to edit Layers and Buttons, and select the actions the buttons perform.  I began by creating a new Layer for my Text Edit actions:

3 New Layer

Then I entered the details of this Layer:

4 Name new layer

I typed a name for my Layer into the ‘Title’ box, and then made choices about what would happen when the Layer was selected.  I chose not to have the Layer activated when I switched to Text Edit, in case I wanted to type some text while using iRedLite with another application; but I did choose to have Text Edit activated when I switched to this Layer, because the actions all required text to be typed in it.  I have several remotes, so to be certain which remote was being tested, I set it to respond only to a particular one: in this case, the one with the ID No. 214.

Having finished creating the Layer, I clicked on the small arrow in the bottom right-hand corner of the Editor window.  I believe they call this the ‘Expert’ button, but it’s simply for accessing the section where actions are created and organised.

5 Editor window

Clicking this button opens the right-hand side of the Editor.  In here, if you look in the ‘Application’ column and can’t find the application you intend to use the remote with, click the ‘+’ button at the bottom of the column to add it to the list:

6 New Application

Type the application name in the box which appears.  The program will be recognised if its name is written the same as it would appear if you moved your mouse over it in the Dock.  Text Edit is actually written ‘TextEdit’, so that’s what I typed in the box:

7 Type New Application

Next you have to create a ‘Group’ – not for any special reason, I don’t think: it just works that way.  If you create a lot of actions for one particular application, this allows you to put different types of actions together, i.e. Keystrokes in one Group, AppleScripts in another, and so on.

I just wanted keystrokes, so I created a group called ‘Keys’.  Group names are your personal choice.  Once again, I clicked the ‘+’ sign under the ‘Groups’ column, and typed ‘Keys’ in the box which appeared.

8 New Group

Then it was time to create some actions.  Each action is entered individually, so I had to click on the ‘+’ sign at the bottom of the ‘Actions’ column 15 times, name the actions in the boxes which appeared, and specify what was to be done.

They were all more or less the same, and this is an example:

9 Create actions

Click the ‘+’ sign; name the action – again, this is entirely your choice: I just called them ‘1’ to ’15’; type the name of the application, or choose it if it appears in the drop-down list; check the box if you need the application to come to the front – which I did, because I wanted to read what it had printed; and type in what keystroke or keystrokes should be made.

Allocating the actions to the buttons is just a matter of dragging and dropping the action onto the appropriate button, and clicking ‘Assign Action’:

10 Drag and drop

The button will be given the name of the action – in this case ‘1’, which is the name I had given to the first action, which was to print the number 1.

11 Button number 1

You can rename the button, and I did, calling it ‘1/2’.  This is the reason why:

iRedLite shows the pattern of buttons in the way that it does to indicate that the button nearest the centre performs the short press action (which they call ‘Action on click’), while the button on the outside performs the double press action.  In reality, of course, these actions are performed by pressing exactly the same button on the remote, but it makes it clearer to see which number of presses produces which action.

So the ‘short press’ and the ‘double press’ are specified, but the ‘long press’ action (which they call ‘Action when holding’) remains to be allocated.

I decided to add the long press action to the instructions for the inner buttons, so in the example below I selected the appropriate inner button (Action 4, the ‘+’ button on the remote) and the ‘Advanced’ tab.  This allowed me to drag and drop the action I wanted to be performed as the long press action, printing the number ‘5’.

12 Button 4_5

I added a long press action to buttons 1 (the ‘Left’ button on the remote), 4 (the ‘+’ button), 7 (‘Right’), 10 (‘-‘) and 13 (the centre button) and renamed the buttons in iRedLite accordingly (‘1/2’, with ‘3’ being the double press action for that button on the remote; ‘4/5’, with ‘6’ as the double press, and so on).

When I’d finished, the set-up looked like this:

13 Finished

Note the button in the top right-hand corner,  marked ’15’.  There are 12 more places in the grey area of the button window where you can drag and drop actions, 6 on the left and 6 on the right.  If you drag and drop an action somewhere in the grey space, a new button will be created there.  This might come in handy if you had a modified control with differently positioned buttons.  In this case, I used one of the spare places for the double press action associated with the centre button.

Removing buttons, should this be necessary, is one of the functions on the drop-down menu where I chose ‘New Layer’ at the beginning.

I opened Text Edit and pressed all the buttons in order, single press first, then long press, then double press, hoping to see the numbers 1 to 15 displayed.  This what I saw:

14 Text Edit Numbers

The numbers were all printed out in order, so the combinations of short press, long press and double press all worked as predicted – but the long presses produced a continuous stream of outputs, even though I tried to take my finger off the button as quickly as possible.  The exception was the Centre button, which produced a single output of the number ’14’, no matter how long I held the button down.

This behaviour might not be what you require if, instead of printing numbers, you want a single specific action to be performed.  You might find the action repeated many times unless you’re able to take other steps to avoid this.

However, for testing purposes, this was fine, and I had established that the remote should, with iRedLite, be able to distinguish between 15 separate actions, despite only having 6 buttons.

*

The final stage of the project was to try out the new Tiny Touch Apple IR Remote to see if it would function correctly, using the iRedLite TextEdit Tester.

I quickly opened Joystick and Gamepad Tester to check the ID number of the new remote, which was 211.  I then opened iRedLite, went to the correct Layer for my Tester, and changed the remote number to which it would respond from 214 – the remote I had originally use to create the Layer – to 211.

The TouchPhone has a Power switch, but in fact the IR Remote worked even when it was in the ‘off’ position; in the ‘on’ position it worked with added lights.  As before, I pressed each button in turn with a short press, a long press and a double press, checking to see that the correct numbers were printed in Text Edit.

They were, so now it was safe to put the unit back together.  I glued the IR LED into the ‘antenna’:

top IMG_1580

fixed the 9-way socket in place:

bottom IMG_1584

and  wrote the ID number on the back.  Now I had the world’s most colourful Apple IR remote!  It could have been the world’s noisiest, had I not removed the speaker, but I felt this would be gilding the lily – and would probably have been a distraction, given that I had conceived of the remote as being part of a sound-modifying system, not a sound-producing system.

Alternative Remote

I was a little upset as, just as I was putting it back together, I broke the plastic link behind the ‘telephone’ button that mechanically ‘winds the film’ and changes the picture on the screen.  However, this only deprived me of more ways of turning LEDs on, and didn’t in any way affect the IR  controls, so ultimately I was satisfied with my achievement.  I didn’t want to spend more time on it at this stage as I wanted to move onto the next part of the IR project.

For this, see Part 3: Additions.

 

[Edit: I’ve since managed to get hold of another Tiny Touch Phone and replace the broken film winder, although I haven’t yet had time to change the tactile switch that got glued together].

15
Sep
13

The StyloSound

front_IMG_1497

The idea for the StyloSound came to me when, at about the same time, I acquired two small sound effect devices.  One was a ‘Sound Machine’, a small hand-held unit with 16 push-buttons, the other was a Sound effect kit with PCB, also with 16 different sounds.  I thought it would be a good idea to combine the two things into one unit and use the Stylophone stylus to trigger the sounds; plus I was also working on devices to interact with the ‘Bigfoot’ trigger/sequencer, so I decided to add the capability for the sounds to be triggered by the Bigfoot’s 4-bit binary output.

*

There are several varieties of Sound Machine.  The one I got was the silver ‘SciFi’ version.  This has a number of interesting ‘spacey’ effects, some of which I recognised from Star Wars, Close Encounters and others; some I didn’t.

sound-machine-sci-fi-box2

These Sound Machines aren’t all exactly the same inside, apparently (this site gives a very good first-hand account of looking inside them: http://www.magicmess.co.uk/cb/sm.php)*, but I guess the sounds are all initiated the same way – a +V pulse into the appropriate input of the dedicated chip which stores the samples.

*[Edit: unfortunately, this site is no longer up; I saved some of it, which had this information in it: http-www-magicmess-co-ukcbsm-php.pdf].

Having opened the Sound Machine and taken the PCB out, it was easy to attach a wire to each of the 16 inputs.  These wires went to the middle 16 notes on a Stylophone keyboard, salvaged from a broken instrument – via 16 SPDT switches, as I wanted to be able to choose either the sound from the Sound Machine or the sound from the Sound effect kit individually in each of the 16 positions.  This picture shows how the switches were arranged on the front of the StyloSound:

StyloSound outside in prep IMG_1469

The Stylophone stylus was connected to +V, and the output from the Sound Machine PCB went to the Stylophone speaker, which was much better than the small speaker in the original.

The Sound Machine is powered by three small 1.5v button cells, so it was no problem to use the Stylophone’s own battery compartment, which takes three AA batteries.  With all the switches to the left, the Sound Machine PCB was selected, and it was possible to play all 16 sounds from the Stylophone keyboard.  It was clearer from this than using the original buttons that each sound has to play right through before a new one can be selected.

The next obvious step was to interfere with the playback speed of the sample.  This version of the Sound Machine has only four visible components, two resistors and two capacitors – all tiny SMD (surface-mount) type – with the main chip embedded in its plastic blob.  Using the wetted finger method, I found the resistor responsible for playback speed, which is marked ‘R2’.  I removed it and replaced it with a potentiometer, which slowed down and speeded up the playback.

In this photograph you can see the points at which wires are soldered to the Sound Machine PCB.  In the magnified area you can just about make out the resistor on the left marked ‘R1’, the removed resistor, ‘R2’ (detached but still lying beside the place it was removed from), the wires going to the potentiometer and the two SMD capacitors behind the wires:

SMachine PCB IMG_1473

Unusually in my experience, the chip reacted badly to both too low a resistance and too high, and a 1M potentiometer, my usual first choice, was too big for it, causing it to crash.  In the end, I settled on a 470K potentiometer with 100k trimmers either side.  When the trimmers had been adjusted, this seemed to keep the resistance within acceptable levels.

(Later, I read the website referenced above, and the writer had a different solution to this problem, but I didn’t have time to check it out).

*

The above is all you would need to do to bend a Sound Machine, but the next thing in my case was to unpack the Sound Effect kit, which contained the following components:

Kit unpacked IMG_1471

The two logic chips are a 4066 (quad analog SPST switch), and 4011, (quad 2-input NAND gate); the sound effect chip was on a separate board, inserted, strangely, at right angles to the main board in the slot on the right.  The 4 SPDT switches enable the sound to be selected manually – the input is 4 bit binary – as an alternative to the 4 inputs on the left-hand side of the board.  Output is  through what looked like a small piezo element (the round black component in the bottom left of the picture).

The small board which the sound effect chip itself sits on is one of a range in the 9561 series.  This one has the prefix ‘LX’, but there are others, such  as ‘CK’, ‘CL’, ‘CW’, ‘KD” and others: all have the same general purpose, finding use in alarms, doorbells, and simple toys, making noises such as police sirens, machine guns and so on.  Simple circuits such as this one can be found on the internet utilising very few external components to produce the required sound (generally only one or two in each application):

LX9561

In fact, the kit I bought in an eBay auction only cost about the same as the module itself, and took full advantage of the range of sounds available by using the two switching terminals (F1 and F2) and a more complex array of resistors in place of the single 200k resistor shown in the circuit above.  The full list of sounds available is as follows:

0000: Machine gun voice
0001: Fire truck voice
0010: Ambulance voice
0011: The police car voice
0100: Crickets sound
0101: Alarm
0110: Electronic signal sound
0111: Koh
1000: Insect song
1001: Whistle
1010: Telegraph sound
1011: Bird song
1100: ChongJi gunfire
1101: Car sirens
1110: Bass instruments sound
1111: Racing sound

Some of these interpretations are rather fanciful, but that was no problem as I was more interested in making noise than repeating recognisable sounds.

This chart – for a similar chip in the series – gives some idea of the variations in binary inputs, combinations of selection inputs and resistances that produce different sounds.  If you read Chinese, which I don’t, it probably tells you in the right-hand column what sounds these combinations make.

KD9561 selection chart2

The PCB was robustly constructed and I put it together omitting the four slide switches, as I intended to control it externally, and didn’t attach the piezo sounder, which wasn’t going to be used.

Several of the resistors, when tested, had an effect on the pitch and speed of the sounds – the main job of the 4066 and 4011 is to select different combinations of resistors to affect the sound produced, much as indicated in the chart above – so I picked the likeliest one and replaced it with a 1M potentiometer.  This seemed to do the trick – perhaps taking things slightly too far in the upper direction, so I added a preset in series to keep it from going to its maximum – although it had happily done this without any danger of crashing the chip.

I only had a log potentiometer available, and in the end this was quite fortunate.  I found that connecting it the opposite way round from what would be expected – i.e. turning it clockwise decreased the pitch and speed, rather than increasing it – exploited the logarithmic scale well, making a much slower and smoother transition through the higher pitches and speeds.  I could have bought an ‘anti-log’ pot, but additional time and expense didn’t seem worth it.

This was a timely reminder that a useful part of experimentation would be to compare lin and log pots in particular situations, and reversing the log ones to see what difference this produced. (Reversing the linear ones would, of course, do no good, as they progress evenly through the scale from top to bottom, whichever way round they are).

This part of the circuit (the kit PCB) now looked like this:

Sound Effect Kit circuit 3

The original circuit diagram was provided by the supplier, Chip_Partner_Store, a Chinese company with an eBay shop at http://stores.ebay.com/Chip-Partner-Store.  Places like this – and there are many of them on eBay – are great for browsing through: you can find great deals on bulk buys of common components, as well as somewhat more unusual ones at very reasonable prices, and odd chips and modules like this one, which could always come in handy.

I’ve indicated in the diagram where I added the 1M potentiometer and preset, plus four LEDs, connected, via 470Ω resistors, to the A B C D inputs, the other ends connected to ground.  These were not there for any reason, particularly, except as an indicator of the code being received – and on the principle established with Bigfoot that flashing lights are always good.  I was sceptical as to whether the circuit supplying the four inputs would be able to power these as well as operate the Sound effect module correctly, but it all seemed OK.

The greyed-out section at the output wasn’t used in the final circuit.

Actually, this unit begins sounding repeatedly as soon as power is connected to it, since the default input 0 0 0 0 has an associated output – ‘Machine gun voice’ – and I couldn’t find a way of stopping it, so I also added a power on/off switch to this board, which isn’t shown, in case this feature became annoying.

*

SInce the circuit has four binary inputs, and I wanted to control the unit with the Bigfoot, which has a 4-bit binary output, it would seem logical to connect the Bigfoot output directly to the A B C D inputs.

Unfortunately, this wouldn’t allow the Sound effect module to be operated by the Stylophone keyboard, or the Bigfoot to control the Sound Machine, so additional circuitry was needed to convert the binary input into 16 individual outputs, and then convert that back into binary . . .

. . . Fortunately, the first of those would be a duplicate of part of the Bigfoot circuitry, which I was familiar with, using a 4067 chip.  This part of the circuit looked like this:

StyloSound - 4050_4067_3

The input from the 5-pin DIN socket goes first to a 4050 hex buffer.  Four of the six buffers are used.  The reason for doing this is to exploit an unusual and very useful feature which the 4050 shares with its more common sibling, the 4049.

Both perform a similar function, but the 4049 inverts the input (high level voltage in = low level voltage out, low level voltage in = high level voltage out), and the 4050 doesn’t.

What both of them are able to do is accept an input voltage level higher than the supply voltage, a vital consideration here as the output from Bigfoot is at 9v, whereas the circuitry of the StyloSound is at only 4.5v.  The 4050 is able to acccept the 9v input from Bigfoot and safely reduce it to 4.5v for the other circuits.  9v isn’t a problem for CMOS chips, but the Sound Machine and the Sound effects module are both rated at 4.5 – maybe 5 or 6 maximum – volts.

The four outputs of the 4050 go into the A B C D inputs of the 4067.  Each of the 16 outputs of the 4067 goes to the pole of one of the SPDT switches described earlier.  According to the binary coding on the inputs, one of the 16 outputs of the 4067 is connected to +V, and this signal is sent in the direction either of the Sound Machine when the switch is to the left, or the Sound effect module when it’s to the right.

*

The Sound Machine has 16 separate inputs, so no further circuitry was required: each switch was connected to one of the 16 places on the Sound Machine PCB where there used to be buttons.

For this signal to operate the Sound effect module, however, it needed to be changed back into binary.

Fortunately, this change is not difficult to implement, using a pair of 4532 chips and a 4071.  The 4532 is essentially the opposite of the 4067: it takes individual inputs and converts them to binary.  Each one has only 8 individual inputs and outputs in 3-bit binary, but the datasheet showed this 16-input, 4-bit binary output circuit, which is the one I used:

16 input encoder w pin Nos

The 16 inputs marked ‘From Stylophone Keyboard’ were all connected to ground with 100k resistors so that each one would be at 0v if not receiving a +V signal from the keyboard or the 4067.  The outputs of the 4071 were connected to the Sound effects module where marked A B C D in the earlier diagram.

Here’s how the physical connections are made, and what the chips look like on the board:

StyloSound 4532_4071_3

inside_IMG_1472_2

I’m not entirely sure that the correct order of those 16 inputs is as implied in the datasheet circuit.  Since I had LEDs on the inputs of the Sound effects module – i.e. effectively at the outputs of the 4071, I was able to check the sequence, and I found myself swapping some of them around.  If you’re using this method of converting single outputs to binary, it would be advisable to check this as you go along.  In my case, the wiring to and from the SPST switches was such a bird’s nest, that it became too difficult to work this out.  If it becomes clearer when I use this system in future projects, I’ll make sure to record the correct sequence.

However, when tested with ‘Bigfoot’, the module was triggered accurately, and the LEDs on the input lit up with the correct numbers when the notes were tested with the stylus and keyboard.

*

So now I had two separate sound effect circuits which differed in several ways: the Sound Machine uses samples, which are played back in their entirety, and are particularly effective when slowed down; the Sound effects module produces electronic sounds from oscillators, which can be cut off and replaced at any time by another sound, and lend themselves to being sped up.

Both sections had separate pitch/speed controls; both could be controlled automatically by Bigfoot, or manually via the Stylophone keyboard.

*

I could have stopped there, but I had another idea which I thought could be included.  I believe this is known in the trade as ‘feature creep’ – just adding that one extra implementation, which then turns into two, then three . . . and eventually makes a simple circuit over-complicated.

But I had  just acquired a number of unwanted ‘Voice Recorder’ key rings – 100, in fact! – at a few pence each.  At this price, they weren’t guaranteed to work, but when I tested some, quite a few seemed OK, and they were powered by 3 little coin cells – i.e. 4.5v, the same as the rest of the circuits in the StyloSound, so I thought I could employ a couple of them here.

Here’s what they look like:

outside_inside

There’s a very small microphone, a Record/Play switch, a button to operate whichever of the two functions it’s switched to, and an LED to indicate that it’s recording, as opposed to playing back.  I thought it would be good to be able to record a small (up to 8.2 seconds, it said) burst of sound while the samples or effects were being manipulated, then be able to play it back precisely the same again, a primitive – but undeniably inexpensive – repeat/looping device.

So I added a couple of these, connected to the outputs of the Sound Machine and the Sound effect module.  Small tactile switches glued to the front of the instrument replaced the ‘Record/Play’ switch and button, and I also moved the small LED’s to the front panel as well.

*

Only one thing remained, as far as the circuit was concerned, which was the output stage.  This turned out to be . . . strange.

First of all, I needed to mix together the four outputs: the Sound Machine, the Sound Effects module and the two recording devices, as well as send the Sound Machine and Sound Effects module outputs to the inputs of the recorders.  I planned to do this  with a passive mixer – i.e. just join the outputs together with resistors.

The Sound Machine worked perfectly with the internal speaker, but the Sound Effects module would only work with the other speaker terminal connected to +V rather than 0v: otherwise, it was extremely quiet.  I got round this by taking the output directly from the output of the LX9561 board, as indicated in the circuit diagram above, and bypassing the output transistor.

The outputs of the recorders were much too quiet, too, and the only way I could make them loud enough was to give them a path to +V by means of a very low value resistor (22Ω).  The sound quality of these didn’t quite match that of the Sound Machine and Effects module – partly, no doubt, because of reduced bandwidth in the recorders – but they definitely added a useful function.

In fact, I had intended to add tone and volume controls at this point, but the device refused point-blank to make any sound if anything other than a very low value resistor was put in the output path, I don’t know why.

In the end, I used 22Ω resistors to join the 4 outputs (two in series for the Sound Machine, which was a little louder than the others) and ran this straight to the speaker and output socket.  So, the final stage looked like this:

StyloSound - Output_3

The resistors are all 22Ω, as opposed to some other equally low value, simply because I had a pile of them which were going spare.

So: strange, but when I plugged it into my mixer, it  sounded fine, and the volume could be adjusted there.

*

The only thing left to do was to finish the case.  There was so much internal wiring and circuitry that the case had to be made 2.5″ deeper.  I constructed sides from an offcut piece of white plastic and superglued them in place – not especially neatly, it has to be said – with a little internal bracing.

top_IMG_1498
rside2_IMG_1494
back_IMG_1493*
This is what the StyloSound sounds like, controlled by ‘Bigfoot’:
21
Aug
13

The X-Terminator

In fact, the X-Terminator is not a new circuit of my own, but my third ‘classic’ reconstruction, following the Hedgehog (a variation on the Atari Punk Console) and the Cracklephone (my version of Michel Waisvisz’s Cracklebox).

The X-Terminator is really Arthur Harrison and Kevin Buckholdt’s Cacophonator.  You can read all about it here: http://theremin.us/Circuit_Library/cacophonator.html.

Essentially, it’s a fairly straightforward six oscillator circuit, using all six parts of a 40106 chip.  Cleverly, though, it’s designed without the usual precautions to keep the oscillators completely separate, and, indeed, has extra features which in operation cause them to affect one another.  Only four of the oscillators actually sound: the other two are just there to interfere with the power supply and cause further mayhem.

The actual circuit looks like this:

Cacophonator New Scan 2

As can be seen, it also contains an enormous 2200μF capacitor which can be switched into the circuit, operating the oscillators for as long as it takes to discharge, and a ‘starve’ control to increase the power supply impedence.

I didn’t make any significant changes to the published circuit in this case, mainly to avoid upsetting the delicate balance created between the oscillators.  I combined the latching and push switches of the original (bottom left of the circuit diagram)  into one, using a single ON-OFF-Momentary switch, and housed the circuit in a plastic Dalek, approximately 20cm tall.

The six 1M potentiometers controlling the pitch of the oscillators were the small PCB preset type with a very small ‘finger-and-thumb’ adjuster, and were attached to the Dalek’s various appendages.  This photo of the beginnings of construction shows more or less how this was done with short sections of brass rod inserted in the ends to link them together:

Basic Parts DSCF0008

The main part of the circuit was housed in the top section of the Dalek body with the large capacitor and associated components in the base:

Top IMG_1462

3 Parts IMG_1460

This view of the inside of the base shows the PP3 battery clip glued in place, with battery standing up in it, and the small secondary circuit board containing the large capacitor and small resistor which are placed between the battery and the 40106.

Base IMG_1459

The speaker and other small circuit board in here are not part of the Cacophonator: the small board comes from a Dr Who talking key ring, which I dismantled.  A button on the outside of the case produces the phrase ‘Exterminate!’ through the speaker.  So as not to interfere with the working of the Cacophonator circuit, I kept this entirely separate, and it’s powered by a small 3v CR2032 coin battery.

In operation, it seems to perform exactly as described in Arthur Harrison’s article referred to above.  It’s worth noting what Harrison says, that the discharge time of the large capacitor is affected by what the output is plugged into: the higher the impedence of the following circuit, the longer the discharge time – and therefore the longer the cacophony continues after the momentary switch is closed before it finally winds down.   With the latching switch closed, of course, it continues to sound, but requires a little manipulation of the controls – especially the ‘voltage starve’ control – to remain interesting.

Front & Back IMG_1463

[Edit: a sound file is available on the page describing an additional module which the X-Terminator can be plugged into, Orac]

12
Oct
12

Bigfoot – automatic/remote stylophone control, Part 2

As described in Bigfoot, Part 1, I was  constructing a device to play a modified stylophone remotely and automatically.  Using a 16 way analogue switch, the 24-pin 4067 chip, I designed a device where any one of 15 intervals on a 2-octave tonic sol-fa scale would be triggered by changing the chip’s 4-bit binary input.

First of all, I had used a physical control, a 16 position binary or hexadecimal rotary controller; what  I needed next to find was chips that could be made to output sequences of 4-bit binary numbers.

There are several of these, and I went for the 4516, which is a pre-settable binary counter.  It can, if left alone, repeatedly count upwards from 0 – 15, outputting numbers in binary form (‘0 0 0 0’ to ‘1 1 1 1’) on the pins marked ‘Q1’ to ‘Q4’ in the diagram below at the speed of a pulse connected to its clock input (Pin 15); or downwards from 15 – 0.  But by pre-setting a certain number, in binary form, on 4 extra binary inputs, marked ‘P1’ – ‘P4’ in the diagram, it can also be made to count upwards from this number to 15; or downwards from this number to 0.

This is how the 4516 is usually represented in circuits:

Q1 – Q4, as mentioned above, are the outputs, and P1 – P4 are the inputs for the number the count starts from, both in the form of a binary number.  The ‘Preset Enable’, pin 1, is usually held low (0v): when it’s taken high (+v) the number on the inputs P1 – P4 is loaded in and the next count starts from that number.  ‘Preset Enable’ is sometimes referred to as ‘Load’ for this reason.  The ‘Carry Out’ is normally high, but goes low when the count ends.

The ability to count downwards from a set number would be useful for an arpeggiator, which could be set to repeat a sequence with a length of 2 – 16 notes, using the rotary encoder, described in Part 1, connected to the 4 binary inputs to preset the sequence length.

The circuit for this device was extremely simple, requiring only the rotary encoder, a momentary switch to tell the 4516 to load the sequence length number, an on/off switch and two inverters from a 40106 (which has 6 in it altogether) .  One of the inverters was connected as an oscillator, which was connected to the 4516’s Clock input: this determines the speed at which notes sound; the other inverter was connected between the ‘Carry Out’ and ‘Preset Enable’ pins: the ‘Carry Out’ is normally high, so the inverter keeps the ‘Preset Enable’ low; when the count ends the ‘Carry Out’ goes low and the inverter sends a ‘high’ pulse to the Preset Enable, reloading the start number.

Encoder_4516

Pin 10 is connected to 0v in this circuit, which tells the 4516 to count down, not up: this was the easiest way to make sure it counted the right number of notes in the sequence.

In fact, counting up or down would result  only in a scale or part of a scale being played, so I made the output a bit more interesting by reversing the 4 outputs.  Instead of connecting the A output of the 4516 to the A input of the 4067, the B output to the B input, etc., I connected it so that A B C D were connected D C B A.  In essence this meant that consecutive notes in the sequence would not be consecutive notes in the scale, which I thought would be more interesting.

This produced method 2 of controlling the Stylophone: automatic arpeggiation.

*

The third method of controlling the Stylophone automatically used 3 more of the inverters in the 40106 which had been used for the 4516 clock and ‘Carry Out’ inverter.  The inverters were wired as oscillators.

This was the idea that came from the ‘Slacker Melody Generator’, described at http://electro-music.com/forum/viewtopic.php?t=27239&postorder=asc&start=50.  Each of the 4 oscillators is connected to one of the 4 inputs of the 4067; each runs at a different speed, changing the value on that input from low to high, or 0 to 1.  The different successive combinations of 0s and 1s produces a random melody, which can be changed by adjusting the speed of the oscillators, increasing or decreasing the rate at which each particular input changes from ‘1’ to ‘0’.

40106

The reason the four oscillators have two capacitors each is simply because the original circuit I used suggested values of 220n; I soldered these in place, but the oscillators seemed to run too fast for my liking, and it was easier to add new ones in parallel than take the old ones out and replace them.  The result of putting capacitors in parallel is the opposite of putting resistors in parallel – instead of the overall value decreasing, it increases; the capacitance is larger and the oscillators run slower.

Having put the 4067 and the five DPDT switches in place, I then had to connect the relevant input/outputs to 24 different resistors, in a chain (or ladder) like the original one inside the stylophone.  I suppose it would have been possible to calculate the exact resistances, but I had some time ago obtained a hundred 10k presets for about 7p each, for exactly this kind of situation, so decided to use those and tune it by ear.

This took some time, but at the end of it I had a substitute resistor chain for the SoftPot Stylophone and some methods of controlling it automatically.

*

It then occurred to me that with this arrangement, all this extravagance could only control one stylophone at a time, so I had a think about how to connect more instruments (and possibly instruments other than stylophones!).

The way to do it, it seemed to me, was to use the binary inputs to the 4067 as an output: any device could then be controlled, just by installing the 4067 and the five ‘major/minor’ switches in it – or perhaps some other suitable arrangement.

So I added two 5-pin DIN sockets as outputs, the five terminals being A, B, C, D and 0v.  Each of the four A, B, C, D outputs was buffered, using four of the six buffers in a 4050.  The 4050 is similar to its sister chip, the more well-known 4049; but whereas the 4049 inverts its outputs, the 4050 doesn’t.  This chip has even cleverer properties, which I will be using in a later project, but here I used it to ensure the binary outputs were of sufficient strength to make their way through a connecting cable and satisfactorily operate external circuitry.

I also added at this stage Clock In and Clock Out sockets, which would enable Bigfoot to set the tempo of a piece involving different instruments, or follow the tempo set elsewhere.  These two input/outputs passed through the remaining two buffers on the 4050.

The final thing was to add two more 5-pin DIN sockets, this time as inputs.  This would enable external circuitry to control the 4067s.  I had several more ideas of suitable external devices which could be used to do this, and I hope to be able to get around to making these quite soon.

The only other unusual component needed to get all this to work was a suitable master switch, to select the various external and internal inputs to the 4067s.  This had to have 4 poles – the A, B, C, D binary inputs – and 5 positions.  4 pole, 3 way rotary switches are easy to come by, but 4 pole, 4 or 5 way are not.  Fortunately, I was able to source a 4 pole, 5 way switch on eBay from a supplier in Hong Kong for just a couple of quid, so everything was in place.

With a circuit like this – just a handful of chips and a few external components – you either get a neatly laid out PCB or a rats’ nest of wiring.  I ended up with a rats’ nest of wiring . . . however, it worked, even when crammed into the case, with the addition of an extra section underneath the ‘big foot’ I had selected.

This picture shows the two binary input sockets on the left.  The 5 way switch is the knob on the front of the Bigfoot, just the right of centre in this picture.

Bigfoot Left DSCF0002

Due to a certain amount of experimentation along the way, some changes of mind about the functions, and some difficulties in getting all the switches and sockets to fit, there were some extraneous holes which I had drilled in the case.  The plastic frogs are there to hide the holes.  I also added a square of velcro on the back where I could attach a battery holder, as I had done with a number of previous projects.

DSCF0004*

This is what Bigfoot sounds like, controlling the SoftPot Stylophone and the StyloSound at the same time:

 [Edit: there is now a link to a short video of the Bigfoot in action at the bottom of this page].




andymurkin

March 2020
M T W T F S S
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

Enter your email address to follow this blog and receive notifications of new posts by email.