Writing your own soft for a really cheap EEG hardware

Program screenshot

(A signal shown here was taken while twisting electrodes in hands. This is not EEG =)

As a geek I’ve always dreamed of a day when my computer will really become extension of my mind – all boundaries like the need to use mouse, keyboard and other awkward interfaces to explain my idea to machine will be gone. When mind will fuse with technology, and obtain all if its computing power, logic accuracy, incredible amounts of memory… and many other good things we could only dream of.

Fortunately, advances in technology in last years show we’re quickly moving in this direction. If you watch news you know today it’s possible to control machines using only your mind. It’s done by using brain-computer interfaces.

Surely it’s more interesting to try brain-computer interfacing yourself then just to watch it in news. But here comes the roadblock: you need special hardware – an EEG device – to make the connection, and it’s not cheap. When I googled for EEG hardware, I found unfortunately prices start from 3000$ and go up to tens of thousands of bucks :(((

It’s possible to make hardware yourself – many good designs can be found on Internet, the most famous is OpenEEG project. Even if your knowledge of electronics is not very good, they have a discussion list where novices can get help. The cost of self-assembled device is about 3 hundred bucks.

Building EEG yourself is a good option, but I had doubts it would work well, especially after this discouraging comment by Anonymous Cowardon. So when somebody from OpenEEG discussion list told about KT88-1016 Digital EEG And Mapping System I couldn’t resist buying. A fully functional 16-channel EEG reading system only for $1200!! (for skeptics be sure it’s not an advertisement =)) Yes, Pendant EEG is cheaper, but it’s only 2-channel, not 16. And 2 channel is not enough for brain-computer interfaces. And KT88-1016 was intended for clinical usage – that means quality must be at good level.

Here is how does KT88-1016 look like:

KT88-1016 EEG Acquisition System

After inserting electrodes to these pins and wearing headcap you will dissappear under the wires. The electrodes & cap are of old-design, I’m going to buy another, probably ElectroCap.

But another disappointment was quietly waiting inside the box. After buying I discovered that this device works only with its own proprietary software. And this soft is very old – probably written in late 90s, limited and may be useful only for doctors. No way to fed brain signals gathered by this device to for example BCI2000. So I needed to write my own software which could gather brain signals that KT88-1016 acquires & sends to the computer.

KT Software

(Here I connected only 2 channels to hands)

Despite being an USB device, KT88-1016 represents itself in system as serial port. It makes the tasks easier. So let’s look on what data is sent to the device – i.e. software may be sending some control commands – and what comes from it. For doing this I used this nice tool – Serial Port Monitor. Choose port for monitoring, run KT88-1016 software and read EEG for a while.

This data was captured by Serial Port Monitor:

Data captured by COM port sniffer

Looks like train of sequences starting from two signature bytes FF FF, after which 32 bytes of EEG data follows. It seems that each of 16 pairs of bytes in this data represents voltage value for one of 16 channels. Using this idea I immediately tried to plot sixth channel (C4 – A2), but resulting graph had nothing similar with any graph shown by KT software.

So I needed to look inside KT software to see what it is actually doing with these numbers. Fortunately, soft is written clearly so this is not very hard if you know assembly. Shortly, I used OllyDbg to find place in program where it does all graph-displaying stuff. For this, breakpoint was set on ReadFile function – it is called when program tries to read data from COM port. Set the breakpoint, run software through OllyDbg and read EEG, OllyDbg will show up highlighting the address where function was called. Write down all addresses (it will be called a couple of times). Then disassembly the program with IDA Pro and chek up what is going on by these addresses.

These things were found after analyzing assembly listing:

  • Device is actually 12-bit, i.e only 12 bits out of 2 bytes contain EEG data
  • Software performs band-pass filtering, i.e. it plots mean value of each of two consecutive voltage values
  • It performs anti-floating (not yet figured out what is it, but could be kicked out to still get right graphs)
  • Some other minor things

Here is source code for sample program shown in the beginning. It was written in C++ (Borland C++ Builder) and reads & displays signal from selected channel. Download source from Rapidshare It could be extended then to do more advanced things like analyzing EEGs to make brain-computer interfacing or neurofeedback (which I surely will do in future =))


  1. I was about to buy this eeg model on ebay until I read this page, I was looking for something more simple ,cheap and plug and play but didn’t want to spend extra cash and have a bio explorer like interface, to bad emotivs epoc doesn’t have raw eeg as part of its app packs yet since it has many channels for its eeg.

    however if bio explorer could be used with this with all its channels that would be ideal though.

    1. I was already adviced (by Stephen Jung, OpenEXG-2 developer) to make a driver for this hardware to use it with BioExplorer. I will have a free time for next weeks and this will be done 🙂 So don’t put to trash the idea to buy this device too recently.

      1. I see well I will keep and open mind and not make to many hasty decisions then if it gets support, btw I wanted to take some of the recorded brainwaves then encode them into music or make them into monaural “isochronic” or binaural beats by modulating any custom frequency pitch within the audible spectrum,I don’t know what app I could use to make that possible with any EEG unit, if you can give me some tips on what I should be looking for in terms of EEG and apps for this id like to hear it and if you make a driver forward it to my email in case I change my mind catcmx@gmail.com it would be much appreciated.

      2. Hi Alexandra,

        Thanks so much for your pioneering work on KT88, which had made it possible for others write codes to allow users to access features and capacities of KT88 that are otherwise not accessible, your contribution to the community of DYI NFB enthusiasts is monumental.

        I am a beginner in NFB, I am planning to get the KT88-1016 for personal exploration, I would very much like to use the device with BioExplorer, Stephen Jung recommends it (BE) highly, I think using BE’s TLC training modular and following their protocol structure makes a lot of sense to me as a beginner who wants to learn BFB in a most efficient manner.

        It has been many years since your posting about your intention to write a driver for BioExplorer, do you think there is still hope that you will make it happen?

        Thank you so much again for everything you had done to the community.

    2. I would recommend you to take a look at eNTERFACE’05, ’06 and ’07 workshops. There were projects in which people worked exactly on this question – e.g. sound synthesis from EEG and other biological signals. You can find description of their work, videos, even open source code on eNTERFACE workshop’s websites. Project descriptions also contain a lot of links to literature & papers where you can learn more about using EEG to syntesize music..

      I will give you direct links so you don’t have to search:

      eNTERFACE 2005 – look for project #3 “Biologically-driven musical instrument”

      eNTERFACE’06 – project #6 “An instrument of sound and visual creation driven by biological signals”

      eNTERFACE’07 – project #08 “Audiovisual Content Generation Controlled by Physiological Signals for Clinical and Artistic Applications”

  2. Thank you for this article. I read through the program and found that there’s a bug from line 189 to 191 in program file Unit1.cpp. The variable “value” never sums up with a previous value that should be stored in the array previous_values[i]. Actually, on line 189, the value of previous_values[i] is always zero, and thus there’s no change in variable “value.” Then, on line 190, value is divided by 2 that causes the program to show only half of real voltage read from a serial port. Perhaps the following codes may correct the problem:

    if (i>0) {
    value +=previous_value[i-1];
    value /= 2;

    1. (shocked) I”m surprised someone reads it, really 🙂
      And thanks for pointing out this bug, yes, it should be previous_values[i-1], not previous_values[i]

  3. Hello
    Please don’t abandon the project, there are thousands of eeg hungry people waiting for an affordable multi channel device which they can use for the recreational and other purposes.
    I was about to order the pendant eeg myself, but luckily stumbled upon your blog.
    You would get many more visitors to your blog, if it was easy to find. Unfortunately, it’s not.
    Not sure if it’s going to happen or not, but if you ever create your own software for KT88-1016 with some essential features to help the user to monitor and tune up their brainwaves to the specific brainwaves, I’m willing to pay for it.
    Just hoping it will not have the price tag of BioExplorer, which is just insane.
    Thanks a lot for your work, bookmarking your blog now!

  4. Any progress on this? Emotiv now has a research package out for their product which should give core EEG readings…

    So for $750 you can get Emotiv or a KT88 system…now I have to choose 😉

  5. Hi everybody.
    This blog is quite amazing!

    I’m interested in buying a KT88-1018, I’ve read this blog and few other ones. Do you think it is still a good idea or should I buy something different?
    I have seen around that many people are buying EPOC EMOTIV, what do you think about it?

    Thanks a lot

    1. Hi Alessandro!

      If you found some interesting related blogs feel free to share links here 😉

      Regarding KT88-1018, you can buy it but keep in mind that it doesn’t have a sync input – at least my KT88-1016 doesn’t have – which is not convenient for some types of BCIs, including P300 spellers and all cued BCIs… It doesn’t mean it will be impossible to use the device for BCIs, but lack of sync can make things harder.
      Neurofeedback applications should go without problems.

      Regarding Emotiv, it comes with SDK – meaning that you’ll have to write less code by yourself than in KT88-1018 case, which is good for novice… The thing I don’t like about Emotiv is electrode locations – they are frontal – i.e. prone to eye/muscle artifacts – and cannot be adjusted. With KT88, you’ll get a more flexible cap that lets you place electrodes anywhere you want – and if you don’t like it, you can buy another cap or headset (as I did) and connect it to KT.
      But KT has no wireless support. And it obviously doesn’t look as cool as Emotiv 😉

      Just decide what is better for you…
      Maybe it would be even better to go build some EEG amplifier by yourself – there are a lot of instructions and it would be the cheapest option! If you have enough time for the project I would recommend to go for it!

      1. Thank you very much for your answer.

        I’m just starting with the study on BCI and EEG machines, so forgive me if my questions appear quite silly. I’d like to know if you could suggest me some interesting software tools where to start from in order to develop some new BCI applications and carry out some research on them. I’d like to start acquiring some raw EEG data and after processing it I’d like to develop my own research on the signal and from it move on developing some BCI scenarios. I know it’s a long work but I’m just starting.


  6. 2 Alessandro:

    IMHO acquiring raw EEG data is not a good thing to start with. It requires skill and equipment. The best way to start with BCI is:

    1. Install Matlab
    2. Download EEG data sets already acquired by someone. Here the best one for BCI http://www.bbci.de/activities
    3. Read some classic papers on BCI topic like Wolpaw “Brain-computer interfaces for communication and control” (can be easily found at scholar.google.com) and etc.
    4. Try to make a software (in matlab) for downloaded data that discriminates e.g. chunks of EEG that correspond to imaginary left movement vs. those for right movement.

    Step (4) will take a lot of time. During that time some new, better amplifiers can appear 😉

    After finishing step (4) you can go on-line – buy some amplifier (or take it for use from nearest EEG research lab, that would be cheaper 🙂 – this time, you’ll know more about what kind of amp you need and how to record EEG correctly. Connect users, run your software, improve it and be happy with how it works…

  7. hello
    I am planning to buy an amplifier sotware kt1016 to design a monitoring and control with labview and matlab
    and the amplifier is on this page: http://www.gtec.at/products/g.USBamp/gUSBamp.htm which works with any of these sotfware.
    internally KT88-1016 amplifier brings eeg amplifier circuits is a single chip serial communication? or bring separate chip for communication by USB?

    Luis Felipe Garcia Colombia

      1. hello
        I know that finalmete used as an amplifier chip eeg and possibly some internal photo, to know if you use a single chip eeg amplifier and communication as well as the serial ads1298 or are several amplifiers and communication chips separately?.

        Luis Felipe

  8. Hello everybody.
    After some week of research I’m here to bother you again…
    I got from a lab an EEG acquisition system, it’s the Neuroscan Synamps (it’s an old machine with only 8 channels), but it’s a good hardware to start (I think).
    Here comes my trouble, they gave me the acquisition system without any kind of software. They told me that they have only some manuals of the software but not the software itself. This system worked with the Neuroscan Scan 3.xx.
    Now the tough question, do you have any idea on how I could use this acquisition system without a software? Do you know if there are free software around the I could use for my purposes?
    As always thanks a lot for your availability.


    1. Hmmm….

      It depends on how this hardware shows up in Windows… What is happening when you connect this hardware to your computer? Do you see any new devices to appear in Device Manager? And how do you connect – via USB or COM port?

  9. Hi
    I’m thinking too to buy an KT88-1016
    prices are lower now, there are some promotions.
    I’m a developer too, would like to share our progress?
    I’ve tried to download your sources but they aren’t any more there.

    Best regards


    1. Hello,

      I’m not working on this project anymore (but maybe I’ll return to that later…)
      Before, I connected the device to OpenViBe and made some EEG recordings
      Here the sources mentioned in the blog post:
      Warning: this code is by no means a masterpiece in C++ and have to be rewritten!
      However, you can use it to understand in principle how to get data from this device (just read from serial port) and to get settings for serial port communication

  10. Hello Alessandro

    I’m thinking too to buy an KT88-1016
    to prices is the KT88-1016?


    Best regards

    Luis Felipe Garcia

    1. Hi Luis Felipe,

      everything I know about this system is what I read on the manufacturer web site, here is the link:


      I wrote them to get more information about its price and they answered me with the following mail:

      Thank you for your interest in our products, the price for

      KT88-1016 800 USD
      KT88-1018 1000USD
      KT88-2400 1800 USD
      KT88-3200 2200USD

      But our EEG have not get the FDA approve ,we have doppler and oximeter get the FDA ,if you have interesting ,you can have a try .


      Henry Liu

      Sales Engineer
      America & Latin America

      Contec Medical Systems co., Ltd.
      Tel: 0086 335 8015475/8015598/8015433/8015431
      Fax: 0086 335 8015588
      Mobile :0086 13930362365
      Website: http://www.contecmed.com.cn
      Email(MSN ID):contec.henry@gmail.com

      I hope this information have been useful for you.


  11. Hi everybody,

    I am intending to order KT88-1016.

    Does this machine give the capability to save the waveforms in a standard format (EDF or excel or ..?). I am intending to make some offline analysis by Matlab, so can I proceed to buy it?

    Many thanks

    1. Hi Haider,

      I asked the same question to the manufacturer (CONTEC). They answered me that your files will be saved with a .eeg extension. That’s all they told me about it.


    2. Hi,

      The software coming with this machine stores data in its internal, non-standard format (.eeg). But this is not the main issue if you consider buying the device : all in all, it is always possible to make a converter; or read & save data with your own software (as described here 😉 that will store everything in the format you need.

      1. So it seems that you know how to decipher their .eeg format.
        If it is so, it will be yes, easy to make a simple program as a translator from .eeg to .xls, .mat , .txt ….etc.

        It is really strange that this company does not consider to put an option to save the data in a standard format besides its own format. This option will be very easy to be added in their software by their software developer, and what will they lose!! Nothing.

        It was always the S.to.S. protocol winning the contest
        (S.to.S. = Stick to Standard)

        Non-standard Spec. will affect their sales definitely.

      2. I send them the following email:
        By the way your price is not including the Malaysian custom tax (Is it shipped from outside Malaysia), do you know usually the custom tax here how much will be approximately)?

        I am also intending to order KT88-1016.

        Does this machine give the capability to save the waveforms in a standard format (EDF or excel or ..?). I am intending to make some offline analysis by Matlab, so can I proceed to buy it?

        What about accessing the data online (can you provide me with the protocol of the serial communication), because otherwise I have to consider buying another machine as my research should get access to EEG data for my research analysis tools (like Matlab) and I can deal with any format, just if your technician can provide me with the communication protocol of your instrument.

        Many thanks

        Their reply was:
        Yes the price doesn’t include the Malaysian custom tax. But we can make a low-valued Proforma Invoice so that you can pay less custom tax or don’t have to pay the custom tax . Sorry we have no idea about the custom tax. I advise you to the Customs to ask about the tax.

        Concerning the KT88-1016, the machine can save the waveforms in EDF. I’m sorry that this machine cannot access the data online. In addition, we couldn’t provide you protocol of the serial communication for it is our confidentiality. According to company rule, we cannot provide our client with it. I really hope you can understand us. Sorry again.

        Thank you so much for your inquiry.I’m expecting the further news from you.

        Best regards!


  12. One more question,

    Does anybody tried to compare this lowcost machine with high-end research grade EEG machine.

    What is your impression? (the noise, the quality of the signals,..etc.)

    Thanks again

    1. Hi ringo-ring,

      I want to hear from you particularly about the quality of the signals. What is your impression. I heard that Emotiv is noisy a little bit, I read a journal article for developing a p300 bci application on iPhone. You are openEEG insider so you should know about this article.

      1. Hi Haider,

        I didn’t test the signals for the quality, but regarding the iPhone: if you’re going to make a mind-reading system for iPhone, then mobility is very important. This device is lightweight, but it has a book size and no wireless support, so I doubt it will fit for such application.

  13. “Concerning the KT88-1016, the machine can save the waveforms in EDF.”

    So data can be imported into MATLAB?

    Please advise, as I am about to make the purchase…

    1. Dear all,

      EDF is a standard format and can be imported into MATLAB.

      But I have this device – KT88-1016, and there is NO option for saving files in EDF format. Maybe such an option was added in new version of the software (which I doubt), or it is hidden so well it is hard to find.

      I would ask the support – please send a step-by-step instruction – how to save data in EDF format – before relying on it.

  14. Thanks a lot for the prompt replies everyone…

    So in all whats one’s best bet in terms of getting an EEG in the $800 range?

    I know of emotiv’s research SDK for $750, and the KT88 -1016/18 Digital EEG for around $800.

    Any other units?

  15. Is the included software with the kt88 all that bad? I mean I just want the data for research puposes, no Brain-Computer interface development

  16. I emailed contec and this is what they have replied:
    Considering that there is a converted, should one get their 16 electrodes model over the emotiv epoc?
    (I’ve heared that the epoc head set has its electrodes positioned too frontally)


    Thanks for your interests in our products, this is Lynn Lee from Contec medical systems, we received your message about our EEG machines, I have attached the specifications of our EEG series with this email for your reference, please check it. The following are the answers to your questions:

    1) Can I save EEG data in the EDF format in KT88 -1016/18 Digital EEG?
    Yes, we offer a software of EDF converter. The data can be converted to EDF format very conviniently.

    2) What are the formats that I can save the data in? (I would like to import it to matlab)
    The format of the raw data is our own format, but you can convert it to be EDF.

    1. I did see this before few days, may be we both tried the same keywords in google and youtube 😉

      I think Emotiv is quite impressive. The only problems with emotive:

      1. If you need readings from all the 10/20 electrodes placement, some of them is not accessible to emotiv.

      2. It may be noisy a little bit, I read an article about connecting emotiv to iphone and they described emotiv as a noisy EEG amplifier comparing with research grade EEG machine. But what should you expect with 14 channel+wireless+without prep nor gels EEG = ~300 USD

      Here is the link to the article:

      Click to access TR2010-666.pdf

      and besides I DO NOT expect a very good results from contec concerning the noise. It is a cheap CHINA made EEG afterall.

      All together according to my needs, I had the decision to order Emotiv and already did, but you have to take the decision according to your needs, and frankly it is not easy.

  17. Haider,

    Did you order the research SDK for $750?

    The consumer head set for $299 does not come with “Test Bench” – the software that allows reading raw EEG data and exporting it to MATLAB.

    Is there any way around this?


    1. Yes. I ordered the research SDK 750 USD type.

      They are out of stock now, and they will begin shipping around the beginning of June 2010.

      I did not try to explore if there is a way for getting around this, as my research has been funded by the university and do not want to take the risk.

      But AFAIK you can buy the 299$ headsets and if you did not get it working for you as you wish, you can upgrade easily.

      Once you pay, they will email you with a hardware emulator that you can play with.


  18. Thanks for your letter. the EDF converter is a seperate software, you will receive two CDs in the package. We have been sending this software to our clients for a long time, no negative feedback up to now. so it is very reliable.

  19. Last year I bought two Pendant EEG devices and am using these synchronously together as a 4 node system. They did prove sufficient for the intended BCI application that involved doing some ERP postanalysis/classification for P300 detection. Time-stamping incoming values from the device though was a problem against the stimulus presentation time (for this I used ccviewer). The manufacturer though gave me a specification of the data format that meant I could extract the ADC values.

    I know this device(KT88-1016) does not have a sync input, but I wonder could one of the channels be used for such. A lot of ERP research place a photodiode in the bottom corner of the screen and then display a small box that is black or white for each image/event to produce a detectable signal. This is then covered over so that the user does not see it. This signal can then be used to figure out when a stimulus was presented and to index the eeg data. This could probably be done with the contec device and a small circuit made to change the voltage on one of the channels from -30mv to 30mv(well within normal voltage range for eeg) to indicate the stimulus was presented and to provide reference times.

    I need to get a better eeg setup to further my research, but my budget is tight and I am considering getting a contec KT88-1016.
    I wonder how a system like this really does compare up against something like a g.tec 16 node system at 16k!

    On another note, and I seen this complaint similarly with the Dartmouth people that the position of the emotiv sensors are not really constructive towards P300 detection (they turned the device around though I think they said in the paper). For a lot of stimulus driven applications that rely on P3b detection, this activity is most notably differentiated around Pz/Cz sites at posterior regions of the head. I.e. the positions that the emotiv sensors do not touch.

    If anybody is curious of some work with the pendant eeg setup I’ve done have a look at: http://www.clarity-centre.org/files/eeg-esa-dcu-fr.pdf

    1. “I wonder how a system like this really does compare up against something like a g.tec 16 node system at 16k!”

      I was wondering that too!!

      If we can make a systemic and scientific well controlled test procedure, I can give you a detailed specs of our Lab.s ‘Biopac’ EEG system which is a well known US made Biopotential acquisition system, for 16 channels it costs about 20K USD.

      So we can compare my test with KT88-1016 EEG by another volunteer and know what is the quality of KT88-1016 comparing with standard commercial EEG systems.

      I am ready for Biopac, we need a good procedure and another KT88-1016 volunteer to test.

      I think if KT88-1016 prove it is not too far away from these standard EEG by this test, it will definitely clarify the vagueness of the decision to buy or not to buy KT88-1016.

    2. Hello Graham Healy,
      I know this is rather late but I am just hoping i could get the python driver you wrote for openvibe as I don’t write c++.
      I will really be glad if you can grant me my request as I need it for my research.

  20. Hi Haider,

    I think I would be interested in same. Truthfully I will likely buy a KT88-1016 anyway for general experimentation and hoping that some of the noise sources (whatever they may be) can be removed using tricks with general ICA algorithms (it works for eyeblinks and such, why not other noises?). Realistically I know I won’t be doing this for another 2 months though.

    When I get this I may try and gain access to a biosemi device… One protocol for testing could be to just directly link channel to channel using jumper cables and then to compare recorded values off both devices to see how much the KT deviates from the biosemi. Which means taking the biosemi as the gold standard….

    If a peice of test appuratus could be assembled as well. Something that produces a range of voltages from -50mv to +50mv then an assesment could be done to see whether the device accurately detects the voltage changes. Anybody any ideas on the best way to do this?

    At the back of “An Introduction to the Event-Related Potential Technique” by Steven j Luck there’s a circuit for testing a single channel with the reference and ground using some resistors… It’s more to test whether the noise level in the recording environment is suitable, but assuming you’re in an ideal environment, I think it would give insights too on the SNR prospects of the KT device….

    Any suggestions or comments to these ideas?

  21. Hi to everyone
    Thank you very much for your work, ringo-ringo.
    At the end I’ve bought the KT88-1016 at a very affordable price:
    600 USD + 140 USD (Italy Delivery)
    But I’m experiencing some problems:

    1)The software doesn’t run on Vista 64 bit, you have to install an XP OS on a WMWare Workstation. Actually I’m just using my laptop. Has anyone any idea on how to develope a Vista 64 driver for the device?

    2)I don’t have a ground connection in my house, that’s another reason why I’m using the battery powered laptop.

    3)The soft cap with the bridge electrodes are really nasty to wear. They don’t provide any reference electrode (e.g ear clamps)

    4)I can reach an enough quite condition but if I move the head a little bit everything gets jammed.

    The Salesman is very kind, she’s trying to fix the problem and she promised me that she will send me a clamp to get reference (clamp where?). I think that the main problem are the electrodes, they told me that I can leave them dry but I frankly think that I need to soak them in a physiological solution.
    Anyway is not simple to wear all the stuff properly, maybe I’ve to much hairs. Has anyone experienced another type of cap? Possibly easy to wear and with a good connection to the scalp.
    I’ve not tried yet the stimulator, because they sent me the wrong plug, if I’ll be able to test it, what kind of wave forms I should expect to see?
    Thanks a lot

    1. You could try getting some ten20 paste to assist with conduction.

      Using the stimulator you should see what is called an SSVEP potential present if you present a flash at speeds greater > 2.5 hz. I’ve done this with other eeg equipment at rates up to 60hz and could see a detectable response on an FFT (If I flash at 5 hz, i can see a big amplitude at 5hz of the EEG FFT). I’ve always used a crt monitor though for this and never an actual stimulator.

      1. Hi Graham
        Sorry for the long delay,
        but now finally I’ve found a not too much expensive precabled cap.
        They’re tin electrodes ending on a 25 pin connector with an adapter going to the 1,5 mm touch-proof connectors.
        I’ve to inject some conductive gel trough the electrodes holes, and put some ten20 on the ear clamps.
        As the vendor confirmed me, the amplifier has some sort of impedance map referred to the zero potential ear connections.
        The software that the company ships with the device is really awful.
        Do we are following some projects, e.g SourceForge, my intention is to develope a biofeedback application and to test my mind machines.
        Thank you for your help.

    2. hi AntoRed I saw your italian and I wonder to know if you resolved the problem with software of KT88 1016, that I bought too (I’m from Rome but i’m writing in english to let anybody understand 😉 I need a software that show me EEG data in bipolar reference while recording and I see that kt88-1016 can’t do that while kt88 2400 does… I didn’t understand it well when I bought. Whatever, I can try to modify Ringo-ring software but if you know what software can I use to do this I’ll be very happy, I can also pay for a software of that kind! I’m planning to buy kt88 2400 just for this reason.
      I think by the way this is a good EEG system for that price. I’ve done many EEG with this comparing with a much better quality system (micromed) disconnecting electrodes from micromed then connecting to KT88 and I saw that quality is very good, you see only a difference in signal because sampling is 100hz and in micromed I use 256hz but signal is not so noisy, really!

      1. Hi Gian Lorenzo
        Thanks to Ringo-Ring analysis many of us have developed
        their own software.
        Please have a look here:
        Actually I haven’t posted yet my version
        (C#) quite more simple and straightforward
        because I don’t have enough time to finalize the work
        I’m planning to put up a web server with a versioning tool, blog, and so forth …
        I think that once you get the raw data you can manipulate it like you prefer

        All my best

  22. Hi everybody,

    I have been working for the last month with BCI2000 and BioRadio150.
    I have performed some simple BCI applications, just to get started.
    I’m getting some results, but considering my raw EEG data, I should say that it is quite poor. I know I’m not using the best hardware device.

    Some month ago I already asked you for help… In my Lab we have this old synamps acquisition system (model 5083)… the problem is that we got it from Medical School, but they lost the Dongle and with it the license key for using Neuroscan Software.

    I asked around and it seems that without this dongle I wouldn’t be able to use this hardware… I really don’t know what to do… I would really appreciate some help…

    Thanks a lot

  23. I have my kt88-1016….

    ringo-ring – Have you any idea what those data values being return to the 0x08 are? I’ve also noticed the sampling rate of the device is 100hz as evidenced by the speed on the incoming packets. I wonder is there any way to change this. I won’t lie, I’m afraid of sending random bytes to the device in case I break something, but by any chance did you try sending byte values that you did not see as being part of the standard protocol?

  24. KT-88 users: Have you been able to achieve decent impedances using the headset and electrodes that are included with this system?

  25. Dear Sir or Madam:

    I read with great interest this comment on your blog and also the comments made by others in response. I am a “victim” of Contec Medical, as my institution purchased a 32-channel KT88-3200 system without fully realizing its limitations. I have been unable to locate a way to convert the files (they come in pairs) to another format which would be compatible with LORETA or .edf or even ASCII.
    I don’t know if you have been able to complete your reverse engineering of the file format for the version of the device that you possess (16 channel?), but if you have, would it be possible for our lab to obtain a copy of the source code you have produced. None of us here is an engineer or assembly language programmer, but I do have some programming experience (mostly with BASIC, but also a bit of C++) and I believe that I can probably continue the conversion to a 32 channel device if I have the code you have produced for the smaller system.
    I believe I can persuade my board of trustees to fund a moderate cost if necessary to pay for such source code and I am in great need of receiving the code right away. We have spent several months without being able to convert the signal to another file format.
    Can you help us? My lab is a tax-deductible, nonprofit organization without a lot of money to spend but we can manage a reasonable cost.
    Also, do you happen to know what the sample rate of your device is? is the figure you have based on a “per-channel” rate, or is the sample rate the total rate for the entire system?
    I hope you can answer me right away. Please respond to my direct email, ‘ansboss@yahoo.com’.

    Kindest Regards,
    Jim King/Research Associate
    INACS, Inc. (Institute for Neuroscience and Consciousness Studies, Inc.)

    1. Dear Sir or Madam,

      I’m very sorry to learn your lab is buying EEG devices without checking if these devices are good fit for your specific needs. I’m also very sorry to learn your lab is so poor that you have to buy an outdated clinical recording system instead of modern research equipment.
      For a person who makes brain-machine interfaces for own pleasure, a cheap device like Contec would be a best choice. But laboratories usually have much more money, and they buy much more expensive (20 to 60 times as expensive as Contec) equipment for their professional needs.
      Anyway, if you need the source code, I will post it to Rapidshare again so you can download it. It is written in C++, but I hope you can hire an undergraduate student who will convert it to BASIC for you for a couple of chocolates.

      Thank you for your interest,

    2. Jim,

      I’ve just purchased the KT-88 16 channels and I use it with sLORETA. It works great and I am a very happy Contec customer! I don’t understand some comments on this board, the software and hardware are just ok and they simply do what they are supposed to do.

      Regarding the conversion, you have first to export the EEG in EDF format and then to ASCII for using it with Loreta.

      1. In KT88: use “Case Mgt – Conversion of data” – you get your EDF file
      2. Use the freeware edf2ascii.exe (http://www.teuniz.net/edf2ascii/) to convert the EDF to ascii. You now get a xxx_data.txt file (among others)
      3. Run Excel and open the xxx_data.txt file, specifying a comma separated format
      4. Delete the header line, the 1st and the 2 last columns (ECG) to just keep you EEG channels (16 or 32). Save the result: you have an sLORETA EEG file…

      With a little practice, this procedure takes no more than 1 minute.

      Of course you must also prepare an electrode list file for sLORETA with the list of channels you use in the correct order, but that’s normal sLOREAT stuff.

      Tell me if you have any problem. I’m also interested in your results


      1. Dear Phillippe
        I have the KT88 24 channel system and have been getting good results on straight recordings, but could use some help in extending it to other software – like sLoreta. I have used the edf to ascii converter found at http://www.edfplus.info/downloads/downloads.html and obtain a txt file and an ascii file. As you suggest I have opened both with Excel. The txt file seems to be just a descriptive header of the file name. The ascii file is a large block of comma separated numbers. There are 24 rows and the first 19 will be the eeg data, so presumably the rest (eog, emg etc) that I don’t use I should delete? But I’m not sure what is the header line?
        My email address is napaul@tiscali.co.uk if you have time to exchange ideas. Thanks Paul

      2. Paul,

        I had MANY back-and-forth exchanges with a Contec rep about this before getting the basic info–which really should be included in the manual but is not–that’s necessary to correctly export Contec data to sLORETA.

        Here’s the gist:

        1. When exporting to EDF, the referencing and channel order will ALWAYS be the same as the referencing and channel order shown in montage #1 in the Contec software. Even if you select a different montage when recording, the EDF data will ALWAYS have the default referencing and channel order. When you select a non-default montage in the Contec software, the recording is still conducted using the default montage. The software is re-referencing the data, and displaying the data based this re-referencing, but the data that are saved and exported to EDF still use the default montage and default channel order.

        2. Unfortunately, the default montage is totally inappropriate for sLORETA analyses. For e/sLORETA, you must use either linked (or averaged) ear/mastoid referencing or average referencing (the former is better, in my opinion, when the montage is less than ~64 electrodes, but there is debate about this).

        3. So, before you can import into sLORETA, it’s essential to re-reference, keeping in mind that the raw EDF files use Contec’s default referencing.

        4. In order to export to text files, I agree that the EDF converter can work if you have a small number of files. However, if you have a large number of files, it may be easier to use EEGLab/MatLab, which will allow you to automate the process of exporting to text format, so you don’t need to repeat the same process many times manually. I’d recommend using EEGLab for the conversion.


  26. Hi,

    Does anybody know if it’s possible to get the Contec acquisition software to accept TTL signals, and if so, can these TTL signals create markers in the EEG recording?

  27. I’ve done this using a resitor ladder network to step down the votlage into microvolts/millivolts. I done this so that I could record reaction times in an experiment (using a push switch).

    Something similar to this:

    I was applying a voltage of +/- 1ma to the 3.3v channel of the device.

    Hope this helps…..

    1. And do you know what the specific value was that was sent to the Contec EEG via TTL? My software can send values between 0 and 255 via TTL to an external hardware port.

  28. I was not using software to generate the values sent to the device over a com port or such, I am talking about the raw voltages I applied to the device through a resistor ladder network powered by a battery. I applied a voltage of 1mv to the 3.3v channel of the device and I had a clear signal present which I could use to offset eeg repsonses to for ERP analysis.

    I would not advise connecting up a serial/parallel port to the device to output a voltage without knowing what you are doing as you might short/damage the device. You’ll need to use voltage dividers to step down the output voltage to the normal detection range of the device.

    I didn’t take the risk of applying a voltage to any of the channels outside of what would normally be expected to be applied to it.
    I hope that helps…

  29. Be careful. Do not ever apply any electrical source from a device not isolated from the main’s power. It can be lethal.

    Biomedical instruments, especially what is connected to your head by low impedance should be isolated galvanicaly. Actually, medical grade instruments have around 4000 Volts isolation barrier.

    If you want to input something you have to use either Battery or Laptop not connected to its power’s main (through it s battery only) or a signal through galvanic (magnetic or optical) isolation.

  30. In the Contec .eeg files, does anybody know how events are represented? For example, if I click “open eyes” or “closed eyes” during a recording, how is this represented in the .eeg file? More importantly, how is this represented in the ASCI file you get after converting the .eeg to .edf, and then converting from edf to asci? Any help would be greatly appreciated.

    1. I don’t know the .eeg format (did anyone explore it?) – but for edf (and its ASCII transcript) I can say for sure that you won’t find any event in it as it only contains EEG values.
      PS: if anyone is interested, I’ve written a program converting .edf to sLORETA compatible ascii file in a single pass.

      1. Dear Phillipe,

        I’m also using the KT88 for sLORETA, and I’ve had some success with it.

        If you’d be willing to share the program you wrote for conversion of EDF –> sLORETA, I’d be grateful.

        Also, I’m running into a problem that Contec cannot seem to answer. Maybe you happen to have an answer.

        I’m using the 2400 model. For this model, channels 17-19 are automatically assigned to Fz, Cz, and Pz. Contec told me that Fz is automatically referenced to A1, while Cz and Pz are referenced to A2, regardless of what settings you choose. However, when I don’t collect any data for A1 or A2 (ie, the mastoids), I still get data for Fz, Cz, and Pz electrodes. Do you happen to know what these midline electrodes are being referenced to? If they’re supposed to be referenced to A1/A2, but A1/A2 data are not being collected, then what are they being referenced to?

        I’d be grateful for any advice you can provide.

    1. I’ve also posted this on the yahoo group, but it may be useful to others here:

      The Contec electrodes can in fact work very well. They are straightforward bridge electrodes held in place by the rubber “net”. This kind of setup was widely used up to a few years ago. The electrodes cannot be used dry however, and that is probably why many people seem to have problems. If used dry the signals will be overwhelmed
      by movement artifacts and static. All you need to do is dip each electrode into a weak saline solution (I use contact lens solution), give it a shake, and fit the electrode under the rubber net. Then fit the other electrodes to build up the 10/20 set.
      The saline activates the silver to give a silver/silver chloride conductive connection through to the skin. I have done many recordings and get consistent good results no matter how much hair someone has. If one channel looks to be not
      working, simply wiggle the electrode through the hair until the connection comes good. They continue working fine for up to an hour before needing moistening again.
      It takes ~15 minutes to get everything in place, which is the downside compared to a premade Cap, but I prefer it to using gels which subjects then have to wash out.

    2. Thanks for the group!

      The Yahoo! groups security features are simply annoying – but still it’s kinda convenient for posting files etc..

    1. Hi ringo-ring,
      I know this is rather late but I am just hoping i could get the python driver you talked about.
      I will really be glad as I need it for my research.

  31. Hi everyone! I posted a driver of the KT88-1016 for the Mac OS (http://tech.groups.yahoo.com/group/conteckt88/message/22).

    For some reason, my eeg device does not send anything to the serial port (I’ve tested in Windows and Mac OS). Does it need a command to start sending data? I don’t have the software that comes with the KT88-1016 to test it. Alexandra, is it the way this eeg device works?

    Thanks in advance,

    1. Hi
      You are right, you just need to download all the stuff from the SiliconLabs site.
      I’ve made it run on Vista 64 & Win 7.
      Of course you have to disable driver signature.
      Emerson, maybe your problem is just about the VID/PID.

    2. Hi Emerson,
      Any chance of modifying the driver for the KT88 24 channel machine (for windows)? i.e. 19 channels eeg + 5 other for ecg, eog etc.

    1. Thanks so much for posting the OpenViBE driver. Would this driver require modifications in order to use it with KT88 systems that have different numbers of channels?

  32. Hi!
    Dear hobby colleagues, as on your opinion, is it possible to connect 2 KT88-3200 amplifiers to make 64-channel eeg device? This hardware really is cheapest on market.

      1. So easy? Only need to make a program to calculate all data from 2 devices? And what about possible electrical noises & other hardware problems? Can one device make influence on another?

      2. I understand your concern, but I don’t see the reason it should – 32 electrodes on each device don’t influence each other, so why would they bother about 32 sensors from another amplifier. Of course you could connect e.g. the same reference electrode to both amplifiers (which is not necessary, since you can use separate references for each hemisphere), but even then I don’t think you’d get into trouble.

        I haven’t heard of somebody using several KT88 in parallel, but it usual mode of operation for g.tec EEG amplifiers.

        Anyway… you’d get a better advice on hardware/electrical engineering issues related to EEG amplifiers there – https://lists.sourceforge.net/lists/listinfo/openeeg-list

  33. Hi! I’m seeing you guys have developed quite alot of software for KT88-1016. I’m planning on buying it. So, you can now use it with BioExplorer and sLORETA? Am I understanding it correctly?

  34. I have some used working SynAmps equipment and I was wondering if you would be interested in it. I have:
    A SynAmps Model 5083 Amplifier
    A Synamps 32 Channel 150 Gain Unit Model 5092C
    Stim Audio System Part Number 1105
    Stim System Switch Response Pad Part Number 1141
    I have 2 new 32 channel caps

    If interested please call me at 414-388-6981 or e-mail me at michelsbrian@ymail.com with an offer, I have no use for this working equipment.


    1. Hi Brian,

      I am interested in purchasing EEG equipment for educational research purposes. Is this equipment for sale?


  35. Has anyone got drivers that will allow the KT88-1016 to be used with openvibe/brainbay/bioexplorer I have Matlab but currently not so good at programming but tips from anyone who knows of any appropriate software for collecting visualising and anayslising EEG would be most welcome.

  36. Hello everybody
    In my Lab we have a synamps acquisition system -model 5083… the problem is that we got it from Cambridge University, but they lost the SCAN drivers diskettes. Therefore, the acquire 4.2 software does not recognize the amplifiers.
    I would really appreciate some help,
    Thanks in advance for you invaluable cooperation

  37. Hello everybody. I bought a contec eeg 32 channels, but I think it is a fraud, the eeg is an old design , the electrodes don`t work, it is not easy to work with that machine..I feel terribly dissapointed . I can`t recommend that product to anyone..

    1. Hi
      For me, the only good reason to buy it
      it’s because is cheap
      and of course, because Ringo showed us how to hack it

  38. i have downloaded the drivers for Openvibe, but not sure what i need to do with them for them to be recognised by the software…Do the .gui and the .h .cpp files etc. need to go into a particular directory?

    Also, has anyone managed to develop KT88-16 drivers for bioexplorer? Would anyone be interested in producing ones for this or brainbay?

    I would appreciate any help.

  39. Hy,
    do you think that contec eeg could be useful to develop a fatigue/drowsiness detection project?

Comments are closed.