element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Spring Clean!
  • Challenges & Projects
  • Project14
  • Spring Clean!
  • More
  • Cancel
Spring Clean!
Spring Clean Projects 2026 P.U.L.S.E
  • News and Projects
  • Forum
  • Members
  • More
  • Cancel
  • New
Join Spring Clean! to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: WernerHZ
  • Date Created: 18 Apr 2026 12:34 AM Date Created
  • Views 85 views
  • Likes 9 likes
  • Comments 6 comments
Related
Recommended

P.U.L.S.E

WernerHZ
WernerHZ
18 Apr 2026
P.U.L.S.E

Finishing the P.U.L.S.E. ECG System

Portable Unit for Live Signal Electrocardiography


A bit of history

Ever since I started getting into electronics, I have had this idea of building my own ECG device. Something that could actually show heart signals in real time instead of just reading about them.

Like most projects, it started simple. I picked up an AD8232 module, wired it up, and after some trial and error, I managed to get a signal. Seeing that first noisy waveform was honestly a pretty big moment.

But that’s pretty much where it stopped.

The project “worked”, but only in the loosest sense:

  • It needed to be connected to a computer
  • There was no proper visualization
  • No analysis, no storage, no real usability

It was more of a proof of concept than an actual device. I told myself I’d come back to it later… and like a lot of projects, it just sat there half-finished.

When I saw the Spring Clean competition, it felt like the perfect excuse to finally do something about it.


Preparing the revival

Coming back to the project after a while, I had to figure out what was actually there and what I had just imagined I’d done.

The core idea was still solid:

  • Capture ECG signals
  • Visualize them
  • Eventually, do something useful with the data

But in reality, what I had was:

  • A working but messy analog setup
  • Raw signal output
  • No structure at all

No interface, no proper processing, no documentation. Definitely not something someone else could build.

So instead of “fixing” it, the goal became to actually finish it properly.


Restarting the build

I decided to keep the original concept, but rebuild it in a cleaner and more usable way.

The first major change was adding an ADC. Instead of relying on rough readings, I used an ADS1115 to get a stable, high-resolution signal.

From there, the system started to take shape:

  • ECG module → ADC
  • ADC → Raspberry Pi Zero
  • Raspberry Pi → processing + interface

Using a Raspberry Pi made a big difference compared to the original setup. It meant I could handle acquisition, processing, and display all in one place.

image


A small step into PCB design

Originally, everything was wired together with jumper wires, which worked… until it didn’t.

Connections would come loose, noise would creep in, and troubleshooting became harder than it should have been.

So I decided to take a step I had been putting off: putting part of the design onto a PCB.

Nothing too complex, but enough to:

  • Keep the analog signal path clean
  • Reduce wiring errors
  • Make the setup more reliable

Even just that small step made the system feel much more “real” compared to the original prototype.


Building the software side

This is where the project really changed from something experimental into something usable.

Instead of printing values or plotting offline, I built a live interface using Flask.

At first, it was just a simple graph. Then it slowly grew into:

  • A real-time ECG display
  • BPM calculation
  • Signal quality indicators

I also added a mobile-friendly version, which turned out to be surprisingly useful. Being able to open the ECG on a phone made the whole system feel portable, even though it’s running on a Pi.

For plotting, I used Matplotlib, which was more than enough for rendering the waveform clearly.


Adding analysis (the part I avoided at first)

In the original version, I completely avoided signal analysis because it felt complicated.

Coming back to it, I realized that without it, the project wasn’t really complete.

So I started simple:

  • Detect peaks (QRS complexes)
  • Calculate BPM from RR intervals

Then gradually added more logic on top of that.

The system can now flag:

  • Bradycardia (low heart rate)
  • Tachycardia (elevated heart rate)
  • Ventricular tachycardia–like patterns (very high sustained rate)
  • Irregular rhythm patterns (inconsistent RR intervals)
  • Premature beats (early or delayed intervals)
  • Possible pauses / asystole-like gaps (no detected beats for a threshold time)
  • Low amplitude signals (poor electrode contact)
  • Baseline wander (movement or poor grounding)
  • High-frequency noise / signal instability

It also keeps track of:

  • Continuous BPM trends
  • Signal quality metrics
  • Event markers for reports

It’s important to say that this is heuristic detection, not medical-grade diagnosis — but it finally gives meaning to the signal instead of just displaying it.


Reports and making it useful

At some point, I thought: if I’m collecting data, I might as well make it usable.

So I added a reporting system using ReportLab.

Now the system can:

  • Generate a PDF summary
  • Export ECG data (CSV + JSON)
  • Include flagged events and explanations
  • Bundle everything into a single downloadable ZIP

This was one of those features that started as “just for fun” but ended up making the project feel much more complete.

image


Powering the system

One thing the original version completely lacked was portability.

To fix that, I powered the system using an Adafruit PowerBoost 1000 paired with a 2000mAh LiPo battery.

This setup:

  • Boosts the battery voltage to a stable 5V
  • Allows the Raspberry Pi and peripherals to run reliably
  • Adds built-in charging over USB

In practice, this means the entire system can run:

  • Without being plugged into the wall
  • As a fully portable unit
  • For extended sessions, depending on load

This was a small addition, but it made a big difference in turning the project into something that actually feels like a device instead of a bench setup.


Making it an actual project (not just something on my desk)

One thing the original version completely lacked was structure.

Everything was local, undocumented, and basically impossible for anyone else to reproduce.

So I took the time to:

  • Organize the code
  • Write proper documentation
  • Add wiring diagrams and datasheets
  • Clean up the whole repository

The result is the full P.U.L.S.E. project:

Point right https://github.com/wernerhzigby/P.U.L.S.E.-project.git 

It’s now something that someone else could actually build, which definitely wasn’t the case before.


Assembly

Putting everything together this time was much smoother than the first attempt.

The system consists of:

  • ECG sensor
  • ADC module
  • Raspberry Pi
  • Supporting wiring / PCB
  • Battery + power system

Compared to the original version:

  • Fewer loose wires
  • More stable connections
  • Much easier to debug

It still took some trial and error (especially with signal noise), but overall it felt like assembling a system instead of experimenting.

image


Powering it up

The first proper test was opening the web interface and seeing if everything worked together.

And this time, it actually did.

  • The ECG signal shows up in real time
  • BPM updates correctly
  • Detection flags appear when expected
  • The interface works on both desktop and mobile
  • Reports generate without issues

It’s a pretty big difference compared to the original version, where just getting a readable signal was already a challenge.


Conclusion

Looking back, the hardest part of this project wasn’t the hardware or the code — it was finishing it.

The original version already had the core idea working, but it was missing everything around it:

  • Structure
  • usability
  • completeness

By coming back to it and pushing it further, it turned into something that actually feels like a finished system.

Not perfect, but complete.

And honestly, that’s something I probably wouldn’t have done without the push from this competition.


What I learned

  • A working prototype is not the same as a finished project
  • Even a simple PCB can make a huge difference
  • Power design matters more than expected
  • Documentation matters more than you think
  • Going back to old projects is worth it

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

  • Sign in to reply
  • robogary
    robogary 8 hours ago in reply to WernerHZ

    Thanks for pointing out the powerburst1000, it does do the job. Good deal on the carbon fiber print. Last year I was in a carbon fiber plant helping with a controls refit and the plant engineers were neurotic about any carbon fiber getting tracked or airborne into the electrical room. Even the process to make carbon fiber is intimidating. 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • WernerHZ
    WernerHZ 9 hours ago in reply to robogary

    Yes, but in this filament it's mixed with nylon, and there are only thin strands of CF, so this is safe. I tested it for some time and could not find any current through it. nevertheless, all internal components are protected from shorting out against one another and the box. As for the battery, from my research, the PowerBoost 1000 and the battery I used provide enough protection.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • robogary
    robogary 11 hours ago

    Very nice crescendo to the finish. The power design part is 100% spot on, altho I didnt see any detailed schematic or battery protection scheme on git hub ( doesnt mean its not there, I just missed it. ) .

    Isn't carbon fiber conductive ? 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • WernerHZ
    WernerHZ 15 hours ago in reply to manojroy123

    Yes, out of Nylon Carbon fibre. Check my video for more info

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • manojroy123
    manojroy123 16 hours ago

    Is the enclosure 3D printed.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube