ヤマレコなら、もっと自由に冒険できる

Yamareco

HOME > ヤマノート > EPSON GPSウォッチ ログ抽出ツール Version 0.15 (DNF)
更新日:2025年05月17日 訪問者数:533
ジャンル共通 IT
EPSON GPSウォッチ ログ抽出ツール Version 0.15 (DNF)
kfd01567
EPSON GPSウォッチ ログ抽出ツール Version 0.15
本アプリはEPSONのGPSウォッチ(WristableGPS)内のGPSログ(ワークアウトデータ)を
WindowsPCのダウンロードフォルダに抽出するツールです。
Windowsの「EpsonView」アプリのインストールフォルダに本アプリを置いて頂くことで
動作します。EPSONからのEpsonViewアプリの配布は終了している可能性がありますので、
過去にEpsonViewを利用されており、今も環境が残っている方のみが利用できると思います。

★ 現在のバージョン(Ver 0.15)はGPSウォッチのワークアウトの内部形式、
およびBACKUP形式(CSV形式)でダウンロードします。
※CSVはSF Seriesのみで、かつラップ系の情報のみ対応しています。
一般的なGPXファイルの出力にはまだ対応できておりません。
現在、内部形式の解析を進めておりますが、時間を要しそうなので、
中途半端ではありますが公開致します。
どなたかが解析してくれないかな、という思いもありますので。。。

★ Ver0.15ではCSVの精度を改善しました。出力したCSVファイルはEPSON
GPSウォッチのBACKUP形式の読み込みに対応しているWebサイト("RUNALYZE")
にアップロードすることでワークアウトの内容を確認することができます。

なお詳細なインストール方法や利用方法についてはダウンロードしたファイルの「お読みください」に記載しております。
画面イメージ
改版履歴
2025/04/25 Ver0.1 初版リリース
2025/04/26 Ver0.11 画面デザインの見直し
2025/05/03 Ver0.12 サイズが0のワークアウトがあった場合の処理追加
デバッグトレースの追加
2025/05/08 Ver0.13 ワークアウトのダウンロードの際に内部的に指定するClassIdの
値が一部のウオッチにしか対応できていませんでした。このため
例えば"SF Series"のウオッチの場合はダウンロードでエラーと
なっていました。本バージョンからウォッチの製品名に応じた
ClassIdを設定するよう改善しております。
2025/05/15 Ver0.14 ワークアウトの内部形式ファイルをCSVファイルに変換する機能
を追加しました。主に"SF Series"のウォッチのワークアウトフ
ァイルのヘッダ部分(ラップデータ等)の情報のみを変換出力しま
す。
2025/05/17 Ver0.15 CSVファイルに出力する情報の量と精度を改善しました。
CSVファイルを"RUNALYZE"にアップロードすることでワークアウト
の内容が確認できるようになりました。
開発の経緯
私以外にもEPSONのGPSウォッチで山行ログを取っていた方が、きっとおられるのではないかと思います。2025年3月末でEPSONでのサポートが終了したためと思いますが、4月からウォッチからの山行ログ抽出(GPXファイル取り出し)が出来なくなりました。なんとか取り出すことには成功しましたが、内部形式の解析に着手できていない状況です。内部形式に関する情報や別な方法での取り出し方法など、情報をお持ちの方おられましたら、コメントよろしくお願いします。_(^^)_
ツールのダウンロード
お気に入りした人
拍手で応援
拍手した人
拍手

※この記事はヤマレコの「ヤマノート」機能を利用して作られています。
どなたでも、山に関する知識や技術などのノウハウを簡単に残して共有できます。 ぜひご協力ください!

詳しくはこちら

コメント

