uECG - a very small wearable ECG

It's cheap, doesn't use a specialized heart rate AFE and can blink LEDs with your pulse :)

Similar projects worth following
Starting from
ultimaterobotics has 0 orders / 0 reviews
Ships from Ukraine
Tired of commercial overencumbered projects using expensive AFEs, we built a simple, cheap ECG wearable. It streams realtime data and works with phones and PCs. We ran tests on it, blinked LEDs and measured stress. In June, at Makerfaire Prague a lot of people successfully tested it and we ran a crowdfunding campaign to produce first batch! The campaign is over now, and we are waiting for funds to be released to start production. As soon as we produce the first batch, we'll have stock on tindie and can send to everyone on the waitlist (hopefully end of October). Tindie page:
Status: 1) waiting for Indiegogo funds to start production and have stock on tindie :)
2) manually assembling uECGs to take to Makerfaire Rome (paste with stencil, twitch hand, clean everything with alcohol, start over)
3) redesigning 3D printed case in FreeCAD

ECG is a simple signal, but few ECG devices can provide raw data and show ECG signal while running. Most are also commercial medical devices - over-engineered, bulky and expensive. Having worked with biosignals, particularly ECG, on several commercial projects, we decided to create our own - simple, efficient, and open source. 

Thus, uECG was born. It can stream realtime ECG signal via BLE or transmit to a desktop PC, using a simple (nRF52832-based) USB receiver that translates radio signal into virtual COM port data stream. 

Our goal was a low cost, low weight, high signal quality open hardware wearable that anyone could use. uECG is intended for makers, students or citizen scientists who want to use biosignals to do practical research - or just create things. It can also be useful as a diagnostic device for medical professionals in remote areas, without access to medical technology. And it’s open hardware - so anyone can build their own, or modify an existing one.

uECG has snap connectors that accept any single-use wet electrodes, as well as HRM straps or reusable electrodes. In a 3D-printed case, it is simple and can be worn for long periods of time. It’s relatively low-powered - enough for 9 hours of battery life at 100 mAh - so weight is also low, about 9 grams.

The system is based on MCP3911 front-end - originally developed for energy metering, but it performs nicely in our case too. It also has an AD8606 buffer precision opamp, an nRF52832 SoC for Bluetooth/RF and signal processing, and a VOS617B-7T optocouple to connect other devices (LEDs are one example, everyone loves them). Without LED indication, device uses less than 10mA even during BLE transmission at 125 Hz. For PC transmission, our custom radio protocol is used at 1 kHz.

The firmware uses our own filtering algorithm to filter out mains noise (both 50 Hz and 60 Hz, without distorting high frequency components of ECG), resulting in a clear, readable ECG graph you can use for anything. The signal quality of this setup is quite high - but there will be more on that in logs.

Here's what you need to build uECG (base station is for streaming to PC, not necessary for smartphone):

PCB files:
uECG v4 PCB design
uECG v4 gerbers
Base station PCB design
Base station gerbers 

uECG firmware 
Base station firmware
Firmware build and upload instruction

Android app and desktop tool:
Android app source code
Android app compiled
PC tool source code

FreeCAD model
Top part for printing
Bottom part for printing

KiCAD files for receiver base - ultimate_base rev2.6 (produced in November 2019 - first batch production run). With fiducials, pogo pin pads.

Zip Archive - 268.87 kB - 12/06/2019 at 18:50



Centroid file for receiver base - ultimate_base rev2.6 (produced in November 2019 - first batch production run)

pos - 2.62 kB - 12/06/2019 at 18:50



Receiver base PCB leds polarity indication (for manual assembly/useful for factory check)

JPEG Image - 190.93 kB - 12/06/2019 at 18:50



BOM for receiver base - ultimate_base rev2.6 (ready for production, complete with comments and Chinese supplier links, produced in November 2019 - first batch production run).

sheet - 11.78 kB - 12/06/2019 at 18:50


Gerbers for receiver base - ultimate_base rev2.6 (ready for production, produced in November 2019 - first batch production run)

Zip Archive - 94.17 kB - 12/06/2019 at 18:50


View all 28 files

  • 1 × nRF52832 (on PCB) popular Bluetooth SoC
  • 1 × MCP3911 (on PCB) a generic AFE
  • 1 × BMI160 (on PCB) IMU
  • 1 × RGB led (on PCB)
  • 1 × micro USB

View all 8 components

  • Happy New 2020 Year!

    Kseniia12/31/2019 at 21:00 0 comments

    Well, it was an interesting year, that's for sure!

    Things happening all around the world. Climate change, obviously. Hong Kong! Trump impeachment!

    And last, but not least - a big step for us, small step for humanity: first uECG production! 

    Yes, we know that we promised uECGs will be in stock on Tindie before Christmas. At least one of us did, because she ran out of symbols for the product url update (that'd be me, by the way), and "B4 XMAS" sounded so 2000. That is, if you noticed the new ETA on tindie product page at all. Well, technically, they were in stock, but nobody could buy them yet :3

    Why didn't we add the stock? Short version: because capitalism! Hard to set up payments if you belong to a non-PayPal country. And also we suddenly found a small current leak through the ADC chip, which we needed to fix and test. Aaand we found out that Ukrainian air mail doesn't ship devices with batteries to several countries, including the US. Turned out they do send (with a twist), but several other challenges awaited us!

    Long version: in a log a couple days after New Year.

    Happy holidays, late Merry Christmas and happy New Year to everyone! 

    Here's some holiday uECGs for you:

    New Year, new battery of 250 microamperes!

  • Work in progress!

    Ultimate Robotics12/20/2019 at 20:27 0 comments

    Just a quick update straight from the Ultimate Robotics  workstation: nine base stations done - 41 more to go! Oh, and uECGs are on the way - just replacing resistors for now, but we're working on it:

  • New arrivals - assembled uECGs are here!

    Lucy Sohryu12/18/2019 at 20:01 0 comments

    The wait is over: our first-ever batch of factory-produced uECGs and base stations is here! The package arrived on Monday after spending several days in customs, with assembled devices packed into neat little bubble wraps:

    After unwrapping one of the packages, we were in for a shock: never before have we seen one of our assembled devices with perfect soldering, properly-aligned components and no trace of flux. And, as we've soon confirmed after breaking out the pogo pins, they even worked! (by comparison, a manually-assembled uECG requires, on average, 2-3 rounds of resoldering before all the tricky chips work properly)

    Here's how they look now:

    Read more »

  • First batch of uECGs and bases is finished!

    Kseniia12/06/2019 at 19:23 0 comments

    Okay, this is happening - the factory has finished production, and after some more days spent communicating and fixing a led polarity issue (classic), the assembled uECGs and bases are ready. Now we have to wait for them for a few days, then tackle the customs (we never did this).

    We produced 50 uECGs and 50 receiver bases. Most of them go to Indiegogo backers, the rest will be in stock for Tindie shop for makers from the waitlist! And yes, we are aiming to start second batch production soon after we ship this one.
    Todo stuff for the set assembly and shipping:

    - Snap connectors - already here

    - Batteries (501240, 250 mAh - more hours than the previous version) - already here

    - ST-Link v2 programmers - already here

    - USBs for the bases (for manual through-hole soldering here) - shipping from China

    - Gel electrodes, screws for the cases, custom pogo pin adapters - shipping  from China 
    - 3D printing the cases - need to check the model, then we're ready to print lots of them at a very responsible and accurate guy whom we were happy to find in our hood in Kyiv :)

    - Cardboard boxes, cardboard layers, wood stuffing for the shipping packages (no plastic, but have to achieve anti-static properties and damp well) - already tested, need to buy enough for the 50 sets now
    - Box stickers design and printing - beta ready, need to design some more and they're ready to print.
    All in all, seems like a plan. Still can't imagine us assembling 50 of those.
    I guess we'll find out how this feels real soon!

  • It's happening - uECG sent to production!

    Lucy Sohryu11/16/2019 at 20:53 0 comments

    After three days of...

    - taking precise measurements of every micro USB, slider switch or tact button in the house;

    - filling out proper manufacturer part numbers for every single component down to the last 0.8 pF capacitor;

    - browsing to find out that those exact part numbers are either out of stock or 'not recommended for new designs' and then replacing them;

    - making several important changes to the schematics and the PCBs on the fly (yay fiducials!);

    - finding out the exact reason why those 32MHz crystals are positioned upside down in the library and then flipping them;

    - hunting for the common anode on the RGB LED (and then providing screenshots with red arrows pointing out where exactly the common anode is on the PCB);

    - briefly contemplating replacing all black chip packages with white ones (don't ask);

    - calculating the actual prices of all components on the board;

    - and then almost despairing to find out that the .pos file is in the wrong format (minutes before submitting the order);

    ...we finally sent uECG (and the bases) into production. This has been a few days ago (actually, Wednesday night) and they're still under review so far. Granted, it's only the first fifty devices (each), but that'll be enough to send to our Indiegogo backers and have the rest in stock on Tindie.

    There are many articles on the web about the wonders and horrors of PCB production, and almost all of them have one thing in common - that there is no single 'right way' to do it. Just as an example, every manufacturer has a different concept of how their dream BOM should look like. And, most importantly, the .pos file - the one that says where your components should be positioned on the board and how to place them... 

    In a sense, preparing production files is fun. It is also hard, exhausting, and time-consuming work (especially the 'find the correct MFN' part). It is also insanely motivating - we're producing our devices, finally! No more manual assembly! And then, at some point, it's over and you check, double-check, and triple-check everything. You upload the files. Hit 'submit'. And then you wait. That's exactly what we're doing right now (waiting), and it's probably going to take a while. 

    But we're finally did it! And now that we did, it's time to focus on stuff we put on hold - like writing project logs, picking up other projects (ours and otherwise), and thinking about long-term life goals. Plus, things will be happening soon, so we'll try to keep you updated more often!

  • Almost there!

    Ultimate Robotics11/06/2019 at 11:43 0 comments

    After some hard fights with KiCAD libraries, finding pogo pin adapters and last but not least - half of our team moving to another apartment, uECGs and bases for them are almost ready for sending to production. Just need to check the rotation of the components and add some comments to the final BOM.

    Time to change that ETA on tindie.

  • We're back in Kyiv from MakerFaire Rome!

    Ultimate Robotics10/24/2019 at 00:01 0 comments

    We're finally back and it's been a crazy few days - both on MakerFaire and beyond, as we have never been to Italy and never traveled for such a long time as a team. Saw amazing stuff, met nice people, drank a lot of cappuccinos!

    So, in short:

    - We're dead tired, but we're starting to get back to life;

    - On the way back, they lost one car from a night train we were supposed to take from Rome to Venice (we decided to go the long way), and the station had to arrange a motel for us and the other passengers. The guy on the motel reception didn't even blink when we told him the story - said that's completely normal. We wrote a facebook post about the adventure (and posted some photos of huge Venetian seagulls!);

    - By the way, we ate our best pizza in Venice - in Pizza 2000. Good shit.

    - Back to the MakerFaire: it was HUGE. Hundreds of makers. Thousands of people. 

    The first day, Friday 18th, was Education Day in Italy. Up to 25 000 students boarded the trains from? early in the morning and crowded Fiera di Roma. In a couple hours they ate almost one kilogram of sweets that we brought from Kyiv, and that's only cause the plate wasn't big, and we filled it at some intervals. Well, if that's what it takes for the kids to like technology!

    - Saturday was more niche - people were more focused, listened with interest and tested uECG and uGlass. This was also the day when at least two doctors came to our booth, saw uECG, brightened up visibly cause they liked it and said the signal was good - one even gave us suggestions to add a cardioprobe to see the ECG signal from various angles. Very useful, will definitely want to work on that. 

    We also learned to explain what our devices did with gestures and simple keywords, as it turned out most Italians don't know English - "Bluetooth ECG, PC, Android, medical signal, electrocardiogram, like in hospital, here - is - from - here (pointing at the device under T-shirt and laptop screen)" and so on. Sometimes just gestures, and it was even faster :)

    This was also a very social day - we met Naomi Wu (aka SexyCyborg)! In real life, she's VERY lively, and very friendly. She brought a drone that could charge from a pad with pogo pins and a LED ring - we took some pics of that and a selfie :) She's also stylish and just great, liked her a lot!

    In the evening, we went to our first Hackaday meetup! Met a lot of people: Mike Szczys, Larry Bank, Kitty Yeung, Helen Leigh, Drew Fustini (from Beagleboard), Robert Fitzsimmons (he of the large LED), Mastro Gippo (he's the one making PRISM), Laura Gales from UDOO, and other guys! A loud bunch showing each other devices with LEDs in an Italian restaurant. Loved it!

    - Sunday was rather quiet. Our table looked the most professional and we answered more clearly after Saturday. Our broken Italian English was perfect. We were getting really tired though, cause we tried to see Rome in between (mostly in the evenings) and slept very little. Also, tending to the booth and answering a lot of people at once is very draining - but it's also something you can't feel anywhere else.

    We also took some time to go and see the other booths. There were 10 halls, and we tried to visit at least some of them, take pictures, talk to makers - want to write a separate log about that. There was just so much of everything!

    Looks like this is almost it for this log! After we came back and slept for a day, we noticed something's been happening to uGlass page, cause it's been snowballing followers and it's now in top of the projects page. Was that Mike Szczys' comment? :)

    Now we'll have to go and write a log there too!

  • We're in Rome!

    Ultimate Robotics10/17/2019 at 14:27 1 comment

    Makerfaire's a big event here: the ads are on the walls, trams, buses and metro turnstiles. Looks really cool, and everybody knows about it, our apartment landlord included.

    So with this exposure, we thought, Rome must have lots of makers, and tools and Arduinos sold at every corner. Imagine our surprise when google searches haven't found almost anything about saldatores (italian for soldering iron) when we really needed one (can't take it on a plane) and we only managed to find it after two days of search at some general tools store on the street. Maybe italians are so cool they just stack arduinos when they need to make a device?

    Thing is, in our last few days before the travel, we were really busy finishing the commercial projects to send to clients and trying to fit our own projects in any minute left. Managed to assemble three v4 uECGs and USB bases for them, but successfully forgot two uECGs at home and only realized that in Naples. Were really sad about it, but the third uECG v4 still flew with us, so there's that. We also packed:

    • a couple older working uECGs
    • a new uEMG board and electrodes for it (unsoldered)
    • a pair of new DWM1001-based localization modules, and a pair of the older ones
    • a working uGlass AR module (attached to glasses)
    • a nice round BLE base board with plenty of LEDs, which we've written about in the previous post
    • some soldering supplies, wires
    • batteries!
    • tindie cards, business cards and a poster with the devices and catchy inspirational text about open hardware
    • and one kilogram of sweets from Kyiv to give away!

    So I guess we still have chances at assembling a nice table. Now we are going to Fiera di Roma by a suburban train – cause the Makerfaire is just outside the city area - to get our Makerfaire badges and prepare the booth for tomorrow, but not before we add some evening Colosseum pictures to this update!

    We only got to see it in the evening, and it's so huge. Weird thing is how Italians just go around their business, and it just stands there. Love it here!

  • New PCBs from factory: uECG (v4) and 16-LED nRF52832 base

    Ultimate Robotics10/01/2019 at 13:47 0 comments

    A package from PCBWay with a new version of uECGs just dropped! Or rather was brought by DHL courier, which deliver better and better by the shipment - previously we shied away from them, because there were too much red tape and they were arrogant, but maybe they're not so bad after all. 
    Anyway, there were three uECG versions before this one:
    - the v1.0, made back in December, 2018, which required some wires to work and had ECG snap connectors salvaged from Chinese cheap wired electrodes bought at a taobao acupuncture shop. We found a shop that sold snap connectors after that, which was a great adventure that took some weeks, but we learned some Chinese words along the way.
    - the working v2.2 - most featured in videos and tests
    - black one, the v3.1 - we had experimented with halvanic skin measurement there, but that didn't work so well. We also planned to add vibe motors to make a gamer feedback device - maybe still do that later.
    - and now the new v4 had all bugs fixed (thanks to hackaday commenters for pointing out some of those!): analog and digital ground is properly connected now, and it also has protection in form of a resettable fuse and a BAV99.

    Read more »

  • Project ideas: uECG for EMG and branching out into AR!

    Lucy Sohryu09/28/2019 at 00:42 0 comments

    Like uECG is a simple solution to a usually overcomplicated problem, we have a few other projects that aim to hack modern technology into small, manageable, open-source pieces. Most of the time they exist in different forms - "good idea" seems to be the most popular. But recently a couple of them moved to the next stage.

    Read more »

View all 21 project logs

  • 1
    How to: uECG build and firmware upload process

    We work in Ubuntu 18.04, although this should work with most Linux versions. We have no idea how to do this on Windows, sorry :)


    Nordic SDK version 14.1 (both older and newer versions won’t work without config modification, although functionally it should be compatible with any version at all - we use only very basic SDK functions, no soft device)

    Arm-none-eabi compiler version 8-2018-q4-major or higher

    OpenOCD version 0.10.0 or higher 

    STLink programmer (any clone should work just fine)

    Build process configuration

    1. In Nordic SDK you need to write path to arm-none-eabi compiler tools, it is located in file components/toolchain/gcc/Makefile.posix

    Its content should be following for given compiler version:

    GNU_INSTALL_ROOT := /home/<your user folder>/<path to uncompressed compiler folder>/gcc-arm-none-eabi-8-2018-q4-major/bin/

    GNU_VERSION := 8.2.1

    GNU_PREFIX := arm-none-eabi

    (if you use a different version, adjust folder name and version code accordingly)

    2. After that, inside project folder, you need to adjust SDK path in makefile. Open project Makefile and put correct path in this line:

    SDK_ROOT := /home/<your user folder>/<path to Nordic SDK>/nRF5_SDK_14.1.0_1dda907

    (adjust SDK folder name accordingly if your version is different)

    That’s it for build config. Now you need to run make in project folder and it should produce compiled .hex file.

    Upload process configuration

    Download openocd. Unpack it to some folder (for this document we assume it is located in ~/openocd) and in the terminal, enter the following:

    sudo apt-get install make libtool pkg-config autoconf automake texinfo libusb-1.0-0-dev

    cd ~/openocd

    ./configure --enable-stlink


    sudo make install

    Uploading firmware

    Connect the device to the programmer. Pins on uECG have text labels, check pinout of your particular STLink programmer for proper connections.

    In the project folder (it’s important!) execute openocd command:

    cd ~/<your-project-folder>

    openocd -f interface/stlink.cfg -f target/nrf52.cfg 

    If everything’s ok, command will not return to the shell, so open a new terminal window and enter:

    telnet 4444

    This will establish connection to OpenOCD via telnet. In telnet prompt type:


    nrf5 mass_erase



    flash write_image erase _build/nrf52832_xxaa.hex  (put relative path and name of .hex file)


    And that should be it!

View all instructions

Enjoy this project?



quadradic wrote 01/16/2020 at 15:58 point

I haven't found anything on your site showing or explaining where to attach the electrodes to the human body.  Do the electrodes need to attach to the chest to get a reliable signal while exercising?  Is the device ready to use when I receive it?  Do I have to install firmware on the ECG sensor part before I can use it?  Does the device come with the battery and electrode pads.  Do I order replacement pads and batteries from you?  Can I read the received heart rate data from a laptop's USB port and use the data in my own custom program in real-time?  How do I read your data, what format is it in?  Is it just a stream of bytes representing a series of consecutive heart rate readings?  How often are the readings taken and transmitted?

  Are you sure? yes | no

the_3d6 wrote 01/16/2020 at 22:15 point

Sorry about that - really didn't have time yet to write anything comprehensive, even though first batch is ready, we couldn't stop improving it firmware-wise, only 2 weeks ago we became satisfied with its state (not fully yet, but it's something we are not ashamed to share now).

It is optimized for standard gel electrodes (10 pcs are supplied with the unit, and almost any readily available ones would fit - we plan to sell them too for convenience, after we establish regular serial production of the units). Also it is possible to use chest strap, but as of now you would need to manually solder adapter connector (we will supply them later too). Electrodes must be on the chest, yes - placing them in different areas would highlight different aspects of the heart activity, and some places work well during exercising, some don't (skin shouldn't move too much in electrode area, or it won't hold well).

Device is ready to use, right now you will get raw data, BPM, HRV stats, skin conductivity (also step count and body position). It is quite useful if you know how to look at it, and of limited use if you don't. We definitely will add a server side for automatic analysis - but that would take months.

Firmware is installed - we supply programmer for further updates and custom builds, but it is fully functional as is (over the air update is not supported yet though). Battery (rechargeable LiPo) is installed, and charging is done via usb. You can replace it with any other lipo cell if you want more capacity (would need to solder 2 wires for that, for much larger capacity - also replace one resistor to speed up charging).

Default pack includes USB base station that receives device data in both BLE and direct connect modes (direct connect has 8 times higher time resolution - might be useful for research). Data includes raw ECG signal, RR interval, BPM and HRV detected by on-board algorithm, skin conductivity, steps counter, device orientation, battery level. Everything is packed as a byte array (and not all fields are present in every packet in order to save bandwidth) - you can take function that unpacks it from our PC tool code and use for your project (if you will be doing that anytime soon - contact me, I'll try to clean it up and write comments).

In BLE mode, ECG data are sent at 122 Hz rate (packet with ~25 meaningful bytes is sent every ~10 milliseconds, so there is a lot of redundancy - in order to increase reliability). In direct connection mode, ECG data are sent at 976 Hz rate (32-byte packet is sent every few milliseconds, so still a lot of redundancy).

We made quite a few improvements since last github code update, soon will upload it there - but right now our main problem is finding money to run a production of the next batch. First batch was only 50 units and most of them are for Indiegogo bakers, in a few days we'll make remaining ones available on Tindie (wanted to make it before Christmas, unfortunately it took much longer than we could anticipate), but it's by far not enough to cover our waitlist.

  Are you sure? yes | no

quadradic wrote 01/17/2020 at 01:01 point

Thanks for answering all my questions and providing such clear and comprehensive answers.   I want to buy a unit as soon as possible, so I signed up to be notified when they become available to the public.  Will the price remain under a hundred U.S. dollars for the full package?    I've bought so many ECG units that aren't accurate at all, especially when jogging or exercising.  I have high hopes that your device will work better based on the information you've provided.    If it really works, then I'll incorporate it into my product.   I may need some custom software to interface and integrate your data with my software, which is currently running on a laptop.   I can hire people to do that, but I'd prefer to hire your team to do it if that's  something you have the manpower to handle?    By the way, I read somewhere that your company is located in the Ukraine, but your English is better than most Americans.

  Are you sure? yes | no

the_3d6 wrote 01/17/2020 at 11:26 point

We intend to keep price the same - in the worst case, if we'll meet more problems with money processing, it might increase like 10% to compensate additional fees, but that's it (it turned out that paypal not only doesn't work with Ukraine as a country, but with Ukrainians as well even if they have a legal entity in Estonia and bank in Finland - finding a way around may cost us).

Well, as far as we tested - the signal is accurate. When jogging, it has motion artifacts of course, quality depends a lot on exact placement and electrodes (that's where difference between electrode manufacturers really shows - with some it practically doesn't work) - but I was observing very clearly how my T wave changed shape under load. P wave might be not clear enough for analysis due to motion.

As for customization - definitely yes. Basically, we funded this whole effort by working as freelancers for other electronics project :) And for a while we'll need to continue to operate this way. Also, one of the reasons to create uECG at all was to make it a starting point for other projects - so we'd really like to see it working for that purpose.

Thanks :) Well, we really are from Ukraine (and live here), but by our team standards, my English is, to say the least, not outstanding )) As freelancers, we use it basically every day, for quite a few years now.

  Are you sure? yes | no

quadradic wrote 01/17/2020 at 14:28 point

My VISA credit card works world wide, why can't you use that for payment?   And, you can always accept payment by Bitcoin.  

  Are you sure? yes | no

the_3d6 wrote 01/17/2020 at 19:43 point

When we sell on Tindie, they transfer payments to us only via paypal (we specifically asked for any other option - they don't support it as of now). Setting up our own online shop is possible and probably we'll do it - but Tindie is a specialized platform for maker-friendly hardware, we'd like to work with them...

  Are you sure? yes | no

quadradic wrote 01/17/2020 at 20:48 point

Now I understand, it's a PayPal issue between you and Tindie, because there's no other way for the public to purchase from you.  Hopefully, if I use your team for consulting work in the future (to integrate your device with my project), then I can pay you directly and the Tindie/PayPal problem won't make any difference.   

  Are you sure? yes | no

Thomas Rose wrote 01/08/2020 at 23:55 point

Very interesting project! Do you guys think this could be miniaturized even more and set up to measure a cats ECG continually?

There are so many people having cats with HCM or other cardio-illnesses that would love to have an option for continuous monitoring.

  Are you sure? yes | no

de∫hipu wrote 01/09/2020 at 22:17 point

How would you attach it to a cat?

  Are you sure? yes | no

Thomas Rose wrote 01/09/2020 at 23:01 point

thinking about anything possible like a collor, to something like a harness or something, maybe put this on a collar, and connect to an HRV-Strap? :)

  Are you sure? yes | no

