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.[ref]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.[/ref]including 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[ref]Electronic Filter Design Handbook, A Williams, McGraw-Hill, 1981, p5-43 Equn 5-70[/ref] 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.

5 thoughts on “Mind Mirror reverse engineering”

  1. Mudher,

    Good luck with your experimentation!

    Why not wind your own inductors to whatever value you decide are required? Why stick to standard purchased ones?

    This is not an area that I am particularly interested in.
    I was more interested in your para-magnetism experiments, and have built my own inductors for that.

    Gwill Jones

    1. The inductors in the paramagnetism rig were a reasonable size with a 1.5kHz frequency ISTR, but the ones in this are way out there because of the low frequencies. I am going analogue with this because it’s cheaper if you have the skills and are prepared to adjust tolerances, but a 7H inductor and a 90uF 5% capacitor would make the thing weigh a ton and would be lossy as hell. I’d rather go DSP than do that 😉

      Active filters will be my friend, canning the need for the inductors altogether. I simulated this using cascaded tank circuits because it was easier to transform the poles and zeros in the filter design book to LCR values to get a sanity check, but I didn’t plan to actually make the filter that way!

  2. What sort of contact do you need between the sensors and the skull? If you’re as follically challenged as me then it’s probably not an issue but my limited experience with ECGs have involved lots of tape and sticky goo to get a good connection.

    Thanks for the OpenBCI link, there’s some fascinating stuff in there.

    ( The lower photo on the book cover needs enlarging and used as a caption competition! )

    1. Still involves goo, and I have been lucky enough to keep all my hair 😉 I’m tempted to just buy these from vilistius’s shop or perhaps from some OpenBCI joint, it’s about £10 for the electrodes and about the same for the paste. EEG is even lower signal level than ECG. If you poke around the stuff written by people working with OpenBCI, you can also use the sort of IDC connector with gold 0.1″ pins with all the pins shorted as dry electrodes which can go through the hair. I observe they also supply the paste sort 😉 I might get away with dry as I am only looking for two-channel pickup, and instrumentation amps are cheaper now.

      update – it appears you need to locally buffer to get away with dry electrodes, though it’s not hard.

      Indeed, your comment prodded me to investigate further, and as far as the front-end goes I should just buy/build the OpenEEG project which as a two-channel rig is a better and much cheaper match for my requirements. There also appears to be some open source software options, so I might be able to hack the filter code…

Leave a Reply to richard Cancel reply

Your email address will not be published. Required fields are marked *