Giter Site home page Giter Site logo

omnicore's Introduction

OmniCore

OmniCore is a hardware and software platform for controlling and automating drug delivery using Omnipod insulin pumps and Dexcom sensors.

This is the public repository for the OmniCore Mobile App, which can be used to control OmniCore Hardware.

Tale of two updates (17.Nov.2021)

Update 1: OmniCore Oyster is indefinitely delayed, until either the silicon crisis is resolved or we can pay wholesalers large sums to bring it to market. So we will be launching a crowd-funding campaign to be able to launch the product as soon as humanly possible. Links will follow.

Update 2: Instead of waiting for Oyster, we have decided to launch OmniCore RADD to the general public! We are adding support for RileyLink back into OmniCore and turn it into a 'companion app' so if you own a legacy setup of RileyLink, xDrip and Omnipod Eros you will be able to see and live RADD for yourself. We will also add Omnipod Dash support to the OmniCore app in due time, if the Oyster gets further delayed.

See the FAQ for more details on what RADD is and does.

Announcement

We have been working hard behind closed doors on a system to address our current woes with existing products.

Please hold for while we're opening the doors and readying the full announcement of brand new features of the OmniCore ecosystem with more details.

Supported end devices

Active:

  • Omnipod Eros
  • Omnipod Dash
  • Dexcom G6

Planned:

  • Libre 2
  • Dexcom G7
  • Libre 3

Features and Components

Monitor and control pods and cgms concurrently.
Remote access worldwide via cellular IOT networks, local access using bluetooth on your mobile phone.
OmniCore RADD closed loop system with edge computing. (beta)

OmniCore Oyster

A stand-alone hardware device for enabling communication to end devices over the OmniCore API.

  • Compact design for bulk minimization.
  • Autonomous operation that doesn't require a constant connection to a mobile device or an app.
  • Reliable and fast communication with end devices, immune to errors and inconsistencies arising from dependencies.
  • Excellent stability and battery life thanks to latest generation of hardware components and the software architecture
  • Worldwide network coverage including deep indoors and in wide areas, pre-installed e-sim
  • Local connectivitiy over BLE with optional long-range modulation
  • Built-in motion sensor and GPS
  • Waterproof design, wireless charging, onboard interface for quick actions, over the air updates
  • OmniCore RADD ready

OmniCore Mobile App (this repository)

An Android mobile app for interacting with the OmniCore Oyster locally over BLE or over the internet.

  • Manage user profiles and OmniCore Oyster devices
  • Register, control and monitor end devices
  • Manage and monitor OmniCore RADD

OmniCore RADD (Reactive Adaptive Drug Delivery)

OmniCore's closed loop algorithm for Type I Diabetes therapy automation. A novel decision making instrument that removes guesswork out of the equation. Currently in a strict opt-in beta.

  • Detection of variance in insulin absorption per infusion site.
  • Detection of insulin effect based on past and current data.
  • Administration of basal insulin, independent of time-of-day.
  • Administration of meal-time insulin without the need for user interaction.
  • Overlapping administration of insulin and glucagon for shortening periods of hyperglycemia.
  • Administration of glucagon to prevent hypoglycemia.

See also: OmniCore RADD FAQ

OmniCore Web

The web interface for providing the same set of functionality as the mobile app.

OmniCore API

A unified open API for communicating with OmniCore Oyster via BLE and over the internet.

omnicore's People

Contributors

jordan-damron avatar winemug avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

omnicore's Issues

Time differenz between OmniCore and AAPS (basal rate)

Hi,

I am using a local profile in AAPS. I set different basal rates for every hour. AAPS shows the correct time (Europe/Berlin) and the correct basal rate. OmniCore is using the basal rate from 2h ago. Example (time: basl rate)

AAPS Profile basal rate
12-13: 0,5
13-14: 0,6
14-15: 1
15-16: 1,2
16-17: 1

OmniCore uses:
AAPS Profile basal rate
14-15: 0,5
15-16: 0,6
16-17: 1

OmniCore shows the correct time (only in 12h format) but it is the correct time. Does anybody else experience this behavior?

RL Transmision level autoadjust: level is lowered on transmission errors?

Reviewing the implementation it seems to be by design, not a bug.
Only reason I can think of is RL preventing battery draining when the Pod is out of range.
But doesn't this add to communication failures due to temporary range problems?

Logic suggest a transmission level increase to regain connection to the Pod?
(This also explains why I bringing the Pod close to RL helps when trying to restoring connection)

Rileylink Error: RadioDisconnectPrematurely

Whenever I press "update" or try to activate a pod, I get this error:

Screenshot_20190923-134309

I have a new rileylink, and I am using the Omnicore 1.0.0.702.
Phone is a Pixel 3 running Android 10

I can get my phone connected, and the green LED on, but I have yet been able to successfully activate a pod with Rileylink and Omnicore.

This seems like the same issue which was addressed before (issue #3), however when I follow those steps, it is still not working for me.

Any ideas?

Intermittent communication loss with xdrip+

On AAPS (2.3.OmniCore.1. 0.0.703) with xDrip+ (5c91be6-2019.08.20) Samsung S8 (Android 9), Closed loop. Everything been working well for last two month. Issue started about 24 hours ago:

No BG value that shows in xDrip is showing in AAPS for last day or so (home screen or xDrip screen of AAPS.) Only change was returning from a trip and switching back to Primary nightscout profile (from a temp profile offset for a different timezone). Issue started about 10 hours after switching profile. Have checked xDrip (Broadcast locally, send display Glucose, send even extremely noisy signals, identify receiver) and AAPS (BG from xDrip) common settings. All normal and have not been changed. Setting Nightscout as source helps AAPS get BG, but delayed and needs internet. Recommendations/suggestions? TIA.

Increased RADD response time

Server side resources not utilized optimally.

An enhanced queuing algorithm is needed. One suggestion: Instead of distributing resources equally among tasks, individual performance (per client) can be measured and be used for weighting future resource allocation.

No communication between omnicore and AAPS

Omnicore was able to start and activated a pod, it is connected to the pod/RL. However AAPS keeps alternating between "Connecting for Xs" and Pump suspended. It appears that AAPS is unable to connect/communicate with omnicore. "Accept AndroidAPS commands" is enabled in the settings page of OmniCore.

Problems re-establishing connection to RileyLink (green LED on)

Observation:

  • RL is connected (green LED on)
  • OmniCore is unable to send messages to RL/Pod and will retry endlessly
  • BT Toggle does not help.

Review of the code:
Shows a RileyInstance is only created once for the lifetime of the OmniCore application. When this instance gets problematic this is (1) not detected by OmniCore/EnsureDevice, nor will the instance be recreated (2) to restore proper RL/Pod communications.

Suggestion:
Build in some detection or failsave for (1) then execute (2)?

Unexpected Pod failure (aka "Screamer")

OmniCore 1.0.702 alpha (Know issue:)

Unexpected number of Pod failures ("screamer") within the expected lifespan of a Pod, not related to internal Pod failures.

Additional note:
In my experience most of them are within a 24 hour period after activation?
Initial database analysis suggest this might be caused by to many baselrate changes?

Cant Build the dev

Hi, I wanted to test the dev because of the current changes, unfortunately I get a Java error again and again during the build.
Unfortunately I'm a little noob when it comes to programming, so if it's a mistake on my part. can you tell me how i can fix it?

Lg

Error:Internal error: (java.lang.ClassNotFoundException) com.google.wireless.android.sdk.stats.IntellijIndexingStats$Index java.lang.ClassNotFoundException: com.google.wireless.android.sdk.stats.IntellijIndexingStats$Index at java.net.URLClassLoader.findClass(URLClassLoader.java:382) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at com.intellij.util.indexing.counters.IndexCounters.<clinit>(IndexCounters.java:34) at com.intellij.util.indexing.impl.MapReduceIndex.<init>(MapReduceIndex.java:85) at org.jetbrains.jps.backwardRefs.index.CompilerReferenceIndex$CompilerMapReduceIndex.<init>(CompilerReferenceIndex.java:232) at org.jetbrains.jps.backwardRefs.index.CompilerReferenceIndex.<init>(CompilerReferenceIndex.java:79) at org.jetbrains.jps.backwardRefs.JavaCompilerBackwardReferenceIndex.<init>(JavaCompilerBackwardReferenceIndex.java:12) at org.jetbrains.jps.backwardRefs.JavaBackwardReferenceIndexWriter.initialize(JavaBackwardReferenceIndexWriter.java:79) at org.jetbrains.jps.incremental.java.JavaBuilder.buildStarted(JavaBuilder.java:148) at org.jetbrains.jps.incremental.IncProjectBuilder.runBuild(IncProjectBuilder.java:363) at org.jetbrains.jps.incremental.IncProjectBuilder.build(IncProjectBuilder.java:178) at org.jetbrains.jps.cmdline.BuildRunner.runBuild(BuildRunner.java:139) at org.jetbrains.jps.cmdline.BuildSession.runBuild(BuildSession.java:302) at org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:135) at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler.lambda$channelRead0$0(BuildMain.java:228) at org.jetbrains.jps.service.impl.SharedThreadPoolImpl.lambda$executeOnPooledThread$0(SharedThreadPoolImpl.java:42) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)

RileyLink Communication Errror

Mobile Phone is connected via bluetooth with the RileyLink (green LED3 on).
Pod activation fails. OmniCore Conversations shows first "Error communicating with RileyLink (retry: #3)" and then "Message exchange failed: RadioDisconnectPrematurley"

RileyLink is new (order from July 2019), so it should have the latest firmware. OmniCore is Version 1.0.0.702 build with VisualStudio & Release Version.
When trying the test => Radio connection test, the app closes and reopens.

There are little no no blue flashing on the Rileylink.

Screenshots:
Screenshot_20190711-230253
Screenshot_20190711-230301

IOB Updated with all insulin in treatment even if aborted

AndroidAPS: 2.5.1 (OC702AAPS251-2020.02.13-00-09
OmniCore: 1.0.0.702

To reproduce:

  1. Enter a treatment using "calculator", enter insulin in "correction", confirm treatment.
  2. When insuling have started to pump, abort treatment.

Expected: IOB is updated with delivered insulin only.
Actual: IOB is updated with insulin dose entered in (1).

Problems re-establishing connection to RileyLink (green LED off)

Problem description:
When OmniCore loses the connection to RileyLink (green LED goes off) it does not reliably reconnect most of the time.

Work around:
Toggling Bluetooth triggering into "Searching for RileyLink" (OmniCore Conversations).
It then reconnects most off the time (LED goes on) without problems.

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.