<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>andreas.goelzer.de</title>
	<atom:link href="http://andreas.goelzer.de/feed" rel="self" type="application/rss+xml" />
	<link>http://andreas.goelzer.de</link>
	<description>Electronics and small programs and other stuff</description>
	<lastBuildDate>Tue, 29 Nov 2011 21:08:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>burn a recorded mpeg-ts file to dvd in linux</title>
		<link>http://andreas.goelzer.de/burn-a-recorded-mpeg-ts-file-to-dvd-in-linux</link>
		<comments>http://andreas.goelzer.de/burn-a-recorded-mpeg-ts-file-to-dvd-in-linux#comments</comments>
		<pubDate>Tue, 29 Nov 2011 21:06:06 +0000</pubDate>
		<dc:creator>Andreas Goelzer</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[convert]]></category>
		<category><![CDATA[dreambox]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://andreas.goelzer.de/?p=279</guid>
		<description><![CDATA[Our old dreambox 7000 records movies in the mpeg-ts format (file extension:.ts). I wrote a Makefile to burn recorded files to dvd. To produce a dvd out of a mpeg-ts file we need: Project-X: Cut and demux videos mplex from &#8230; <a href="http://andreas.goelzer.de/burn-a-recorded-mpeg-ts-file-to-dvd-in-linux">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Our old dreambox 7000 records movies in the mpeg-ts format (file extension:.ts).  I wrote a Makefile to burn recorded files to dvd.<br />
<span id="more-279"></span></p>
<p>To produce a dvd out of a mpeg-ts file we need:</p>
<ul>
<li><a href="http://project-x.sourceforge.net/">Project-X</a>: Cut and demux videos</li>
<li>mplex from the <a href="http://mjpeg.sourceforge.net/">MJPEG Tools</a>: Remux videos</li>
<li><a href="http://dvdauthor.sourceforge.net/">dvdauthor</a>: create a video-dvd file structure</li>
<li>growisofs from the <a href="http://fy.chalmers.se/~appro/linux/DVD+RW/">DVD+RW package</a>: Create an iso image or burn directly to disk</li>
</ul>
<p>In Ubuntu you can install them by typing:</p>
<pre>sudo apt-get install project-x dvdauthor mjpegtools growisofs</pre>
<p>Dvdauthor demands to know the video format, so type</p>
<pre>echo "PAL" > ~/.config/video_format</pre>
<p>(replace PAL with NTSC if living in the USA or another NTSC-country)</p>
<p>Now you should have everything you need.  Copy the makefile to the same folder you downloaded the ts-file(assuming, for simplicity, it&#8217;s named sample.ts) to. Now, to just burn it to dvd, one title, no menu, conserving all audio tracks, do</p>
<pre>make sample.burn</pre>
<p>The advantage of using a Makefile is that you can do each step manually.  You can for example cut and demux the files with project-x by hand, or just produce the .mpg files, then use <a href="http://www.dvdstyler.org/">dvdstyler</a> to create a complex menu and burn the dvd.</p>
<pre lang="python" line="1">all:$(patsubst %.ts,%.dvd,$(wildcard *.ts))

MPLEX=mplex
MPLEXFLAGS=-f 8
DVDAUTHOR=dvdauthor
PROJECTX=projectx

DREAMBOX_BASEURL=root:dreambox@192.168.178.22/hdd/movie
.PRECIOUS: %.m2v %.ts %.mpg %.dvd

%.ts:
	wget ftp://$(DREAMBOX_BASEURL)/$@

%_proc.m2v: %.ts
	$(PROJECTX) -out . -name $*_proc $&lt;

%.mpg: %_proc.m2v
	-rm $*_proc*.txt
	$(MPLEX) $(MPLEXFLAGS) -o $@ $*_proc*
	-rm $*_proc*

%.xml: %.mpg
	echo &quot;&lt;dvdauthor&gt;&lt;vmgm /&gt;&lt;titleset&gt;&lt;titles&gt;&lt;pgc&gt;&lt;vob file=\&quot;$&lt;\&quot; /&gt;&lt;/pgc&gt;&lt;/titles&gt;&lt;/titleset&gt;&lt;/dvdauthor&gt;&quot; &gt; $*.xml

%.dvd: %.xml
	$(DVDAUTHOR) -x $*.xml -o $@ 

%.burn: %.dvd
	growisofs -Z /dev/dvd -dvd-video -V $* $&lt;/</pre><hr /><a href='http://andreas.goelzer.de/download/Makefile-movies'><img src="http://andreas.goelzer.de/wp-content/plugins/kfile/fileicons/file-generic.png" width="16" height="16" alt="filetype" class="icon16" /> Makefile-movies</a> (623 B, 2011-11-29)<br/><hr />
]]></content:encoded>
			<wfw:commentRss>http://andreas.goelzer.de/burn-a-recorded-mpeg-ts-file-to-dvd-in-linux/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>readesm 2011 with Qt user interface</title>
		<link>http://andreas.goelzer.de/readesm-2011-with-qt-user-interface</link>
		<comments>http://andreas.goelzer.de/readesm-2011-with-qt-user-interface#comments</comments>
		<pubDate>Sun, 20 Nov 2011 22:41:34 +0000</pubDate>
		<dc:creator>Andreas Goelzer</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Vehicles]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[qt]]></category>
		<category><![CDATA[tachograph]]></category>
		<category><![CDATA[trucks]]></category>

		<guid isPermaLink="false">http://andreas.goelzer.de/?p=222</guid>
		<description><![CDATA[The new versions of readesm use a qt graphical frontend.  Combined with the other changes, readesm should now be more useful and usable. <a href="http://andreas.goelzer.de/readesm-2011-with-qt-user-interface">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The <a href="readesm-reading-digital-tachograph-files">old version of readesm</a> was using a command-line interface to convert the tachograph data into html.  If one wanted it shown in the browser, there was a script to convert the file, write it to a temporary directory, and then open that file in the browser.  However, this approach turned out to be not portable at all.</p>
<p>There were other problems: readesm was using custom Makefiles, which apparently made compiling the source difficult.  I was amazed to discover <a href="http://wiki.ubuntuusers.de/Fahrlinux">this wiki entry for fahrlinx</a>, which contained information on how to install the windows version of readesm using <a href="http://www.winehq.org">wine</a>.  As the windows version at that time was cross-compiled in linux and lacked some features, readesm was clearly too difficult to compile.</p>
<p>In readesm versions since march 2011, both problems are solved.  Readesm now uses <a href="http://www.cmake.org/">cmake</a> for the build process, and <a href="http://qt.nokia.com/">Qt</a> to display the generated html pages in a webkit browser.</p>
<h3>Idea</h3>
<p>The idea behind readesm is to show you exactly what is in the tachograph file.</p>
<h3>Using readesm</h3>
<p>Usually you will either associate readesm with a file extension, and have your file manager open readesm for you.  Or you can open a file from readesm&#8217;s menu.<br />
Alternatively you can use the command line:</p>
<pre>readesm tachofile.ddd</pre>
<p>will open the file in the gui, and</p>
<pre>readesm tachofile.ddd tachofile.html</pre>
<p>will convert the file into html format and save it as <i>tachofile.html</i>.</p>
<h3>Screenshots</h3>
<p><a href='photos/screenshots/readesm/2011.11/vu1.png'><img class='photofiles_thumb' src='thumbs/screenshots/readesm/2011.11/vu1.png.thumb_small.png' alt='link to photos/screenshots/readesm/2011.11/vu1.png' height='100' width='100' title=''/></a> <a href='photos/screenshots/readesm/2011.11/vu2.png'><img class='photofiles_thumb' src='thumbs/screenshots/readesm/2011.11/vu2.png.thumb_small.png' alt='link to photos/screenshots/readesm/2011.11/vu2.png' height='100' width='100' title=''/></a> <a href='photos/screenshots/readesm/2011.11/card1.png'><img class='photofiles_thumb' src='thumbs/screenshots/readesm/2011.11/card1.png.thumb_small.png' alt='link to photos/screenshots/readesm/2011.11/card1.png' height='100' width='100' title=''/></a> </p>
<h3>Free software toolchain for tachographs</h3>
<p>With readesm, <a href="http://developer.berlios.de/projects/fahrlinx/">fahrlinx</a> and <a href="http://andreas.goelzer.de/serial-download-from-a-digital-tachograph-in-python">loadvu</a>, a linux laptop can now connect to vehicle units, read out driver cards and visualize the contents of the files.</p>
<p>To install all three programs in ubuntu:</p>
<pre>sudo apt-add-repository ppa:k-2005
sudo apt-get update
sudo apt-get install readesm fahrlinx loadvu</pre>
<p>It&#8217;s a bit more difficult in Windows, but should be possible nevertheless.</p>
<h3>Download readesm</h3>
<p>Download the latest files from the <a href="https://sourceforge.net/projects/readesm/files/readesm/">project page</a> at sourceforge.  </p>
<ul>
<li>Use the windows-installer (readesm-XX-win32.exe) to install. The latest version should also associate tachograph files with itself.</li>
<li>If you cannot or do not want to install readesm, use readesm-XX-win32.zip</li>
<li>Ubuntu users should either use <a href="https://launchpad.net/~k-2005/+archive/ppa">my ppa</a> or compile from source.</li>
<li>Users of 64 bit windows might be able to run the 32 bit windows version.  Unfortunately, I do not have access to a single 64 bit windows pc.</li>
<li>For other operating systems, download one of the source packages and compile it yourself.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://andreas.goelzer.de/readesm-2011-with-qt-user-interface/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Serial download from a digital tachograph in python</title>
		<link>http://andreas.goelzer.de/serial-download-from-a-digital-tachograph-in-python</link>
		<comments>http://andreas.goelzer.de/serial-download-from-a-digital-tachograph-in-python#comments</comments>
		<pubDate>Mon, 14 Nov 2011 23:11:08 +0000</pubDate>
		<dc:creator>Andreas Goelzer</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Vehicles]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[tachograph]]></category>
		<category><![CDATA[trucks]]></category>
		<category><![CDATA[usb]]></category>

		<guid isPermaLink="false">http://andreas.goelzer.de/?p=243</guid>
		<description><![CDATA[  <a href="http://andreas.goelzer.de/serial-download-from-a-digital-tachograph-in-python">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Digital tachographs are a compulsory equipment for heavy trucks in the european union.  The companies owning these trucks have to download the data at least once every 3 months.</p>
<p>Without dedicated hardware, this was so far not easily possible in linux, but my python script should make it possible to download the data with a serial cable with the right connector.<br />
<span id="more-243"></span></p>
<h3>Ubuntu package</h3>
<p>Ubuntu packages are available in my <a href="https://launchpad.net/~k-2005/+archive/ppa">ppa</a>. You can add my ppa with</p>
<pre>sudo apt-add-repository ppa:k-2005</pre>
<p>and then install loadVu with</p>
<pre>sudo apt-get install loadvu</pre>
<h3>Usage</h3>
<p>Start the program with</p>
<pre>./loadvu</pre>
<p>The data will be saved to a file named after the vehicle and date.<br />
If your serial connection is not /dev/ttyUSB0, you should specify it with the &#8211;serial parameter.  A possible call would be</p>
<pre>./loadvu --serial /dev/ttyUSB1</pre>
<h3>Extra transfer response parameters</h3>
<p>While the commision regulation 1360/2002 defines TREPs 1 to 6 </p>
<table>
<tr>
<th>TRTP/TREP</th>
<th>Description</th>
</tr>
<tr>
<td>1</td>
<td>Overview</td>
</tr>
<tr>
<td>2</td>
<td>Daily Activity on a specified date</td>
</tr>
<tr>
<td>3</td>
<td>Events and faults</td>
</tr>
<tr>
<td>4</td>
<td>Detailed speed</td>
</tr>
<tr>
<td>5</td>
<td>Technical data</td>
</tr>
<tr>
<td>6</td>
<td>Card download</td>
</tr>
</table>
<p>At least the digital tachographs from Siemens VDO return data on other requests, too.  For example Daimler&#8217;s TCO-DKG program requests 17,19 and 20 and saves those to an .add file.  The vu also returns data requesting trtp 18.  To mimic the behaviour of tco-dkg, type</p>
<pre>./loadvu --treps 2,3,4,5 -o mycar.esm
./loadvu --treps 17,19,20 -o mycar.add</pre>
<h3>Download of card data</h3>
<p>It is possible to download the data stored in a driver card inserted into the vehicle unit.  However, in the current version the script will add vehicle data to the file, so few programs will be able to read it.  The current svn of readesm can, but the last release cannot.</p>
<pre>./loadvu --treps 6 -o card.esm</pre>
<p>Future versions might handle this with more elegance.</p>
<h3>Download Speed</h3>
<p>With a digital tachograph from 2007, loadvu tells:</p>
<pre>$ ./loadvu
Sending 'Request Start Communication Request'
Got the expected response
Sending 'Request Diagnostic Session'
Got the expected response
Sending 'Request Request Byte rate 115200'
Got the expected response
[...]
Sending 'Request Stop Communication'
Got the expected response
data saved to UL-XX YYY 2010-11-09 to 2011-11-18 21.54 (CET).esm
Got 222772 Byte in 1789.75275612 seconds. (124.470823827 Byte/s)</pre>
<p>It&#8217;s slow.  Really slow.  Considering how many trucks there are, also expensively slow.  And it&#8217;s not just this script, it&#8217;s that slow with any program.  Why? Hard to tell.  The transfer is slowest when transferring daily activities, where many cryptographic signatures are transferred.  However, there is no technical reason why these would have to be generated at every download, as the data really should not change once written.</p>
<p>Enjoy the script.<br />
<hr /><a href='http://andreas.goelzer.de/download/loadvu-2011.11.tar.gz'><img src="http://andreas.goelzer.de/wp-content/plugins/kfile/fileicons/file-compressed.png" width="16" height="16" alt="filetype" class="icon16" /> loadvu-2011.11.tar.gz</a> (4.96 kiB, 2011-11-18)<br/><hr /></p>
]]></content:encoded>
			<wfw:commentRss>http://andreas.goelzer.de/serial-download-from-a-digital-tachograph-in-python/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Play or open newest file from the linux command line</title>
		<link>http://andreas.goelzer.de/play-or-open-newest-file-from-the-linux-command-line</link>
		<comments>http://andreas.goelzer.de/play-or-open-newest-file-from-the-linux-command-line#comments</comments>
		<pubDate>Sun, 23 Oct 2011 14:01:21 +0000</pubDate>
		<dc:creator>Andreas Goelzer</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[snippet]]></category>

		<guid isPermaLink="false">http://andreas.goelzer.de/?p=214</guid>
		<description><![CDATA[In some cases it is convenient to have a shortcut to open the newest file in a directory. Maybe the last show your dvr recorded, or the last file you bought from amazon. For these cases I found this little &#8230; <a href="http://andreas.goelzer.de/play-or-open-newest-file-from-the-linux-command-line">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In some cases it is convenient to have a shortcut to open the newest file in a directory.  Maybe the last show your dvr recorded, or the last file you bought from amazon.</p>
<p>For these cases I found this little bash snippet useful:</p>
<pre>ls -tr | tail -n 1 | xargs -I FILE kde-open "FILE"</pre>
<p><span id="more-214"></span></p>
<p>Instead of <i>kde-open</i>, which opens any file with the associated program, you can use any program, gnome-users might want <i>gnome-open</i>, people with other window managers can use <i>xdg-open</i> from xdg-utils.  Or you can just insert <i>mplayer</i>, if you are only interested in music and videos. </p>
<p>I prefer it installed somewhere in the path, and then one can add a command-line parameter, the number of files to be played:<br />
<pre lang="python" line="1">#!/bin/sh
ls -tr | tail -n ${1:-1} | xargs -I FF kde-open &quot;FF&quot;
</pre><hr /><a href='http://andreas.goelzer.de/download/playlast'><img src="http://andreas.goelzer.de/wp-content/plugins/kfile/fileicons/file-generic.png" width="16" height="16" alt="filetype" class="icon16" /> playlast</a> (63 B, 2011-10-23)<br/><hr /></p>
]]></content:encoded>
			<wfw:commentRss>http://andreas.goelzer.de/play-or-open-newest-file-from-the-linux-command-line/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>USB Controller for 12 RC Servos</title>
		<link>http://andreas.goelzer.de/usbservo</link>
		<comments>http://andreas.goelzer.de/usbservo#comments</comments>
		<pubDate>Thu, 12 Aug 2010 22:59:36 +0000</pubDate>
		<dc:creator>Andreas Goelzer</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[avr]]></category>
		<category><![CDATA[servo]]></category>
		<category><![CDATA[usb]]></category>

		<guid isPermaLink="false">http://andreas.goelzer.de/?p=153</guid>
		<description><![CDATA[This article describes building a small (3.3 cm times 3.3 cm) RC servo controller using an avr microprocessor and an FT232RL USB-uart chip.  All RC servo signals can be set to pulsewidths from 0 to 8.1 ms using the usb-serial interface. 
 <a href="http://andreas.goelzer.de/usbservo">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This article describes building a small (3.3 cm times 3.3 cm) RC servo controller using an avr microprocessor and an FT232RL USB-uart chip.  All RC servo signals can be set to pulsewidths from 0 to 8.1 ms using the usb-serial interface. </p>
<p>RC Servos are popular among modelling and robotics enthusiasts because of their simplicity.  They take a pulsewidth-encoded input, and turn accordingly with relatively high torque.  They have their disadvantages, for example one cannot tell if the servo was able to get where it was sent, but their low price and the fact that driver and gear box are integrated make up for that.  Also, <a href="http://www.conrad.de">Conrad</a> sells them for 3 € a piece, so I bought some.</p>
<p>My first idea was to control them with <a href="http://www.obdev.at/products/vusb/index.html">firmware-usb</a>, however, the high load imposed on the controller by usb makes software-pwm erratic, and also, implementing the usb communicating device class is not possible for low-speed devices. </p>
<div class="image" style="font-size: 80%; text-align:center; font-face:bold;">
<a href="articlephotos/withservos.jpg"><img src="articlephotos/withservos_s.jpg" width="400" height="279" alt="[picture of assembled bord and two rc servos]" title="rather small, or is it?"></a>
<div>The servo controller prototype together with one regular sized RC servo, and one miniservo</div>
</div>
<p>The path I followed that resulted in the servo controller pictured above was, to use an <a href="http://www.ftdichip.com/Products/ICs/FT232R.htm">FT232R</a> usb-to-uart converter and an <a href="http://www.atmel.com/dyn/resources/prod_documents/8246S.pdf">Attiny 2313a</a> microcontroller to provide the software pwm.  There are some other possibilities, like taking an at90usb or another microcontroller with usb, but FTDI has nice chips, good support, and one can get usb pids from them, and remans flexible.  If 12 servos are not enough, the software should easily be portable to a bigger avr, the chips are widely avalable and low in cost: I got the attiny for about 1 € and the FT232RL for about 2.5 € at <a href="http://www.csd-electronics.de/">CSD</a>.</p>
<p>The <a href="download/usbservo_schematic.pdf">full schematic</a> is available as pdf and in the kicad format, and so is the <a href="download/usbservo_pcb.pdf">pcb layout</a>.  Feel free to rebuild it.</p>
<p>This was my first project using kicad and my first project using surface mounted technology, and surprisingly both made few problems.  Even soldering the tqfp-sized FT232RL without solder resist worked well, though i needed lots of light and a good magnifying glass. </p>
<div class="image" style="font-size: 80%; text-align:center; font-face:bold;">
<a href="articlephotos/smd_seite.jpg"><img src="articlephotos/smd_seite_s.jpg" width="400" height="279" alt="(picture of assembled pcb]" title="well, it was small"></a>
<div>The copper side of the assembled pcb, showing the results of my subpar soldering skills</div>
</div>
<h3>Hardware</h3>
<p>You will need:</p>
<ul>
<li>One <a href="http://www.ftdichip.com/Products/ICs/FT232R.htm">FT232RL</a> USB-to-UART convertor</li>
<li>One <a href="http://www.atmel.com/dyn/resources/prod_documents/8246S.pdf">Attiny 2313a</a> (or the older, nrfnd, attiny2313) avr microprocessor.</li>
<li>An USB B-type connector</li>
<li>A 6-pin connector for your AVR-ISP programmer.</li>
<li>Connectors for the servos. I used simple multi-pin connectors and some colored insulating tape to mark plus, minus and signal.</li>
<li>A connector for your power supply.</li>
<li>An optional jumper to power the servos from usb. Since the device does not ask the usb host for more power, this is outside the usb specifications. however, with small miniservos it is convenient, as you do not need an extra power supply.</li>
<li>One 4.7 µF electrolyte capacitor</li>
<li>Three SMD 100 nF ceramic capacitors and two 10 kOhm resistors. The plan calls for size 0603, but the resistors I used were actually 0805, and fitted also well.</li>
<li>A printed circuit board.  With the right equipment, you can make this yourself.  Or you can have one made for you at various companies</li>
</ul>
<p>All the parts together cost about 5 € (with a self-made pcb).</p>
<h3>Software</h3>
<p>The software provides a rather minimalistic interface.  To send commands, open the serial port at 9600 baud, using your favorite terminal program, I used gtkterm.</p>
<p>The available commands are:</p>
<ul>
<li>Typing <b>v</b> shows the device name, a link here, and the software version.</li>
<li>Typing <b>l</b> lists the servo numbers and the corresponding pwm settings. The pwm settings are the number of cpu cycles the servo should get a high signal level.</li>
<li>Typing <b>d</b> shows the softpwm table, a list of when which signals should go from high to low. This list is calculated from the pwm settings, it&#8217;s mainly there for debugging purposes.</li>
<li>Typing <b>s (servonumber) (new value)</b> sets the pwm value for the selected servo. Be sure to send a newline character or other whitespace to execute the command.</li>
</ul>
<p>Since RC servos typically want a 1 ms pulse (at 8 MHz this are 8000 cpu cycles) for one end, and a 2 ms pulse (similarly, at 8 MHz this are 16000 cpu cycles) for the other end, you would in linux do something like</p>
<pre>stty -F /dev/ttyUSB0 9600
echo "s 11 8000 " > /dev/ttyUSB0
echo "s 10 16000 " > /dev/ttyUSB0</pre>
<p>to send servo 11 to one end and servo 10 to the other.  If you have other serial devices, the device might not be /dev/ttyUSB0, but /dev/ttyUSB1 or so.  Should this be a problem, you can create a udev rule to create a symlink.  Note that the actual pulse lengths required to go to the mechanical end of the servo differ widely between servo types, I do not know if there is some standard, if you do, please tell me.</p>
<div class="image" style="font-size: 80%; text-align:center; font-face:bold;">
<a href="articlephotos/usbservo1.jpg"><img src="articlephotos/usbservo1_s.jpg" width="400" height="269" alt="[screenshot of qt host software]" title="rather small, or is it?"></a>
<div>A QT frontend to turn servos by turning dials</div>
</div>
<p>For some cases, like finding the end positions of the rc servos, it is convenient to have a graphical user interface, which is also available.</p>
<h3>Usage with embedded linux devices</h3>
<p>In most households, many devices run linux and have an usbport. however, without a modified firmware most cannot connect to serial usb devices. I tested a fritzbox 7270 (possible with alternative firmware <a href="http://trac.freetz.org/">freetz</a>, not with the original firmware), a dreambox dm 7000(no success, and alternative firmwares are lost in the mists of time), and an Asus oplay hdp-r1(also no success, and alternative firmwares seem to be not yet available).  So, unless you have a device that runs <a href="http://openwrt.org/">openwrt</a> by default, chances are this won&#8217;t work without some work.</p>
<h3>List of things still to do</h3>
<ul>
<li>As seen on the pictures, the avr isp connector is slightly too large, so either a smaller one has to be used, or only 8 servo connectors have place. For testing purposes, this was enough, but a new hardware revsion is necessary.</li>
</ul>
<hr /><a href='http://andreas.goelzer.de/download/usbservo_hardware.tar.gz'><img src="http://andreas.goelzer.de/wp-content/plugins/kfile/fileicons/file-compressed.png" width="16" height="16" alt="filetype" class="icon16" /> usbservo_hardware.tar.gz</a> (60.86 kiB, 2010-08-12)<br/><a href='http://andreas.goelzer.de/download/usbservo_software.tar.bz2'><img src="http://andreas.goelzer.de/wp-content/plugins/kfile/fileicons/file-compressed.png" width="16" height="16" alt="filetype" class="icon16" /> usbservo_software.tar.bz2</a> (48.24 kiB, 2010-08-14)<br/><a href='http://andreas.goelzer.de/download/qusbservoc.tar.gz'><img src="http://andreas.goelzer.de/wp-content/plugins/kfile/fileicons/file-compressed.png" width="16" height="16" alt="filetype" class="icon16" /> qusbservoc.tar.gz</a> (20.49 kiB, 2010-08-14)<br/><a href='http://andreas.goelzer.de/download/usbservo_schematic.pdf'><img src="http://andreas.goelzer.de/wp-content/plugins/kfile/fileicons/file-pdf.png" width="16" height="16" alt="filetype" class="icon16" /> usbservo_schematic.pdf</a> (26.66 kiB, 2010-08-12)<br/><a href='http://andreas.goelzer.de/download/usbservo_pcb.pdf'><img src="http://andreas.goelzer.de/wp-content/plugins/kfile/fileicons/file-pdf.png" width="16" height="16" alt="filetype" class="icon16" /> usbservo_pcb.pdf</a> (23.32 kiB, 2010-08-02)<br/><hr />
]]></content:encoded>
			<wfw:commentRss>http://andreas.goelzer.de/usbservo/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ytplay &#8211; wrapper for youtube-dl.py</title>
		<link>http://andreas.goelzer.de/ytplay-wrapper-for-youtube-dl-py</link>
		<comments>http://andreas.goelzer.de/ytplay-wrapper-for-youtube-dl-py#comments</comments>
		<pubDate>Wed, 17 Feb 2010 22:55:59 +0000</pubDate>
		<dc:creator>Andreas Goelzer</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[snippet]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://andreas.goelzer.de/?p=148</guid>
		<description><![CDATA[Due to my slightly outdated computer flash is a huge problem. So, for viewing youtube videos, youtube-dl.py is a great solution. However, I wanted something more comfortable. ytplay wraps around youtube-dl.py, it searches for a video, orders youtube-dl to get &#8230; <a href="http://andreas.goelzer.de/ytplay-wrapper-for-youtube-dl-py">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Due to my slightly outdated computer flash is a huge problem. So, for viewing youtube videos, <a href="http://bitbucket.org/rg3/youtube-dl/wiki/Home">youtube-dl.py</a> is a great solution. However, I wanted something more comfortable.</p>
<p>ytplay wraps around youtube-dl.py, it searches for a video, orders youtube-dl to get it, and starts playing it in vlc.</p>
<p>Usage is simple:<br />
> ytplay foobar<br />
will search youtube for videos about foobar and play the first one found.</p>
<p>The code is still quite dirty, especially the subprocess part. However, it should work, have fun!<br />
<span id="more-148"></span><br />
<pre lang="python" line="1">#!/usr/bin/python
# -*- coding: utf-8 -*-
#		parser.add_option('-P', '--play', action='store_true',
#				dest='play', help='play in vlc', default=False)

from optparse import OptionParser
from subprocess import Popen, PIPE
from urllib2 import urlopen 
from urllib import quote_plus
from re import search, match
from os import system

parser = OptionParser(version='2010.02.13')

parser.add_option('-p', '--player',
dest='player', metavar='PROGRAM', help='media player to use', default='vlc')

(opts, args) = parser.parse_args()

if match(&quot;http://&quot;,args[0]):
	videopageurl = args[0]
else:
	searchargs = '+'.join(args)
	searchurl = &quot;http://www.youtube.com/results?search_type=&amp;aq=f&amp;oq=&amp;search_query=&quot; + quote_plus(searchargs)
	searchresult = urlopen(searchurl).read()
	p=search(r'(watch\?[^&quot;]*)',searchresult)
	if p==None:
		print &quot;No Videos found&quot;
		exit()
	videopageurl=&quot;http://www.youtube.com/&quot; + p.group(1)
	

print &quot;Starting youtube-dl for &quot; + videopageurl
ytdl = Popen(&quot;youtube-dl.py -t -b &quot; + videopageurl,shell=True,stdout=PIPE)

while not ytdl.stdout.closed:
	line = ytdl.stdout.readline()
	print line,
	if line == '': exit()
	p = search(r'\[download\] Destination: (\S*)',line)
	if p != None:
		print &quot;Starting player: &quot; + opts.player + &quot; &quot; + p.group(1)
		system(opts.player + &quot; &quot; + p.group(1) + &quot; &amp;&quot;)

</pre><hr /><a href='http://andreas.goelzer.de/download/ytplay'><img src="http://andreas.goelzer.de/wp-content/plugins/kfile/fileicons/file-generic.png" width="16" height="16" alt="filetype" class="icon16" /> ytplay</a> (1.28 kiB, 2010-02-14)<br/><hr /></p>
]]></content:encoded>
			<wfw:commentRss>http://andreas.goelzer.de/ytplay-wrapper-for-youtube-dl-py/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GPS plasmoid</title>
		<link>http://andreas.goelzer.de/gps-plasmoid</link>
		<comments>http://andreas.goelzer.de/gps-plasmoid#comments</comments>
		<pubDate>Thu, 09 Apr 2009 16:16:20 +0000</pubDate>
		<dc:creator>Andreas Goelzer</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[gps]]></category>
		<category><![CDATA[plasmoid]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://andreas.goelzer.de/?p=133</guid>
		<description><![CDATA[Having recently acquired a bluetooth GPS receiver for as little as 20 €, and just having switched to KDE 4, i tried to combine those two, and write a little plasmoid to show the current position on the desktop. And &#8230; <a href="http://andreas.goelzer.de/gps-plasmoid">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Having recently acquired a bluetooth <a href="http://en.wikipedia.org/wiki/Gps">GPS</a> receiver for as little as 20 €, and just having switched to <a href="http://www.kde.org/announcements/4.2/desktop.php">KDE 4</a>, i tried to combine those two, and write a little plasmoid to show the current position on the desktop.</p>
<p>And that is basically everything to say, enjoy the little applet.<br />
<span id="more-133"></span></p>
<h3>Installation</h3>
<p>Make sure <a href="http://gpsd.berlios.de/">gpsd</a> is installed and set up properly. Also make sure the python bindings are installed.<br />
In Ubuntu you would need to:</p>
<pre>sudo apt-get install gpsd python-gps
sudo dpkg-reconfigure gpsd
sudo apt-get install python-plasma python-dev</pre>
<p>After those are installed,  you can proceed to install the plasmoid with plasmapkg -i.</p>
<h3>Problems and TODOs</h3>
<p>This is all rather dirty and bloated. The correct way to do it would probably be to write a data engine for plasma, which would provide the positional data. Maybe someone will do it, especially if <a href="http://edu.kde.org/marble/">Marble</a> will one day <strike>be able to support overlays</strike> integrate <a href="http://geoclue.freedesktop.org/">GeoClue</a> or something similar.</p>
<p>Right now the data travels from the GPS device to the PC in the form of <a href="http://www.gpsinformation.org/dale/nmea.htm">NMEA sentences</a>, gets then converted into gpsd&#8217;s own format, python-gps connects to gpsd over TCP port 2947, interprets the gpsd output, hands it over to the applet, which reformats the data yet again. For something so useless that just wastes too many CPU cycles. <a href="http://andreas.goelzer.de/gps-mouse-in-python">Interpreting GPS data</a> entirely in python is not hard, but still a bit harder than with gpsd, especially if one wants to cover a lot of GPS devices. Don&#8217;t get me wrong, gpsd does its job quite well, it is just a bit overkill for this task.</p>
<p>Another improvement would be readable coordinates. Something like &#8220;10 km northwest of Zürich&#8221; or even &#8220;200 meters south of Sternen Oerlikon, Zürich&#8221; would really be much more useful.</p>
<p>Update February 2010: Version 0.16 now uses KDE&#8217;s geolocation data engine. This drops the (direct) dependency on gpsd, and allows for ip-based location &#8211; unfortunately i now can no longer get my gps to work with it, hoping for kubuntu lucid.<br />
<p><a href='photos/screenshots/gps-plasmoid/gps-plasmoid012-zoom.png'><img class='photofiles_thumb' src='thumbs/screenshots/gps-plasmoid/gps-plasmoid012-zoom.png.thumb_small.png' alt='link to photos/screenshots/gps-plasmoid/gps-plasmoid012-zoom.png' height='100' width='100' title=''/></a> <a href='photos/screenshots/gps-plasmoid/gps-plasmoid012.png'><img class='photofiles_thumb' src='thumbs/screenshots/gps-plasmoid/gps-plasmoid012.png.thumb_small.png' alt='link to photos/screenshots/gps-plasmoid/gps-plasmoid012.png' height='100' width='100' title=''/></a> <a href='photos/screenshots/gps-plasmoid/gps-plasmoid012-zoom.jpg'><img class='photofiles_thumb' src='thumbs/screenshots/gps-plasmoid/gps-plasmoid012-zoom.jpg.thumb_small.png' alt='link to photos/screenshots/gps-plasmoid/gps-plasmoid012-zoom.jpg' height='100' width='100' title=''/></a> </p><br />
<hr /><a href='http://andreas.goelzer.de/download/gps-plasmoid_0.16.plasmoid'><img src="http://andreas.goelzer.de/wp-content/plugins/kfile/fileicons/file-generic.png" width="16" height="16" alt="filetype" class="icon16" /> gps-plasmoid_0.16.plasmoid</a> (5.85 kiB, 2010-02-13)<br/><a href='http://andreas.goelzer.de/download/gps-plasmoid_0.15.plasmoid'><img src="http://andreas.goelzer.de/wp-content/plugins/kfile/fileicons/file-generic.png" width="16" height="16" alt="filetype" class="icon16" /> gps-plasmoid_0.15.plasmoid</a> (2.59 kiB, 2009-04-11)<br/><hr /></p>
]]></content:encoded>
			<wfw:commentRss>http://andreas.goelzer.de/gps-plasmoid/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>lcdshift</title>
		<link>http://andreas.goelzer.de/lcdshift</link>
		<comments>http://andreas.goelzer.de/lcdshift#comments</comments>
		<pubDate>Tue, 31 Mar 2009 14:45:40 +0000</pubDate>
		<dc:creator>Andreas Goelzer</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[avr]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[lcd]]></category>

		<guid isPermaLink="false">http://andreas.goelzer.de/?p=122</guid>
		<description><![CDATA[LCD Controllers using an HD44780 Display Controller are commonly used for small batch electronic devices, and are popular with electronics fans worldwide. One problem with those controllers is their demand for IO-lines, due too the parallel interface they require at &#8230; <a href="http://andreas.goelzer.de/lcdshift">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>LCD Controllers using an <a href="http://www.alldatasheet.com/datasheet-pdf/pdf/63673/HITACHI/HD44780.html">HD44780</a> Display Controller are commonly used for small batch electronic devices, and are popular with electronics fans worldwide. One problem with those controllers is their demand for IO-lines, due too the parallel interface they require at least 7 IO lines.</p>
<p>One solution, if you don&#8217;t have enough IO ports to spare, is to use another Display, like serial <a href="http://superkranz.de/christian/S65_Display/DisplayIndex.html">cellphone displays</a>, which are cheap and color is a great thing to show off. Or you can expand the number of IO lines by using a shift register or TWI device. This is one such implementation using a <a href="http://www.datasheetcatalog.org/datasheet/motorola/74HC164.pdf">74hc164</a> shift register. It is based on an <a href="http://www.mikrocontroller.net/topic/6496">implementation</a> by Peter Dannegger. If you prefer to use a 4094 cmos shift register, there are also <a href="http://bansky.net/blog/2008/10/interfacing-lcd-with-3-wires-from-net-micro-framework/">schematics</a>  floating around the net.</p>
<p>The idea behind this implementation is to fill the shift register from the microcontroller using hard- or softspi, then toggle the hd44780&#8242;s enable pin. While toggling, the data pin determines the R/S state of the display.</p>
<p>The demo software will print a hello world message onto the display, it is written for AVR microcontrollers, it should work &#8211; after modifying the ports and pin numbers &#8211; on almost any AVR. Peter Daneggers <a href="http://www.mikrocontroller.net/attachment/highlight/1929">original software</a> is written for 8051 µCs, I don&#8217;t know of any code for PICs.<br />
<p><a href='photos/elektronik/lcdshift/lcdshift_assembly.png'><img class='photofiles_thumb' src='thumbs/elektronik/lcdshift/lcdshift_assembly.png.thumb_small.png' alt='link to photos/elektronik/lcdshift/lcdshift_assembly.png' height='100' width='100' title=''/></a> <a href='photos/elektronik/lcdshift/lcdshift_schematic.png'><img class='photofiles_thumb' src='thumbs/elektronik/lcdshift/lcdshift_schematic.png.thumb_small.png' alt='link to photos/elektronik/lcdshift/lcdshift_schematic.png' height='100' width='100' title=''/></a> </p><br />
<hr /><a href='http://andreas.goelzer.de/download/lcd.tar.bz2'><img src="http://andreas.goelzer.de/wp-content/plugins/kfile/fileicons/file-compressed.png" width="16" height="16" alt="filetype" class="icon16" /> lcd.tar.bz2</a> (2.30 kiB, 2009-03-31)<br/><a href='http://andreas.goelzer.de/download/lcdshift.pdf'><img src="http://andreas.goelzer.de/wp-content/plugins/kfile/fileicons/file-pdf.png" width="16" height="16" alt="filetype" class="icon16" /> lcdshift.pdf</a> (13.73 kiB, 2009-03-31)<br/><a href='http://andreas.goelzer.de/download/lcdshift.sch'><img src="http://andreas.goelzer.de/wp-content/plugins/kfile/fileicons/file-generic.png" width="16" height="16" alt="filetype" class="icon16" /> lcdshift.sch</a> (94.29 kiB, 2009-03-31)<br/><a href='http://andreas.goelzer.de/download/lcdshift.brd'><img src="http://andreas.goelzer.de/wp-content/plugins/kfile/fileicons/file-generic.png" width="16" height="16" alt="filetype" class="icon16" /> lcdshift.brd</a> (12.28 kiB, 2009-03-31)<br/><hr /></p>
]]></content:encoded>
			<wfw:commentRss>http://andreas.goelzer.de/lcdshift/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>readESM &#8211; Reading Digital Tachograph files</title>
		<link>http://andreas.goelzer.de/readesm-reading-digital-tachograph-files</link>
		<comments>http://andreas.goelzer.de/readesm-reading-digital-tachograph-files#comments</comments>
		<pubDate>Tue, 10 Feb 2009 02:33:51 +0000</pubDate>
		<dc:creator>Andreas Goelzer</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Vehicles]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[tachograph]]></category>
		<category><![CDATA[trucks]]></category>

		<guid isPermaLink="false">http://andreas.goelzer.de/?p=111</guid>
		<description><![CDATA[Update, November 2011: See the post about readesm 2011 and the sourceforge project page for newer descriptions of readesm. Update, March 2011: There is a new release of readesm, The description provided here no longer applies, the new readesm uses &#8230; <a href="http://andreas.goelzer.de/readesm-reading-digital-tachograph-files">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><b>Update, November 2011:</b> <i>See the post about <a href="readesm-2011-with-qt-user-interface">readesm 2011</a> and the <a href="http://sourceforge.net/projects/readesm/files/readesm/">sourceforge project page</a> for newer descriptions of readesm.</i></p>
<p><b>Update, March 2011:</b> <i>There is a new release of readesm,  The description provided here no longer applies, the new readesm uses Qt and cmake.  You can get the new release at the sourceforge <a href="http://sourceforge.net/projects/readesm/files/readesm/">project page</a> and read the documentation <a href="http://readesm.sourceforge.net/help.html">here</a>.</i></p>
<p>For several years now, new trucks sold in the European union are equipped with digital tachographs, that record the driving times and replace the older chart-based mechanical tachographs.</p>
<p>For companies in road transport that means, although in theory they get nice data about their drivers and vehicles, in practice they have to pay a lot of money for the digital tachograph and the associated equipment, which is then used against them &#8211; the old fraud schemes no longer work, the machine cruelly gives every police officer the driving times of the last 28 days (and could give much more).</p>
<p>The usability of the devices I&#8217;m familiar with is also abysmal. It just takes forever to read out the data (9600 baud per default, 115000 baud maximal, but i guess the company&#8217;s software does just the former), and the drivers have to keep track of their times manually &#8211; just not up to par with 2009 technology.</p>
<p>The company also had just a very bad software for analyzing the data recorded by the card and the digital tachograph, so I was asked to write a simple visualization program.</p>
<h3>Compiling</h3>
<p>You can get the program files from this page, or from the <a href="http://sourceforge.net/projects/readesm/">development page</a> at Sourceforge.<br />
Since so far there is no binary distribution for the program, you will have to compile it yourself.<br />
To do that, you need a c++ compiler, parts of the <a href="http://www.boost.org/">boost library</a> (specifically program_options and shared_ptr) and the <a href="http://gmplib.org/">Gnu MP library</a>, wich is used to check the various <a href="http://en.wikipedia.org/wiki/RSA">RSA</a> signatures. Once all those are installed, typing make/make install should work fine. On <a href="http://www.ubuntu.com/">Ubuntu</a> systems, you will need to do something like:</p>
<pre>svn co https://readesm.svn.sourceforge.net/svnroot/readesm readesm
sudo apt-get install libboost-program-options-dev libgmpxx4ldbl  libgmp3-dev
make
sudo make install
</pre>
<p>You can of course also use checkinstall instead of make install, or type make package, which invokes checkinstall.</p>
<h3>Running the program</h3>
<p>In most circumstances, you will run the program from the commandline like this:</p>
<pre>readesm --infile foo.esm --outfile bar.html --format=html</pre>
<p>Alternatively, if no output file is specified, stdout is used. For <a href="http://www.kde.org/">KDE</a> users, i wrote a little wrapper script named readesm-wrap-kde.sh. It will get installed my typing make install</p>
<h3>Security</h3>
<p>It is a really pleasant surprise to see a nice security model in the digital tachographs, considering the rules for the security implementations were made by politicians. Both cards and vehicle units work with 1024-bit RSA keys, and each vehicle unit has its own key, with an certificate signed by the member state, which in turn is signed by an European master key. Data is hashed with SHA-1, subsequently padded and signed by the vehicle unit, and that signature appended to the readouts. The law even states that the companies have to store the data in this signed form, so there is little chance to tamper with the data, once recorded.</p>
<p>Since the most likely attacker &#8211; the evil manager who wants to exploit the drivers &#8211; has physical access to the card and vehicle unit, which contain the private keys, even 1024-bit RSA provides no absolute security. The manager could try a timing attack, or take a really close look at the storage, both times avoiding having to solve the RSA problem.</p>
<p>The connection from tachograph to sensor is also secured, using Triple-DES. The week point here is the sensor &#8211; a successful attack against the sensors some DAF trucks are equipped with is to disturb it using strong permanent magnets, thereby preventing it from recognizing the changing magnetic fields.</p>
<p>All possible attacks against the security system however face the problem of being unveiled by police checkpoints or a cross-correlation of the faked data with data from other sources, for example the toll systems recording every few highway kilometers in Germany.</p>
<p><p><a href='photos/screenshots/readesm/alpha_html_control.png'><img class='photofiles_thumb' src='thumbs/screenshots/readesm/alpha_html_control.png.thumb_small.png' alt='link to photos/screenshots/readesm/alpha_html_control.png' height='100' width='100' title=''/></a> <a href='photos/screenshots/readesm/alpha_html_output.png'><img class='photofiles_thumb' src='thumbs/screenshots/readesm/alpha_html_output.png.thumb_small.png' alt='link to photos/screenshots/readesm/alpha_html_output.png' height='100' width='100' title=''/></a> <a href='photos/screenshots/readesm/card_error.png'><img class='photofiles_thumb' src='thumbs/screenshots/readesm/card_error.png.thumb_small.png' alt='link to photos/screenshots/readesm/card_error.png' height='100' width='100' title=''/></a> <a href='photos/screenshots/readesm/readesm_0.3.2_german_locale.png'><img class='photofiles_thumb' src='thumbs/screenshots/readesm/readesm_0.3.2_german_locale.png.thumb_small.png' alt='link to photos/screenshots/readesm/readesm_0.3.2_german_locale.png' height='100' width='100' title=''/></a> <a href='photos/screenshots/readesm/readesm_0.3.2_windows_xml_2.PNG'><img class='photofiles_thumb' src='thumbs/screenshots/readesm/readesm_0.3.2_windows_xml_2.PNG.thumb_small.png' alt='link to photos/screenshots/readesm/readesm_0.3.2_windows_xml_2.PNG' height='100' width='100' title=''/></a> error, cannot open image photos/screenshots/readesm/2011.11. </p><br />
This is the historical release, described in this post, in case you do not like Qt.  Otherwise, check the <a href="http://sourceforge.net/projects/readesm/files/readesm/">newer versions</a>.<br />
<hr /><a href='http://andreas.goelzer.de/download/readesm.tar.bz2'><img src="http://andreas.goelzer.de/wp-content/plugins/kfile/fileicons/file-compressed.png" width="16" height="16" alt="filetype" class="icon16" /> readesm.tar.bz2</a> (60.86 kiB, 2009-05-19)<br/><hr /></p>
]]></content:encoded>
			<wfw:commentRss>http://andreas.goelzer.de/readesm-reading-digital-tachograph-files/feed</wfw:commentRss>
		<slash:comments>39</slash:comments>
		</item>
		<item>
		<title>Blinking Eva</title>
		<link>http://andreas.goelzer.de/blinking-eva</link>
		<comments>http://andreas.goelzer.de/blinking-eva#comments</comments>
		<pubDate>Sat, 06 Dec 2008 20:47:17 +0000</pubDate>
		<dc:creator>Andreas Goelzer</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[avr]]></category>
		<category><![CDATA[blinky]]></category>

		<guid isPermaLink="false">http://andreas.goelzer.de/?p=83</guid>
		<description><![CDATA[Since it&#8217;s suddenly, out of nowhere, christmas time again, and since christmas is traditionally the time to build blinking somethings, i decided to publish this. Long ago &#8211; well, actually last year &#8211; this as a christmas present for my &#8230; <a href="http://andreas.goelzer.de/blinking-eva">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Since it&#8217;s suddenly, out of nowhere, christmas time again, and since christmas is traditionally the time to build blinking somethings, i decided to publish this. Long ago &#8211; well, actually last year &#8211; this as a christmas present for my girlfriend Eva.</p>
<p>What does it do? Nothing useful. You plug it in, and the various LEDs blink wildly, one letter at a time, two letters at a time, all on, all off.</p>
<p>I&#8217;m not particularly proud of this board. The matrix design is just painful to route on an one-sided PCB, so please don&#8217;t do it, especially if you plan on doing something similar with more than three letters. I&#8217;d like to use something like the <a href=""http://www.austriamicrosystems.com/eng/Products/Lighting-Management/LED-Drivers/AS1110/(oi)/1>AS 1110</a> for something similar, but there are just no distributors for those chips.</p>
<p>Nevertheless, if you know someone named Eva who likes to solder a bit or who just likes blinking things, this might be a nice present.</p>
<p>Things to take care of:</p>
<ul>
<li>Energy source: I used some old wall wart for this. The used 7805 is quite robust, but not very efficient. Use something between around 8 V to 15 V, and check the polarity, which is unfortunately not standardized.</li>
<li>Since the LEDs are driven only 1/4th of the time, you can in theory use higher currents than if driven all the time.</li>
</ul>
<p><p><a href='photos/elektronik/blinking-eva/assembly-diagram.png'><img class='photofiles_thumb' src='thumbs/elektronik/blinking-eva/assembly-diagram.png.thumb_small.png' alt='link to photos/elektronik/blinking-eva/assembly-diagram.png' height='100' width='100' title=''/></a> <a href='photos/elektronik/blinking-eva/rendering.png'><img class='photofiles_thumb' src='thumbs/elektronik/blinking-eva/rendering.png.thumb_small.png' alt='link to photos/elektronik/blinking-eva/rendering.png' height='100' width='100' title=''/></a> <a href='photos/elektronik/blinking-eva/schematic.png'><img class='photofiles_thumb' src='thumbs/elektronik/blinking-eva/schematic.png.thumb_small.png' alt='link to photos/elektronik/blinking-eva/schematic.png' height='100' width='100' title=''/></a> </p><br />
<hr /><a href='http://andreas.goelzer.de/download/blinking-eva/blinking-eva-board.pdf'><img src="http://andreas.goelzer.de/wp-content/plugins/kfile/fileicons/file-pdf.png" width="16" height="16" alt="filetype" class="icon16" /> blinking-eva/blinking-eva-board.pdf</a> (249.03 kiB, 2008-12-06)<br/><a href='http://andreas.goelzer.de/download/blinking-eva/eagle-files.tar.bz2'><img src="http://andreas.goelzer.de/wp-content/plugins/kfile/fileicons/file-compressed.png" width="16" height="16" alt="filetype" class="icon16" /> blinking-eva/eagle-files.tar.bz2</a> (54.42 kiB, 2008-12-06)<br/><a href='http://andreas.goelzer.de/download/blinking-eva/firmware.tar.bz2'><img src="http://andreas.goelzer.de/wp-content/plugins/kfile/fileicons/file-compressed.png" width="16" height="16" alt="filetype" class="icon16" /> blinking-eva/firmware.tar.bz2</a> (3.75 kiB, 2008-12-06)<br/><a href='http://andreas.goelzer.de/download/blinking-eva/manual-german.pdf'><img src="http://andreas.goelzer.de/wp-content/plugins/kfile/fileicons/file-pdf.png" width="16" height="16" alt="filetype" class="icon16" /> blinking-eva/manual-german.pdf</a> (1.28 MiB, 2008-12-06)<br/><hr /></p>
]]></content:encoded>
			<wfw:commentRss>http://andreas.goelzer.de/blinking-eva/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching using disk: basic
Object Caching 694/786 objects using disk: basic

Served from: andreas.goelzer.de @ 2012-02-05 04:14:22 -->
