Category Archives: electronics

Mind Mirror reverse engineering

The are three functional blocks in the Mind Mirror – the electrode positioning and pickup, the filter banks and the display. As far as the electrode position goes I’d follow the original T5-O1 and T6-O2 placement.

There are few pictures of the Mind Mirror, because the first model was produced in June 1976, and presumably the computer version was developed in the mid 1980s. The Dragon Project Trust has some pictures from Paul Devereux’s 1970s monitoring project at the Rollright Stones. 1including a few photos of it in use.


Mind mirror in use with the Dragon Project

The display was each frequency band presented on a linear voltage scale via 16 LEDs in dot mode, presumably to save power. This was replicated 24 times, 12 for each frequency band and in two channels, which already tells me there is a difference between the original hardware Mind Mirror 1 and the software variants – the filter specs I got were for the MM3 developed in 1992. It appears the MM1 used red and green LEDs for the different bands.

In the 1970s LEDs had only just come in and there were all sorts of display chips. I like the Telefunken U1096 which Charlieplexed 30 LEDs off 9 pins, but this and most of the 1970s chips are hopelessly obsolete. My choices now are either digitise and use an Arduino or a PIC, or use the LM3914. The LM3914 is only 10 output so it makes sense to cascade two, getting a 20-LED bargraph. I then rectify the output of the filters and feed that. A PIC would also do the job, perhaps better by controlling the meter dynamics digitally and multiplexing one 8-bit port across two banks of LEDs would give a 16dot display. It would also enable a hold command and be able to write out the digital value for a recording display. But it’ll be dearer…

Filter channels

Looking at the DPT machine, the original set of 12 frequencies on the Mind Mirror 1 can be seen. Let’s take a look

The overlaps are less even than they are in the new version, below

so it probably makes sense to make the display modular and provision 14 slots. I’ve now located a copy of Blundell’s Book

In which he has the technical specifications – the Dragon Project pic shows the MM1, but there was a Mind Mirror 2 which has the 14 more evenly spaced channels, which is shown on the cover of the book.

elsewhere it says the EMG channel displaying interference from the powerful neck muscles is showing 100-200 Hz. While the response of the bandpass filters is 40dB down an octave out, they response flattens out to the limiting case of 12dB/octave. However, a display resolution of 5% (if 20 LEDs are used) gives a minimum response of -26dB so that doesn’t matter.

Mind Mirror Filter sections

This is all low frequency stuff. I derived my simulation by calculating the staggered LC elements of a two-pole Bessel bandpass filter. For example, the 6Hz filter is this

and I’m immediately in trouble for the 7H inductors, and the 90µF capacitor isn’t that handy either, I’m not going to find these inductors at Digikey. I had been thinking along the lines of the LMF100 switched capacitor filter, but decided to compute the values for a standard multiple feedback bandpass filter(MFBP). These sweat a single stage and have the fewest components for a given shape, the downside is they can easily push the gain-bandwidth of the opamp, particularly as there is no independent control of the gain, which can end up quite high.

These are Bessel filters with low Q requirements, the highest I computed was <7. Williams 2 indicates the gain is 2Q^2 at resonance, so the gain of the amplifier needs to be a lot more than this. At such low frequencies this is doable, so choosing a value of C at 1µF and 0.47µF I can use normal MFBPs without resorting to switched capacitor filters. I was surprised but chuffed.


I was thinking of using something like OpenBCI’s Ganglion board which would be very good, but it is dear at $200 and I don’t need the digital whizzery, I will be using an analogue system. I will probably pinch their idea of using instrumentation amplifiers, which have come down a lot in price. I will wing this and assume the front end is soluble, after all it was in 1976 and things have got much better and cheaper since. Instrumentation amps are in the £5-£10 mark, they were much dearer way back then.

Next – deriving and simulating  the filter bank and the effect of tolerances.


  1. The Dragon Project was a fascinating 10-year attempt starting in 1977 to monitor physical characteristics around megalithic monuments, but details of that part of the work are tantalisingly scarce, Devereux seems to have come to the conclusion the physical monitoring delivered a null result.
  2. Electronic Filter Design Handbook, A Williams, McGraw-Hill, 1981, p5-43 Equn 5-70

Making a Mind Mirror EEG

Way back in the 1970s there was an EEG device called the Mind Mirror, which was a spectral display of the brain activity of the two sides of the user’s brain. This was in a world without desktop computers and smartphones, no DSP, and used analogue electronics to get the display of 14 frequency sub-bands in rows of 16 LEDs. Designed by Geoff Blundell in association with Max Cade, this was used to look at the brainwaves of people in meditative states.

the original 1970s device

Kindle version of this book

If you’re a materialist rationalist, you may as well stop reading now because there’s a fair amount of woo-woo in this. I personally like the combination of tech and woo-woo, but each to their own 🙂 The area of biofeedback has a lot of fantastic claims, but ranges from the sinple use of relaxation tapes through all sorts of werd and wonderful ideas of changing consciousness by feeding back signals from the body.

Although the development of the Mind Mirror was largely empirical, the studies leading to it’s development did at least use many subjects and try and control many of the variables.

In the 1970s Max Cade was studying biofeedback using skin resistance, then in 1973 using a single channel EEG, with a single channel display where the filters were switchable to present a choice of frequency bands, one at a time. He ran this with a bunch of people chosen for experience with meditation, the long-form description is in the book “The Awakened Mind” by Nona Coxhead. Basically they observed similarities in the mix of brain activity between different people in similar states of consciousness.

The trouble with using an EEG is that it’s like trying to get information about a crowd by recording the amplitude of the sound picked up a distance away, but since there’s no mind-jack in the side of people’s heads it’s the best to be had. Nowadays you can get spatial detail of what’s going on in the brain using fMRI but this is still a macro observation, in that case of changes in blood flow as a result of brain activity. The EEG is picking up the electrical signals from the brain, but averaged over many neurons.

There was also a more specific book on the Mind Mirror called The Meaning of EEG by Geoff Blundell which I gather was the instruction manual, but there’s not much on that to be found, apart from a cover picture.

Why the Mind Mirror – forty years of better tech has overtaken it surely?

Getting an EEG is a lot easier now. Get yourself onto OpenBCI and you’ll have no end of fascinating stuff to play with, or review some more approaches here. Looks to me like the tech has been sorted.

But at the end of the day, it’s all just sensor data. We are taking the faint signals averaged across a load of wetware and insulating material and displaying them on the screen. Woo-hoo, but so what?  It’s all just numbers on a screen, there is no meaning to it. What Cade and Blundell did was actually trial their machine on real people –

Maxwell Cade and Geoff Blundell calibrated the first prototype Mind Mirrors on people with known advanced training in mind states and were able to bridge the gap between internal descriptions and measurable EEG states on the brain.

The limitations of their hardware led them to focus on two channels, near the occipital lobe, and they experimented to try and get some reproducibility and correlation with different states of consciousness/relaxation/meditation. It’s this part of the puzzle that’s missing from the geeky big data stuff out there, and without that it’s just data, not information. As lifehacker says

Of course, self-awareness is a big part of both therapy and philosophy. It’s also the basis of the quantified self movement , which assumes that if you collect data about yourself you can make improvements based on that data.

The trouble with quantification is that data is not knowledge and knowledge is not wisdom. Where Cade and Blundell scored versus a lot of quantified self data is they looked at the quantified data across many people, trying to correlate it with characteristics of self-awareness, or at least chilled-outness.

The advantages of the Mind Mirror is partly due to the simplicity of the rig, picking up signals from two channels and displaying them. It meant that the machine was portable, but it also makes correlation of the display with other people’s states of mind a lot easier than trying to parse the welter of data from, say, a 16 channel EEG display. The value of the Mind Mirror to my eyes is the combination of work of Cade and his successors with this particular methodology and filter bank, and the fact that it isn’t limited to a particular place.

