OpenIQ Devices
← Back

Crystal-Tesla

· v2.23.2
★★★★★ (159) ↓ 50,000 downloads 1 Free

About

Based on the work of PixelPathos https://apps.garmin.com/en-US/apps/9fd04d09-8c80-4c81-9257-17cfa0f0081b See his work for more details about the watch face. *** If you enjoy using this maintained version of Crystal with Tesla integration, you can support my work with a small donation:*** https://bit.ly/sylvainga *** Compiled with SDK 8.1.1 *** It works well on my Fenix watch. I can't test on other devices beside through the Simulator. If you're having issues, instead of leaving a bad review, contact me through the Contact Dev button and I'll see what I can do. Above what the PixelPathos version offers, this version adds the Pulse Oxymeter sensor, Recovery Time Left, Body Battery, Stress Level, Solar Intensity and Floor climbs as a data field; Body Battery and Stress Level as Goal Meters; color coded numeric batterie level and Do Not Disturb as indicators; customizable theme color; Complications (including launching their corresponding widget directly from the watchface!); added support for additional watches, like the Fenix 8, Enduro3, Fenix 7 Pro, Fenix 7, Epix Gen 2, Descent Mk1, Mk2 and Mk2s, D2 Delta, D2 Delta PX, D2 Delta S, Forerunner 165, 955 / Solar, 255, 255 Music, 255s, 255s Music, 265. 265s, 965, Enduro, MARQ MARQ (Gen 2 - all models) , Venu SQ 2 and Venu SQ 2 Music, Venu 3, VivoActive 5 as well as bug fixes that were in the original Pixel Pathos code and other small improvements. But, the big change of this version, and as the name implies, is the addition of information from a Tesla vehicle which is activated by choosing the indicator 'Tesla Info'. If the vehicle is awake, it will display the battery charge level as a percentage, followed by a '+' sign if it's being actively charged. It will also cycle to P on/off for the Preconditioning Status, S on/off for Sentry Status and the vehicle's inside temperature. If the car is asleep, a 's' will be displayed after the battery level and it will only cycle between that and P on/off. If an error is received from the car, it will be displayed in pink instead of the battery level. Scan interval is the standard 5 minutes so give it at least 15 minutes at start to get the access to the car and poll its status. You'll need to generate at least a refresh token and enter it in the watch face parameter to give access to your vehicle status. You can get a token through online services or phone apps like Tesla Token. If you give it also an access token, the refresh time before starting to capture data will be decreased by 5 minutes. Make sure your vehicle is awake for at least 15 minutes when you first launch the watch with the token set so it can connect to it. It will NOT wake the vehicle to retrieve any of the info and it does NOT prevent the vehicle from falling asleep. Now support Complications, including from Tesla-Link. Mind you, these changes were done for myself for my watch. I'm sharing here so others can benefit from it. NOTE: The Garmin Weather code needs an API level 3.2 and above to work. The ¨Pulse Ox code needs API level 3.2 and above to work (and a pulse Ox sensor in the watch) If your watch is not at the required API level or higher (see https://developer.garmin.com/connect-iq/compatible-devices/), then you're better off with the original Crystal watch face as the added code will be of no use to you and might even not work because of the added memory requirement for features of no use to you. The only additional feature that this watch face will give you is the numerical battery indicator.

What's new

2.23.1 - Added Venu 4 41 and 45 mm devices 2.23.1 - Compiled with CIQ 8.2.3 - Added new device: Fenix 8 Pro 47 mm 2.23.0 - Option to lauch a battery widget when the battery icon is held on Complication enabled devices 2.22.1 - Compiled with CIQ 8.2.1 - Added new device: Venu X1 2.22.0 - At request, there is now an option to have the date format to have a leading zero when there is only one digit. 2.21.1 - Compiled with CIQ 8.1.1 - Added new devices: Approach50, Descent G2, Forerunner 570s/970 and VivoActive 6 - Added changes from flowstatedev - Support long press of live HR field to open HR glance and fixed some strings file that got daved in UTF8-BOM instead of plain UTF8 somehow 2.21.0 - Compiled with CIQ 7.4.3 - By requests, OpenWeatherMap IS BACK! (as a weather service). This service, unlike Garmin, can display the weather station but relies on the last activity with GPS or default latitude/longitude entered in the app parameters for location (fallback in case there is no activity with GPS). Clear the "OpenWeatherMap API Key Override" field in the Settings to revert to Garmin Weather (the default is back to OWM). Like before, this weather data is pulled at intervals (5 minutes). - Fixed a crash when the Tesla data is returned as a dictionary instead of a string, although I requested it to be a string - Fixed moveBar to not stay hidden after coming back from AOD. 2.20.2 - Fixed what seems a compiler error when timeToRecovery isn't available and yet, the compiler says it is and causes a crash because of that 2.20.1 - No code changes. Only added back Enduro3 and new Fenix8 watches (including Fenix E). 2.20.0 - Compiled with CIQ 7.3.1 - Added recovery time as an option to the move bar. Once it's cleared, recovery is done. Each bar is 12 hours of recovery time. - If the move bar is showing the recovery time and complications are enabled/available, touching that field will launch the recovery time widget. - Fixed the centering of the time when the AddColon option is active (thanks blueberry-bytes). - Removed references to weather city name since Garmin disabled that feature in their latest firmware. firmware.2.19.2 - Compiled with CIQ 7.3.0. Now works with custom complications (used by Tesla-Info) - Added Enduro3 and new Fenix8 watches (including Fenix E). - Small code optimisation for Telsa's complications. If you also use Tesla-Link and receive complications from it, update that one too! 2.19.0 (same as 2.19.1) - Compiled with CIQ 6.4.2 as 7.x currently breaks custom complications (used by Tesla-Info). Has no impact on features and supported watches. - Updated the Tesla status when the car is asleep to match the returned data from the new version of Tesla-Link app. - Fixes the 412 error introduced by Tesla with the change to the API - Weather city name and "local time in city" locations on screen are dependant on what's showing in the data area - Added Active calories as a data fiel and goal. This value is calculated and not provided by Garmin so it might be off to what Garmin is showing. On Complication enabled watches, since it shows only Active calories, the calculated rested calories are added to the Calories fields and goals. To get the previous active calories, select Active Calories field or goal. 2.18.13 - Compiled with CIQ 7.1.1 - Added Forerunner 165 and 165m - Updated the Tesla status when the car is asleep to match the returned data from Tessie - Fixed a broken weather icon 2.18.12 - Fixed crash when calling a complication while there is already one running - Added Battery as a complication (to launch the battery widget) 2.18.11 - Fixed bug in longitude typechecking for second time (thanks AdrienChenu) - Altitude reads from Complication if available - Added support for the Fenix7XPro (NoWifi) - Compiling with ICQ 6.3.1 2.18.10 - Added Altitude as a Complication 2.18.9 - Adjusted the fonts for the Venu Sq2 2.18.8 - Added support for the VivoActive5

Permissions

CommunicationsPositioningComplicationSubscriberBackgroundSensorHistoryUserProfile

Details

Compatible with 157 devices
Updated May 6, 2026
Developer website ↗
Open on apps.garmin.com ↗