1
0
Fork
You've already forked ubpm
0
forked from LazyT/ubpm
Universal Blood Pressure Manager: manage your blood pressure data on Windows/Linux/macOS, view/print/mail as chart/table/statistics, analyze via SQL queries, import/export data as CSV/JSON/XML/SQL and much more...
  • C++ 84.1%
  • HTML 8.6%
  • QMake 5.4%
  • Shell 1.6%
  • IDL 0.2%
  • Other 0.1%
Find a file
2025年10月18日 23:55:50 +02:00
release fix for missing bluetooth permission on macos 2025年08月05日 16:50:08 +02:00
sources fix missing QElapsedTimer for Qt 6.10 2025年10月18日 23:55:50 +02:00
website fix background color for codeberg 2025年08月06日 16:37:41 +02:00
.gitignore automatic hiding of higher/lower measurements in a time range of 30...300s based on sum/sys/dia/bpm values 2024年09月23日 09:38:48 +02:00
.gitmodules implement hidapi as git submodule and allow building against dynamic library 2024年09月05日 15:33:38 +02:00
LICENSE add missing license 2021年07月10日 18:41:25 +02:00
README.md update readme 2025年08月06日 16:28:28 +02:00

UBPM - Universal Blood Pressure Manager

Description

Tired of the original software supplied by the manufacturer of your blood pressure monitor because it's only available for Windows and requires an internet connection for uploading your private health data into the cloud? Then try UBPM for free and use it on Windows, Linux and macOS!

The current version supports the following features:

  • import data from manual input, file (CSV, JSON, XML, SQL) or directly from supported blood pressure monitors
  • export data to CSV, JSON, XML, SQL, FIT or PDF format
  • migrate data from vendor software
  • view, print and mail data as chart, table or statistics
  • analyze data via SQL queries
  • plugin interface for blood pressure monitors with a computer interface (USB, Bluetooth)
  • online updater
  • context-sensitive help via F1 key
  • style GUI via CSS files
  • multi-language (EN, DE, ES, FR, HU, IT, NL, NO, PL, PT, RU, TA)
  • cross-platform (same look & feel on Windows, Linux, macOS)

Devices

Click to show supported blood pressure monitors
Manufacturer Model Description Memory Interface Comment
BEURER BC58 BC 58 2 x 60 USB (HID/SERIAL) Important, read me first!
Thanks to Andreas Hoppe (HID) for testing, SERIAL untested
BEURER BC80 BC 80 2 x 60 USB (HID/SERIAL) Important, read me first!
Thanks to Paul Müller (SERIAL) for testing, HID untested
BEURER BM55 BM 55 2 x 60 USB (HID/SERIAL) Important, read me first!
Thanks to Werner Panocha (HID) for testing, SERIAL untested
BEURER BM58 BM 58 2 x 60 USB (HID/SERIAL) Important, read me first!
Thanks to "Christel" (SERIAL) for sponsoring the device and Karsten Festag (HID) for testing
BEURER BM65 BM 65 1 x 30 USB (HID/SERIAL) Important, read me first!
Untested, please report
BEURER BC54, BM54 BC 54, BM 54 2 x 60 BLUETOOTH (G) Important, read me first!
Thanks to "Damn" for sponsoring the device
BEURER BM64 BM 64 2 x 120 BLUETOOTH (G) Important, read me first!
Thanks to "5FeetUnder" for testing
BEURER BM81 BM 81 easyLock 2 x 120 BLUETOOTH (G) Important, read me first!
Thanks to "lingzhou125" for testing
HARTMANN BPM25 Veroval Wrist 2 x 100 USB (SERIAL) Thanks to Carsten Presser for testing
HARTMANN DC318 Veroval Duo Control 2 x 100 USB (SERIAL) Thanks to Andreas Hencke for giving access via usbip over internet
HARTMANN GCE604 Veroval Upper Arm 2 x 100 USB (SERIAL) Thanks to Annett Heyder for testing
HARTMANN BPW26 Veroval Compact+ 2 x 100 BLUETOOTH (G) Important, read me first!
Thanks to "Walter" for testing
OMRON HEM-7600T Evolv 1 x 100 BLUETOOTH Important, read me first!
Thanks to Alex Morris for testing
OMRON HEM-7530T Complete 1 x 90 BLUETOOTH Important, read me first!
Untested, please report
OMRON HEM-7380T M7 Intelli IT AFib, X7 Smart AFib 2 x 100 BLUETOOTH Important, read me first!
Thanks to "MarkB" for testing
OMRON HEM-7361T M7/M500 Intelli IT, X7 Smart 2 x 100 BLUETOOTH Important, read me first!
Thanks to "Elwood" for sponsoring the device
OMRON HEM-7342T BP7450 2 x 100 BLUETOOTH Important, read me first!
Thanks to "deviantintegral" for testing
OMRON HEM-7322T M7/M700 Intelli IT 2 x 100 BLUETOOTH Important, read me first!
Untested, please report
OMRON HEM-7155T M4/M400 Intelli IT, X4 Smart 2 x 60 BLUETOOTH Important, read me first!
Thanks to Annett Heyder for testing
OMRON HEM-7151T BP5250 1 x 80 BLUETOOTH Important, read me first!
Thanks to "GlennS" for testing
OMRON HEM-7150T BP7250 1 x 60 BLUETOOTH Important, read me first!
Thanks to Bill Abbas for testing
OMRON HEM-7146T M2 Intelli IT+, X2 Smart+ 1 x 30 BLUETOOTH Important, read me first!
Thanks to "franki29" for testing
OMRON HEM-6232T RS7 Intelli IT 2 x 100 BLUETOOTH Important, read me first!
Thanks to Thomas Wiedemann for testing
OMRON HEM-7322U M6 Comfort IT, M500 IT 2 x 100 USB (HID) Where it all began
OMRON HEM-7222IT BP791IT 2 x 100 USB (HID) Thanks to "Artem-B" for testing
OMRON HEM-7131U M3 IT, M400 IT 2 x 60 USB (HID) Thanks to Simon Peter for testing
OMRON HEM-7080IT M10 IT, M9 Premium 2 x 84 USB (HID) Thanks to Sven Schirrmacher for giving access via usbip over internet
OMRON HEM-790IT 790IT 2 x 84 USB (HID) Thanks to "Sghosh151" for testing
OMRON HEM-730xIT MIT Elite (Plus) 1 x 90 USB (HID) Thanks to Helio Machado for giving access via usbip over internet
SANITAS Try a compatible Beurer plugin
ALL GENERIC GATT Standard 0x1810/0x02A35 BLUETOOTH Important, read me first!

Your device is not yet supported? Check the following options:

  • contact me or open an issue if you have an Omron Bluetooth device, I'll send you a test version
  • read the "Device Plugins" section of the guide and take a look at the plugin sources (usb-hid, usb-serial, bluetooth) to start coding your own plugin if you are a developer
  • allow remote access to your USB device over the internet via usbip so I can access it remotely
  • sponsor a device or donate money for the purchase (see help menu entry "About" for e-mail or "Donation" for payment methods)

Screenshots

Click to show images of the app

Main window with some records...

Chart View Table View Stats View

Print or mail records...

Chart Print Table Print Stats Print

Create or modify records...

Input

Import from supported device...

Import

Migrate from vendor software...

Migration

Analyze records via SQL queries...

Analysis

Show data distribution...

Distribution

Configure your preferred settings...

Settings

Press F1 to get help for the current context...

Guide

Download

Download the latest version for your operating system. The minimum requirements are

Qt5

  • Ubuntu 16.04
  • Windows 7 (no Bluetooth Low Energy support)
  • macOS 10.13

Qt6

  • Ubuntu 20.04
  • Windows 10
  • macOS 12

All 3 files (EXE, DMG, AppImage) contain everything to run UBPM on the target platform without installing anything.

This is a 7zip self extracting archive. It will be automatically extracted to "%temp%7円zxxxxxxxx" and after that the "ubpm.exe" is started. You can copy this directory or extract the file if you want the content.

This is a AppImage package. Don't forget to "chmod +x *.AppImage" after download and execute. You can use the parameter "--appimage-extract" if you want the content.

This is an Apple disc image. You can mount and run or copy the application.

Verify Download

To verify the download was not tampered, a corresponding "*.sig" file is also available. It contains the hash and the signature of the release.