1970s image of Mind Mirror used in the field

Reverse engineering the Mind Mirror

There’s a lot of good information about the machine on Mind Mirror EEG.

Mind Mirror EEG are good enough to give us the filter frequency specifications indirectly, and more directly here.

I converted these to a staggered tuned second order bandpass filter and simulated this.

And you can immediately see that they adjusted the centre frequencies unevenly, presumably to get more resolution in the alpha and beta wave regions. This is a log frequency display, and the obvious way is to spread the channels evenly keeping a constant fractional bandwidth.

Now the obvious way to do this nowadays is with a PC and a FFT, and you can buy a Mind Mirror from Vilistius  that’s probably how the latest incarnation of this works. But it is £1.5k, and it uses a computer for the display, which is not a thing of beauty.

the software Mind Mirror display. It’s a little bit gonzo DOS 1984 style for me, but the £1500 is the killer, although to be honest it’s not an unreasonable price for such a device made in small numbers given how dear the OpenBCI boards are.

I don’t find computers and smartphones conducive to relaxation and meditation. They are good at what they do, but relaxation not one of them. Whereas the original Mind Mirror was self-contained and used LEDs for a display.

In the next part I will look at what can be gleaned about the Mind Mirror hardware.


Spinning AC mains frequency display

The guys at dynamic demand have a meter showing the frequency error of the UK AC mains, which shows typical values ranging between 49.9 and 50.1. A digital count will do that a treat, but the trouble with digital displays is they have no soul, IMO.

Frahm vibrating reed frequency meter has a steampunk charm of its own, but lacks precision to < 1%

In the past there were all sorts of weird and wacky methods of displaying measured variables, analogue sensors sometimes wear their heart on their sleeves, like the vibrating reed frequency meter.This doesn’t have the frequency precision needed, however.

The click of a Geiger counter is well known, but old-school Geiger counters also had dekatron tube displays, which whizzed round faster at high rates and inched round at slow rates. These tube displays, where a red glow would move clockwise round the tube, was a good, intuitive indication of count rate. I wanted something like that.

So my idea is for a rate counter. A single ring of red LEDs, one of which is lit. If the mains is too fast the lit one will progress clockwise, if too slow, it will move anticlockwise. A set of red LEDs on black perspex is hard to get a good picture of, it looks better than that in real life. Normally it spins a lot faster, I had to wait for a point close to 50Hz to get both too low and too high frequency.

This is built largely out of a 16F628 PIC. The mains is run through a wall-wart 9V transformer, which is an increasingly rare beast nowadays. Often old land-line phones and answering machines had low-voltage AC power supplies, but switch-modes are far more common now.


The 9V is half-wave rectified, clipped to 2V with a LED and sliced with the comparator in the PIC, with the voltage regulator module providing the other side. Internally the transition copies the state of a 16-way counter fed from a 6400Hz clock derived from the 4MHz crystal. There isn’t an integer relationship between 4MHz and 6400 Hz so I used Roman Blacks Bresenham timing ideas to toggle a divide-by 76 and 77 counter using TMR1, I confess I got it roughly right by calculation and then tinkered with the ratio while watching the dynamic demand display to fine-tune the 50Hz point. My null is ever so slightly higher than theirs, but it’s good enough IMO.

I like the effect, it’s more for its ornamental nature, it’s not like I will be calling up Sizewell to throw some more fuel pellets into the reactor, but it’s a sort of connection with what my fellow Britons are up to and there’s a surprising amount of variation moment to moment. It will be interesting to see if a ad break in a big TV program is perceptible, the speed of rotation reacts quickly to frequency changes, a little faster that dynamicdisplay’s meter

Code and schematic

at Github

Over at Return to Zero they’re counting over 100 cycles to get a digital display. Which is fine as far as it goes, but doesn’t have the at-a-glance feel of the spinning LED display IMO. I tip my hat to RTZ for accuracy, if you need to really know what the frequency is, there’s nothing wrong with that solution at all.

laser cutting rather than drilling

Construction was Veroboard and because I’m far too imprecise a craftsman to make the display right I used Razorlab to laser cut the holes and panels from black Perspex, controlled by an Inkscape drawing. That worked remarkably well; I’m tempted to make more designs that way and it may be a solution for decent looking front panels too. The display really had to be regular and even to look any good, and Inkscape made that easy.

Olympus LS-10 remote control success

I’d experimented with the wired remote for the Olympus LS- series recorders before. I have an Olympus LS-10 and an LS-14, and previous experiments showed I could make this work in principle. There’s a big gap between making it work on the bench and getting it to work in the field, however. This is the next step of boxing it up and making it stand alone.

16F628 PIC is fitted into the space of two batteries in a 4-way battery box, giving me a small box with battery holder and on/off switch. A 32kHz watch crystal gives an easy integer divide down to seconds and then hours, and reduces the power drawn by the PIC and lets me drop down to 2V Vcc and stay in spec over the industrial temperature range.

Either my LS10 is knackered or it never was compatible with Olympus’s wireless remote, it doesn’t provide 3.3V power on the plug tip, so I have to power the PIC 16F628 from two NiMH cells, which means I am short of headroom for 3.3V because there’s a 0.9V difference. I’d expect the PIC to drag the remote control line, which rests at 3.3V down to ~ 3V (2.4V VCC + 0.6V input protection diode drop)

I used a diode for the stop command pulling to ground, which still works with that diode drop, so the drive circuit is

Driving the 3V3 LS10 from a 2.4V PIC

RA4 is an open-drain connection, I figured I would chance the forward-biasing of the input protection diodes via the 100k. It works fine, at least at room temp – a 100ms pull to gnd via RA4 starts the recording, and then a 100ms pull to ground of RA2 stops the recording. Pins are switched to hi-Z inputs when not active. I guess the 3V3 from the LS10 has to go through two diode drops now to get to the 2.4V rail (diode shown and the input protection diode), and this is enough to let it float OK.

I got it to start the recorder at 4am, which is too early, but recording for two hours got me this recording at about 5:30 am of the local birds. I hear Great tit, Robin, Blackbird, some sort of gull, Wren, Woodpigeon, Crow, in that lot.

Using a 3.5mm socket as a workaround for the fiddly 4-pole 2.5mm jack plug – it’s a lot easier to wire a socket than a 4-pole plug, and I got a 4-pole 3.5mm jack to 4-pole 2.5mm jack cable from Ebay. Wiring the 4-way socket is dead easy now, and saves having a flying lead from the box.

In search of microphone weatherproofing ideas

I need to now find a way to get a reasonably weatherproof microphone. Looking at how B&K do this in the manual for the UA1404 the way to go is to use a small raincover just over the mic capsule

B&K’s solution to weatherproofing

Their mention of birds makes me thing this is very close to a mesh nut feeder – I could put horticultural fleece around the mesh and use the top cap as a rain guard. Another option is to go minimalist, recess an omni electret capsule in something like a plastic bottle cap. I’d have thought that the cavity of the raincover would cause dreadful resonances, but if it is say 2cm diameter that would be a wavelength of 330/.02 ~ 16kHz – perhaps theirs is 0.5cm keeping this down to ¼ wavelength. Where this would score is it’s small, and electret mic capsules are cheap so I could afford to lose some. I can take the line that I’ll omit the big foam guard and use a piece of horticultural fleece across the cap, this makes a reasonable wind baffle, and I’m not going to get a good recording if the wind is over 5 mph anyway because of the hiss of the wind in the trees even if I were to keep wind blast out of the mics.

