HACKLABhttps://www.hacklab.nl/2022-06-17T19:10:00+02:00Interesting MCH2022 Talks2022-06-17T19:10:00+02:002022-06-17T19:10:00+02:00David Raschtag:www.hacklab.nl,2022-06-17:/interesting-mch2022-talks.html<p>Talks I'm going to see at May Contain Hackers (MCH2022)</p>
<p><a href="https://program.mch2022.org/">The program of mch2022 with talks</a> is available.
There are a lot of interesting talks and workshops to go to.
The talks i like to go are:</p>
<h2>Internet of things</h2>
<ul>
<li><a href="https://program.mch2022.org/mch2021-2020/talk/DT8SZB/">Building public, dynamic webapps using Micropython on the ESP32</a></li>
<li><a href="https://program.mch2022.org/mch2021-2020/talk/B3REPR/">Introduction …</a></li></ul><p>Talks I'm going to see at May Contain Hackers (MCH2022)</p>
<p><a href="https://program.mch2022.org/">The program of mch2022 with talks</a> is available.
There are a lot of interesting talks and workshops to go to.
The talks i like to go are:</p>
<h2>Internet of things</h2>
<ul>
<li><a href="https://program.mch2022.org/mch2021-2020/talk/DT8SZB/">Building public, dynamic webapps using Micropython on the ESP32</a></li>
<li><a href="https://program.mch2022.org/mch2021-2020/talk/B3REPR/">Introduction to MQTT, Node-RED & Tasmota</a></li>
</ul>
<h2>Social</h2>
<ul>
<li><a href="https://program.mch2022.org/mch2021-2020/talk/WDKN7Z/">Public speaking for technical people</a></li>
</ul>
<h2>Biological</h2>
<ul>
<li><a href="https://program.mch2022.org/mch2021-2020/talk/Y898KK/">Hacking the genome: how does it work, and should we?</a></li>
</ul>
<h2>Hardware</h2>
<ul>
<li><a href="https://program.mch2022.org/mch2021-2020/talk/K8CPBW/">Surface Mount Electronics Assembly for Terrified Beginners</a></li>
</ul>
<h2>Revers engineering</h2>
<ul>
<li><a href="https://program.mch2022.org/mch2021-2020/talk/F88JGH/">Reverse engineering the Albert Heijn app for fun and profit</a></li>
</ul>
<h2>Music</h2>
<ul>
<li><a href="https://program.mch2022.org/mch2021-2020/talk/SWHTEQ/">Chiptune on GameBoys</a></li>
</ul>
<h2>Video</h2>
<ul>
<li><a href="https://program.mch2022.org/mch2021-2020/talk/EBKZRV/">Live streaming 360° video with your own infrastructure</a></li>
</ul>
<h2>Programming</h2>
<ul>
<li><a href="https://program.mch2022.org/mch2021-2020/talk/Y9NNQR/">A practical approach to parsing</a></li>
<li><a href="https://program.mch2022.org/mch2021-2020/talk/BRHLYE/">World in Vectors - Cross-platform Map Rendering using Rust</a></li>
</ul>Competitive programming2018-09-21T20:09:00+02:002018-09-21T20:09:00+02:00David Raschtag:www.hacklab.nl,2018-09-21:/competitive-programming.html<h2>Practice</h2>
<ul>
<li><a href="https://www.hackerrank.com/">HackerRank</a> has lots of easy problems</li>
<li><a href="https://adventofcode.com/">Advent of Code</a> Fun problems, new competition starts December 1st</li>
<li><a href="https://projecteuler.net/">Project Euler</a> has difficult problems</li>
</ul>
<h2>Competition practice problems</h2>
<ul>
<li><a href="https://uva.onlinejudge.org/">Uva Online Judge</a></li>
<li><a href="https://open.kattis.com/">kattis</a></li>
</ul>
<h2>Books</h2>
<ul>
<li><a href="https://cpbook.net/">Competitive Programming Book</a></li>
</ul>
<h2>Courses</h2>
<ul>
<li><a href="https://www.coursera.org/learn/competitive-programming-core-skills">Competitive Programming Core Skills</a> on <a href="https://www.coursera.com/">Coursera</a> created by Saint Petersburg State University </li>
</ul><h2>Practice</h2>
<ul>
<li><a href="https://www.hackerrank.com/">HackerRank</a> has lots of easy problems</li>
<li><a href="https://adventofcode.com/">Advent of Code</a> Fun problems, new competition starts December 1st</li>
<li><a href="https://projecteuler.net/">Project Euler</a> has difficult problems</li>
</ul>
<h2>Competition practice problems</h2>
<ul>
<li><a href="https://uva.onlinejudge.org/">Uva Online Judge</a></li>
<li><a href="https://open.kattis.com/">kattis</a></li>
</ul>
<h2>Books</h2>
<ul>
<li><a href="https://cpbook.net/">Competitive Programming Book</a></li>
</ul>
<h2>Courses</h2>
<ul>
<li><a href="https://www.coursera.org/learn/competitive-programming-core-skills">Competitive Programming Core Skills</a> on <a href="https://www.coursera.com/">Coursera</a> created by Saint Petersburg State University </li>
</ul>Chaos experiments with Arduino2017-01-27T17:58:00+01:002017-01-27T17:58:00+01:00David Raschtag:www.hacklab.nl,2017-01-27:/chaos-experiments-with-arduino.html<h2>More information</h2>
<ul>
<li><a href="https://www.researchgate.net/publication/282832255_An_Experimental_Realization_of_a_Chaos-Based_Secure_Communication_Using_Arduino_Microcontrollers">Chaos based secure communication using Arduino</a></li>
<li><a href="http://www-physics.ucsd.edu/~des/DSmithChaosExperiment.pdf">Build your own simple chaos circuit</a></li>
<li><a href="https://revspace.nl/ChaoticCircuits">Arduino chaos experiments</a></li>
<li><a href="https://github.com/konsumer/arduinoscope">Build your own Arduino scope for measurements</a></li>
</ul><h2>More information</h2>
<ul>
<li><a href="https://www.researchgate.net/publication/282832255_An_Experimental_Realization_of_a_Chaos-Based_Secure_Communication_Using_Arduino_Microcontrollers">Chaos based secure communication using Arduino</a></li>
<li><a href="http://www-physics.ucsd.edu/~des/DSmithChaosExperiment.pdf">Build your own simple chaos circuit</a></li>
<li><a href="https://revspace.nl/ChaoticCircuits">Arduino chaos experiments</a></li>
<li><a href="https://github.com/konsumer/arduinoscope">Build your own Arduino scope for measurements</a></li>
</ul>Bookshelf2016-12-14T19:27:00+01:002016-12-14T19:27:00+01:00David Raschtag:www.hacklab.nl,2016-12-14:/bookshelf.html<p>Interesting books this year</p>
<h2>Science</h2>
<ul>
<li>Gödel, Escher, Bach: An Eternal Golden Braid by Douglas Hofstadter</li>
<li>Nonlinear dynamics and Chaos by Steven Strogatz</li>
</ul>
<h2>Bitcoin</h2>
<ul>
<li><a href="https://www.bitcoinbook.info/">Mastering Bitcoin</a></li>
</ul>
<h2>Resources</h2>
<ul>
<li><a href="https://www.safaribooksonline.com/">O'Reilly Safari Books Online</a></li>
<li><a href="https://www.goodreads.com/">Goodreads</a></li>
<li><a href="https://www.humblebundle.com/">Humble Bundle</a></li>
<li><a href="https://archive.org/">Internet Archive</a></li>
<li><a href="https://www.khanacademy.org/">Khan Academy</a></li>
<li><a href="https://www.wikipedia.org/">Wikipedia</a></li>
</ul>
<h2>Youtube</h2>
<ul>
<li><a href="https://www.youtube.com/user/shiffman/playlists">Coding train</a></li>
</ul><p>Interesting books this year</p>
<h2>Science</h2>
<ul>
<li>Gödel, Escher, Bach: An Eternal Golden Braid by Douglas Hofstadter</li>
<li>Nonlinear dynamics and Chaos by Steven Strogatz</li>
</ul>
<h2>Bitcoin</h2>
<ul>
<li><a href="https://www.bitcoinbook.info/">Mastering Bitcoin</a></li>
</ul>
<h2>Resources</h2>
<ul>
<li><a href="https://www.safaribooksonline.com/">O'Reilly Safari Books Online</a></li>
<li><a href="https://www.goodreads.com/">Goodreads</a></li>
<li><a href="https://www.humblebundle.com/">Humble Bundle</a></li>
<li><a href="https://archive.org/">Internet Archive</a></li>
<li><a href="https://www.khanacademy.org/">Khan Academy</a></li>
<li><a href="https://www.wikipedia.org/">Wikipedia</a></li>
</ul>
<h2>Youtube</h2>
<ul>
<li><a href="https://www.youtube.com/user/shiffman/playlists">Coding train</a></li>
</ul>Palm organizer emulator on Android running tessellation2015-05-31T13:50:00+02:002015-05-31T13:50:00+02:00David Raschtag:www.hacklab.nl,2015-05-31:/palm-organizer-emulator-on-android-running-tessellation.html<h2>Configure phem</h2>
<ul>
<li>Download <a href="http://perpendox.com/phem/">phem m68k palm emulator for android</a></li>
<li>Get a palm os 3.5 rom</li>
</ul>
<h2>Install Tessellation</h2>
<ul>
<li>Download <a href="http://rasch.home.xs4all.nl/tessellation/download/tesselation-1.0.2.zip">Tessellation for the palm 1.0.2</a> or <a href="http://github.com/dcrasch/tfp">compile from source</a></li>
<li>Place tesselation.prc file in card directory /sdcard/phem/card</li>
</ul>
<p><img alt="Tessellation for the Palm on your palm emulator" src="/images/projects/tfp/tfp01.jpg" title="Tessellation for the palm"></p><h2>Configure phem</h2>
<ul>
<li>Download <a href="http://perpendox.com/phem/">phem m68k palm emulator for android</a></li>
<li>Get a palm os 3.5 rom</li>
</ul>
<h2>Install Tessellation</h2>
<ul>
<li>Download <a href="http://rasch.home.xs4all.nl/tessellation/download/tesselation-1.0.2.zip">Tessellation for the palm 1.0.2</a> or <a href="http://github.com/dcrasch/tfp">compile from source</a></li>
<li>Place tesselation.prc file in card directory /sdcard/phem/card</li>
</ul>
<p><img alt="Tessellation for the Palm on your palm emulator" src="/images/projects/tfp/tfp01.jpg" title="Tessellation for the palm"></p>Programming C64 Basic on Android2015-05-03T11:27:00+02:002015-05-03T11:27:00+02:00David Raschtag:www.hacklab.nl,2015-05-03:/programming-c64-basic-on-android.html<p>Write C64 Basic programs on your android device. Convert text files to basic in <a href="https://hkn.eecs.berkeley.edu/~mcmartin/ophis/manual/x51.html">prg format</a>.</p>
<p><img alt="Hack basic for C64" src="/images/projects/c64/hackbasic.png"></p>
<p>The c64 keyboard has some special keys:</p>
<ul>
<li>key ↑ = ^</li>
</ul>
<h3>Cross-compile bastext</h3>
<ul>
<li>See previous post on <a href="/c64-programming-on-a-android-device.html">C64 programming on a Android Device</a> for installing <a href="https://developer.android.com/tools/sdk/ndk/index.html">the Android Native Development Kit</a></li>
<li>clone my version of bastext from <a href="https://github.com/dcrasch/c64">my …</a></li></ul><p>Write C64 Basic programs on your android device. Convert text files to basic in <a href="https://hkn.eecs.berkeley.edu/~mcmartin/ophis/manual/x51.html">prg format</a>.</p>
<p><img alt="Hack basic for C64" src="/images/projects/c64/hackbasic.png"></p>
<p>The c64 keyboard has some special keys:</p>
<ul>
<li>key ↑ = ^</li>
</ul>
<h3>Cross-compile bastext</h3>
<ul>
<li>See previous post on <a href="/c64-programming-on-a-android-device.html">C64 programming on a Android Device</a> for installing <a href="https://developer.android.com/tools/sdk/ndk/index.html">the Android Native Development Kit</a></li>
<li>clone my version of bastext from <a href="https://github.com/dcrasch/c64">my repository</a> (adds some more commandline options, and make flags)</li>
</ul>
<div class="highlight"><pre><span></span>git clone https://github.com/dcrasch/bastext
</pre></div>
<ul>
<li>Edit the Makefile to enable Position Independ Executable compiling for latest devices</li>
</ul>
<div class="highlight"><pre><span></span><span class="nv">CC</span><span class="o">=</span>/tmp/android/bin/arm-linux-androideabi-gcc
<span class="c"># or for i686 CC=/tmp/android/bin/i686-linux-android-gcc</span>
<span class="nv">CFLAGS</span><span class="o">=</span>-fPIE
<span class="nv">LDFLAGS</span><span class="o">=</span>-fPIE -pie
</pre></div>
<ul>
<li>Make bastext</li>
</ul>
<div class="highlight"><pre><span></span>make
</pre></div>
<ul>
<li>Download <strong>bastext</strong> executable to your device</li>
<li>Install <a href="https://play.google.com/store/apps/details?id=jackpal.androidterm">Terminal Emulator for Android</a></li>
<li>Run Terminal</li>
</ul>
<div class="highlight"><pre><span></span><span class="nb">cd</span> ~
cat /sdcard/Download/bastext > bastext
chmod <span class="m">755</span> dasm
</pre></div>
<h2>Configure DroidEdit</h2>
<ul>
<li>Download <a href="http://www.droidedit.com/">DroidEdit</a></li>
<li>Run DroidEdit</li>
<li>settings... -> External command</li>
<li>Add external command</li>
<li>Name: <strong>basic</strong></li>
<li>Command: <strong>/data/data/jackpal.androidterm/app_HOME/bastext -d ${path}/${name}.prg -o ${path}/${file}</strong></li>
<li>Result action: <strong>Show results</strong></li>
</ul>
<h2>Install Commodore 64 emulator</h2>
<ul>
<li>install [Frodo C64][frodo] or other c64 emulator</li>
<li>select disk .prg</li>
<li>view result</li>
</ul>
<h2>Alternatives</h2>
<ul>
<li><a href="http://vice-emu.sourceforge.net/vice_14.html">petcat</a></li>
</ul>
<h2>Small graphics program example c64 programmers reference page 126</h2>
<div class="highlight"><pre><span></span>2 print chr$(147)
5 base=2*4096:poke53272,peek (53272)or8
10 poke53265,peek(53265)or32
20 fori=basetobase+7999:poke i,0:next
50 forx=0to319step.5
60 y=int(90+80*sin(x/10))
70 ch=int(x/8)
80 ro=int(y/8)
85 ln=yand7
90 by=base+ro*320+8*ch+ln
100 bi=7-(xand7)
110 pokeby,peek(by)or(2^bi)
120 nextx
110 poke1024,16
130 goto130
</pre></div>
<p>Don't forget to add a empty last line. lines in basic are always closed with a newline.</p>
<p>More code in my <a href="https://github.com/dcrasch/c64">c64 github repository</a>.</p>C64 programming on a Android device2015-03-14T16:36:00+01:002015-03-14T16:36:00+01:00David Raschtag:www.hacklab.nl,2015-03-14:/c64-programming-on-a-android-device.html<p>Write C64 assembler on your android device</p>
<p><img alt="Hack the planet for C64" src="/images/projects/c64/hacktheplanet.png" title="Hack the Planet on C64"></p>
<h2>Cross-compile dasm</h2>
<ul>
<li>Download <a href="https://developer.android.com/tools/sdk/ndk/index.html">the Android Native Development Kit</a> for your os (windows 32-bit or 64-bit, macosx 32-bit or 64-bit, linux 32-bit or 64-bit)</li>
<li>Install the kit for <a href="http://kevinboone.net/android_native.html">native android development</a></li>
<li>Check if there are no spaces in de path, otherwise the toolchain scripts …</li></ul><p>Write C64 assembler on your android device</p>
<p><img alt="Hack the planet for C64" src="/images/projects/c64/hacktheplanet.png" title="Hack the Planet on C64"></p>
<h2>Cross-compile dasm</h2>
<ul>
<li>Download <a href="https://developer.android.com/tools/sdk/ndk/index.html">the Android Native Development Kit</a> for your os (windows 32-bit or 64-bit, macosx 32-bit or 64-bit, linux 32-bit or 64-bit)</li>
<li>Install the kit for <a href="http://kevinboone.net/android_native.html">native android development</a></li>
<li>Check if there are no spaces in de path, otherwise the toolchain scripts won't work.</li>
<li>Run the make-standalone-toolchain for android-16 for:<ul>
<li>arch=<strong>arm</strong> for most phones</li>
<li>arch=<strong>i686</strong> for some tablets</li>
</ul>
</li>
</ul>
<div class="highlight"><pre><span></span>chmod a+x android-ndk-r10d-darwin-x86_64.bin
./android-ndk-r10d-darwin-x86_64.bin
<span class="nb">cd</span> android-ndk-r10d
./build/tools/make-standalone-toolchain.sh --arch<span class="o">=</span>arm --install-dir<span class="o">=</span>/tmp/android --platform<span class="o">=</span>android-16
<span class="c1"># or for x86 intel ./build/tools/make-standalone-toolchain.sh --arch=x86 --install-dir=/tmp/android --platform=android-16</span>
</pre></div>
<ul>
<li>From the <a href="http://dasm-dillon.sourceforge.net/">the dasm macro assembler</a> downloade the <a href="http://sourceforge.net/projects/dasm-dillon/files/dasm-dillon/2.20.11/dasm-2.20.11-2014.03.04-source.tar.gz">dasm source code</a></li>
</ul>
<div class="highlight"><pre><span></span>wget http://sourceforge.net/projects/dasm-dillon/files/dasm-dillon/2.20.11/dasm-2.20.11-2014.03.04-source.tar.gz
tar xvzf dasm-2.20.11-2014.03.04-source.tar.gz
<span class="nb">cd</span> dasm-2.20.11-20140304/src
</pre></div>
<ul>
<li>Edit the Makefile to enable Position Independ Executable compiling for latest devices</li>
</ul>
<div class="highlight"><pre><span></span><span class="nv">CC</span><span class="o">=</span>/tmp/android/bin/arm-linux-androideabi-gcc
<span class="c"># or for i686 CC=/tmp/android/bin/i686-linux-android-gcc</span>
<span class="nv">CFLAGS</span><span class="o">=</span>-fPIE
<span class="nv">LDFLAGS</span><span class="o">=</span>-fPIE -pie
</pre></div>
<ul>
<li>Make dasm</li>
</ul>
<div class="highlight"><pre><span></span>make
</pre></div>
<ul>
<li>Download <strong>dasm</strong> executable to your device</li>
<li>Install <a href="https://play.google.com/store/apps/details?id=jackpal.androidterm">Terminal Emulator for Android</a></li>
<li>Run Terminal</li>
</ul>
<div class="highlight"><pre><span></span><span class="nb">cd</span> ~
cat /sdcard/Download/dasm > dasm
chmod <span class="m">755</span> dasm
</pre></div>
<ul>
<li>Goto Settings... -> HOME folder, select and copy the text the path
<strong>/data/data/jackpal.androidterm/app_HOME</strong> (for easy copy past in the next step)</li>
</ul>
<h2>Configure DroidEdit</h2>
<ul>
<li>Download <a href="http://www.droidedit.com/">DroidEdit</a></li>
<li>Run DroidEdit</li>
<li>settings... -> External command</li>
<li>Add external command</li>
<li>Name: <strong>assemble</strong></li>
<li>Command: <strong>/data/data/jackpal.androidterm/app_HOME/dasm ${path}/${file} -o${path}/${name}.prg</strong></li>
<li>Result action: <strong>Show results</strong></li>
</ul>
<h2>Install Commodore 64 emulator</h2>
<ul>
<li>install <a href="https://github.com/shagr4th/FrodoC64">Frodo C64</a> or other c64 emulator</li>
<li>select disk .prg</li>
<li>view result</li>
</ul>
<h2>Alternatives</h2>
<ul>
<li><a href="http://tass64.sourceforge.net/">64tass</a> the multi pass optimizing macro assembler for the 65xx series of processors</li>
<li><a href="https://www.esw-heim.tu-clausthal.de/~marco/smorbrod/acme/">The ACME Crossassembler for Multiple Environments</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.uppercase.jasm6502">jasmC6502</a> assembler set</li>
<li><a href="https://hkn.eecs.berkeley.edu/~mcmartin/ophis/">The Ophis Assembler</a> with <a href="http://qpython.com/">QPython</a> for Android</li>
<li><a href="http://turbo.style64.org/">The Turbo Assembler C64</a></li>
</ul>
<h2>Small hello world program</h2>
<div class="highlight"><pre><span></span> .processor 6502
.org $801
.hex 0c08 0000 9e32 3036 3100 0000 ; basic start header
jsr $e544 ;clear the screen
ldx #$00;
loop lda message,x
jsr $ffd2 ;print the character
inx
cpx #$10 ;break loop after 16 characters decimal or 10 hex
bne loop
rts ;return from subroutine
message .byte "HACK THE PLANET!"
</pre></div>
<p>More code in my <a href="https://github.com/dcrasch/c64">c64 github repository</a>.</p>Weather2012-12-04T17:50:00+01:002012-12-04T17:50:00+01:00David Raschtag:www.hacklab.nl,2012-12-04:/weather.html<p>My weatherstation broke down again :-(, to much rain :-( Look at the humidity! ! View the <a href="http://media.hacklab.nl/weather/">old graphs</a>.</p>
<p><img alt="Weather" src="/images/projects/weather/monthhumid.png" title="Weather graph"></p>
<h3>Februari 3th, 2009 Weather graphs</h3>
<p>I added the weather graphs to the website. On the wl500g the graphs are generated with rrdtool and with lftp the graphs are uploaded to the server every hour …</p><p>My weatherstation broke down again :-(, to much rain :-( Look at the humidity! ! View the <a href="http://media.hacklab.nl/weather/">old graphs</a>.</p>
<p><img alt="Weather" src="/images/projects/weather/monthhumid.png" title="Weather graph"></p>
<h3>Februari 3th, 2009 Weather graphs</h3>
<p>I added the weather graphs to the website. On the wl500g the graphs are generated with rrdtool and with lftp the graphs are uploaded to the server every hour.</p>
<div class="highlight"><pre><span></span>lftp -c <span class="s1">'open -e "mirror -R $LOCALWEATHERDIR $WEBDIR" sftp://$WEBHOST/'</span>
</pre></div>
<p>You can see them at <a href="http://media.hacklab.nl/weather/">Weather @ HACKLAB</a></p>
<h3>November 5, 2009 WS-2307 weatherstation</h3>
<p>Last year my old weatherstation was damaged by a storm. I bought a new ws-2307 weatherstation. It has wireless sensors and a nice lcd display. Of course I hooked it up to the wl500g. I compiled the <a href="http://www.lavrsen.dk/foswiki/bin/view/Open2300/WebHome">open2300 weathersoftware</a> on the wl500g itself.On the download page there is a python version. It has less functionality, but is easy to modify.</p>
<h3>October 18, 2008 wx200 on the wl500g</h3>
<p>Connect your weatherstation (wx200) to the internet using the wl500g router.</p>
<h4>Hardware needed</h4>
<ul>
<li>wx200 weatherstation</li>
<li>usb flashdrive to store the weatherdata (you'll need a wl500gx or a usb hub)</li>
<li>usb to serial dongle (pl2303 or generic usb serial adapters are supported)</li>
<li>wl500g or wl500gx (with usb) or a serial port</li>
</ul>
<h4>Modules needed</h4>
<ul>
<li>Driver for the profilic 2303 (pl2303.o) or other serial converter</li>
<li>Serial to USB converter (usbserial.o)</li>
</ul>
<h4>Install with:</h4>
<div class="highlight"><pre><span></span>ipkg install kmod-usb-serial
ipkg install kmod-usb-serial-pl2303
</pre></div>
<h4>Programs needed (static compiled)</h4>
<ul>
<li>wx200d program</li>
<li>wx200 program</li>
<li>wxread program (for testing)</li>
<li>wx200rrd.sh (script to store data in rrd database and create graphics)</li>
<li>Compile wx200d package from openwrt</li>
</ul>
<h4>Optional</h4>
<ul>
<li>bzip2 (better compression as gzip)</li>
<li><a href="http://wl500g.info/showthread.php?2772-Easy-to-use-cron-system">macsat cron tutorial</a></li>
<li>awk</li>
<li>wget, wput, scp, or curl to upload the data</li>
<li><a href="http://wl500g.info/archive/index.php/t-2848.html">macsat rrdtool tutorial</a></li>
</ul>
<p>With these tools you can create nice weather graphs on your wl500g and upload the data to a 'real' server.</p>
<h4>Links</h4>
<ul>
<li><a href="http://wx200d.sourceforge.net/">wx200d</a></li>
<li>WL500g</li>
<li><a href="https://openwrt.org/">openwrt</a></li>
<li>macsat ASUS WL guides</li>
<li>A different weather station "One Wire Weather</li>
<li><a href="https://code.google.com/p/rrdweather/">RRDWeather</a></li>
</ul>
<h4>Howto install the weather software</h4>
<p>Upload the files to the wl500g. Connect the wx200 with the serial adapter to the wl500g and load the modules.</p>
<div class="highlight"><pre><span></span>insmod usbserial.o insmod pl2303.o
</pre></div>
<p>Set the execute bit on the program</p>
<div class="highlight"><pre><span></span>chmod u+x wxread wx200d wx200
</pre></div>
<p>Check if you get a signal of the weatherstation</p>
<div class="highlight"><pre><span></span>wxread /dev/usb/tts/0
</pre></div>
<p>weird characters are displayed after about 30 seconds, press CTRL-C to stop the program</p>
<h5>Start the wx200d program</h5>
<div class="highlight"><pre><span></span>wx200d -s /dev/usb/tts/0 -w tmp -b
</pre></div>
<p>Writes the ascii logs to the /tmp directory, if you don't have enough diskspace and don't want logfiles add</p>
<div class="highlight"><pre><span></span>wx200d -s /dev/usb/tts/0 -w tmp -a -b
</pre></div>
<p>Put this line in the startup after the usb serial modules are loaded.</p>
<h5>Display the current weather</h5>
<div class="highlight"><pre><span></span>wx200
</pre></div>
<h5>Howto upload the weather data using cron</h5>
<ul>
<li>Install cron, see macsat cron tutorial or openwrt tutorial</li>
<li>Display the current weather on one line without units in centigrades and hectopascal and no errors</li>
</ul>
<div class="highlight"><pre><span></span><span class="ch">#!/bin/sh</span>
<span class="nv">url</span><span class="o">=</span><span class="s2">"http://yoursite/scriptname"</span>
<span class="nv">query</span><span class="o">=</span><span class="s2">"`wx200 -ul --C --hpa -e| awk '{print "</span><span class="nv">temp</span><span class="o">=</span><span class="s2">"</span><span class="nv">$1</span><span class="s2">"</span><span class="p">&</span><span class="nv">humid</span><span class="o">=</span><span class="s2">"</span><span class="nv">$3</span><span class="s2">"</span><span class="p">&</span><span class="nv">baro</span><span class="o">=</span><span class="s2">" </span><span class="nv">$7</span><span class="s2">}'`"</span>
<span class="nv">options</span><span class="o">=</span><span class="s2">"-q -O /dev/null"</span>
wget <span class="si">${</span><span class="nv">options</span><span class="si">}</span> <span class="s2">"</span><span class="si">${</span><span class="nv">url</span><span class="si">}</span><span class="s2">?</span><span class="si">${</span><span class="nv">query</span><span class="si">}</span><span class="s2">"</span>
</pre></div>
<h5>Current weather on the wl500g</h5>
<p>Get current weather from the wl500g. WARNING! Dont use it on a public server! It's not a secure script!!!
If you installed an webserver with cgi, you can link:</p>
<div class="highlight"><pre><span></span>ln -s /usr/sbin/wx200 /www/cgi-bin/
</pre></div>
<p>And use the http://wl500g/cgi-bin/wx200 to get a simple weather report. You can tweak the arguments http://wl500g/cgi-bin/wx200?-h</p>
<h5>Howto create weather graphs</h5>
<p>Install rrdtool, see macsat rrdtool tutorial .</p>
<p>I edited the script from <a href="http://wl500g.info/archive/index.php/t-2848.html">the macsat rrdtool tutorial</a>. It creates 2 more graphs for humidity and barometer. The rrd database is about 110K. I placed the file on the ramdisk. (faster read and write, then the flash memory)</p>
<p>Link the images (and or the html pages) in the www directory</p>
<div class="highlight"><pre><span></span>ln -s /tmp/*.png /www
ln -s /tmp/*.html /www
</pre></div>
<p>Add the script the to crontab</p>
<div class="highlight"><pre><span></span>*/5 * * * * /usr/sbin/wx200rrd.sh
</pre></div>
<h4>Compiling wx200d</h4>
<p>If you want to compile wx200d yourself, there is a package in openwrt svn repository</p>Galaxies2012-05-31T15:31:00+02:002012-05-31T15:31:00+02:00David Raschtag:www.hacklab.nl,2012-05-31:/galaxies.html<p>Because there are a lot of different shaped galaxies you can write your name using galaxies.</p>
<p>Read more about it in the article at <a href="http://www.universetoday.com/95525/write-your-name-in-galaxies/">Universe Today</a> or try it at <a href="http://mygalaxies.co.uk/">My Galaxies</a> .</p>
<p><img alt="David" src="/images/other/davidgalaxies.jpg"></p><p>Because there are a lot of different shaped galaxies you can write your name using galaxies.</p>
<p>Read more about it in the article at <a href="http://www.universetoday.com/95525/write-your-name-in-galaxies/">Universe Today</a> or try it at <a href="http://mygalaxies.co.uk/">My Galaxies</a> .</p>
<p><img alt="David" src="/images/other/davidgalaxies.jpg"></p>Tessellation for the iPad2012-03-17T13:50:00+01:002012-03-17T13:50:00+01:00David Raschtag:www.hacklab.nl,2012-03-17:/tessellation-for-the-ipad.html<p>New features</p>
<ul>
<li>4 random colors based on color wheel</li>
<li>fit figure inside screen button</li>
<li>even works on iOS 4</li>
<li>screen orientation</li>
</ul>
<p><img alt="Tessellation for the iPad" src="/images/projects/tfi/screenshots/tfi03.jpg" title="Tessellation for the iPad"></p>
<p><a href="http://itunes.apple.com/us/app/tessellations/id511878432?mt=8" title="Tessellations">Download Tessellation on your iPhone or iPad!</a></p><p>New features</p>
<ul>
<li>4 random colors based on color wheel</li>
<li>fit figure inside screen button</li>
<li>even works on iOS 4</li>
<li>screen orientation</li>
</ul>
<p><img alt="Tessellation for the iPad" src="/images/projects/tfi/screenshots/tfi03.jpg" title="Tessellation for the iPad"></p>
<p><a href="http://itunes.apple.com/us/app/tessellations/id511878432?mt=8" title="Tessellations">Download Tessellation on your iPhone or iPad!</a></p>Tessellation for the iPhone 20122012-03-15T19:37:00+01:002012-03-15T19:37:00+01:00David Raschtag:www.hacklab.nl,2012-03-15:/tessellation-for-the-iphone-2012.html<p>Tessellation for the iPhone (and works on the iPad) is almost finished.
New functionality:</p>
<ul>
<li>Save to Album</li>
<li>Fit figure inside edit screen</li>
<li>4 colors!</li>
</ul>
<p><img alt="Tessellation for the iPhone" src="/images/projects/tfi/screenshots/tfi02.png" title="Tessellation for the iPhone"></p><p>Tessellation for the iPhone (and works on the iPad) is almost finished.
New functionality:</p>
<ul>
<li>Save to Album</li>
<li>Fit figure inside edit screen</li>
<li>4 colors!</li>
</ul>
<p><img alt="Tessellation for the iPhone" src="/images/projects/tfi/screenshots/tfi02.png" title="Tessellation for the iPhone"></p>Tessellation for Android2012-03-06T14:30:00+01:002012-03-06T14:30:00+01:00David Raschtag:www.hacklab.nl,2012-03-06:/tessellation-for-android.html<p>A very long time ago when java 1.0.2 was released and java applets were hot java.
I made a <a href="http://rasch.home.xs4all.nl/david/devel/java/Tesselation/Tesselation.html" title="Tessellation applet">Tessellation applet</a>. I ported it to modern java and android.</p>
<p><img alt="Tessellation for Android" src="/images/projects/tfa/screenshots/tfa01.png" title="Tessellation for Android"></p><p>A very long time ago when java 1.0.2 was released and java applets were hot java.
I made a <a href="http://rasch.home.xs4all.nl/david/devel/java/Tesselation/Tesselation.html" title="Tessellation applet">Tessellation applet</a>. I ported it to modern java and android.</p>
<p><img alt="Tessellation for Android" src="/images/projects/tfa/screenshots/tfa01.png" title="Tessellation for Android"></p>Tessellations in the App Store2012-01-10T13:45:00+01:002012-01-10T13:45:00+01:00David Raschtag:www.hacklab.nl,2012-01-10:/tessellations-in-the-app-store.html<p>Tessellations is now available in the App Store.</p>
<p><a href="http://itunes.apple.com/us/app/tessellations/id511878432?mt=8" title="Tessellations">Download Tessellation on you iPhone or iPad!</a></p><p>Tessellations is now available in the App Store.</p>
<p><a href="http://itunes.apple.com/us/app/tessellations/id511878432?mt=8" title="Tessellations">Download Tessellation on you iPhone or iPad!</a></p>