Two external commands are needed to check the integrity and authenticity: "sha256sum" and "minisign". If these are missing on your system please install first:

sha256sum

  • Windows: download busybox and save as "sha256sum.exe"
  • Linux: install via package manager, e.g. apt install coreutils
  • macOS: install via package manager like Homebrew, e.g. brew install coreutils

minisign

  • Windows: download and unzip minisign-win.zip
  • Linux: install via package manager, use PPA or compile from source
  • macOS: download and unzip minisign-osx.zip or install via package manager, e.g. brew install minisign

After downloading the release and signature files open a terminal and copy & paste the commands found in the "*.sig" comment sections.

Example for Linux version 1.0.4:

echo 344e9fe0882d0fdb3057d094cfa6d986e7cbda7d1b23d5f2b734365b5549fce8 ubpm-1.0.4.AppImage | sha256sum -c

verified -> "ubpm-1.0.4.AppImage: OK"
failed -> "ubpm-1.0.4.AppImage: FAILED"

minisign -V -P RWRjSAJt4zCGy2SYhAWoLpygWZv5640wfhLqi/NLnaznnu18+txes5YA -m ubpm-1.0.4.AppImage -x ubpm-1.0.4.AppImage.sig

verified -> "Signature and comment signature verified"
failed -> "(Comment) Signature verification failed"

If you get a failed result, don't use the downloaded file! Maybe it was only corrupted during download, but it's also possible that it was intentionally manipulated to harm you.

The public signing key for UBPM is always RWRjSAJt4zCGy2SYhAWoLpygWZv5640wfhLqi/NLnaznnu18+txes5YA for all releases.

Install from AppStore

  • Linux (developer costs: 0ドル)

You can install UBPM for Linux also from Flathub or Snapcraft.

  • Windows (developer costs: 17,ドル once)

You can install UBPM for Windows also from Microsoft Store.

  • macOS (developer costs: 99,ドル yearly)

This variant cannot be offered due to the excessive fees for a developer account.

Build from Source

Download the latest Qt Online Installer and install for

Qt5

  • "Desktop gcc 64-bit" or "macOS" or "MinGW x.x.x 64-bit"
  • "Qt Charts"
  • "OpenSSL 64-bit binaries" (Windows only)