I am thinking of using a small Dribox to rig the recorder and timer, and sample some birdsong from other places. A pair of AAs run the timer for at least three days and the power drain of the LS10 on standby is also low, probably good for a couple of days, but I don’t have more than four hours of recording time on the LS10, it is 2Gb. So I can live with that – the Dribox has enough room for a bigger battery if that starts to look necessary.

Skytec PRO 600 PA Amplifier repaired but bad design can’t be fixed

tl;dr – to fix the problem throw the Skytec Pro 600 away and buy something better before the Skytec blows your speakers again. Don’t buy Skytec, and if you have it throw it away before it fails on you.

Skytec is cheap rubbish made in China for kids who are wannabe DJs but have little money. This is not quality – I had to repair this amplifier because of a fundamental defect in the engineering design. These are fine for background music, say in a pub. They’ll go reasonably loud in a modest party setting ,say 30 people, but it’s rough, and it’s nasty. You’ll save on the amp and pay in bass drive units if you DJ with this at any scale 😉 And get a limiter if you can, but if you can afford that you won’t be down at the Skytec end of the market.

I made the dumb mistake of buying one of these used from Cash Converters for £30 a while back. I bought it purely on price, I wanted something basic for parties of about 30-50 people. I knew nothing about PA, but I figured a hifi amp wouldn’t cut it for that sort of usage. What I hadn’t anticipated was people shift junk onto the PA market with design defects that were solved in the 1970s. They don’t even need any new parts, just put the Vbe multiplier on the heatsink rather than on the circuit board.

Skytec 600s are sold as 600W and the manual claims 600W output. They are absolutely away with the fairies on that, to the extent they should be done under the Trade Descriptions Act. I guess they hide behind the fact they don’t say RMS power, so they probably mean peak power, though that’s still only 280W. I measured 80V p-p, which is about 28Vrms. Run that into 4Ω and you’ll get V²/R≈200W. Do that for any length of time and it will blow because of the inadequate heatsinking and bad thermal design.

about 80Vp-p (I am using 10x probes) into 6ohms, 130W per channel. Don’t do it for too long, though

HiFi tower talk glowingly about the MOSFETs

Skytec’s PA-600 gives you the extra power you need with exceptional bass. All sound components are co-ordinated carefully and captivate their longevity. The modern MOSFET transistors and extra large power transformers give great sound and dynamics. The high build quality makes it the ideal amplifier for tours and gigging. For use on stages, for DJs, monitoring, parties and conferences.

but there ain’t no MOSFETs in this, simply a pair of paralleled bipolar junction transistors in the complementary pair output stage, 2SA1941 and 2SC5198. Toshiba described the transistors as suitable for 75W amps, you have two in parallel so 150W tops, okay times two for stereo = 300W. The toroidal transformer isn’t over 600W, I’d guess 200W from the size.

It worked OK for me for a couple of years, but then I let someone use it unsupervised for live music. Which brings me to the first warning

Do NOT use the Skytec 600 for live music unless you are aware of the risks you are taking!

I wasn’t, there, and the result was a blown output stage and blown woofer. It only cost me £11 to service the amp and £50 to change out the woofer, so I am now down £91, and I still have a junk amplifier, though it works now. Now that I know the ghastly horror of the circuit design I am not sure I have the balls to use it again, but at least it works as it was meant to originally 😉

Why not for live music then?

After all, the promotional blurb says this:

The high build quality makes it the ideal amplifier for tours and gigging. For use on stages, for DJs, monitoring, parties and conferences.

so what’s the problems then? Dynamic range – live music has a higher peak to mean ratio than recorded music. You end up pushing the bugger harder, so unless you limit the live source in the mix you’ll clip the output. At least that’s what I assume happened, I wasn’t there when It failed 😉 The Skytec is fine for prerecorded music, but the basic problem is that this amp has zero protection for the speakers or the output stage. Worse still, the VBE multiplier that biases the output stage isn’t thermally coupled to the heatsink on the output stage. Let’s hear it from Rod Elliott why this sucks

Thermal Stability

It can be seen that in the Darlington configuration, there are two emitter-base junctions for each output device. Since each has its own thermal characteristic (a fall of about 2mV per degree C), the combination can be difficult to make thermally stable. In addition, the gain of transistors often increases as they get hotter, thus compounding the problem. The bias ‘servo’, typically a transistor Vbe multiplier, must be mounted on the heatsink to ensure good thermal equilibrium with the output devices, and in some cases can still barely manage to maintain thermal stability.

If stability is not maintained, the amplifier may be subject to thermal runaway, where after a certain output device temperature is reached, the continued fall of Vbe causes even more quiescent current to flow, causing the temperature to rise further, and so on. A point is reached where the power dissipated is so high that the output transistors fail – often with catastrophic results to the remainder of the circuit and/or the attached loudspeakers.

I got to find that out the hard way. I’ve actually managed to do a fair number of parties with this fine, but I was always careful to keep the bouncing LEDs of the output display under control by controlling the master gain.

How does the Skytec PRO600 do thermal stability?

On a wing and a prayer.

PC case fan blowing on the internal heatsink

They run a PC case fan 100% of the time  onto the main heatsink, sucking air out of the case, inflow is through the front. There’s no margin for error – although I didn’t trace the circuit it’s a complementary pair of paralleled output transistors driven by a driver (effectively making a Darlington output)  so you got four VBE drops reducing with temperature at 2mV/deg C, asking for thermal runaway. There’s no fight against that with the VBE multiplier because it’s not thermally coupled. Get the die temp of those output devices hot enough, say 40C above ambient and you have 40*2*2 = 160mV less bias than you started with (the drivers are conveniently mounted on the heatsink to make sure their VBE drops too).  This is designed for thermal runaway and the only thing standing between you and a blown output stage is the hope the heatsink and the fan keep the temperature rise down. You can get a little bit of an idea of the architecture from this thread and this PDF of a similar noname PA amp which gives a rough idea of the architecture on the output

Schematic someone has traced out of a similar piece of junk. In my case the four o/p transistors are 2x 2SA1941 (BG7,8) and 2x 2SC5198 (BG 9,10). BG4 is the offending Vbe multiplier that isn’t on the heatsink.

How to fix a Skytec 600 blown output stage

Change the 2SA1941 and 2SC5198 transistors 😉 I buzzed these through with a DVM on diode setting and found them all short, traced back to the drivers expecting them to have gone but they were OK, traced back a further stage of BJTs but they were OK too. The 5A fuse saved the other passive components.

It’s quite repair-friendly – unscrew the three screws on the base holding the heatsink, unplug all the connectors after taking a photo to remember where they go back. Lift the PA module out, snip the duff transistor legs to save the PCB while desoldering the pins one at a time.

snipping the duff transistor legs lets you unsolder the legs one at a time, saving the PCB from overheating.

I powered up the repaired stage on a 30-0-30V bench power supply set to limit at 100mA, I know it’s meant to work off 60-0-60V but I got a signal through and confirmed it wasn’t still duff, before getting it onto the main supply. I also compared the quiescent current (10mA at 30-0-30V)  with the good side, which was the same, so I figured the VBE multiplier was still set about right. Easy win for about £11 in parts. In fact one of the old output transistors was still okay, presumably saved by it’s parallel buddy shorting across it, but I’m not chancing it.

I also went round and tightened the output transistors a tad. It’s easy to overdo this, but the still- working side was about finger-tight like the failed side. I wonder if this also led to the early demise. You just can’t risk the transistor die heating up to any great amount with this design.

Having fixed it I started to test it looking for why it blew. I got a couple of 50W 6Ω wirewound resistors. These are sold on Ebay to people doing LED upgrades to their lights, to put in parallel with the LEDs and draw 24W so the automotive CAN bus filament blown detector doesn’t keep going off. I figured 6Ω is a nice compromise between typical 8Ω and 4Ω speaker loads; real speakers present complex loads anyway. It was the cheapest way of getting a power resistor up to the job. I then dunk the resistors in a pan of water.

