Code Monkey home page Code Monkey logo

openomni's Introduction

OpenOmni

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

Current understanding of signal:

  • 433.923MHz center signal
  • 2-FSK, with 26.37kHz deviation
  • 40625bps data rate (before manchester)
  • Manchester coded, non-ieee
  • 8-bit crc

Current understanding of command bytes:

  • Status: 0e01
  • POD Status Response: 1d18
  • POD Status Response with Temp Basal Running: 1d28
  • Bolus: 1a0e
  • Temp Basal: 1a0e
  • Resume Basal Insulin: 1a1e
  • Basal Program: 1a1#
  • Cancel Bolus: 1f05

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

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 below is notes about a project created to better understand how the omnipod communicates **

RF HARDWARE used to RECEIVE transmissions from PDM or Pod

For SDR capture, you can use one of the following devices, or any SDR capable of capturing 2048000 samples per second at the 433.90MHz rf range. You'll need software to demodulate this data (see below):

For hardware based demodulation, you can use a cc111x based device like one of these:

SOFTWARE for capturing/decoding SDR signals

  • SDR# - to capture sdr iq data
  • omnipod_decode This code will extract packets of correct length from raw sdr iq data, and will verify CRCs.
  • baudline will show signal characteristics

SOFTWARE for doing hardware based demodulation:

Example signal from PDM to request a Status response from Pod (containing Basal routine, IOB, etc)

We may add more content to the wiki here Wiki

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


openomni's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.