the_3d6 wrote 01/16/2020 at 21:34 point

It's a very interesting suggestion! Really not many options are available for pets - and, well, for uECG the only limiting factor is attaching it (size can be made 2 times smaller if we remove these large electrode connectors). I guess some areas of fur should be shaved for this, without it I don't think it could be reliable. Collar could work to some degree - but signal on the neck area might be not detailed enough for diagnostics purpose. Anyway, it is a great idea to consider, thanks :)

  Are you sure? yes | no

Thomas Rose wrote 01/16/2020 at 23:00 point

happy to help! its not not very un-egoistical, as we have a cat with HCM which I would love to contiouous monitor, but there is not even one product availabe for this. even a device would help with streaming data to a database - even DIY style would be pretty great to learn more about the heart of the pet. shaving wouldnt be a problem either. I even thought about something like implanted electrodes, but this might be way too invasive 0:D

  Are you sure? yes | no

Pranav Kompally wrote 01/07/2020 at 06:21 point

That's quite impressive! Can we attach this device onto the wrist and get optimum results instead of putting it on chest? 

  Are you sure? yes | no

the_3d6 wrote 01/20/2020 at 21:19 point

No, it's impossible to read ECG from the wrist (if you are not touching the device with other hand all the time). Normally wrist devices measure PPG - it's very different and has much less diagnostic value

  Are you sure? yes | no

Zachary Duncan wrote 11/27/2019 at 15:15 point

Wearables are the trend right now and glad that you made one. Fantastic!

  Are you sure? yes | no

Louis Hill wrote 11/25/2019 at 11:42 point

A very interesting project! a Micro ECG that is wearable! Is the device isolated electrically from the USB port? 

Louis │

  Are you sure? yes | no

the_3d6 wrote 12/20/2019 at 20:32 point

Hi! Both electrical path from USB to skin have 100k resistors on them, so even in the worst case scenario it still would be safe. But for proper operation, uECG never should be connected to USB while in use - only when disconnected from skin for recharging

  Are you sure? yes | no

razorfish_sl wrote 10/22/2019 at 01:22 point

 this setup may have potential dangers due to the way that the device is not isolated electrically from the USB port.

There is potential for defective switched power supplies(or indeed "normal" switched PSU) to introduce mains power into the PCB & to the  human body under test.

simple test.. take a mac portable in aluminum
plug the mac computer into the charging power supply.

ISOLATE your body completely.
run a DRY finder across the surface of the case in strokes. feel how smooth it feels.
now with your other hand ground your body
if you repeat the experiment you should feel you finger stuttering across the surface of the case.
This is mains leakage thru the psu into the "Grounded" computer case(and by default the USB).

It's also WHY some USB cable "spark"  when the "grounded" case to case is touched to another device
I have seen voltages as high as 197V with reference to "real" ground

There are VERY strict rules relating to medical equipment and this leakage.

  Are you sure? yes | no

the_3d6 wrote 10/23/2019 at 17:45 point

You are absolutely right about potential danger. However in version 4 (which is going in production) we anticipated this (with help of Marcos Chaparro actually), and electrodes are connected to everything else via 100k resistors - so in the worst possible case current flowing through the body won't exceed 4.4 mA, which is considered safe (unpleasant feeling, but no shock).

In practice though device should never be charged via USB when it's on the body (it introduces huge electrical noise), so it's more of a safety measure.

  Are you sure? yes | no

Jacob MacLeod wrote 10/01/2019 at 10:22 point

Cool! What... exactly is an ECG?

  Are you sure? yes | no

the_3d6 wrote 10/01/2019 at 13:51 point

ElectroCardioGram :) In other words, heart electrical activity. We record it (send to PC or smartphone), and also detect heartbeats with onboard algorithm, so it can be used for blinking LEDs or something without any PC/phone connection

  Are you sure? yes | no

ksk wrote 09/18/2019 at 21:08 point

Hi, I've uploaded the KiCAD to MacroFab and am populating the BOM. I am guessing that SW1 is from Ali[baba,Express], but can't find a good reference. Same question for the micro USB, though I might be able to make a good guess for it by looking at the footprint. Can you provide part numbers for both?

  Are you sure? yes | no

Lucy Sohryu wrote 09/19/2019 at 17:46 point

Hi! SW1 is MSS3-V-T/R from Diptronics (also known as SS-1290 or IS-1290A-W), SW2 is just standard 4.5*4.5*3.8 tact switch, but can be found under part number K2-1109SP-A4SA-04, from Korean HROParts. Micro USB is U-F-M5SW-Y-3, also from Korean HROParts. 

