Early note: Since iOS 12.1 was released, you will need (at a minimum) Xcode 10.2 and macOS 10.14.3 to build...so you may need to update your Xcode and/or macOS. Please check that you meet the minimums first.
If you already have built Loop previously using the same computer...you will likely need to do two things...
update carthage by using the second blue box's directions here, this step is necessary only once and only if you haven't done it within the last month or so. This is a recent udpate, relatively speaking. So some people will have already done it. Doing it twice will not hurt anything though.
if your build fails (after making sure you've done the step above), you probably need to run carthage update as described here, noting that your download folder will be called loop-jojo or loop-jojo-beeps.
But, basically, building JoJo branch is pretty much like the process that is described in the Update App page in Loop docs, except that you are downloading JoJo from the link below and opening that download in Step 3.
My branches are in no way to be considered official Loop releases or related to anything Tidepool Loop. These are just me as a mom looking to make DIY tweaks to Loop for things that I consider helpful for my daughter. The work in my branches are begged, borrowed, and cloned from many others in the DIY community...special thanks in Jojo branch development to Michael Pangburn, Ken Stack, Jason Calabrese, Dragan Maksimovic, and Jan Dittmer. They are responsible for the work in the non-standard features that are contained in my JoJo branch. I simply pieced their various work products together in one place.
I have customized branches of Loop app right now that are based on Loop's current omnipod-testing branch. My daughter has been running a version of this branch for about a month and some of my tester-friends have also been voluntarily testing out the branch for awhile, too. Doesn't mean there couldn't be bugs, but I'm comfortable sharing now. As with everything, read up first about what the differences are from the standard Loop app features. These are the following branches available: jojo and jojo-beeps
Do not play around with my other branches (including master), as those are frequently just testing things out and may have undesirable "half-way" done things in there.
Overrides: Oh boy...this is a big one. Overrides in the place of the old "workout mode" are in this branch. This is the updated version from what used to be in Holly branch. As this is still in testing mode...please, as before...watch behaviors of Loop carefully as you use an override. Please report any odd behaviors, if you see them. Overrides are in 10% increments. Overrides require an emoji "symbol" and name before you will be allowed to save them. Override presets are made in your Loop settings, in the last row just below where you enter your Insulin Sensitivities. Overrides will also be actionable from the Apple Watch. [Thanks Michael for this work...his introductory video to overrides is here. ]
Integral Retrospective Correction: IRC Read up on it before building if you aren't familiar. Also, you will need to click on your BG chart and double check the slider is in the off/on position you'd like for IRC. DO NOT FORGET TO CHECK THIS [Thanks Dragan for this work]
Automatic updating of NS profile when settings are changed in Loop app. Change your basals, carb ratio, or insulin sensitivity in Loop and now your NS profile will be updated to match. [Thanks Jan for this work]
New Loop and Override Pills in Nightscout: You will need to update your Nightscout site to use the dev branch of Nightscout in order to see these new pills. Directions for how to update your NS site for these new pills are on on that page to the right...move your eyeballs over to the right or click on that link you just read. [Thanks to Ken and Jason for this work]
Initial Insulin Delay: modified the exponential insulin curves to include a 10-min delay for fiasp to begin, 20-min delay for rapid-acting. This accounts for the time it takes to administer the bolus, be absorbed by the body and begin working. [Thanks to Ken for this work]
Bolus guard is lowered to 55 (separate from suspend threshold) [Thanks to ?? can't remember, I've had this going for a very long time]
Remote Temp Overrides implemented from NS...please read additional info in section below. [Thanks Ken and Jason for this work]
Apple Watch will autofill recommended bolus amount to 100% [Thanks swift for making this easy to change on my own]
A fix for the meter BG (red dot) getting uploaded to Nightscout again if you are using a Contour Next meter linked to your Medtronic Pump. Note for mmol users: The red dot will display properly as a mmol value on the graph in NS, but if you hover over the red dot, the BG value will display in mg/dL currently. This is just the way it is right now. Haven't gotten around to fixing it...but at least the red dot is back and a value you can interpret is back. [Thanks Jan for this work]
Not in Jojo? Neutral temp basals. Since pod battery life is a possible factor in late-stage pod screamers, I've opted to not set neutral temp basals in Jojo branch to help preserve pod battery life. You can still edit your own code using code customizations if you'd like to bring that feature back.
This branch has all the features of JoJo branch, but adds a confirmation beep on the pod at the beginning and end of a bolus so that you have an audible confirmation of the bolus command being received by the pod and completed. Thank you Joe Moran!!
About Remote Overrides from NS Notes:
Any overrides set within the Loop app itself for Pre-meal or Override mode buttons will take precedence over the remote overrides coming from NS, in case both exist at the same time. In other words, your remote actions will not trump Loop-set overrides.
To use remote overrides in Loop/NS, you will need to add openaps to your ENABLE line in your heroku settings (you should also already have careportal on that same line if you are using Loop...both of those are needed for remote overrides to work). Then, to implement a remote override, you will go to your NS careportal (the plus sign up in the righthand corner) and select "temporary target" from the dropdown menu in the "Event Type".
When entering a remote override in careportal, make sure you note the high-low BG range's order is backwards from Loop's usual low-high BG range order. Also, if you want to add an overall insulin needs adjustment as part of the remote override, you can add that in the Notes field of the temporary target. Simply enter 120 for example if you want a 120% of your overall insulin needs. Keep the adjustments in 10% increments similar to how overrides are selected within the Loop app.
You will also need an override preset setup in Loop named NSRemote for this to work. Capitals and lowercase lettering is important, use exactly as I've written it NSRemote. You can put whatever you want on the other lines for the preset...just important that the name matches. The values (such as BG targets and overall insulin needs) in that override will be over-written by whatever the last remote override received was...so those values will be changing all the time when you use remote overrides from Nightscout. You will not be tapping that NSRemote locally anyways...that is only there as a placeholder for the remote overrides to write to for Loop to use.
The Loop iPhone must have internet access for the remote overrides to work. Loop will not be able to "see" remote overrides being enacted/canceled unless the iPhone has cell coverage or wifi access and the NS site is working.
The Looping iPhone will post a notification to the Looper that a remote override has been set, and the remote override will display on the BG chart in the main Loop display.
A remote override set in NS cannot be cancelled by simply ending it in the Loop app itself. You must use Nightscout careportal’s “Cancel Temp Target” command to end a remote override (exception being an override that has a limited duration and just runs its time out. Those will not need to be cancelled intentionally if they just run to their scheduled end.) If you try to cancel a remote override in the Loop app itself, the override will simply be turned back on with the next Loop cycle if the override is still active in Nightscout.