## Medtronic vendor The medtronic vendor is backed by [decocare]. **Decocare** supports all paradigm series pumps. Different pumps in the paradigm series have different features, decocare is aware of many of these differences but not all. Adding a medtronic device to openaps also requires the **SERIAL** number of the pump. This is a six digit number, it's printed on the back of the pump. On the bottom right, there is a bar code, and right above that is the text: `SN PAR123456U`. In this case, the serial number is `123456`. It's also on the escape/status screen, scroll down, below the date, it will say: `S/N# 123456`, again the serial number would be `123456`. For example purposes, we'll use the serial number `123456` here, you should use your pump's serial number. Also, for the purposes of this guide, we will not be issuing any commands that cause changes. For most of this tutorial, you do not need access to a medtronic pump, or even the carelink stick, this tutorial focuses on understanding how **devices** are related to **uses**. ## Configuring medtronic device Let's add a `medtronic` **device** *named* `pump`. Remember that adding a device enables us to **use** it, and there's a `medtronic` vendor. `openaps device add pump medtronic -h` This one works a little different, it wants the serial number after: ``` usage: openaps-device add name medtronic [-h] serial Medtronic - openaps driver for Medtronic positional arguments: serial optional arguments: -h, --help show this help message and exit ``` So adding the serial to the end: ``` $ openaps device add pump medtronic 123456 added medtronic://pump ``` ## openaps use pump Based on our prior experience knowing that `device` enables **use**, let's check out our own `openap use -h` to see how it's changed. ``` [...] Known Devices Menu: These are the devices openaps knows about: device Name and description: howdy process - a fake vendor to run arbitrary commands pump Medtronic - openaps driver for Medtronic Once a device is registered in openaps.ini, it can be used. ``` Now there's a **pump** device in the **use** menu! What can it do `openaps use pump -h` ``` usage: openaps-use pump [-h] USAGE ... optional arguments: -h, --help show this help message and exit ## Device pump: vendor openaps.vendors.medtronic Medtronic - openaps driver for Medtronic USAGE Usage Details Session session for pump bolus Send bolus command. [#warning!!!] filter_glucose_date Search for glucose pages including begin and end dates (iso 8601). filter_isig_date Search for isig pages including begin and end dates (iso 8601). iter_glucose Read latest 100 glucose records iter_glucose_hours Read latest n hours of glucose data iter_pump Read latest 100 pump records iter_pump_hours Read latest n hours of pump records model Get model number [#oref0] [#recommended] [#safe] mytest Testing read_settings read_basal_profile_A Read basal profile A. read_basal_profile_B Read basal profile B. read_basal_profile_std Read default basal profile. read_battery_status Check battery status. [#oref0] read_bg_targets Read bg targets. [#oref0] read_carb_ratios Read carb_ratios. [#oref0] read_clock Read date/time of pump [#oref0] read_current_glucose_pages Read current glucose pages. read_current_history_pages Read current history pages. read_glucose_data Read pump glucose page read_history_data Read pump history page read_insulin_sensitivies XXX: Deprecated. Don't use. Use read_insulin_sensitivities instead. read_insulin_sensitivities Read insulin sensitivities. [#oref0] read_selected_basal_profile Fetch the currently selected basal profile. [#oref0] read_settings Read settings. [#oref0] read_status Get pump status read_temp_basal Read temporary basal rates. [#oref0] reservoir Get pump remaining insulin resume_pump resume pumping. scan scan for usb stick set_clock Set clock. set_temp_basal Set temporary basal rates. [#oref0] settings Get pump settings status Get pump status (alias for read_status) suspend_pump Suspend pumping. ``` This is a list of all things the `medtronic` **vendor** knows how to do. These things have all been exposed in `openaps` as a single `use` in a **uniform** and **reproducible** way. Even though our `howdy` example device was completely different, the way we **use** it is identical to the `pump` device. Get some of the help for how to use a pump: * `openaps use pump model -h` * `openaps use pump reservoir -h` * `openaps use pump read_clock -h` * `openaps use pump iter_pump_hours -h` ## Understanding how to talk to medtronic This portion is the first portion of the tutorial where we will actually talk to the pump using the carelink usb stick. Everything prior to this has been configuration. Most of the time, Medtronic's wireless interface is off. There's a special command that enables wireless communication for several minutes, this is configurable in using the `minutes` parameter in the `pump.ini` **extra** ini. The medtronic vendor here tracks whether or not the session is expired, and renews it before continuing, this RF initialization could take an extra 30 seconds. So, how fast does `openaps use pump model` take the first time? How long does it take if you repeat it several times? Try the following commands, these are all safe, read-only commands: * `openaps use pump model` * `openaps use pump reservoir` * `openaps use pump read_clock` * `openaps use pump iter_pump_hours 2` * If you are using Medtronic for CGM, try `openaps use pump iter_glucose_hours 2` If you are going to build tools to improve diabetes therapy, which pieces of data might you need to gather? You can interactively **use** each of these features to view and inspect the data. [decocare]: https://github.com/bewest/decoding-carelink