Qt6

  • "Desktop gcc 64-bit" or "macOS" or "MSVC 20xx 64-Bit" (Bluetooth doesn't work with MinGW)
  • from "Additional Libraries" the "Qt Charts", "Qt Connectivity" and "Qt Serial Port"
  • "OpenSSL 64-bit binaries" (Windows only)
  • Visual Studio and install "Desktop development with C++" (Windows only)

If you prefer to use Qt packages from your Linux distribution make sure that you have installed

  • Qt5 or Qt6 including QtCore, QtGui, QtWidgets, QtNetwork, QtHelp, QtSql, QtSvg, QtXml, QtCharts, QtPrintSupport, QtBluetooth, QtSerialPort
  • libudev
  • libhidapi (if using EXTHIDAPI option)

For SQL database encryption qsqlciper Qt5 or qsqlciper Qt6 is also required.

To build the appbundle for Linux linuxdeployqt and for Windows 7zip is required.

To be uniform on all operating systems you should search and copy "mingw32-make.exe" in the Qt install path (Qt5) or "nmake.exe" in the Visual Studio install path (Qt6) to "make.exe" on Windows (or replace the command "make" with "mingw32-make" / "nmake" below).

  • Checkout the source code via git (or download and extract the zip)

     git clone --recursive https://codeberg.org/lazyt/ubpm
    
  • Change into the UBPM sources directory and generate the Makefile (on Windows run "Qt 5.15.x (MinGW x.x.x 64-bit)" or "Qt 6.x.x (MSVC 20xx 64-bit)" from startmenu instead of using normal command prompt)

     cd ubpm/sources && qmake
    
  • Compile the source code

     make
    
  • Optional install UBPM to system (as root/administrator)

     make install
    
  • Optional create a release appbundle (AppImage, dmg, exe)

     make appbundle
    

Build options

To define optional parameters, you can use

	qmake DEFINES+="option1 option2"

Valid options are

Option Description
APPBUNDLE AppImage, DMG or EXE
FLATPAK Flathub
SNAP Snapcraft
MSIX Windows Store
DISTRIBUTION Maintaining UBPM for a Linux distribution
UPDATE_HIDE Hide the update menu entry and disable online update checks (e.g. for internal distribution package management)
UPDATE_DISABLE Disable the update menu entry and online update checks (e.g. for internal distribution package management)
EXTHIDAPI Use the system hidapi library instead of static built-in (may require additional INCLUDEPATH+=<path> and LIBS+=-L<path>)

Add new Localization

If your preferred language is missing, please contribute a translation. There are 2 ways of doing this:

Online

The easiest way is to translate everything online via Weblate, but you need to register a free account first.

Open the project page and select the component you would like to start with, e.g. "Application". Click on "Start new translation" and set your language (or select an already existing but unfinished language to complete), translate all strings and repeat with the next component, e.g. "Guide" and "Plugins".

It can be helpful to open the "*.ts" file in "linguist", because you can see the context of the string in a real-time view of the user interface.

You can download all components via "Files -> Download ZIP" and test it like described under the Local section below, but skip:

  • application/plugins: all steps and only run lrelease *.ts instead to create the "*.qm" files
  • guide: the step copying "en.json" and use your downloaded "xx.json" instead

Local

The "xx" in the following text stands for your 2 digit ISO-639-1 language code, for example "en" for English.

The commands "lrelease", "lupdate" and "linguist" are part of the Qt Framework. Standalone binaries are also available for Windows. For Linux/macOS use the package manager of your distribution and search for something like "qttools5-dev-tools".

A complete localization consists of 3 parts:

1. Application

To translate the application go to "sources/mainapp" and

  • find and add "TRANSLATIONS ... lng/mainapp_xx.ts" in "mainapp.pro"
  • run lupdate -no-obsolete mainapp.pro to create the "mainapp_xx.ts" with English strings
  • run linguist lng/mainapp_xx.ts and translate all strings
  • click on "File\Save" and "File\Release"
  • new file "mainapp_xx.qm" should be created and contains the application localization
  • to test your new application translation, copy this file to your "UBPM/Languages" directory

2. Plugins

To translate the plugins go to "sources/plugins/vendor" and

  • find and add "TRANSLATIONS ... ../shared/plugin/lng/plugins_xx.ts" in "plugins.pro"
  • run lupdate -no-obsolete plugin.pro to create the "plugins_xx.ts" with English strings
  • run linguist ../shared/plugin/lng/plugins_xx.ts and translate all strings
  • click on "File\Save" and "File\Release"
  • new file "../shared/plugin/lng/plugins_xx.qm" should be created and contains the plugins localization
  • to test your new plugins translation, copy this file to your "UBPM/Languages" directory

3. Guide

To translate the guide, go to "sources/mainapp/hlp" and

  • copy "help/en.qh*" to "help/xx.qh*"
  • change <file>../en.qch</file> in "xx.qhcp" to <file>../xx.qch</file>
  • change <virtualFolder>en</virtualFolder> in "xx.qhp" to <virtualFolder>xx</virtualFolder> and translate all section titles
  • copy "html/lang/en.json" to "html/lang/xx.json" and translate all strings
  • copy "html/img/en" to "html/img/xx" and replace all images with your localized screenshots
  • find and add "for LNG ... xx; do" in "gen-help.sh"
  • run this script to build the "xx" guide (requires static-i18n installed)
  • new files "xx.qch" and "xx.qhc" should be created and contains the localized guide
  • to test your new guide translation, copy these files to your "UBPM/Guides" directory

Now start UBPM, switch to your new language and test everything...

Privacy Policy

UBPM is an open source application that is provided free of charge and intended for use as is.

It does not require a user account and does not collect, transmit or share any personal data. All user-defined data (name, birthday, gender, height, weight, blood pressure, heart rate, ...) is used only internally and stored locally.

Some features (checking for updates, opening links, sending emails) require an Internet connection to third-party servers, which may log technical information about the connection and store cookies.

Hardware access (Bluetooth, HID, Serial) is used only on request to import data directly from supported blood pressure monitors.

The software does not contain advertising, trackers or telemetry.

There is no business model and the only income is voluntary donations.

Credits

UBPM is based on

Thanks for this great software! 👍