ivalkou / freeaps Goto Github PK
View Code? Open in Web Editor NEWFreeAPS X - an artificial pancreas system for iOS based on OpenAPS
License: MIT License
FreeAPS X - an artificial pancreas system for iOS based on OpenAPS
License: MIT License
I am not sure if this is implemented already, but it would be a could stepping stone for those who are using oref0 and a preparing to move to oref1.
https://newer-docs.readthedocs.io/en/latest/docs/walkthrough/phase-4/advanced-features.html#advanced-meal-assist-or-ama
https://androidaps.readthedocs.io/en/latest/Usage/Open-APS-features.html#advanced-meal-assist-ama
Again, perhaps this is implemented already as is now just considered part of the main oref0.
I mistakenly had the following configuration:
curve=rapid-acting
usecustompeaktime=true
insulinPeakTime=45
The later is below the minimum insulinPeakTime of Orefs rapid-acting curve.
FAX raises the following:
2021-11-02 19:44:15.900073+0100 FreeAPS[826:128377] [OpenAPS] JavaScriptWorker.swift - createContext() - 23 DEV: JavaScript log: Setting minimum Insulin Peak Time of 50m for,rapid-acting,insulin
every 5 ms from
2021-11-02 19:44:03.263990+0100
until 2021-11-02 19:44:15.979159+0100
delaying every loop calculation considerably
Currently you can see carbs required in the suggestion box, but it would also be useful to have it show in the info panel (for instance) and / or in a widget. To have it pushed as a notification also would be a big plus.
Especially for who is starting with FreeAPS X, it would be great to split the Initial by Advanced preferences, as described in LoopAndLearn
In addition, it would be great to add an "i" info icon for each setting with short description and default/recommended value. This is not to replace the wiki, but it would be a great quick reminder in case the settings are reviewed after a while.
I have added a short video on youtube with menu and description from Loop Dev (tidepool merged version) which I consider very useful and might be an inspiration for FreeAPS X too
https://youtu.be/efZ8aUz9_i0
This request has three parts:
For any bolus, it would be nice to have the bolus icon report the size of the bolus currently in process.
If a requested manual bolus exceeds the Delivery Limits: Max Bolus amount, FreeAPS X (can we use FAX for short?) properly reduces the bolus command sent to the pump to the max bolus amount but does not notify user of this fact.
There is come confusion among new FreeAPS X users as to whether maxIOB includes manual boluses. Empirically it does not. The question is - should maxIOB be used to limit manual boluses and if so, would there need to be two values - one to limit temp basal/SMB values and a different one for true maxIOB from manual bolus as well as the automatic features.
This request to have a button to restore all preferences to default is passed on by someone who did a lot of modifications to preferences while playing around with the simulator.
I guess the short term answer is to completely delete the app from the phone when switching from simulator to a real pump. Does it make sense to have a restore preferences to default button followed by confirm button?
Another suggestion from this person was to reorganize the OpenAPS preferences by initial vs advanced. This might help a new user see the elements they are most like to modify first. I wonder if it make sense to group items that are typically left at default / changed only once (like insulin curve, bolus increment) to a rarely changed section, with the ones folks are most likely to adjust while becoming familiar with the algorithm near the top.
When editing a bolus entry, deleting the number following decimal point also deletes the decimal.
Example: initial entry
1.6
But desired entry is 1.2 u.
If you tap delete then 2, entry is 12 because both the 6 and decimal point are deleted with a single tap of delete key.
FreeAPS is using rileylink_ios for pump comms right? I believe the code for determination of whether or not boluses are successfully delivered is included in this code. In the case of iOS Loop, there are reports if a bolus is certain, uncertain or failed in the insulin delivery event history. Getting similar reports in FreeAPS X would be nice.
Thanks!
Relevant localizable strings (certain / uncertain):
https://github.com/ps2/rileylink_ios/blob/carthage-pin/OmniKit/en.lproj/Localizable.strings
Am working on extending LoopFollow to be APS aware, and notice that in NS, Loop data includes amount remaining in reservoir, among other things:
Not so interest in all of the extra, but making reservoir remaining to NS would be nice, all we have now seems to be:
LoopFollow right now is only looking for Battery and Reservoir ... rest is ignored.
This is not critical at the moment, but it would be desirable to have in a future release. Low priority IMO compared to offline support of G6 with firefly transmitter or bolus cancellation.
In the spirit of Loop's UI, it would be desirable to be able to edit and modify the amount of carbs. Currently one can only delete the carbs.
I have some medical field translation experience, and I really don't want to see libre software subjected
to the kinds of results it produces either.
Happy to help.
Hi, I just changed a pod early, after about 2 days and some hours.
After priming, in the screen with the expiration reminder, the pre-filled Expiration Reminder looks to have carried over the value from the previous pod ("tomorrow at 10:16"). That should probably update to a time closer to 3 days, probably in line with what's shown on the selector below.
See photo.
The selector shows a expiration reminder 48 hours from pod activation (June 10, 16:42).
Suggestion for a new long press gesture on BG value to update/read a new BG from the current DataSource
We suggest creating an alternative to establish daily repetition in the creation of Enact Temp Target. In this way, the definition Eating Soon and others could be created and always repeated on certain days and times.
Even if you choose mg/dL
under Glucose units
within Configuration
-> Preferences
, mmol/L
are still used in the follow places:
Configuration
)Configuration
)This bug is in the 0.1.6 release.
Max Basal has the unit hours
Max Bolus has the unit U/hr
The IOB curve isn't displayed correctly in NS day to day reports.
Version 0.1.23 RC
The transition from Loop to FreeAPS X is at around 16.00 on the 12th. It is marked by a profile switch.
With Loop, the IOB trace is as expected. With FAPSX there is nothing the first hours, then next day just a gradually increasing linear slope.
I have disabled display of basal and COB here to make IOB more prominent.
IOB from FAPSX is displayed correctly in the main view of Nightscout.
It is correctly displayed in reports for AAPS users, so not an issue with oref.
If face is not recognized when enacting a bolus, the "Use Password" selection brings up the keyboard entry for bolus amount.
Hi there, it would be nice to see remaining and original time of a TT in the HUD - behind what's showing currently (Name of preset TT, and value). See marked up screenshot.
Example:
"Name of TT Preset" "value of TT Preset" "Glucose units" "x minutes of y minutes remaining"
BG too High 72 mg/dl - 31 min of 60 min remaining
Something like that. Thanks!
I reckon this is an opportunity to include built in FPU calculator within freeAPS - X for fat and protein
Hello,
Since 0.2.0 / master the battery consumption of my IPhone 12 Pro Max has increased significantly, sc about 30%. There are also more errors (red loop) when I use Spike via the internal server. If I get the data from Nightscout, it's better. I didn't have the problems with 0.1.23. I've been using FreeAPX for a few days. Had tested it with a virtual pump for a few days beforehand. Before that, I had FreeAPS. Use the 722 and OrangeLink.
My son has low basal rate of 0.2 U/hr. He uses Omnipod.
SMB minutes value of:
30 minutes -> 0.10 U
45 minutes -> 0.15 U
60 minutes -> 0.20 U
However, in freeAPS X if you set it to 45 minutes the SMB are rounded to 0.20 units. Possibly because openaps never supported omnipod?
Would it be possible to to feed NS the SMB's instead of:
{
"_id" : ObjectId("6178dda5cb510d6a1d76e776"),
"duration" : 0,
"bolus" : {
"_type" : "Bolus",
"id" : "a4fa258b4911bf47439ef17078d447ef",
"timestamp" : "2021-10-27T05:03:31.360Z",
"amount" : 0.25,
"duration" : 0
},
"insulin" : 0.25,
"eventType" : "Bolus",
"enteredBy" : "freeaps-x",
"created_at" : "2021-10-27T05:03:31.360Z",
"utcOffset" : 0
}
so that they are identified as SMB in this format:
{
"_id" : ObjectId("61754bd4f706c00004b3be1c"),
"eventType" : "Correction Bolus",
"insulin" : 0.75,
"created_at" : "2021-10-23T21:38:24Z",
"date" : 1635025104068.0,
"isSMB" : true,
"pumpId" : 2021102323382440.0,
"NSCLIENT_ID" : "1635025135592"
}
FAX Version: 0.2.1.1
IOS 15.1
Phone: Iphone 12 mini
Emalink
Chosing some values (e.g. 6.1 g/U or 7.8 g/U) CR is automatically reset to 3.0 (see attached movie)
For any bolus that was administered remotely, it would be nice if they showed as a Remote Bolus (instead of just Bolus) on the History page of the application. This way the user can quickly confirm that a remote bolus was administered.
IOB is not displayed without CGM data. This is different from other implementations of oref1 (AAPS, and also OpenAPS?), and might be a bug in FreeAPS X?
IOB should be independent of CGM data, and being able to see IOB during sensor warmup is important.
There is a short discussion on the topic here:
https://t.me/freeapsx_eng/7791
On trying to swap out from MDT pump to Omnipod pod, FreeapsX app crashes at the point of Omnipod insertion. With assistance from Marion Barker and eventually from Joe Moran, it was determined that basal rates that work fine in FreeapsX, in this case 0.925 u/hr basal rate, causes app crash on omnipod insertion if mdt pump is deleted and Omnipod type pump is added. Once Basal rate was changed to be divisible by 0.05 (in this case 0.9) a switch to omnipod could be successfully made. This was tested where the basal rate was changed and also, as an additional precaution, bolus increment was also changed to 0.05 (not 0.025) and the successful switch was accomplished. Unknown at this time if both changes are needed for success. See the documentation attached. Full credit to Marion and Joe for figuring this one out!
20210625_log_prev.txt
20210626_log.txt
podState_Jennifer_Crawford_20210625_1.xlsx
podState_Jennifer_Crawford_20210625_1.csv
podState_Jennifer_Crawford_20210626_1.xlsx
podState_Jennifer_Crawford_20210626_1.csv
Test_Prior_to_Posting_Issue_Report_FAPSX_BasalRate.txt
For meals, a manual upfront bolus is needed that is neither too small, nor too large. This requires some simple arithmetic that is challenging for children. The current bolus recommended equals some fraction of InsulinReq
, but this seems consistently too small for typical meals (30g-60g).
It would be desirable to have a Bolus Wizard similar to AndroidAPS or Loop, e.g.
https://androidaps.readthedocs.io/en/latest/Getting-Started/Screenshots.html
that allows the user to make a reasonable choice and shows the OpenAPS prediction lines.
This brings in rileylink compatible device communication updates from ps2/rileylink_ios used for Loop v2.2.6 and FreeAPS v2.2 (202).
In addition, this adds the patch for improvements to EmaLink and OrangeLink Pro displays.
Start with a fresh download from dev.
Note - this worked on Oct 24, 2021 (dev branch commit 1ccbe74)
If changes have dropped in dev since then, don't try this without checking first.
I will attempt to keep up with changes to dev and I am coordinating with Joe Moran.
I am creating this as an issue so it's available for testing before I create a PR.
I have no way of testing with a medtronic pump.
NOTE: I think v02 is the correct patch to use. v01 will not give battery alerts for Medtronic users.
I have tested the RileyLink Compatible Devices listed below, but I'm not using FreeAPS-X and would like someone who is using it to do the live testing.
The changes I made parallel the changes made in Loop v2.2.6 and FreeAPS v2.2 (202) - suitably modified for the current code found in Dependencies/rileylink_ios in ivalkou/freeaps dev branch.
One new file was added. Patch v01 modifies 20 files, whereas v02 modifies 23 files.
I have tested the following RileyLink Compatible Devices:
The "code" boxes include a copy button if you hover your mouse in the upper right of the box.
git clone --branch=dev --recurse-submodules https://github.com/ivalkou/freeaps
cd freeaps
xed .
rm -rf ~/Library/Developer/Xcode/DerivedData
git apply ~/Downloads/fapsx_patch_ema_orange_v02.txt
Note - there was some whitespace differences, expect to see this message:
../patch/fapsx_patch_ema_orange_v01.txt:226: trailing whitespace.
../patch/fapsx_patch_ema_orange_v01.txt:239: trailing whitespace.
../patch/fapsx_patch_ema_orange_v01.txt:291: trailing whitespace.
../patch/fapsx_patch_ema_orange_v01.txt:298: trailing whitespace.
../patch/fapsx_patch_ema_orange_v01.txt:311: trailing whitespace.
warning: squelched 58 whitespace errors
warning: 63 lines add whitespace errors.
xed .
Note - Ignore immediate error - it will go away, let indexing complete.
OrangeLink and EmaLink have new rows in their display.
If you have an OrangeLink Pro, the Find Device will be present.
If you have an EmaLink, the battery will display.
I believe the communication with OL and Ema will be improved with the modifications added in v2.2.6
Refer to LoopDocs
and the Ema/Orange patch for v2.2.6
These 3 extra files are modified to add a battery alert notification through the Minimed code for the v02 patch and are not modified in the v01 patch.
Sending notifications through Omnipod and Medtronic separately is noted as a HACK in Loop v2.2.6 and was inserted into freeaps.
There is a provisioning profile generated by Xcode/Apple Developer, and that lasts for one year. This decide when the app expires. But users typically don't know when this is, amd itbis NOT 1 year from build date, nor is it related to Dev account expiry date.
In Loop 2.2.6 and FreeAPS (LnL release build 202) you can see the provisioning profile expiration date in the Loop Issue report, and there are also alerts to warn as the date approaches.
This is the commit for Loop adding the expiration date to Issue report:
LoopKit/Loop@a29859c
Such a feature would make FreeAPS X support easier in the long run.
Here is some info for other users about how to find the expiration date in Xcode:
Not sure how to provide information on this, but at present ( latest public beta of IOS 15.x ), the app starts up and looks fine, but if you go into Settings, other then flipping 'Closed Loop' off / on, none of the submenus do anything ...
I loaded the exact same build onto a separate 14.x iPhone, and it works as expected.
I am planning on switching to FreeAPS X on Saturday ( next pump ) using my old phone, but Loop is working fine on 15.x, including the setup sub-menus.
Happy to provide more information if folks want to tell me how ... ? Willing to do a zoom / screen share with someone who knows what they are doing to gather more info also ...
Assess the possibility of incorporating the proposed changes at: https://getrileylink.org/orangelink-loop-patch directly into the FreeAPS X project code, making it easier for the user to compile.
An uncertain manual bolus was not resolved by FreeAPS X:
This was reported to Marion Barker by the user, Sara Goya. Marion and Joe have looked at the pod messages exchanged during this time period and the log.txt messages.
The suggestion is that the pod message exchange optimization be disabled. This optimization is enabled by default in the rileylink_ios code (used by release/v0.2.0 and earlier). Disabling this optimization will reduce the likelihood of having an uncertain bolus.
The instructions for disabling the optimization are provided at the following link:
https://www.loopandlearn.org/freeaps-x#custom
Note:
Would be great if the values generated from Autotune were saved as a profile in our NS site.
All menues under Configuration has a save/save to pump button except the Preferences menu.
I often find myself accidentally toggling a setting while scrolling in the menu mask and sometimes that makes me feel insecure about what the setting was before scrolling.
Found a small typo
mountrcg@dd0564e
Hey Im on 0.2.2 and just realized my reservoir was empty and no Insulin left. I got not alarm or anything and already reached a bg of 346.
Asking for an in advance notification about reservoir reaching a certain threshold and an alarm when reservoir is empty.
There are two screens where seeing the scheduled basal total for the day would be useful.
This would be useful when sensor is not working as blood glucose source, in order to always keep looping
I think the directory ./Dependecies should read ./Dependencies
Upon entering carbs having a stale BG source FreeAPS keeps waiting/idling at the recommendation screen. One can close that screen and the carbs are added. One could also add a bolus afterwards and even get a recommendation. However if not closing the recommendation screen after entering the carbs it would keep on "turning the wheel".
I've noticed on the FreeAPS X main screen that suddenly the Pod was suspended. The error message was "Pod non responding" I've checked the Pod status which actually was responsive. I had to manually suspend and unsuspend the Pod in order to make it work again.
Screen shots and log file are attached.
Is it possible to set carb ratio in less than 0.5 g/U incriminates?
Would be good to make small tweaks like from 5.5 to 5.3 opposed as 5.5 to 5.0.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.