-
Notifications
You must be signed in to change notification settings - Fork 68
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
Support for Nike+ GPS Watch ? #72
Comments
Interesting. If you're feeling brave, you could edit |
I tried this today and it seems not to work. |
Yeah that's the same point that I got to also - in
called for packet My guess is that the watch is the "same", but the addresses for write and read usb_endpoint are different than the official TomTom watches. Not sure how to determine these addresses - guess you would need to USB sniff the official Nike+ fat client.... |
USB endpoints are fairly easy to find. Run Or if you want to list the output of |
@ryanbinns I've tried a few things as suggested in the comments above, but failed to get it recognized with Output from
|
It looks like it uses different endpoint addresses. I'm not sure if it will work, but you could try. Try replacing lines 225-238 of
Compile and try again. Don't do anything that writes to the watch though. Use |
Sadly, I tried that and it still couldn't detect it. |
Hi Ryan (cc Alex)
Sorry for not replying - I did try a few things at the time, but got
stuck. If I set up SSH access to the dev box I was using with the watch
plugged in, do you think you might be able to have a look ? I'm not
running much at the moment :-)
Thanks,
Patrick
…On 15/05/17 7:34 PM, Alex Williams wrote:
Sadly, I tried that and it still couldn't detect it.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#72 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/APCDi-Qztzg0Q1D9S1mA9WyM6tlBZ-s9ks5r6AAjgaJpZM4H-stG>.
|
I don't think I'd be able to do anything useful. I think to make any more progress, you'd need to capture the USB packets transmitted between the watch and the Windows software when the watch is plugged in and the software does its stuff. |
Hi Ryan, Apologies - I've been putting this off, because it sounded too difficult (and because I didn't have a bare-metal Windows box). However, I've just had a go now, and it's much easier than I thought. I have captured using the latest build of USBPcap (1.2.0.2) using the current version of the Nike Connect+ Software (Version 6.6.34.141). I thought we would start with the simplest possible case:
I've done this, and the PCAP capture file is attached. I've opened it okay in Wireshark and can see communication with the device. Very happy to upload runs etc as needed (or to switch features on and off using the Fat Client under a packet trace). Thanks again - and apologies for not following up sooner. Patrick |
Oops - I did not mean to close this ticket :) |
Hi. Nike just announced they will be retiring the only applications that pull data off their watch by April 30, so I'm guessing this thread will receive more interest. |
Yeah I know - amazing they can give less than 2 weeks notice on this - the link to the FAQ is https://en-gb-help.nike.com/app/answer/article/why-cant-i-sync/a_id/73653/country/nz |
So, reading through the thread, it appears that you were able to capture some data, but that ryanbinns or someone else still needs some run data before being able to create a version of the software(s) that works with the Nike+ sportwatch? Correct me if I misunderstand. |
Unfortunately the strap on my Nike+ GPS Sportwatch broke very recently and it won't connect up to any of my computers (a common fault with these watches). However, what you're saying above is correct - i.e. a patch needs to be created for the Nike version of this TomTom watch. Capturing the USB packets was straight forward on Windows (I followed the instructions at https://wiki.wireshark.org/CaptureSetup/USB) - so in theory anyone with a Windows box, the watch, and the Nike+ Connect Software (while it is still running) should be able to capture the protocol exchange between the client and the watch. |
Ok. I guess I better get on that then. I assume I need to run a variety of use cases. First I will try to capture watch connection with 1 run to transfer/upload. |
I managed to capture a single run transfer. I have never used wireshark before, so I suspect that the file may also contain traffic from other USB ports. Any directions on how to remove information from the other ports? |
The capture used the 64 bit version of wireshark with USBPcap included with the wireshark installation. Easy enough to use once I got it installed correctly. I suppose I should read the wireshark wiki on how to analyse the resultant file. |
one run filtered for bus1 and device ID6.zip Ok - I think I did that correctly - I did the capture and then created a new file filtered only for bus1 and device ID that correlated to the watch. I noticed that the address seemed to change from 1.6.0 to 1.6.1 but that appears to be the correct data/traffic. |
Nice work. Not sure what the next step would be though - need someone who can look at the comms in the packet capture and compare this with what’s happening in the source. Would be good to get something underway before the shutdown, but at least these captures are around while the Nike client is still working.
Other things that could be captured while the client still works (probably with the runs empty) would be the settings - e.g. comms when the colours are inverted, weight of runner, enable/disable beep. I.e. All the control / admin features if the watch. Maybe do a trace for one at a time (so as little is changing as possible).
Get Outlook for iOS<https://aka.ms/o0ukef>
…________________________________
From: cgibson33 <notifications@github.com>
Sent: Saturday, April 21, 2018 12:56:40 PM
To: ryanbinns/ttwatch
Cc: Rynhart, Patrick; State change
Subject: Re: [ryanbinns/ttwatch] Support for Nike+ GPS Watch ? (#72)
one run filtered for bus1 and device ID6.zip<https://github.com/ryanbinns/ttwatch/files/1934020/one.run.filtered.for.bus1.and.device.ID6.zip>
Ok - I think I did that correctly - I did the capture and then created a new file filtered only for bus1 and device ID that correlated to the watch. I noticed that the address seemed to change from 1.6.0 to 1.6.1 but that appears to be the correct data/traffic.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub<#72 (comment)>, or mute the thread<https://github.com/notifications/unsubscribe-auth/APCDi_94PH8f6qzWL5uO2FMprVvryecBks5tqoPIgaJpZM4H-stG>.
|
Will do. Do you think it would be ok if I left the watch plugged in the whole time, but just recorded each action separately using different file names? |
I think I should share my research notes. The system nike client uses to download tracks is pretty dumb — it sends the '09 05 xx 10 00 00 00 ..' packet, the watch responds with a complete eeprom dump and the client is analyzing it afterwards. It seems that I have a corrupted watch, so I couldn't analyze what I am getting from the watch. P.S. I was still able to change some settings like sounds, weight, metric or imperial units, etc. |
Hi Ryan,
Recording the reset function sounds like an excellent idea :-) With
regard to recording each action, not sure. I guess it depends whether
the Connect client sends / updates the watch immediately when a change
is made. (It probably does.). If you can see traffic (in wireshark
afterwards) when you change/adjust a feature then this would be a good
indicator as to whether you've got the exchange recorded.
The surefire / OCD way to do it would be to disconnect the watch each
time, and record each transaction individually. (i.e. Record, Connect
Watch, Start client, Change one feature, Exit client, disconnect
watch.). This would obviously be more noisy though.
In short - not sure which is the best approach :-)
Thanks,
Patrick
…On 22/04/18 3:04 AM, cgibson33 wrote:
Will do. Do you think it would be ok if I left the watch plugged in
the whole time, but just recorded each action separately using
different file names?
Also, I think there is a watch reset function that I should record
because that might be the only way to clear the watch memory when it
is getting full.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
<#72 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/APCDi6NYpuupqCos4DSoUyr-IAx60NxXks5tq0qYgaJpZM4H-stG>.
|
Very interesting. I wonder if this 'offline' processing is being done
because the watch itself doesn't support an API that can pull individual
events off it ? If so, the watch would be very different to the 'other'
TomTom watches that this Github project supports.
…On 22/04/18 9:57 PM, Igor Gritsenko wrote:
I think I should share my research notes.
All the relevant information can be filtered by entering |usb.capdata|
into wireshark's display filter — it's a leftover capture data that
we're interested in.
This leftover data is 64 bytes long. First byte is a direction (09
into watch, 01 from watch), second byte is a packet size, third one is
just a counter. For the query that goes into watch, fourth byte is a
command, next bytes are arguments. For the respond that we receive
from watch fourth byte and next bytes are the reply data, last byte is
some sort of check byte, it has to be the same as a counter byte.
The system nike client uses to download tracks is pretty dumb — it
sends the '09 05 xx 10 00 00 00 ..' packet, the watch responds with a
complete eeprom dump and the client is analyzing it afterwards.
Typical response is '01 3d xx 01 xx xx xx (significant_data_bytes) xx'
when we still have data to receive and '01 (size_of_packet) xx 00 xx
xx xx (significant_data_bytes) 00 .. 00 xx' when it is the last packet.
It seems that I have a corrupted watch, so I couldn't analyze what I
am getting from the watch.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
<#72 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/APCDi2WSNdb5cNx5VRDsXUqp1QVhPGWeks5trFP0gaJpZM4H-stG>.
|
Ok - last minute I recorded a bunch of settings interactions including a factory reset |
When I did the settings changes, you could see packages transferring as soon as I typed any number or changed any setting on the fly, so I didn't bother removing the watch at any point |
Ok - so now what? Do I need to do some further analysis on the captures? Is this watch too different than the other watches serviced by this code? |
Hi guys, other solution would be to run a local proxy interpecting calls to Nike+ from the local app running and then store the data locally. But this is in case this project can't support the watch because as @prynhart suggested would be very different to the 'other' |
Hi guys - unfortunately nothing to add, I don't know how different this watch is. Hopefully someone else watching this thread can advise. Thanks, Patrick |
@iglezouton your suggested proxy solution doesn't work, because there are pre-flight validations on services that don't work anymore, even before the upload service is called. |
@cgibson33 could you post your guide to watch the packets? I've tried USB Probe (mac only) and Wireshark with no luck. |
Note that it is now impossible to record any actual communications for GPS updates or Run uploads since Nike has shut down the server - the only thing you can record is settings changes. |
С мая 2018 года компания Nike прекратила поддержку Nike sportwatch gps описанный в вашей статье. Не удалось ли создать install программу ... с конвертацией в gpx? |
Hi everybody, |
Maybe someone can figure it out? https://www.os3.nl/_media/2013-2014/courses/ccf/smartwatches-hristo-leendert.pdf |
Hi,
I've got a Nike+ SportWatch GPS "Powered by TomTom" (http://www.tomtom.com/lib/doc/Nike-SportWatch-QuickStartGuide-EN.pdf), and would love to be able to grab the raw GPS datafiles from it (prior to them being munged by the Nike+ Fat client and uploaded to Nike+).
I was hoping that it would really be a "TomTom" watch - but it seems that this isn't the case, as with the watch connected to a Ubuntu 10.04 LTS box, I'm getting:
# ttwatch -a
Unable to open watch
Is there any chance that support could be added ? I'm hoping it's "close enough" to being a TomTom watch :-) I'm not much of a programmer, but am happy to help re USB sniffing etc.
This is how the device presents in my Mac (the output of system_profiler)
Here's someones report (when they were playing around with this type of watch) for a University project:
https://www.os3.nl/_media/2013-2014/courses/ccf/smartwatches-hristo-leendert.pdf
With Thanks in Advance
Patrick Rynhart
The text was updated successfully, but these errors were encountered: