ThinkPulse active electrodes, Q&A

dmacd10dmacd10 SF Bay Area
edited October 2022 in Electrodes

Hi there -

I've recently assembled an ultracortex with the thinkpulse active electrodes. As far as I can tell, I have wired them correctly according to the instructional video. Ear clips are connected to SRB2 and BIAS. The ear clips themselves seem good with an ohmeter, showing ~3ohms at most. I am definitely receiving signal from the thinkpulse electrodes, but if the ear clips are connected to the ears, the signals are all railed. If they aren't, the signal values are huge (100s- to 1000s of uV), noisy, and do not seem to reflect brain waves (not surprising, but demonstrates that the signal wires are connected). The normal spiky electrodes that come with the ultracortex seem to work ok and report reasonable values; I'm using a cyton board which has been working fine with a wet electrode EEG cap.

I feel l'm missing something here....the documentation suggests that the thinkpulse electrodes should be drop-in replacements and have similar signal ranges. I've connected the power supplies for the electrodes to AVDD and AVSS as instructed in the video via the power supply header board, so I'm not really sure what I'm doing wrong. I've tried fiddling with the channel gain settings in the GUI but that doesnt help with railing. Is there some other wiring or ref/bias connection detail I'm not seeing?




  • wjcroftwjcroft Mount Shasta, CA

    Daniel, hi.

    Have you tried emailing directly with the lab in Brooklyn, support at They should have the ThinkPulse actives there available for testing.

    Do the ThinkPulse instructions mention any adjustments of the channel gain settings in the GUI? If the 'huge' values you are seeing are "(100s- to 1000s of uV)", it seems like changing from the default scale of x24 would calm that down.

    Lastly, have you tried reaching out to Conscious Labs directly?

    Whatever you hear back in terms of solutions, please post again here on this thread. Thanks again for being one of the first customers for this innovative product.

    Regards, William

  • dmacd10dmacd10 SF Bay Area

    Thanks for the speedy replay William!
    I had no idea there was a support email, thanks, I've pinged them.
    Unfortunately, turning down the gain to 1x on all channels doesn't help.

  • wjcroftwjcroft Mount Shasta, CA

    Also fill out the form on the Conscious Labs website. They are the experts.

  • wjcroftwjcroft Mount Shasta, CA

    Please update this thread with the solution that you find.

  • wjcroftwjcroft Mount Shasta, CA

    I believe that @julienConscious recently joined the Forum, and may comment here. Thanks Julian for any tips.


  • Hi all,
    thanks William for your suggestion: Daniel contacted us indeed using the form on our website, I replied with a few basic tests. High gain is probably the reason why it's railed: when using ThinkPulse active sensors with original ear clips for bias/ref, gain should typically be set to X8 or sometimes X12 but the default X24 is often too high and causes saturation due to the higher offset typical of non metal dry sensors. Daniel mentioned trying to set the Gain to 1 which should definitely solve the problem: however, sometimes the hardware settings are not properly registered especially when you switch gain a little too fast while streaming (older versions of the GUI). I'm waiting for Daniel's feedback. We'll let you guys know how it goes and how to solve the issue.

  • wjcroftwjcroft Mount Shasta, CA

    ...gain should typically be set to X8 or sometimes X12...

    Julian, thanks much. Looking forward to Daniel's followup. Perhaps he was trying to change the gain while streaming. When instead the gain needs to be changed before the stream is started.

    Can you also comment on how the gain relates to accurate calibration of the actual microvolts measured? Your comment above about x8 or x12 being possible, would seem to imply two different microvolt output readings. How can one get the best gain setting that corresponds to exact microvolt levels? Would it make sense to simultaneously measure another electrode (non active), nearby an active site, with the passive electrode set at the default x24 gain?

    Best regards, William

  • dmacd10dmacd10 SF Bay Area

    Thanks for your help @julienConscious. The gain setting was indeed not being applied as I expected. I'm running GUI v5.0.2. With lower gain values set before any streaming starts, I get signal that aren't railed. The signals are still much noisier and larger amplitude, even with gain at 1x, than I'm used to looking at with the eeg cap wet electrodes but I'm hoping that is due to the difference in reference points. I would also like to know how I should be computing absolute uV values, as William alluded to.

    A couple of additional questions I'm not clear on -

    How much pressure should I need to apply to the active electrodes for good signal? I've been testing with very high (almost painful) pressure so far just to ensure contact.

    How much hair should I expect these to be able to deal with? My hair is so thick in some places, even with a lot of applied pressure, the soft tips will not reach my scalp. (I am getting signal in this situation, but cant tell how good it is yet.)

    Thanks again! Looking forward to many awesome experiments with these; if they prove out, I'll be buying a whole pile of them :)


  • wjcroftwjcroft Mount Shasta, CA
    edited February 2021

    Daniel, thanks for your update.

    re: comb electrodes and hair

    Have you tried gently moving the headset back and forth / left and right on your head (or even 'circular' motion), to enable the comb prongs to dig down better closer to the scalp? 'Pressure' alone (as you mention), may not be the key, but rather pushing the hair aside to reach down to the scalp surface.

    re: gain influence on actual microvolts readout

    I may have misspoken on my previous comment. My understanding is that the gain is set into ADS1299 front end PGA programmable gain amplifier. But that the actual microvolts readout reported by the Cyton, takes the gain into account when reporting microvolts. So even though the gain may be reduced, the ADC 24 bit 'units' to uV conversion, contains gain as a component of the equation.

    So what the gain setting actually does, is reduce the lower bound 'range' of what voltage readings are possible. So at lower gains, voltage into higher upper ranges of millivolts are actually possible. While somewhat reducing the low order bits. This is not an issue generally since these are 24 bit samples and at the default x24 gain, the low order 5 or 6 bits of the incoming 24 bit samples are just pure noise. (0.02235 microVolts per count / low order bit.)

    Regards, William

  • edited February 2021

    Hi all,

    @wjcroft As you said, if you do the experiment that you suggest with an extra passive electrode, there should not be any difference.

    There is no voltage amplification with the ThinkPulse active sensors: the active circuit only boosts the output current to reduce sensitivity to external noise (which is also limited thanks to shielded cables). The reading is therefore similar with ThinkPulse compared to any passive electrodes.

    The gain that one can set for the Cyton board via the GUI is a parameter to adjust to find a good trade-off between input voltage range and resolution and is indeed part of the equation to convert ADU (arbitrary units from the Analogic Front End) to uV. Even with goldcups and gel, or Ag/AgCl electrodes, it might happen that the signal is railed and that the gain of this particular channel should be reduced. According to my understanding, this gain is just a magnification of the signal to increase resolution (which is the minimal difference in microVolts that can be detected between 2 samples) but it should not change the reading of the actual voltage in microvolts. With gain 1 or 24, the amplitude of the signal should be the same, just like when you measure the same voltage on a multimeter with 2 different ranges. The TI ADS1299 used on the Cyton has an input voltage range of +/-4.5V I believe so at gain 1, railing happens when the signal is over 4.5V (pretty unusual for a biopotential measurement!) but railing threshold drops to 187,500 microV when gain is set to x24. A DC offset of several hundreds of mV can definitely happen hence the need to reduce the gain sometimes, with no impact on the reading. So there is no need for additional calibration with the ThinkPulse, they behave just like any other passive electrode.

    @dmacd10 Glad you solved the railing issue ! As discussed above, you can read the values straight away, whatever gain you set, in the GUI display or in the text file. Regarding your questions:

    • Pressure: as William said, there is no need for great pressure, but rather good contact. Actually, if you crush the pins you might get some noisy signal, it should always feel comfortable and the pressure should be balanced between all the channels. I would also recommend chin straps to maintain the frame on your head so that it does not move up, comfort nodes might help too.
    • Hair: TP pins length accommodates most hair types but not all. Surprisingly, long hair are usually not an issue as you can easily pull them aside. The hair thickness could indeed be the limiting parameter. As William mentioned, a slightly combing movement of the headset will make the pins reach your scalp more easily.

    As for any type of electrodes, a pretty straight forward way to make sure you have good signal is first to check signal amplitude is definitely under 50uV. Then you can do quick EMG tests: on the pre-frontal channels (usually 1 and 2 if you followed the numbering of the video), make sure you can detect eye blinking clearly, and another test for all the channels, make sure jaw clenching generates a high frequencies and significantly higher amplitude artefact. Next test is Alpha detection when you close your eyes (better be 2 people, or record your session).

    Hope this helps.


  • wjcroftwjcroft Mount Shasta, CA

    Julien, thanks for your detailed comprehensive answers.

    Daniel, since Julien pointed out that a chin strap on the Ultracortex could normalize the pressure seen by all sensors -- here is an excellent material for such strap(s). It's Velcro One-Wrap. Has hooks on one side and loops on the other. Loops side is very soft and will fit under chin. It adheres to itself, so after looping over the frame on both sides, you can pull until tight, then clamp at the appropriate tension. (Giving a half twist before fastening.)


  • dmacd10dmacd10 SF Bay Area

    Thanks for the additional tips. I have the sensors working, sort of, but I've run in to the next roadblock: my application uses brainflow, which doesn't seem to allow me to set the gains properly and my signals are again railed. I haven't dived in to the brainflow source yet, but is there a reasonable workaround for this? (Running the OpenBCI gui and serving the data over the network to my app isn't a viable option due to high cpu usage and frequent hiccups and dropouts.)

    Regarding the ThinkPulse electrodes themselves, some additional observations I'll mention here:

    • the mechanical design limits the free-travel to about 3mm, about half of what the normal passive electrodes get. This means that adjustment to my skull shape is far more difficult, and in many cases I have to allow the electrode bulb to rest outside of the octobolts for extra distance. This obviously isn't optimal and makes setup long, fiddly, and likely unsuitable for regular use. Additional parts and/or modified octobolts seem necessary to fix this.
    • it takes considerable time for the electrode readings to "settle". I imagine this is because it takes time for the little flexible nibs to nested into the hair and make good contact? During this time the reported amplitudes seem to gradually stabilize from ~50uV amplitudes down to 5uV or so. The process isn't very predictable though, so it is again hard for a beginner to know when to accept the readings as good or stable.
  • wjcroftwjcroft Mount Shasta, CA

    Daniel, hi.

    You can use the Brainflow function, config_board() to send the appropriate gain change commands,

    I assume with lower gains, the readings would 'settle' faster.

    Hopefully Julien will comment on some of your other questions. I do believe I've seen some alternate octabolts listed. I am not sure the exact thread mentioning this. You may also send a message to Aaron @ThreeForm, the 3D printing designer.

    Regards, William

  • wjcroftwjcroft Mount Shasta, CA
    edited February 2021

    One other possibility, is to get a larger frame. These are printed in SLS nylon, so are SUPER sturdy.

    Longer octabolt,

  • Hi Daniel,
    regarding your observations:

    • Mechanical design: We designed the ThinkPulse so it does not change the geometry of the original set-up. Both the [Octanut + normal passive electrode] and the [Octanut + ThinkPulse] are 42mm long (top to pin). The course is indeed shorter but it is not really needed since the TP are flexible. Thanks William for the links, I did not know there were some modified Octabolts available, that could be useful anyways. What we usually do to install the UltraCortex is unscrew totally (but they're still in the UltraCortex) all the Octabolts, put the frame on top on your head and push down gently with one hand on the top of your head, with your other hand you start screwing alternatively pre-frontal and occipital sensors, so that they are equally screwed in. It's time then to adjust the comfort node on the side as well, still pressing down the whole frame. You should then have the UltraCortex adjusted low on your head, if you have chin straps you can secure this position even better. Then with both hands you can start screwing the parietal, and finally the central (depending on the shape of your head), and the course should be long enough to reach your head. Please don't get the ball joint out, it won't work properly.
    • time to settle: the signal looks more stable after some while. My understanding is that at first the raw signal is increasing or decreasing (charge accumulation) until it reaches a plateau and becomes stable. Most EEG analysis are based on the analysis of the spectrum and this slow continuous increase or decrease only affects super slow frequencies that are usually filtered out anyway for analysis.
  • dmacd10dmacd10 SF Bay Area

    Hi gents - Sorry for the long delay in replying to this. My immediate goal with OpenBCI equipment was to aide in healing a concussion and the thinkpulse issues proved too time-consuming to resolve vs just using wet electrodes.

    @William- The config_board method was what I needed to send gain settings. Thanks! Unfortunately, some packages such as BrainTrainer don't have a great mechanism for this and I couldn't use the thinkpulse with it.

    @Julien - Using the method you described, I was able to get most of the bolts into a reasonable range except for O1 and O2, which will need longer bolts. My head is right at the border between frame sizes so I'm not sure a smaller frame would work either.

    For posterity, I had also corresponded with Sam and openbci:

    hi Daniel,

    Sorry for the delay. I looked over the forum. William and Julien have suggested excellent tips, and I've summarized the ones that should help you see immediate improvements, as well as suggested a few of my own:

    1) Go into GUI hardware settings, toggle the gain to 8 (or lower)
    2) In the same hardware settings, turn SRB1 and BIAS 'OFF' for all channels. Keep SRB2 'ON'
    3) Disconnect the BIAS earclip electrode
    4) Check if the ThinkPulse power supply board has solder connections between the two far right + pins. If not you may need to do a quick solder patch. Let us know, thanks.



    I tried all of this but the signals still didn't seem right, and I didn't want to sink more time in to it.

    I've recovered somewhat and am building my own NF R&D platform in Unity3D which will allow me more flexibility. I'll circle back when I have bandwidth again to play with these electrodes. Thanks again for all the help.


  • algmuralgmur UK
    edited May 2021

    @wjcroft said:
    Daniel, hi.
    You can use the Brainflow function, config_board() to send the appropriate gain change commands,
    Regards, William

    Hi William,
    What is the precise string that needs to be sent with Brainflow's config_board to set the gain to x8 instead of x24? I'm running into exactly the same issues previously mentioned in this thread and I can reset the gain in the GUI via Hardware Settings but I'm not sure exactly what to send in code when working more directly with the board. I would guess, looking at some of the OpenBCI documents, that it is board.config_board('GAIN_SET 4') but there are lots of warnings for this function saying not to use it unless you're sure of the correct call to use (which I am not) and I can't see an example anywhere for this specific issue.


  • Andrey in the OpenBrainTalk Slack channel helped me out and suggested copying the console output from the GUI when sending the change of gain settings manually there. The text file confirmed the commands needed are:

    ||             INITIALIZING SYSTEM             ||
    Channel count set to 16
    InitSettings: Saving Default Settings to file!
    SessionSettings: 3 active widgets saved!
    [SUCCESS]: Session started!
    HardwareSettings Toggle: true
    Sending config string to board: x1040110X
    Sending config string to board: x2040110X
    Sending config string to board: x3040110X
    Sending config string to board: x4040110X
    Sending config string to board: x5040110X
    Sending config string to board: x6040110X
    Sending config string to board: x7040110X
    Sending config string to board: x8040110X
    Sending config string to board: xQ040110X
    Sending config string to board: xW040110X
    Sending config string to board: xE040110X
    Sending config string to board: xR040110X
    Sending config string to board: xT040110X
    Sending config string to board: xY040110X
    Sending config string to board: xU040110X
    Sending config string to board: xI040110X
    [DEFAULT]: Hardware Settings sent to board!
    ConsoleLog: Opening console log as text file!
  • wjcroftwjcroft Mount Shasta, CA

    Algmur, hi. The complete set of SDK commands is listed on this page,


  • yundayunda Singapore
    edited June 2021

    Hi, I’m wondering if anyone could share their impedance values for the ThinkPulse dry active electrodes with the cyton and daisy 16 channel board on the ultracortex mark IV?

    I used to use the dry comb Ag/AgCl electrodes but the impedance on those were extremely high and wanted to check how much better would the ThinkPulse electrodes be.

    I’m planning to use it for research so anywhere close to 5kohm will be good.

  • wjcroftwjcroft Mount Shasta, CA
    edited June 2021

    @yunda, hi.

    I merged your new thread on ThinkPulse impedance into this existing ThinkPulse Q&A thread. The ThinkPulse inventor @JulienConscious is on this thread, as well as other users with experience. My impression is that impedance is not of consequence with ThinkPulse, since the pre-amplifier is directly behind the comb. And regarding the passive dry electrodes used with Ultracortex, see the related thread here for typical impedance values.

    Regards, William

  • edited June 2021

    Hi Yunda, Hi all,

    As William mentioned, ThinkPulse are active sensors. It means that right behind the electrode, there is a local active circuit which is a voltage follower. When you want to measure electrode-to-skin impedance, you typically connect two similar electrodes to an oscillating current source and calculate the impedance based on the resulting measured voltage. This is not adapted to active sensors since because of the buffer they are not meant to be be used to inject a current from the outside...

    However, to give you an idea of the intrinsic impedance of the polymer electrode, the measurements we made on passive ThinkPulse (the active circuit was replaced by a simple conductive board) mounted on the UltraCortex Mark IV are around 50kOhms for flat electrode on the forehead and 200kOhms for spiky electrodes through hair (occipital location). Impedances tend to decrease with time at the beginning. Note that if ThinkPulse are not powered, they simply do not work and can not be used as passive electrodes.

    The typical recommended values for clinical applications are around 10kOhms (sometimes even 5kOhms): these are values that can be obtained using metal electrodes with gel after careful skin preparation (cleaning, abrasion, sometimes shaving).

    From my understanding, these recommendations are mainly based on the typical input impedance of EEG amp which can sometimes be quite low (around 10MOhms). OpenBCI Cyton uses TI ADS 1299 which has a very high input impedance of 1GOhms if I'm correct. An important parameter to get a good reading and limit noise is actually the ratio between the electrode-to-skin impedance and the amp input impedance. With high input impedance around 1GOhms, in my experience, you can achieve great EEG signal even with electrodes of "high" balanced impedances of a couple of hundreds of kOhms.

    Best, Julien

  • wjcroftwjcroft Mount Shasta, CA

    Julien, thanks much for your comment on actives and impedance issues.

    For those interested in a discussion (with references and figures) regarding how the 1Gohm ADS1299 input impedance enables higher skin impedance, see this comment:

    That comment is part of the previously mentioned thread that discusses nominal / expected skin impedances with the Ultracortex:

    Regards, William

  • I have a very simple question: is it possible to use Thinkpulse electrodes with Cyton and WiFi Shield. WiFi Shield is located on the top of Cyton. Looks like you can place Thinkpulse connector on the top of WiFi Shield to get voltage supply to electrodes. However I am not sure that power from Cython + WiFi Shield will be enough for Thinkpulse electrodes. Maybe +2.5v/-2.5v from WiFi Shield will not be enough because WiFi Shield and Cyton take big part of energy. I cannot find instructions on website how to use combination Cyton + Thinkpulse + WiFi Shield together. I afraid to buy expensive Thinkpulse electrodes if it will not work in such configuration. Thanks.

  • wjcroftwjcroft Mount Shasta, CA

    Hi @alexshar, I added your new ThinkPulse question (Wifi Shield compatibility), to this existing ThinkPulse Q&A thread. Where it will be seen by the ThinkPulse developer, Julien.

    @JulienConscious, hi. Can you look at Alex's question in the comment above? He is asking if ThinkPulse can be used with a setup that has the Wifi Shield. This Shield board mounts on top of the Cyton, and passes through all signals. Thus it is even compatible with the Daisy add on. Here is an old snapshot of the Wifi Shield page. It is temporarily not in the Shop, awaiting some minor hardware mods. Apparently Alex already purchased previously.

    Regards, William

  • Thanks wjcroft, for sharing my question to other threads.

  • Hi Alex, William,
    yes it is definitely possible to use ThinkPulse electrodes with Cyton + Wifishield. We have successfully tested that configuration and even Cyton+Daisy+Wifishield (with the pack or a LiPo battery). Each TP electrode uses under 1mA, this is almost negligible compared to the current needed for the Wifi module. And as you mentionned, the Wifishield offers the same +/-2.5V connectors as the Cyton so the ThinkPulse power supply board can be plugged in the same way. Best,

  • Hi Julian.
    Thank you very much for answer and testing this configuration! Theoretically I expected this answer, but practically sometimes there are hidden problems. Your testing shows there are no problems here. Now I can order ThinkPulse electrodes and try them for my experiments. Thanks a lot.

  • Hi @wjcroft,

    I was looking to buy the Thinkpulse active electrodes for my Mark IV Headset. While looking at the documentation, I read that the BIAS should be turned off in the GUI. Does that mean that there will be no ground/bias electrode? What about the common mode noise? Or the differential amps on each channel?


Sign In or Register to comment.