Completing AndroidAPS objectives – the developer way

Note: I will not answer any questions how to skip the objectives. If you are a developer I’m sure you figure it out within a few hours, but if not, you probably should complete them as you need a basic understanding how the system works.

Currently I’m testing Android APS with a second pump to get some experience with it and to evaluate if we can use it for our research. Apperently it has an education feature called „Objectives“ which teaches basic knowlege about the system. Even though I think the basic idea is very good, I don’t like the implementation. I thought I should try it, just in case there is something for me to learn but after I finished the first two of them (which were indeed interesting) they asked me questions about their documentation… Yes maybe people should be encuraged to read the documentation, but why should I know how to monitor children?? Or how the documentation author wants me to backup my data ??? And why are the answers written to confuse the reader instead of making the user think about the question ?!

I hated this part so much that I went straight to the AndroidAPS gitter room and complained to the developers that they are wasting my lifetime (and theirs too) with these questions. In my rage I totally fogot that they are nice people, spending their free time to write this application… Well, I apologized a short time later, but my point holds true. These „Objectives“ are a complete waste of time (in my optinion). We as developers are not in charge to keep stupid people from doing stupid things. We should warn them, but that’s all. We should not annoy other interested developers / scientists… I went to the code and looked up the answers to pass this objective.

Afterwards, I came back to my „maybe I should try it“ mode. But the next objective wanted me not only to enact some temporary basals by hand, but also to wait several days … Why should I do the looping by hand??? I do this 30 years by now. That’s what the looping software is supposed to do… And the waiting time serves no reason at all (in my oppinion). But the objective says I could ask for a shortcut code … and now the interesting part … when the developers *review my data* and think I’m experienced enough to start looping. I immediately entered rage mode again: „Who are they to decide if I’m good enough to use this software!“ I thought (Obviously this violated my professional integrity). But ok … I went back to the code to find out how they generate their shortcut code. After finding the respective code I used some standard tools to generete the code by myself. Done. It can be so easy 🙂

FAQ Miniloop

Some people liked my board and got a free sample 🙂 Unfortunately, I’m now faced with some support issues and want to summarize the most important aspects for getting started:

  • First of all: You do this at your own risk! I can’t give any kind of guarantees or support for the board or what you do with it. Please respect local law and regulations when you build your board.
  • NEVER power your Pi with a power supply when the board is connected. The board has no safety functions at all and I have no idea what happens with the voltage regulator or the connected battery when you connect a power supply to the Pi.
  • You have to solder one jumper on the board which was not described in the previous post. I made a picture to show you how to connect. However, in general you should consult the schematic to answer such questions.

  • The oref0 setup doesn’t support the board directly, but you can follow the install instructions for general RFM69HCW radio modules here.

 

BUT NOTE: I stopped working on this board, as Adafruit released the RFM69HCW Bonnet board, which is a Pi HAT with a radio transceiver and a OLED display. It’s also supported by the oref0-setup. I’ll post some more information about it soon.

Canon EF-S 17-85mm 4-5.6 IS USM Reparatur (err 99 / err 01)

In meinem Objectivbestand befindet sich ein Canon EF-S 17-85mm USM Objektiv. Warum auch nicht? Schlißlich hat es eine sehr gute Bildqualität und einen wirklich praktischen Zoom bereich. Leider bekomme ich in letzter Zeit den Fehler „ERR 99“. Scheinbar bin ich da nicht alleine denn der Fehler ist so bekannt, dass unmengen an Infos im Netz dazu gibt. Der Grund: Ein gebrochenes Flachbandkabel.

Felxband Cable

Also habe ich mir kurzerhand ein neues auf ebay bestellt und das Obejektiv nach den Anleitungen auf Youtube [1,2] auseinander genommen. Objektiv wieder zusammen gesetzt uuunnnd … Fehler 😦

Scheinbar habe ich beim Löten etwas an der Blende beschödigt (und nein, ich bin kein Anfänger). Ich war so frustriert, dass ich erstmal einen Reparaturservice angefragt habe was es denn kosten würde. Immerhin hat mich die Aktion fast einen halben Tag gekostet … Nach einigen Tagen bekomme ich die Antwort 90 EUR. Gut .. für 90 Euro bekomme ich mehr als 10 Kabel … oder auch die gesamte fertig verlötete Blendeneinheit … 5 mal. Ich dachte mir für das Geld versuche ich es noch einmal. Also habe ich mir eine komplette Blendeneinheit bestellt.

_57

Der Einbau ging nach der Übung vom letzten mal super leicht von der Hand und siehe da: Alles geht!

[1] https://www.youtube.com/watch?v=IXXXzknVHPE
[2] https://www.youtube.com/watch?v=c2xlM7bGHX0

ESP8266 extern aufwecken

Ich möchte den ESP gerne als Wireless-Switch-Array für mein Smarthome nutzen. Allerdings müsste der ESP dann ständig aktiv sein, um die angeschlossenen Taster abfragen zu können. Das hätte einen hohen Stromverbrauch zur Folge und würde einen Batteriebetrieb nicht erlauben (nicht mehr so wireless 😀 )

Meine erste Idee war, alle 500 ms aus dem Deep Sleep aufzuwachen und die Taster abzufragen. Das ist aber irgendwie unkomfortabel, da man den Taster im schlimmsten Fall 500 ms halten muss. Gekoppelt mit dem fehlenden Feedback (durch das Verbinden mit dem Wlan kommt ein Delay von ca 2 Sekunden zu stande) ist das extrem intuitiv. Ich finde man sollte kurz drücken und sich sicher sein, dass irgendwann passiert was man wollte. Außerdem ist die Lösung auch nicht sooo effizient denn das ständige Booten kostet auch relativ viel Strom.

Jetzt habe ich mir eine Schaltung aus Gattern überlegt die den ESP mit einem beliebigen Tastendruck aufweckt. Der ESP setzt GPIO2 auf HIGH, wenn er aktiv ist. Wenn irgend ein Button gedrückt wird und der ESP aus ist (also GPIO2 dann LOW) wird der Reset ausgelöst, sodass der ESP bootet.

esp_wake

Irgendwie kommt mir das aber sehr aufwändig vor, denn man bräuchte die Gatter zum Aufwecken und ein Latch pro Taster, um den Tastendruck zu speichern bis der ESP gebootet und den Wert abgerufen hat. Das wäre dann eine relativ aufwändige Platine für so eine „Kleinigkeit“ 😦

Momentan überleg ich, ob ein PAL nicht einfacher wäre [1,2] Allerdings ist der Stromverbraucht dann nicht mehr so optimal wie bei einzelnen Gattern …

[1] http://www.ti.com/lit/ds/symlink/ticpal22v10z-25c.pdf
[2] https://de.wikipedia.org/wiki/Programmable_Array_Logic

Freestyle Libre Sensor

Erster Urlaubstag seit langem, wunderbares Wetter und was macht man da ? Genau, ausschlafen und man bastelt ein wenig an Elektronik rum 😀

Ich habe mir mal den Freestyle Libre Sensor angesehen. Es handelt sich um einen sogenannten CGM Sensor, der kontinuierlich den Glokosewert in der Gewebsflüssigkeit bestimmt. Dieses Messverfahren brachte auch die Firma Medtronic vor einigen Jahren auf den Markt.

Das besondere an dem Sensor ist, dass er sehr, sehr preiswert ist, sich über NFC auslesen lässt und sich selbst kalibrieren kann. Diese Kombination möchte ich fast einen Geniestreich nennen. Durch den geringen Preis sehen sich einige Patienten in der Situation, die Sensoren aus eigener Tasche zu bezahlen. Die Datenübermittlung über NFC erspart teure Transmitter und Stromversorungslösungen. Dadurch wird natürlich der Sensorpreis gesenkt und der Sensor wird jedesmal komplett (samt Elektronik) entsorgt was den Aufbau sehr einfach macht und somit Entwicklungs- und Herstellungskosten senkt. Durch die innovative (und bei Medtronic fehlende) eigenständige Kalibrierung, ist das Messsystem eigentlich idiotensicher.

Der Aufbau ist wie folgt: In der Mitte befindet sich der Messfaden (und vermutlich minimale Messelektronik) in einem Kunststoffgehäuse. Die Platine besteht aus einer NFC Antenne, einer Varta V377 Knopfzellen Batterie (1,55 V 27 mAh) und einem Microchip. Leider ist die Modellnummer auf dem Microchip nicht wirklich lesbar. Aus den Zeichen die ich lesen konnte, bin ich über Google auf den RF430FRL152H von Texas Instruments gekommen. Das würde gut passen, denn es ist ein NFC Chip der bei 1,55 V arbeiten kann und dafür gedacht ist Sensoren auszulesen. Die orange Fahne scheint ein Temperatursensor zu sein, denn der Sensor kann sich melden wenn ihm zu warm oder zu kalt wird.IMG_20160505_163819IMG_20160505_172046

Aus meiner Sicht hat das Konzept aber drei Probleme:

  1. Müll: Ein Sensor verursacht sehr, sehr viel Müll. Beim Anlegen kriegt das grüne Gewissen schon einen Herzinfarkt, da die Applikationshilfe (aus stabilem Kunststoff) weggeworfen wird. Natürlich kann man so sicherstellen, dass das Ding sauber ist, aber ist das nötig? Die Antwort ist nein, denn Medtronic hat das besser gelöst. Dazu kommt der Sensor selbst, der wiederum ein recht stabiles Kunststoffgehäuse hat und offensichtlich einiges an Elektronik.
  2. Messgenauigkeit: Der Sensor kalibriert sich selbstständig. Das ist eigentlich auch eine super Sache, aber bei mir waren die Messwerte nicht immer exakt (und damit meine ich Messunterschiede von bis zu 60 mg/dl). Eine Möglichkeit zur Nachkalibrierung durch eine Blutmessung wäre schon sinnvoll.
  3. Geplante Obsoleszenz: Der Sensor zählt intern bis 14 Tage rum sind und meldet sich dann als verbraucht. Allerdings meldet er sich auch schon früher als verbraucht, wenn er eben früher verbraucht ist und keine sinnvollen Messungen mehr möglich sind. D.H., dass der Sensor sich selbst testen kann ob er noch funktioniert. Ich finde, damit ist der Zähler überflüssig und grenzt an Geldmacherrei … wieso sollte ich den Sensor denn nicht einen Tag länger nutzen wenn er einen Tag länger funktionieren kann…

Meine Ideen zur Version 2 (die nebenbei auch den Verkaufspreis senken könnten) wären daher:

  1. Applikationshilfe extra verkaufen und nicht als Einmalprodukt verwenden. Als Zwischenschritt vllt einen 6er Sensorpack (Quartalspacket) anbieten, dass nur einen Applikator hat.
  2. Nochmal ein paar Minuten Nachdenken und die Elektronik besser vom Messfaden trennen. Die zwei Teile sind ja bereits getrennt. Wieso kann ich keinen Mechanismus haben um die Elektronik ein paar mal zu verwenden. Nach meiner Schätzung, kann der Chip die Batterie noch nicht völlig entleert haben. Man könnte aber auch eine etwas stärkere Batterie einbauen und wieder einen 6er Packe mit nur einem Elektronikboard anbieten. Das würde schon einiges an wertvollen, seltenen Ressourcen schonen.
  3. Stromversorung durch Akkus. Wenn die Elektronik sinnvoll vom Messfaden getrennt ist, könnte die Stromversorgung auch direkt durch Akkus erfolgen, die in einer Ladestation geladen werden. Dadurch würde eine Menge Giftmüll eingespart werden.
  4. Händisches Nachkalibrieren. Die angezeigten Werte sind natürlich niemals gemessene Werte. Die Messung der Gewebeflüssigkeit ist stark verzögert (15-30 min). Daher sind die gezeigten Werte eher geraten als gemessen (der Fachmann spricht von extrapolieren). Man kann jedoch die Messkurve auslesen und anzeigen und dann vergleichen wie genau die echt gemessenen Werte waren. Ok wenn ich jetzt sehe, dass schon die Basis der Raterei nicht stimmt, wie sollte dann das Gerät jemals etwas richtiges anzeigen. Genau .. keine Chance … Es wäre aus meiner Sicht nicht besonders aufwändig, einen Referenzwert einzugeben der die Messwerte korrigiert.

Freestyle Libre ist ein wirklich schönes System, das bei mir zumindest zu deutlich höherer Messfrequenz führt und damit die Therapie und Lebensqualität verbessern kann. Offenbar hat Abbott aber noch etwas Arbeit vor sich, um die genannten Schwächen auszubügeln. Desweiteren sollten sie eine Kooperation mit einem Insulinpumpenhersteller anstreben, um die Werte direkt an die Insulinpumpe zu übertragen. Ich bin gespannt was da noch kommt.

Cheers!

 

PS: Wer jetzt mehr Infos über den Sensor will, dem empfehle ich die Herstellerseite und den Blog von Marcel Klug, denn der kluge Mann (haha was ein Wortspiel, ist bestimmt ganz neu 😀 ) hat sich mal die Speicherstruktur des Sensors genau angesehen und eine Leseapp gebastelt 🙂

 

Wetterbericht

Ich frage mich, warum der Wetterbericht, selbst in unserer heutigen Zeit, immer noch zuverlässig falsch ist… Bei der Überlegung habe ich mich gefragt, ob der Faktor Mensch in den Berechnungen mit drinnen ist. Man könnte doch Menschenbewegungen aus Reisedaten (Fluglinien, Schiffen, usw.) erheben und das mit einkalkulieren 😀

Digitale Post-It in Windows 7 oder Windows 8

Ich finde die Kurznotizen in Windows 7 und Windows 8 extrem praktisch. Anders als die Post-it Zettel muss ich die digitale Version nicht dauernd suchen. Andere Apps wie Wunderliste finde ich zwar auch schön aber irgendwie mag ich diese „Chaotische-Ordnung“ lieber. Schade nur, dass man es nicht mit anderen Computern (oder dem Hany) synchronisieren kann. Hier noch ein paar nicht ganz offensichtliche funtkionen:

Schriftgröße ändern:
[STRG] + [SCHIFT] + [,] = Schrift verkleinern
[STRG] + [SCHIFT] + [.] = Schrift verkleinern

Schriftformatierungen:
[STRG] + [L] = Text linksbündig
[STRG] + [R] = Text rechtsbündig
[STRG] + [E] = Text zentriert
[STRG] + [T] = Text durchstreichen
[STRG] + [U] = Text unterstrichen
[STRG] + [I] = Text italic
[STRG] + [B] = Text bold

Sonstige Funktionen:
[STRG] + [Z] = rückgängig
[STRG] + [Y] = wiederherstellen
[STRG] + [SCHIFT] + [L] = Aufzählung

Quelle: http://blog.jenshellmeier.de/windows-7-kurznotizen-sticky-notes-verwenden/2923/

Kontaktbilder ändern in Outlook 2013

Da ich mich jetzt mit dem M$ Office Paket herumschlagen muss, schreibe ich ein paar Sachen auf die ich sonst garantiert vergesse 😀
Möchte man im Nachhinein ein Kontaktbild ändern, geht man in dem Tab „Personen“ auf den entsprechenden Kontakt. Dann klickt man auf den Link unter „Datenursprung anzeigen“. Danach öffnet sich ein Bearbeitungsfeld in dem das Bild geändert werden kann.

Cheers.

XAMPP unter Linux

Ich habe mir eine kleine VM für Webentwicklung eingerichtet. Basis ist Debian6 und dazu das LAMP Packet von Apache Friends. Leider gibt es einen blöden Fehler beim Zugriff auf PHPMYADMIN. Nach ein wenig Googlearbeit habe ich einen Fix gefunden. Man muss in der httpd-xamp.conf (/opt/lampp/etc/extra) folgenden Part ersetzten:


#
# New XAMPP security concept
#
<LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))">
<RequireAny>
Require ip ::1 127.0.0.0/8 \
fc00::/7 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 \
fe80::/10 169.254.0.0/16
</RequireAny>
ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</LocationMatch>

 

Quellen:
http://www.apachefriends.org/de/xampp-linux.html
http://stackoverflow.com/questions/11999371/access-to-the-requested-object-is-only-available-from-the-local-network-phpmyadm