<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3866380028998964372</id><updated>2011-07-29T07:06:04.457+03:00</updated><category term='hack'/><category term='products'/><category term='photo'/><category term='chumby'/><category term='programming'/><category term='debian'/><category term='design'/><category term='peeve'/><category term='game'/><category term='blog'/><category term='avr'/><category term='t60'/><category term='electronics'/><title type='text'>XTL</title><subtitle type='html'>Random writings, projects and things, in chronological order. Incomplete.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://realblades.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3866380028998964372/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://realblades.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>XTL</name><uri>http://www.blogger.com/profile/00553975945539643579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='11' src='http://bp2.blogger.com/_cvh4U1z5IL0/SJLzyq_ozzI/AAAAAAAABuY/zmA1PxLSmZ4/s1600-R/2721572507_a184465789_b_d.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3866380028998964372.post-1068871061717421422</id><published>2011-06-18T10:36:00.005+03:00</published><updated>2011-06-18T12:02:05.487+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='t60'/><title type='text'>Thinkpad T60 and Debian Wheezy</title><content type='html'>&lt;p&gt;
I recently decided to upgrade my main laptop. This is a bit of notes on the process as I remember it. I've put up a &lt;a href="https://sites.google.com/site/realblades/misc/debian-on-t60"&gt;page about running Debian on the t60&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
After toying around with the hardware and checking BIOS settings, I downloaded the &lt;a href="http://www.debian.org/distrib/"&gt;Debian 6.0.1a netinst.iso for amd64&lt;/a&gt; and burnt it on a small cdrw. I made another one for the latest BIOS update. Installed the BIOS and then installed minimal Debian Squeeze. After first boot, I switched the sources to Wheezy (testing) and upgraded packages in small batches from within &lt;a href="http://packages.debian.org/wheezy/aptsh"&gt;aptsh&lt;/a&gt; (upgrade and install, never dist-upgrade). I removed &lt;a href="http://packages.debian.org/wheezy/aptitude"&gt;aptitude&lt;/a&gt; immediately and installed sudo, &lt;a href="http://packages.debian.org/wheezy/zsh"&gt;zsh&lt;/a&gt;, vim, ssh, sshfs, and other necessaries.
&lt;p&gt;

I installed &lt;a href="http://packages.debian.org/wheezy/memtest86+"&gt;memtest86+&lt;/a&gt; and it appeared in &lt;a href="http://packages.debian.org/wheezy/grub-pc"&gt;GRUB&lt;/a&gt;. I left it running over night and found 100% pass (over 7 hours running) on all tests, no logged errors.
&lt;p&gt;

I run &lt;a href="http://packages.debian.org/wheezy/postfix"&gt;postfix&lt;/a&gt; and &lt;a href="http://packages.debian.org/wheezy/logcheck"&gt;logcheck&lt;/a&gt;, apt-listchanges (show both mode) and apt-listbugs everywhere; &lt;a href="http://packages.debian.org/wheezy/debfoster"&gt;debfoster&lt;/a&gt;, deborphan, debian-goodies, &lt;a href="http://popcon.debian.org/"&gt;popularity-contest&lt;/a&gt;.
&lt;p&gt;

I installed X and &lt;a href="http://awesome.naquadah.org/"&gt;awesome&lt;/a&gt;. I didn't bother with the details. Most things worked. I used my old &lt;a href="http://awesome.naquadah.org/"&gt;awesome&lt;/a&gt;, X resources and other things. ACPI (battery status, temperature) and other meters worked with my old config on the new laptop just as well. Getting X to start with &lt;span style="font-style:italic;"&gt;no configuration at all&lt;/span&gt; required only installing xserver-xorg-video-radeon and xserver-xorg-video-ati (for autodetect).
&lt;p&gt;

I plugged in the printer (Samsung ML-1640), logged into CUPS with a browser and ran Add Printer and it Just Worked. I had installed &lt;a href="http://packages.debian.org/wheezy/splix"&gt;splix&lt;/a&gt; for the drivers earlier. I also installed libreoffice in case I need it.

&lt;p&gt;
I installed &lt;a href="http://packages.debian.org/wheezy/gphotofs"&gt;gphotofs&lt;/a&gt; for easy emptying of cameras; geeqie, gimp, and especially ufraw.

&lt;p&gt;
Installing fprint-demo let me try out the &lt;a href="http://www.thinkwiki.org/wiki/Integrated_Fingerprint_Reader"&gt;fingerprint reader&lt;/a&gt; (Just Works). I installed &lt;a href="http://packages.debian.org/sid/libpam-fprint"&gt;libpam-fprint&lt;/a&gt; (off sid, pinned) and did dpkg-reconfigure libpam-runtime to enable it. It will now ask for a fingerprint first instead of user password when using sudo or logging in (getty or gdm).

&lt;p&gt;
I installed &lt;a href="http://www.winehq.org/"&gt;wine&lt;/a&gt; and tried &lt;a href="http://www.spotify.com/"&gt;spotify&lt;/a&gt; (current version crashes ofetn) and used it to extract (install) the ICC profiles (TPFLX.ICM) from Lenovo. I haven't looked into colour calibration more closely yet.

&lt;p&gt;
I've blacklisted pcspkr, since for some reason loading that makes the system beep incredibly loud. Normal beeps go through the mixer now. The mixer is clean and all channels seem to work (haven't tried recording or SPDIF). Correct chipset variation was autodetected, unlike on an Amilo.

