top of page
Search
  • tynbendad

Garmin's dirty little secret

Updated: Dec 27, 2020

If you're into health, fitness, or sports, chances are you've bought or considered a Garmin watch. Some of these watches sell for up to $999 (US). Maybe the prices are justified if you need something they offer, but if a large part of your purchase is for Connect IQ apps, be aware of this hidden secret Garmin doesn't disclose on any of the spec sheets I have seen.


 

First, some background - literally I mean. Sometime around 2016 Garmin introduced a Connect IQ API update called "background services". This new API allowed, among other things, third party watchfaces and data fields to access the internet. Until then this was not possible with Connect IQ, except through full apps, which don't integrate well with the normal device features.


So far, all is well, we can develop watchfaces and data fields utilizing the internet to our hearts content. Or can we? Garmin made the unfortunate decision at that time to limit background processes to 32KB - that's 32768 bytes. Well, some of their devices are watches which have unique battery and size limitations. However, oddly this is the case for their other devices, e.g., bicycle computers, as well.


It is extremely challenging to do very much interesting in such limited memory (and you don't actually get all 32KB btw) - the background process is responsible for creating the internet requests, dispatching them, accepting and processing the results to pass back to the main process. Both code and data take up this space, and if you're doing any JSON processing (a typical data response for internet programming) then the actual data use can be much larger than the data size returned by the server (e.g., a 2KB JSON response could use 10KB to process). All of this is only trivial if you are dealing with a single request without many options.


 

Surely they've increased the limit in their more recent devices? In fact some of their newer devices have increased the size limit of background processes, to a whopping 64KB, or 65536 bytes. Yeah, not a lot, but indeed it helps a lot if you were near the 32KB limit. However, many of their more recent and most expensive devices still have the 32KB limit - for watches you can see the lists I've compiled below. Edge and handheld devices all still have 32KB limits, as far as I'm aware (as of the 3.2.2 SDK). Oddly, some of the less expensive watches on the list include the music feature and have the higher 64KB limit.


 

Watches with 32KB background memory limit (as of Connect IQ 3.2.3 SDK simulator results - actual devices might differ)

  • approach S60

  • d2 charlie

  • d2 delta

  • d2 delta px

  • d2 delta s

  • descent mk1

  • descent mk2/mk2i

  • fenix 5/qatix 5

  • fenix 5 plus

  • fenix 5s

  • fenix 5s plus

  • fenix 5x/tactix charlie

  • fenix 5x plus

  • fenix 6/6 solar/6 dual power

  • fenix 6 pro/6 sapphire/6 pro solar/6 pro dual power/quatix 6

  • fenix 6s/6s solar/6s dual power

  • fenix 6s pro/6s sapphire/6s pro solar/6s pro dual power

  • fenix 6x pro/6x sapphire/6x pro solar/tactix delta sapphire/delta solar/delta solar - ballistics edition/quatix 6x/6x solar/6x dual power

  • fenix chronos

  • forerunner 245

  • forerunner 645

  • forerunner 935

  • forerunner 945

  • marq adventurer

  • marq athlete

  • marq aviator

  • marq captain/captain: american magic edition

  • marq commander

  • marq driver

  • marq expedition

  • marq golfer

  • venu sq

  • vivoactive 3

  • vivoactive 3 mercedes-benz collection

  • vivolife

Watches with 64KB background memory limit (as of Connect IQ 3.2.3 SDK simulator results - actual devices might differ)

  • approach S62

  • captain marvel

  • d2 air

  • darth vader

  • first avenger

  • forerunner 245 music

  • forerunner 645 music

  • forerunner 745

  • rey

  • venu

  • venu mercedes-benz collection

  • venu sq music edition

  • vivoactive 3 music

  • vivoactive 3 music LTE

  • vivoactive 4

  • vivoactive 4s


 

What does this mean to device users? It is just one more (rather meaningful) restriction to what developers can do with the Connect IQ API. In my case, I have already had to restrict what features I can offer on the 32KB background memory limited devices. If I were buying or recommending a watch for Connect IQ apps, I would at the very least think twice about buying something on the more limited 32KB list. For the price of some of the watches on the 32KB list (and the amount of memory some of them have, as well as the competition's RAM sizes), as a consumer I find it amazing they would have such a limitation. As a developer I hope they can increase it even for some of the older watches (but I wouldn't hold your breath waiting for it).


In case it helps, here's a little chart that compares the background memory limit to full RAM sizes of various computers, phones, and watches. Notably absent is RAM size specification info. for Garmin devices, they just don't publish them.



632 views0 comments
Post: Blog2_Post
bottom of page