These should fit. But maybe there are more popular part numbers for those switches and USB that we don't know about yet. We're just preparing for factory assembly, and previously used these switches and USBs that we bought earlier. 

  Are you sure? yes | no

Thorsten von Eicken wrote 09/15/2019 at 04:27 point

Does the uECG work with a HRM strap, or does it require special electrodes? If so, are they reusable?

  Are you sure? yes | no

the_3d6 wrote 09/15/2019 at 06:27 point

Yes, we checked it several days ago - it gets really good signal. Although it has an opposite type of connector (uECG uses female, and straps have female on them) so we had to solder a male-to-male connector to attach it (simply by soldering two connector parts together, it was surprisingly easy)

  Are you sure? yes | no

forthprgrmr wrote 09/10/2019 at 20:28 point

There are a lot of op amps that I'd choose before the 8606: ADA4528 is much quieter, but slightly higher cost and current, the MCP6V62 is also quieter in the 0.1 to 10Hz band, cheaper, and much lower in current.  The nice thing about these zero drift amps is that there is no 1/f noise.  You say that you're just using the HF content so the 1/f noise might not be important.

Also pay some attention to the noise generated by resistors.  A 100k series resistor is quite noisy in these applications.

My work is more focused on EEG rather than ECG so I'm more focused on noise.  You might be just fine.

What I notice in projects like this (and inexpensive 'scopes) is the analog section is weak while the micro/rf/software is nicely done.  I know good analog engineers are hard to find, but try.

  Are you sure? yes | no

the_3d6 wrote 09/10/2019 at 21:43 point

MCP6V62 looks good, thanks! ADA4528 is way too expensive here.
As for resistor noise - you are right, we forgot about it. Before we added DC shift for measuring skin resistance it was safe to ignore (we didn't have input 100k then and no 10M pull ups), but in the latest revision we added DC shift, and even though in measurements it didn't show any noticeable difference, it really has to be properly estimated.

  Are you sure? yes | no

the_3d6 wrote 09/10/2019 at 21:52 point

*although a quick estimate gives about 1.2 uV in our frequency window, while our ADC gives 1.1 uV per meaningful bit, so it doesn't look really worth worrying about

  Are you sure? yes | no

Marcos wrote 08/03/2019 at 15:02 point

I'm wondering where are GND and GNDA joined together. Inside the ADC chip?

  Are you sure? yes | no

the_3d6 wrote 08/04/2019 at 15:53 point

Wow, you've spotted it! :) No, in fact we forgot it in this design version and had to connect via additional wire (it was convenient to connect grounds of analog and digital LDOs, they have relatively large pads for soldering a wire). But it will be fixed in the production version!

  Are you sure? yes | no

Marcos wrote 08/04/2019 at 20:29 point

A 0 ohm resistor there lets you easily try a choke to see if noise goes down.

Also I see no ESD protection at the input terminals, the OpAmp input is exposed.

Anything else should be fixed? I may give this schematic a try these days

  Are you sure? yes | no

the_3d6 wrote 08/04/2019 at 20:53 point

This opamp has in-built ESD protection so it's fine.
We missed GND bug in 2 consequent revisions because surprisingly it doesn't really affect signal - analog LDO keeps AGND at 3.3V distance from battery positive rail, and that is still within the range of ADC. I really can't tell any difference between fixed unit and the one with this bug (but it still is a serious bug, we just got lucky here).
Not sure if choke would make any difference - it seems that nearly all noise is external, digital part takes too little power with too small fluctuations to really affect the signal.

  Are you sure? yes | no

Marcos wrote 08/04/2019 at 23:51 point

Yeah I figured it would still work, I asked because maybe it was on purpose.

Most chips have some light ESD protection, but its usually not enough. Try zapping that input with an ESD gun, or a stove lighter to prove its enough, because I'm pretty sure it isn't.

You don't need this... but I designed medical grade ECGs a few years ago and they needed to survive a defibrillator discharge -and recover in <5 seconds-. A series resistor + beefy tvs was enough protection and didn't skew the signal ;-)

  Are you sure? yes | no

the_3d6 wrote 08/05/2019 at 03:04 point

I think it won't survive stove lighter discharge :) Never thought that it might need to withstand defibrillator - but you are right, something as simple as 100k resistor and TVS would do just fine (and we have resistor on one side already), so probably we should add it

  Are you sure? yes | no

Marcos wrote 08/07/2019 at 03:21 point

Another tip: missing bypass caps on both supply pins of the ADC ;-)

Accel should have a bypass as well.

A fuse right at the battery connection is usually both wanted and required.

  Are you sure? yes | no

the_3d6 wrote 08/07/2019 at 07:12 point

In schematics you can see decoupling capacitor only on analog supply of ADC, but in fact on PCB it shares digital supply decoupling cap with one of NRF's. IMU also has decoupling cap placed next to its supply (it's not specifically outlined in schematics, but I kept placement in mind during PCB design). Although analog supply cap is too far from the pin, I really should change that (it still works, frequencies are relatively low there, but it isn't optimal).

Adding a fuse is a good idea, thanks! The main problem is possibility of accidental contact of battery wires with random PCB pads during soldering process (and fuse would save only power chips in such case, sensitive analog ones won't survive anyway), but I don't think it could be improved.

  Are you sure? yes | no

John Loefler wrote 06/09/2019 at 14:28 point

I have been looking for those kind of connectors for grounding. Do you have a supplier/Part Number

  Are you sure? yes | no

Ultimate Robotics wrote 06/11/2019 at 11:33 point

Oh, these are indeed hard to find, we've been trying to find them under various names until we guessed the correct keyword :) We bought ours on taobao, shipped to us with Meest-China (it's a freight forwarder). Here:

They're called "ECG snap connectors", the Chinese keyword is 心电扣. I believe I also saw them on aliexpress, but it's often faster (not to mention cheaper) to buy them in China directly and forward after that. Also, there is more choice, so for example I could buy our snap connectors from manufacturer directly. To find difficult stuff you can google by various keywords in Google images and then do an image search by uploading most prominent pictures.
Also here's some snap connectors on aliexpress:
(but they cost $24 here, while I bought the same amount for $5.5 on taobao)

  Are you sure? yes | no


[this comment has been deleted]

the_3d6 wrote 04/26/2019 at 19:07 point

Thanks! We are getting it ready for production, hope to start crowdfunding really soon (we almost finished development, now the main goal is to get some visibility so we'll have enough bakers to produce the first batch)

  Are you sure? yes | no

Mark wrote 05/24/2019 at 21:36 point

Interesting.   Where are you crowdfunding and how much are you trying to raise?

  Are you sure? yes | no

Bud Bennett wrote 04/09/2019 at 20:00 point

I really hate it when people comment negatively on my projects, but I really love it that they are interested enough to make a comment. My background includes design of medical equipment in the olden days: 1977-1983. I took a look at your schematic and have a couple of questions, or comments for improvement.

1. It doesn't appear that you need to use a unity gain amplifier (the AC8606) to buffer the ADC. U1B is biased near GND and might have problems tracking signals below GND. U1A doesn't do anything at all, except draw current via the 10Ω load of R3.

2. The MCP3911 has a PGA that should eliminate the need for the AD8606. If you biased the CH0- input a few mV above GNDA and AC-coupled CH0+ it should be all that is needed. Yes, there is some uncertainty as to the input impedance of the MCP3911, but that doesn't worry you with regards to the time constant of C17. which uses that impedance.

3. The need for the onto-isolator U7 escapes me. Please elaborate.

4. The ADC doesn't include a 50-60Hz notch filter. Many other ∑-∆ converters include a 50-60 Hz notch. A notch would make the subsequent signal processing easier.

5. D2 is a mystery to me. Please explain.

Overall I'm impressed with your progress. I like it a lot.

  Are you sure? yes | no

the_3d6 wrote 04/09/2019 at 20:50 point

Hi! No problems with negative comments - but yours aren't negative at all :) Quite the contrary, thanks for taking a deep look at our schematics!

It seems that you've missed that we have not 2 but 3 grounds: GND is digital ground, GNDA is analog ground, and GNDS is a virtual "ground" which is actually at +0.6V and we measure all analog signals around it. Probably our symbols are misleading ))

1. U1A generates virtual ground - divider on its input sets level of about 0.6V and U1A repeats it (via 10R resistor just in case if something goes wrong, no real need in it since amplifier survives short circuit). That level of 0.6V is our zero point around which we work (and normally we stay within a few mV around).

2. MCP3911 has input impedance of about 30k when PGA is set to 32 amplification - and skin has impedance in a few MOhm area (measured that for gel pads and placement we are using) - so without buffering input with AD8606, it works like a voltage divider. Actually in our first iteration we made a mistake and had to omit amplifier completely - and it worked somehow, but signal was much, much worse and very sensitive to contact quality.

3. It is for connecting to external Arduino or other microcontroller: we are detecting heart beats onboard, and send them as short pulses there. Optocoupler makes external connection simple, eliminating possible problems (you can just connect it, and if it doesn't work - connect with opposite polarity). 

4. Yes - but check project logs, I'm really proud of the filter I've made! :) It's better than anything I saw before - including max30003 AFE which is specifically designed for ECG. Our result is seriously better (we work on another project based on max30003 in parallel, so I can compare them in identical conditions). And MCP3911 is the cheapest 16 bit AFE out there! )) (also uploaded illustration of how it works in extreme conditions: )

5. MCP3911 can be damaged if input voltage exceeds +2.0V on any ADC input. Normally we work around 0.6V point, but when the unit is not on the body, input can get anywhere. As soon as it exceeds approximately 1.2V, LED turns on, protecting the input and, at the same time, visually indicating that there is overload! And it actually works, when it's charging via usb, you really can turn it on by touching only one input! ))

  Are you sure? yes | no

Bud Bennett wrote 04/10/2019 at 00:48 point

Fair enough. I grok it now. There is a reason for everything in a schematic, if not entirely obvious. I'm an old school EE, so schematics should have wires connecting components instead of tags. It's easier for those not familiar with the design to understand what's going on. 

Thanks for the answers. Carry on. It obviously works.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates