-
Notifications
You must be signed in to change notification settings - Fork 46
Home
Welcome to the openomni wiki! Here we describe how the Omnipod and PDM communicate with each other.
Because of the pod's safety mechanism of erring out when it gets direction from two devices, we have to completely replicate the PDM. Sending a single basal will not be enough. It's the initialization, setting the programs, etc. And we have to have the ability to set up at least some of the basic profiles in whatever application we choose to program the pod so that it can have the normal basals in addition to all the temporary changes. Read further if you want to help decode the messages to be able to write device drivers for use with OpenAPS, LoopKit or AndroidAPS in combination with an Omnipod!
- The protocol is described top-to-bottom at Protocol.
- Communications between PDM and pod are sent over radio frequencies.
- The lowest level of information exchange is packet exchange.
- Packets are assembled into a specific message structure.
- We've managed to get the CRC and Nonce decoded to establish a proper communication between the PDM and POD.
- We are currently working on understanding the different Message Types.
Please add pages using this convention containing packet captures, along with what you were doing to cause the packet exchange. For example, if it's a temp basal command, describe the % change and duration you selected in the UI, and then add your capture here:
We currently focus on the 1D status response. So if you can help decipher this first, that would be great!
We also need help in development of 3 types of device drivers to integrate in the 3 main solutions currently available:
- OpenAPS GoLang device driver
- AndroidAPS Android device driver
- Rileylink Swift device driver for use with LoopKit
We first started decoding with this Python openomni RFcat reader, but when we needed extra data from the sub messages which were being send, we switched to a more detailed C program running on Linux to sniff RF packets using a much cheaper RTLSDR dongle.
Run Linux or create a Virtual Machine with Linux using Virtualbox or Parallels and go to this repo to install the software: https://github.com/ps2/rtlmm
For the previously used openomni setup you can follow the readme guide on OSX computers on the main page. or for a windows machine this install guide: Alternate installation instructions for using RFcat