Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

synchronization with Ambit 3 Peak #262

Open
adzweig opened this issue Nov 8, 2020 · 32 comments
Open

synchronization with Ambit 3 Peak #262

adzweig opened this issue Nov 8, 2020 · 32 comments

Comments

@adzweig
Copy link

adzweig commented Nov 8, 2020

Hi

I managed to get the application running. The log files are transmitted correctly. However the routes are not properly synchronized:
Openambit prints the messages: Fetching sport modes, Writing orbital data, Synchronization complete.
However the Routes are not synchronized and the movescount webpage indicates that the settings on the page and on the watch need to be synchronized.

I could not build the "extras". I obtain the errors:
make[2]: *** [CMakeFiles/ws-ambit.dir/build.make:82: CMakeFiles/ws-ambit.dir/ambit-dissector.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:76: CMakeFiles/ws-ambit.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

What should I try to synchronize the routes? This is really the key problem that I would like to solve.

Thanks for any pointer to a solution.

Adrian

@centic9
Copy link
Contributor

centic9 commented Nov 9, 2020

What is the output before that as this is just the summary of the build failing, not the output about when it actually failed.

@adzweig
Copy link
Author

adzweig commented Nov 9, 2020

running the script ./install.sh from the directory, where the openambit resides gives the following output:
----------------
adrian@127:/opt/openambit-0.5$ ./install.sh
------building libambit------
-- Found hidapi:  hidapi;/usr/include hidapi/hid-linux.c /lib/x86_64-linux-gnu/libudev.so
-- Configuring done
-- Generating done
-- Build files have been written to: /opt/openambit-0.5/libambit-build
[100%] Built target ambit
------installing libambit------
[sudo] password for adrian: 
[100%] Built target ambit
Install the project...
-- Install configuration: ""
-- Up-to-date: /usr/local/lib/libambit.so.0.4.0
-- Up-to-date: /usr/local/lib/libambit.so.0
-- Up-to-date: /usr/local/lib/libambit.so
-- Up-to-date: /usr/local/include/libambit.h
-- Up-to-date: /etc/udev/rules.d/libambit.rules
------building movescount------
-- Found libambit: /opt/openambit-0.5/src/libambit, /opt/openambit-0.5/libambit-build/libambit.so
-- Configuring done
-- Generating done
-- Build files have been written to: /opt/openambit-0.5/movescount-build
[  7%] Automatic MOC for target movescount
[  7%] Built target movescount_autogen
[100%] Built target movescount
------installing movescount------
[  7%] Automatic MOC for target movescount
[  7%] Built target movescount_autogen
[100%] Built target movescount
Install the project...
-- Install configuration: ""
-- Up-to-date: /usr/local/lib/libmovescount.so.0.3.0
-- Up-to-date: /usr/local/lib/libmovescount.so.0
-- Up-to-date: /usr/local/lib/libmovescount.so
-- Up-to-date: /usr/local/include/movescount/deviceinfo.h
-- Up-to-date: /usr/local/include/movescount/logentry.h
-- Up-to-date: /usr/local/include/movescount/logstore.h
-- Up-to-date: /usr/local/include/movescount/movescount.h
-- Up-to-date: /usr/local/include/movescount/movescountxml.h
------building openambit------
-- Found libambit: /opt/openambit-0.5/src/libambit, /opt/openambit-0.5/libambit-build/libambit.so
-- Found Movescount: /opt/openambit-0.5/src/movescount, /opt/openambit-0.5/movescount-build/libmovescount.so
-- Configuring done
-- Generating done
-- Build files have been written to: /opt/openambit-0.5/openambit-build
[  3%] Automatic MOC for target openambit
[  3%] Built target openambit_autogen
[  6%] Generating qrc_ts.cpp
Scanning dependencies of target openambit
[ 10%] Building CXX object CMakeFiles/openambit.dir/qrc_ts.cpp.o
[ 13%] Linking CXX executable openambit
[100%] Built target openambit
------installing openambit------
[  3%] Automatic MOC for target openambit
[  3%] Built target openambit_autogen
[100%] Built target openambit
Install the project...
-- Install configuration: ""
-- Installing: /usr/local/bin/openambit
-- Set runtime path of "/usr/local/bin/openambit" to ""
-- Up-to-date: /usr/local/share/applications/openambit.desktop
-- Up-to-date: /usr/local/share/appdata/openambit.appdata.xml
-- Up-to-date: /usr/local/share/icons/hicolor/64x64/apps/openambit.png
------building example------
-- Found libambit: /opt/openambit-0.5/src/libambit, /opt/openambit-0.5/libambit-build/libambit.so
-- Configuring done
-- Generating done
-- Build files have been written to: /opt/openambit-0.5/example-build
[100%] Built target ambitconsole
------building wireshark dissector------
-- Configuring done
-- Generating done
-- Build files have been written to: /opt/openambit-0.5/dissector-build
[ 25%] Building C object CMakeFiles/ws-ambit.dir/ambit-dissector.c.o
In file included from /usr/include/wireshark/epan/packet.h:14:0,
                 from /usr/include/wireshark/epan/conversation.h:49,
                 from /opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:5:
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c: In function ‘dissect_ambit_add_unknown’:
/usr/include/wireshark/epan/proto.h:844:33: warning: passing argument 3 of ‘expert_add_info_format’ makes pointer from integer without a cast [-Wint-conversion]
 #define PI_UNDECODED            0x05000000
                                 ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:534:49: note: in expansion of macro ‘PI_UNDECODED’
     expert_add_info_format(pinfo, unknown_item, PI_UNDECODED, PI_WARN, "Not dissected yet");
                                                 ^~~~~~~~~~~~
In file included from /opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:6:0:
/usr/include/wireshark/epan/expert.h:118:1: note: expected ‘expert_field * {aka struct expert_field *}’ but argument is of type ‘int’
 expert_add_info_format(packet_info *pinfo, proto_item *pi, expert_field *eiindex,
 ^~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/wireshark/epan/packet.h:14:0,
                 from /usr/include/wireshark/epan/conversation.h:49,
                 from /opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:5:
/usr/include/wireshark/epan/proto.h:828:33: warning: passing argument 4 of ‘expert_add_info_format’ makes pointer from integer without a cast [-Wint-conversion]
 #define PI_WARN                 0x00600000
                                 ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:534:63: note: in expansion of macro ‘PI_WARN’
     expert_add_info_format(pinfo, unknown_item, PI_UNDECODED, PI_WARN, "Not dissected yet");
                                                               ^~~~~~~
In file included from /opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:6:0:
/usr/include/wireshark/epan/expert.h:118:1: note: expected ‘const char *’ but argument is of type ‘int’
 expert_add_info_format(packet_info *pinfo, proto_item *pi, expert_field *eiindex,
 ^~~~~~~~~~~~~~~~~~~~~~
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c: In function ‘dissect_ambit_log_data_content’:
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1271:17: warning: implicit declaration of function ‘proto_tree_add_text’; did you mean ‘proto_tree_add_int’? [-Wimplicit-function-declaration]
     sample_ti = proto_tree_add_text(tree, tvb, 0, 0, "Samples");
                 ^~~~~~~~~~~~~~~~~~~
                 proto_tree_add_int
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1271:15: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
     sample_ti = proto_tree_add_text(tree, tvb, 0, 0, "Samples");
               ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c: In function ‘dissect_ambit_log_data_sample’:
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1308:19: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
         sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Period sample specifier");
                   ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1317:19: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
         sample_ti = proto_tree_add_text(sample_tree, tvb, offset, count*6, "Values");
                   ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1320:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(subtree, tvb, offset, 6, "Value %d", i+1);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1331:19: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
         sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (Periodic sample)", (*sampleno)++);
                   ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1378:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (Pause)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1390:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (Restart)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1403:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (IBI)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1419:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (TTFF)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1433:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (Distance source)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1450:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (Time event)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1481:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (Altitude source)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1502:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (gps-base)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1548:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(sample_tree, tvb, offset, sample_len-40, "Satellites");
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1551:27: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
                 sample_ti = proto_tree_add_text(subtree, tvb, offset, 6, "Satellite");
                           ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1564:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (gps-small)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1593:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (gps-tiny)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1623:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (Time)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1645:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (Swimming turn)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1689:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (Swimming stroke)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1703:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (Activity)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1722:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (Cadence source)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1739:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (lat-long)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1762:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (Firmware info)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1791:23: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             sample_ti = proto_tree_add_text(tree, tvb, offset, sample_len + 2, "Sample #%u (Unknown)", (*sampleno)++);
                       ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c: In function ‘dissect_ambit_data_write’:
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:1858:13: warning: implicit declaration of function ‘g_printf’; did you mean ‘g_print’? [-Wimplicit-function-declaration]
             g_printf("%.2x", tvb_get_guint8(tvb,i));
             ^~~~~~~~
             g_print
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c: In function ‘dissect_ambit3_log_headers_content’:
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:2366:13: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
     logs_ti = proto_tree_add_text(tree, tvb, 0, 0, "Logs");
             ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:2371:16: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
         log_ti = proto_tree_add_text(logs_tree, tvb, offset, header_len + 2, "Header #%u", log_cntr);
                ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c: In function ‘dissect_ambit’:
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:2497:23: error: ‘frame_data {aka struct _frame_data}’ has no member named ‘flags’
         if (!pinfo->fd->flags.visited) {
                       ^~
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:2717:29: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
                     data_ti = proto_tree_add_text(ambit_tree, new_tvb, 0, pkt_len, "%s", subdissector->name);
                             ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:2720:29: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
                     data_ti = proto_tree_add_text(ambit_tree, new_tvb, 0, pkt_len, "Payload");
                             ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:2730:25: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
                 data_ti = proto_tree_add_text(ambit_tree, new_tvb, 0, pkt_len, "Full log entry");
                         ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:2736:25: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
                 data_ti = proto_tree_add_text(ambit_tree, new_tvb, 0, pkt_len, "Full log headers");
                         ^
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c: In function ‘proto_reg_handoff_ambit’:
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:3206:20: warning: implicit declaration of function ‘new_create_dissector_handle’; did you mean ‘create_dissector_handle’? [-Wimplicit-function-declaration]
     ambit_handle = new_create_dissector_handle(dissect_ambit, proto_ambit);
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~
                    create_dissector_handle
/opt/openambit-0.5/wireshark_dissector/ambit-dissector.c:3206:18: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
     ambit_handle = new_create_dissector_handle(dissect_ambit, proto_ambit);
                  ^
make[2]: *** [CMakeFiles/ws-ambit.dir/build.make:82: CMakeFiles/ws-ambit.dir/ambit-dissector.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:76: CMakeFiles/ws-ambit.dir/all] Error 2
make: *** [Makefile:130: all] Error 2
--------------------------------------------

@centic9
Copy link
Contributor

centic9 commented Nov 12, 2020

Ad "extras", I guess the version of wireshark-development files are not matching. If you don't need that part I'd suggest to exclude "extras" from the build-steps.

@centic9
Copy link
Contributor

centic9 commented Nov 12, 2020

On the missing synchronization I cannot help much as I don't own an Ambit 3, but only Ambit 2, which synchronizes routes and sport-modes properly.

@adzweig
Copy link
Author

adzweig commented Nov 13, 2020

When I build with ./build.sh -DCMAKE_BUILD_TYPE=Debug I obtain the following output:

adrian@127:/opt/openambit-0.5$ Vendor: 1493, Product: 1b
libambit_komposti: 2 4 59 0
Komposit version: 2 4 59 0
asyncGet: "https://uiservices.movescount.com/devices/Emu/69.2.17410?appkey=HpF9f1qV5qrDJ1hY1QK1diThyPsX10Mh4JvCw9xVQSglJNLdcwr3540zFyLzIC3e"
libambit WARNING: libambit_navigation_read(): Driver does not support navigation_waypoint_read
Start reading log...
Finished reading logs... I think...
Finished freeing data 1
Finished freeing data 2
End reading log...
Start sport mode
asyncGet: "https://uiservices.movescount.com/rules/private?appkey=HpF9f1qV5qrDJ1hY1QK1diThyPsX10Mh4JvCw9xVQSglJNLdcwr3540zFyLzIC3e&userkey=bCe7vwF5AvqrL0&email="
asyncGet: "https://uiservices.movescount.com/userdevices/23750B5106000600?appkey=HpF9f1qV5qrDJ1hY1QK1diThyPsX10Mh4JvCw9xVQSglJNLdcwr3540zFyLzIC3e&userkey=bCe7vwF5AvqrL0&email="
End reading sport mode
Outer space debug message
Start sync Orbit
asyncGet: "https://uiservices.movescount.com/devices/gpsorbit/binary?appkey=HpF9f1qV5qrDJ1hY1QK1diThyPsX10Mh4JvCw9xVQSglJNLdcwr3540zFyLzIC3e"
End Orbit sync
asyncGet: "https://uiservices.movescount.com/userdevices/23750B5106000600?appkey=HpF9f1qV5qrDJ1hY1QK1diThyPsX10Mh4JvCw9xVQSglJNLdcwr3540zFyLzIC3e&userkey=bCe7vwF5AvqrL0&email="
asyncGet: "https://uiservices.movescount.com/userdevices/23750B5106000600?appkey=HpF9f1qV5qrDJ1hY1QK1diThyPsX10Mh4JvCw9xVQSglJNLdcwr3540zFyLzIC3e&userkey=bCe7vwF5AvqrL0&email="

The application uploads log data to Movescount.com, however it does not download sports modes or routes to the watch.
Movescount.com also indicates that synchronization is still necessary.
Could the "libambit warning".in the debug information be a pointer to what is going wrong?

another question: What is meant with "orbital data" ?

@Gerold-R
Copy link

Hi

"Orbital Data" = GPS Data

@Gerold-R
Copy link

BTW: maybe these errors depends on the hardware version of your ambit 3. what is your version?

@adzweig
Copy link
Author

adzweig commented Nov 13, 2020

May be this is of help:
from uiservices.movescount.com

DeviceName "Emu"
FirmwareUploadDate "2017-06-26T07:33:58ZZZ"
LatestFirmwareURI "Emu/69.2.17410/2.4.17"
LatestFirmwareVersion "2.4.17"
Version "69.2.17410"

@adzweig
Copy link
Author

adzweig commented Nov 13, 2020

I tried to follow procedure described in #186, building the app from source. Upon running I obtain the following diagnostic output:

adrian@127:/opt/openambit-0.5/aaa/src/openambit$ ./openambit
adrian@127:/opt/openambit-0.5/aaa/src/openambit$ Vendor: 1493, Product: 1b
libambit_komposti: 2 4 59 0
Komposit version: 2 4 59 0
asyncGet: "https://uiservices.movescount.com/members/private?appkey=HpF9f1qV510Mh4JLdcwr3540zFyLzIC3e&userkey=bCeqrL0&[email protected]"
asyncGet: "https://uiservices.movescount.com/devices/Emu/69.2.17410?appkey=HpF9f1qV510Mh4JLdcwr3540zFyLzIC3e"
asyncGet: "https://uiservices.movescount.com/userdevices/23750B5106000600?appkey=HpF9f1qV510Mh4JLdcwr3540zFyLzIC3e&userkey=bCeqrL0&[email protected]"
libambit WARNING: libambit_navigation_read(): Driver does not support navigation_waypoint_read
Start reading log...
asyncGet: "https://uiservices.movescount.com/moves/private?appkey=HpF9f1qV510Mh4JLdcwr3540zFyLzIC3e&userkey=bCeqrL0&[email protected]&startdate=2020-05-09&enddate=2020-11-07"
asyncPost: "https://uiservices.movescount.com/moves/?appkey=HpF9f1qV510Mh4JLdcwr3540zFyLzIC3e&userkey=bCeqrL0&[email protected]"
Movescount replied with ContentConflictError for move ' Run a route ' from 2020 - 5 - 9
asyncPost: "https://uiservices.movescount.com/moves/?appkey=HpF9f1qV510Mh4JLdcwr3540zFyLzIC3e&userkey=bCeqrL0&[email protected]"
…….

Movescount replied with ContentConflictError for move ' Run a route ' from 2020 - 6 - 15
asyncPost: "https://uiservices.movescount.com/moves/?appkey=HpF9f1qV510Mh4JLdcwr3540zFyLzIC3e&userkey=bCeqrL0&[email protected]"
Finished reading logs... I think...
Finished freeing data 1
Finished freeing data 2
End reading log...
Start sport mode
asyncGet: "https://uiservices.movescount.com/rules/private?appkey=HpF9f1qV510Mh4JLdcwr3540zFyLzIC3e&userkey=bCeqrL0&[email protected]"
Movescount replied with ContentConflictError for move ' Run a route ' from 2020 - 6 - 18
asyncGet: "https://uiservices.movescount.com/userdevices/23750B5106000600?appkey=HpF9f1qV510Mh4JLdcwr3540zFyLzIC3e&userkey=bCeqrL0&[email protected]"
asyncPost: "https://uiservices.movescount.com/moves/?appkey=HpF9f1qV510Mh4JLdcwr3540zFyLzIC3e&userkey=bCeqrL0&[email protected]"
Movescount replied with ContentConflictError for move ' Run a route ' from 2020 - 6 - 20
libambit WARNING: libambit_sport_mode_write(): Driver does not support sport_mode_write
libambit WARNING: libambit_app_data_write(): Driver does not support app_data_write
End reading sport mode
Outer space debug message
asyncPost: "https://uiservices.movescount.com/moves/?appkey=HpF9f1qV510Mh4JLdcwr3540zFyLzIC3e&userkey=bCeqrL0&[email protected]"
Vendor: 1493, Product: 1b
libambit_komposti: 2 4 59 0
Komposit version: 2 4 59 0
asyncGet: "https://uiservices.movescount.com/members/private?appkey=HpF9f1qV510Mh4JLdcwr3540zFyLzIC3e&userkey=bCeqrL0&[email protected]"
asyncGet: "https://uiservices.movescount.com/devices/Emu/69.2.17410?appkey=HpF9f1qV510Mh4JLdcwr3540zFyLzIC3e"
asyncGet: "https://uiservices.movescount.com/userdevices/23750B5106000600?appkey=HpF9f1qV510Mh4JLdcwr3540zFyLzIC3e&userkey=bCeqrL0&[email protected]"
Movescount replied with ContentConflictError for move ' Run a route ' from 2020 - 6 - 23
asyncPost: "https://uiservices.movescount.com/moves/?appkey=HpF9f1qV510Mh4JLdcwr3540zFyLzIC3e&userkey=bCeqrL0&[email protected]"

@centic9
Copy link
Contributor

centic9 commented Nov 14, 2020

Yes, it looks like this is not supported (yet) for ambit3, see

@ruvido
Copy link

ruvido commented Nov 22, 2022

Hi, being an old thread, I was wondering if ambit 3 peak is now able to sync properly. Any experience?

@adzweig
Copy link
Author

adzweig commented Nov 22, 2022 via email

@ruvido
Copy link

ruvido commented Nov 22, 2022

ok wow. So summarizing, what's possible to do with openambit and Ambit3 Peak? Thanks again

@adzweig
Copy link
Author

adzweig commented Nov 25, 2022 via email

@jadahl
Copy link
Contributor

jadahl commented Nov 25, 2022

I have an Ambit3 Peak, and while I haven't synced in a while, it has worked in the past. I haven't ever uploaded anything to any cloud service so can't comment about that (I just keep the XML files for future inspection), but the the biggest issue has been the downloaded traces not including heart rate data. That includes the data coming through the wire, I haven't been able to see them using Wireshark either.

@ruvido
Copy link

ruvido commented Nov 25, 2022 via email

@centic9
Copy link
Contributor

centic9 commented Nov 25, 2022

The latest version of Openambit has some more support for working without Movescount Online connection via the "openambit-cli" and "openambit-routes" commandline applications.

I used Ambit 2 until mid of this year and could at least do the following after Movescount was shut down for good:

  • adjust settings
  • add/remove/edit sports modes (fun fact: I could even load more sport-modes than Movescount iteself allowed, I used 15 modes at the end!)
  • upload routes with some manual work

Theoretically this should also work for Ambit 3 if it did work with Movescount before.

As I stopped using these type of watches and actually gave it away I won't be able to contribute much any more. But if there is interest I can try to describe some more how it can be done.

@ruvido
Copy link

ruvido commented Nov 25, 2022 via email

@marguslt
Copy link

As far as I understand Ambit 3 sync (post-movescout) works via mobile app only.

Suuntolink sync over USB works for all Ambit & Traverse models. And Suuntolink backend service is controlled over Websocket, so if you tickle it the right way, it's happy to provide activity files in JSON. This also works without ever signing up for Suunto app account. Would also work entirely offline, though without GPS almanac updates you'll likely see some really funky artefacts in your tracks. One Suuntolink WS implementation can be found in #268 (comment) , If you look around, people have had success running Suuntolink through Wine too.

@ruvido
Copy link

ruvido commented Nov 26, 2022 via email

@adzweig
Copy link
Author

adzweig commented Nov 26, 2022

I just managed to get the Suuntolink App working with wine on Ubuntu 20.04. Awesome...
My remaining challenge is to be able to edit Suunto Apps that I wrote earlier and currently reside on my watch.
Any hints on how to access these data is much appreciated ...

@marguslt
Copy link

@adzweig , if you made those apps public, you'll find those bundled in Suunto link; if not, you must rely on your own backups. For editing and compiling check https://forum.suunto.com/topic/7592/ambit-apps-compilation & https://ambitapps.z6.web.core.windows.net/ . Just getting app binaries from the watch and loading those back later works fine.

Though there's also this issue of getting apps to log and getting logged data from the watch, AFAIK not possible with the (current) Suuntolink, so I'd still consider Openambit. Another alternative would be old Moveslink2 for extracting SML files (if you are able to provide it with a valid configuration, it still pulls data from the watch, even without being able to connect to movescount.com) and some older Suuntolink version, those were able to write apps from Movescount and enable app logging, but it either requires an ability to mock retired Movescount service or control Suuntolink backend through webscoket.

@adzweig
Copy link
Author

adzweig commented Nov 27, 2022

@marguslt , thanks for these links. I am ready and eager to follow this road.

How can I down- and upload binaries of my apps to the watch?
I guess there is no way to recuperate the source code to my private apps from a Suunto weblink.

@marguslt
Copy link

@adzweig , Suuntolink should create %APPDATA%/Suuntolink/suunto-apps.json when you change watch settings through Suuntolink, this includes apps downloaded from the watch. You should be able to choose apps from there when you customize screens for your sport modes and it uses the same structure as main app collection, %LOCALAPPDATA%\Suuntolink\app-4.1.6\resources\app\suunto-apps\index.json.

As of reverse engineering, I haven't encountered any project targeting Ambit apps. Though with enough motivation & resources it's probably manageable as it's still possible to generate binary samples from your own code through a service linked in the previous reply.

@adzweig
Copy link
Author

adzweig commented Nov 27, 2022

cool! many thanks. I think this gets me going! Awesome! :-))

@adzweig
Copy link
Author

adzweig commented Nov 29, 2022

Where can I find a list of the variables that my Ambit "understands", i.e. SUUNTO_DURATION, Suunto.pow a.s.o. ?
Ideally a table with a description of these variables. This used to be available in Movescount or in some manual.
thanks

@vdca
Copy link

vdca commented Nov 29, 2022

The latest version of Openambit has some more support for working without Movescount Online connection via the "openambit-cli" and "openambit-routes" commandline applications.

I used Ambit 2 until mid of this year and could at least do the following after Movescount was shut down for good:

* adjust settings

* add/remove/edit sports modes (fun fact: I could even load more sport-modes than Movescount iteself allowed, I used 15 modes at the end!)

* upload routes with some manual work

Theoretically this should also work for Ambit 3 if it did work with Movescount before.

As I stopped using these type of watches and actually gave it away I won't be able to contribute much any more. But if there is interest I can try to describe some more how it can be done.

I'd be super-interested in knowing more about how you managed to "upload routes with some manual work" using the commandline application. For me that has been the critical issue, as I don't own a smartphone.
Thanks!

@marguslt
Copy link

marguslt commented Nov 29, 2022

This used to be available in Movescount or in some manual

https://web.archive.org/web/20211022052823/https://dcjitw11p57ya.cloudfront.net/downloads/SuuntoAppZoneDeveloperManual.pdf (It's latest, checked against my own copy).

@centic9
Copy link
Contributor

centic9 commented Dec 17, 2022

I'd be super-interested in knowing more about how you managed to "upload routes with some manual work" using the commandline application. For me that has been the critical issue, as I don't own a smartphone. Thanks!

I have now prepared an initial wiki-page with all the steps and instructions that I could remember. Unfortunately I do not have such a watch any more, so cannot actually verify that the steps really work.

I will incorporate feedback if you find things that should be described differently.

The new documentation is at https://github.com/openambitproject/openambit/wiki/Adjusting-watch-settings-and-routes-without-Movescount

@ruvido
Copy link

ruvido commented Dec 17, 2022 via email

@szma
Copy link

szma commented Jan 9, 2023

Normal synchronization via openambit works great for my ambit 3 peak (used it a long time).
But reading the sport modes and settings gives me

~# ./openambit-cli --no-read-logs --no-sync-time --no-sync-orbit --no-sync-navigation --no-write-logs --write-config-json
Running openambit-cli
Vendor: 1493, Product: 1b
libambit_komposti: 2 4 59 0
Komposit version: 2 4 59 0
Device: Suunto Ambit3 Peak, serial: Bxxxxxxxxxxxxxx
F/W version: 2.4.1
Current charge: 99%
Personal settings: 
weight: 7101
birthyear: 0
max_hr: 59
rest_hr: 0
fitness_level: 0
is_male: 164
length: 0
Connecting to movescount
Connected
Having device: Suunto Ambit3 Peak/Emu/Bxxxxxxxxxxxx/2.4.1/69.2.17411/0/1
Not reading log for now...
Start sport mode
Reading apps from Movescount
ERROR: Could not read custom mode data
End reading/writing sport mode
Start sync watch apps to JSON
ERROR: Failed to sync watch apps to JSON
ERROR: Exiting

Should this already work with the Ambit3 Peak? (Firmware is not up to date)

EDIT:
I got my hands on a windows laptop and updated the firmware. The issue with the ambit3 peak remains the same with firmware 2.4.17

@vdca
Copy link

vdca commented Mar 18, 2024

@szma : same issue here, can read logs from Ambit3, but unable to read settings (and POIs). Same error: Could not read custom mode data.

Did you ever manage to get it working?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants