/openomni

Documentation and library for decoding omnipod communications.

Primary LanguageJupyter NotebookMIT LicenseMIT

OpenOmni

Documentation and python library for decoding omnipod communications. Join the Slack channel to discuss this work.

Build Status

Current Status

We have figured out the RF modulation. See the RF Modulation wiki page for more details and tools. We have also figured out packet structure, including the packet CRC and message CRC(!) We are now working on decoding meaning of the bytes in the body for each of the Commands.

Areas to focus on

There are two ways we could use help, beyond trying to crack the two byte crc at the end of messages (though if you want to tackle that, please do!):

  1. Capture data from different pods and commands using omni_listen_rfcat. If you can document what was being done with the PDM while the packets were recorded, that would be a plus, but raw data can be helpful too. Submit these as gists or post them to #shared-files in the Slack channel.
  2. Start decoding fields for individual commands. Even without knowing how to generate the CRC, the raw data for commands and responses is clear, so it is possible to start decoding which bytes mean what. A good way to start doing this is to repeatedly perform a certain type of action on the PDM tweaking 1 thing each time, and inspecting the generated packets to see which bytes differ.

What you'll need

One of the following. If you use the TI stick, you will need to flash firmware onto it using a CC-Debugger.

Installation

Prerequisites:

  • python 2.7
  • pip
  • rfcat
  • PyUSB - you can install this with pip: pip install pyusb, or sudo pip install pyusb
  • On mac, you'll need libusb. brew install libusb (If you don't have Homebrew installed, go here first: https://brew.sh/)

You can install openomni in editable mode like this:

git clone https://github.com/openaps/openomni.git
cd openomni
pip install -e .

** Note: You may need to add 'sudo' before the pip install line if you are using a system python install.

=======

** Please note the details below are related to a project created to better understand how the omnipod communicates **

Stay Up to Date!

Join the Slack channel to discuss this work.

Contributors on Slack: (in no particular order)

(To view, you must be logged into the OmniAPS Slack channel. Click here to join.)

Rules for Contributing to this Repository

  • All code updates require the use of Pull Requests.
  • Documentation updates can be made directly on master.

https://files.slack.com/files-pri/T0B2X082E-F0D390KTP/download/pod_datacap_23oct2015.odt