uwburn / cardia Goto Github PK
View Code? Open in Web Editor NEWHeart rate monitoring client for gamers
License: GNU General Public License v3.0
Heart rate monitoring client for gamers
License: GNU General Public License v3.0
Hi!
Would it be possible to use this app for HRV measurements with compatible devices, like the Polar H10? Even just RR values would be very useful for me if possible.
There are a couple solutions for this, but they are all built for mobile or arduino, there is no PC version. (example: https://github.com/oerjanti/BLE-Heart-rate-variability-demo)
I need this for a realtime application, so the other features (mostly live logging) is very handy for me already with this app. Maybe I could implement it too, I'm just not sure if it is even possible.
I know nothing of coding but your application worked flawlessly. I would like to try to change the color to a specific hex code to stay on brand for a stream - could paypal you if it would be too much trouble.
If not, no big deal white works too
Hex code: #2BC1FF
Hello,
Just tried out the logging using BT device on 1.1.0.1. Error occurs when STOP is pressed using XML format.
Attached is the handled exception.
Any way to resolve this? I opened up one of the smart .sln files and I was missing a bunch of dependencies.. which I couldn't find. I'm hoping there is some fix because I can't upgrade to Win10 on this laptop :|
I've made a fork and added a colour picker instead of a combo box to allow any colour to be used. I thought it would be great to put a pull request in for it but when I did github says there are 1,400 plus changes. I suspect that Visual Studio 2019 saved a file with altered line endings, even though I told it not to alter them. What is the best way to resolve this?
Hey,
I downloaded Cardia for a stream. I bought the Zephyr HxM for the cardia. I connected the Zephyr to my pc's bluetooth. I started cardia but I kept getting "Zephyr HxM not transmitting on serial port COM1. COM4 and COM5 did not work either. I don't really know anything about this. Can somebody help me?
Appreciate it
I know this is a bit of an older project and hasn't been updated in a while. Something that would be extremely useful would be to specify a different color for the display to change to when the alarm threshold has been reached. i.e. the display would be green under normal use but change to red when the threshold is tripped, then return to green once the heart rate returns to below the threshold.
Thanks.
Getting a weird issue where all of a sudden the window does not appear. It seems like a Windows thing, possibly a recent update because it was working fine for a while. The program appears to still run fine I have the window being captured by streamlabs but I cant interact with the menu because I don't see the window. And its happening across multple pcs. Tried updating windows and that didn't help. Any suggestion?
Have you looked at all into implementing the Contec CMS 50D+? It's one of the cheaper versions of CMS 50E. I would imagine that CMS 50D+ would be somewhat easier to implement since it already supports CMS 50E.
Great work!
From Polad H10, apart from RR/heartrate data, ECG stream can be captured as well.
I see, that raw ECG stream is (I suppose) showing on the Cardia, but I don't see it logged anywhere?
Hello there!
I got an issue that my new Zephyr HxM BT (it's not the Smart model), won't be shown on any Serial Ports and can't connect at all.
Windows (10, newest updates installed) says that it's paired successfully. The device is turned on and should be fully functional.
Tried to reset all Bluetooth configuration settings. Reinstalled BT drivers, changed the Serial Ports in Device manager but didn't helped either so I resetted that to default again.
Wont connect via Bluetooth Smart HRP either. So I got the exact same screenshots as in #36.
The logs are as following:
2021-01-14 19:44:50,769 [1] INFO MGT.Cardia.Program - Starting Cardia
2021-01-14 19:44:50,865 [1] DEBUG MGT.Cardia.BtHrpBundle - Retrieving heart rate capable devices
2021-01-14 19:44:50,911 [1] DEBUG MGT.Cardia.BtHrpBundle - Attempting to retrieve async result...
2021-01-14 19:44:51,024 [1] DEBUG MGT.Cardia.BtHrpBundle - Found 0 heart rate capable deices
2021-01-14 19:44:55,020 [1] DEBUG MGT.HRM.Zephyr_HxM.ZephyrHxM - Starting Zephyr HxM
2021-01-14 19:45:25,332 [6] DEBUG MGT.HRM.Zephyr_HxM.ZephyrHxM - Communication timeout elapsed
2021-01-14 19:45:25,332 [6] DEBUG MGT.HRM.Zephyr_HxM.ZephyrHxM - Stopping Zephyr HxM
2021-01-14 19:45:25,333 [6] DEBUG MGT.HRM.Zephyr_HxM.ZephyrHxM - Resetting counters
2021-01-14 19:47:48,423 [1] INFO MGT.Cardia.Program - Starting Cardia
2021-01-14 19:47:48,506 [1] DEBUG MGT.Cardia.BtHrpBundle - Retrieving heart rate capable devices
2021-01-14 19:47:48,527 [1] DEBUG MGT.Cardia.BtHrpBundle - Attempting to retrieve async result...
2021-01-14 19:47:48,641 [1] DEBUG MGT.Cardia.BtHrpBundle - Found 0 heart rate capable deices
2021-01-14 19:47:52,954 [1] DEBUG MGT.HRM.Zephyr_HxM.ZephyrHxM - Starting Zephyr HxM
2021-01-14 19:48:01,864 [1] DEBUG MGT.HRM.Zephyr_HxM.ZephyrHxM - Stopping Zephyr HxM
2021-01-14 19:48:01,871 [1] DEBUG MGT.HRM.Zephyr_HxM.ZephyrHxM - Resetting counters
2021-01-14 19:48:06,369 [1] DEBUG MGT.HRM.Zephyr_HxM.ZephyrHxM - Starting Zephyr HxM
2021-01-14 19:48:36,715 [6] DEBUG MGT.HRM.Zephyr_HxM.ZephyrHxM - Communication timeout elapsed
2021-01-14 19:48:36,715 [6] DEBUG MGT.HRM.Zephyr_HxM.ZephyrHxM - Stopping Zephyr HxM
2021-01-14 19:48:36,716 [6] DEBUG MGT.HRM.Zephyr_HxM.ZephyrHxM - Resetting counters
Anyone got any Idea what I could try else to get it right?
Thanks in advance!
I´m sorry if this is completely dumb question but since the "installation" section says
"Just download the zip from the releases pages, uncompress it and run Cardia.exe."
Am i wrong to assume there should be an exe file in the zip file given from github?
Been trough the files trying to figure out how to get the program running without much luck
Below is the Cardia log for that :(
Hello Michele,
After searching for a long time your program is the only one doing exactly what I am looking for.
But I have an issue: Couldn't launch it on Windows 10.
It appears adter installing Visual Studio that the problem is due to reference to certain DLL:
System.Runtime
System.Runtime.InteropServices.WindowsRuntime
Windows
I found the good DLL for the 2 firsts in .Net Framework but couldn't find for Windows.
Can you help?
Thanks you very much for your program who is so rare.
Regards,
Simon
Hello. I bought a new HR monitor: Magene H603. Reading Gaat gives characteristic.ProtectionLevel = plain.
In
\HRM\HRP\BtHrp.cs:
256: characteristic.ProtectionLevel = GattProtectionLevel.EncryptionRequired;
Forcing ProtectionLevel to EncryptionRequired blocks my device from connecting.
I don't know yet is it necessary to do that.
But if I leave ProtectionLevel as is, everything works fine.
Using Polar H10 with Cardia works great!
However when enabling log, I receive the error "Failed to start logger".
Build something like this in the past and used a graph instead.
It might be more interesting to see the pulse behavior over time instead of just the current value (and min/max).
Remember when I streamed Alien Isolation and my pulse just rocketed up and ppl could see it for a minute (as that was the scale I set) how my pulse reacted to a specific scenario in the game.
Might be able to add that option and create a pull request once I got into the project structure a little more.
I have a Polar H10. What would it take to support another device? I might be able to work on it.
When using solely as is with OBS, are bound to the display capture from Cardia. Depending on the streamers use case, this may, or may not, take up valuable real estate on screen.
The work around would be to do a display capture of each stat separately or make Cardia have different display types that allow for a more compact fit.
One thing that I feel is necessary is to change the LENGTH of the chart. This change would let me shorten display while saving real estate. Maybe a 1/4, 1/2, 3/4, 4/4 chart length options would be nice in conjunction with the already existing ability to modify chart time.
I updated to Windows 11. I tried connecting my Bluetooth Smart HRP and Cardia still searching. My Bluetooth Smart HRP still connecting on my PC with Bluetooth USB Driver. Maybe something need fix with new OS Windows 11.
Hello everyone,
this is not an issue, but a question about cardia in generell. I am kind of new to the usage of pulse devices and would like to know if it is possible to extract the pulse data from cardia and integrate it to the game engine unity ? Is there a documentation for the api ?
Hello!
I was wondering how it was possessing, I've been looking for hours but you seem to be the only one with this solution!
I just got my monitor today and I tryed to dl you're pre-lease but it won't open.
Hope you're doing well.
Keeps timing out so I cannot keep it up on screen. Am a VR player SO I dont know that it had stopped until someone in my chat tells me.
https://www.amazon.co.uk/gp/aw/d/B01N19IR1Z/ref=dp_ob_neva_mobile?th=1&psc=1
Is Cardia compatable with the above (Polar H10)
Where can i find cardia.exe for app installation?
It appears the BPM is reading an average. Is there a way to get it to display real time bpm for things like jump scares?
Any chance you can generate a build for the BT Smart branch?
I have a device and would love to test it out. Thanks.
Howdy uwburn,
I cloned this project earlier this evening because I wanted to investigate adding hex color support. However, I've had a heck of a time getting the solution to build.
The base error I'm getting is: "The referenced component 'Windows' could not be found."
From what I can tell, this would be referring to the Windows 10 UWP APIs. I've attempted to install the latest Windows 10 SDK, but that has not resolved the problem.
Could you run me through how you have the references to the Windows namespace set up on your machine, so that I can get it building on my machine?
Thanks!
i look through the whole file there is no Cardia.exe
dears,
this i not an issue.
it is a question
the last 1.2 version cardia (on W10 last update) may work with these recent ARM-HRM ?
and Cardia has compatibilty with recent smarwatches with integrated HRM ?
if yes what brand and model ?
thx a lot for support
ivo
Whats the issue with supporting the Smart? I received one for Christmas and can pair it with my PC. I would love to be able to use this in some game streams.
I'm willing to help with it, I just don't know where to start. I wasn't sure if there was a reason.
Hi,
I've recently obtained a Zephyr Bioharness sensor, which I hoped will work with Cardia, since it should work similar as HxM, but no luck unfortunately.
The Cardia wasn't able to connect to the device. Do you have experience with other sensors than HxM by any chance?
Thanks,
Martin
Hey, thanks for making the cool application! I'm trying to get it to work with my Wahoo TICKR. However, it's not going smoothly. Log is below:
2018-11-09 02:08:10,705 [1] INFO MGT.Cardia.Program - Starting Cardia
2018-11-09 02:08:13,408 [1] DEBUG MGT.HRM.HRP.BtHrp - Starting HRP
2018-11-09 02:08:13,416 [1] DEBUG MGT.HRM.HRP.BtHrp - Getting GattDeviceService TICKR 1BCF with id \?\BTHLEDevice#{0000180d-0000-1000-8000-00805f9b34fb}_fe2c0b36d397#9&143fc30&2&0022#{6e3bb679-4372-40c8-9eaa-4509df260cd8}
2018-11-09 02:08:13,999 [1] DEBUG MGT.HRM.HRP.BtHrp - Getting HeartRateMeasurement GattCharacteristic 1
2018-11-09 02:08:14,006 [1] WARN MGT.HRM.HRP.BtHrp - Error configuring HRP device
System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
Parameter name: index
at System.Runtime.InteropServices.WindowsRuntime.IVectorViewToIReadOnlyListAdapter.Indexer_Get[T](Int32 index)
at MGT.HRM.HRP.BtHrp.d__77.MoveNext()
2018-11-09 02:08:14,015 [1] DEBUG MGT.HRM.HRP.BtHrp - Stopping HRP
2018-11-09 02:08:14,018 [1] DEBUG MGT.HRM.HRP.BtHrp - Stopping timeout timer
2018-11-09 02:08:14,021 [1] DEBUG MGT.HRM.HRP.BtHrp - Clearing GattDeviceService
2018-11-09 02:08:14,025 [1] DEBUG MGT.HRM.HRP.BtHrp - Resetting counters
2018-11-09 02:11:24,258 [1] INFO MGT.Cardia.Program - Starting Cardia
2018-11-09 02:24:28,536 [1] DEBUG MGT.HRM.HRP.BtHrp - Starting HRP
2018-11-09 02:24:28,546 [1] DEBUG MGT.HRM.HRP.BtHrp - Getting GattDeviceService TICKR 1BCF with id \?\BTHLEDevice#{0000180d-0000-1000-8000-00805f9b34fb}_fe2c0b36d397#9&143fc30&2&0022#{6e3bb679-4372-40c8-9eaa-4509df260cd8}
2018-11-09 02:24:29,126 [1] DEBUG MGT.HRM.HRP.BtHrp - Getting HeartRateMeasurement GattCharacteristic 16
2018-11-09 02:24:29,130 [1] WARN MGT.HRM.HRP.BtHrp - Error configuring HRP device
System.NullReferenceException: Object reference not set to an instance of an object.
at MGT.HRM.HRP.BtHrp.d__77.MoveNext()
2018-11-09 02:24:29,137 [1] DEBUG MGT.HRM.HRP.BtHrp - Stopping HRP
2018-11-09 02:24:29,141 [1] DEBUG MGT.HRM.HRP.BtHrp - Stopping timeout timer
2018-11-09 02:24:29,144 [1] DEBUG MGT.HRM.HRP.BtHrp - Resetting counters
Not wanting to send you down a rabbit hole, I found a program called Bluetooth LE Explorer. I'm not sure if it's using the same API, but when querying my TICKR it showed that HeartRate was characteristic 35, but that the value is "Read Not Permitted". I also noticed that Cardia can only accept characteristics 0-16. I tried characteristic 13, which should be BatteryLevel, but that didn't work either. Here's the log from your test program when trying that:
Getting GattDeviceService TICKR 1BCF with id \?\BTHLEDevice#{0000180d-0000-1000-8000-00805f9b34fb}_fe2c0b36d397#9&143fc30&2&0022#{6e3bb679-4372-40c8-9eaa-4509df260cd8}
Getting HeartRateMeasurement GattCharacteristic 13
Error configuring HRP device System.NullReferenceException: Object reference not set to an instance of an object.
at BtSmartHrp.FrmBtSmartHrp.d__7.MoveNext()
Any chance you know what's going on? It would be great if it's an easy fix.
I love the project and I'm using for on-screen heartrate while streaming games, however I'd love to be able to show a history graph to clearly see spikes and lulls in heartrate over time. Would it be possible to implement this? Happy to contribute financially to help make this feature a reality quickly. Thanks for this project!!
Will this sync up with ANT+ devices? I can't seem to get my Garmin HRM to connect..
Thanks!
On version 1.1.0.2 my Polar H10 works fine, but with 1.2.0.0 I get Bluetooth HRP device initialization failed.
Is there a way to launch the program in Windows 10 ?
We cannot find any executable file in the folder.
EDIT: Looks like we downloaded the code program and not the ''Release v1.2 main'' files.
It works now! Will send donation soon.
Would it be possible to implement this so, once you hit Start, it doesn't stop...even if it loses signal?
The scenario is that I'm running a network of 4 multiplayer and the Pulse Oximeter gets connected/loses pulse then turns off. This turns off Cardia requiring us to hit Start again. Can Cardua stay running, even though it's disconnected? I know it will say 0BPM/Alarm but that's ok!
Possibly have a menu item or settings checkbox to "enable persistent" too?
Thanks!
Dear,
I had a look to your nice project to receive polar H7 signal.
I would be very interested to get a new feature on the application that send the heart rate signal on UDP in order to use it in an other application.
Could you answer via [email protected] ?
We would be very happy to pay the development time in order to get this new feature.
Regards
Alex
my polar H7 no working with Bluetooh smart HRP, that say Bluetooth HRP Devide Not Transmitting but in my Phone it working perfect
Hi!
Would it be possible to add Discord Rich Presence as an option? 😄
Is it possible with this smartwatch? Want to use it as an overlay when streaming horror games but I dont get this work :(
Hello,
Thanks for this project, I really like it!
I just found this other project, also in C#, but that implements ANT+, looks like the job is done and we only need integration of the code.
https://github.com/julr/obs-ant-hrm
Thanks again!!!
I'm trying to connect Mi Band 4 to Cardia, but getting an error
2020-02-06 18:51:32,700 [1] INFO MGT.Cardia.Program - Starting Cardia
2020-02-06 18:51:32,901 [1] DEBUG MGT.Cardia.BtHrpBundle - Retrieving heart rate capable devices
2020-02-06 18:51:32,940 [1] DEBUG MGT.Cardia.BtHrpBundle - Attempting to retrieve async result...
2020-02-06 18:51:33,047 [1] DEBUG MGT.Cardia.BtHrpBundle - Found 1 heart rate capable deices
2020-02-06 18:51:33,057 [1] DEBUG MGT.Cardia.BtHrpBundle - Mi Smart Band 4: id = \?\BTHLEDevice#{0000180d-0000-1000-8000-00805f9b34fb}_Dev_VID&010157_PID&0024_REV&0101_d265dfd98888#9&8a36b41&1&0024#{6e3bb679-4372-40c8-9eaa-4509df260cd8}, default = False, enabled = True, paired = False
2020-02-06 18:51:37,374 [1] DEBUG MGT.HRM.HRP.BtHrp - Starting HRP
2020-02-06 18:51:37,390 [1] DEBUG MGT.HRM.HRP.BtHrp - Getting GattDeviceService Mi Smart Band 4 with id \?\BTHLEDevice#{0000180d-0000-1000-8000-00805f9b34fb}_Dev_VID&010157_PID&0024_REV&0101_d265dfd98888#9&8a36b41&1&0024#{6e3bb679-4372-40c8-9eaa-4509df260cd8}
2020-02-06 18:51:38,049 [1] DEBUG MGT.HRM.HRP.BtHrp - GattDeviceService instatiated successfully
2020-02-06 18:51:38,056 [1] DEBUG MGT.HRM.HRP.BtHrp - GattSession status = Closed, mantain connection = False, can mantain connection = False
2020-02-06 18:51:38,061 [1] DEBUG MGT.HRM.HRP.BtHrp - Getting all GattCharacteristic...
2020-02-06 18:51:38,078 [1] DEBUG MGT.HRM.HRP.BtHrp - GattCharacteristicsResult status Success
2020-02-06 18:51:38,086 [1] DEBUG MGT.HRM.HRP.BtHrp - GattCharacteristic 00002a37-0000-1000-8000-00805f9b34fb: description = , protection level = Plain
2020-02-06 18:51:38,092 [1] DEBUG MGT.HRM.HRP.BtHrp - GattCharacteristic 00002a39-0000-1000-8000-00805f9b34fb: description = , protection level = Plain
2020-02-06 18:51:38,097 [1] DEBUG MGT.HRM.HRP.BtHrp - Getting HeartRateMeasurement GattCharacteristic 0
2020-02-06 18:51:38,106 [1] DEBUG MGT.HRM.HRP.BtHrp - GattCharacteristicsResult status Success
2020-02-06 18:51:38,111 [1] DEBUG MGT.HRM.HRP.BtHrp - GattCharacteristic 00002a37-0000-1000-8000-00805f9b34fb: description = , protection level = Plain
2020-02-06 18:51:38,118 [1] DEBUG MGT.HRM.HRP.BtHrp - Setting EncryptionRequired protection level on GattCharacteristic
2020-02-06 18:51:38,643 [1] DEBUG MGT.HRM.HRP.BtHrp - Registering event handler onction level on GattCharacteristic
2020-02-06 18:51:38,656 [1] DEBUG MGT.HRM.HRP.BtHrp - Reading GattCharacteristic configuration descriptor
2020-02-06 18:51:41,880 [1] DEBUG MGT.HRM.HRP.BtHrp - Setting GattCharacteristic configuration descriptor to enable notifications
2020-02-06 18:51:41,946 [1] WARN MGT.HRM.HRP.BtHrp - Error configuring HRP device
System.Exception: The attribute cannot be written. (Exception from HRESULT: 0x80650003)
в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
в System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
в MGT.HRM.HRP.BtHrp.d__77.MoveNext()
2020-02-06 18:51:41,977 [1] DEBUG MGT.HRM.HRP.BtHrp - Stopping HRP
2020-02-06 18:51:41,986 [1] DEBUG MGT.HRM.HRP.BtHrp - Stopping timeout timer
2020-02-06 18:51:41,992 [1] DEBUG MGT.HRM.HRP.BtHrp - Clearing GattCharacteristic
2020-02-06 18:51:41,998 [1] DEBUG MGT.HRM.HRP.BtHrp - Clearing GattDeviceService
2020-02-06 18:51:42,008 [1] DEBUG MGT.HRM.HRP.BtHrp - Resetting counters
I can't debug Cardia, but i also have my own simple app and i get the same error in my app here:
await characteristic.WriteClientCharacteristicConfigurationDescriptorAsync(CHARACTERISTIC_NOTIFICATION_TYPE);
The exception says: The attribute cannot be written. (Exception from HRESULT: 0x80650003)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.