VivoKey Thermo for iOS

VivoKey Thermo is a free iOS app that reads your body temperature straight from a VivoKey Thermo NFC implant with a tap of your phone, and keeps a simple history so you can see how it changes over time. It's an independent project by Petr Ziegner, not affiliated with or endorsed by VivoKey.

Coming Soon on the App Store

Screenshots

Capabilities

Read in Seconds

Hold your phone near the implant and get a reading right away, no waiting around and nothing to set up first.

Your History, Saved

Every reading you take stays right on your phone, so you can look back and see how things have changed whenever you want.

Watch the Trend

A simple graph turns your readings into a line you can actually read, so patterns over days or weeks jump out at a glance.

Tuned to You

Adjust a personal calibration so the number on screen matches what feels right for your body.

How the Reading Works

The implant has no battery. It borrows a little power from your phone's NFC signal just long enough to take one measurement, so getting a reading is a quick back-and-forth:

Wake it up Your phone's NFC beams over just enough power to switch the implant on.
Reach the sensor The app talks to the tiny temperature sensor tucked inside the implant.
Take the measurement The sensor takes a fresh reading, and the app waits a moment for it to finish.
Turn it into a temperature The raw signal gets converted into an actual number, in Celsius.
Save it for later The reading is added to your history, with your personal calibration applied when it's shown to you.

For anyone curious about the hardware side, here's exactly what happens under the hood.

ChipNXP NTAG5Link-class (ISO15693-3), with an on-board I2C bridge to a TMP112 sensor by default. TMP117 and TMP119 are also supported and auto-detected.
Chip commands0xC0 READ_CONFIG, 0xC1 WRITE_CONFIG, 0xD2 READ_SRAM, 0xD4 WRITE_I2C, 0xD5 READ_I2C.
Energy harvestingWriting the EH_CONFIG register (0xA7) triggers it. The app polls for the LOAD_OK bit, then enables output.
iOS command framingOnly NFCISO15693Tag.customCommand with requestFlags: [.highDataRate] (non-addressed) works on real hardware.
Manufacturer code quirkNever prepend the NXP code 0x04 manually. CoreNFC adds it automatically. Adding it yourself causes a "Tag connection lost" error.
Address flag quirkSetting the .address flag causes an "Invalid Parameter" error instead.
Response framingCoreNFC strips the ISO15693 response flag byte, so command responses come back data-only.
TMP112 math(rawInt16 >> 4) * 0.0625
TMP117 / TMP119 mathrawInt16 * 0.0078125
Conversion readySignalled by bit 15 (the OS bit) in the sensor's config register.