EpsonウォッチもEpsonViewもさわったことも見たこともないので、単なるあてずっぽうでしかないので申し訳ないですが、データの9byteめあたりにアスキー文字で「FIT」の文字が埋め込まれていれば、ガーミンで使用しているFIT形式(https://developer.garmin.com/fit/protocol/)の可能性があります。
バイナリデータはヘッダ部にアスキー文字でキーワードが埋め込まれている場合が多いのでそれをもとにデータ形式を探る方法もあるかと思います。
しかしアプリのサポートが終了するとOSのバージョンアップなどで使えなくなることもあるのでつらいところですね。
2025/4/28 19:56
katsushigeさん、コメントありがとうございます。残念ながらFIT形式ではなさそうな感じです。サンプルの内部形式ファイルを以下に置きました。見て頂けたら助かります。なお72バイト目からワークアウトの開始日時(6バイト)、終了日時(6バイト)が入ってることは確認しています。
https://github.com/kfd01567/EpsonViewSupportApp/raw/188f85acb253d2c7bd8da499b9fcfb0d99bfb3b4/workout_binary_28.zip
2025/4/28 21:48
kfd01567さん
やはりはずれでしたか。自分の持っているGPSロガーがFIT形式だったので可能性もあるかと思いましたがそううまくはいかないものですね。
ファイルも見ましたが私のレベルでは簡単には解析できそうになさそうな感じです。
余計なコメントをいれてしまったようで申し訳ないです。
2025/4/29 7:49
さっそくサンプルのファイルにも目を通して頂いたようでありがとうございます。全然、余計なコメントじゃないですよ。私もまだ解析を始めたばかりの段階です。どんなコメントでも大歓迎です。「××の形式じゃないかな」といったコメントを頂ければ、しっかり調べてみます。よろしくお願いします。_(^^)_
2025/4/30 0:12
kfd01567さん
データを眺めていたらちょっと解析に興味が出てきました。差し支えなければ比較用にデータを一つ追加して頂き変換結果のデータも追加して頂けないでしょうか。
変換後のデータからバイナリに逆変換して検索すれば解析がしやすいのでは思います。
いろいろと試せば解析のきっかけぐらいにはなるかもしれません。
2025/4/30 17:26
katsushigeさん、解析にご協力頂けるとのこと、ありがとうございます。しかし残念ながら、EPSONのサイトが4月から閉鎖されたため、変換結果のデータの入手は難しいです(過去の個人のGPXデータにもアクセスできなくなっているようです)。代替策として、GPSウォッチとスマホの両方を持って、幾つかのパターンでログを採取してみました。スマホはGPXファイルでログを採取してます。完全一致とはいかないですが、ほぼ変換結果に近いものと思って頂いて良いかと思います。以下に置いておりますので、もし良かったら見てやってください。中にファイルの説明も入れてます。
https://github.com/kfd01567/EpsonViewSupportApp/raw/7ee6d41e2ec3bc16e793846eab7a540f52ef7c97/workout44_46_47.zip
2025/5/1 16:50
kfd01567さん
せっかくデータをとって頂いたのに確認するのが遅くなってしまい申し訳ないです。
まず複数のファイルを比較して共通データを洗い出そうとしたのですが差異がありすぎて共通データが見いだせない状況です。
想定していたのとデータ構造が違うようで解析は難しいそうです。
多分固定部も含めてGPSの位置情報以外のデータも多数入っているのではないかと思います。
そこでデータを整理し直してみました。
FileNo Start End Lap(s) Data size
No28 11:47:32 11:47:54 22 1,817
No44 13:41:28 13:54:09 761 30,973
No46 14:13:31 14:18:52 321 12,465
No47 14:51:31 14:52:40 69 1,967
複数のデータから1秒間に追加されるデータのサイズを計算してみました(必ずしもサンプリング間隔が1秒とは限らない)
No28と47から (1967-1817)/(69-22) = 3.19
No47と46 (12465-1967)/(321-69) = 41.65
No46と44 (30973-12465)/(761-321) = 42.06
No47と44 (30973-1967)/(761-69) = 41.91
多分No28は設定の違いなどで他と固定部のサイズが大きく違っているように思われます。
No28を除くと1秒に約42byte追加される計算になりまずが、逆算して固定部のサイズを出すとマイナスになるので必ずしも1回/秒でデータが追加されているわけでもなさそうです。
仮に緯度や経度などのデータが4byteだとする10種類程度のデータが記録できることになるのでGPS情報以外にも情報が入っているのではないでしょうか。
もしかしたらサンプリング間隔や内容も設定やモードによって異なっているかもしれませんので変換前後のデータが対でほしいところですが仕方ないですね。

できればEPSONがフォーマットを公開してもらえると一番いいのですが・・・

ちょっと無理っぽいですがもう少しデータを調べてみますので、追加の情報があればメッセージか何かで教えてもらえるとうれしいです。
2025/5/3 13:43
katsushigeさん、サンプルデータの解析、ありがとうございます!こちらもGW等で返信が遅くなってしまい、申し訳ありません。実はあれから色々とありまして、このヤマノートを見られた別の方からワークアウトのサンプルデータとそれに対応するCSVデータを頂くことができました。以前のEPSONのサイトではウォッチからアップロードしたワークアウトのファイルをCSVファイルに変換する機能がサポートされていたそうです(私はその機能に気づきませんでした)。中身を見ると、なんとなく対応付けができそうな感じです。katsushigeさんが言われていたように、GPSの位置情報以外のデータも多数入っているようです。もしお時間があるようでしたら、こちらのファイルもご確認頂けたら幸いです。以下に置いております。
https://github.com/kfd01567/EpsonViewSupportApp/raw/3ee5304fcc7c975c64374b5c227aebd0a567489f/20250114.zip
2025/5/8 11:09
kfd01567さん
データを拝見しました。今回アップロードされたデータは先のデータとは異なり規則性が見られました。0x1D8(472) あたりから 0x39(57)バイトごとに同じデータがでてきます。ヘッダも若干異なることから出力方法が異なるようにも思えます。内容を把握するのはまだ難しいですが手掛かりになりそうです。
データの解析用にバイナリビューワを作成してみたのでもしよければ使ってみてください。
https://github.com/katsushigeyoshida/ToolApp?tab=readme-ov-file
ここからToolApp.zipをダウンロードしてもらい、解凍してToolApp.exeを起動しバイナリビューワをダブルクリックすればビューワが開きます。ファイルパスのコンボボックスをダブルクリックしてファイルを選択します。そこで行バイト数に57と入力して「再表示」ボタンを押すとデータの周期性が分かる表示になると思います。
2025/5/8 21:11
katsushigeさん、データの規則性について、貴重な情報をありがとうございます。確かに今回入手したワークアウトファイルは1レコード57バイト固定長のようですね。この方のウォッチは(私とは異なる)"SF Series"というモデルでしたので、モデルまたは設定等によって変わってくるのかも知れません。その後、別の方から"SF Series"のワークアウトファイルを頂いたのですが、そちらの方は1レコード53バイト固定長になっていました。ご参考までに新たに入手したワークアウトのファイルを以下に置きますね(提供者からは公開の許可は得ています)。

<SF Series 57バイト固定長の追加のデータ[CSVとBINと途中の解析情報]>
https://github.com/kfd01567/EpsonViewSupportApp/raw/33f53db8f3f5e74ea79f1bb27d42e614e877cfb5/20250206.zip

<SF Series 53バイト固定長のデータ[CSVはなし]>
https://github.com/kfd01567/EpsonViewSupportApp/raw/33f53db8f3f5e74ea79f1bb27d42e614e877cfb5/workout_binary_1_jpn_sf.zip

バイナリビューワの提供もありがとうございました。さっそく利用させて頂きました。1行のバイト数を自由に設定できるバイナリエディタの必要性を強く感じましたので、その後lmhexというOSSを見つけて使っています。参考までに上記のデータを開いた画面を以下に置いています。
https://github.com/kfd01567/EpsonViewSupportApp/raw/33f53db8f3f5e74ea79f1bb27d42e614e877cfb5/lmhexScreenShot_jpn.png
2025/5/10 9:40
Version 0.13をリリースしました。以前のバージョンではワークアウトのダウンロードに失敗する、と複数の方からご指摘を頂き、確認しました所、ワークアウトのダウンロード時に内部で指定する値が固定値であったため、"J-350"等の一部のウォッチしかワークアウトのダウンロードができていませんでした。Version 0.13では"SF Series"でもダウンロードできることを確認しております。
※EPSONのGPSウォッチには様々なモデルがあるようですが、私もよく把握できておりません。もしかすると、Version0.13の各モデルの対応だけでは不十分かも知れません。(^^; もしダウンロードに失敗した場合は手作業で「内部で指定する固定値」を算出して、configファイルに定義する機能も今回追加しておりますのでご活用頂ければと思います(少々手間ですので技術者向けです)。
2025/5/8 11:41
&h19 で開始される6byteは日付データです。
ex.19 05 0B 08 25 24

&h19=25 は2000が省略された西暦で
月・日・TOKYO時差9時間を加算して時・分・秒です。
(注:時差9時間で日付がズレる場合もあります)

ex.19 05 0B 08 25 24 = 2025-05-11 17:37'36
2025/5/13 9:33
binの中身はおおまかに(SF110の場合)
----
データ概要
FFFF……FFFF
ラップ1概要
FFFF……FFFF
ラップ2概要
FFFF……FFFF
ラップ3概要
FFFF……FFFF
移動データ(大量)
----
こんな感じです。

GPS軌跡の解析は難しくても
ラップデータだけでも抽出できたら、
最低限の仕事はしてくれるソフトウェアになるのではないでしょうか。
眺めているとアドレス&h001Cがカロリーとか分かります。

またGPSデータの混じらないインドア計測すると
移動データ(大量)が比較的00で埋まるシンプルなデータが取れます。

同一ウォッチを2つ並べて持ち、
1つはインドア、1つはGPS計測で計測し
その差分を調べたらGPS計測の差分が絞り込めて
解析のヒントになるかもしれません。
2025/5/13 9:44
piraru9さん、ワークアウトファイルの解析、ありがとうございます。現在、何人かの方が解析にトライされており、少しづつフォーマットが見えてきている段階です。「&h19 で開始される6byteは日付」についてはワークアウトファイルのヘッダ部分に含まれている情報です。この上の投稿"CSVとBINと途中の解析情報"で資料化された方がおられますので参照頂ければと思います。ワークアウトファイルは先頭からヘッダ部、ボディ部、フッタ部の3部から成るようです。ヘッダ部に関しては結構解析が進んでいるようです。ただしデータの大半を占めるボディ部はまだまだよく分からない部分があり、核心の[GpsData]はこのボディ部に含まれているようです。
katsushigeさんの情報から、"SF Series"のボディ部は1レコードが53バイトまたは57バイトの固定長であることが分かりましたので、2種類のワークアウトファイル(1つはSF-110で、もう1つは別のSF-xxx)を並べて比較してみました。
少し大きな画像ですが、比較の画面を以下に置いていますので参照して頂ければ幸いです。
https://github.com/kfd01567/EpsonViewSupportApp/raw/91e7a0c9d9af434ea7962e0c824432f117520613/compare.png
レコードの16桁目は0x40固定、24桁目は0x50固定、40桁目は0x60固定となっており、その直後に緯度、経度、高度があるのでは?と思っております。ただその数値表現は一般的な緯度、経度、高度ではないような感じです。変換式を見いだせないか調査中です。
解析に使用した2つのワークアウトファイルはいずれもこの上の投稿にあるものですが、解析しやすいようにヘッダ部を削除したり、レコードの途中に時折混ざるゴミデータ?を削除して解析しやすくしたものを参考までに以下に置いています。
https://github.com/kfd01567/EpsonViewSupportApp/raw/91e7a0c9d9af434ea7962e0c824432f117520613/compare_workout.zip
「ラップデータだけでも抽出できたら、最低限の仕事はしてくれるソフトウェアになるのではないでしょうか。」は嬉しいお言葉ですが、RUNNET等ランニング系の掲示板での話でしたらそれでもOKでしょう。ここはヤマレコの掲示板ですので、最低限の仕事がGPS軌跡の出力だと思っています(志は高く!?)。
2025/5/14 1:14
データを見てくれる人が増えたのは心強いですね。
CSVデータのあるデータだけ確認しているのですが[LapData]は0x80から128(0x80)byte単位で書き込まれているようです。
workout_binary_0.bin
LapData 128(0x80) byte
00080 - 00FF Value Offset
LapNo, 1, 0x01 00
EndPoint, 999999,
LapTime, 2456, 0x998
LapDistance, 6751, 0x1A5F 0C
LapCalorie, 567, 0x237 18
LapPaceAve, 363, 0x16B
LapSpeedAve, 9895, 0x26A7 1E
LapPitchAve, 162, 0xA2 2A
LapStrideAve, 98, 0x62 2E
LapKind, 1, 0X01 02
LapSteps, 6667, 0x1A0B 14
LapSplitTime, 245683, 0x3BFB3
LapSplitDistance, 6751, 0x1A5F 10
LapAscentAltitude, 86, 0x56 1A
LapDescentAltitude, 82, 0x52 1C
まだ一部のデータしか紐づけができていませんがこれの繰り返しで入っているようです。
GPSの緯度経度の値はCSVのデータがうまく解釈できれば先に進めるかもしれません。
2025/5/13 19:56
いいねいいね
1
2キロコースを5周しました。
SF110's.binをみてGPS部には53バイトリズムがありました。
5回の同一的な周期があれば緯度経度だと推測できそうです。
一定に増加している値は時間か距離かと推測できそうです。
疲れてきてペースは周回ごとに落ちましたが、ラスト1周はあげました。
そういう増減を描いているのはペースかも。

53バイトが3620個並びました。
タイム59分なので1秒で1レコードぐらいですね。
2025/5/14 10:06
Version 0.14をリリースしました。コメント欄でkatsushigeさん、piraru9さんから頂いた解析情報を元にCSV形式で出力する機能を追加しております。バイナリとの対応がよく分からないフィールドが多々ありますので、分からない項目については"x"で出力しています。 引き続き、解析よろしくお願いします。_(^^)_
2025/5/15 19:04
kfd01567さん
20250206のデータはパリでのデータだったのですね。経度より緯度の方が大きいのが謎だったのですが理解できました。
改めてデータを見直した結果、
起点を0x5F0とした場合
offset 0x0b 2byte Lap秒
offset 0x11 5byte 60 5E AA 00 71 => 485,342,469,728 Latitude ?
offset 0x19 5byte 00 00 01 10 31 => 210,721,898,496 Longitude ?
緯度の方はかなり近い値かと思いますが経度の方は変化がないのではずれだと思います。
2,4,8byte固定単位のデータでは なく1byte単位にデータサイズを変えて格納しいると考えるとデータがサーチできそうな気がします。
その辺の検証機能を先に紹介したツールに組み込んでみました(データ型でEpson57を選択)。
それと[LapData]の数は 0x006C に、LapKindはoffset 0x02,TimeCentiSecondは0x0Bと思われます。
2025/5/16 15:20
katsushigeさん、"Epson57"を確認しました。隣にそれらしいLatitudeとLongitudeが表示された時は、一瞬「ついに解析して下さった!」と喜びそうになりました。でもよく見たらCSVの値とは一致していないですね。。でもかなり近い値が導き出せているようですので、もうひとひねり?といった感じでしょうか。引き続きよろしくお願い致します。
2025/5/17 2:33
Version 0.15をリリースしました。ラップタイム系のデータについて、さらに情報を頂きましたので、アプリに反映しました。情報量が増えたせいでしょうか、EPSON CSV形式の読み込みに対応しているサイト(Runalyze)にアップロードし、ワークアウト内容を表示できるようになりました。
以下はpiraru9さんの「2キロコースを5周」のワークアウト内容をRunalyzeで表示したものです。
https://github.com/kfd01567/EpsonViewSupportApp/raw/bd0b6821ef7c704f75501135f2a98a34e2827de0/runalyze.png
いい感じでラップ情報が表示されています。近い将来(?)、CSV中のGpsDataが正しく出力できるようになれば、この画面の下にマップとGPS軌跡が表示されます。
2025/5/17 2:26
プロフィール画像
ニッ にっこり シュン エッ!? ん? フフッ げらげら むぅ べー はー しくしく カーッ ふんふん ウィンク これだっ! 車 カメラ 鉛筆 消しゴム ビール 若葉マーク 音符 ハートマーク 電球/アイデア 星 パソコン メール 電話 晴れ 曇り時々晴れ 曇り 雨 雪 温泉 木 花 山 おにぎり 汗 電車 お酒 急ぐ 富士山 ピース/チョキ パンチ happy01 angry despair sad wobbly think confident coldsweats01 coldsweats02 pout gawk lovely bleah wink happy02 bearing catface crying weep delicious smile shock up down shine flair annoy sleepy sign01 sweat01 sweat02 dash note notes spa kissmark heart01 heart02 heart03 heart04 bomb punch good rock scissors paper ear eye sun cloud rain snow thunder typhoon sprinkle wave night dog cat chick penguin fish horse pig aries taurus gemini cancer leo virgo libra scorpius sagittarius capricornus aquarius pisces heart spade diamond club pc mobilephone mail phoneto mailto faxto telephone loveletter memo xmas clover tulip apple bud maple cherryblossom id key sharp one two three four five six seven eight nine zero copyright tm r-mark dollar yen free search new ok secret danger upwardright downwardleft downwardright upwardleft signaler toilet restaurant wheelchair house building postoffice hospital bank atm hotel school fuji 24hours gasstation parking empty full smoking nosmoking run baseball golf tennis soccer ski basketball motorsports cafe bar beer fastfood boutique hairsalon karaoke movie music art drama ticket camera bag book ribbon present birthday cake wine bread riceball japanesetea bottle noodle tv cd foot shoe t-shirt rouge ring crown bell slate clock newmoon moon1 moon2 moon3 train subway bullettrain car rvcar bus ship airplane bicycle yacht

コメントを書く

ヤマレコにユーザー登録いただき、ログインしていただくことによって、コメントが書けるようになります。
ヤマレコにユーザ登録する