Feature Request:

Former Member
Former Member
Not sure if here's the right place to post a feature request, but it'd be nice to be able to read and write files in the Mass Storage area.

Maybe something simple like

fhnd = fopen(filename) // Open file, or create

string = freadln(fhnd) // Read the next line
fwriteln(fhnd, string) // Write a line to the end of the file

fclose(fhnd)


Doesn't even need to support folders, if it wanted to be limited. ie, all files are writing into \GARMIN\APPS\FILES
  • We do have an object store available for apps to write data, and there are plans to provide a way to provide a way to write settings to the device so users can configure apps themselves. We also have plans to allow custom additions to FIT files so that apps can record data.

    I'll file this as a request, but I suspect that we're going to limit writing directly to the file system to avoid corrupting other required files or filling the mass storage space. It would help if I had some good examples to include on the request. I can think of a few ideas, but they might not be what you're after.

    Do you have a specific use case in mind that would require writing to the file system and that one of the above does not address?
  • Former Member
    Former Member over 10 years ago
    Thanks for the feedback. My cases mostly it revolves around integrating my watch with my desktop. A few ideas I had:

    ToDo widget
    From the PC, you write a file with a task per line
    Widget will display and let you scroll through, and "complete" a task, which will remove it from the file (so maybe a truncate option, or open file mode would be needed)

    Watch Face MOTD
    I'd like to put a text file on the mass storage that has a list of dates, and some text to display on that day
    In my custom watch face, I'd parse looking for the correct day, and display the related text
    01/MAR,My Birthday


    Activity Export
    I would like to export details of my activities (type, geolocation, time, etc.) into a text format to process in another program


    Are the file formats for the object store and FIT files open to the public? It could be that I just develop a desktop tool that lets me read/modify those files instead
  • Sounds like you're trying to create a Connect IQ version of todo.txt, something I use extensively :) The best approach for this right now would be to have a companion app on a phone that would pass the todo/MOTD items to the app on the Garmin device. I'll file a feature request ticket with your examples for consideration.

    Activity exports are exactly what the FIT files are intended for. The FIT format is well documented; you can get the specification with the FIT SDK, available at:

    http://www.thisisant.com/resources/fit/
  • Former Member
    Former Member over 10 years ago
    Sounds like you're trying to create a Connect IQ version of todo.txt, something I use extensively :)

    I've never seen that before, but yeah, looks about right :)

    The best approach for this right now would be to have a companion app on a phone that would pass the todo/MOTD items to the app on the Garmin device.

    Personally, I don't actually want to link my watch to my phone (it's extra battery life off both devices that I really don't need); and in reality, it's not possible anyway, because my phone isn't supported.

    I'll file a feature request ticket with your examples for consideration.

    Thank you

    Activity exports are exactly what the FIT files are intended for. The FIT format is well documented; you can get the specification with the FIT SDK, available at:

    http://www.thisisant.com/resources/fit/

    Oh, didn't know about that site. That's a great help, thank you.
  • If you don't want to open up the whole file system (I can understand this), would it be possible to assign a file, with memory limits, to each installed program whether it be a widget, app or watchface? This would allow a developer to have configurations or options stored. The access would only be for the program to use - if you are concerned about filling up the file system with unused files, maybe it could be a resource setting to create the file.
  • Former Member
    Former Member over 10 years ago
    This would allow a developer to have configurations or options stored.

    If it's just for use by the Widget/App/Watchface, you can already with the Application Properties API, which does everything you mention.
    http://developer.garmin.com/downloads/connect-iq/monkey-c/doc/Toybox/Application/AppBase.html#setProperty-instance_method
  • pmprog - that is very close - what I don't get is the ability for a user to modify the file to add or edit data.

    What I am trying to do is provide a dual time zone watch face. The main time would be your location and the second zone would be user defined. To properly provide a second zone, I need to know the UTM offset and if DST is observed what dates it goes on and off. Because a watchface does not allow input, I have to get that information somehow. Once I get it, I can store it suing the Application Properties API, but getting the info is the challenge.

    Here is what I have so far - but it hard codes in the Mountain Time zone. It would be nice for it to be a general solution.

    https://forums.garmin.com/showthread.php?226687-Watchface-Dual-Time-Zonehttp://

    Even getting read only access to a file that a user can edit would allow me to get the data into watchface.
  • Former Member
    Former Member over 10 years ago
    Then yes, you want something like my request :) Hopefully we'll get something to play with
  • You're trying to work around a limitation in ConnectIQ that Garmin has already acknowledged and has a solution for, but isn't yet available. It seems that all this would do is distract the developers, thus preventing them from working on fixes that are useful to everyone.
  • Former Member
    Former Member over 10 years ago
    There's not really a solution. As Stickittome mentioned, you can't interact on a watchface (I've not tried this though), object stores can only be read/written on device (AFAIK), and the whole connect to your phone requires you to have a phone and for it to be connected, assuming you are able to.

    It's down as a feature request, and I'm sure whomever prioritises the workload for the developers will put it where appropriate in the list. If the request is denied, then I guess some of the tools I want to write for my watch, I just won't be able to.