Problems receiving measurements from Nonin 3150 Oximeter using healthd and test_healthd.

114 views
Skip to first unread message

Andreas Hansen

unread,
Jan 4, 2017, 12:28:07 PM1/4/17
to Antidote: open-source IEEE 11073 stack
Hi

I'm trying to establish a bluetooth communication with the "Nonin 3150 Oximeter" (Wrist OX2 with oxygen saturation + pulse rate) using HDP and the IEEE 11073-20601 protocol. To do this, I have installed Antidote and followed the instructions from the "Program Guide".

In short, what I have done is:
(1) Paired my device to a bluetooth dongle.
(2) Started "$healthd" in one terminal window.
(3) Started "$./test_healthd.py" in another terminal window.

I have configured the Nonin to run in the data format "DF13 with ATR" (Attempt-to-Reconnect) enabled which uses a two channel connection method where the the Nonin 3150 initiates a connection whenever a new measurement is available. The problem is that no measurements are received and printed in the terminal windows.

My system software versions:
* Ubuntu 14.04 (Linux 4.4.0-57-generic x86_64 x86_64 x86_64 GNU/Linux)
* BlueZ v4.101
* D-Bus v1.6.18
* Glib v2.19
* Libusb v1.0
* Antidote (latest version downloaded from https://github.com/signove/antidote)

Here is the debugging outputs I get:

Output from: $ healthd
------------------------------
DEBUG   <manager_init in manager.c:162> Manager Initialization
DEBUG   <ext_configurations_load_configurations in extconfigurations.c:278> Zero-sized ext config buffer
DEBUG   <manager_start in manager.c:465> Manager starting...
DEBUG   <init in plugin_bluez.c:1287> Starting BlueZ link...
DEBUG   <connect_adapter in plugin_bluez.c:876> connecting adapter: /org/bluez/556/hci1
DEBUG   <connect_adapter in plugin_bluez.c:916> Getting known devices list
DEBUG   <connect_adapter in plugin_bluez.c:876> connecting adapter: /org/bluez/556/hci0
DEBUG   <connect_adapter in plugin_bluez.c:916> Getting known devices list
DEBUG   <connect_device_signals in plugin_bluez.c:782> device to be connected: /org/bluez/556/hci0/dev_00_1C_05_00_BF_0C
DEBUG   <get_device_addr in plugin_bluez.c:303> Device address is 00:1C:05:00:BF:0C
DEBUG   <srv_object_class_init in healthd_ipc_dbus.c:1142>


Output from: $ ./test_healthd.py
------------------------------------------
Starting...
Configuring...
Waiting...


Output from "$ hcidump -i hci0" when the Nonin starts up for sending a measurement.
------------------------------------------------------------------------------------------------------------------
HCI sniffer - Bluetooth packet analyzer ver 2.5
device: hci0 snap_len: 1500 filter: 0xffffffffffffffff
> HCI Event: Connect Request (0x04) plen 10
    bdaddr 00:1C:05:00:BF:0C class 0x000914 type ACL
> HCI Event: Command Status (0x0f) plen 4
    Accept Connection Request (0x01|0x0009) status 0x00 ncmd 1
> HCI Event: Command Complete (0x0e) plen 10
    Link Key Request Reply (0x01|0x000b) ncmd 1
    status 0x00 bdaddr 00:1C:05:00:BF:0C
> HCI Event: Connect Complete (0x03) plen 11
    status 0x00 handle 71 bdaddr 00:1C:05:00:BF:0C type ACL encrypt 0x00
> HCI Event: Command Status (0x0f) plen 4
    Read Remote Supported Features (0x01|0x001b) status 0x00 ncmd 0
> HCI Event: Command Status (0x0f) plen 4
    Unknown (0x00|0x0000) status 0x00 ncmd 1
> HCI Event: Read Remote Supported Features (0x0b) plen 11
    status 0x00 handle 71
    Features: 0xff 0xeb 0x8d 0xf8 0x1b 0x08 0x00 0x00
> HCI Event: Command Status (0x0f) plen 4
    Remote Name Request (0x01|0x0019) status 0x00 ncmd 1
> HCI Event: Remote Name Req Complete (0x07) plen 255
    status 0x00 bdaddr 00:1C:05:00:BF:0C name 'Nonin_Medical_Inc._616315'
> HCI Event: Disconn Complete (0x05) plen 4
    status 0x00 handle 71 reason 0x13
    Reason: Remote User Terminated Connection

I have looked through the other forum posts, but without luck in finding a solution.

Can you help me figuring out what I'm doing wrong?

Best Regards,
Andreas

Andreas Hansen

unread,
Jan 4, 2017, 1:20:16 PM1/4/17
to Antidote: open-source IEEE 11073 stack
I would like to add some more that might or might not be useful.

Running:
(1) $ healthd
(2) $ ./test_healthd.py
(3) $./sample_bt_agent 00:1C:05:00:BF:0C

results in a "connection initiation error":

Output from running $./sample_bt_agent 00:1C:05:00:BF:0C
---------------------------------------------------------------------------------
IEEE 11073 sample agent
DEBUG   <agent_init in agent.c:133> Agent Initialization
DEBUG   <agent_start in agent.c:369> Agent starting...
DEBUG   <init in plugin_bluez.c:1287> Starting BlueZ link...
DEBUG   <connect_adapter in plugin_bluez.c:876> connecting adapter: /org/bluez/556/hci1
DEBUG   <connect_adapter in plugin_bluez.c:916> Getting known devices list
DEBUG   <connect_adapter in plugin_bluez.c:876> connecting adapter: /org/bluez/556/hci0
DEBUG   <connect_adapter in plugin_bluez.c:916> Getting known devices list
DEBUG   <connect_device_signals in plugin_bluez.c:782> device to be connected: /org/bluez/556/hci0/dev_00_1C_05_00_BF_0C
DEBUG   <get_device_addr in plugin_bluez.c:303> Device address is 00:1C:05:00:BF:0C
DEBUG   <create_health_application in plugin_bluez.c:1101> Created health application: /org/bluez/health_app_5
*** Device rediscovered
Main loop started
DEBUG   <plugin_bluez_connect_cb in plugin_bluez.c:1535> connection initiation error: Method "CreateChannel" with signature "os" on interface "org.bluez.HealthDevice" doesn't exist


Another test I have done is to run the 'hdp_oxi_sink' from https://github.com/signove/hdpy/blob/master/scripts/hdp_oxi_sink. This seems to work giving me measurements:

$ ./hdp_oxi_sink
----------------------
/usr/lib/python2.7/dist-packages/pkg_resources.py:1031: UserWarning: /home/yoga/.python-eggs is writable by group/others and vulnerable to attack when used with get_resource_filename. Consider a more secure location (set with .set_extraction_path or the PYTHON_EGG_CACHE environment variable).
  warnings.warn(msg, UserWarning)
Added /org/bluez/556/hci1
Added /org/bluez/556/hci0
Device created: /org/bluez/556/hci0/dev_00_1C_05_00_BF_0C
Obs: bt alive
SDP query failed
Device 140095777627472 discovered ('00:1C:05:00:BF:0C', 4097)
queue_event_process 1 0
HDP: MDLRequested: conf 1
Channel 140095755908176 from 140095777627472 up
queue_event_process 5 0
FD acquired
Data received
IEEE opcode received: e2
IEEE association request
Response sent
Data received
IEEE opcode received: e7
IEEE agent data: d 1d

SpO2 Level: 94, Beats/second: 85

Reply all
Reply to author
Forward
0 new messages