&lt;p&gt;
I installed &lt;a href="http://packages.debian.org/wheezy/qemu-kvm"&gt;qemu-kvm&lt;/a&gt;, created a logical volume, and installed the OEM licensed windows XP in it. The mouse seems to get extra accelerated while in the qemu window. The system works quite nicely and installing didn't require any trickery. I intend to see if I can run some difficult software on it (such as Dynamic C).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3866380028998964372-1068871061717421422?l=realblades.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://realblades.blogspot.com/feeds/1068871061717421422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3866380028998964372&amp;postID=1068871061717421422' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3866380028998964372/posts/default/1068871061717421422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3866380028998964372/posts/default/1068871061717421422'/><link rel='alternate' type='text/html' href='http://realblades.blogspot.com/2011/06/thinkpad-t60-and-debian-wheezy.html' title='Thinkpad T60 and Debian Wheezy'/><author><name>XTL</name><uri>http://www.blogger.com/profile/00553975945539643579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='11' src='http://bp2.blogger.com/_cvh4U1z5IL0/SJLzyq_ozzI/AAAAAAAABuY/zmA1PxLSmZ4/s1600-R/2721572507_a184465789_b_d.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3866380028998964372.post-8751056524591286427</id><published>2011-04-06T12:46:00.005+03:00</published><updated>2011-04-12T01:11:54.926+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='chumby'/><title type='text'>Chumby gets a new card</title><content type='html'>Bought an 8GB Sandisk C4 MicroSDHC card to use with the chumby.

&lt;pre&gt;
[261960.474288] sd 6:0:0:1: [sdc] 3854336 512-byte logical blocks: (1.97 GB/1.83 GiB)
[261960.487488]  sdc: sdc1 sdc2 sdc3 sdc4 &lt; sdc5 sdc6 &gt;

iofiel% fdisk -l /dev/sdc

Disk /dev/sdc: 1973 MB, 1973420032 bytes
5 heads, 4 sectors/track, 192716 cylinders
Units = cylinders of 20 * 512 = 10240 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1       14670      146697+  53  OnTrack DM6 Aux3
/dev/sdc2            1563       14063      125000+  83  Linux
/dev/sdc3           14063       26563      125000+  83  Linux
/dev/sdc4           26563      192308     1657444    5  Extended
/dev/sdc5           26564       39063      124998+  83  Linux
/dev/sdc6           39064      192308     1532441+  83  Linux

iofiel% dd if=/dev/sdc of=chumby2G.img
3854336+0 records in
3854336+0 records out
1973420032 bytes (2.0 GB) copied, 119.449 s, 16.5 MB/s
iofiel% eject sdc
&lt;/pre&gt;

And the new card...

&lt;pre&gt;
[262427.694384] sd 7:0:0:1: [sdc] 15523840 512-byte logical blocks: (7.94 GB/7.40 GiB)
iofiel% dd if=chumby2G.img of=/dev/sdc
3854336+0 records in
3854336+0 records out
1973420032 bytes (2.0 GB) copied, 1041.09 s, 1.9 MB/s
You have new mail.                                                                                                  
iofiel% sync
iofiel% eject sdc
&lt;/pre&gt;

Plug back in...

&lt;pre&gt;
[263569.155489]  sdc: sdc1 sdc2 sdc3 sdc4 &lt; sdc5 sdc6 &gt;

iofiel% sudo fdisk /dev/sdc       

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): p

Disk /dev/sdc: 7948 MB, 7948206080 bytes
5 heads, 4 sectors/track, 776192 cylinders
Units = cylinders of 20 * 512 = 10240 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1       14670      146697+  53  OnTrack DM6 Aux3
/dev/sdc2            1563       14063      125000+  83  Linux
/dev/sdc3           14063       26563      125000+  83  Linux
/dev/sdc4           26563      192308     1657444    5  Extended
/dev/sdc5           26564       39063      124998+  83  Linux
/dev/sdc6           39064      192308     1532441+  83  Linux

Command (m for help): v
Warning: partition 1 overlaps partition 2.
Warning: partition 1 overlaps partition 3.
Remaining 11677702 unallocated 512-byte sectors

Command (m for help): d
Partition number (1-6): 4

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
e
Selected partition 4
First cylinder (26563-776192, default 26563): 
Using default value 26563
Last cylinder, +cylinders or +size{K,M,G} (26563-776192, default 776192): 
Using default value 776192

Command (m for help): n
First cylinder (26564-776192, default 26564): 
Using default value 26564
Last cylinder, +cylinders or +size{K,M,G} (26564-776192, default 776192): 39063

Command (m for help): n
First cylinder (39064-776192, default 39064): 
Using default value 39064
Last cylinder, +cylinders or +size{K,M,G} (39064-776192, default 776192): 
Using default value 776192

Command (m for help): v
Warning: partition 1 overlaps partition 2.
Warning: partition 1 overlaps partition 3.
Remaining 7 unallocated 512-byte sectors

Command (m for help): p

Disk /dev/sdc: 7948 MB, 7948206080 bytes
5 heads, 4 sectors/track, 776192 cylinders
Units = cylinders of 20 * 512 = 10240 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1       14670      146697+  53  OnTrack DM6 Aux3
/dev/sdc2            1563       14063      125000+  83  Linux
/dev/sdc3           14063       26563      125000+  83  Linux
/dev/sdc4           26563      776192     7496291+   5  Extended
/dev/sdc5           26564       39063      124999+  83  Linux
/dev/sdc6           39064      776192     7371288   83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.


iofiel% resize2fs /dev/sdc6 
resize2fs 1.41.12 (17-May-2010)
resize2fs: Bad magic number in super-block while trying to open /dev/sdc6
Couldn't find valid filesystem superblock.

&lt;/pre&gt;

Ok, not quite as planned. Parted also can't seem to cope with the funky overlapping first partition. So I'm trying fdisk. I have a dump of /mnt/storage, so I made a new ext3fs and restored the files.

Reassemble partly, power up and hold breath...

&lt;pre&gt;
chumby:~# dmesg -c
gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72) ) #1 PREEMPT Tue Mar 2 16:09:35 PST 2010
[    0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] Machine: STMP378X
...
[    1.530000] Waiting for root device /dev/mmcblk0p2...
[    1.580000] mmc0: new SDHC card at address e624
[    1.590000] mmcblk0: mmc0:e624 SU08G 3.40 GiB 
[    1.590000]  mmcblk0: p1 p2 p3 p4 &lt; p5 p6 &gt;
...

chumby:~# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/mmcblk0p2          118.2M     97.1M     15.0M  87% /
tmpfs                    29.3M    640.0k     28.7M   2% /tmp
none                     32.0M     60.0k     31.9M   0% /var
none                     32.0M         0     32.0M   0% /mnt
/dev/mmcblk0p5          122.0M      4.1M    111.8M   4% /psp
/dev/mmcblk0p6            6.9G    247.8M      6.3G   4% /mnt/storage
none                     32.0M     44.0k     32.0M   0% /dev
&lt;/pre&gt;

Ok, now I should have a new card to play with, a backup image, and the old card to boot in case of bricking incidents.

&lt;p&gt;
Edit: &lt;a href="http://www.ladyada.net/learn/chumby/microsd.html"&gt;It might be safe to fix the partition table&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3866380028998964372-8751056524591286427?l=realblades.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://realblades.blogspot.com/feeds/8751056524591286427/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3866380028998964372&amp;postID=8751056524591286427' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3866380028998964372/posts/default/8751056524591286427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3866380028998964372/posts/default/8751056524591286427'/><link rel='alternate' type='text/html' href='http://realblades.blogspot.com/2011/04/chumby-gets-new-card.html' title='Chumby gets a new card'/><author><name>XTL</name><uri>http://www.blogger.com/profile/00553975945539643579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='11' src='http://bp2.blogger.com/_cvh4U1z5IL0/SJLzyq_ozzI/AAAAAAAABuY/zmA1PxLSmZ4/s1600-R/2721572507_a184465789_b_d.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3866380028998964372.post-1501996918625693106</id><published>2011-04-02T16:53:00.004+03:00</published><updated>2011-04-06T13:58:38.633+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='chumby'/><title type='text'>Building some Chumby software</title><content type='html'>Some time ago I bought a Chumby One with a cracked screen (and practically dead touchscreen) to play with.
&lt;a href="http://www.flickr.com/photos/xtl/5424701883/" title="Cracked chumby by realblades, on Flickr"&gt;&lt;img src="http://farm6.static.flickr.com/5013/5424701883_6ea6243b84.jpg" width="500" height="331" alt="Cracked chumby" /&gt;&lt;/a&gt;
I can't run any of the normal Flash/Chumby stuff on it because of the screen, but it is still a functional little ARM box with a small screen, speaker, rotary controller, 802.11, USB, button etc.

&lt;div&gt;Sometime back, I &lt;a href="http://wiki.chumby.com/index.php/Scratchbox"&gt;installed the required scratchbox&lt;/a&gt;, unbroke wine (SBOX_CONF_BIN_W32=0 in scratchbox-configuration) and built some stuff. Today, I finally got around to &lt;a href="http://identi.ca/notice/70255671"&gt;trying things out on the device. &lt;/a&gt;
&lt;/div&gt;

&lt;div&gt;I also took the opportunity &lt;a href="http://identi.ca/notice/70256737"&gt;to have a closer look&lt;/a&gt; at &lt;a href="https://www.mirbsd.org/mksh.htm"&gt;mksh&lt;/a&gt;.&lt;/div&gt;

&lt;div&gt;I'll try to write down some &lt;a href="https://sites.google.com/site/realblades/code/chumby"&gt;instructions and programs for the Chumby&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3866380028998964372-1501996918625693106?l=realblades.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://realblades.blogspot.com/feeds/1501996918625693106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3866380028998964372&amp;postID=1501996918625693106' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3866380028998964372/posts/default/1501996918625693106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3866380028998964372/posts/default/1501996918625693106'/><link rel='alternate' type='text/html' href='http://realblades.blogspot.com/2011/04/building-some-chumby-software.html' title='Building some Chumby software'/><author><name>XTL</name><uri>http://www.blogger.com/profile/00553975945539643579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='11' src='http://bp2.blogger.com/_cvh4U1z5IL0/SJLzyq_ozzI/AAAAAAAABuY/zmA1PxLSmZ4/s1600-R/2721572507_a184465789_b_d.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm6.static.flickr.com/5013/5424701883_6ea6243b84_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3866380028998964372.post-5114973512404001222</id><published>2010-10-14T14:05:00.006+03:00</published><updated>2010-11-30T14:54:09.888+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='avr'/><category scheme='http://www.blogger.com/atom/ns#' term='hack'/><title type='text'>AVR universal displays</title><content type='html'>A random project idea for the record: Universal displays.
&lt;p&gt;
I thought I should take a controller and attach &lt;a href="http://www.flickr.com/photos/xtl/4114641415/"&gt;a moving coil meter&lt;/a&gt; to its PWM output that will show anything given to it (by UART probably, or I2C) as a value. A few other things would be easy to add even if I start with something like a tiny AVR or msp430.
&lt;/p&gt;&lt;p&gt;
Another similar thing would be a &lt;a href="http://www.flickr.com/photos/xtl/4663648655/in/set-72157607724948202/"&gt;7-segment LED&lt;/a&gt; (and/or LCD) display with a &lt;a href="http://www.flickr.com/photos/xtl/tags/attiny2313/"&gt;tiny2313&lt;/a&gt; or such.
&lt;/p&gt;&lt;p&gt;
Just a few general purpose modules instead of a complete self-contained device.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3866380028998964372-5114973512404001222?l=realblades.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://realblades.blogspot.com/feeds/5114973512404001222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3866380028998964372&amp;postID=5114973512404001222' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3866380028998964372/posts/default/5114973512404001222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3866380028998964372/posts/default/5114973512404001222'/><link rel='alternate' type='text/html' href='http://realblades.blogspot.com/2010/10/avr-universal-displays.html' title='AVR universal displays'/><author><name>XTL</name><uri>http://www.blogger.com/profile/00553975945539643579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='11' src='http://bp2.blogger.com/_cvh4U1z5IL0/SJLzyq_ozzI/AAAAAAAABuY/zmA1PxLSmZ4/s1600-R/2721572507_a184465789_b_d.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3866380028998964372.post-3994257769403760891</id><published>2009-12-02T11:00:00.004+02:00</published><updated>2009-12-02T15:48:09.396+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='avr'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Bringing up the UART</title><content type='html'>I spent a moment with the mega8515 again. This time I'm using a &lt;a href="http://www.flickr.com/photos/xtl/4134499408/"&gt;small dev board &lt;/a&gt;I made. It contains a &lt;a href="http://www.flickr.com/photos/xtl/4135140275/"&gt;level shifter&lt;/a&gt; and a ready header you can plug an old PC serial port to.

I read a bit on &lt;a href="http://www.gnu.org/savannah-checkouts/non-gnu/avr-libc/user-manual/group__avr__stdio.html"&gt;how avr-libc does stdio&lt;/a&gt; and with a few lines, the &lt;a href="http://realblades.blogspot.com/2009/10/atmega8515-cylon-light.html"&gt;cylon light&lt;/a&gt; now prints out the state in the main loop. You could easily compare the state to a previous one or some flag and just print the value when it changes but the point was mostly just to get some text out. Another exercise might be to use backspacing to make a character dance on the terminal like the LED does on the board.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_cvh4U1z5IL0/SxYtxMkBPyI/AAAAAAAAH0U/IhHOecFxHMg/s1600-h/2009-12-02_105753.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 181px;" src="http://2.bp.blogspot.com/_cvh4U1z5IL0/SxYtxMkBPyI/AAAAAAAAH0U/IhHOecFxHMg/s320/2009-12-02_105753.jpg" alt="" id="BLOGGER_PHOTO_ID_5410562325541371682" border="0" /&gt;&lt;/a&gt;
My current goal is some minimal command line I can use to fiddle with the system without having to constantly do the write-compile-flash-test loop. It goes something like this:

&lt;code&gt;&lt;/code&gt;&lt;pre&gt;
   printf_P(PSTR("Command prompt test\n"));
   printf_P(PSTR("p x: print x"));
   printf_P(PSTR("l:   show state of port A"));
   while(1) {
       printf_P(PSTR("cmd&gt; ")); // prompt

       if (fgets(buf, sizeof buf - 1, stdin) == NULL) // ^C, maybe EOF
           break;
       if (tolower(buf[0]) == 'q') // q)uit
           break;

       switch (tolower(buf[0])) {
           default:
               printf("Unknown command: %s\n", buf);
               break;

           case 'p':
               if (sscanf(buf, "%*s %s", s) &gt; 0)
                   printf("Got %s\n", s);
               else
                   printf("scanf failed\n");
               break;

           case 'l':
               printf("Porta: 0x%02X\n", (uint8_t) ~PORTA);
               break;
       }
   }
   printf("Bye!\n");
&lt;/pre&gt;&lt;p&gt;
It's kind of neat how the familiar Unixy string stuff is largely there.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3866380028998964372-3994257769403760891?l=realblades.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://realblades.blogspot.com/feeds/3994257769403760891/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3866380028998964372&amp;postID=3994257769403760891' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3866380028998964372/posts/default/3994257769403760891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3866380028998964372/posts/default/3994257769403760891'/><link rel='alternate' type='text/html' href='http://realblades.blogspot.com/2009/12/bringing-up-uart.html' title='Bringing up the UART'/><author><name>XTL</name><uri>http://www.blogger.com/profile/00553975945539643579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='11' src='http://bp2.blogger.com/_cvh4U1z5IL0/SJLzyq_ozzI/AAAAAAAABuY/zmA1PxLSmZ4/s1600-R/2721572507_a184465789_b_d.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_cvh4U1z5IL0/SxYtxMkBPyI/AAAAAAAAH0U/IhHOecFxHMg/s72-c/2009-12-02_105753.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3866380028998964372.post-8133022662949174487</id><published>2009-11-05T15:40:00.007+02:00</published><updated>2009-12-02T16:37:34.768+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='photo'/><category scheme='http://www.blogger.com/atom/ns#' term='electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='products'/><title type='text'>A+, would buy again!</title><content type='html'>&lt;span style="font-style: italic;"&gt;I thought I'd sign praises for some products I've come across. Off the top of my head in no particular order.&lt;/span&gt;
&lt;p&gt;
&lt;span style="font-weight: bold;"&gt;Nikkormat FTn&lt;/span&gt;
&lt;/p&gt;&lt;p&gt;
&lt;a href="http://www.flickr.com/photos/xtl/3007770735/" title="Nikkormat FTn body by realblades, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3066/3007770735_6c14ca225f_t.jpg" width="100" height="66" alt="Nikkormat FTn body" /&gt;&lt;/a&gt;
The term "built like a tank" pretty much qualifies. Match needle metering is very nice. The shutter speed ring can be a bit odd. 625 battery is certainly a downside, but it appears to work quite well with just an LR-44 dropped in.
&lt;/p&gt;&lt;p&gt;
Today: If you can afford it and want all-manual film, this is an excellent option.
&lt;/p&gt;&lt;p&gt;
&lt;span style="font-weight: bold;"&gt;Nikon D40&lt;/span&gt;
&lt;/p&gt;&lt;p&gt;
&lt;a href="http://www.flickr.com/photos/xtl/2580365883/" title="Carenar mounted by realblades, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3091/2580365883_6aba70d8ca_t.jpg" width="100" height="71" alt="Carenar mounted" /&gt;&lt;/a&gt;
It was the cheapest (D)SLR body in the market at the time. It's turned out to be a real jewel. Conservative design cut down. Small and light but comfortable to use. Well thought-out and fast operation, most options at your fingertips. Comfortable size screen. Last model made with this sensor, so quite likely the best model made with this sensor. Many seem to think this outclasses many "pro" bodies that are cumbersome and bulky and the extra features aren't worth the huge price leap. That probably depends on the features you need. Fast 1/500 top flash sync speed. Fits almost every F-mount lens ever made (including pre-AI!) plus anyhing else you can safely attach of course. Doesn't do D-TTL (does i-TTL), screw drive AF (does AF-S), or AI metering (does electronic metering). Sadly not stop-down metering either.
&lt;/p&gt;&lt;p&gt;
Today: Still as good as ever. Discontinued but you can still find some and they'll be very affordable because it's seen as an old low-end camera. 6mp is sufficient for me. Easy to carry but not a pocket camera. Depends on your use. No dynamic range trickery, auto bracketing or LCD viewfinder. Perfect mate for any 50/1.8 Nikkor or 100/2.8 Series E!
&lt;/p&gt;&lt;p&gt;
&lt;span style="font-weight: bold;"&gt;Vintage Micro-Nikkor 55/2.8 AI-S&lt;/span&gt;
&lt;/p&gt;&lt;p&gt;
I paid a fair bit for this and whatever it was, it wasn't enough. This is a dream. All micro-Nikkors are spectacular and 55mm is a very general purpose one. Reliable manual action, f/2.8, very very long throw focus ring. Good working distance. Scary sharp. Absolute dream lens for closeups.
&lt;/p&gt;&lt;p&gt;
Today: As good as it ever was, unless yours has been damaged by oil migration, physical trauma or excessive use. And even still it probably works and may be repairable. Today, old models (and there are only old models, the new ones are a different splendid animl) can occasionally be found for very reasonable price. You can't have mine.
&lt;/p&gt;&lt;p&gt;
&lt;span style="font-weight: bold;"&gt;Nikon SB-20 Speedlight flash&lt;/span&gt;
&lt;/p&gt;&lt;p&gt;
&lt;a href="http://www.flickr.com/photos/xtl/2738601157/" title="Progress with flashes by realblades, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3189/2738601157_aeaa1ae92f_t.jpg" width="100" height="67" alt="Progress with flashes" /&gt;&lt;/a&gt;
Funky old-ish unit. Auto flash in several steps (set ISO and aperture). Manual flash in several powers. PC sync connector. Pretty good power. Vertical bounce angle with odd rotary head, three fresnel patterns. Probably does D-TTL too, I don't know. Bulletproof exposure for many ranges and subjects.
&lt;/p&gt;&lt;p&gt;
Today: A real winner for off-camera and other manual use along with SB-28 and some Vivitars. Handy bounceable flash. A bit bulky perhaps. Seems reliable. Low trigger voltage of course. Subtitute another good flash and you still get a lot.
&lt;/p&gt;&lt;p&gt;
&lt;span style="font-weight: bold;"&gt;Asus P2B motherboard&lt;/span&gt;
&lt;/p&gt;&lt;p&gt;
ECC ram, Piii with a little overkill cooling. Quite possibly the most stable "beige" PC ever. Affordable x86-ricer cpu power in its day.
&lt;/p&gt;&lt;p&gt;
Today: Quite obsolete. Pci isn't compatbile with everything, little underpowered and slot1 has no upgrade path. USB1.1, UDMA33.. And it's still just a pc.
&lt;/p&gt;&lt;p&gt;
&lt;span style="font-weight: bold;"&gt;Biltema bit-box&lt;/span&gt;
&lt;/p&gt;&lt;p&gt;
Small belt-clipped plastic box with screwdriver bits and an extender. Size of a matchbox or so and attaches together as a handy screwdriver. Saved me a lot of trouble as a sysadmin and I still take it along occasionally. You can switch some of the bits for strange ones if you need them. I have a hex bit for furniture and a torx that fit certain compaq parts. It was cheap, too, IIRC.
&lt;/p&gt;&lt;p&gt;
Today: Still working perfectly though it's probably easy to damage the plastics with excessive force. You can probably find various models and variations of this. They're a good idea. Swiss rmy knives and multitools aren't. They just don't work.
&lt;/p&gt;&lt;p&gt;
&lt;span style="font-weight: bold;"&gt;Miltec civilian version of a bundeswehr shoulder bag&lt;/span&gt;
&lt;/p&gt;&lt;p&gt;
Black, square, has no clips or obnoxious bits. The shoulder strap ring has a tendency to turn sideways if loaded. I've added pockets for a cellphone and pen case. Inconspicuous and practical.
&lt;/p&gt;&lt;p&gt;
Today: Better than new with the pocket hack. Carries books, Ti-86, bags, clothes, tools, smaller laptops, cameras and whatnot.
&lt;/p&gt;&lt;p&gt;
&lt;span style="font-weight: bold;"&gt;Frost's #121 knife (puukko)&lt;/span&gt;
&lt;/p&gt;&lt;p&gt;
&lt;a href="http://www.flickr.com/photos/xtl/524699960/" title="Puukko by realblades, on Flickr"&gt;&lt;img src="http://farm1.static.flickr.com/247/524699960_4335773973_t.jpg" width="100" height="71" alt="Puukko" /&gt;&lt;/a&gt;
From the "perfection is achieved when there's nothing more to remove" school of design. Sure grip, good sized blade for woodwork. Very accurate to work with. When sharpened properly, very sharp and still durable. Sheath is the swedish utilitarian plastic type. I've made a new one for fun.
&lt;/p&gt;&lt;p&gt;
Today: As good as ever and best I've met.
&lt;/p&gt;&lt;p&gt;
&lt;span style="font-weight: bold;"&gt;Kenwood Trio oscilloscope&lt;/span&gt;
&lt;/p&gt;&lt;p&gt;
&lt;a href="http://www.flickr.com/photos/xtl/1905557889/" title="Oscilloscope by realblades, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2202/1905557889_ef38d1a5ba_t.jpg" width="100" height="80" alt="Oscilloscope" /&gt;&lt;/a&gt;
Well, any old (or new, but older ones are affordable) scope in good repair. Doesn't have flashy features and sometimes you miss storage or image capture, but that's the way it is. Takes some space, too. I've wanted one since the 80's and I wish I would have gotten one earlier. Full repair manual available from BAMA or some other source for some models.
&lt;/p&gt;&lt;p&gt;
Today: Still works perfectly. Lets you do a lot of basic measurements and observations.
&lt;/p&gt;&lt;p&gt;
&lt;span style="font-style: italic;"&gt;I'll see if I can come up with more and add some links later.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3866380028998964372-8133022662949174487?l=realblades.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://realblades.blogspot.com/feeds/8133022662949174487/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3866380028998964372&amp;postID=8133022662949174487' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3866380028998964372/posts/default/8133022662949174487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3866380028998964372/posts/default/8133022662949174487'/><link rel='alternate' type='text/html' href='http://realblades.blogspot.com/2009/11/would-buy-again.html' title='A+, would buy again!'/><author><name>XTL</name><uri>http://www.blogger.com/profile/00553975945539643579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='11' src='http://bp2.blogger.com/_cvh4U1z5IL0/SJLzyq_ozzI/AAAAAAAABuY/zmA1PxLSmZ4/s1600-R/2721572507_a184465789_b_d.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3066/3007770735_6c14ca225f_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3866380028998964372.post-1495680163180866777</id><published>2009-10-31T22:00:00.008+02:00</published><updated>2009-10-31T22:27:39.643+02:00</updated><title type='text'>An experiment in toner transfer</title><content type='html'>&lt;p&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_cvh4U1z5IL0/SuyYgriV7wI/AAAAAAAAHig/YNTXIg7dfAA/s1600-h/DSC_9851.NEF.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 212px;" src="http://2.bp.blogspot.com/_cvh4U1z5IL0/SuyYgriV7wI/AAAAAAAAHig/YNTXIg7dfAA/s320/DSC_9851.NEF.jpg" alt="" id="BLOGGER_PHOTO_ID_5398857740520386306" border="0" /&gt;&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;
Just Because, I decided to walk through the toner transfer process with my current things at hand. The biggest variable, that I was hoping to be the only one, was the paper. I started with the plain copy paper that I use for printing.&lt;/p&gt;
&lt;p&gt;
I drew up a small breakout board. SOIC-8 to be exact, quite useless. The results looked good on paper so I cleaned a piece of very thin two-sided board I have a big sheet of and ironed the design on until it shows through. In hindsight, the taping needs more thought because the glue gets around and masks a part of the backside of the board with a sticky mess.&lt;/p&gt;
&lt;p&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_cvh4U1z5IL0/SuyY8okzWbI/AAAAAAAAHio/vQMTph5VUck/s1600-h/DSC_9854.NEF.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 257px;" src="http://4.bp.blogspot.com/_cvh4U1z5IL0/SuyY8okzWbI/AAAAAAAAHio/vQMTph5VUck/s320/DSC_9854.NEF.jpg" alt="" id="BLOGGER_PHOTO_ID_5398858220761733554" border="0" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
I decided to solder on a chip I took out of something while trying out a small butane torch. SMD desoldering works out pretty nicely with that. Destroying the board may or may not happen with through-hole components, though.
&lt;/p&gt;After some inspection I decided pins 1-2 were shorted because of ragged copper, maybe under-etching, and a solder bridge that I can't get out without clearing the whole board. Funnily enough that's the output and negative in on LF353, so I have half of it permanently wired as a buffer.
&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;
&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 256px;" src="http://4.bp.blogspot.com/_cvh4U1z5IL0/SuyZazrqO2I/AAAAAAAAHiw/mYppqV2MAZ0/s320/DSC_9862.NEF.jpg" alt="" id="BLOGGER_PHOTO_ID_5398858739139361634" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
Not a total loss, so I decided to try it out. I put -+ voltages on the chip, attached the scope to the outputs, wired both sides as voltage followers and fed some kHz sine in.
&lt;/p&gt;&lt;p&gt;
The result: it works. I took out the feedback on the left and the sine remained. There must be a short. Disconnecting the right side had (un)predictable results, so that probably works fine.

&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_cvh4U1z5IL0/SuyZ7YF59KI/AAAAAAAAHi4/DVnU4k-IsPI/s1600-h/DSC_9870.NEF.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 256px;" src="http://1.bp.blogspot.com/_cvh4U1z5IL0/SuyZ7YF59KI/AAAAAAAAHi4/DVnU4k-IsPI/s320/DSC_9870.NEF.jpg" alt="" id="BLOGGER_PHOTO_ID_5398859298668934306" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
On a whim, I also fiddled with the supplies a bit. The positive clips normally as does the negative until you get to a certain point where JFET opamps do something funny: The negative clipping comes out as positive max.&lt;/p&gt;&lt;p&gt;So, I'm going to need to find some other type of paper and try not to get anything on the backside. Or use single sided board instead. And it wasn't a complete waste, I have a spare extra wide DIL package LF353 dual opamp now. :)
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3866380028998964372-1495680163180866777?l=realblades.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://realblades.blogspot.com/feeds/1495680163180866777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3866380028998964372&amp;postID=1495680163180866777' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3866380028998964372/posts/default/1495680163180866777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3866380028998964372/posts/default/1495680163180866777'/><link rel='alternate' type='text/html' href='http://realblades.blogspot.com/2009/10/experiment-in-toner-transfer.html' title='An experiment in toner transfer'/><author><name>XTL</name><uri>http://www.blogger.com/profile/00553975945539643579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='11' src='http://bp2.blogger.com/_cvh4U1z5IL0/SJLzyq_ozzI/AAAAAAAABuY/zmA1PxLSmZ4/s1600-R/2721572507_a184465789_b_d.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_cvh4U1z5IL0/SuyYgriV7wI/AAAAAAAAHig/YNTXIg7dfAA/s72-c/DSC_9851.NEF.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3866380028998964372.post-815706615244445131</id><published>2009-10-31T21:24:00.006+02:00</published><updated>2009-10-31T21:43:11.664+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='avr'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title type='text'>Atmega8515 cylon light</title><content type='html'>&lt;p&gt;
&lt;/p&gt;&lt;div style="float: left; margin-right: 10px; margin-bottom: 10px;"&gt;&lt;a href="http://www.flickr.com/photos/xtl/4058540886/" title="Flashing by realblades, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2650/4058540886_0f05c6da21.jpg" alt="Flashing" height="332" width="500" /&gt;&lt;/a&gt;&lt;/div&gt;I finally started trying out the &lt;a href="http://www.atmel.com/dyn/products/product_card.asp?part_id=2006"&gt;ATMEGA8515&lt;/a&gt; chips I got for a very reasonable price (at least by .fi standards). It's been a typical bit by bit process bootstrapping s development system. I've eventually ended up with a bsd style programming cable, a series resistor module, PSU, breadboard, MCU and wires. The pile of interesting stuff just waiting for me to have some working controllers to poke them with has been growing steadily in the background.
&lt;p&gt;
&lt;/p&gt;&lt;div style="float: left; margin-right: 10px; margin-bottom: 10px;"&gt;
&lt;a href="http://www.flickr.com/photos/xtl/4058541432/" title="Flashing (the dark side) by realblades, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2515/4058541432_3c39f91e32.jpg" alt="Flashing (the dark side)" height="293" width="500" /&gt;&lt;/a&gt;&lt;/div&gt;Software side is trivial, since Debian has the kit available and integrated. It also happens to run on a computer that has a real parallel port, so it's a handy choice. I'm somewhat familiar with AVR style C and I like parts of it and parts I don't. AVR's interrupts and the gcc/libc api for them are still one feature I'm pretty hazy on.&lt;/p&gt;
&lt;p&gt;&lt;div style="float: left; margin-right: 10px; margin-bottom: 10px;"&gt;
&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-b26fb70d116304f5" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;
&lt;param name="bgcolor" value="#FFFFFF"&gt;
&lt;param name="allowfullscreen" value="true"&gt;
&lt;param name="flashvars" value="flvurl=http://v22.nonxt7.googlevideo.com/videoplayback?id%3Db26fb70d116304f5%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330054237%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D25CDB5DE868BB094AA7E97181B6796BD5D166B10.7FE5BE463EAB97C4617C2281F51B6C6C6E25DF4%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Db26fb70d116304f5%26offsetms%3D5000%26itag%3Dw160%26sigh%3Dm0ffYIWeg9pIMAFJsKdefK4bDLU&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;
&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"
width="320" height="266" bgcolor="#FFFFFF"
flashvars="flvurl=http://v22.nonxt7.googlevideo.com/videoplayback?id%3Db26fb70d116304f5%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330054237%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D25CDB5DE868BB094AA7E97181B6796BD5D166B10.7FE5BE463EAB97C4617C2281F51B6C6C6E25DF4%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Db26fb70d116304f5%26offsetms%3D5000%26itag%3Dw160%26sigh%3Dm0ffYIWeg9pIMAFJsKdefK4bDLU&amp;autoplay=0&amp;ps=blogger"
allowFullScreen="true" /&gt;&lt;/object&gt;

&lt;/div&gt;I finally ran into a &lt;a href="http://www.avrfreaks.net/index.php?name=PNphpBB2&amp;amp;file=viewtopic&amp;amp;t=50106&amp;amp;sid=a55f2fac386fe3a1508d99a39e2f4b6b"&gt;nice tutorial&lt;/a&gt; on the timer system. It won't go through everything but that's what datasheets are for. Instead, it walks through creating various blinkers in different ways using delays and timers. In the end I had &lt;a href="http://www.students.oamk.fi/%7Et6haha00/mega8515test/main.c"&gt;a running cylon light using a timer&lt;/a&gt; interrupt and an ISR that counts up and down plus an endless loop that writes the result to a GPIO port, lighting one LED at a time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3866380028998964372-815706615244445131?l=realblades.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://realblades.blogspot.com/feeds/815706615244445131/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3866380028998964372&amp;postID=815706615244445131' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3866380028998964372/posts/default/815706615244445131'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3866380028998964372/posts/default/815706615244445131'/><link rel='alternate' type='text/html' href='http://realblades.blogspot.com/2009/10/atmega8515-cylon-light.html' title='Atmega8515 cylon light'/><author><name>XTL</name><uri>http://www.blogger.com/profile/00553975945539643579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='11' src='http://bp2.blogger.com/_cvh4U1z5IL0/SJLzyq_ozzI/AAAAAAAABuY/zmA1PxLSmZ4/s1600-R/2721572507_a184465789_b_d.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm3.static.flickr.com/2650/4058540886_0f05c6da21_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3866380028998964372.post-7183998281817079182</id><published>2009-05-21T22:03:00.002+03:00</published><updated>2009-05-21T22:05:00.432+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='game'/><title type='text'>Guitar Hero</title><content type='html'>If I'd made Guitar Hero, I'd probably added some instrumentation. A way to check a replay and see exactly why some part isn't working out. What's early or late and what's expected. Without that it's all guesswork.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3866380028998964372-7183998281817079182?l=realblades.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://realblades.blogspot.com/feeds/7183998281817079182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3866380028998964372&amp;postID=7183998281817079182' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3866380028998964372/posts/default/7183998281817079182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3866380028998964372/posts/default/7183998281817079182'/><link rel='alternate' type='text/html' href='http://realblades.blogspot.com/2009/05/guitar-hero.html' title='Guitar Hero'/><author><name>XTL</name><uri>http://www.blogger.com/profile/00553975945539643579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='11' src='http://bp2.blogger.com/_cvh4U1z5IL0/SJLzyq_ozzI/AAAAAAAABuY/zmA1PxLSmZ4/s1600-R/2721572507_a184465789_b_d.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3866380028998964372.post-4023862065400840847</id><published>2008-04-28T08:49:00.002+03:00</published><updated>2008-04-28T08:51:49.380+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><title type='text'>Gootee Curve Tracer</title><content type='html'>&lt;a href="http://www.fullnet.com/%7Etomg/gooteect.htm"&gt;Gootee Transistor Curve Tracer and Electronic Component and Device Tester/Checker/Troubleshooter/Analyzer.&lt;/a&gt;
&lt;p&gt;
That is such a beautiful thing.
&lt;p&gt;
&lt;cite&gt;Includes complete, detailed assembly diagrams.
Includes complete set of detailed board and component-layout diagrams and complete set of detailed wiring diagrams.
Includes complete set of detailed, step-by-step assembly instructions (with Kit version).
Includes complete set of circuit schematics, plus overall block diagram.
Includes complete Adjustment and Alignment procedures.
Includes certain internal test-points' DC voltages, resistances, and waveforms.
Includes complete parts list (many parts have list of suppliers, part numbers, and pricing).
Parts lists now include circuit-board grid-location data for every component.
Now also includes a CD with PDF datasheets for many of the components and parts.&lt;/cite&gt;
&lt;p&gt;
I wish more devices today did. The price has at least one digit too much putting it out of my reach and it is much finer than I'd need for personal use but I really have to admire that. If I was in the market for $500-1500 piece of lab equipment, this would rank very high on my list.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3866380028998964372-4023862065400840847?l=realblades.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://realblades.blogspot.com/feeds/4023862065400840847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3866380028998964372&amp;postID=4023862065400840847' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3866380028998964372/posts/default/4023862065400840847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3866380028998964372/posts/default/4023862065400840847'/><link rel='alternate' type='text/html' href='http://realblades.blogspot.com/2008/04/gootee-curve-tracer.html' title='Gootee Curve Tracer'/><author><name>XTL</name><uri>http://www.blogger.com/profile/00553975945539643579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='11' src='http://bp2.blogger.com/_cvh4U1z5IL0/SJLzyq_ozzI/AAAAAAAABuY/zmA1PxLSmZ4/s1600-R/2721572507_a184465789_b_d.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3866380028998964372.post-3200233667096349797</id><published>2008-04-13T16:23:00.005+03:00</published><updated>2008-04-28T08:53:34.208+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='photo'/><title type='text'>Slide copier</title><content type='html'>Won an auction for Panagor zoom &lt;a href="http://en.wikipedia.org/wiki/Slide_copier"&gt;slide duplicator&lt;/a&gt; and a &lt;a href="http://en.wikipedia.org/wiki/T-mount"&gt;T-mount&lt;/a&gt; to &lt;a href="http://en.wikipedia.org/wiki/F-mount"&gt;F-mount&lt;/a&gt; adapter. Mostly I wanted the adapter ring, because that happens to fit another adaptor that should fit a &lt;a href="http://en.wikipedia.org/wiki/Spotting_scope"&gt;spotting scope&lt;/a&gt;. I'll see when I get around to getting those things together.
&lt;p&gt;
Testing the slide copier, I can't believe how long it took me to realize that 1:1 is actually some zoom since I have a DX crop body :-D It won't quite replace a film scanner then (or otherwise) but it might be a fun thing to have around. In effect it is a zoom macro lens with very little working distance.
&lt;p&gt;
I've been toying with the idea of building something not entirely unlike a &lt;a href="http://en.wikipedia.org/wiki/Rotoscope"&gt;rotoscope&lt;/a&gt;. And a small projector maybe. Just toying with optics.
&lt;p&gt;
&lt;i&gt;2008-04-28: Yes, the T adaptor fit the scope. No, no good photos&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3866380028998964372-3200233667096349797?l=realblades.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://realblades.blogspot.com/feeds/3200233667096349797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3866380028998964372&amp;postID=3200233667096349797' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3866380028998964372/posts/default/3200233667096349797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3866380028998964372/posts/default/3200233667096349797'/><link rel='alternate' type='text/html' href='http://realblades.blogspot.com/2008/04/slide-copier.html' title='Slide copier'/><author><name>XTL</name><uri>http://www.blogger.com/profile/00553975945539643579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='11' src='http://bp2.blogger.com/_cvh4U1z5IL0/SJLzyq_ozzI/AAAAAAAABuY/zmA1PxLSmZ4/s1600-R/2721572507_a184465789_b_d.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3866380028998964372.post-3890728721983468974</id><published>2008-04-05T22:17:00.001+03:00</published><updated>2008-04-05T22:18:43.598+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><category scheme='http://www.blogger.com/atom/ns#' term='peeve'/><title type='text'>Progress bars</title><content type='html'>I recently saw Liw's "&lt;a href="http://blog.liw.fi/posts/progress-bars-everywhere/"&gt;Progress bars everywhere!&lt;/a&gt;" and now again I came across a related thing that's always been nagging me. Burning CD/DVD discs, the progress bar works fairly neatly until the end. Then it takes forever in some finalization and fixating phases.
&lt;p&gt;
How hard could it be to make the program record wall clock time for certain size disks and in particular how long those final stages take? At least a guess. I believe that time would be a fairly consistent value and measuring it for a given system should take out drive differences. Then you could put this in the time remaining bar and let that tick down. At least on handwaving level that sounds trivial and it would be immensely nice if that estimate did tell you when you can come back and your disc is done instead of when you can come back and stare at an unmoving progress indicator.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3866380028998964372-3890728721983468974?l=realblades.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://realblades.blogspot.com/feeds/3890728721983468974/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3866380028998964372&amp;postID=3890728721983468974' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3866380028998964372/posts/default/3890728721983468974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3866380028998964372/posts/default/3890728721983468974'/><link rel='alternate' type='text/html' href='http://realblades.blogspot.com/2008/04/progress-bars.html' title='Progress bars'/><author><name>XTL</name><uri>http://www.blogger.com/profile/00553975945539643579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='11' src='http://bp2.blogger.com/_cvh4U1z5IL0/SJLzyq_ozzI/AAAAAAAABuY/zmA1PxLSmZ4/s1600-R/2721572507_a184465789_b_d.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3866380028998964372.post-5481026344855706459</id><published>2008-02-28T07:57:00.003+02:00</published><updated>2008-02-28T07:59:57.239+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='photo'/><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><title type='text'>First post</title><content type='html'>&lt;div style="float: left; margin-right: 10px; margin-bottom: 10px;"&gt; &lt;a href="http://www.flickr.com/photos/xtl/1514723993/" title="photo sharing"&gt;&lt;img src="http://farm3.static.flickr.com/2067/1514723993_dce30a428e_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;/div&gt;Just a test/greeting post. I'm doing other things most of the time but might occasionally drop something here. I have another place I write to in Finnish, but this is where all English text should end up.&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3866380028998964372-5481026344855706459?l=realblades.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://realblades.blogspot.com/feeds/5481026344855706459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3866380028998964372&amp;postID=5481026344855706459' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3866380028998964372/posts/default/5481026344855706459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3866380028998964372/posts/default/5481026344855706459'/><link rel='alternate' type='text/html' href='http://realblades.blogspot.com/2008/02/first-post.html' title='First post'/><author><name>XTL</name><uri>http://www.blogger.com/profile/00553975945539643579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='31' height='11' src='http://bp2.blogger.com/_cvh4U1z5IL0/SJLzyq_ozzI/AAAAAAAABuY/zmA1PxLSmZ4/s1600-R/2721572507_a184465789_b_d.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm3.static.flickr.com/2067/1514723993_dce30a428e_t.jpg' height='72' width='72'/><thr:total>1</thr:total></entry></feed>
