KDoubleType allows you to use custom fields with double types (HR, Power, etc.)
- Karoo (tested on latest firmware) with version 1.527 or later
- Tested with Karoo 2 and Karoo 3 in both metric and imperial configurations
- Download the APK from the releases page.
- Prepare your Karoo for sideloading by following the step-by-step guide by DC Rainmaker.
- Install the app using the command
adb install app-release.apk.
- Copy the APK link:
https://github.com/lockevod/Karoo-KDoubleType/releases/latest/download/kdouble.apk - Share it with the Hammerhead companion app.
- Install the app using the Hammerhead companion app.
It's mandatory to reboot the Karoo after installation (shutdown and start again).
| Field | Slots | Description |
|---|---|---|
| KDouble (×3) | 1 slot | Two metrics side by side — horizontal or vertical split |
| KRolling (×3) | 1 slot | Cycles automatically between up to 3 metrics |
| KSextuple (×3) | 1 slot (large) | Six metrics in a 2×3 grid — ideal for a single full-width slot |
| Smart Climb (×1) | 1 slot | Adaptive climb field: 4 standard metrics + 1 smart center that switches between start-of-climb / on-climb metrics |
| Bell (×1) | action | Tap-to-buzz action field |
- Add custom fields to your profiles (HR, Power, Speed, etc.).
- Double fields: show two metrics horizontally (left/right) or vertically (top/bottom).
- Rolling fields: show one metric at a time and cycle between up to three — configurable interval (5 / 10 / 20 / 30 s). If you pick only one metric it behaves as a static field.
- Sextuple fields: show six metrics simultaneously in a compact 2×3 grid. Best used in a full-width or large slot. Up to 3 independent sextuple fields available.
⚠️ Avoid using more than one sextuple field simultaneously in the same profile on low-resource devices. - Smart Climb field: designed for the Karoo map page (1×2 large space). Displays 4 configurable metrics plus a smart center panel that shows a start-of-climb metric by default and automatically switches to an on-climb metric (e.g. distance-to-top) when a climb is detected. The field respects the reduced slot size inside the Karoo climber screen.
- Bell field: emulates a bell sound using the Karoo buzzer. Sound must be enabled on the device.
- W′ Balance field: tracks your anaerobic energy reserve in real-time based on power output above Critical Power (CP).
- For Double fields, configure left/top and right/bottom metric in the custom configuration tab.
- Horizontal fields round to integers (e.g. speed 12.6 → 13), except the IF field.
- Vertical fields show up to 5 characters (including decimal point for speed and slope).
- Colour zones are based on your Karoo zones. Slope zones use Hammerhead climber zones, or you can switch to Zwift colours.
- Alignment can be set to left, centre, or right, or you can follow the default Karoo profile alignment.
- Rolling fields — Extra Time option: when enabled the first metric gets 3× the display time of the others.
- Headwind field: reads data from the timklge Headwind extension. You must install and configure that app separately, and also add its headwind field to the same profile.
- Sextuple fields have 6 independently configurable metric slots. Each of the 3 sextuple field instances (One / Two / Three) stores its own configuration.
Configure your W′ Balance parameters in the W′BAL tab:
- Critical Power (CP): use your Karoo FTP as CP or set a custom value. CP represents the highest power output you can sustain indefinitely.
- W′ (W Prime): your anaerobic capacity in joules (typically 15,000–25,000 J for trained cyclists).
- Visual Zones: enable colour-coded zones (green = high reserve, yellow = moderate, red = low/depleted).
- Temporal constants: optimised defaults (τ+ = 546 s recovery, τ− = 316 s depletion) based on scientific research.
Online calculators:
Manual testing:
- Perform 3-minute and 12-minute all-out efforts on separate days and use the calculators above.
- A 20-minute FTP test result can be used as an approximation for CP.
If you also have KSafe or KGhost installed, their live data shows up as extra
metrics you can pick in any KDouble field (Double, Rolling, Sextuple, Smart Climb). Nothing
to configure here — just select them like any other metric. If the source extension isn't
installed (or its data isn't available yet) the metric simply stays blank (---).
Requires the KSafe extension with fueling enabled. These update only while you are recording a ride:
| Metric | Shows |
|---|---|
| Carb g/h | Current carbohydrate burn rate (g/h) |
| Carb Avg g/h | Session-average carb burn rate (g/h) |
| Carbs Burned | Total carbohydrates burned so far (g) |
| Carb Deficit | Carb balance — positive = you need to eat, negative = surplus |
| Hydration | Fluid deficit — positive = you need to drink. Shown in millilitres, switching to litres from 1 L (e.g. 3.5L) |
| Kcal Rate | Energy expenditure (kcal/h) |
| Kcal Total | Total calories burned so far (kcal) |
Requires the KGhost extension with a ghost/target set. The gap is signed: positive = you are ahead of the ghost, negative = behind:
| Metric | Shows |
|---|---|
| Ghost Gap s | Gap to the ghost in seconds |
| Ghost Gap m | Gap to the ghost in metres |
When your position is briefly uncertain (a GPS dropout, or while you are off-route) KGhost
reports the gap as an estimate. Because the field can't recolour just the number, an
estimated value is prefixed with a tilde — e.g. ~-12 means about 12 s behind, estimated.
- The maximum number of digits in a horizontal field is 3 — avoid combining two metrics that both need 3 digits.
- Not all field combinations have been tested. Please report any display or rounding issues.
- Using many fields simultaneously (especially Rolling + Headwind on a Karoo 2) can cause performance issues. Use with care.
- The Hammerhead extension API occasionally causes fields to disappear randomly. If a field goes blank: switch your ride profile, force-stop the ride app, or reboot the Karoo. This is a known SDK issue being discussed with Hammerhead.
- Karoo 2 has limited resources. Be careful when combining multiple custom fields, rolling fields, and other extensions in the same profile.
- Made possible by the generous usage terms of timklge (Apache 2.0). Parts of his code are used in this extension.
- Thanks to valterc for the great ki2 app — colour definitions are based on his work.
- Thanks to kleinkm for the inspiration and contributions around the Sextuple field.
- Thanks to vinapp for sharing code and collaboration.
- Thanks to Hammerhead for the Karoo platform and SDK.
- Thanks to DC Rainmaker for the sideloading guide.
- Thanks to Boxicons and iconduck.com for icons.
- KDouble does not save or share any personal data.