tag:blogger.com,1999:blog-55191445294723698092024-02-20T20:34:52.900-08:00trails4youandreashttp://www.blogger.com/profile/10095746299505223881noreply@blogger.comBlogger45125tag:blogger.com,1999:blog-5519144529472369809.post-50956881399159237792021-11-26T11:15:00.005-08:002021-11-26T11:28:38.103-08:00<h2 style="text-align: left;"> Strava GPX export and how to fix times</h2><div><br /></div><p style="text-align: left;">If you are on Strava you can usually not easily download gpx track from your friends without being a subscriber. There exits browser extensions fro chrome or firefox that can help you with that.</p><p style="text-align: left;"><br /></p><p style="text-align: left;">What I noticed however is that the timestamps within such exported track are based on Unix epoch.</p><p style="text-align: left;">In addition the whole file usually comes without end-of-line characters.</p><p style="text-align: left;">To fix the latter first you can use gpsbabel and use 'gpx' for input as well as for output type. This literally will reformat the gpx to make it better readable in you favorite editor (mine is emacs btw).</p><div style="text-align: left;"><span style="background-color: #444444; color: white; font-family: courier;">$ gpsbabel -i gpx -f 1234.gpx -o gpx -F 1234_babel1.gpx</span></div><p><br /></p><p>I also found that the first trackpoint was without a timestamp, so you might want to fix it or just delete this trackpoint.</p><p>As an example it might look like this:</p><p><br /></p><div><div><span style="font-family: courier;"></span></div></div><blockquote><div><div><span style="background-color: #444444; color: white; font-family: courier;"> <trkpt lat="50.144884000" lon="5.718563000"></span></div><div><span style="background-color: #444444; color: white; font-family: courier;"> <ele>378.000</ele></span></div><div><span style="background-color: #444444; color: white; font-family: courier;"> <time>1970-01-01T00:00:01Z</time></span></div><div><span style="background-color: #444444; color: white; font-family: courier;"> <extensions></span></div><div><span style="background-color: #444444; color: white; font-family: courier;"> <gpxtpx:TrackPointExtension></span></div><div><span style="background-color: #444444; color: white; font-family: courier;"> <gpxtpx:hr>94</gpxtpx:hr></span></div><div><span style="background-color: #444444; color: white; font-family: courier;"> <gpxtpx:atemp>22</gpxtpx:atemp></span></div><div><span style="background-color: #444444; color: white; font-family: courier;"> </gpxtpx:TrackPointExtension></span></div><div><span style="background-color: #444444; color: white; font-family: courier;"> </extensions></span></div><div><span style="background-color: #444444; color: white; font-family: courier;"> </trkpt></span></div></div><div><span style="background-color: #cccccc; font-family: courier;"><br /></span></div><div></div></blockquote><p style="text-align: left;">As you can see the time starts at unix epoch (Zulu).<br /></p><div style="text-align: left;">To fix this note down the real ZULU time when the run happend (in Strava that is shown for that activity). Let say that run started at 6:00 PM on Friday, February 21, 2020 then we can get the epoch offset (seconds after epoch) like this:</div><div style="text-align: left;"><br /></div><div style="text-align: left;"><div><span style="background-color: #444444; color: white;"><span style="font-family: courier;">$ date --date='02/21/2020 17:00:00Z' +"%s"<br /></span><span style="font-family: courier;">1582304400</span></span></div><div><br /></div></div><p style="text-align: left;">Now use gpsbabel to add the offset, of course you can directly work on the original file skipping the first step above to just re-write the same file with newlines:</p><p style="text-align: left;"><br /></p><div style="text-align: left;"><div><span style="background-color: #444444; color: white;"><span style="font-family: courier;">$ ./gpsbabel/gpsbabel -i gpx -f 1234_babel1.gpx -x track,move=+</span><span style="font-family: courier;"><b>1582304400</b></span><span style="font-family: courier;">s -o gpx -F 1234_babel2.gpx </span></span></div><div><span style="background-color: #eeeeee; font-family: courier;"><br /></span></div><p style="text-align: left;">... so why you want to do this??? In my case I wanted to create an animation with two gpx tracks where one was my run and the other was from someone else (being on Strava as well) so to correlate the times we need to fix either my track (since it has correct timestamps, we could normalize to epoch) or do what is described here.</p><p style="text-align: left;">Then you use <a href="https://gpx-animator.app/">https://gpx-animator.app/</a> to generate a video file like this one: <a href="https://exitzero.de/LegendsTrail_GPX-Animation.mp4">LegendsTrail_GPX-Animation.mp4</a></p><p style="text-align: left;"><br /></p></div>andreashttp://www.blogger.com/profile/10095746299505223881noreply@blogger.comtag:blogger.com,1999:blog-5519144529472369809.post-88196031451999054992021-10-05T09:29:00.005-07:002021-11-26T10:54:47.238-08:00<p> # OpenRazer on RedHat 8.4</p><p>## building rpm</p><p>Basically follow the steps for Fedora listed here: <a href="https://github.com/openrazer/openrazer/wiki/Building-a-package">https://github.com/openrazer/openrazer/wiki/Building-a-package</a></p><h2 style="text-align: left;">Steps</h2><blockquote><p><span style="font-family: courier;">sudo dnf install rpm-build rpmdevtools</span></p><p><span style="font-family: courier;">rpmdev-setuptree</span></p><p><span style="font-family: courier;">cd ~/rpmbuild/SPECS</span></p><p><span style="font-family: courier;">curl -O https://raw.githubusercontent.com/openrazer/OBS-packaging/master/openrazer.spec</span></p><p><span style="font-family: courier;"># To build from custom sources, pause here to edit openrazer.spec:</span></p><p><span style="font-family: courier;"># Replace the line with "#define gitcommit" with "%define gitcommit $yourcommit"</span></p><p><span style="font-family: courier;"># Optionally you will have to edit the first "Source0:" line to point to a different repository than openrazer/openrazer.</span></p><p><span style="font-family: courier;">spectool -g -R openrazer.spec</span></p><p><span style="font-family: courier;">sudo dnf -y builddep openrazer.spec</span></p><p><span style="font-family: courier;">rpmbuild -bb openrazer.spec</span></p><p><span style="font-family: courier;">sudo dnf install ../RPMS/noarch/*.rpm</span></p></blockquote><p><span style="font-family: courier;"></span></p><h2 style="text-align: left;">Issues</h2><p>I have python 3.6 amd 3.8 installed, rpmbuild took wrong version in order to fix this add this define to override python_sitelib:</p><p></p><blockquote><p>%define python3_sitelib /usr/lib/python3.8/site-packages</p><div></div></blockquote><div>in addition I used the latest git commit hash from main (check yourself):</div><div><div></div></div><blockquote><div><div>#define gitcommit 7c353f9c8f1439bce5396218331c412eae0c2563</div></div><div></div></blockquote><div><br /></div><p>I could not find a python3-daemonize package in redhat yum repository. But that does not matter, actually I think I do not need the daemon anyway. Most frontends only require the driver. So you could remove that requirement if you want to get it installed then install daemonize via pip3 for example.</p><p><br /></p><h3 style="text-align: left;">xautomation</h3><p>I created this specfile to build xautomation rpm (again I do not make use of it ... but at that time thought I might require the dependency)</p><p><br /></p><p></p><blockquote><p><span style="font-family: courier;"># use spectool to download source:<br /># spectool -g -R xautomation.spec</span></p><p><span style="font-family: courier;"><br /></span></p><p><span style="font-family: courier;">%define python3_sitelib /usr/lib/python3.8/site-packages</span></p><p><span style="font-family: courier;">%define debug_package %{nil}</span></p><p><span style="font-family: courier;"><br /></span></p><p><span style="font-family: courier;">Name: xautomation</span></p><p><span style="font-family: courier;">Version: 1.09</span></p><p><span style="font-family: courier;">Release: 4%{?dist}</span></p><p><span style="font-family: courier;">Summary: Controls X from the command line and does "visual scraping".</span></p><p><span style="font-family: courier;">License: GPL-2.0</span></p><p><span style="font-family: courier;">URL: https://hoopajoo.net/projects/xautomation.html</span></p><p><span style="font-family: courier;">BuildArch: x86_64</span></p><p><span style="font-family: courier;">Requires: libXtst-devel</span></p><p><span style="font-family: courier;">Source0: https://hoopajoo.net/static/projects/%{name}-%{version}.tar.gz</span></p><p><span style="font-family: courier;">%description<br />Controls X from the command line and does "visual scraping".</span></p><p><span style="font-family: courier;"><br /></span></p><p><span style="font-family: courier;">%prep<br />%autosetup -n xautomation-%{version}</span></p><p><span style="font-family: courier;">%build<br />./configure --prefix=$RPM_BUILD_ROOT/usr<br />make<br /><br />%install<br />make install</span></p><p><span style="font-family: courier;">%files<br />/usr/bin/*<br />%{_prefix}/bin/*</span></p><p><span style="font-family: courier;">%{_mandir}/man1/pat2ppm.1.gz<br />%{_mandir}/man1/patextract.1.gz<br />%{_mandir}/man1/png2pat.1.gz</span></p><p><span style="font-family: courier;">%{_mandir}/man1/rgb2pat.1.gz|<br />%{_mandir}/man1/visgrep.1.gz<br />%{_mandir}/man1/xmousepos.1.gz<br />%{_mandir}/man1/xte.1.gz<br />%{_mandir}/man7/xautomation.7.gz</span></p><div></div></blockquote><div><br /></div><h3 style="text-align: left;">find keyboard</h3><p><span style="font-family: courier;"></span></p><blockquote><p><span style="font-family: courier;">#!/bin/sh</span></p><p><span style="font-family: courier;">[ -d /sys/bus/hid/drivers/razerkbd ] || exit 1</span></p><p><span style="font-family: courier;">device=$(find -H /sys/bus/hid/drivers/razerkbd/0003\:1532\:0241.*/ -type f -name device_type)</span></p><p><span style="font-family: courier;">device_type=$(cat $device)</span></p><p><span style="font-family: courier;">device=$(echo ${device%/*})</span></p><p><span style="font-family: courier;">if [ "Razer BlackWidow 2019" = "$device_type" ]; then</span></p><p><span style="font-family: courier;"> echo "Keyboard found at: $device"</span></p><p><span style="font-family: courier;">else</span></p><p><span style="font-family: courier;"> echo "No Razer Blackwidow found!"</span></p></blockquote><blockquote><p><span style="font-family: courier;"> exit 2</span></p></blockquote><blockquote><p><span style="font-family: courier;">fi</span></p><div></div></blockquote><div><br /></div><h4 style="text-align: left;">set effects</h4><p><span style="font-family: courier;"><br /># echo -n -e "\x03\x00\xFF\xFF" > $device/matrix_effect_reactive<br />matrix=$1<br />if [ -z "$matrix" ]; then<br /> echo "bye"<br />fi<br /><br />case $matrix in<br />"wave")<br /> echo "setup wave pattern"<br /> echo -n "1" > $device/matrix_effect_wave<br /> ;;<br />"stars")<br /> echo "setup starlight pattern"<br /> ;;<br />"react")<br /> speed=$2<br /> color=$3<br /> if [ -z "$speed" ] || [ -z "$color" ]; then<br /><span style="white-space: pre;"> </span>echo "no speed and color provided using: \"\x03\x00\xFF\xFF\""<br /><span style="white-space: pre;"> </span>echo -n -e "\x03\x00\xFF\xFF" > $device/matrix_effect_reactive<br /><span style="white-space: pre;"> </span>#exit 3<br /> fi<br /> echo "setup reactive effect: \"$speed$color\""<br /> echo -n -e "$speed$color" > $device/matrix_effect_reactive<br /> ;;<br /># *)<br /># STATEMENTS<br /># ;;<br />esac</span></p><div><br /></div><p><br /></p>andreashttp://www.blogger.com/profile/10095746299505223881noreply@blogger.comtag:blogger.com,1999:blog-5519144529472369809.post-90140202348026683012021-06-17T06:27:00.002-07:002021-06-17T06:27:43.234-07:00<p> nix los im blog</p>andreashttp://www.blogger.com/profile/10095746299505223881noreply@blogger.comtag:blogger.com,1999:blog-5519144529472369809.post-81009715869114699502017-09-06T04:17:00.000-07:002017-09-06T04:17:06.389-07:00Downgrade android appJust in case you come in some similar situation ...<br />
I had "auto-update" enabled in the Play Store settings on my android phone, so a few days ago the Garmin Connect Mobile app had been updated automatically. So far so good, wasn't for the first time though. But this time this version did not allow re-connection of my Garmin Fenix 3 with the app once the connection was lost (phone off or just out of reach ...). I could not find any other way (like off/on BT or rebooting phone/watch) then going through the process of re-pairing the device :(<br />
<br />
But previous version was working just fine and could handle this situation without problems.<br />
So what to do? Either live with it ... yeah could, maybe next update comes soon and will fix the regression. Also I have seen some app that does the re-pairing of the device for you ... well I have not tested it but hard to believe it is much faster than doing it manually. So I thought it might be the best to just install the previous version at it was just working right.<br />
<br />
But how?<br />
Well pretty easy actually you just go to a site like: <a href="https://www.apkmirror.com/">https://www.apkmirror.com/</a> search for the connect app and download the previous version as .apk file.<br />
Then push to your phone (well if you browser to the site via phone you can skip this of course) eg. via adb push. I removed (aka deinstalled) connect mobile app before (not sure if it would be problematic to keep old version ... maybe not) then enable installation of app from unknown sources in the developer settings on the phone. Browse to the .apk file and press "install" button.<br />
Done open app and login, pair your device and you're good to go.<br />
For now I also disabled "auto update" ;)andreashttp://www.blogger.com/profile/10095746299505223881noreply@blogger.comtag:blogger.com,1999:blog-5519144529472369809.post-38176537704427964122017-01-06T13:24:00.000-08:002017-01-06T13:24:18.285-08:00Wo lauf ich denn heute ...?<h2>
Oder wie finde ich eine neue (Lauf-) Strecke</h2>
Gerade hat jemand diesen Link im <a href="https://www.dcrainmaker.com/2013/06/awesome-cycling-smarter.html#comment-1866329">DC Rainmaker Blog</a> gepostet:<br />
<a href="https://www.naviki.org/de/naviki/route-planen/#">https://www.naviki.org/de/naviki/route-planen/#</a><br />
<br />
In der Vergangenheit hatte ich schon mal etwas ähnliches entdeckt und hatte mir auch schon selbst Gedanken gemacht etwas Vergleichbares zu basteln ...<br />
<br />
Worum geht's eigentlich? ... ganz einfach, ich will laufen ... so ca. 30km oder heute vielleicht auch mal 60k, aber weiss nicht wo lang!<br />
Also ... man braucht ein tool, dem man sagt ich will ca. 30k laufen, mach mal ein paar Vorschläge.<br />
<br />
Genau das kann man auf der naviki seite oben tun!<br />
<br />
Das sieht dann erstmal so aus:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsMcPeoWHET7xHr_jnjKb6yjxvSjDgrLzi1cQWoVjLBt8PYGUZ5UiH6P74FZDM4uQcmFgXN4KwYxxCvtsQH1bkxfM7p22LJFeeV6COVxs5zAYHOYzdwHJgm7UFAd99cRwQAvI413qioJo/s1600/Screenshot+from+2017-01-06+22-09-26.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="304" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsMcPeoWHET7xHr_jnjKb6yjxvSjDgrLzi1cQWoVjLBt8PYGUZ5UiH6P74FZDM4uQcmFgXN4KwYxxCvtsQH1bkxfM7p22LJFeeV6COVxs5zAYHOYzdwHJgm7UFAd99cRwQAvI413qioJo/s640/Screenshot+from+2017-01-06+22-09-26.png" width="640" /></a></div>
<br />
<br />
Von hier klickt man auf das "Round-Trip" Symbol, dann auf der Karte einen Startpunkt suchen und "Rechts-Klick" -> "Von Hier" auswählen (Oder alternativ Straße, Ort eingeben). Danach wurde bei mir schon eine Strecke angezeigt (default 50k, Alltag). Damit es auch Spass macht sollte man auf jeden Fall auch auf "Mountainbike" klicken und ggf. über den Schieber die gewünschte (ca.) Distanz variieren. Dann kann man mit Klicks auf die Pfeile (unter der Streckenlänge) verschiedene Strecken "durchscrollen".<br />
<br />
Ueber das kleine Menufeld rechts oberhalb des Höhenprofils, kann man die Strecke auch als gpx speichern.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6g-9huFut0IDUPnVuUksOoKdH817fpeCrvCUjCju-HWgNqQAgbCJSfXihzWfSNLpiTxOQqqUkJbOxZDOvloSMK3R3N6v5HN_Ufc6s_-L-xaXujQJw1hZlpR4OPCpoZbXBwlhg9z4S8D4/s1600/Screenshot+from+2017-01-06+22-21-39.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="306" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6g-9huFut0IDUPnVuUksOoKdH817fpeCrvCUjCju-HWgNqQAgbCJSfXihzWfSNLpiTxOQqqUkJbOxZDOvloSMK3R3N6v5HN_Ufc6s_-L-xaXujQJw1hZlpR4OPCpoZbXBwlhg9z4S8D4/s640/Screenshot+from+2017-01-06+22-21-39.png" width="640" /></a></div>
<br />
<br />
Also ich find's Cool!andreashttp://www.blogger.com/profile/10095746299505223881noreply@blogger.comtag:blogger.com,1999:blog-5519144529472369809.post-61196119336776652462016-10-22T08:41:00.003-07:002016-10-22T08:42:16.629-07:00Umweltpreis ... wer mag darf hier gerne abstimmen:<br />
<br />
<a href="https://www.swt-umweltpreis.de/profile/landschaftspflege-schaffung-von-biotopen-und-erhalt-von-kleindenkmalen-im-schaichtal/">https://www.swt-umweltpreis.de/profile/landschaftspflege-schaffung-von-biotopen-und-erhalt-von-kleindenkmalen-im-schaichtal/</a><br />
<br />
<br />
... worum geht's?<br />
<br />
WAS MÖCHTEN SIE MIT IHREM PROJEKT IN DER REGION BEWIRKEN?<br />
<br />
Das Prinzip „Schützen durch Nützen“ wird in allen Bereichen des Naturpark Schönbuch angewendet. Natur- und Landschaftsschutz werden parallel zur nachhaltigen Forstwirtschaft und dem sanften Naturtourismus betrieben. Durch die jährlichen Landschaftspflegeaktionen sorgt der Förderverein Naturpark Schönbuch e.V. für die Identifikation seiner Besucher mit ihrer Heimat. Die gemeinsamen Aktionen schaffen ein Bewusstsein für die Natur vor der eigenen Haustüre und das Gefühl, Verantwortung für diese besondere Landschaft zu tragen.<br />
<br />
Dem Aufruf zur Teilnahme an der Pflegeaktion folgen seit 25 Jahren viele freiwillige Helfer und Freunde des Naturparks. In der Vergangenheit wurden u.a. Streuobstwiesen gepflegt, die Lindenallee neu bepflanzt, Hecken zurückgeschnitten und wertvolle Talauen im Naturpark von aufkommender Sukzession befreit. Die Aktionen zählen wegen ihrer jahrelangen Kontinuität und dem hohen naturschutzfachlichen Wert neben der Umweltbildung und der Öffentlichkeitsarbeit zu den wichtigsten Aufgaben des Fördervereins.<br />
Bei näherer Betrachtung zeigt sich, dass der Schönbuch aber auch eine unglaubliche Vielzahl von Kleindenkmalen aufweist. Mit seinen Pflegeaktionen trägt der Verein ebenfalls zum Erhalt dieser historisch wertvollen Funde bei und setzt sich dafür ein, den Menschen den Natur- und Kulturraum erlebbar zu machen.<br />
<br />
Am 22. Oktober 2016 gilt deshalb unser Einsatz im Landkreis Esslingen der Pflege eines historischen Wanderwegs im Walddistrikt Schaichberg. Damit die kulturgeschichtlich bedeutsamen Denkmale auch zukünftig erhalten bleiben, werden bei der Pflegeaktion historische Tongruben sowie keltische Grabhügel freigeschnitten. Dadurch werden zusätzlich wertvolle Lebensräume für Amphibien wie dem Bergmolch und der Gelbbauchunke geschaffen.<br />
Eine weitere Maßnahme ist das Freistellen eines Steinbruchs. Dieser Eingriff dient neben der Denkmalpflege ebenfalls dem Biotopschutz, indem Lebensräume für Reptilien geschaffen, verbessert und erhalten werden.<br />
<br />
WOFÜR WÜRDEN SIE DIE FÖRDERGELDER VERWENDEN?<br />
<br />
In erster Linie würden die Fördergelder für die nachhaltigen, jährlich stattfindenden Landschaftspflegeaktionen (Biotopschaffung) verwendet werden. Des Weiteren für waldpädagogische Einrichtungen, Maßnahmen der Öffentlichkeitsarbeit sowie die Neugestaltung des Besucherleitsystems im Naturpark Schönbuch.andreashttp://www.blogger.com/profile/10095746299505223881noreply@blogger.comtag:blogger.com,1999:blog-5519144529472369809.post-883211854353883192016-02-27T13:54:00.000-08:002016-02-27T13:54:19.749-08:00raspi edimax wlan<h2>
WLAN on raspberry pi with edimax usb adapter</h2>
<br />
Installed new <a href="https://github.com/raspberrypi/noobs">NOOBS</a> on a raspi that was laying around on my desk ... <br />
I went for a headless aka silentinstall installation. The raspi still had some EDIMAX wireless usb adapter installed.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://ws-eu.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B003MTTJOY&Format=_SL250_&ID=AsinImage&MarketPlace=DE&ServiceVersion=20070822&WS=1&tag=randbric-21" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://ws-eu.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B003MTTJOY&Format=_SL250_&ID=AsinImage&MarketPlace=DE&ServiceVersion=20070822&WS=1&tag=randbric-21" height="167" width="200" /></a></div>
<br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">Bus 001 Device 004: ID 7392:7811 Edimax Technology Co., Ltd EW-7811Un 802.11n Wireless Adapter [Realtek RTL8188CUS]</span><br />
<br />
So ... that little thing worked before ... pretty sure about that. Now I did not get wifi connection to my access point :(<br />
<br />
Some of the strange log messages include:<br />
<br />
<span style="font-family: "Courier New",Courier,monospace;"><span style="font-size: small;"><code><span style="font-family: inherit;">$ sudo wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/example.conf</span></code></span></span><br />
<span style="font-family: "Courier New",Courier,monospace;"><span style="font-size: small;"><code><span style="font-family: inherit;">Successfully initialized wpa_supplicant</span></code></span></span><br />
<span style="font-family: "Courier New",Courier,monospace;"><span style="font-size: small;"><code><span style="font-family: inherit;">nl80211: Driver does not supp</span>ort authentication/association or connect commands</code></span></span><br />
<h2>
<span style="font-family: "Courier New",Courier,monospace;"><span style="font-size: small;"><code></code></span></span></h2>
<span style="font-family: "Courier New",Courier,monospace;"><span style="font-size: small;"><code>wlan0: Failed to initialize driver interface</code></span></span><br />
<br />
<span style="font-family: inherit;">Google says there's others with this issue ... but really it took quite <span style="font-family: inherit;">a while to find a working solution ... so <span style="font-family: inherit;">what helped me is from this source:</span></span></span><br />
<span style="font-family: inherit;"> </span> <br />
<a href="http://ratgeber-community.com/wlan-mit-raspberry-pi-raspbian-und-edimax-ew-7811un-44527d2f"> http://ratgeber-community.com/wlan-mit-raspberry-pi-raspbian-und-edimax-ew-7811un-44527d2f</a><br />
<br />
When I ran wpa_supplicant with -dd I was wondering why my access point got ignored, yes SSID is hidden but so what?<br />
<br />So from the page above the hint was to add stuff to the /etc/network/interfaces<br />
<span style="font-family: "Courier New",Courier,monospace;">auto wlan0<br />allow-hotplug wlan0<br />iface wlan0 inet dhcp<br />wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf<br /><b>wpa-ap-scan 1<br />wpa-scan-ssid 1</b><br />wpa-ssid "MYSSID"<br />wpa-proto RSN<br />wpa-pairwise CCMP<br />wpa-key-mgmt WPA-PSK<br />wpa-psk "mytotallysecurepassphrase"<br />iface default inet dhcp</span><br />
<br />
<span style="font-family: inherit;">The auth stuff and proto and such is actually all in wpa_supplicant.conf as well but for some reason connecting to AP without <b>wpa-ap-scan</b> and <b>wpa-scan-ssid</b> does not work here (anymore).</span><br />
<span style="font-family: inherit;"><b><br /></b></span><br />
andreashttp://www.blogger.com/profile/10095746299505223881noreply@blogger.comtag:blogger.com,1999:blog-5519144529472369809.post-70946835648434250992016-01-02T07:14:00.003-08:002016-01-02T07:14:45.622-08:00<h2>
Runalyze my git reference</h2>
<br />
$ git clone git@github.com:lefty01/Runalyze.git<br />
<br />
$ git remote add upstream git@github.com:Runalyze/Runalyze.git<br />
<br />
$ git fetch upstream <br />
<br />
$ git checkout master<br />
<br />
$ git merge upstream/master<br />
<br />
$ git push origin master<br />
<br />
<br />andreashttp://www.blogger.com/profile/10095746299505223881noreply@blogger.comtag:blogger.com,1999:blog-5519144529472369809.post-22996022170148903782015-12-15T05:02:00.004-08:002015-12-15T05:12:03.881-08:00Epson Runsense<div class="yellow uppercase">
Werde Tester der neuen <a href="https://www.epson.de/de/de/viewcon/corporatesite/cms/index/11211/"><b><span style="font-weight: normal;"><b>Runsense SF-810</b></span></b></a><span style="font-weight: normal;"> von </span><b><span style="font-weight: normal;"><b><a href="http://epson.com/">Epson</a></b></span></b></div>
<br />
<a href="http://www.100runnertesters.de/">http://www.100runnertesters.de/</a><br />
<br />
Ich habe mich schon mal angemeldet ...<br />
30h Laufzeit im GPS modus ... das hört der Ultraläufer gerne, ob's in der Praxis funktioniert?<br />
Weitere Fragen:<br />
<ul>
<li>laden während dem lauf?</li>
<li>firmware updates?</li>
<li>pulsmessung im wasser? schwimm-mode gibt es wohl leider nicht :( das datenblatt sagt sogar mal solle im wasser besser keine tasten drücken</li>
<li>welche lauf/trainings optionen gibt es, wie funktioniert das erstellen und durchfuehren eines workouts?</li>
<li>daten zur lauftechnik analyse... (running dynamics in garmin speak)? </li>
<li>"down-" bzw. "up-" der Daten zum PC und/oder Internet-Laufportal, wie gehts?</li>
<li>Kann ich Daten auch "einfach" von einem Nicht-Win/Mac-Rechner von der Uhr bekommen?</li>
<li>...</li>
</ul>
... also ich könnte das Teil schon stressen ;)<br />
<br />
<br />
Nachtrag Akku, unter <a href="http://www.navigation-professionell.de/epson-runsense-sf-810-test/">http://www.navigation-professionell.de/epson-runsense-sf-810-test/</a> findet sich noch folgende Info, das weicht etwas von den 30h die auf der Webseite oben angegeben sind ab (?)<br />
<span class="entry-content"></span><br />
<br />
<b>Epson gibt folgende Laufzeiten an</b>:<br />
<ul>
<li>GPS ausgeschaltetet: 20 Tage</li>
<li>GPS eingeschaltetet: 24 Stunden</li>
<li>GPS und Herzfrequenzmessung aktiviert: 20 Stunden</li>
<li>Herzfrequenzmessung aktiviert: 40 Stunden</li>
</ul>
<br />andreashttp://www.blogger.com/profile/10095746299505223881noreply@blogger.comtag:blogger.com,1999:blog-5519144529472369809.post-52268746797229522162015-12-15T04:50:00.000-08:002015-12-15T04:51:00.254-08:00Garmin Fenix3 FirmwareBeta 6.24 out since a few days ....<br />
<a href="https://www8.garmin.com/support/download_details.jsp?id=9505">https://www8.garmin.com/support/download_details.jsp?id=9505</a><br />
<br />
... this really solved some battery drain issues that I had seen.<br />
Initially when I got the watch (firmware 4.40 I guess) battery drain was very well within the specifications but I can't tell which update caused the trouble I had until now.<br />
The odd thing is that base functionality (gps, elevation, etc.) was all good with 4.40 that time ... but updates also bring new functionality ...<br />
<br />
So far I really like the fenix 3!<br />
<br />andreashttp://www.blogger.com/profile/10095746299505223881noreply@blogger.comtag:blogger.com,1999:blog-5519144529472369809.post-82572940395054266152015-09-11T15:14:00.000-07:002015-09-11T15:18:45.452-07:00Garmin fenix3<h2>
What to do with activities?</h2>
<div>
One of the cool features the <a href="https://buy.garmin.com/en-US/US/on-the-trail/wrist-worn/fenix-3/prod160512.html">fenix3</a> provides is the wireless lan module. I really don't wanna miss this. Once you have added your available WLAN networks (I added my home network and my smartphone wifi tethering <a href="http://www.gizmag.com/how-to-turn-your-smartphone-into-a-wi-fi-hotspot/32544/">hotspot</a>) and wifi auto-upload is enabled on your watch, the fenix3 will periodically try to connect to your network once a new activity has been saved.</div>
<div>
Cool ... so after a run upon entering my house the activity is basically already uploaded to <a href="https://connect.garmin.com/">Garmin Connect</a>.</div>
<div>
<br /></div>
<h3>
Strava and Garmin Connect (GC)</h3>
<div>
So far so good ... the thing is some years ago I was searching for some online portal to upload my running activities (backup, stats, fun, for whatever reason ...), that time I came along <a href="http://strava.com/">strava.com</a>. One thing they had (way before garmin connect) were the so called '<a href="https://strava.zendesk.com/entries/20945952-What-are-Segments-">segments</a>' for runs and bike rides and associated '<a href="https://strava.zendesk.com/entries/21299622-Achievement-Awards-Glossary">koms</a>'. Along with segments also comes a leaderboard.</div>
<div>
Long story made short so far I was using strava not garmin connect (GC). In the past I manually uploaded my .fit files to the strava page, of course this will still work but since now everything can automatically appear in GC it makes sense this gets automatically to strava as well.</div>
<div>
So how to do this? Simple ... strava provides the option to sync GC ... no big deal ...</div>
<div>
Unfortunately it just did not work for me so far ... not sure why.</div>
<div>
So I was looking for some other way to download files from GC and upload again to strava.</div>
<div>
I found <a href="https://github.com/kjkjava/garmin-connect-export">garmin-connect-export</a> and made some minor <a href="https://github.com/lefty01/garmin-connect-export">enhancements</a>. Once you have a .fit file you can use <a href="http://strava.github.io/api/">strava api</a> to upload this file and it will appear on your dashboard.</div>
<div>
To do so I make use of the node.js strava module, you can find this script and description <a href="https://github.com/lefty01/strava-upload">here</a>.</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
So my current "workflow" is:</div>
<div>
<ol>
<li>go running/cycling/swimming and return back home (or turn on mobile hotspot)</li>
<li>run <span style="font-family: Courier New, Courier, monospace;">gcexport.py -d ~/MyActivities -c 5 -u</span> (optionally provide user/pwd on cmdline)</li>
<li><span style="font-family: Courier New, Courier, monospace;">node strava-file-upload.js -f ~/MyActivities/895146395.fit</span></li>
</ol>
<h3>
<span style="font-family: inherit;">TODO</span></h3>
</div>
<div>
<span style="font-family: inherit;">A</span><span style="font-family: inherit;">utomate the steps 2 and 3 from above. Right now my idea is to monitor my wlan traffic and trigger some script once an activity upload is detected. The script should do the GC download and strava upload.</span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
Maybe something like this (where 12:34:56:78:9A:BC is your watch mac address):</div>
<div>
tcpdump -i wlan0 ether host 12:34:56:78:9A:BC | awk '{if (some condition) {system("somescript")}}'</div>
<div>
<br /></div>
<div>
<br />
And since I have now installed <a href="https://runalyze.com/">runalyze</a> on my server I want to sync to this one as well ... but should not be a big deal ... especially since runalyze is open source (see also my <a href="https://github.com/lefty01/Runalyze">fork</a>).<br />
<br /></div>
andreashttp://www.blogger.com/profile/10095746299505223881noreply@blogger.comtag:blogger.com,1999:blog-5519144529472369809.post-25583876729270170742015-05-20T13:17:00.001-07:002015-05-21T05:24:44.862-07:00Runalyze<h2>
A OpenSource Online Running Diary</h2>
<div>
<br /></div>
<div>
Ever wanted to host your own running portal, something similar to strava or garmin connect?</div>
<div>
Well ... here we go: <a href="http://blog.runalyze.com/">runalyze</a> !</div>
<div>
<br /></div>
<div>
<br /></div>
<h3>
Installation (Linux)</h3>
<div>
Basically you follow the instructions from the website which are as simple as getting the tarball and extract into some directory on your webserver (which you can be reached from a browser of course).</div>
<div>
Then load the install.php (script) url from a web browser.</div>
<div>
That should be it ... well almost. Runalyze requires an mysql database installation so it's an good idea to check with that first and have some mysql use with enough privileges.</div>
<div>
The following grants should be fine for 'someuser':</div>
<div>
<br /></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER ON `runalyze`.* TO 'someuser'@'localhost'</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"><br /></span></div>
<div>
<span style="font-family: inherit;">Later in the install you will have to enter that username.</span><br />
<span style="font-family: inherit;"><br /></span>
One problem I had after the install was that the index page wasn't really loading. Looking into the webserver log gave the answer, I had to create a temp dir and set permissions:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;"># mkdir /tmp/cache.storage.my-servername.de</span><br />
<span style="font-family: Courier New, Courier, monospace;"># chmod 777 /tmp/cache.storage.my-servername.de</span><br />
<br />
<h3>
Troubleshooting</h3>
<h4>
FIT import not working</h4>
I had problems with uploading .fit (garmin) files. The issue here was that you could choose one or more files for upload and basically there were some calender entries but all with zero data. That means all had the same timestamp and no distance, time, ... data was shown.<br />
The problem here was that the perl script <span style="font-family: "Courier New",Courier,monospace;">call/perl/fittorunalyze.pl</span> wasn't executed on that file. The reason for this script not being executed were the php safe_mode settings on the server for the runalyze directory.<br />
So in case you have similar issues you might check the <span style="font-family: "Courier New",Courier,monospace;">php_admin_flag safe_mode</span>.<br />
<br /></div>
andreashttp://www.blogger.com/profile/10095746299505223881noreply@blogger.comtag:blogger.com,1999:blog-5519144529472369809.post-44130591553328054502015-05-11T13:06:00.001-07:002015-05-26T01:05:05.219-07:00100 Km Albtrauf für Nepal #100atnepal<h2>
100 Km Albtrauf für Nepal #100atnepal</h2>
<br />
Ein Spendenprojekt von <a href="https://runance.wordpress.com/">Andreas Bulling</a> und <a href="http://waldpfadlaeufer.de/">Frank Weller</a>:<br />
<a href="https://runance.wordpress.com/2015/05/01/100atnepal/">https://runance.wordpress.com/2015/05/01/100atnepal/</a><br />
<br />
Die Idee ist es, den Leuten in Nepal zu helfen, der Lauf soll dazu motivieren, die Spendensumme ist natuerlich ansporn die 100 trailigen auf-und-ab Kilometer auch durchzustehen.<br />
Die Aktion ist auf <a href="https://www.aktion-deutschland-hilft.de/">https://www.aktion-deutschland-hilft.de</a> gelistet und Spenden werden direkt an diese Organisation uebermittelt, welche sie, in diesem Fall als Hilfe fuer Nepal, projektgebunden einsetzt.<br />
<br />
<br />
Spenden kann jeder direkt unter:<br />
<a href="https://www.aktion-deutschland-hilft.de/de/aktiv-helfen/interaktiv-helfen/starte-deine-spendenaktion/?hptitle=100km-albtrauf">https://www.aktion-deutschland-hilft.de/de/aktiv-helfen/interaktiv-helfen/starte-deine-spendenaktion/?hptitle=100km-albtrauf</a><br />
<br />
Also einfach dem Link folgen und ein paar Euro locker machen ;)<br />
p/s: es gibt keinen Mindestbetrag ;) (max. natuerlich auch nicht)<br />
<br />
pp/s: Ich werd mal schauen, wie weit ich mit den Beiden mithalten kann und zumindest gemeinsam mit am Start stehen und soweit laufen wie es meine Fitness erlaubt.<br />
<br />
<span style="color: red;"><b>UPDATE (20.05.2015): </b></span>erfolgreich am 15.05 gelaufen ca. 107km in 16 Stunden im Regen und Nebel auf einem tollen Wanderweg mit zwei klasse Typen. Spendenstand <b id="price_full-text-value">3.321,80!</b><br />
Spenden werden weiterhin gerne angenommen auf der Seite von <a href="https://www.aktion-deutschland-hilft.de/de/aktiv-helfen/interaktiv-helfen/starte-deine-spendenaktion/?hptitle=100km-albtrauf">Aktion Deutschland Hilft</a>.<br />
<br />
Hier ein Bericht in der <a href="http://www.swp.de/geislingen/lokales/geislingen/Kein-Gedanke-ans-Aufgeben;art5573,3223271">Geislinger Zeitung</a>.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivYHhFzyvReyd7HhVO9EsH3FssLzTvim_sf6vYegW4xbq8B-oYfl4FmJ5Zas3MODlyID1NgXDIonrLFY34i6RTf1NwoHfcd4XRN61IhsPz17dplHM-GvJkWSbgKRjhWtPY9Ci4uBgRYiw/s1600/1913431_1_IMG_6875Albtrauflaeufer.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivYHhFzyvReyd7HhVO9EsH3FssLzTvim_sf6vYegW4xbq8B-oYfl4FmJ5Zas3MODlyID1NgXDIonrLFY34i6RTf1NwoHfcd4XRN61IhsPz17dplHM-GvJkWSbgKRjhWtPY9Ci4uBgRYiw/s320/1913431_1_IMG_6875Albtrauflaeufer.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><div class="pl15 unit mb0 important">
Foto: Karsten Dyba</div>
</td></tr>
</tbody></table>
<br />
<br />
<!--
<iframe src="http://pagewidget.fundraisingbox.com/mini/100km-albtrauf.html" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:500px; height:300px;" allowTransparency="true"></iframe>
-->
andreashttp://www.blogger.com/profile/10095746299505223881noreply@blogger.comtag:blogger.com,1999:blog-5519144529472369809.post-17870219616065864482015-05-11T12:47:00.000-07:002015-09-11T13:40:18.797-07:00Ambit 3 vs. Fenix 3<h2>
My pro and cons list</h2>
Sooner or later I might upgrade from my (in the meantime very reliable) Garmin Fenix (1).<br />
So here is my list of pros/cons regarding those two watches.<br />
<br />
<span style="color: red;">Update:</span> ... and the winner is ... fenix3. After my old fenix1 had issues with battery charging and lifetime I got a exchange offer from Garmin and now I'm very satisfied with the fenix3<br />
<style type="text/css">TD P { margin-bottom: 0in; }TH P { margin-bottom: 0in; }P { margin-bottom: 0.08in; }</style>
<br />
<table border="1" cellpadding="4" cellspacing="0" style="width: 100%px;">
<colgroup><col width="84*"></col>
<col width="49*"></col>
<col width="48*"></col>
<col width="75*"></col>
</colgroup><tbody>
<tr valign="TOP">
<th width="33%">Item</th>
<th width="19%"><div align="CENTER">
Ambit3</div>
</th>
<th width="19%"><div align="CENTER">
Fenix3</div>
</th>
<th width="29%">Remark</th>
</tr>
<tr valign="TOP">
<td width="33%">Price (05/2015) HR Bundle</td>
<td width="19%"><div align="CENTER">
ca. 350 EUR</div>
</td>
<td width="19%"><div align="CENTER">
ca. 430 EUR</div>
</td>
<td width="29%"><br />
<br /></td>
</tr>
<tr valign="TOP">
<td width="33%">Battery (default GPS tracking)</td>
<td width="19%"><div align="CENTER">
20 (30h?)</div>
</td>
<td width="19%"><div align="CENTER">
16h</div>
</td>
<td width="29%">Ambit best vs. good tracking</td>
</tr>
<tr valign="TOP">
<td width="33%">Charge and use while running</td>
<td width="19%"><div align="CENTER">
?</div>
</td>
<td width="19%"><div align="CENTER">
yes</div>
</td>
<td width="29%"><br />
<br /></td>
</tr>
<tr valign="TOP">
<td width="33%">Linux?</td>
<td width="19%"><div align="CENTER">
Openambit?</div>
</td>
<td width="19%"><div align="CENTER">
Usb mass storage</div>
</td>
<td width="29%"><br />
<br /></td>
</tr>
<tr valign="TOP">
<td width="33%">Wlan</td>
<td width="19%"><div align="CENTER">
-</div>
</td>
<td width="19%"><div align="CENTER">
Yes</div>
</td>
<td width="29%"><br />
<br /></td>
</tr>
<tr valign="TOP">
<td width="33%"><br />
<br /></td>
<td width="19%"><div align="CENTER">
<br /></div>
</td>
<td width="19%"><div align="CENTER">
<br /></div>
</td>
<td width="29%"><br />
<br /></td>
</tr>
<tr valign="TOP">
<td width="33%"><br />
<br /></td>
<td width="19%"><div align="CENTER">
<br /></div>
</td>
<td width="19%"><div align="CENTER">
<br /></div>
</td>
<td width="29%"><br />
<br /></td>
</tr>
<tr valign="TOP">
<td width="33%"><br />
<br /></td>
<td width="19%"><div align="CENTER">
<br /></div>
</td>
<td width="19%"><div align="CENTER">
<br /></div>
</td>
<td width="29%"><br />
<br /></td>
</tr>
<tr valign="TOP">
<td width="33%"><br />
<br /></td>
<td width="19%"><div align="CENTER">
<br /></div>
</td>
<td width="19%"><div align="CENTER">
<br /></div>
</td>
<td width="29%"><br />
<br /></td>
</tr>
<tr valign="TOP">
<td width="33%"><br />
<br /></td>
<td width="19%"><div align="CENTER">
<br /></div>
</td>
<td width="19%"><div align="CENTER">
<br /></div>
</td>
<td width="29%"><br />
<br /></td>
</tr>
<tr valign="TOP">
<td width="33%"><br />
<br /></td>
<td width="19%"><div align="CENTER">
<br /></div>
</td>
<td width="19%"><div align="CENTER">
<br /></div>
</td>
<td width="29%"><br />
<br /></td>
</tr>
</tbody></table>
andreashttp://www.blogger.com/profile/10095746299505223881noreply@blogger.comtag:blogger.com,1999:blog-5519144529472369809.post-10766647323742042392015-02-25T01:50:00.000-08:002015-02-25T01:50:00.825-08:00Link outdoor wiki<h2>
Outdoorwiki</h2>
"Das Outdoorwiki ist ein Projekt zum Aufbau eines Nachschlagewerks unter dem Oberbegriff Outdoor. Bisher wurden 437 Artikel aufgenommen. Das Wiki ist dabei eng mit dem Forum forum.outdoorseiten.net verbunden. Gute Autoren, die aus eigener Erfahrung über ein Themengebiet schreiben können, sind stets willkommen!"<br />
<br />
<a href="http://www.outdoorseiten.net/wiki/">http://www.outdoorseiten.net/wiki/</a>andreashttp://www.blogger.com/profile/10095746299505223881noreply@blogger.comtag:blogger.com,1999:blog-5519144529472369809.post-87833899764448320322014-12-13T03:00:00.000-08:002014-12-13T03:08:49.669-08:00Arduino RGB strip<h2>
Knight Rider ...</h2>
keep track of misc arduino snippets here.<br />
<br />
Get yourself some RGB LED light strip like <a href="http://www.aliexpress.com/snapshot/6375817038.html?orderId=64848475845534">this one</a>.<br />
These are WS2812B type of chip are in a 5050 package including controller to control every single "pixel" i.e. the RGB LED on the strip and set each color individually.<br />
<br />
I always wanted one of those :)<br />
Shipping was from Hong-Kong to Germany a pretty reasonable amount of time (less then three weeks).<br />
<br />
So what to do? you start with some examples you'll find on the web.<br />
Good starting point is <a href="http://www.tweaking4all.com/hardware/arduino/arduino-ws2812-led/">this</a> page. As this page explains there's basically two major arduino libs for controlling this kind of strip the Neopixel one from Adafruit and FastLed.<br />
<br />
<br />
From there I took another example code found <a href="http://forum.arduino.cc/index.php?topic=198987.0">here:</a><br />
<br />
This gives you some "knight rider" effect.<br />
<br />
I broaden the moving lights a bit and added some code to control the speed via a simple poti.<br />
<br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;"><br /></span></span>
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">#include "FastLED.h"<br />//#include <OneSheeld.h><br /><br />// How many leds are in the strip?<br />#define NUM_LEDS 60<br />// Data pin that led data will be written out over<br />#define DATA_PIN 6<br />// This is an array of leds. One item for each led in your strip.<br />CRGB leds[NUM_LEDS];<br /><br />const int poti = A1;<br />const int button8 = 8;<br /><br /><br />// This function sets up the ledsand tells the controller about them<br />void setup() {<br /> delay(3000);<br /><br /> FastLED.addLeds<WS2812B, DATA_PIN, <b>GRB</b>>(leds, NUM_LEDS);<br /><br />}<br /><br />int duration;<br />void loop() {<br /> int potiVal = analogRead(poti);<br /> float voltage = potiVal * (20.0 / 1023.0);<br /> int duration = (int)voltage;<br /><br /> byte hue = 8; // some red<br /><br /> larsonScanner(NUM_LEDS, hue, 255, duration);<br /><br />}<br /><br />void larsonScanner(byte ledcount, byte hue, byte sat, byte duration) {<br /> static unsigned long previousMillis = millis();<br /> static int i; // Schrittzaehler<br /> static int led = 0;<br /> static boolean reverse = false;<br /> byte dim;<br /><br /> if(i > 8) {<br /> i = 0;<br /><br /> if (reverse) led--;<br /> else led++;<br /><br /> // Anfang erreicht<br /> if (led < 0) {<br /> led = 0;<br /> reverse =! reverse;<br /> }<br /><br /> // Ende erreicht<br /> if (led >= ledcount) {<br /> led = ledcount-1;<br /> reverse =! reverse;<br /> }<br /> }<br /><br /> if (millis()-previousMillis > duration) {<br /> previousMillis = millis();<br /> memset(leds, 0, ledcount*3); // LED Array zuruecksetzen<br /> dim = i*4;<br /> i++;<br /><br /> // Aktuelle Led-4<br /> if (led-5>=0 && !reverse) {<br /> leds[led-5] = CHSV(hue, sat, 32-dim); // FadeDown<br /> }<br /> else if (led-5>=0 && reverse) {<br /> leds[led-5] = CHSV(hue, sat, dim); // FadeUp<br /> }<br /><br /> // Aktuelle Led-3<br /> if (led-4>=0 && !reverse) {<br /> leds[led-4] = CHSV(hue, sat, 64-dim); // FadeDown<br /> }<br /> else if (led-4>=0 && reverse) {<br /> leds[led-4] = CHSV(hue, sat, 32+dim); // FadeUp<br /> }<br /><br /> // Aktuelle Led-2<br /> if (led-3>=0 && !reverse) {<br /> leds[led-3] = CHSV(hue, sat, 128-dim); // FadeDown<br /> }<br /> else if (led-3>=0 && reverse) {<br /> leds[led-3] = CHSV(hue, sat, 64+dim); // FadeUp<br /> }<br /><br /> // Aktuelle Led-1<br /> if (led-2>=0 && !reverse) {<br /> leds[led-2] = CHSV(hue, sat, 255-dim); // FadeDown<br /> }<br /> else if (led-2>=0 && reverse) {<br /> leds[led-2] = CHSV(hue, sat, 127+dim); // FadeUp<br /> }<br /><br /> // Aktuelle Led<br /> leds[led-1] = CHSV(hue, sat, 255);<br /> leds[led] = CHSV(hue, sat, 255);<br /> leds[led+1] = CHSV(hue, sat, 255);<br /><br /> // Aktuelle Led+1<br /> if (led+2<ledcount && !reverse) {<br /> leds[led+2] = CHSV(hue, sat, 127+dim); // FadeUp<br /> }<br /> else if (led+2<ledcount && reverse) {<br /> leds[led+2] = CHSV(hue, sat, 255-dim); // FadeDown<br /> }<br /><br /> // Aktuelle Led+2<br /> if (led+3<ledcount && !reverse) {<br /> leds[led+3] = CHSV(hue, sat, 64+dim); // FadeUp<br /> }<br /> else if (led+3<ledcount && reverse) {<br /> leds[led+3] = CHSV(hue, sat, 128-dim); // FadeDown<br /> }<br /><br /> // Aktuelle Led+3<br /> if (led+4<ledcount && !reverse) {<br /> leds[led+4] = CHSV(hue, sat, 32+dim); // FadeUp<br /> }<br /> else if (led+4<ledcount && reverse) {<br /> leds[led+4] = CHSV(hue, sat, 64-dim); // FadeDown<br /> }<br /><br /> // Aktuelle Led+4<br /> if (led+5<ledcount && !reverse) {<br /> leds[led+5] = CHSV(hue, sat, dim); // FadeUp<br /> }<br /> else if (led+5<ledcount && reverse) {<br /> leds[led+5] = CHSV(hue, sat, 32-dim); // FadeDown<br /> }<br /><br /> FastLED.show();<br /> }<br />}</span></span><br />
<br />
--<br />
<br />
The potentiometer is connected to analog 1 and the digital in of the light strip in dio6.<br />
<br />
<br />andreashttp://www.blogger.com/profile/10095746299505223881noreply@blogger.comtag:blogger.com,1999:blog-5519144529472369809.post-56321713167875314732014-11-30T01:38:00.003-08:002014-11-30T01:42:40.505-08:00strava node.js api<h3>
How to get shoe mileage on the command line</h3>
<br />
make sure you have node.js and node package manager (npm) installed.<br />
<span style="background-color: #666666; font-family: Courier New, Courier, monospace;">$ sudo apt-get install node.js npm</span><br />
<br />
then follow this <a href="https://github.com/ajsnapshots/node-strava-v3#quick-start">quickstart instructions</a> from here: <a href="https://github.com/ajsnapshots/node-strava-v3">https://github.com/ajsnapshots/node-strava-v3</a><br />
<br />
get strava developer api access from <a href="http://www.strava.com/developers">here</a><br />
access your application info and settings here: <a href="https://app.strava.com/settings/api">https://app.strava.com/settings/api</a><br />
the api doc is at: <a href="http://strava.github.io/api/">http://strava.github.io/api/</a><br />
<br />
now you should be able to run the example program from the quickstart guide.<br />
<br />
<br />
you directory structure should look something like this:<br />
<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">user@host:~/Programming/node.js/strava$ tree -L 2</span><br />
<span style="font-family: Courier New, Courier, monospace;">.</span><br />
<span style="font-family: Courier New, Courier, monospace;">├── data</span><br />
<span style="font-family: Courier New, Courier, monospace;">│ └── strava_config</span><br />
<span style="font-family: Courier New, Courier, monospace;">├── node_modules</span><br />
<span style="font-family: Courier New, Courier, monospace;">│ └── strava-v3</span><br />
<span style="font-family: Courier New, Courier, monospace;">└── shoes.js</span><br />
<span style="font-family: Courier New, Courier, monospace;"><br /></span>
<span style="font-family: Courier New, Courier, monospace;">3 directories, 2 files</span><br />
<br />
now edit the shoes.js file and put in this code:<br />
<span style="font-family: Courier New, Courier, monospace;">user@host:~/Programming/node.js/strava$ cat shoes.js </span><br />
<span style="font-family: Courier New, Courier, monospace;"><br /></span>
<span style="font-family: Courier New, Courier, monospace;">var strava = require('strava-v3');</span><br />
<span style="font-family: Courier New, Courier, monospace;"><br /></span>
<span style="font-family: Courier New, Courier, monospace;">strava.athlete.get({},function(err,payload) {</span><br />
<span style="font-family: Courier New, Courier, monospace;"> if(!err) { </span><br />
<span style="font-family: Courier New, Courier, monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>for (var i=0; i<payload.shoes.length; i++) {</span><br />
<span style="font-family: Courier New, Courier, monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span> console.log(payload.shoes[i].name + " - " +</span><br />
<span style="font-family: Courier New, Courier, monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>payload.shoes[i].distance/1000 + " km");</span><br />
<span style="font-family: Courier New, Courier, monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>}</span><br />
<span style="font-family: Courier New, Courier, monospace;"><br /></span>
<span style="font-family: Courier New, Courier, monospace;"> } </span><br />
<span style="font-family: Courier New, Courier, monospace;"> else {</span><br />
<span style="font-family: Courier New, Courier, monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>console.log("ERROR:");</span><br />
<span style="font-family: Courier New, Courier, monospace;"> console.log(err);</span><br />
<span style="font-family: Courier New, Courier, monospace;"> }</span><br />
<span style="font-family: Courier New, Courier, monospace;">});</span><br />
<div>
<br /></div>
if you run it you should get a listing of your active shoes from strava together with the mileage (here in km)<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">$ node shoes.js </span><br />
<span style="font-family: Courier New, Courier, monospace;">Salomon Fellraiser - 481.693 km</span><br />
<span style="font-family: Courier New, Courier, monospace;">Inov-8 Roclite 315 - 383.47 km</span><br />
<span style="font-family: Courier New, Courier, monospace;">Brooks T6 Racer - 401.136 km</span><br />
<span style="font-family: Courier New, Courier, monospace;">Inov-8 Trailroc 255 - 656.62 km</span><br />
<span style="font-family: Courier New, Courier, monospace;">Saucony Fastwitch 5 ( blue ) - 463.049 km</span><br />
<span style="font-family: Courier New, Courier, monospace;">Barefoot (No Shoes) - 5.219 km</span><br />
<span style="font-family: Courier New, Courier, monospace;">Aldi "barfuss" ?? blau - 136.115 km</span><br />
<span style="font-family: Courier New, Courier, monospace;">Saucony Peregrine 3.0 - 479.282 km</span><br />
<span style="font-family: Courier New, Courier, monospace;">Hoka One One Mafata 2 - 1119.308 km</span><br />
<span style="font-family: Courier New, Courier, monospace;">New Balance Minimum Trail 00 - 403.544 km</span><br />
<span style="font-family: Courier New, Courier, monospace;">Inov-8 Trailrc 245 - 338.791 km</span><br />
<span style="font-family: Courier New, Courier, monospace;">Vibram FF EL-X - 46.919 km</span><br />
<div>
<br /></div>
<br />
that's it for now.andreashttp://www.blogger.com/profile/10095746299505223881noreply@blogger.comtag:blogger.com,1999:blog-5519144529472369809.post-46960252290863311482014-04-01T05:59:00.002-07:002014-04-01T05:59:08.214-07:00One runner finishes 100-mile Barkley Marathons
<a href="http://www.wbir.com/story/news/local/2014/04/01/barkley-marathons-jared-campbell/7147855/">http://www.wbir.com/story/news/local/2014/04/01/barkley-marathons-jared-campbell/7147855/</a>andreashttp://www.blogger.com/profile/10095746299505223881noreply@blogger.comtag:blogger.com,1999:blog-5519144529472369809.post-4590987010276777242014-02-09T12:29:00.001-08:002014-02-09T12:45:05.442-08:00Running 2014<br />
<br />
<table>
<tr>
<td>12. - 13. April</td><td><a href="http://www.lesvosgirunners.com/integrale.php" target="_blank">L'Intégrale</a></td>
</tr>
<tr>
<td>27. - 28 September</td><td><a href="http://www.kusuh.de/" target="_blank">5. KuSuH</a></td>
</tr>
<tr>
<td>18. - 19. October</td><td><a href="http://sut100.de/" target="_blank">SUT 100</a> (RD)</td>
</tr>
</table>
<br />andreashttp://www.blogger.com/profile/10095746299505223881noreply@blogger.comtag:blogger.com,1999:blog-5519144529472369809.post-17530766142458910002013-05-27T13:05:00.003-07:002013-10-08T09:19:18.925-07:00Garmin Fenix<h3>
... oops I did it again</h3>
Right, after my 910XT misadventure I finally decided to give the <a href="http://sites.garmin.com/fenix/" target="_blank">fenix</a> a try. There's a lot of information about the watch already out there in form of reviews and the Garmin forum so I'm not sure if I can come up with an awful lot of new information here.<br />
So I just post a few things as I get going with the fenix.<br />
<br />
The first thing I did was to update to the latest watch and gps chipset firmware. After that I discovered that the watch still has a very bad bug that reminds my about the 910xt course navigation issue. While in navigation mode the track redraw did not work! What a bummer!<br />
The suggestion is, in the Setup->Track Menu, to write tracks only as FIT. This make sense as this is a binary format and file size is much smaller than gpx. However I still consider this as a serious bug for this type of watch (remember the old Forerunner 305 is better here than the fenix and any eTrex or alike is better as well).<br />
<br />
But worse than that was the fact I used it for an 85k ultra-trail with track navigation enabled and just about a few minutes into the race the watch hang up completely :(<br />
<br />
How nice's that? So I try fiddling with the watch but could not even manage to turn off/on again. After a while I noticed some reset screen, pressing a few buttons showed the "locating satellites" screen. I didn't touch the watch for the next two hours or so but there were no satellites found.<br />
<br />
I then managed to reset (power/light button >30sec) turn the watch off and on then do another reset from the setup menu and after that satellites were found even while moving along within 1 or 2 minutes. After that I was able to track another 10 hours of running (given the two hours searching for a fix this makes a total runtime from full battery of about 12 hours).<br />
<br />
It should be noted that the current drawn by the gps receiver while getting a fix is quite high compare to normal operation.<br />
<br />
Still I have kept the watch so far ;) The main advantage for me as compared to the Ambit for example is that you can just mount the watch and copy your files from the fenix to you computer using standard unix commands. And the other way round you can just copy any gpx file that you created elsewhere to the watch and later use it for track navigation.<br />
<br />
Compare the the 910xt the elevation profile (from the watch) looks far better now. Getting gps fix is really good for me.<br />
<br />
Regarding FIT file format, this is fine and nowadays no problem to handle. <a href="http://code.google.com/p/gpsbabel/">Gpsbabel</a> now includes fit support as well and you can get the FIT SDK <a href="http://www.thisisant.com/resources/fit">here</a>.<br />
<br />
In order to convert a fit file to gpx or garmins training center format you can do the following (note you need GPSBabel Version 1.4.4 or later):<br />
<span style="font-size: small;"><b><span style="font-family: "Courier New",Courier,monospace;">$ gpsbabel -i garmin_fit -f 2013-05-24_12-27-43.fit -o gpx -F /tmp/2013-05-24_12-27-43.gpx</span></b></span><br />
or <br />
<span style="font-size: small;"><b><span style="font-family: "Courier New",Courier,monospace;">$ gpsbabel -i garmin_fit -f 2013-05-24_12-27-43.fit -o gtrnctr -F /tmp/2013-05-24_12-27-43.tcx</span></b></span><br />
<br />
For now I want to point out that you can easily use the linux garmin plugin to upload file to your favorite online training portal (I nowadays use <a href="http://strava.com/">strava.com</a> regularly).<br />
<br />
<br />
<span style="font-size: small;"><span style="font-family: inherit;">My config <b>~/.config/garminplugin/garminplugin.xml</b> looks like this:</span></span><br />
<span style="font-size: small;"><span style="font-family: inherit;"><br /></span></span>
<br />
<blockquote class="tr_bq">
<span style="font-size: small;"><span style="font-family: inherit;"><span style="font-family: "Courier New",Courier,monospace;"><?xml version="1.0" encoding="UTF-8" standalone="no" ?><br /><GarminPlugin logfile="/tmp/garminplugin.log" level="DEBUG"><br /> <Devices><br /> <Device enabled="false"><br /> <Name>Home Directory /home/andy</Name><br /> <StoragePath>/home/aloeff</StoragePath><br /> <StorageCommand></StorageCommand><br /> <FitnessDataPath></FitnessDataPath><br /> <GpxDataPath></GpxDataPath><br /> </Device><br /> <Device enabled="true"><br /> <Name>Garmin Fenix</Name><br /> <StoragePath>/media/andy/GARMIN/Garmin/GPX/</StoragePath><br /> <StorageCommand></StorageCommand><br /> <FitnessDataPath></FitnessDataPath><br /> <GpxDataPath></GpxDataPath><br /> </Device><br /> </Devices><br /> <Settings><br /> <ForerunnerTools enabled="false" /><br /> <BackupWorkouts enabled="true" path="~/Dropbox/Workouts/[YEAR]/[MONTH]/" /><br /> </Settings><br /></GarminPlugin></span></span></span></blockquote>
<span style="font-size: small;"><span style="font-family: inherit;"><br /></span></span>
<span style="font-size: small;"><span style="font-family: inherit;">Note: I have not yet setup automount, so you need to have the watch connected and mounted before this works.</span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: inherit;">Online Tool to repair corrupted Garmin fit files (e.g.reserved bits not zero):</span></span><br />
<a href="http://garmin.kiesewetter.nl/"><span style="font-size: small;"><span style="font-family: inherit;">http://garmin.kiesewetter.nl/</span></span></a><br />
<br />
<br />
<h4>
update</h4>
finally ... managed to write the script to download latest fenix update (also read the comments!):<br />
<br />
<a href="https://raw.github.com/lefty01/mysnippez/master/get-update.pl">https://raw.github.com/lefty01/mysnippez/master/get-update.pl</a><br />
<br />
<br />andreashttp://www.blogger.com/profile/10095746299505223881noreply@blogger.comtag:blogger.com,1999:blog-5519144529472369809.post-86641086108434168192013-04-29T12:36:00.002-07:002013-04-29T12:36:06.047-07:00Which batteries for an Ultra-Marathon<h2>
Which batteries for an Ultra-Marathon</h2>
<h3>
... just some remarks on equipment </h3>
<br />
I recently had the chance to run the <a href="http://junut.de/" target="_blank">JUNUT</a> 230k. A non-stop Ultra-Trail run on the "Premium Wanderweg" <a href="http://www.jurasteig.de/" target="_blank">Jurasteig</a>.<br />
<br />
Total Distance was about 230k (237km measured by my Forerunner 305) time limit was 52h. The race starts at 10am in the morning and I was hoping to reach the finish line within the next two days (<=48h).<br />
Speaking two days equals two nights out there running on sometimes really rough terrain so it was not really easy to decide on what to put in the running pack and into three drop-bags.<br />
<br />
I could write much more on equipment and the race by itself but for now I stick to the topic ...<br />
Besides my old Forerunner 305, which was <a href="http://blog.trails4you.de/2012/08/forerunner-305-range-extender.html">charged</a> via an external battery pack during the run, I took along a Garmin eTrex merely as a backup. My head lamp is a <a href="http://www.petzl.com/en/outdoor/headlamps/performance/myo-rxp" target="_blank">Petzl MYO RXP</a> which, most of the time was at level 5 (I have programmed settings 8, 5, and 3 ... (I guess)). What I don't like about the MYO RXP is that after you have set one lightning mode you cannot switch modes without the lamp turning off :( But besides that this one is excellent and probably one of the best if you look at the price-value tag.<br />
<br />
I had one more electronic device which was my <span id="lib-app-selected-device-name">LG-E610, this is for emergency calls and taking some snapshots, so no need to worry about battery life during 48 hours.</span><br />
<br />
So I had to make sure the eTrex30 and the Petzl will run long enough for this run. Sure the usual approach is to buy standard cells and take spare batteries in the pack during the run and keep some in the drop-bags. Or use rechargeable cells and keep (usually) even more replacement batteries around.<br />
This time I thought I give Lithium non-rechargeable standard AA cells a try. Sure they come at a little higher cost than alkaline but in turn they have higher capacity and are very light.<br />
<br />
After the run I can really recommend on the Energizer Ultimate Lithium which have a specified capacity of 3000mAh. Using three of them in the MYO RXP at an average lightning mode allowed for operating the lamp for full two nights without any noticeable performance loss (same intensity of light).<br />
The eTrex30 was also running on two Energizer Ultimate Lithium and was fully operational after the 48h. I have to admit however that I had no need to change zoom-level very often or otherwise turn on the backlight (navigation was mainly done via the Forerunner 305 which is much more comfortable, while wearing the watch on the wrist).<br />
<br />
<h4>
Summary</h4>
Can finished 237k within 48:05:54 and Lithium batteries are <a href="http://www.test.de/Batterien-Energizer-Lithium-haelt-am-laengsten-1833634-0/">good</a> ;) andreashttp://www.blogger.com/profile/10095746299505223881noreply@blogger.comtag:blogger.com,1999:blog-5519144529472369809.post-2274980656752954712012-11-12T13:33:00.002-08:002013-06-11T11:52:16.220-07:00GPS Tracking<br />
Misc information about GPS tracking devices and solutions.<br />
<br />
What I'm looking for is a solution to track ultra runners during races lasting up to 30 hours or more.<br />
Requirements on tracking device (the thing the runner will carry along, this could as well be a smartphone app):<br />
<ul>
<li>Very Long Battery Life >30h (while almost continuously send GPS data)</li>
<li>Optional: replaceable batteries or at least ability to charge device while on the run. Or external battery connector ...</li>
<li>Send position data via GPRS connection to any computer on the internet</li>
<li>Configurable time interval for sending data (continuously vs. 10-20min. intervals)</li>
<li>Sleep mode (power-off GPS/GSM while not sending data)</li>
<li>Optional: Multiple Geo-fences (e.g. Alert when running through aid station)</li>
<li>...</li>
</ul>
In addition a web portal is required to visualize the runners along a given course.<br />
<br />
Currently I think only two types of hardware tracker would make sense:<br />
<ul>
<li>GPS (or in the future other satellite system) / GSM tracker:</li>
<ul>
<li>gets location via satellite and transmit position data via mobile phone network (GPRS)</li>
<li>advantage is relative low cost for data transmission</li>
<li>disadvantage are roaming costs if used across different countries, mobile network coverage sometimes not available. </li>
</ul>
<li>GPS / Satellite communication tracker"</li>
<ul>
<li>this is what e.g. SPOT tracker do. You receive GPS position and transmit via <a href="http://en.wikipedia.org/wiki/Satellite_communications" target="_blank">satellite communication</a> network </li>
<li>disadvantage relative high cost almost always you need to subscribe for monthly or yearly provider plan and pay in advance.</li>
<li>advantage is depending on area and satellite communication provider usually good coverage.</li>
</ul>
</ul>
<br />
This page is work in progress!!<br />
<br />
<br />
List of Tracking Devices:<br />
<ul>
<li>Smartphone Apps:</li>
<ul>
<li><a href="https://play.google.com/store/apps/details?id=wialon.GPS_Tag&hl=en" target="_blank">GPS Tag</a></li>
<li><a href="http://racemap.de/">Racemap</a></li>
</ul>
</ul>
<ul>
<li><a href="http://gpsvision.de/index.php/produkte">TK-5000 GPS Tracker</a></li>
<li><a href="http://blog.trails4you.de/2012/11/gps-cattrack-live-3.html">GPS CatTrack Live 3</a></li>
</ul>
<br />
Tracking Portal:<br />
<ul>
<li><a href="http://racemap.de/">racemap.de</a></li>
<li><a href="http://orange.gps-trace.com/">orange.gps-trace.com</a></li>
<li><a href="http://www.heise.de/ct/projekte/machmit/mylieu/">myLieu</a></li>
</ul>
<br />
<ul>
</ul>
andreashttp://www.blogger.com/profile/10095746299505223881noreply@blogger.comtag:blogger.com,1999:blog-5519144529472369809.post-73160409761533407962012-11-12T13:31:00.002-08:002012-11-15T17:21:58.593-08:00GPS CatTrack Live 3Information about <b>CatTrack Live 3</b> Tracker can be found <a href="http://www.mr-lee-catcam.de/pe_cc_i18.htm" target="_blank">here</a>.<br />
<br />
<br />
<br />
Battery Testing<br />
<br />
In the chart below I thought I had configured an 10 minute time interval for sending data via GPRS, however the server receives this only about every 20 minutes ?!?<br />
The device was running already for almost a day before I started recording the data (battery at about 75%) but I missed the data.<br />
It looks similar to a typical discharge curve of Lithium Ion Cell.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCKkfCqJWen_ubng6QjsOUPALmpGSsbuwJ2xCgtUPEwq2aDgfIfp3jOpG6LQcs3zLyOWpCTb8ypfrVJRZaTvsqdvmHdohK_XJvccOnId4jpN7CLO14RFIdXouhBPG8A0aWCsVM5BZiAvY/s1600/cattraq_batt.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCKkfCqJWen_ubng6QjsOUPALmpGSsbuwJ2xCgtUPEwq2aDgfIfp3jOpG6LQcs3zLyOWpCTb8ypfrVJRZaTvsqdvmHdohK_XJvccOnId4jpN7CLO14RFIdXouhBPG8A0aWCsVM5BZiAvY/s400/cattraq_batt.png" width="400" /></a></div>
<br />
<br />
Second chart, configured CatTrack Live device to send data in 5 minutes intervals which resulted in tcp connections to the server roughly every 10 minutes (??!)<br />
First data shot was received at 11/13/07:28:18 (battery at 100%) and the last one at 11/15/10:10:23 (with battery indication of 10%).<br />
This means a good 50 hours operating time with GPS positions transmitted in an interval good enough for ultra trail races (like a 100 miler or so).<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBhEbWnhAlTvcYuQSIaqQiMycH0ARe4dEvql9TZnOfVDm0xukaNIt-ijWBj1mQipY8MzsPh9Tg4-6kbmKTK-DaeAOaPC67obe712rnR7rq1kpSXvflBZhpqt4feOedNDH2eXoDUma98kA/s1600/catTrackLive_batt_02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBhEbWnhAlTvcYuQSIaqQiMycH0ARe4dEvql9TZnOfVDm0xukaNIt-ijWBj1mQipY8MzsPh9Tg4-6kbmKTK-DaeAOaPC67obe712rnR7rq1kpSXvflBZhpqt4feOedNDH2eXoDUma98kA/s400/catTrackLive_batt_02.png" width="400" /></a></div>
<br />
Here the GPS data is shown:<br />
<br />
<br />
<iframe frameborder="0" height="500px" src="http://ridewithgps.com/trips/1019595/embed" width="100%"></iframe>
andreashttp://www.blogger.com/profile/10095746299505223881noreply@blogger.comtag:blogger.com,1999:blog-5519144529472369809.post-38010085674436097162012-11-12T13:01:00.000-08:002012-11-12T13:01:16.887-08:00JUNUT 2013<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://junut.de/"><img alt="Jurasteig Nonstop Ultratrail" border="0" src="http://junut.de/wp-content/uploads/2012/07/junut_header_04.png" title="JUNUT" /></a></div>
<br /><br />
<a href="http://junut.de/starterliste/">http://junut.de/starterliste/</a><br />
<br />andreashttp://www.blogger.com/profile/10095746299505223881noreply@blogger.comtag:blogger.com,1999:blog-5519144529472369809.post-3976448368822857312012-11-08T07:42:00.002-08:002012-11-08T07:42:59.175-08:00Waterproofed GSM / GPS tracker on solar power GSM-GPS-Tracker-Waterproofed – M2M Machine to Machine<a href="http://www.gsm-modem.de/M2M/?attachment_id=3799">Waterproofed GSM / GPS tracker on solar power GSM-GPS-Tracker-Waterproofed – M2M Machine to Machine</a>andreashttp://www.blogger.com/profile/10095746299505223881noreply@blogger.com