Low cost high power load

since I don’t have a heatsink/fan combo up to dissipating 300W. I know electricity and water don’t really mix, but I figure the water isn’t going to shunt my 6 ohms too much. Worth heatshrinking the ends of the resistors though 😉 The reason I used a pan is because the failure mode of these type of power resistors is to violently eject the ceramic slug out the end. So a Pyrex dish or a jam jar isn’t really desirable.

Running both channels full tilt at 130Wpc for two minutes the transistors get up to about 50C at the hottest part of the plastic case. If fairness to the amp I’ve been able to fill a rented Scout hall with music without ever taking it up that high even on peaks, so I ran it for five minutes at 33 watts per channel (~40V p-p). And got the transistor cases up to 110C. The manufacturer’s spec for the junction temperature is 150C peak. If you thrash this like that for a long time I guess  the heatsink/case fan combo is hopelessly inadequate, and it blows.

Sadly I battle tested the inadequacy of the design a second time. Five minutes after running the second test, after I had brought the signal down to 0, I was greeted with this, telling me the right hand channel has gone DC, presumably thermal runaway again.

failed again

While I know how to repair this, I don’t know how to fix it to make it fit for purpose because of the fact the Vbe multiplier isn’t on the heatsink. It’s probably true that my needs don’t push it that hard, but an amplifier that blows after running a steady 33W for five minutes isn’t something I’m going to risk ever using, so it’s time to scrap it.

Skytec Pro600 – Avoid. Just say no.

Sonar ranger for the visually impaired

This project was for someone I know who is blind. If you can’t see your surrounds then coming into contact with things is always a surprise, she is elderly so it’s not easy to use a cane, which is the low-tech surprisingly effective way of orientating yourself if you can’t see.

the fisihed ranger - the glue stick on the side is to give a softwer contact and avoid damaging the ultrasonic sensors

the fisihed ranger – the glue stick on the side is to give a softwer contact and avoid damaging the ultrasonic sensors

Initially I thought the idea was original, but a little Googling shows it certainly isn’t and more sophisticated versions are available commercially, like the minigude and K sonar. But for the low cost ~ £15 of a PIC and a few bits it’s worth a go to see if the basic principle works, assistive tech seems very variable in effectiveness depending on the user.

Bats use ultrasonic pulses to locate things by emitting a pulse of high frequency sound and listening for the echo. More recently ultrasonic ranging has become a big thing in the robotics field. These modules turn the analogue interfacing into a microcontroller-friendly length of pulse digital signal. I bought a SR04 from ebay for less than £3, which does much of the hard work.

SR04 ultrasonic ranger module

SR04 ultrasonic ranger module

You apply 5V, pulse the trig for 10μs and get a pulse of varying duration from Echo. It’s surprising easy to turn that into a tone rising in frequency as you get closer. Start a timer on the leading edge of the echo return, and when the training edge comes, copy the count into the duration control of another timer (copy into the PICs CCP module which controls the period of TMR1) Then toggle a pin when the CCP module resets TMR1.

You have to do a little error checking to catch timeouts or when the distance is too large, the signal gets more reliable as you get closer to an object, which is good. I was able to find doors and follow a wall using it. It works better when the ultrasonic sensors are vertical, the beam spread is narrower. It does not help you find things on the floor.

I was surprised how little it takes to make one of these now – all you need is the HC04, a 16f628 and a piezo speaker, and it runs 5mA off a 9V battery regulated down to 5V.



PIC code on Github


This works better in real-world application held vertically, not horizontally. but I didn’t know that when I made the video.


Olympus LS10 and LS14 DIY wired remote control

tl;dr – the schematic

Olympus LS10 (and LS14) wired remote schematic

Olympus LS10 (and LS14) wired remote schematic

A new approach to a timed recorder

For the last year or so I’ve been trying to make an timed start recorder using a Raspberry Pi and the Wolfson/Cirrus audio card. I was able to make it work, but never eliminate some rattiness in terms of overruns on record – I confess I couldn’t hear them, but it didn’t give me a good feeling. Then I added up the costs –

£25 – Cirrus Audio card
£27 – Raspberry Pi B+£10 – case and odds and sods to make it work
£20 – PCB, time and bits to make a preamp to get from mic to line level

so I’m looking at £80 to get off the ground, and that gives me a seriously power-hungry SD audio recorder, although I can use a timer to save the power drain for active service.

Alternatively, if I could crack the remote control for them I could go on ebay and get a secondhand Olympus LS10, or one of the similar models (LS-5, LS-11, LS-12, LS-14) and use my own LS10 to start with. I can feed a mic straight into the LS10, no extra preamp required and the audio spec is good.

Reverse engineering the Olympus remote control protocol

This cost me £90 on ebay, and it turned out I didn’t need it. You get the info for free, but then I got a natty nearly new LS-14 with an RS30 remote control, so I’m not too unhappy. Unfortunately the RS30 doesn’t work with my Olympus LS10, don’t know why. I’d have been hacked off if I’d just got the RS30 1. Works a treat with the LS14 it came with, on their own  a RS30 seems to go for £50, so I got an okay deal.

my Olympus recorders

my Olympus recorders

Google first – I owe dashanna of the naturerecordists’ list for inspiration, I vaguely recall seeing that post go through on the list. Their solution is this


The connector is an evil little 2.5mm four-pole jack, and these are a bear to solder

nasty connectors to solder, though easier when you realise you only need t wire to two parts. You can pick up 3.3V on the tip, which may be of use...

nasty connectors to solder, though easier when you realise you only need to wire two parts. You can pick up 3.3V on the tip, which may be of use…

I can’t help wondering if life would be easier using a three-pole jack, since only sleeve and ring are needed. Now I didn’t like that battery in dashanna’s version – I mean who the heck would make a wired remote for a machine offering you a 3.3V supply on the tip of the plug and demand you go fit a battery in your remote? It’s just not a clean engineering solution at all. But apparently it works.

So I rigged the cable in series with the RS30 and sniffed the signals. Of the TRRS the tip had 3.3V, the second ring seemed open circuit, the first ring had the wanted signal and the sleeve was ground. Presumably the IR receiver and LED driver are powered off the 3.3V on tip. The signal on the first ring rests high at 3.3V.

Record is this funny little signal

Record is this funny little signal, 100ms at about 1.5V followed by a low

Stop is this signal, pull to ground for 100ms

Stop is this signal, pull to ground for 100ms

In practice you can ignore the second pulse. For all I know it could be an ack back to the receiver to light the LED. I tried using a couple of diodes to pull the signal down to 1.2V but that didn’t initialise record. I then figured this is one of those analogue resistor chain remotes, so I look for what resistor would give me ~1.5V. Turns out if you replace the 1.5V battery in dashanna’s schematic with 100k you get about 1.5V and the recorder starts recording. You don’t need the second pulse at all, and the debouncing seems to be done in the recorder, it takes a little while, up to about half a second to start recording. I guess that means inside the recorder there’s a 100k resistor to the 3.3V rail in series with the first ring.

That works with both the LS 10 and the new LS14, although the RS30 only works with the LS14. So now all I need do is mod the timer to pull down a couple of pins, one through 100k. If I make the stop command the open-drain pin to ring and the rec command a normal pin resting High via 100k to ring, and pull the relevant pin down for 100ms I should be good to go.




  1. I’ve just got onto the Olympus RS30 website and if you scroll through the models that is compatible with it includes the LS-3, LS-5, LS-11, LS-12, LS14, LS-20M, LS100 so perhaps my LS10 was never compatible with it and Olympus have changed their mind since writing the LS10 manual which says on p65 “Exclusive remote control RS30W (scheduled for Spring 2008)”