<?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-996658767399753582</id><updated>2011-10-02T11:25:14.854-07:00</updated><category term='ICSP'/><category term='PIC16F690'/><category term='PIC16F57'/><category term='7-segment'/><category term='LCD'/><category term='Software license'/><category term='wallwart'/><category term='DS1307'/><category term='I2C'/><category term='74LS154'/><category term='PIC16F877A'/><category term='D90'/><category term='heart rate'/><category term='ZX-jen'/><category term='Time and date'/><category term='programmer'/><category term='D7000'/><category term='LM317'/><category term='74LS125'/><category term='Camera'/><category term='PIC16F688'/><category term='Nikon'/><category term='Timex data xchanger'/><category term='power supply'/><category term='video'/><category term='24LC512'/><category term='DS275'/><category term='LED'/><category term='serial port'/><category term='Calculator'/><category term='PS/2'/><category term='TV'/><category term='Potentiometer'/><category term='iDrake'/><category term='EMT-10E'/><category term='Portal'/><category term='Thermometer'/><category term='PIC18F2450'/><category term='battery'/><category term='servo'/><category term='sculpey'/><category term='Clock'/><category term='PIC16F628A'/><category term='HD44780'/><category term='ISD4002'/><category term='DS1302'/><category term='GPS'/><category term='MIDI'/><category term='EEPROM'/><title type='text'>Emerging Drake</title><subtitle type='html'>Drake is the name of the computer I am developing. However, this blog covers all aspects of embedded hardware and software, and explains various projects in detail. Feedback is greatly appreciated.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>78</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-5304199559498053280</id><published>2011-10-02T11:17:00.000-07:00</published><updated>2011-10-02T11:25:14.889-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='D90'/><category scheme='http://www.blogger.com/atom/ns#' term='Nikon'/><category scheme='http://www.blogger.com/atom/ns#' term='D7000'/><category scheme='http://www.blogger.com/atom/ns#' term='GPS'/><title type='text'>GPS for Nikon D7000 (or D90)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-04RUpAkUsK4/Toir7jl3vOI/AAAAAAAABTE/5pKZplMfi3o/s1600/DSC_0247.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 212px;" src="http://4.bp.blogspot.com/-04RUpAkUsK4/Toir7jl3vOI/AAAAAAAABTE/5pKZplMfi3o/s320/DSC_0247.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5658961971445742818" /&gt;&lt;/a&gt;&lt;br /&gt;I recently bought a D7000, and noticed it had a GPS input. Since I already had the GPS module (see the GPS label) I was wondering if I could connect the two. It turned out to be easier than expected: the GPS module accepts 4-6V (and the D7000 outputs 5.9V) so no regulation is necessary. The GPS output is 3.3V, and my Nikon D7000 accepts that without any problems (I've read reports of other Nikons that need a higher voltage, in which case you can use the 74HCT125 as mentioned in &lt;a href="http://emergingdrake.blogspot.com/2008/12/serial-port-for-new-gps.html"&gt;this schematic&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The trickiest bit is finding which cables to connect, however, there are enough resources online, like &lt;a href="http://grink.com/2010/12/05/nikon-d90-homemade-gps/"&gt;this blog for the D90&lt;/a&gt;, that explain it rather accurately.&lt;br /&gt;&lt;br /&gt;I put the GPS inside a mini Altoid box, and will probably use the foot that I had for my Minolta project. To activate the GPS on the camera you need to go to the GPS menu. On the LCD display you can see the status: if it is blinking it means you connected everything correctly, but the GPS hasn't locked on yet. If it is solid, it is in use. Note that the Nikon stops listening to the stream if the data isn't being used for a while, but it keeps powering the GPS (I believe even when the camera is turned off, so you may wish to unplug if you want to save the batteries).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-5304199559498053280?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/5304199559498053280/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=5304199559498053280' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/5304199559498053280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/5304199559498053280'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2011/10/gps-for-nikon-d7000-or-d90.html' title='GPS for Nikon D7000 (or D90)'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-04RUpAkUsK4/Toir7jl3vOI/AAAAAAAABTE/5pKZplMfi3o/s72-c/DSC_0247.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-2272285420402216672</id><published>2011-03-19T23:59:00.001-07:00</published><updated>2011-03-20T00:27:47.676-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='PS/2'/><category scheme='http://www.blogger.com/atom/ns#' term='PIC16F690'/><category scheme='http://www.blogger.com/atom/ns#' term='PIC16F688'/><category scheme='http://www.blogger.com/atom/ns#' term='EMT-10E'/><title type='text'>PS2 to MIDI converter</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-FeKE_Dku0SE/TYWnN58IOII/AAAAAAAAA-I/c0cDLKN0bCA/s1600/IMG_20110319_235031.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/-FeKE_Dku0SE/TYWnN58IOII/AAAAAAAAA-I/c0cDLKN0bCA/s320/IMG_20110319_235031.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5586054770156124290" /&gt;&lt;/a&gt;&lt;br /&gt;Recently I purchased an EMT-10E (Yamaha sound extender) which was meant for the Clavinova to increase the different sounds you could make. I bought it for the project I mentioned earlier on this blog, so I would have something to hook the toy piano with MIDI to once I was done. However, due to issues with the switches the toy piano still doesn't have MIDI, and I still wanted to play with the EMT-10E. So I decided to make a PS/2 keyboard to MIDI converter. Since a PS/2 keyboard already sends key press and release commands it would be just a matter of converting the protocol and assign a note value to each key.&lt;br /&gt;&lt;br /&gt;As this didn't seem to difficult, I decided to give myself another requirement, which was that it had to look nice. As you can see on the picture, I think I succeeded. Initially I decided to use a wood box, but the PS/2 connector that I got from Jameco was too narrow for wood, so I needed something thinner, but still strong. After walking around in Lowes for a while I discovered that an light switch box with a blank plate would work very well. I also bought a 1/2" drill bit for the holes, and it turned out it was quite easy to put everything together.&lt;br /&gt;&lt;br /&gt;I once made a servo controller for Brian Asman, and I already had converted that board for MIDI output. It turned out it had the right size for the box, and I therefore only had to add the PS/2 connector (I connected the data line to PORTB bit 4, and the clock line to PORTA bit 2. You also should connect +5V and ground. &lt;a href="http://en.wikipedia.org/wiki/PS/2_connector"&gt;Wikipedia&lt;/a&gt; has a very clear diagram of the connector, but make sure you have the right mirror image (initially I connected it wrong, reversing the voltages. My keyboard was quite lenient, though). You'll know when you have the right connections if you see the keyboard's LED blink. To hook up the MIDI you need two 220 Ohm resistors for use in the data line and the +5V line. The data line should be hooked up to the TX pin of the PIC16F690 (you can also use a PIC16F688, if you want something smaller). The EMT-10E conveniently has a 9-12V output, which I use to power the box.&lt;br /&gt;&lt;br /&gt;You can see and hear the box at work here:&lt;br /&gt;&lt;iframe title="YouTube video player" width="640" height="390" src="http://www.youtube.com/embed/SXk_paTEC1Q" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br /&gt;The EMT-10E has a "split keyboard" mode and allows transposing up and down for several octaves, and it has a number of different instruments (no drums, unfortunately). The only problem remaining is that a PS/2 keyboard has auto-repeat on keys, which is undesirable if you want to play notes for a longer period of time (it also causes some notes to become "stuck", possibly because more press events are received than release events).&lt;br /&gt;&lt;br /&gt;Here is the &lt;a href="https://docs.google.com/document/pub?id=1FFht7IRQbiuVl4paxZTijUz0-96AMP3mA_C65-JzpDg"&gt;first version of the source code&lt;/a&gt;, which basically reads a key from the keyboard, converts it into a note value, and either plays it or stops playing it, depending on whether it is a key press or a key release.&lt;br /&gt;&lt;br /&gt;If you're interested in this project you can always contact me and I can provide more details if needed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-2272285420402216672?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/2272285420402216672/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=2272285420402216672' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/2272285420402216672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/2272285420402216672'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2011/03/ps2-to-midi-converter.html' title='PS2 to MIDI converter'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-FeKE_Dku0SE/TYWnN58IOII/AAAAAAAAA-I/c0cDLKN0bCA/s72-c/IMG_20110319_235031.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-1507455327867338325</id><published>2011-03-15T14:55:00.001-07:00</published><updated>2011-03-15T14:56:34.364-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Portal'/><category scheme='http://www.blogger.com/atom/ns#' term='sculpey'/><title type='text'>Weighted Companion Cube</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-vHFB_6bzymE/TX_gc6hxuCI/AAAAAAAAA98/h8QLPkrurIU/s1600/IMG_20110315_145056.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/-vHFB_6bzymE/TX_gc6hxuCI/AAAAAAAAA98/h8QLPkrurIU/s400/IMG_20110315_145056.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5584428850314590242" /&gt;&lt;/a&gt;&lt;br /&gt;On a different note I decided to make a weighted companion cube a while back, as I was enjoying Portal a lot. As you can see it came out rather well, although the silver paint might be too shiny, and the sculpey turned out to look a bit like teeth.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-1507455327867338325?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/1507455327867338325/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=1507455327867338325' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/1507455327867338325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/1507455327867338325'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2011/03/weighted-companion-cube.html' title='Weighted Companion Cube'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-vHFB_6bzymE/TX_gc6hxuCI/AAAAAAAAA98/h8QLPkrurIU/s72-c/IMG_20110315_145056.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-4176539951639484766</id><published>2010-11-28T18:06:00.000-08:00</published><updated>2010-11-28T18:18:33.351-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='PIC16F690'/><title type='text'>Attempt at creating my own simple MIDI controller</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_rXqAardmcdI/TPMMWilv4QI/AAAAAAAAA8Q/dA4rTrRF958/s1600/piano.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 95px;" src="http://3.bp.blogspot.com/_rXqAardmcdI/TPMMWilv4QI/AAAAAAAAA8Q/dA4rTrRF958/s200/piano.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5544789147605000450" /&gt;&lt;/a&gt;&lt;br /&gt;I started on a new project, converting a cheap toy piano into a MIDI keyboard. The toy piano has 23 keys, which it reads using a 4x6 grid of scanlines. The resistors are already in place, and fortunately there are places for me to solder my wires to. The PIC16F690 should have enough pins (I only need 10, it has 20), and I already have &lt;a href="https://docs.google.com/document/d/1wEaLzsNGskYqjWnUgUtSVsI5kF759JKUB9coDur29yA/edit?hl=en"&gt;MIDI code&lt;/a&gt; for my Beethoven playing box, that I described earlier. Hooking up a MIDI output is very easy as well: just connect +5V to pin 4 of a 5-pin female DIN plug with a 220 Ohm resistor, and hook up the TX pin of the PIC16F690 to pin 5. The step I forgot before is that pin 2 definitely needs to be grounded, so don't forget that. You can of course also use &lt;a href="http://devices.sapp.org/circuit/midi-out/"&gt;sketch one&lt;/a&gt; or &lt;a href="http://www.audiomulch.com/midipic/"&gt;sketch two&lt;/a&gt;, or any of the others found on the Internet.&lt;br /&gt;&lt;br /&gt;I used the Pic kit 2 to try different voltages, and the MIDI works with my CASIO keyboard even at 2.5V. Since the piano has a 3V battery, I was glad to see this. Using 3V of course makes it not entirely MIDI compliant, but I'm sure most pianos will behave just fine with it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-4176539951639484766?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/4176539951639484766/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=4176539951639484766' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/4176539951639484766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/4176539951639484766'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2010/11/attempt-at-creating-my-own-simple-midi.html' title='Attempt at creating my own simple MIDI controller'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_rXqAardmcdI/TPMMWilv4QI/AAAAAAAAA8Q/dA4rTrRF958/s72-c/piano.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-521748483720665794</id><published>2010-10-04T14:12:00.001-07:00</published><updated>2010-10-04T14:15:00.931-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Timex data xchanger'/><category scheme='http://www.blogger.com/atom/ns#' term='heart rate'/><title type='text'>Heart rate monitoring 10</title><content type='html'>This is another walk from that same trip, this time steeply uphill and downhill, to the Bumpass hell from lassen volcanic national park. &lt;a href="http://chart.apis.google.com/chart?cht=lxy&amp;chs=640x400&amp;chxt=x,y&amp;chd=t:0.7,1.4,2.1,3.5,4.2,4.9,5.6,6.3,7,7.7,8.4,9.1,9.8,10.5,11.2,11.9,12.6,13.3,14,14.7,16.1,16.8,17.5,18.2,18.9,19.6,20.3,21,21.7,22.4,23.1,23.8,24.5,25.2,25.9,26.6,27.3,28,28.7,29.4,30.1,30.8,31.5,32.2,32.9,33.6,34.3,35,35.7,36.4,37.1,37.8,38.5,39.2,39.9,40.6,41.3,42,42.7,43.4,44.1,44.8,45.5,46.2,46.9,47.6,48.3,49,49.7,50.4,51.1,51.8,52.5,53.2,53.9,54.6,55.3,56,56.7,57.4,58.1,58.8,59.5,60.2,60.9,61.6,62.3,63,63.7,64.4,65.1,66.5,67.2,68.6,69.3,70,70.7,71.4,72.1,72.8,73.5,74.2,74.9,75.6,76.3,77,77.7,78.4,79.1,79.8,80.5,81.9,83.3,84,84.7,85.4,86.1,87.5,88.2,88.9,89.6,90.3,91,91.7,92.4,93.1,93.8,94.5,95.2,95.9,96.6,97.3,98,98.7,99.4,100.8,101.5,102.2,102.9,103.6,105,105.7,106.4,107.1,107.8,108.5,109.9,110.6,111.3,112,112.7,113.4,114.1,114.8,115.5,116.2,116.9,117.6,118.3,119,119.7,120.4,121.1,121.8,123.2,123.9,124.6,125.3,126,126.7,127.4,128.1,128.8,129.5,130.2,130.9,131.6,132.3,133,133.7,134.4,135.1,135.8,136.5,137.2,137.9,138.6,139.3,140,140.7,141.4,142.1,142.8,143.5,144.2,144.9,146.3,147,147.7,148.4,149.1,149.8,150.5,151.2,151.9,152.6,153.3,154,154.7,155.4|124,115,136,108,110,109,122,121,121,129,117,116,122,124,116,114,113,114,109,114,106,105,119,133,122,117,104,134,145,147,145,150,148,154,153,142,127,132,138,133,112,141,124,119,118,138,140,155,151,134,143,142,145,149,141,144,144,153,145,147,140,141,138,135,133,128,130,130,133,145,143,115,105,98,95,94,129,146,147,146,147,152,151,148,146,154,148,139,137,146,153,141,138,127,127,121,120,113,116,119,121,120,116,118,112,116,132,107,115,117,123,116,126,122,128,123,113,114,113,114,115,115,112,116,133,129,143,147,124,143,148,136,114,133,129,119,119,113,121,105,120,114,114,114,118,115,117,120,115,111,122,117,120,134,120,121,116,125,129,110,99,118,115,122,113,122,125,120,123,119,122,111,123,122,121,123,122,121,119,123,123,122,123,120,120,120,119,120,122,126,128,139,148,105,106,130,130,125,138,133,137,125,127,134,134,133,142,124,129,133&amp;chxr=0,0.7,155.4|1,94,155&amp;chds=0.7,155.4,94,155"&gt;&lt;img src="http://chart.apis.google.com/chart?cht=lxy&amp;chs=320x200&amp;chxt=x,y&amp;chd=t:0.7,1.4,2.1,3.5,4.2,4.9,5.6,6.3,7,7.7,8.4,9.1,9.8,10.5,11.2,11.9,12.6,13.3,14,14.7,16.1,16.8,17.5,18.2,18.9,19.6,20.3,21,21.7,22.4,23.1,23.8,24.5,25.2,25.9,26.6,27.3,28,28.7,29.4,30.1,30.8,31.5,32.2,32.9,33.6,34.3,35,35.7,36.4,37.1,37.8,38.5,39.2,39.9,40.6,41.3,42,42.7,43.4,44.1,44.8,45.5,46.2,46.9,47.6,48.3,49,49.7,50.4,51.1,51.8,52.5,53.2,53.9,54.6,55.3,56,56.7,57.4,58.1,58.8,59.5,60.2,60.9,61.6,62.3,63,63.7,64.4,65.1,66.5,67.2,68.6,69.3,70,70.7,71.4,72.1,72.8,73.5,74.2,74.9,75.6,76.3,77,77.7,78.4,79.1,79.8,80.5,81.9,83.3,84,84.7,85.4,86.1,87.5,88.2,88.9,89.6,90.3,91,91.7,92.4,93.1,93.8,94.5,95.2,95.9,96.6,97.3,98,98.7,99.4,100.8,101.5,102.2,102.9,103.6,105,105.7,106.4,107.1,107.8,108.5,109.9,110.6,111.3,112,112.7,113.4,114.1,114.8,115.5,116.2,116.9,117.6,118.3,119,119.7,120.4,121.1,121.8,123.2,123.9,124.6,125.3,126,126.7,127.4,128.1,128.8,129.5,130.2,130.9,131.6,132.3,133,133.7,134.4,135.1,135.8,136.5,137.2,137.9,138.6,139.3,140,140.7,141.4,142.1,142.8,143.5,144.2,144.9,146.3,147,147.7,148.4,149.1,149.8,150.5,151.2,151.9,152.6,153.3,154,154.7,155.4|124,115,136,108,110,109,122,121,121,129,117,116,122,124,116,114,113,114,109,114,106,105,119,133,122,117,104,134,145,147,145,150,148,154,153,142,127,132,138,133,112,141,124,119,118,138,140,155,151,134,143,142,145,149,141,144,144,153,145,147,140,141,138,135,133,128,130,130,133,145,143,115,105,98,95,94,129,146,147,146,147,152,151,148,146,154,148,139,137,146,153,141,138,127,127,121,120,113,116,119,121,120,116,118,112,116,132,107,115,117,123,116,126,122,128,123,113,114,113,114,115,115,112,116,133,129,143,147,124,143,148,136,114,133,129,119,119,113,121,105,120,114,114,114,118,115,117,120,115,111,122,117,120,134,120,121,116,125,129,110,99,118,115,122,113,122,125,120,123,119,122,111,123,122,121,123,122,121,119,123,123,122,123,120,120,120,119,120,122,126,128,139,148,105,106,130,130,125,138,133,137,125,127,134,134,133,142,124,129,133&amp;chxr=0,0.7,155.4|1,94,155&amp;chds=0.7,155.4,94,155" alt="Heart rate bumpass hell walk"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As you can see, the uphill part had a significantly higher heart rate than the downhill part, with a slight break in between, where I discovered I had cell phone reception and sent and received some text messages.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-521748483720665794?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/521748483720665794/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=521748483720665794' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/521748483720665794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/521748483720665794'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2010/10/heart-rate-monitoring-10.html' title='Heart rate monitoring 10'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-406783999864603930</id><published>2010-09-20T14:15:00.001-07:00</published><updated>2010-09-20T14:17:40.762-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Timex data xchanger'/><category scheme='http://www.blogger.com/atom/ns#' term='heart rate'/><title type='text'>Heart rate monitoring 9</title><content type='html'>It has been a while, but in August I went to Vancouver with my parents, and hiked in various national parks on the way. Here is the graph from the second hike, which was through a forest, on level ground. The forest was beautiful, but there wasn't much variation in heart rate.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://chart.apis.google.com/chart?cht=lxy&amp;chs=640x400&amp;chxt=x,y&amp;chd=t:0,0.6,1.2,1.8,2.4,3,3.6,4.2,4.8,5.4,6,6.6,7.2,8.4,9,9.6,10.2,10.8,11.4,12,12.6,13.2,13.8,14.4,15,16.2,16.8,17.4,18,18.6,19.2,19.8,20.4,21,21.6,22.2,22.8,23.4,24,24.6,25.2,25.8,26.4,27,27.6,28.2,28.8,29.4,30,30.6,31.2,31.8,33,33.6,34.8,35.4,36,36.6,37.2,37.8,38.4,39,39.6,40.2,40.8,41.4,42,42.6,43.2,43.8,44.4,45,46.2,46.8,47.4,48.6,49.2,49.8,50.4,51,51.6,52.2,52.8,54,54.6,55.2,55.8,56.4,57,57.6,58.2,58.8,59.4,60,60.6,61.2,61.8,62.4,63,63.6,64.2,64.8,65.4,66,66.6,67.2,67.8,68.4,69,69.6,70.2,70.8,71.4,72,72.6,73.8,74.4,75,76.2,76.8,77.4,78,78.6,79.2,79.8,80.4,81,81.6,82.2,82.8,83.4,84,84.6,85.2,85.8,86.4,87,87.6,88.2,88.8,89.4,90.6,91.2,91.8,92.4,93,93.6,94.2,94.8,95.4,96,96.6,97.2,97.8,98.4,99,99.6,100.2,100.8,101.4,102,102.6,103.2,104.4,105,105.6,106.2,106.8,107.4,108,108.6,109.2,109.8,110.4,111,111.6,112.2,112.8,113.4,114,114.6,115.2,115.8,116.4,117,117.6,118.2,118.8,119.4,120,120.6,121.2,121.8,122.4,123,123.6,124.2,124.8,125.4,126,126.6,127.2,127.8,128.4,129,129.6,130.2|97,92,102,94,113,105,112,98,101,108,104,98,104,103,110,111,113,103,102,100,101,102,101,94,101,105,108,102,104,105,101,102,96,102,104,111,89,101,102,94,92,102,102,103,107,108,111,109,107,103,105,97,103,102,103,98,105,94,103,101,106,109,107,106,103,108,111,108,102,110,110,107,110,102,104,119,113,105,109,115,109,117,113,117,108,107,114,118,123,113,130,121,118,116,108,98,107,106,119,114,117,113,120,121,112,125,115,112,114,107,115,107,101,106,105,122,128,113,101,97,101,109,107,120,102,100,98,105,100,98,97,92,106,108,103,103,104,102,101,104,101,102,103,103,111,109,105,106,105,103,105,104,108,119,126,104,105,104,103,107,106,105,106,112,111,105,103,109,128,129,110,105,113,106,108,112,118,99,81,105,112,101,105,99,99,109,104,125,106,102,103,113,110,114,102,100,103,102,108,106,109,102,118,105,104,106,100&amp;chxr=0,0,130.2|1,81,130&amp;chds=0,130.2,81,130"&gt;&lt;img src="http://chart.apis.google.com/chart?cht=lxy&amp;chs=320x240&amp;chxt=x,y&amp;chd=t:0,0.6,1.2,1.8,2.4,3,3.6,4.2,4.8,5.4,6,6.6,7.2,8.4,9,9.6,10.2,10.8,11.4,12,12.6,13.2,13.8,14.4,15,16.2,16.8,17.4,18,18.6,19.2,19.8,20.4,21,21.6,22.2,22.8,23.4,24,24.6,25.2,25.8,26.4,27,27.6,28.2,28.8,29.4,30,30.6,31.2,31.8,33,33.6,34.8,35.4,36,36.6,37.2,37.8,38.4,39,39.6,40.2,40.8,41.4,42,42.6,43.2,43.8,44.4,45,46.2,46.8,47.4,48.6,49.2,49.8,50.4,51,51.6,52.2,52.8,54,54.6,55.2,55.8,56.4,57,57.6,58.2,58.8,59.4,60,60.6,61.2,61.8,62.4,63,63.6,64.2,64.8,65.4,66,66.6,67.2,67.8,68.4,69,69.6,70.2,70.8,71.4,72,72.6,73.8,74.4,75,76.2,76.8,77.4,78,78.6,79.2,79.8,80.4,81,81.6,82.2,82.8,83.4,84,84.6,85.2,85.8,86.4,87,87.6,88.2,88.8,89.4,90.6,91.2,91.8,92.4,93,93.6,94.2,94.8,95.4,96,96.6,97.2,97.8,98.4,99,99.6,100.2,100.8,101.4,102,102.6,103.2,104.4,105,105.6,106.2,106.8,107.4,108,108.6,109.2,109.8,110.4,111,111.6,112.2,112.8,113.4,114,114.6,115.2,115.8,116.4,117,117.6,118.2,118.8,119.4,120,120.6,121.2,121.8,122.4,123,123.6,124.2,124.8,125.4,126,126.6,127.2,127.8,128.4,129,129.6,130.2|97,92,102,94,113,105,112,98,101,108,104,98,104,103,110,111,113,103,102,100,101,102,101,94,101,105,108,102,104,105,101,102,96,102,104,111,89,101,102,94,92,102,102,103,107,108,111,109,107,103,105,97,103,102,103,98,105,94,103,101,106,109,107,106,103,108,111,108,102,110,110,107,110,102,104,119,113,105,109,115,109,117,113,117,108,107,114,118,123,113,130,121,118,116,108,98,107,106,119,114,117,113,120,121,112,125,115,112,114,107,115,107,101,106,105,122,128,113,101,97,101,109,107,120,102,100,98,105,100,98,97,92,106,108,103,103,104,102,101,104,101,102,103,103,111,109,105,106,105,103,105,104,108,119,126,104,105,104,103,107,106,105,106,112,111,105,103,109,128,129,110,105,113,106,108,112,118,99,81,105,112,101,105,99,99,109,104,125,106,102,103,113,110,114,102,100,103,102,108,106,109,102,118,105,104,106,100&amp;chxr=0,0,130.2|1,81,130&amp;chds=0,130.2,81,130" alt="Heart rate walking through forest"&gt;&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-406783999864603930?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/406783999864603930/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=406783999864603930' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/406783999864603930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/406783999864603930'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2010/09/heart-rate-monitoring-9.html' title='Heart rate monitoring 9'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-5359478119380712437</id><published>2010-07-12T14:44:00.001-07:00</published><updated>2010-07-12T14:47:32.141-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Timex data xchanger'/><category scheme='http://www.blogger.com/atom/ns#' term='heart rate'/><title type='text'>Heart rate monitoring 8</title><content type='html'>This month the "An analytical approach to club dancing" classes started, and I decided to measure them as well. As you can expect, the analytical approach (green) is a lot lower than the beginning hip hop (red):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://chart.apis.google.com/chart?cht=lxy&amp;chs=640x400&amp;chxt=x,y&amp;chd=t4:0,0.43,0.86,1.3,2.16,2.6,3.03,3.9,4.33,4.76,5.2,6.06,6.5,7.36,7.8,8.66,9.1,9.96,10.4,10.8,11.2,11.7,12.5,13,13.4,13.8,14.3,14.7,15.1,15.6,16.0,16.4,16.9,18.6,19.0,19.5,19.9,20.8,21.2,21.6,22.1,22.5,23.8,24.7,25.1,26,26.4,27.3,27.7,28.6,29.0,29.9,30.3,30.7,31.2,31.6,32.5,32.9,33.3,33.8,34.2,35.1,35.5,35.9,36.4,36.8,38.1,38.5,39,39.4,39.8,40.7,41.1,41.6,42.0,42.4,43.3,43.7,44.2,44.6,45.0,46.8,47.2,47.6,48.9,49.4,49.8,50.2,50.7,51.5,52.4|74,107,115,120,124,131,127,109,116,123,111,116,111,126,129,124,124,113,111,100,88,95,104,100,104,115,119,133,136,145,148,151,148,138,134,138,137,137,132,116,115,120,139,150,148,134,123,148,158,145,146,127,123,145,133,138,144,146,140,139,149,157,157,149,143,147,148,156,151,135,147,148,149,152,154,158,157,139,136,134,139,154,152,154,164,151,144,124,133,128,135|0.41,0.85,1.28,1.71,2.15,2.58,3.01,3.88,4.31,4.75,5.61,6.48,7.35,7.78,8.21,8.65,9.08,9.51,9.95,10.3,10.8,11.2,12.1,12.5,12.9,13.4,13.8,14.2,14.7,15.1,15.5,16.0,16.8,17.7,18.1,18.6,19.0,19.4,19.9,20.7,21.2,21.6,22.0,22.5,23.8,24.2,24.6,25.1,25.5,25.9,26.4,26.8,27.2,27.7,28.1,28.5,29.0,29.8,30.3,31.1,31.6,32.4,32.9,33.3,33.7,34.2,34.6,35.0,35.4,35.9,36.3,36.7,37.2,37.6,38.0,38.5,38.9,40.2,40.6,41.1,41.5,41.9,42.8,43.2,43.7,44.1,45.4,45.8,46.3,46.7,47.1,48.0,48.4,48.9,49.3,49.7,50.2,50.6,51.0,51.5,51.9,52.3,52.8,53.2,53.6,54.1,54.5,54.9,55.4|79,81,77,74,77,81,80,76,76,81,75,77,76,79,80,80,84,81,78,81,77,86,93,104,106,108,105,111,120,130,116,98,96,99,92,102,110,100,111,130,136,138,101,83,88,81,87,85,86,83,81,86,81,80,79,82,78,84,87,109,121,129,141,119,117,143,133,159,156,150,123,117,105,98,107,111,125,118,111,110,122,112,93,97,93,85,107,103,108,129,131,102,110,105,107,105,105,101,128,133,135,122,116,107,122,110,108,108,108&amp;chxr=0,0,55.416666666666664|1,74,164&amp;chds=0,55.416666666666664,74,164,0,55.416666666666664,74,164&amp;chco=ab1234,12ab34"&gt;&lt;img src="http://chart.apis.google.com/chart?cht=lxy&amp;chs=320x240&amp;chxt=x,y&amp;chd=t4:0,0.43,0.86,1.3,2.16,2.6,3.03,3.9,4.33,4.76,5.2,6.06,6.5,7.36,7.8,8.66,9.1,9.96,10.4,10.8,11.2,11.7,12.5,13,13.4,13.8,14.3,14.7,15.1,15.6,16.0,16.4,16.9,18.6,19.0,19.5,19.9,20.8,21.2,21.6,22.1,22.5,23.8,24.7,25.1,26,26.4,27.3,27.7,28.6,29.0,29.9,30.3,30.7,31.2,31.6,32.5,32.9,33.3,33.8,34.2,35.1,35.5,35.9,36.4,36.8,38.1,38.5,39,39.4,39.8,40.7,41.1,41.6,42.0,42.4,43.3,43.7,44.2,44.6,45.0,46.8,47.2,47.6,48.9,49.4,49.8,50.2,50.7,51.5,52.4|74,107,115,120,124,131,127,109,116,123,111,116,111,126,129,124,124,113,111,100,88,95,104,100,104,115,119,133,136,145,148,151,148,138,134,138,137,137,132,116,115,120,139,150,148,134,123,148,158,145,146,127,123,145,133,138,144,146,140,139,149,157,157,149,143,147,148,156,151,135,147,148,149,152,154,158,157,139,136,134,139,154,152,154,164,151,144,124,133,128,135|0.41,0.85,1.28,1.71,2.15,2.58,3.01,3.88,4.31,4.75,5.61,6.48,7.35,7.78,8.21,8.65,9.08,9.51,9.95,10.3,10.8,11.2,12.1,12.5,12.9,13.4,13.8,14.2,14.7,15.1,15.5,16.0,16.8,17.7,18.1,18.6,19.0,19.4,19.9,20.7,21.2,21.6,22.0,22.5,23.8,24.2,24.6,25.1,25.5,25.9,26.4,26.8,27.2,27.7,28.1,28.5,29.0,29.8,30.3,31.1,31.6,32.4,32.9,33.3,33.7,34.2,34.6,35.0,35.4,35.9,36.3,36.7,37.2,37.6,38.0,38.5,38.9,40.2,40.6,41.1,41.5,41.9,42.8,43.2,43.7,44.1,45.4,45.8,46.3,46.7,47.1,48.0,48.4,48.9,49.3,49.7,50.2,50.6,51.0,51.5,51.9,52.3,52.8,53.2,53.6,54.1,54.5,54.9,55.4|79,81,77,74,77,81,80,76,76,81,75,77,76,79,80,80,84,81,78,81,77,86,93,104,106,108,105,111,120,130,116,98,96,99,92,102,110,100,111,130,136,138,101,83,88,81,87,85,86,83,81,86,81,80,79,82,78,84,87,109,121,129,141,119,117,143,133,159,156,150,123,117,105,98,107,111,125,118,111,110,122,112,93,97,93,85,107,103,108,129,131,102,110,105,107,105,105,101,128,133,135,122,116,107,122,110,108,108,108&amp;chxr=0,0,55.416666666666664|1,74,164&amp;chds=0,55.416666666666664,74,164,0,55.416666666666664,74,164&amp;chco=ab1234,12ab34" alt="Beginning hip hop vs. the analytical approach to club dancing, heart rate"&gt;&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-5359478119380712437?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/5359478119380712437/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=5359478119380712437' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/5359478119380712437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/5359478119380712437'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2010/07/heart.html' title='Heart rate monitoring 8'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-8648861450651972605</id><published>2010-06-25T08:43:00.001-07:00</published><updated>2010-06-25T09:04:20.233-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Timex data xchanger'/><category scheme='http://www.blogger.com/atom/ns#' term='heart rate'/><title type='text'>Heart rate monitoring 7</title><content type='html'>Because of the heart rate monitoring, Anna Botelho asked me to check my heart rate during another class of hers called "Dancing around the world". It doesn't focus on the moves at all, and involves many different dance styles, most of which were quite confusing. Here is the graph comparing it with Shaira Bhan's class, of that same week:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://chart.apis.google.com/chart?cht=lxy&amp;chs=640x400&amp;chxt=x,y&amp;chd=t4:0.46,0.93,1.4,1.86,2.33,2.8,3.26,3.73,4.2,4.66,5.13,5.6,6.06,6.53,7.46,8.4,8.86,9.33,9.8,10.2,10.7,11.6,12.1,12.6,13.0,13.5,14,14.4,14.9,15.4,15.8,16.3,16.8,17.2,17.7,18.6,19.1,19.6,20.0,21,21.4,21.9,22.8,23.8,24.2,24.7,25.2,25.6,26.1,26.6,27.5,28,28.9,29.4,29.8,30.3,31.2,32.2,32.6,33.1,34.0,34.5,35,35.4,35.9,36.4,36.8,37.3,37.8,38.2,38.7,39.2,40.1,40.6,41.0,41.5,42.4,42.9,43.4,43.8,44.3,45.2,45.7,46.2,46.6,47.1,47.6,48.0,48.5,49,49.4,49.9,50.4,51.3,51.8,52.2,52.7,53.2,53.6,54.1,54.6,55.5,56.4,56.9,58.3,58.8|81,89,81,110,97,102,114,128,128,134,135,138,138,135,125,157,156,155,164,153,155,153,150,152,145,156,156,152,164,165,169,168,164,166,168,168,171,173,163,138,159,161,149,167,172,166,157,154,152,160,172,174,175,170,172,169,150,158,178,183,180,182,173,177,172,168,151,141,145,147,146,151,160,165,166,169,163,164,169,173,167,170,168,170,167,162,154,140,136,164,172,182,185,181,179,182,179,162,153,150,141,144,140,131,142,149|0.91,1.38,1.85,2.78,3.25,3.71,4.18,4.65,5.11,5.58,6.05,6.98,7.45,7.91,8.38,8.85,9.31,9.78,10.2,10.7,11.1,11.6,13.0,13.9,14.9,15.3,15.8,16.3,16.7,17.2,17.7,18.1,18.6,19.1,19.5,20.0,20.5,20.9,21.4,21.9,22.3,23.3,23.7,24.2,24.7,25.1,25.6,26.1,26.5,27.0,27.5,27.9,28.4,28.9,29.3,29.8,30.7,31.2,31.7,32.1,32.6,33.1,33.5,34.0,34.5,34.9,35.4,35.9,36.8,37.3,37.7,38.2,39.1,39.6,40.1,40.5,41.0,41.9,42.9,43.3,44.3,44.7,45.2,45.7,46.1,46.6,47.1,47.5,48.0,48.5,48.9,49.4,49.9,50.3,50.8,51.3,51.7,52.2,52.7,53.1,54.1,55.0,55.5,57.3,58.7,59.2|151,158,167,158,164,152,162,167,173,170,175,166,154,153,157,162,165,164,164,164,165,170,176,167,179,180,180,180,176,169,170,167,168,160,162,163,167,179,184,184,182,176,180,178,180,182,182,181,183,174,173,173,174,177,174,176,176,177,168,166,164,170,176,169,173,162,166,176,179,175,177,175,175,171,157,160,153,170,182,182,181,188,188,185,180,173,174,173,171,176,175,179,181,184,180,180,162,170,173,179,182,178,164,145,159,159&amp;chxr=0,0,59.25|1,81,188&amp;chds=0,59.25,81,188,0,59.25,81,188&amp;chco=ab1234,12ab34"&gt;&lt;img alt="Heart rate comparison between Dancing Around the World and Bollywood" src="http://chart.apis.google.com/chart?cht=lxy&amp;chs=320x240&amp;chxt=x,y&amp;chd=t4:0.46,0.93,1.4,1.86,2.33,2.8,3.26,3.73,4.2,4.66,5.13,5.6,6.06,6.53,7.46,8.4,8.86,9.33,9.8,10.2,10.7,11.6,12.1,12.6,13.0,13.5,14,14.4,14.9,15.4,15.8,16.3,16.8,17.2,17.7,18.6,19.1,19.6,20.0,21,21.4,21.9,22.8,23.8,24.2,24.7,25.2,25.6,26.1,26.6,27.5,28,28.9,29.4,29.8,30.3,31.2,32.2,32.6,33.1,34.0,34.5,35,35.4,35.9,36.4,36.8,37.3,37.8,38.2,38.7,39.2,40.1,40.6,41.0,41.5,42.4,42.9,43.4,43.8,44.3,45.2,45.7,46.2,46.6,47.1,47.6,48.0,48.5,49,49.4,49.9,50.4,51.3,51.8,52.2,52.7,53.2,53.6,54.1,54.6,55.5,56.4,56.9,58.3,58.8|81,89,81,110,97,102,114,128,128,134,135,138,138,135,125,157,156,155,164,153,155,153,150,152,145,156,156,152,164,165,169,168,164,166,168,168,171,173,163,138,159,161,149,167,172,166,157,154,152,160,172,174,175,170,172,169,150,158,178,183,180,182,173,177,172,168,151,141,145,147,146,151,160,165,166,169,163,164,169,173,167,170,168,170,167,162,154,140,136,164,172,182,185,181,179,182,179,162,153,150,141,144,140,131,142,149|0.91,1.38,1.85,2.78,3.25,3.71,4.18,4.65,5.11,5.58,6.05,6.98,7.45,7.91,8.38,8.85,9.31,9.78,10.2,10.7,11.1,11.6,13.0,13.9,14.9,15.3,15.8,16.3,16.7,17.2,17.7,18.1,18.6,19.1,19.5,20.0,20.5,20.9,21.4,21.9,22.3,23.3,23.7,24.2,24.7,25.1,25.6,26.1,26.5,27.0,27.5,27.9,28.4,28.9,29.3,29.8,30.7,31.2,31.7,32.1,32.6,33.1,33.5,34.0,34.5,34.9,35.4,35.9,36.8,37.3,37.7,38.2,39.1,39.6,40.1,40.5,41.0,41.9,42.9,43.3,44.3,44.7,45.2,45.7,46.1,46.6,47.1,47.5,48.0,48.5,48.9,49.4,49.9,50.3,50.8,51.3,51.7,52.2,52.7,53.1,54.1,55.0,55.5,57.3,58.7,59.2|151,158,167,158,164,152,162,167,173,170,175,166,154,153,157,162,165,164,164,164,165,170,176,167,179,180,180,180,176,169,170,167,168,160,162,163,167,179,184,184,182,176,180,178,180,182,182,181,183,174,173,173,174,177,174,176,176,177,168,166,164,170,176,169,173,162,166,176,179,175,177,175,175,171,157,160,153,170,182,182,181,188,188,185,180,173,174,173,171,176,175,179,181,184,180,180,162,170,173,179,182,178,164,145,159,159&amp;chxr=0,0,59.25|1,81,188&amp;chds=0,59.25,81,188,0,59.25,81,188&amp;chco=ab1234,12ab34"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The only clear difference is the start, which is partly due to me being on a treadmill (since Dancing around the World is at the gym) and partly because the Bollywood class (the red line) has a longer warming up (I think this is because people generally show up in the middle of the Dancing around the World class, which means warming up makes less sense). However, if you look at the details you can see that the activity level during the Dancing around the World class is higher (the green line is more often above the red line than the other way around). The software stated I burned 1323 kCal during the Dancing around the World class, but as I stated in my previous post, this should probably be 20% lower. It is still the highest of all activities so far.&lt;br /&gt;&lt;br /&gt;For completeness, here is a comparison between "Beginning Hip Hop" and the "Dancing around the World" class:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://chart.apis.google.com/chart?cht=lxy&amp;chs=640x400&amp;chxt=x,y&amp;chd=t4:0,0.43,0.86,1.3,2.16,2.6,3.03,3.9,4.33,4.76,5.2,6.06,6.5,7.36,7.8,8.66,9.1,9.96,10.4,10.8,11.2,11.7,12.5,13,13.4,13.8,14.3,14.7,15.1,15.6,16.0,16.4,16.9,18.6,19.0,19.5,19.9,20.8,21.2,21.6,22.1,22.5,23.8,24.7,25.1,26,26.4,27.3,27.7,28.6,29.0,29.9,30.3,30.7,31.2,31.6,32.5,32.9,33.3,33.8,34.2,35.1,35.5,35.9,36.4,36.8,38.1,38.5,39,39.4,39.8,40.7,41.1,41.6,42.0,42.4,43.3,43.7,44.2,44.6,45.0,46.8,47.2,47.6,48.9,49.4,49.8,50.2,50.7,51.5,52.4|74,107,115,120,124,131,127,109,116,123,111,116,111,126,129,124,124,113,111,100,88,95,104,100,104,115,119,133,136,145,148,151,148,138,134,138,137,137,132,116,115,120,139,150,148,134,123,148,158,145,146,127,123,145,133,138,144,146,140,139,149,157,157,149,143,147,148,156,151,135,147,148,149,152,154,158,157,139,136,134,139,154,152,154,164,151,144,124,133,128,135|0.41,0.85,1.28,1.71,2.15,2.58,3.01,3.45,3.88,5.18,5.61,6.05,6.48,6.91,7.35,7.78,8.21,8.65,9.08,9.51,9.95,10.3,10.8,11.2,11.6,12.5,12.9,13.4,13.8,14.2,14.7,15.1,16.0,16.4,16.8,17.3,17.7,18.1,18.6,19.0,19.4,19.9,20.3,20.7,21.2,21.6,22.0,22.5,22.9,23.3,23.8,24.2,24.6,25.1,25.5,25.9,26.4,27.2,28.1,28.5,29.0,29.4,30.7,31.1,31.6,32.0,32.9,33.3,33.7,34.2,34.6,35.0,35.5,35.9,36.8,37.2,38.1,38.5,38.9,39.4,39.8,40.2,40.7,41.1,41.5,42.0,42.8,43.3,43.7,44.1,44.6,45.0,45.4,45.9,46.3,46.7,47.2,47.6,48.0,48.5,48.9,49.3,49.8,50.2,50.6,51.1,51.5,51.9,52.4,53.2,53.7,54.1,55.0,55.8,56.3,56.7,57.1,57.6,58.0,58.4,58.9,59.3|139,149,155,167,165,159,159,159,154,173,171,175,172,172,159,152,157,160,164,165,165,166,165,166,170,169,176,172,168,172,179,179,178,181,173,169,170,167,168,162,158,163,167,174,182,182,183,184,180,177,180,178,181,181,181,182,184,172,175,175,176,174,175,176,172,164,169,172,176,169,172,162,167,176,179,175,177,174,175,175,166,156,161,150,166,172,182,182,185,185,189,190,186,184,182,175,174,173,171,176,175,178,180,182,180,180,173,165,170,180,181,182,179,159,159,161,155,145,161,142,160,158&amp;chxr=0,0,59.35|1,74,190&amp;chds=0,59.35,74,190,0,59.35,74,190&amp;chco=ab1234,12ab34"&gt;&lt;img src="http://chart.apis.google.com/chart?cht=lxy&amp;chs=320x240&amp;chxt=x,y&amp;chd=t4:0,0.43,0.86,1.3,2.16,2.6,3.03,3.9,4.33,4.76,5.2,6.06,6.5,7.36,7.8,8.66,9.1,9.96,10.4,10.8,11.2,11.7,12.5,13,13.4,13.8,14.3,14.7,15.1,15.6,16.0,16.4,16.9,18.6,19.0,19.5,19.9,20.8,21.2,21.6,22.1,22.5,23.8,24.7,25.1,26,26.4,27.3,27.7,28.6,29.0,29.9,30.3,30.7,31.2,31.6,32.5,32.9,33.3,33.8,34.2,35.1,35.5,35.9,36.4,36.8,38.1,38.5,39,39.4,39.8,40.7,41.1,41.6,42.0,42.4,43.3,43.7,44.2,44.6,45.0,46.8,47.2,47.6,48.9,49.4,49.8,50.2,50.7,51.5,52.4|74,107,115,120,124,131,127,109,116,123,111,116,111,126,129,124,124,113,111,100,88,95,104,100,104,115,119,133,136,145,148,151,148,138,134,138,137,137,132,116,115,120,139,150,148,134,123,148,158,145,146,127,123,145,133,138,144,146,140,139,149,157,157,149,143,147,148,156,151,135,147,148,149,152,154,158,157,139,136,134,139,154,152,154,164,151,144,124,133,128,135|0.41,0.85,1.28,1.71,2.15,2.58,3.01,3.45,3.88,5.18,5.61,6.05,6.48,6.91,7.35,7.78,8.21,8.65,9.08,9.51,9.95,10.3,10.8,11.2,11.6,12.5,12.9,13.4,13.8,14.2,14.7,15.1,16.0,16.4,16.8,17.3,17.7,18.1,18.6,19.0,19.4,19.9,20.3,20.7,21.2,21.6,22.0,22.5,22.9,23.3,23.8,24.2,24.6,25.1,25.5,25.9,26.4,27.2,28.1,28.5,29.0,29.4,30.7,31.1,31.6,32.0,32.9,33.3,33.7,34.2,34.6,35.0,35.5,35.9,36.8,37.2,38.1,38.5,38.9,39.4,39.8,40.2,40.7,41.1,41.5,42.0,42.8,43.3,43.7,44.1,44.6,45.0,45.4,45.9,46.3,46.7,47.2,47.6,48.0,48.5,48.9,49.3,49.8,50.2,50.6,51.1,51.5,51.9,52.4,53.2,53.7,54.1,55.0,55.8,56.3,56.7,57.1,57.6,58.0,58.4,58.9,59.3|139,149,155,167,165,159,159,159,154,173,171,175,172,172,159,152,157,160,164,165,165,166,165,166,170,169,176,172,168,172,179,179,178,181,173,169,170,167,168,162,158,163,167,174,182,182,183,184,180,177,180,178,181,181,181,182,184,172,175,175,176,174,175,176,172,164,169,172,176,169,172,162,167,176,179,175,177,174,175,175,166,156,161,150,166,172,182,182,185,185,189,190,186,184,182,175,174,173,171,176,175,178,180,182,180,180,173,165,170,180,181,182,179,159,159,161,155,145,161,142,160,158&amp;chxr=0,0,59.35|1,74,190&amp;chds=0,59.35,74,190,0,59.35,74,190&amp;chco=ab1234,12ab34" alt="heart rate of Beginning Hip Hop vs. Dancing around the World"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It isn't difficult to guess that the Beginning Hip Hop is in red. I guess some would say that my heart rate peaking at 190 bpm is not a good thing, and an average of 171 bpm is not a good thing either. However, I feel fine. I'm in far more pain with certain flexibility requiring moves than I have with continuous jumping.&lt;br /&gt;&lt;br /&gt;And finally, a more relaxing graph: me sleeping.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://chart.apis.google.com/chart?cht=lxy&amp;chs=640x400&amp;chxt=x,y&amp;chd=t:0.783,1.583,2.383,3.183,3.983,4.783,5.583,7.983,11.18,11.98,12.78,14.38,15.18,15.98,17.58,18.38,19.18,23.98,24.78,25.58,26.38,27.18,27.98,28.78,29.58,30.38,31.18,31.98,32.78,34.38,35.18,35.98,36.78,37.58,39.18,39.98,40.78,42.38,43.98,44.78,45.58,46.38,47.18,47.98,48.78,50.38,51.18,51.98,52.78,53.58,54.38,55.18,55.98,56.78,58.38,59.18,59.98,60.78,61.58,62.38,63.18,63.98,64.78,65.58,66.38,67.18,67.98,68.78,70.38,71.98,72.78,73.58,74.38,75.18,75.98,76.78,77.58,78.38,79.18,79.98,80.78,81.58,82.38,83.18,83.98,84.78,85.58,86.38,87.18,87.98,88.78,89.58,90.38,91.98,92.78,93.58,94.38,95.18,95.98,96.78,97.58,98.38,99.18,99.98,100.7,101.5,102.3,103.1,103.9,104.7,105.5,106.3,107.1,107.9,108.7,109.5,110.3,111.1,111.9,112.7,113.5,114.3,115.1,115.9,116.7,117.5,118.3,119.1,119.9,120.7,121.5,122.3,123.1,123.9,124.7,125.5,126.3,127.1,127.9,128.7,129.5,130.3,131.9,132.7,133.5,134.3,135.1,135.9,136.7,137.5,138.3,139.1,139.9,140.7,141.5,142.3,143.1,143.9,144.7,145.5,146.3,147.1,147.9,149.5,151.1,151.9,152.7,153.5,154.3,155.9,156.7,159.9,160.7,161.5,162.3,163.9,164.7,166.3,167.1,168.7,169.5,170.3,171.1,172.7,173.5,174.3,175.1,175.9,176.7,177.5,178.3,179.1,180.7,181.5,182.3,183.1,183.9,184.7,185.5,186.3,187.1,187.9,188.7,189.5,190.3,191.1,191.9,193.5|77,68,69,69,64,70,73,66,58,63,70,62,60,64,70,64,66,76,70,73,77,81,70,67,65,61,73,62,62,61,76,65,66,59,60,59,62,60,65,60,108,73,72,66,69,61,63,58,58,59,58,60,60,61,58,60,61,59,60,61,59,60,61,60,65,61,65,54,61,63,61,58,60,64,60,59,61,68,61,63,71,63,59,70,62,67,72,70,66,73,72,69,71,67,69,75,71,64,75,66,77,63,65,67,62,67,60,64,61,61,59,61,61,60,60,60,62,64,60,61,64,60,60,65,60,62,59,64,59,58,59,59,57,59,59,61,59,57,57,61,56,62,52,55,72,55,58,57,56,54,57,57,55,57,55,54,55,55,57,70,53,78,60,58,58,60,60,61,61,60,61,60,60,62,61,61,59,64,56,60,58,61,65,67,74,68,69,70,67,76,68,69,63,65,66,67,65,69,68,63,63,70,64,72,63,66,65,76&amp;chxr=0,0.7833333333333333,193.58333333333334|1,52,108&amp;chds=0.7833333333333333,193.58333333333334,52,108"&gt;&lt;img alt="Heart rate while sleeping" src="http://chart.apis.google.com/chart?cht=lxy&amp;chs=320x240&amp;chxt=x,y&amp;chd=t:0.783,1.583,2.383,3.183,3.983,4.783,5.583,7.983,11.18,11.98,12.78,14.38,15.18,15.98,17.58,18.38,19.18,23.98,24.78,25.58,26.38,27.18,27.98,28.78,29.58,30.38,31.18,31.98,32.78,34.38,35.18,35.98,36.78,37.58,39.18,39.98,40.78,42.38,43.98,44.78,45.58,46.38,47.18,47.98,48.78,50.38,51.18,51.98,52.78,53.58,54.38,55.18,55.98,56.78,58.38,59.18,59.98,60.78,61.58,62.38,63.18,63.98,64.78,65.58,66.38,67.18,67.98,68.78,70.38,71.98,72.78,73.58,74.38,75.18,75.98,76.78,77.58,78.38,79.18,79.98,80.78,81.58,82.38,83.18,83.98,84.78,85.58,86.38,87.18,87.98,88.78,89.58,90.38,91.98,92.78,93.58,94.38,95.18,95.98,96.78,97.58,98.38,99.18,99.98,100.7,101.5,102.3,103.1,103.9,104.7,105.5,106.3,107.1,107.9,108.7,109.5,110.3,111.1,111.9,112.7,113.5,114.3,115.1,115.9,116.7,117.5,118.3,119.1,119.9,120.7,121.5,122.3,123.1,123.9,124.7,125.5,126.3,127.1,127.9,128.7,129.5,130.3,131.9,132.7,133.5,134.3,135.1,135.9,136.7,137.5,138.3,139.1,139.9,140.7,141.5,142.3,143.1,143.9,144.7,145.5,146.3,147.1,147.9,149.5,151.1,151.9,152.7,153.5,154.3,155.9,156.7,159.9,160.7,161.5,162.3,163.9,164.7,166.3,167.1,168.7,169.5,170.3,171.1,172.7,173.5,174.3,175.1,175.9,176.7,177.5,178.3,179.1,180.7,181.5,182.3,183.1,183.9,184.7,185.5,186.3,187.1,187.9,188.7,189.5,190.3,191.1,191.9,193.5|77,68,69,69,64,70,73,66,58,63,70,62,60,64,70,64,66,76,70,73,77,81,70,67,65,61,73,62,62,61,76,65,66,59,60,59,62,60,65,60,108,73,72,66,69,61,63,58,58,59,58,60,60,61,58,60,61,59,60,61,59,60,61,60,65,61,65,54,61,63,61,58,60,64,60,59,61,68,61,63,71,63,59,70,62,67,72,70,66,73,72,69,71,67,69,75,71,64,75,66,77,63,65,67,62,67,60,64,61,61,59,61,61,60,60,60,62,64,60,61,64,60,60,65,60,62,59,64,59,58,59,59,57,59,59,61,59,57,57,61,56,62,52,55,72,55,58,57,56,54,57,57,55,57,55,54,55,55,57,70,53,78,60,58,58,60,60,61,61,60,61,60,60,62,61,61,59,64,56,60,58,61,65,67,74,68,69,70,67,76,68,69,63,65,66,67,65,69,68,63,63,70,64,72,63,66,65,76&amp;chxr=0,0.7833333333333333,193.58333333333334|1,52,108&amp;chds=0.7833333333333333,193.58333333333334,52,108"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The graph looks busy, but the scale is actually quite narrow. I like the part where my heart rate drops down to 51 bpm. I'm also impressed how quickly it can go from 60 to over 100 (this usually happens when I stand up, so I guess I got out of bed at that time).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-8648861450651972605?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/8648861450651972605/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=8648861450651972605' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/8648861450651972605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/8648861450651972605'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2010/06/heart-rate-monitoring-7.html' title='Heart rate monitoring 7'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-6261781513849626214</id><published>2010-06-24T09:29:00.000-07:00</published><updated>2010-06-24T09:35:26.400-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Timex data xchanger'/><category scheme='http://www.blogger.com/atom/ns#' term='heart rate'/><title type='text'>Heart rate monitoring 6</title><content type='html'>A day later, and now I can compare two Beginning Hip Hop classes from Anna Botelho with each other:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://chart.apis.google.com/chart?cht=lxy&amp;chs=640x400&amp;chxt=x,y&amp;chd=t4:0,0.8,1.2,1.6,2.4,2.8,3.6,4,4.4,4.8,5.2,5.6,6,6.4,6.8,7.2,8,9.6,10,10.4,10.8,11.2,11.6,12,12.4,12.8,13.2,13.6,14.4,14.8,15.2,15.6,16,16.4,17.2,18,18.4,18.8,19.2,19.6,20,20.4,20.8,21.2,21.6,22,22.4,23.2,23.6,24,24.4,24.8,25.2,25.6,26.4,26.8,27.2,27.6,28,28.4,28.8,29.2,29.6,30.4,30.8,31.6,32,32.4,32.8,33.2,33.6,34,34.4,34.8,35.6,36,36.4,36.8,37.6,38.4,38.8,39.2,39.6,40,40.4,40.8,41.2,41.6,42,42.4,43.6,44,44.4,44.8,45.2,46,46.4,47.2,51.2,51.6,52,52.4,52.8,53.2,53.6,54,54.4,55.2|87,113,122,130,130,134,140,145,120,111,108,116,126,125,123,127,116,148,147,134,136,138,128,120,116,101,109,118,137,131,126,119,116,116,110,107,108,112,116,108,116,117,125,134,140,146,144,142,124,119,126,124,120,123,112,115,116,109,122,123,126,128,133,133,125,134,132,138,145,138,139,149,151,146,146,134,110,114,111,115,120,116,120,113,119,115,112,112,120,111,126,128,123,123,124,131,125,138,131,144,151,154,152,148,153,156,147,116|0,1.6,2,2.4,2.8,3.2,3.6,4,4.4,4.8,5.2,5.6,6.4,6.8,7.2,7.6,8,8.4,8.8,9.2,9.6,10,10.4,10.8,11.2,11.6,12,12.4,12.8,13.2,13.6,14,14.4,14.8,15.6,16.4,16.8,17.2,17.6,18,18.4,18.8,20,20.4,20.8,21.2,21.6,22,22.4,22.8,23.2,23.6,24,24.8,25.2,25.6,26,26.4,26.8,27.2,27.6,28,28.4,28.8,29.2,29.6,30,30.4,31.2,31.6,32,34,34.4,34.8,35.6,36,36.4,36.8,37.2,37.6,38,39.2,39.6,40,40.4,40.8,41.2,41.6,42,42.4,42.8,43.2,43.6,44,44.4,44.8,45.2,46,46.4,46.8,47.2,47.6,48,48.4,48.8,49.2,50.4,51.6,52.4|74,123,120,127,132,131,118,107,117,123,111,118,109,113,114,128,124,119,123,121,117,113,111,105,90,92,109,107,106,110,107,110,130,131,145,149,151,132,119,133,135,134,138,134,137,133,115,114,119,124,127,140,147,150,146,133,134,127,131,145,157,162,149,145,147,138,125,128,133,137,140,144,152,150,155,149,143,147,142,134,148,137,141,142,141,150,149,152,154,160,162,163,147,126,139,136,137,129,147,154,152,153,155,168,168,160,128,129,138&amp;chxr=0,0,55.2|1,74,168&amp;chds=0,55.2,74,168,0,55.2,74,168&amp;chco=ab1234,12ab34"&gt;&lt;img src="http://chart.apis.google.com/chart?cht=lxy&amp;chs=320x240&amp;chxt=x,y&amp;chd=t4:0,0.8,1.2,1.6,2.4,2.8,3.6,4,4.4,4.8,5.2,5.6,6,6.4,6.8,7.2,8,9.6,10,10.4,10.8,11.2,11.6,12,12.4,12.8,13.2,13.6,14.4,14.8,15.2,15.6,16,16.4,17.2,18,18.4,18.8,19.2,19.6,20,20.4,20.8,21.2,21.6,22,22.4,23.2,23.6,24,24.4,24.8,25.2,25.6,26.4,26.8,27.2,27.6,28,28.4,28.8,29.2,29.6,30.4,30.8,31.6,32,32.4,32.8,33.2,33.6,34,34.4,34.8,35.6,36,36.4,36.8,37.6,38.4,38.8,39.2,39.6,40,40.4,40.8,41.2,41.6,42,42.4,43.6,44,44.4,44.8,45.2,46,46.4,47.2,51.2,51.6,52,52.4,52.8,53.2,53.6,54,54.4,55.2|87,113,122,130,130,134,140,145,120,111,108,116,126,125,123,127,116,148,147,134,136,138,128,120,116,101,109,118,137,131,126,119,116,116,110,107,108,112,116,108,116,117,125,134,140,146,144,142,124,119,126,124,120,123,112,115,116,109,122,123,126,128,133,133,125,134,132,138,145,138,139,149,151,146,146,134,110,114,111,115,120,116,120,113,119,115,112,112,120,111,126,128,123,123,124,131,125,138,131,144,151,154,152,148,153,156,147,116|0,1.6,2,2.4,2.8,3.2,3.6,4,4.4,4.8,5.2,5.6,6.4,6.8,7.2,7.6,8,8.4,8.8,9.2,9.6,10,10.4,10.8,11.2,11.6,12,12.4,12.8,13.2,13.6,14,14.4,14.8,15.6,16.4,16.8,17.2,17.6,18,18.4,18.8,20,20.4,20.8,21.2,21.6,22,22.4,22.8,23.2,23.6,24,24.8,25.2,25.6,26,26.4,26.8,27.2,27.6,28,28.4,28.8,29.2,29.6,30,30.4,31.2,31.6,32,34,34.4,34.8,35.6,36,36.4,36.8,37.2,37.6,38,39.2,39.6,40,40.4,40.8,41.2,41.6,42,42.4,42.8,43.2,43.6,44,44.4,44.8,45.2,46,46.4,46.8,47.2,47.6,48,48.4,48.8,49.2,50.4,51.6,52.4|74,123,120,127,132,131,118,107,117,123,111,118,109,113,114,128,124,119,123,121,117,113,111,105,90,92,109,107,106,110,107,110,130,131,145,149,151,132,119,133,135,134,138,134,137,133,115,114,119,124,127,140,147,150,146,133,134,127,131,145,157,162,149,145,147,138,125,128,133,137,140,144,152,150,155,149,143,147,142,134,148,137,141,142,141,150,149,152,154,160,162,163,147,126,139,136,137,129,147,154,152,153,155,168,168,160,128,129,138&amp;chxr=0,0,55.2|1,74,168&amp;chds=0,55.2,74,168,0,55.2,74,168&amp;chco=ab1234,12ab34" alt="Heart rate of two beginning hip hop classes"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can clearly see each time she explains things, and each time we're practicing that particular move. The green graph is the latest class, which was a little bit more intense than the previous one. &lt;br /&gt;&lt;br /&gt;The software calculated 677 kCal burned, however, I was told these numbers are a bit high, so I checked how they are calculated. It seems that without knowing my VO2/max it is impossible to get a proper number, however, the software clearly things my VO2/max is higher than it actually is. So it is likely you have to reduce the numbers by 20%. I'll see if I can establish my VO2/max value at some point.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-6261781513849626214?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/6261781513849626214/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=6261781513849626214' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/6261781513849626214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/6261781513849626214'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2010/06/heart-rate-monitoring-6.html' title='Heart rate monitoring 6'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-7973958374986672629</id><published>2010-06-23T11:36:00.001-07:00</published><updated>2010-06-23T11:40:04.364-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Timex data xchanger'/><category scheme='http://www.blogger.com/atom/ns#' term='heart rate'/><title type='text'>Heart rate monitoring 5</title><content type='html'>With another week came more dance classes. First there was another class with Shaira Bhan, which allows me to compare two weeks of classes in one graph:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://chart.apis.google.com/chart?cht=lxy&amp;chs=640x400&amp;chxt=x,y&amp;chd=t4:1.38,2.31,3.71,4.18,4.65,6.05,6.51,6.98,7.45,7.91,8.38,8.85,9.78,10.2,10.7,11.1,12.1,12.5,13.0,13.5,13.9,14.4,14.9,15.3,16.3,16.7,17.2,17.7,18.1,18.6,19.1,19.5,20.0,20.5,20.9,21.4,21.9,22.3,22.8,23.3,23.7,24.2,24.7,25.1,25.6,27.0,27.5,27.9,28.4,28.9,29.3,29.8,30.3,31.2,31.7,32.1,32.6,33.1,33.5,34.0,34.5,34.9,35.4,35.9,36.3,37.3,37.7,38.2,38.7,39.1,39.6,40.1,41.0,41.5,41.9,42.4,43.3,43.8,44.3,44.7,45.2,46.1,46.6,47.0,47.5,48.0,48.4,49.3,50.7,51.7,52.1,53.1,53.5,54.9,55.9,56.3,56.8|110,113,124,117,116,129,136,150,159,165,154,151,168,176,154,137,150,156,161,166,167,167,166,163,145,151,161,162,156,159,162,165,168,143,116,122,128,138,154,158,163,164,165,166,164,170,165,160,169,165,179,169,146,151,166,177,177,174,181,176,185,185,167,171,176,177,177,176,175,173,157,148,154,165,169,168,162,148,148,151,153,173,179,173,173,161,156,138,170,156,157,158,137,134,138,138,137|0.46,0.93,1.4,1.86,2.33,2.8,3.26,3.73,4.2,4.66,5.13,5.6,6.06,6.53,7.46,8.4,8.86,9.33,9.8,10.2,10.7,11.6,12.1,12.6,13.0,13.5,14,14.4,14.9,15.4,15.8,16.3,16.8,17.2,17.7,18.6,19.1,19.6,20.0,21,21.4,21.9,22.8,23.8,24.2,24.7,25.2,25.6,26.1,26.6,27.5,28,28.9,29.4,29.8,30.3,31.2,32.2,32.6,33.1,34.0,34.5,35,35.4,35.9,36.4,36.8,37.3,37.8,38.2,38.7,39.2,40.1,40.6,41.0,41.5,42.4,42.9,43.4,43.8,44.3,45.2,45.7,46.2,46.6,47.1,47.6,48.0,48.5,49,49.4,49.9,50.4,51.3,51.8,52.2,52.7,53.2,53.6,54.1,54.6,55.5,56.4,56.9,58.3,58.8|81,89,81,110,97,102,114,128,128,134,135,138,138,135,125,157,156,155,164,153,155,153,150,152,145,156,156,152,164,165,169,168,164,166,168,168,171,173,163,138,159,161,149,167,172,166,157,154,152,160,172,174,175,170,172,169,150,158,178,183,180,182,173,177,172,168,151,141,145,147,146,151,160,165,166,169,163,164,169,173,167,170,168,170,167,162,154,140,136,164,172,182,185,181,179,182,179,162,153,150,141,144,140,131,142,149&amp;chxr=0,0,58.8|1,81,185&amp;chds=0,58.8,81,185,0,58.8,81,185&amp;chco=ab1234,12ab34"&gt;&lt;img src="http://chart.apis.google.com/chart?cht=lxy&amp;chs=320x240&amp;chxt=x,y&amp;chd=t4:1.38,2.31,3.71,4.18,4.65,6.05,6.51,6.98,7.45,7.91,8.38,8.85,9.78,10.2,10.7,11.1,12.1,12.5,13.0,13.5,13.9,14.4,14.9,15.3,16.3,16.7,17.2,17.7,18.1,18.6,19.1,19.5,20.0,20.5,20.9,21.4,21.9,22.3,22.8,23.3,23.7,24.2,24.7,25.1,25.6,27.0,27.5,27.9,28.4,28.9,29.3,29.8,30.3,31.2,31.7,32.1,32.6,33.1,33.5,34.0,34.5,34.9,35.4,35.9,36.3,37.3,37.7,38.2,38.7,39.1,39.6,40.1,41.0,41.5,41.9,42.4,43.3,43.8,44.3,44.7,45.2,46.1,46.6,47.0,47.5,48.0,48.4,49.3,50.7,51.7,52.1,53.1,53.5,54.9,55.9,56.3,56.8|110,113,124,117,116,129,136,150,159,165,154,151,168,176,154,137,150,156,161,166,167,167,166,163,145,151,161,162,156,159,162,165,168,143,116,122,128,138,154,158,163,164,165,166,164,170,165,160,169,165,179,169,146,151,166,177,177,174,181,176,185,185,167,171,176,177,177,176,175,173,157,148,154,165,169,168,162,148,148,151,153,173,179,173,173,161,156,138,170,156,157,158,137,134,138,138,137|0.46,0.93,1.4,1.86,2.33,2.8,3.26,3.73,4.2,4.66,5.13,5.6,6.06,6.53,7.46,8.4,8.86,9.33,9.8,10.2,10.7,11.6,12.1,12.6,13.0,13.5,14,14.4,14.9,15.4,15.8,16.3,16.8,17.2,17.7,18.6,19.1,19.6,20.0,21,21.4,21.9,22.8,23.8,24.2,24.7,25.2,25.6,26.1,26.6,27.5,28,28.9,29.4,29.8,30.3,31.2,32.2,32.6,33.1,34.0,34.5,35,35.4,35.9,36.4,36.8,37.3,37.8,38.2,38.7,39.2,40.1,40.6,41.0,41.5,42.4,42.9,43.4,43.8,44.3,45.2,45.7,46.2,46.6,47.1,47.6,48.0,48.5,49,49.4,49.9,50.4,51.3,51.8,52.2,52.7,53.2,53.6,54.1,54.6,55.5,56.4,56.9,58.3,58.8|81,89,81,110,97,102,114,128,128,134,135,138,138,135,125,157,156,155,164,153,155,153,150,152,145,156,156,152,164,165,169,168,164,166,168,168,171,173,163,138,159,161,149,167,172,166,157,154,152,160,172,174,175,170,172,169,150,158,178,183,180,182,173,177,172,168,151,141,145,147,146,151,160,165,166,169,163,164,169,173,167,170,168,170,167,162,154,140,136,164,172,182,185,181,179,182,179,162,153,150,141,144,140,131,142,149&amp;chxr=0,0,58.8|1,81,185&amp;chds=0,58.8,81,185,0,58.8,81,185&amp;chco=ab1234,12ab34" alt="Heart rate comparing two Bollywood dance classes of Shaira Bhan"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Green is the most recent dance class. As you can see, this time we didn't get our rest period practicing jumping up in sequence. The knee jumping was present (and brought my heart rate up to 188 in the second part, where we had to move the hands in the opposite direction of usual) and the circle "boot camp" was more intense as well. The end result was a total of 1113 kCal burned, which is higher than last time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-7973958374986672629?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/7973958374986672629/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=7973958374986672629' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/7973958374986672629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/7973958374986672629'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2010/06/heart-rate-monitoring-5.html' title='Heart rate monitoring 5'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-6827972629219057412</id><published>2010-06-22T10:24:00.000-07:00</published><updated>2010-06-22T10:29:18.921-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ISD4002'/><category scheme='http://www.blogger.com/atom/ns#' term='PIC18F2450'/><category scheme='http://www.blogger.com/atom/ns#' term='LM317'/><title type='text'>The turret project</title><content type='html'>Just to let you know what I'm currently working on (apart from editing my book): getting the ISD4002 to play sound. I hooked it up to a PIC18F2450 (first time I'm using an 18F series microcontroller, but getting it to work was relatively easy). My first issue was that the ISD4002 uses 3V, but I used an LM 317 equivalent to create a separate 3V supply. 3V into the miceocontroller is no problem (2V is considered 'high'), but the output needed to be scaled down. There was a solution on the Internet using a resistor network with a 1.5k and 1k resistor, but I decided to just toggle the TRIS register and have a pull up resistor to 3V, making the output switch between 0V and 3V.&lt;br /&gt;&lt;br /&gt;I thought I had everything coded correctly, but recently understood that the CLK can't have a frequency higher than 1,000 kHz (which some interpret as 1 kHz, but I think it means 1000 kHz). Since I'm clocking at 10 MHz, I might need to slow things down a bit, still. I'll try later with a shorter delay.&lt;br /&gt;&lt;br /&gt;The biggest problem is that I can't test what fails: I have to first record something, and then play it back. So I never know whether the recording or the playing back goes wrong. I might have to look at the responses from the chip to see if that indicates something.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-6827972629219057412?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/6827972629219057412/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=6827972629219057412' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/6827972629219057412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/6827972629219057412'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2010/06/turret-project.html' title='The turret project'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-7276057374871699787</id><published>2010-06-17T09:25:00.000-07:00</published><updated>2010-06-17T09:31:40.250-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Timex data xchanger'/><category scheme='http://www.blogger.com/atom/ns#' term='heart rate'/><title type='text'>Heart rate monitoring 4</title><content type='html'>Yesterday I went to the "Beginning Hip Hop" class again, with Anna Botelho. This is a fun class, and although there is some exercise involved, it certainly isn't the same as Shaira Bhan's class. And this is quite visible in the heart rate graph:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://chart.apis.google.com/chart?cht=lxy&amp;chs=640x400&amp;chxt=x,y&amp;chd=t4:0,0.8,1.2,1.6,2.4,2.8,3.6,4,4.4,4.8,5.2,5.6,6,6.4,6.8,7.2,8,9.6,10,10.4,10.8,11.2,11.6,12,12.4,12.8,13.2,13.6,14.4,14.8,15.2,15.6,16,16.4,17.2,18,18.4,18.8,19.2,19.6,20,20.4,20.8,21.2,21.6,22,22.4,23.2,23.6,24,24.4,24.8,25.2,25.6,26.4,26.8,27.2,27.6,28,28.4,28.8,29.2,29.6,30.4,30.8,31.6,32,32.4,32.8,33.2,33.6,34,34.4,34.8,35.6,36,36.4,36.8,37.6,38.4,38.8,39.2,39.6,40,40.4,40.8,41.2,41.6,42,42.4,43.6,44,44.4,44.8,45.2,46,46.4,47.2,51.2,51.6,52,52.4,52.8,53.2,53.6,54,54.4,55.2|87,113,122,130,130,134,140,145,120,111,108,116,126,125,123,127,116,148,147,134,136,138,128,120,116,101,109,118,137,131,126,119,116,116,110,107,108,112,116,108,116,117,125,134,140,146,144,142,124,119,126,124,120,123,112,115,116,109,122,123,126,128,133,133,125,134,132,138,145,138,139,149,151,146,146,134,110,114,111,115,120,116,120,113,119,115,112,112,120,111,126,128,123,123,124,131,125,138,131,144,151,154,152,148,153,156,147,116|0.78,2.38,3.58,3.98,4.38,4.78,5.98,6.38,6.78,7.18,7.58,7.98,8.38,8.78,9.18,9.58,9.98,10.3,10.7,11.1,11.9,12.3,12.7,13.1,13.9,14.3,14.7,15.1,15.5,16.3,16.7,17.1,17.5,17.9,18.3,18.7,19.1,19.5,19.9,20.3,20.7,21.9,22.3,22.7,23.1,23.5,23.9,24.3,24.7,25.1,25.9,26.7,27.1,27.5,27.9,28.3,28.7,29.1,29.5,29.9,31.1,31.9,32.3,32.7,33.1,33.5,33.9,34.7,35.1,35.5,35.9,36.3,36.7,37.1,37.5,37.9,38.7,39.1,39.5,39.9,40.3,40.7,41.5,41.9,43.1,43.9,44.7,45.1,45.5,46.7,47.1,47.5,47.9,48.7,49.1,49.5,49.9,50.7,51.1,51.9,52.7,53.1,54.3,55.9,56.3,57.1|102,113,127,108,126,118,126,138,146,153,160,163,154,151,158,177,173,173,152,137,148,155,164,163,167,167,167,165,154,143,151,160,165,158,156,162,161,165,169,163,118,122,138,151,157,158,163,164,166,166,163,167,171,163,160,164,165,170,174,165,149,181,177,176,176,181,178,186,182,165,172,176,179,177,175,177,174,173,160,151,145,152,167,169,169,146,151,152,162,177,173,173,163,157,151,133,150,171,163,156,154,158,135,138,136,135&amp;chxr=0,0,57.11666666666667|1,87,186&amp;chds=0,57.11666666666667,87,186,0,57.11666666666667,87,186&amp;chco=ab1234,12ab34"&gt;&lt;img alt="Heart rate while dancing, Bollywood vs. Beginning Hip Hop" src="http://chart.apis.google.com/chart?cht=lxy&amp;chs=320x240&amp;chxt=x,y&amp;chd=t4:0,0.8,1.2,1.6,2.4,2.8,3.6,4,4.4,4.8,5.2,5.6,6,6.4,6.8,7.2,8,9.6,10,10.4,10.8,11.2,11.6,12,12.4,12.8,13.2,13.6,14.4,14.8,15.2,15.6,16,16.4,17.2,18,18.4,18.8,19.2,19.6,20,20.4,20.8,21.2,21.6,22,22.4,23.2,23.6,24,24.4,24.8,25.2,25.6,26.4,26.8,27.2,27.6,28,28.4,28.8,29.2,29.6,30.4,30.8,31.6,32,32.4,32.8,33.2,33.6,34,34.4,34.8,35.6,36,36.4,36.8,37.6,38.4,38.8,39.2,39.6,40,40.4,40.8,41.2,41.6,42,42.4,43.6,44,44.4,44.8,45.2,46,46.4,47.2,51.2,51.6,52,52.4,52.8,53.2,53.6,54,54.4,55.2|87,113,122,130,130,134,140,145,120,111,108,116,126,125,123,127,116,148,147,134,136,138,128,120,116,101,109,118,137,131,126,119,116,116,110,107,108,112,116,108,116,117,125,134,140,146,144,142,124,119,126,124,120,123,112,115,116,109,122,123,126,128,133,133,125,134,132,138,145,138,139,149,151,146,146,134,110,114,111,115,120,116,120,113,119,115,112,112,120,111,126,128,123,123,124,131,125,138,131,144,151,154,152,148,153,156,147,116|0.78,2.38,3.58,3.98,4.38,4.78,5.98,6.38,6.78,7.18,7.58,7.98,8.38,8.78,9.18,9.58,9.98,10.3,10.7,11.1,11.9,12.3,12.7,13.1,13.9,14.3,14.7,15.1,15.5,16.3,16.7,17.1,17.5,17.9,18.3,18.7,19.1,19.5,19.9,20.3,20.7,21.9,22.3,22.7,23.1,23.5,23.9,24.3,24.7,25.1,25.9,26.7,27.1,27.5,27.9,28.3,28.7,29.1,29.5,29.9,31.1,31.9,32.3,32.7,33.1,33.5,33.9,34.7,35.1,35.5,35.9,36.3,36.7,37.1,37.5,37.9,38.7,39.1,39.5,39.9,40.3,40.7,41.5,41.9,43.1,43.9,44.7,45.1,45.5,46.7,47.1,47.5,47.9,48.7,49.1,49.5,49.9,50.7,51.1,51.9,52.7,53.1,54.3,55.9,56.3,57.1|102,113,127,108,126,118,126,138,146,153,160,163,154,151,158,177,173,173,152,137,148,155,164,163,167,167,167,165,154,143,151,160,165,158,156,162,161,165,169,163,118,122,138,151,157,158,163,164,166,166,163,167,171,163,160,164,165,170,174,165,149,181,177,176,176,181,178,186,182,165,172,176,179,177,175,177,174,173,160,151,145,152,167,169,169,146,151,152,162,177,173,173,163,157,151,133,150,171,163,156,154,158,135,138,136,135&amp;chxr=0,0,57.11666666666667|1,87,186&amp;chds=0,57.11666666666667,87,186,0,57.11666666666667,87,186&amp;chco=ab1234,12ab34"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Green is the Bollywood class, discussed previously, and red is the Beginning Hip Hop class, where we practiced turns. Focusing on proper execution of dance moves is clearly less intensive (although, in my opinion, far more difficult) than letting yourself go in Bollywood mayhem. The software that came with the watch agrees: I "only" used 677 kCal during this class.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-7276057374871699787?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/7276057374871699787/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=7276057374871699787' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/7276057374871699787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/7276057374871699787'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2010/06/heart-rate-monitoring-4.html' title='Heart rate monitoring 4'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-5434060491482283832</id><published>2010-06-16T09:08:00.000-07:00</published><updated>2010-06-17T09:32:06.310-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Timex data xchanger'/><category scheme='http://www.blogger.com/atom/ns#' term='heart rate'/><title type='text'>Heart rate 3</title><content type='html'>I wanted the heart rate monitor mostly to see what my heart does while I'm dancing, and I finally have a usable data set from my Bollywood class, with Shaira Bhan:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://chart.apis.google.com/chart?cht=lxy&amp;chs=640x400&amp;chxt=x,y&amp;chd=t:0.68,1.15,1.38,1.61,2.08,2.31,2.55,3.01,3.71,3.95,4.18,4.65,4.88,5.35,5.81,6.05,6.28,6.51,6.75,6.98,7.21,7.45,7.91,8.15,8.38,8.61,8.85,9.08,9.55,9.78,10.2,10.4,10.7,10.9,11.1,11.4,11.8,12.1,12.3,12.5,12.8,13.0,13.2,13.5,13.7,13.9,14.2,14.4,14.6,14.9,15.1,15.3,15.6,16.0,16.3,16.5,16.7,17.0,17.2,17.4,17.7,17.9,18.1,18.4,18.6,18.8,19.1,19.3,19.5,19.8,20.0,20.2,20.5,20.7,20.9,21.4,21.6,21.9,22.3,22.6,22.8,23.0,23.3,23.5,23.7,24.0,24.2,24.4,24.7,24.9,25.1,25.4,25.6,25.8,26.3,26.8,27.0,27.2,27.5,27.9,28.2,28.4,28.9,29.1,29.3,29.6,29.8,30.3,30.5,31.0,31.2,31.4,31.7,31.9,32.1,32.6,32.8,33.1,33.5,33.8,34.0,34.2,34.5,34.7,34.9,35.2,35.4,35.6,35.9,36.3,37.0,37.3,37.7,38.0,38.2,38.4,38.7,38.9,39.1,39.6,40.1,40.3,40.8,41.0,41.2,41.5,41.7,41.9,42.2,42.4,42.6,43.3,43.6,43.8,44.0,44.3,44.7,45.0,45.2,45.4,46.1,46.3,46.6,47.0,47.5,47.7,48.0,48.2,48.4,48.6,49.1,49.3,50.0,50.7,51.7,52.1,52.4,52.8,53.1,53.3,53.5,54.2,54.9,55.2,55.9,56.1,56.3,56.8,57.0,57.5|92,97,110,108,111,113,115,130,124,109,117,116,121,121,121,129,136,136,145,150,153,159,165,159,154,151,151,161,180,168,176,163,154,147,137,141,146,150,155,156,164,161,163,166,171,167,165,167,166,166,166,163,152,155,145,143,151,153,161,166,162,159,156,157,159,164,162,158,165,168,168,163,143,119,116,122,127,128,138,145,154,156,158,158,163,163,164,164,165,167,166,168,164,164,166,167,170,170,165,160,165,169,165,175,179,174,169,146,146,142,151,161,166,181,177,177,176,174,181,182,176,175,185,186,185,181,167,166,171,176,178,177,177,178,176,172,175,174,173,157,148,146,152,154,160,165,169,169,169,168,172,162,155,148,147,148,151,152,153,159,173,179,179,173,173,171,161,159,156,157,149,138,157,170,156,157,156,154,158,160,137,135,134,136,138,138,138,137,131,149&amp;chxr=0,0.6833333333333333,57.55|1,92,186&amp;chds=0.6833333333333333,57.55,92,186"&gt;&lt;img src="http://chart.apis.google.com/chart?cht=lxy&amp;chs=320x240&amp;chxt=x,y&amp;chd=t:0.68,1.15,1.38,1.61,2.08,2.31,2.55,3.01,3.71,3.95,4.18,4.65,4.88,5.35,5.81,6.05,6.28,6.51,6.75,6.98,7.21,7.45,7.91,8.15,8.38,8.61,8.85,9.08,9.55,9.78,10.2,10.4,10.7,10.9,11.1,11.4,11.8,12.1,12.3,12.5,12.8,13.0,13.2,13.5,13.7,13.9,14.2,14.4,14.6,14.9,15.1,15.3,15.6,16.0,16.3,16.5,16.7,17.0,17.2,17.4,17.7,17.9,18.1,18.4,18.6,18.8,19.1,19.3,19.5,19.8,20.0,20.2,20.5,20.7,20.9,21.4,21.6,21.9,22.3,22.6,22.8,23.0,23.3,23.5,23.7,24.0,24.2,24.4,24.7,24.9,25.1,25.4,25.6,25.8,26.3,26.8,27.0,27.2,27.5,27.9,28.2,28.4,28.9,29.1,29.3,29.6,29.8,30.3,30.5,31.0,31.2,31.4,31.7,31.9,32.1,32.6,32.8,33.1,33.5,33.8,34.0,34.2,34.5,34.7,34.9,35.2,35.4,35.6,35.9,36.3,37.0,37.3,37.7,38.0,38.2,38.4,38.7,38.9,39.1,39.6,40.1,40.3,40.8,41.0,41.2,41.5,41.7,41.9,42.2,42.4,42.6,43.3,43.6,43.8,44.0,44.3,44.7,45.0,45.2,45.4,46.1,46.3,46.6,47.0,47.5,47.7,48.0,48.2,48.4,48.6,49.1,49.3,50.0,50.7,51.7,52.1,52.4,52.8,53.1,53.3,53.5,54.2,54.9,55.2,55.9,56.1,56.3,56.8,57.0,57.5|92,97,110,108,111,113,115,130,124,109,117,116,121,121,121,129,136,136,145,150,153,159,165,159,154,151,151,161,180,168,176,163,154,147,137,141,146,150,155,156,164,161,163,166,171,167,165,167,166,166,166,163,152,155,145,143,151,153,161,166,162,159,156,157,159,164,162,158,165,168,168,163,143,119,116,122,127,128,138,145,154,156,158,158,163,163,164,164,165,167,166,168,164,164,166,167,170,170,165,160,165,169,165,175,179,174,169,146,146,142,151,161,166,181,177,177,176,174,181,182,176,175,185,186,185,181,167,166,171,176,178,177,177,178,176,172,175,174,173,157,148,146,152,154,160,165,169,169,169,168,172,162,155,148,147,148,151,152,153,159,173,179,179,173,173,171,161,159,156,157,149,138,157,170,156,157,156,154,158,160,137,135,134,136,138,138,138,137,131,149&amp;chxr=0,0.6833333333333333,57.55|1,92,186&amp;chds=0.6833333333333333,57.55,92,186" alt="heart rate Bollywood dance class"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As you can see, my heart gets a lot to do during this class. 185 might be considered too high for me, but I don't notice it and I'm having fun. The 185 peak was during the sequence of jumps where you lift your knees and move your elbows towards the knees. As you can see there is also a very odd dip, at about 21 minutes in, where my heart rate went down to 115. Here we practiced jumping up from a sitting position while keeping your head down and moving it up in a "cool" fashion. As you can see, we didn't do very well, as it took several minutes before we started dancing again. The software that came with the monitor calculated I burned 1076 kCal during the dance session (I assume it uses my weight and my heart rate to calculate this).&lt;br /&gt;&lt;br /&gt;I also gathered more data of me cycling, so I updated the &lt;a href="http://www.mosha.net/~jen/heart2.html"&gt;script&lt;/a&gt; to allow comparison of two graphs. It now requires additional parameters url2 and offset. Here are two days of cycling, I tried to match up the peaks (which are overpasses).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://chart.apis.google.com/chart?cht=lxy&amp;chs=640x400&amp;chxt=x,y&amp;chd=t4:0.48,0.98,1.48,1.98,2.48,2.98,3.48,3.98,4.48,4.98,5.48,5.98,6.48,6.98,7.48,7.98,8.48,8.98,9.48,9.98,10.4,10.9,11.4,12.4,12.9,13.4,13.9,14.4,15.9,16.4,16.9,17.4,17.9,18.4,18.9,19.4,19.9,20.4,20.9,21.4,21.9,22.4,22.9,23.4,24.4,24.9,25.4,25.9,26.4,26.9,27.4,27.9,28.4,28.9,29.4,29.9,30.4,30.9,31.4,31.9,32.4,32.9,33.4,33.9,34.4,34.9,35.4,35.9,36.4,36.9,37.4,37.9,38.4,38.9,39.4,39.9,40.4,40.9,41.4,41.9,42.4,42.9,43.4,43.9,44.4,44.9,45.4,45.9,46.4,46.9,47.4,47.9,48.4,48.9,49.4,49.9,50.4,51.4,51.9,52.4,52.9,53.4,53.9,54.4,54.9,55.4,55.9,56.4,56.9,57.4,57.9,58.4,58.9,59.4,59.9,60.4,60.9,61.4,61.9,62.4,62.9,63.4,63.9,64.4,64.9,65.4,65.9,66.4,66.9,67.4,67.9,68.4,68.9,69.4,69.9|90,81,92,81,74,67,69,91,70,73,70,69,89,96,92,87,83,83,74,80,87,94,91,78,75,82,90,85,80,93,90,98,100,92,78,78,72,87,93,86,102,105,94,98,84,87,113,102,108,105,95,104,111,113,118,111,101,113,117,118,114,115,118,120,118,116,117,140,143,106,108,106,119,121,122,123,112,116,133,131,146,143,113,122,107,114,123,125,121,122,127,127,129,128,134,138,132,118,114,100,101,89,95,92,91,84,90,88,84,78,80,81,93,86,84,82,82,86,80,82,79,80,75,77,77,76,75,77,78,75,78,75,73,74,77|15.4,15.9,16.4,17.4,17.9,18.4,18.9,19.4,19.9,20.4,20.9,21.4,21.9,22.4,22.9,23.4,23.9,24.4,24.9,25.4,25.9,26.4,26.9,27.4,27.9,28.4,28.9,29.4,29.9,30.4,30.9,31.4,31.9,32.4,32.9,33.4,33.9,34.4,34.9,35.4,35.9,36.4,36.9,37.4,37.9,38.4,38.9,39.4,39.9,40.4,40.9,41.4,41.9,42.4,42.9,43.4,43.9,44.4,44.9,45.4,45.9,46.4,46.9,47.4,47.9,48.9,49.4,49.9,50.4,50.9,51.4,51.9,52.4,52.9,53.4,53.9|85,96,81,75,66,64,62,64,75,86,73,61,65,73,64,63,78,74,73,85,86,76,72,71,72,74,79,88,86,89,85,90,93,89,93,105,105,98,105,111,114,130,126,121,114,120,122,126,125,126,121,115,121,135,128,107,120,125,124,123,123,121,114,122,129,156,152,145,137,127,127,127,134,126,131,135&amp;chxr=0,0,69.91666666666667|1,61,156&amp;chds=0,69.91666666666667,61,156,0,69.91666666666667,61,156&amp;chco=ab1234,12ab34"&gt;&lt;img alt="heart rate comparison cycling to work" src="http://chart.apis.google.com/chart?cht=lxy&amp;chs=320x240&amp;chxt=x,y&amp;chd=t4:0.48,0.98,1.48,1.98,2.48,2.98,3.48,3.98,4.48,4.98,5.48,5.98,6.48,6.98,7.48,7.98,8.48,8.98,9.48,9.98,10.4,10.9,11.4,12.4,12.9,13.4,13.9,14.4,15.9,16.4,16.9,17.4,17.9,18.4,18.9,19.4,19.9,20.4,20.9,21.4,21.9,22.4,22.9,23.4,24.4,24.9,25.4,25.9,26.4,26.9,27.4,27.9,28.4,28.9,29.4,29.9,30.4,30.9,31.4,31.9,32.4,32.9,33.4,33.9,34.4,34.9,35.4,35.9,36.4,36.9,37.4,37.9,38.4,38.9,39.4,39.9,40.4,40.9,41.4,41.9,42.4,42.9,43.4,43.9,44.4,44.9,45.4,45.9,46.4,46.9,47.4,47.9,48.4,48.9,49.4,49.9,50.4,51.4,51.9,52.4,52.9,53.4,53.9,54.4,54.9,55.4,55.9,56.4,56.9,57.4,57.9,58.4,58.9,59.4,59.9,60.4,60.9,61.4,61.9,62.4,62.9,63.4,63.9,64.4,64.9,65.4,65.9,66.4,66.9,67.4,67.9,68.4,68.9,69.4,69.9|90,81,92,81,74,67,69,91,70,73,70,69,89,96,92,87,83,83,74,80,87,94,91,78,75,82,90,85,80,93,90,98,100,92,78,78,72,87,93,86,102,105,94,98,84,87,113,102,108,105,95,104,111,113,118,111,101,113,117,118,114,115,118,120,118,116,117,140,143,106,108,106,119,121,122,123,112,116,133,131,146,143,113,122,107,114,123,125,121,122,127,127,129,128,134,138,132,118,114,100,101,89,95,92,91,84,90,88,84,78,80,81,93,86,84,82,82,86,80,82,79,80,75,77,77,76,75,77,78,75,78,75,73,74,77|15.4,15.9,16.4,17.4,17.9,18.4,18.9,19.4,19.9,20.4,20.9,21.4,21.9,22.4,22.9,23.4,23.9,24.4,24.9,25.4,25.9,26.4,26.9,27.4,27.9,28.4,28.9,29.4,29.9,30.4,30.9,31.4,31.9,32.4,32.9,33.4,33.9,34.4,34.9,35.4,35.9,36.4,36.9,37.4,37.9,38.4,38.9,39.4,39.9,40.4,40.9,41.4,41.9,42.4,42.9,43.4,43.9,44.4,44.9,45.4,45.9,46.4,46.9,47.4,47.9,48.9,49.4,49.9,50.4,50.9,51.4,51.9,52.4,52.9,53.4,53.9|85,96,81,75,66,64,62,64,75,86,73,61,65,73,64,63,78,74,73,85,86,76,72,71,72,74,79,88,86,89,85,90,93,89,93,105,105,98,105,111,114,130,126,121,114,120,122,126,125,126,121,115,121,135,128,107,120,125,124,123,123,121,114,122,129,156,152,145,137,127,127,127,134,126,131,135&amp;chxr=0,0,69.91666666666667|1,61,156&amp;chds=0,69.91666666666667,61,156,0,69.91666666666667,61,156&amp;chco=ab1234,12ab34"&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;As you can see the second time (in red) I had to wait for the traffic light at the bottom of the US-101, which meant the peak isn't as high. Here is the same chart comparison for the way back:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://chart.apis.google.com/chart?cht=lxy&amp;chs=640x400&amp;chxt=x,y&amp;chd=t4:0.21,0.45,0.68,0.91,1.15,1.38,1.61,1.85,2.08,2.31,2.55,2.78,3.01,3.25,3.48,3.71,3.95,4.18,4.41,4.65,4.88,5.11,5.35,5.58,5.81,6.05,6.28,6.51,6.75,6.98,7.21,7.45,7.68,7.91,8.15,8.38,8.61,8.85,9.08,9.31,9.55,9.78,10.0,10.2,10.4,10.7,10.9,11.1,11.4,11.6,11.8,12.1,12.3,12.5,12.8,13.0,13.2,13.5,13.7,13.9,14.2,14.4,14.6,14.9,15.1,15.3,15.6,15.8,16.0,16.3,16.5,16.7,17.0,17.2,17.4,17.7,17.9,18.1,18.4,18.6,18.8,19.1,19.3,19.5,19.8,20.0,20.2,20.5,20.7,20.9,21.2,21.4,21.6,21.9,22.1,22.6,22.8,23.0,23.3,23.5,23.7,24.0,24.2,24.4,24.7,24.9,25.1,25.4,25.6|102,114,108,97,105,99,97,88,101,105,111,113,114,118,121,122,121,113,123,114,104,105,107,110,109,122,125,125,123,121,117,116,117,120,115,117,116,118,120,123,120,122,119,122,123,127,128,125,120,117,125,127,130,129,126,132,141,144,149,142,128,122,123,131,128,131,130,135,138,140,142,143,132,120,129,137,140,142,142,139,124,120,133,139,144,146,147,139,131,134,137,137,133,125,117,121,118,120,116,120,118,119,125,130,129,126,121,121,137|3,3.23,3.46,3.7,3.93,4.16,4.4,4.63,4.86,5.1,5.33,5.56,5.8,6.03,6.26,6.5,6.73,6.96,7.2,7.43,7.66,7.9,8.13,8.36,8.6,8.83,9.06,9.3,9.53,9.76,10,10.2,10.7,10.9,11.1,11.4,11.6,11.8,12.1,12.3,12.5,12.8,13.0,13.2,13.5,13.7,14.2,14.4,14.6,14.9,15.1,15.3,15.6,15.8,16.0,16.3,16.5,16.7,17,17.2,17.4,17.7,17.9,18.1,18.6,18.8,19.1,19.3,19.5,19.8,20.0,20.2,20.5,20.7,20.9,21.2,21.4,21.6,21.9,22.1,22.3,22.6,22.8,23.0,23.3,23.5,23.7,24,24.2,24.4,24.7,24.9,25.1,25.4,25.6|132,132,130,135,128,139,151,149,145,143,142,139,137,134,134,135,136,135,134,135,135,136,136,134,132,131,134,134,141,141,139,134,137,135,143,143,138,139,146,154,162,162,151,137,133,135,142,142,137,130,132,129,133,135,137,133,134,132,133,133,133,132,131,130,130,135,138,136,133,129,130,133,134,131,128,125,122,125,124,131,126,126,127,127,132,132,134,131,127,125,134,141,129,138,128&amp;chxr=0,0,25.65|1,88,162&amp;chds=0,25.65,88,162,0,25.65,88,162&amp;chco=ab1234,12ab34"&gt;&lt;img alt="heart rate comparison cycling back" src="http://chart.apis.google.com/chart?cht=lxy&amp;chs=320x240&amp;chxt=x,y&amp;chd=t4:0.21,0.45,0.68,0.91,1.15,1.38,1.61,1.85,2.08,2.31,2.55,2.78,3.01,3.25,3.48,3.71,3.95,4.18,4.41,4.65,4.88,5.11,5.35,5.58,5.81,6.05,6.28,6.51,6.75,6.98,7.21,7.45,7.68,7.91,8.15,8.38,8.61,8.85,9.08,9.31,9.55,9.78,10.0,10.2,10.4,10.7,10.9,11.1,11.4,11.6,11.8,12.1,12.3,12.5,12.8,13.0,13.2,13.5,13.7,13.9,14.2,14.4,14.6,14.9,15.1,15.3,15.6,15.8,16.0,16.3,16.5,16.7,17.0,17.2,17.4,17.7,17.9,18.1,18.4,18.6,18.8,19.1,19.3,19.5,19.8,20.0,20.2,20.5,20.7,20.9,21.2,21.4,21.6,21.9,22.1,22.6,22.8,23.0,23.3,23.5,23.7,24.0,24.2,24.4,24.7,24.9,25.1,25.4,25.6|102,114,108,97,105,99,97,88,101,105,111,113,114,118,121,122,121,113,123,114,104,105,107,110,109,122,125,125,123,121,117,116,117,120,115,117,116,118,120,123,120,122,119,122,123,127,128,125,120,117,125,127,130,129,126,132,141,144,149,142,128,122,123,131,128,131,130,135,138,140,142,143,132,120,129,137,140,142,142,139,124,120,133,139,144,146,147,139,131,134,137,137,133,125,117,121,118,120,116,120,118,119,125,130,129,126,121,121,137|3,3.23,3.46,3.7,3.93,4.16,4.4,4.63,4.86,5.1,5.33,5.56,5.8,6.03,6.26,6.5,6.73,6.96,7.2,7.43,7.66,7.9,8.13,8.36,8.6,8.83,9.06,9.3,9.53,9.76,10,10.2,10.7,10.9,11.1,11.4,11.6,11.8,12.1,12.3,12.5,12.8,13.0,13.2,13.5,13.7,14.2,14.4,14.6,14.9,15.1,15.3,15.6,15.8,16.0,16.3,16.5,16.7,17,17.2,17.4,17.7,17.9,18.1,18.6,18.8,19.1,19.3,19.5,19.8,20.0,20.2,20.5,20.7,20.9,21.2,21.4,21.6,21.9,22.1,22.3,22.6,22.8,23.0,23.3,23.5,23.7,24,24.2,24.4,24.7,24.9,25.1,25.4,25.6|132,132,130,135,128,139,151,149,145,143,142,139,137,134,134,135,136,135,134,135,135,136,136,134,132,131,134,134,141,141,139,134,137,135,143,143,138,139,146,154,162,162,151,137,133,135,142,142,137,130,132,129,133,135,137,133,134,132,133,133,133,132,131,130,130,135,138,136,133,129,130,133,134,131,128,125,122,125,124,131,126,126,127,127,132,132,134,131,127,125,134,141,129,138,128&amp;chxr=0,0,25.65|1,88,162&amp;chds=0,25.65,88,162,0,25.65,88,162&amp;chco=ab1234,12ab34"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here there is a distinct difference in the beginning, which is easily explained. The red graph starts with me sitting in a chair at Google, working on my feature. The green graph starts with me leaving my Bollywood dancing class. This is also why the green graph is shorter: the dancing class is in a building that is closer to my house.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-5434060491482283832?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/5434060491482283832/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=5434060491482283832' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/5434060491482283832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/5434060491482283832'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2010/06/heart-rate-3.html' title='Heart rate 3'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-9024649194168017157</id><published>2010-06-15T08:34:00.000-07:00</published><updated>2010-06-15T08:52:30.879-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Timex data xchanger'/><category scheme='http://www.blogger.com/atom/ns#' term='heart rate'/><title type='text'>Heart rate monitoring 2</title><content type='html'>Here we have me resting:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://chart.apis.google.com/chart?cht=lxy&amp;chs=640x400&amp;chxt=x,y&amp;chd=t:0.08,0.18,0.28,0.38,0.48,0.58,0.68,0.78,0.88,1.18,1.38,1.48,1.68,1.88,1.98,2.18,2.28,2.38,2.68,2.98,3.58,3.68,3.78,3.88,4.08,4.38,4.48,4.68,4.78,5.08,5.58,5.78,5.98,6.18,6.38,6.48,6.58,6.68,6.78,6.88,6.98,7.88,8.08,8.18,8.38,9.08,9.18,9.28,9.38,9.58,9.68,9.78,9.88,9.98,10.0,10.1,10.2,10.3,10.4,10.5,10.6,10.7,10.8,10.9,11.0,11.1,11.2,11.3,11.4,11.5,11.6,11.7,11.8,11.9,12.0,12.1,12.2,12.3,12.4,12.5,12.6,12.7,12.8,12.9,13.0,13.1,13.2,13.3,13.4,13.5,13.6,13.7,13.8,13.9,14.0,14.1,14.2,14.3,14.4,14.5,14.6,14.7,14.8,14.9,15.0,15.1,15.2,15.3,15.4,15.5,15.6,15.7,15.8,15.9,16.0,16.1,16.2,16.3,16.4,16.5,16.6,16.7,16.8,16.9,17.0,17.1,17.2,17.3,17.4,17.5,17.6,17.7,17.8,17.9,18.0,18.1,18.2,18.3,18.4,18.5,18.6,18.7,18.8,18.9,19.0,19.1,19.2,19.3,19.4,19.5,19.6,19.7,19.8,19.9,20.0,20.1,20.2,20.3,20.4,20.5,20.6,20.7,20.8,20.9,21.0,21.1,21.2,21.3,21.4,21.5,21.6,21.7,21.8,21.9,22.0,22.1,22.2,22.3,22.4,22.5,22.6,22.7,22.8,22.9,23.0,23.1,23.2,23.3,23.4,23.5|81,83,74,75,76,73,77,84,83,82,74,72,69,71,66,61,61,61,62,63,79,83,83,83,82,65,66,64,64,61,60,60,69,60,66,58,56,58,58,59,64,66,66,63,61,68,68,69,78,69,66,66,68,68,76,72,71,70,72,73,69,65,67,66,65,67,63,64,68,72,70,73,70,65,64,63,63,62,61,60,59,59,61,61,64,66,62,63,65,68,66,65,68,65,64,61,62,62,62,60,60,61,59,59,59,58,58,62,62,59,58,61,61,60,61,61,60,61,61,64,64,60,57,56,60,60,59,60,60,59,58,57,57,57,60,62,61,59,60,59,59,60,61,59,60,60,60,60,60,60,59,60,59,57,57,58,56,57,57,58,59,57,56,56,56,57,58,59,55,54,54,56,57,58,56,55,56,57,59,62,63,63,63,63,64,63,63,62,63,63&amp;chxr=0,0.08333333333333333,23.583333333333332|1,54,84&amp;chds=0.08333333333333333,23.583333333333332,54,84"&gt;&lt;img alt="heart rate resting" src="http://chart.apis.google.com/chart?cht=lxy&amp;chs=320x240&amp;chxt=x,y&amp;chd=t:0.08,0.18,0.28,0.38,0.48,0.58,0.68,0.78,0.88,1.18,1.38,1.48,1.68,1.88,1.98,2.18,2.28,2.38,2.68,2.98,3.58,3.68,3.78,3.88,4.08,4.38,4.48,4.68,4.78,5.08,5.58,5.78,5.98,6.18,6.38,6.48,6.58,6.68,6.78,6.88,6.98,7.88,8.08,8.18,8.38,9.08,9.18,9.28,9.38,9.58,9.68,9.78,9.88,9.98,10.0,10.1,10.2,10.3,10.4,10.5,10.6,10.7,10.8,10.9,11.0,11.1,11.2,11.3,11.4,11.5,11.6,11.7,11.8,11.9,12.0,12.1,12.2,12.3,12.4,12.5,12.6,12.7,12.8,12.9,13.0,13.1,13.2,13.3,13.4,13.5,13.6,13.7,13.8,13.9,14.0,14.1,14.2,14.3,14.4,14.5,14.6,14.7,14.8,14.9,15.0,15.1,15.2,15.3,15.4,15.5,15.6,15.7,15.8,15.9,16.0,16.1,16.2,16.3,16.4,16.5,16.6,16.7,16.8,16.9,17.0,17.1,17.2,17.3,17.4,17.5,17.6,17.7,17.8,17.9,18.0,18.1,18.2,18.3,18.4,18.5,18.6,18.7,18.8,18.9,19.0,19.1,19.2,19.3,19.4,19.5,19.6,19.7,19.8,19.9,20.0,20.1,20.2,20.3,20.4,20.5,20.6,20.7,20.8,20.9,21.0,21.1,21.2,21.3,21.4,21.5,21.6,21.7,21.8,21.9,22.0,22.1,22.2,22.3,22.4,22.5,22.6,22.7,22.8,22.9,23.0,23.1,23.2,23.3,23.4,23.5|81,83,74,75,76,73,77,84,83,82,74,72,69,71,66,61,61,61,62,63,79,83,83,83,82,65,66,64,64,61,60,60,69,60,66,58,56,58,58,59,64,66,66,63,61,68,68,69,78,69,66,66,68,68,76,72,71,70,72,73,69,65,67,66,65,67,63,64,68,72,70,73,70,65,64,63,63,62,61,60,59,59,61,61,64,66,62,63,65,68,66,65,68,65,64,61,62,62,62,60,60,61,59,59,59,58,58,62,62,59,58,61,61,60,61,61,60,61,61,64,64,60,57,56,60,60,59,60,60,59,58,57,57,57,60,62,61,59,60,59,59,60,61,59,60,60,60,60,60,60,59,60,59,57,57,58,56,57,57,58,59,57,56,56,56,57,58,59,55,54,54,56,57,58,56,55,56,57,59,62,63,63,63,63,64,63,63,62,63,63&amp;chxr=0,0.08333333333333333,23.583333333333332|1,54,84&amp;chds=0.08333333333333333,23.583333333333332,54,84"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It looks as if a lot is happening, but if you look at the scale you can tell it is actually quite low. I tried measuring myself while sleeping, but the problem with that is that the watch keeps beeping (despite me having beeps off) which wakes me up. You'd imagine my heart rate while resting and while bathing are very similar, but this is not the case:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://chart.apis.google.com/chart?cht=lxy&amp;chs=640x400&amp;chxt=x,y&amp;chd=t:0.13,0.23,0.33,0.43,0.53,0.63,0.73,0.83,0.93,1.03,1.13,1.23,1.33,1.43,1.53,1.63,1.73,1.83,1.93,2.03,2.13,2.23,2.33,2.43,2.53,2.63,2.73,2.83,2.93,3.03,3.13,3.23,3.33,3.43,3.53,3.63,3.73,3.83,3.93,4.03,4.13,4.23,4.33,4.43,4.53,4.63,4.73,4.83,4.93,5.03,5.13,5.23,5.33,5.43,5.53,5.63,5.73,5.83,5.93,6.03,6.13,6.23,6.33,6.43,6.53,6.63,6.73,6.83,6.93,7.03,7.13,7.23,7.33,7.43,7.53,7.63,7.73,7.83,7.93,8.03,8.13,8.23,8.33,8.43,8.53,8.63,8.73,8.83,8.93,9.03,9.13,9.23,9.33,9.43,9.53,9.63,9.73,9.83,9.93,10.0,10.1,10.2,10.3,10.4,10.5,10.6,10.7,10.8,10.9,11.0,11.1,11.2,11.3,11.4,11.5,11.6,11.7,11.8,11.9,12.0,12.1,12.2,12.3,12.4,12.5,12.6,12.7,12.8,12.9,13.0,13.1,13.2,13.3,13.4,13.5,13.6,13.7,13.8,13.9,14.0,14.1,14.2,14.3,14.4,14.5,14.6,14.7,14.8,14.9,15.0,15.1,15.2,15.3,15.4,15.5,15.6,15.7,15.8,15.9,16.0,16.1,16.2,16.3,16.4,16.5,16.6,16.7,16.8,16.9,17.0,17.1,17.2,17.3,17.4,17.5,17.6,17.7,17.8,17.9,18.0,18.1,18.2,18.3,18.4,18.5,18.6,18.7,18.8,18.9,19.0,19.1,19.2,19.3,19.4,19.5,19.6,19.7,19.8,19.9,20.0|103,99,99,94,96,86,79,74,80,83,92,85,84,80,85,80,82,84,89,83,98,88,96,88,85,83,85,93,84,81,85,81,79,83,95,86,84,85,88,97,99,95,89,87,86,95,99,84,80,82,81,81,80,80,84,86,83,81,81,82,85,86,88,86,87,87,92,92,88,87,88,93,95,93,90,91,92,101,101,99,98,97,98,100,102,104,106,100,99,97,98,100,98,98,97,99,100,101,100,103,105,110,104,100,99,100,100,101,103,105,104,104,103,109,106,104,101,102,107,106,105,105,105,106,113,105,101,100,99,100,102,101,102,102,102,101,100,98,98,98,106,105,100,99,100,104,101,107,107,100,100,99,101,101,102,101,106,111,110,105,103,107,104,106,107,100,96,96,96,101,100,98,100,104,109,107,100,101,98,95,94,93,94,95,94,95,96,96,97,100,96,95,96,94,92,96,99,101,100,108&amp;chxr=0,0.13333333333333333,20.033333333333335|1,74,113&amp;chds=0.13333333333333333,20.033333333333335,74,113"&gt;&lt;img alt="heart rate bathing" src="http://chart.apis.google.com/chart?cht=lxy&amp;chs=320x240&amp;chxt=x,y&amp;chd=t:0.13,0.23,0.33,0.43,0.53,0.63,0.73,0.83,0.93,1.03,1.13,1.23,1.33,1.43,1.53,1.63,1.73,1.83,1.93,2.03,2.13,2.23,2.33,2.43,2.53,2.63,2.73,2.83,2.93,3.03,3.13,3.23,3.33,3.43,3.53,3.63,3.73,3.83,3.93,4.03,4.13,4.23,4.33,4.43,4.53,4.63,4.73,4.83,4.93,5.03,5.13,5.23,5.33,5.43,5.53,5.63,5.73,5.83,5.93,6.03,6.13,6.23,6.33,6.43,6.53,6.63,6.73,6.83,6.93,7.03,7.13,7.23,7.33,7.43,7.53,7.63,7.73,7.83,7.93,8.03,8.13,8.23,8.33,8.43,8.53,8.63,8.73,8.83,8.93,9.03,9.13,9.23,9.33,9.43,9.53,9.63,9.73,9.83,9.93,10.0,10.1,10.2,10.3,10.4,10.5,10.6,10.7,10.8,10.9,11.0,11.1,11.2,11.3,11.4,11.5,11.6,11.7,11.8,11.9,12.0,12.1,12.2,12.3,12.4,12.5,12.6,12.7,12.8,12.9,13.0,13.1,13.2,13.3,13.4,13.5,13.6,13.7,13.8,13.9,14.0,14.1,14.2,14.3,14.4,14.5,14.6,14.7,14.8,14.9,15.0,15.1,15.2,15.3,15.4,15.5,15.6,15.7,15.8,15.9,16.0,16.1,16.2,16.3,16.4,16.5,16.6,16.7,16.8,16.9,17.0,17.1,17.2,17.3,17.4,17.5,17.6,17.7,17.8,17.9,18.0,18.1,18.2,18.3,18.4,18.5,18.6,18.7,18.8,18.9,19.0,19.1,19.2,19.3,19.4,19.5,19.6,19.7,19.8,19.9,20.0|103,99,99,94,96,86,79,74,80,83,92,85,84,80,85,80,82,84,89,83,98,88,96,88,85,83,85,93,84,81,85,81,79,83,95,86,84,85,88,97,99,95,89,87,86,95,99,84,80,82,81,81,80,80,84,86,83,81,81,82,85,86,88,86,87,87,92,92,88,87,88,93,95,93,90,91,92,101,101,99,98,97,98,100,102,104,106,100,99,97,98,100,98,98,97,99,100,101,100,103,105,110,104,100,99,100,100,101,103,105,104,104,103,109,106,104,101,102,107,106,105,105,105,106,113,105,101,100,99,100,102,101,102,102,102,101,100,98,98,98,106,105,100,99,100,104,101,107,107,100,100,99,101,101,102,101,106,111,110,105,103,107,104,106,107,100,96,96,96,101,100,98,100,104,109,107,100,101,98,95,94,93,94,95,94,95,96,96,97,100,96,95,96,94,92,96,99,101,100,108&amp;chxr=0,0.13333333333333333,20.033333333333335|1,74,113&amp;chds=0.13333333333333333,20.033333333333335,74,113"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;while bathing my heart rate is much higher, even though I feel quite relaxed. Maybe this is because the water is hot? Finally, here is an actual exercise session, including 10 minutes cycling, followed by lots of walking and running on a treadmill. The peak, where my heart rate is 182, is when I'm going 8 miles/hour on a slope of setting 1.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://chart.apis.google.com/chart?cht=lxy&amp;chs=640x400&amp;chxt=x,y&amp;chd=t:0,0.26,0.53,0.8,1.06,1.33,1.6,1.86,2.4,2.66,2.93,3.46,3.73,4,4.26,4.53,4.8,5.06,5.33,5.6,5.86,6.13,6.93,7.2,7.46,7.73,8,8.26,8.53,8.8,9.06,9.33,9.6,9.86,10.1,10.4,10.6,10.9,11.2,11.4,11.7,12,12.2,12.5,12.8,13.0,13.3,13.6,14.1,14.4,14.6,14.9,15.2,15.4,15.7,16,16.2,16.5,16.8,17.0,17.3,17.6,17.8,18.1,18.4,18.6,18.9,19.4,19.7,20,20.2,20.5,20.8,21.0,21.3,21.6,21.8,22.1,22.4,22.6,22.9,23.2,23.4,23.7,24,24.2,24.5,24.8,25.0,25.3,25.6,25.8,26.1,26.4,26.6,26.9,27.1,27.4,27.7,27.9,28.2,28.5,28.7,29.0,29.3,29.5,29.8,30.1,30.3,30.6,30.9,31.1,31.4,31.7,31.9,32.2,32.5,32.7,33.0,33.3,33.5,33.8,34.1,34.3,34.6,34.9,35.1,35.4,35.7,35.9,36.2,36.5,36.7,37.0,37.5,37.8,38.1,38.3,38.6,38.9,39.1,39.4,39.7,39.9,40.2,40.5,40.7,41.0,41.3,41.5,42.1,42.3,42.6,42.9,43.1,43.4,43.7,43.9,44.2,44.5,44.7,45.0,45.3,45.5,45.8,46.1,46.3,46.6,46.9,47.1,47.4,47.9,48.2,48.5,48.7,49.0,49.3,49.5,49.8,50.1,50.3,50.6,50.9,51.1,51.4,51.7,51.9,52.2,52.5,52.7,53.0,53.3,53.5,53.8,54.0,54.3,54.6,54.8,55.1,55.4,55.6,55.9,56.2|141,131,127,112,107,95,91,94,94,100,101,93,99,93,94,95,97,96,97,95,93,98,99,95,91,93,86,82,80,93,91,101,95,86,97,96,101,101,109,114,96,97,105,116,121,127,130,132,138,138,139,142,136,135,132,130,130,130,129,127,131,128,128,127,128,133,135,139,139,140,136,131,133,133,130,127,130,130,146,146,148,155,155,153,152,155,155,155,156,147,132,131,137,137,136,134,140,137,139,139,140,143,143,142,145,147,149,144,142,137,145,147,145,145,152,151,141,143,142,144,149,150,150,150,151,154,155,156,159,163,166,168,167,167,169,170,168,172,173,169,163,159,158,152,150,161,172,177,180,183,183,184,182,183,184,181,182,179,174,169,165,161,158,158,158,159,162,162,163,162,162,159,161,166,168,167,166,167,166,166,165,165,167,163,164,164,159,160,156,151,148,147,152,151,144,135,138,136,133,130,145,151,146&amp;chxr=0,0,56.2|1,80,184&amp;chds=0,56.2,80,184"&gt;&lt;img src="http://chart.apis.google.com/chart?cht=lxy&amp;chs=320x240&amp;chxt=x,y&amp;chd=t:0,0.26,0.53,0.8,1.06,1.33,1.6,1.86,2.4,2.66,2.93,3.46,3.73,4,4.26,4.53,4.8,5.06,5.33,5.6,5.86,6.13,6.93,7.2,7.46,7.73,8,8.26,8.53,8.8,9.06,9.33,9.6,9.86,10.1,10.4,10.6,10.9,11.2,11.4,11.7,12,12.2,12.5,12.8,13.0,13.3,13.6,14.1,14.4,14.6,14.9,15.2,15.4,15.7,16,16.2,16.5,16.8,17.0,17.3,17.6,17.8,18.1,18.4,18.6,18.9,19.4,19.7,20,20.2,20.5,20.8,21.0,21.3,21.6,21.8,22.1,22.4,22.6,22.9,23.2,23.4,23.7,24,24.2,24.5,24.8,25.0,25.3,25.6,25.8,26.1,26.4,26.6,26.9,27.1,27.4,27.7,27.9,28.2,28.5,28.7,29.0,29.3,29.5,29.8,30.1,30.3,30.6,30.9,31.1,31.4,31.7,31.9,32.2,32.5,32.7,33.0,33.3,33.5,33.8,34.1,34.3,34.6,34.9,35.1,35.4,35.7,35.9,36.2,36.5,36.7,37.0,37.5,37.8,38.1,38.3,38.6,38.9,39.1,39.4,39.7,39.9,40.2,40.5,40.7,41.0,41.3,41.5,42.1,42.3,42.6,42.9,43.1,43.4,43.7,43.9,44.2,44.5,44.7,45.0,45.3,45.5,45.8,46.1,46.3,46.6,46.9,47.1,47.4,47.9,48.2,48.5,48.7,49.0,49.3,49.5,49.8,50.1,50.3,50.6,50.9,51.1,51.4,51.7,51.9,52.2,52.5,52.7,53.0,53.3,53.5,53.8,54.0,54.3,54.6,54.8,55.1,55.4,55.6,55.9,56.2|141,131,127,112,107,95,91,94,94,100,101,93,99,93,94,95,97,96,97,95,93,98,99,95,91,93,86,82,80,93,91,101,95,86,97,96,101,101,109,114,96,97,105,116,121,127,130,132,138,138,139,142,136,135,132,130,130,130,129,127,131,128,128,127,128,133,135,139,139,140,136,131,133,133,130,127,130,130,146,146,148,155,155,153,152,155,155,155,156,147,132,131,137,137,136,134,140,137,139,139,140,143,143,142,145,147,149,144,142,137,145,147,145,145,152,151,141,143,142,144,149,150,150,150,151,154,155,156,159,163,166,168,167,167,169,170,168,172,173,169,163,159,158,152,150,161,172,177,180,183,183,184,182,183,184,181,182,179,174,169,165,161,158,158,158,159,162,162,163,162,162,159,161,166,168,167,166,167,166,166,165,165,167,163,164,164,159,160,156,151,148,147,152,151,144,135,138,136,133,130,145,151,146&amp;chxr=0,0,56.2|1,80,184&amp;chds=0,56.2,80,184" alt="Heart rate exercising"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-9024649194168017157?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/9024649194168017157/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=9024649194168017157' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/9024649194168017157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/9024649194168017157'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2010/06/heart-rate-monitoring-2.html' title='Heart rate monitoring 2'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-6876349515943675529</id><published>2010-06-11T09:48:00.000-07:00</published><updated>2010-06-15T08:34:34.583-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Timex data xchanger'/><category scheme='http://www.blogger.com/atom/ns#' term='heart rate'/><title type='text'>Heart rate monitoring</title><content type='html'>I'm not sure if this should be posted as "Emerging Drake" or as "Occlusion Culling"... It fits in both categories. But since I might create more projects regarding heart rate monitoring, I decided to post it here.&lt;br /&gt;&lt;br /&gt;My mother recently gave me a heart rate monitor, which has the option of uploading the data to a website. Fortunately there are various ways of retrieving the data yourself, and processing it. I wrote a little &lt;a href="http://www.mosha.net/~jen/heart.html"&gt;script&lt;/a&gt;, that, when provided with an url=&lt;file&gt; parameter (try "cashimor.xml") plots the data from the file. I'm not sure if this is a generic file format, or whether it only applies to the Timex Ironman with data xchanger. Anyway, here is the first graph:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://chart.apis.google.com/chart?cht=lxy&amp;chs=640x400&amp;chxt=x,y&amp;chd=t:0.18,0.38,0.58,0.78,0.98,1.18,1.38,1.58,1.78,2.18,2.38,2.58,2.78,2.98,3.18,3.38,3.58,3.78,3.98,4.18,4.38,4.58,4.78,4.98,5.18,5.38,5.58,5.78,5.98,6.18,6.38,6.58,6.78,6.98,7.18,7.38,7.58,7.78,7.98,8.18,8.38,8.58,8.78,8.98,9.18,9.38,9.58,9.78,9.98,10.1,10.3,10.5,10.9,11.1,11.3,11.5,11.7,11.9,12.1,12.3,12.5,12.7,12.9,13.1,13.3,13.5,13.7,13.9,14.1,14.3,14.5,14.7,14.9,15.1,15.3,15.5,15.7,15.9,16.1,16.3,16.5,16.7,16.9,17.1,17.5,17.7,17.9,18.1,18.3,18.5,18.7,18.9,19.1,19.3,19.5,19.7,19.9,20.1,20.3,20.5,20.9,21.1,21.3,21.5,21.7,21.9,22.1,22.3,22.5,22.7,22.9,23.1,23.3,23.5,23.7,23.9,24.1,24.3,24.5,24.7,24.9,25.1,25.3,25.5,25.7,25.9,26.1,26.3,26.5,26.7,26.9,27.1,27.3,27.5,27.7,27.9,28.1,28.3,28.5,28.7,28.9,29.1,29.3,29.5,29.7,29.9,30.1,30.3,30.5,30.7,30.9,31.1,31.3,31.5,31.7,31.9,32.1,32.3,32.5,32.7,32.9,33.1,33.3,33.5,33.7,33.9,34.1,34.3,34.5,34.7,34.9,35.1,35.3,35.5,35.7,35.9,36.1,36.3,36.5,36.7,36.9,37.1,37.3,37.5,37.7,37.9,38.1,38.3,38.5,38.7,38.9,39.1,39.3|87,87,90,91,96,90,85,81,85,81,75,72,67,66,65,67,61,61,62,75,69,62,62,75,86,86,84,78,73,68,62,61,61,65,69,71,69,68,64,66,64,71,86,78,86,78,79,77,73,74,74,82,86,82,77,75,76,72,70,68,72,71,72,72,76,73,70,79,93,85,89,87,86,95,94,91,90,85,86,98,86,92,93,87,90,104,93,102,100,108,109,105,96,100,100,108,105,104,111,109,114,121,129,129,128,126,125,123,118,116,114,117,119,120,121,122,125,124,125,128,125,125,126,126,123,121,121,110,115,120,121,128,134,135,135,128,115,100,111,117,120,120,123,126,123,124,123,124,123,122,123,123,122,124,121,114,113,121,123,124,129,141,147,149,153,156,153,153,152,149,145,141,140,133,131,127,130,128,127,123,127,131,134,133,130,126,131,132,133,136,135,138,140&amp;chxr=0,0.18333333333333332,39.35|1,61,156&amp;chds=0.18333333333333332,39.35,61,156"&gt;&lt;img alt="Heart rate graph cycling" src="http://chart.apis.google.com/chart?cht=lxy&amp;chs=320x240&amp;chxt=x,y&amp;chd=t:0.18,0.38,0.58,0.78,0.98,1.18,1.38,1.58,1.78,2.18,2.38,2.58,2.78,2.98,3.18,3.38,3.58,3.78,3.98,4.18,4.38,4.58,4.78,4.98,5.18,5.38,5.58,5.78,5.98,6.18,6.38,6.58,6.78,6.98,7.18,7.38,7.58,7.78,7.98,8.18,8.38,8.58,8.78,8.98,9.18,9.38,9.58,9.78,9.98,10.1,10.3,10.5,10.9,11.1,11.3,11.5,11.7,11.9,12.1,12.3,12.5,12.7,12.9,13.1,13.3,13.5,13.7,13.9,14.1,14.3,14.5,14.7,14.9,15.1,15.3,15.5,15.7,15.9,16.1,16.3,16.5,16.7,16.9,17.1,17.5,17.7,17.9,18.1,18.3,18.5,18.7,18.9,19.1,19.3,19.5,19.7,19.9,20.1,20.3,20.5,20.9,21.1,21.3,21.5,21.7,21.9,22.1,22.3,22.5,22.7,22.9,23.1,23.3,23.5,23.7,23.9,24.1,24.3,24.5,24.7,24.9,25.1,25.3,25.5,25.7,25.9,26.1,26.3,26.5,26.7,26.9,27.1,27.3,27.5,27.7,27.9,28.1,28.3,28.5,28.7,28.9,29.1,29.3,29.5,29.7,29.9,30.1,30.3,30.5,30.7,30.9,31.1,31.3,31.5,31.7,31.9,32.1,32.3,32.5,32.7,32.9,33.1,33.3,33.5,33.7,33.9,34.1,34.3,34.5,34.7,34.9,35.1,35.3,35.5,35.7,35.9,36.1,36.3,36.5,36.7,36.9,37.1,37.3,37.5,37.7,37.9,38.1,38.3,38.5,38.7,38.9,39.1,39.3|87,87,90,91,96,90,85,81,85,81,75,72,67,66,65,67,61,61,62,75,69,62,62,75,86,86,84,78,73,68,62,61,61,65,69,71,69,68,64,66,64,71,86,78,86,78,79,77,73,74,74,82,86,82,77,75,76,72,70,68,72,71,72,72,76,73,70,79,93,85,89,87,86,95,94,91,90,85,86,98,86,92,93,87,90,104,93,102,100,108,109,105,96,100,100,108,105,104,111,109,114,121,129,129,128,126,125,123,118,116,114,117,119,120,121,122,125,124,125,128,125,125,126,126,123,121,121,110,115,120,121,128,134,135,135,128,115,100,111,117,120,120,123,126,123,124,123,124,123,122,123,123,122,124,121,114,113,121,123,124,129,141,147,149,153,156,153,153,152,149,145,141,140,133,131,127,130,128,127,123,127,131,134,133,130,126,131,132,133,136,135,138,140&amp;chxr=0,0.18333333333333332,39.35|1,61,156&amp;chds=0.18333333333333332,39.35,61,156"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It shows me having breakfast (it seems reading books causes my heart rate to drop below 65) and then, about 14 minutes after the start of the measurements, carrying the bike downstairs and cycling to work. At 27 minutes in you can see the bridge over the US-85, causing my heart rate to go up to 135, and then down to 100 as I glide down the other side and wait for the traffic light. At 34 minutes in you see the bridge over the US-101, which is longer, steeper, and more scary (I need to cross a lane of traffic). It goes down more gradually because the light was green. Near the end you see me climbing into the parking lot of Google. Here is the second graph:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://chart.apis.google.com/chart?cht=lxy&amp;chs=640x400&amp;chxt=x,y&amp;chd=t:0,0.13,0.26,0.4,0.53,0.66,0.8,0.93,1.06,1.2,1.33,1.46,1.6,1.73,1.86,2,2.13,2.26,2.4,2.53,2.66,2.8,2.93,3.06,3.2,3.33,3.46,3.6,3.73,3.86,4,4.13,4.26,4.4,4.53,4.66,4.8,4.93,5.06,5.2,5.33,5.46,5.6,5.73,5.86,6.13,6.26,6.4,6.53,6.66,6.8,6.93,7.06,7.2,7.33,7.46,7.6,7.73,7.86,8,8.13,8.26,8.4,8.53,8.66,8.8,8.93,9.06,9.2,9.33,9.46,9.6,9.73,9.86,10,10.1,10.2,10.4,10.5,10.8,10.9,11.0,11.2,11.3,11.4,11.6,11.7,11.8,12,12.1,12.2,12.4,12.5,12.6,12.8,12.9,13.0,13.2,13.3,13.4,13.6,13.7,13.8,14,14.1,14.2,14.4,14.5,14.6,14.8,14.9,15.0,15.2,15.3,15.4,15.6,15.7,15.8,16,16.1,16.2,16.4,16.5,16.6,16.8,16.9,17.0,17.2,17.3,17.4,17.6,17.8,18,18.1,18.2,18.4,18.5,18.6,18.8,18.9,19.0,19.2,19.3,19.4,19.6,19.7,19.8,20,20.1,20.2,20.4,20.5,20.6,20.8,20.9,21.0,21.2,21.3,21.4,21.6,21.7,21.8,22,22.1,22.2,22.4,22.5,22.6,22.8,22.9,23.0,23.2,23.3,23.4,23.6,23.7,23.8,24,24.1,24.2,24.4,24.5,24.6,24.8,24.9,25.0,25.2,25.3,25.4,25.6,25.7,25.8,26,26.1,26.2,26.4,26.5,26.6,26.8,26.9,27.0,27.2,27.3,27.4,27.6,27.7,27.8,28,28.1,28.2,28.4,28.5,28.6,28.8,28.9,29.0,29.2,29.3|119,116,113,114,116,120,117,116,115,118,113,114,115,115,113,113,114,113,107,98,95,98,99,98,96,92,91,91,92,96,97,95,94,98,90,91,93,102,95,89,90,90,85,81,81,81,83,87,90,81,82,82,80,79,79,81,83,83,82,86,92,96,91,83,85,84,83,83,80,81,82,82,81,83,81,80,79,80,80,84,87,94,87,84,85,82,85,84,84,82,82,82,84,85,85,85,94,104,109,98,97,95,85,83,83,84,84,82,82,82,82,82,83,93,87,83,81,82,86,90,83,79,79,82,97,98,86,83,80,78,76,89,83,79,89,86,82,87,84,79,77,86,84,81,81,83,86,84,92,91,86,84,85,81,80,81,85,85,88,83,81,80,85,85,85,87,84,82,85,83,82,80,77,79,82,84,84,80,80,73,71,72,74,74,75,72,72,71,73,76,77,75,77,82,80,80,86,83,78,75,75,91,85,87,86,84,83,80,76,73,77,78,76,75,75,77,77,77&amp;chxr=0,0,29.333333333333332|1,71,120&amp;chds=0,29.333333333333332,71,120"&gt;&lt;img alt="heart rate graph sitting" src="http://chart.apis.google.com/chart?cht=lxy&amp;chs=320x240&amp;chxt=x,y&amp;chd=t:0,0.13,0.26,0.4,0.53,0.66,0.8,0.93,1.06,1.2,1.33,1.46,1.6,1.73,1.86,2,2.13,2.26,2.4,2.53,2.66,2.8,2.93,3.06,3.2,3.33,3.46,3.6,3.73,3.86,4,4.13,4.26,4.4,4.53,4.66,4.8,4.93,5.06,5.2,5.33,5.46,5.6,5.73,5.86,6.13,6.26,6.4,6.53,6.66,6.8,6.93,7.06,7.2,7.33,7.46,7.6,7.73,7.86,8,8.13,8.26,8.4,8.53,8.66,8.8,8.93,9.06,9.2,9.33,9.46,9.6,9.73,9.86,10,10.1,10.2,10.4,10.5,10.8,10.9,11.0,11.2,11.3,11.4,11.6,11.7,11.8,12,12.1,12.2,12.4,12.5,12.6,12.8,12.9,13.0,13.2,13.3,13.4,13.6,13.7,13.8,14,14.1,14.2,14.4,14.5,14.6,14.8,14.9,15.0,15.2,15.3,15.4,15.6,15.7,15.8,16,16.1,16.2,16.4,16.5,16.6,16.8,16.9,17.0,17.2,17.3,17.4,17.6,17.8,18,18.1,18.2,18.4,18.5,18.6,18.8,18.9,19.0,19.2,19.3,19.4,19.6,19.7,19.8,20,20.1,20.2,20.4,20.5,20.6,20.8,20.9,21.0,21.2,21.3,21.4,21.6,21.7,21.8,22,22.1,22.2,22.4,22.5,22.6,22.8,22.9,23.0,23.2,23.3,23.4,23.6,23.7,23.8,24,24.1,24.2,24.4,24.5,24.6,24.8,24.9,25.0,25.2,25.3,25.4,25.6,25.7,25.8,26,26.1,26.2,26.4,26.5,26.6,26.8,26.9,27.0,27.2,27.3,27.4,27.6,27.7,27.8,28,28.1,28.2,28.4,28.5,28.6,28.8,28.9,29.0,29.2,29.3|119,116,113,114,116,120,117,116,115,118,113,114,115,115,113,113,114,113,107,98,95,98,99,98,96,92,91,91,92,96,97,95,94,98,90,91,93,102,95,89,90,90,85,81,81,81,83,87,90,81,82,82,80,79,79,81,83,83,82,86,92,96,91,83,85,84,83,83,80,81,82,82,81,83,81,80,79,80,80,84,87,94,87,84,85,82,85,84,84,82,82,82,84,85,85,85,94,104,109,98,97,95,85,83,83,84,84,82,82,82,82,82,83,93,87,83,81,82,86,90,83,79,79,82,97,98,86,83,80,78,76,89,83,79,89,86,82,87,84,79,77,86,84,81,81,83,86,84,92,91,86,84,85,81,80,81,85,85,88,83,81,80,85,85,85,87,84,82,85,83,82,80,77,79,82,84,84,80,80,73,71,72,74,74,75,72,72,71,73,76,77,75,77,82,80,80,86,83,78,75,75,91,85,87,86,84,83,80,76,73,77,78,76,75,75,77,77,77&amp;chxr=0,0,29.333333333333332|1,71,120&amp;chds=0,29.333333333333332,71,120"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It shows the part after the cycling, where I sit in my chair and code. There's a small peak when I went for tea (13 minutes in). And here is the third graph:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://chart.apis.google.com/chart?cht=lxy&amp;chs=640x400&amp;chxt=x,y&amp;chd=t:0.11,0.38,0.65,0.78,0.91,1.05,1.18,1.31,1.45,1.58,1.71,1.85,1.98,2.11,2.38,2.51,2.65,2.78,2.91,3.05,3.18,3.31,3.45,3.58,3.71,3.85,3.98,4.11,4.25,4.38,4.51,4.65,4.78,4.91,5.05,5.18,5.31,5.45,5.58,5.71,5.85,5.98,6.11,6.25,6.38,6.51,6.65,6.78,6.91,7.05,7.18,7.31,7.45,7.58,7.71,7.85,7.98,8.11,8.25,8.38,8.51,8.65,8.78,8.91,9.05,9.18,9.31,9.45,9.58,9.71,9.85,9.98,10.1,10.2,10.3,10.5,10.6,10.7,10.9,11.0,11.1,11.3,11.4,11.5,11.7,11.8,11.9,12.1,12.2,12.3,12.5,12.6,12.7,12.9,13.0,13.1,13.3,13.4,13.5,13.7,13.8,13.9,14.1,14.2,14.3,14.5,14.6,14.7,14.9,15.0,15.1,15.3,15.4,15.5,15.7,15.8,15.9,16.1,16.2,16.3,16.5,16.6,16.7,16.9,17.0,17.1,17.3,17.4,17.5,17.7,17.8,17.9,18.1,18.2,18.3,18.5,18.6,18.7,18.9,19.0,19.1,19.3,19.4,19.5,19.7,19.8,19.9,20.1,20.2,20.3,20.5,20.6,20.7,20.9,21.0,21.1,21.3,21.4,21.5,21.7,21.8,21.9,22.1,22.2,22.5,22.6,22.7,22.9,23.0,23.1,23.3,23.4,23.5,23.7,23.8,23.9,24.1,24.2,24.3,24.5,24.6,24.7,24.9,25.0,25.1,25.3,25.4,25.5,25.7,25.8,25.9|93,108,115,101,97,100,108,102,100,98,98,88,93,101,107,110,111,113,114,114,112,121,120,120,122,122,118,115,114,122,125,114,109,106,109,106,108,109,110,112,110,115,128,126,125,125,121,123,122,120,119,117,116,118,118,118,117,114,115,117,117,117,117,119,120,121,123,121,121,121,121,120,120,122,128,123,127,128,129,127,125,124,120,116,119,123,126,127,129,130,129,129,127,128,132,138,141,142,146,149,148,142,135,128,123,124,123,127,131,128,129,130,131,130,132,135,136,139,139,140,142,144,143,140,130,121,118,127,134,137,141,141,141,142,142,142,139,126,123,117,124,131,136,139,143,145,145,147,148,146,139,131,133,136,133,137,139,137,137,133,125,121,118,115,120,121,118,118,118,123,116,118,121,119,119,118,123,125,128,130,127,127,124,125,121,117,122,132,135,131,130&amp;chxr=0,0.11666666666666667,25.983333333333334|1,88,149&amp;chds=0.11666666666666667,25.983333333333334,88,149"&gt;&lt;img alt="heart rate graph cycling back" src="http://chart.apis.google.com/chart?cht=lxy&amp;chs=320x240&amp;chxt=x,y&amp;chd=t:0.11,0.38,0.65,0.78,0.91,1.05,1.18,1.31,1.45,1.58,1.71,1.85,1.98,2.11,2.38,2.51,2.65,2.78,2.91,3.05,3.18,3.31,3.45,3.58,3.71,3.85,3.98,4.11,4.25,4.38,4.51,4.65,4.78,4.91,5.05,5.18,5.31,5.45,5.58,5.71,5.85,5.98,6.11,6.25,6.38,6.51,6.65,6.78,6.91,7.05,7.18,7.31,7.45,7.58,7.71,7.85,7.98,8.11,8.25,8.38,8.51,8.65,8.78,8.91,9.05,9.18,9.31,9.45,9.58,9.71,9.85,9.98,10.1,10.2,10.3,10.5,10.6,10.7,10.9,11.0,11.1,11.3,11.4,11.5,11.7,11.8,11.9,12.1,12.2,12.3,12.5,12.6,12.7,12.9,13.0,13.1,13.3,13.4,13.5,13.7,13.8,13.9,14.1,14.2,14.3,14.5,14.6,14.7,14.9,15.0,15.1,15.3,15.4,15.5,15.7,15.8,15.9,16.1,16.2,16.3,16.5,16.6,16.7,16.9,17.0,17.1,17.3,17.4,17.5,17.7,17.8,17.9,18.1,18.2,18.3,18.5,18.6,18.7,18.9,19.0,19.1,19.3,19.4,19.5,19.7,19.8,19.9,20.1,20.2,20.3,20.5,20.6,20.7,20.9,21.0,21.1,21.3,21.4,21.5,21.7,21.8,21.9,22.1,22.2,22.5,22.6,22.7,22.9,23.0,23.1,23.3,23.4,23.5,23.7,23.8,23.9,24.1,24.2,24.3,24.5,24.6,24.7,24.9,25.0,25.1,25.3,25.4,25.5,25.7,25.8,25.9|93,108,115,101,97,100,108,102,100,98,98,88,93,101,107,110,111,113,114,114,112,121,120,120,122,122,118,115,114,122,125,114,109,106,109,106,108,109,110,112,110,115,128,126,125,125,121,123,122,120,119,117,116,118,118,118,117,114,115,117,117,117,117,119,120,121,123,121,121,121,121,120,120,122,128,123,127,128,129,127,125,124,120,116,119,123,126,127,129,130,129,129,127,128,132,138,141,142,146,149,148,142,135,128,123,124,123,127,131,128,129,130,131,130,132,135,136,139,139,140,142,144,143,140,130,121,118,127,134,137,141,141,141,142,142,142,139,126,123,117,124,131,136,139,143,145,145,147,148,146,139,131,133,136,133,137,139,137,137,133,125,121,118,115,120,121,118,118,118,123,116,118,121,119,119,118,123,125,128,130,127,127,124,125,121,117,122,132,135,131,130&amp;chxr=0,0.11666666666666667,25.983333333333334|1,88,149&amp;chds=0.11666666666666667,25.983333333333334,88,149"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Where I cycle back. Since the most resources claim my ideal heart rate for exercise is 127, this looks pretty good.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-6876349515943675529?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/6876349515943675529/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=6876349515943675529' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/6876349515943675529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/6876349515943675529'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2010/06/heart-rate-monitoring.html' title='Heart rate monitoring'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-38306746755920842</id><published>2010-03-16T22:15:00.000-07:00</published><updated>2010-03-16T22:17:56.925-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iDrake'/><title type='text'>iDrake schematic, version 1</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rXqAardmcdI/S6Bl-kNU_gI/AAAAAAAAA04/5SLEh9ChqhM/s1600-h/drake2.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 242px;" src="http://1.bp.blogspot.com/_rXqAardmcdI/S6Bl-kNU_gI/AAAAAAAAA04/5SLEh9ChqhM/s320/drake2.bmp" border="0" alt="" id="BLOGGER_PHOTO_ID_5449467674664173058" /&gt;&lt;/a&gt;&lt;br /&gt;It seems most requests are for the iDrake with LCD display, so that is the first one I'll build. To make a PCB, I first need a comprehensive schematic. This isn't one, but it is the beginning of one. I'll work on it more tomorrow... Or the day after... Or whenever I'm not working on my novel.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-38306746755920842?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/38306746755920842/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=38306746755920842' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/38306746755920842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/38306746755920842'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2010/03/idrake-schematic-version-1.html' title='iDrake schematic, version 1'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_rXqAardmcdI/S6Bl-kNU_gI/AAAAAAAAA04/5SLEh9ChqhM/s72-c/drake2.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-3842242507010246643</id><published>2010-01-29T10:08:00.000-08:00</published><updated>2010-01-29T10:11:36.166-08:00</updated><title type='text'>iDrake™</title><content type='html'>Just in case Apple is going to move into the Drake space next, I present the iDrake™ in this blog post. The iDrake™ is now for sale for $49.99. You can Email me for more information. So far I have sold one. The specifications are very open, but should fall within the range of the other drakes presented here. There are optional add-ons (GPS, GSM, et cetera) that would make it more expensive. Feel free to discuss these things with me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-3842242507010246643?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/3842242507010246643/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=3842242507010246643' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/3842242507010246643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/3842242507010246643'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2010/01/idrake.html' title='iDrake™'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-4524823252700378387</id><published>2009-12-02T15:55:00.000-08:00</published><updated>2009-12-02T15:57:07.520-08:00</updated><title type='text'>Adding a segment: the middle vertical bar</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rXqAardmcdI/Sxb-f7oR32I/AAAAAAAAAi4/BE_lCmG0yFc/s1600-h/segment.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_rXqAardmcdI/Sxb-f7oR32I/AAAAAAAAAi4/BE_lCmG0yFc/s320/segment.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5410791826868264802" /&gt;&lt;/a&gt;My first idea for a segment to add is the middle vertical bar. This will not be split in two, but instead will be the whole length. This makes some letters better (B, D, |) and other characters possible ($, +, T, M, W, w, m, x, X). As you can see, there is still a lot of room for improvement.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-4524823252700378387?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/4524823252700378387/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=4524823252700378387' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/4524823252700378387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/4524823252700378387'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/12/adding-segment-middle-vertical-bar.html' title='Adding a segment: the middle vertical bar'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_rXqAardmcdI/Sxb-f7oR32I/AAAAAAAAAi4/BE_lCmG0yFc/s72-c/segment.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-5012389271444035889</id><published>2009-12-01T16:56:00.000-08:00</published><updated>2009-12-01T16:58:23.823-08:00</updated><title type='text'>7 segment font</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rXqAardmcdI/SxW7Xt-XhtI/AAAAAAAAAio/7YbGWrT9HWA/s1600/segment.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_rXqAardmcdI/SxW7Xt-XhtI/AAAAAAAAAio/7YbGWrT9HWA/s320/segment.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5410436543508088530" /&gt;&lt;/a&gt;&lt;br /&gt;I've been playing with fonts for a while, and I've always wondered about the least number of bits that is needed to display a character set. One option is to use a 7 segment display, as shown in this picture. Sadly, it doesn't handle all characters, and a lot of them are messed up. On wikipedia there is a 14 segment display, which does handle most characters correctly, but 14 bits seems a bit excessive. I'll see if I can find some alternatives that use less segments, but still produce acceptable results. If you have ideas, please let me know.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-5012389271444035889?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/5012389271444035889/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=5012389271444035889' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/5012389271444035889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/5012389271444035889'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/12/7-segment-font.html' title='7 segment font'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_rXqAardmcdI/SxW7Xt-XhtI/AAAAAAAAAio/7YbGWrT9HWA/s72-c/segment.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-8854349784059523043</id><published>2009-11-15T17:59:00.001-08:00</published><updated>2009-11-15T18:25:12.074-08:00</updated><title type='text'>GTA-316 blue screen fix</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rXqAardmcdI/SwCy0CqRPwI/AAAAAAAAAhM/8teXeJ2CERg/s1600/bluescreen.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 248px;" src="http://4.bp.blogspot.com/_rXqAardmcdI/SwCy0CqRPwI/AAAAAAAAAhM/8teXeJ2CERg/s320/bluescreen.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5404516159981698818" /&gt;&lt;/a&gt;I recently got a GTA-316 digital photo frame (I know, about three years later than most people) and after installing my first set of JPG images it turned out that it had crashed, because the first JPG was not in a format it liked. This problem was permanent: when you turned the device on, it would immediately load the picture, try to display it, and fail. All it would show was a blue screen (see figure 1), and none of the buttons would work anymore (not even the one that turns it off). Basically it turned into a paper weight. I was planning to use the LCD screen for my own purposes, but I was not going to let a software error like this get the better of me either. I fixed the problem, and here is how I did it. &lt;blockquote&gt;Warning/disclaimer: this procedure involves messing with hardware. It is unlike to cause problems, but I do not guarantee anything. Your results may vary. The GTA-316 might stop working forever. The computer attached using the USB might blow up. If the USB connection has issues, you might get an electric shock. In other words: do the following steps at your own risk.&lt;/blockquote&gt;If this fix worked for you, or does not work for you, or if you have an easier way to fix it, please let me know. I welcome comments.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rXqAardmcdI/SwCy54UCqAI/AAAAAAAAAhU/p83gh_YBlcM/s1600/screws.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 246px;" src="http://4.bp.blogspot.com/_rXqAardmcdI/SwCy54UCqAI/AAAAAAAAAhU/p83gh_YBlcM/s320/screws.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5404516260283328514" /&gt;&lt;/a&gt;First I opened the GTA-316. This is relatively simple, there are four screws (two hidden behind the battery panel). Figure 2 shows you how to access these screws. You'll need a very small screwdriver to unscrew them, but it is easy. I had to use a magnet to find the screws afterwards, so be prepared to store them somewhere safe. It is best to remember how you take things apart, so you can put it back together more easily later.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rXqAardmcdI/SwCzLAT-gyI/AAAAAAAAAhc/ha4jHydRSBc/s1600/operation.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 276px; height: 320px;" src="http://1.bp.blogspot.com/_rXqAardmcdI/SwCzLAT-gyI/AAAAAAAAAhc/ha4jHydRSBc/s320/operation.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5404516554488316706" /&gt;&lt;/a&gt;Once open, lay out the components as shown in figure 3. You can detach the front panel and the plexiglass completely, the front panel holds a microphone, but this is rather loose. Now you need to follow the following steps:&lt;br /&gt;&lt;br /&gt;1. Use a large pointy metal object and scrape a few times along the address lines of the EEPROM inside the GTA-316 (see picture) to remove any coating.&lt;br /&gt;2. Connect the USB of the computer to the GTA-316.&lt;br /&gt;3. Press the "on" button of the GTA-316. This is marked in the picture with a red arrow.&lt;br /&gt;4. Wait until the cute and compression distorted animation starts.&lt;br /&gt;5. Press the large pointy metal object against the address lines of the EEPROM inside the GTA-316 (see picture) to short circuit them. Hold it there until the display shows an error message ("PICTURE FILE ERROR" or something like this). If this message does not appear, but instead the blue screen appears, read the next paragraph.&lt;br /&gt;6. Remove the large pointy metal object. &lt;br /&gt;7. Your computer should now recognize the GTA-316 as an unformatted USB drive.&lt;br /&gt;8. Allow the computer to format the drive (this gets rid of your bad JPG files). If instead the computer shows the folder with the bad JPG files, delete them.&lt;br /&gt;9. Use the "safely remove hardware" option of your computer.&lt;br /&gt;10. Disconnect the GTA-316.&lt;br /&gt;11. The GTA-316 should now be in working order. Make sure you follow the instructions and use the included conversion program (or hints on other websites) to ensure no bad JPG files make their way on the GTA-316.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rXqAardmcdI/SwC2BCZt2dI/AAAAAAAAAhk/Vw_ajBMVxFM/s1600/pins.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 214px;" src="http://4.bp.blogspot.com/_rXqAardmcdI/SwC2BCZt2dI/AAAAAAAAAhk/Vw_ajBMVxFM/s320/pins.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5404519681785453010" /&gt;&lt;/a&gt;In case the GTA-316 gives a blue screen instead of an error message you did not touch the correct lines. Sadly I was unable to find a data sheet of the particular chip, and I pressed the object randomly against the lines. Circled in figure 4 are is the area where most address lines are located, which gives you the highest chance of success. I had to do it four times myself. Make sure the pins are properly scraped and the metal object is not greasy. In case you get the blue screen, disconnect the USB and start again at step 1 in the paragraph above.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-8854349784059523043?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/8854349784059523043/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=8854349784059523043' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/8854349784059523043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/8854349784059523043'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/11/gta-316-blue-screen-fix.html' title='GTA-316 blue screen fix'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_rXqAardmcdI/SwCy0CqRPwI/AAAAAAAAAhM/8teXeJ2CERg/s72-c/bluescreen.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-2311918235795250252</id><published>2009-07-04T15:30:00.000-07:00</published><updated>2009-07-04T15:32:26.492-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LED'/><title type='text'>More animations</title><content type='html'>I finally settled into my new place in Sunnyvale, so you can expect more posts here. I added some animations to the LED cube: a heart beat, an elevator, a cube drawing and a slow glow effect. Especially the glow effect is impressive (you can't see the LED blink) and only possible due to the way the cube was wired. Other effects are trickier, though, hopefully I can define one of the trickier ones tomorrow.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-2311918235795250252?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/2311918235795250252/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=2311918235795250252' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/2311918235795250252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/2311918235795250252'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/07/more-animations.html' title='More animations'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-6423845383974534899</id><published>2009-04-26T13:36:00.001-07:00</published><updated>2009-04-26T13:36:53.181-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LED'/><title type='text'>LED cube video</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/43JHe93qa4E&amp;hl=nl&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/43JHe93qa4E&amp;hl=nl&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;And here is the video showing the result.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-6423845383974534899?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/6423845383974534899/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=6423845383974534899' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/6423845383974534899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/6423845383974534899'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/04/led-cube-video.html' title='LED cube video'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-5693872933542721157</id><published>2009-04-26T11:55:00.001-07:00</published><updated>2009-04-26T11:56:19.309-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PIC16F57'/><category scheme='http://www.blogger.com/atom/ns#' term='LED'/><title type='text'>Source code for LED cube control</title><content type='html'>The &lt;a href="http://docs.google.com/Doc?id=dggffzm9_8cscsdrgt"&gt;source code for the LED cube control&lt;/a&gt; is now available. Basically PORTB and PORTC of the PIC16F57 (which is actually a low end device) are used to control the output. I'm looping one bit through PORTB and one bit through PORTC to address all LED.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-5693872933542721157?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/5693872933542721157/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=5693872933542721157' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/5693872933542721157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/5693872933542721157'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/04/source-code-for-led-cube-control.html' title='Source code for LED cube control'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-7945941791932417913</id><published>2009-04-26T11:50:00.000-07:00</published><updated>2009-04-26T11:52:57.449-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LED'/><title type='text'>Fourth layer picture</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_rXqAardmcdI/SfStW8spwPI/AAAAAAAAAVE/kLX0Jn-Qric/s1600-h/LEDcube5.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 232px;" src="http://3.bp.blogspot.com/_rXqAardmcdI/SfStW8spwPI/AAAAAAAAAVE/kLX0Jn-Qric/s320/LEDcube5.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5329074868848279794" /&gt;&lt;/a&gt; This is the LED cube with the fourth layer completed. It worked immediately: I wrote a small program to test individual control of the LED and was succesful at lighting each one individually. Now it is time for the hard part: creating animations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-7945941791932417913?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/7945941791932417913/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=7945941791932417913' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/7945941791932417913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/7945941791932417913'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/04/fourth-layer-picture.html' title='Fourth layer picture'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_rXqAardmcdI/SfStW8spwPI/AAAAAAAAAVE/kLX0Jn-Qric/s72-c/LEDcube5.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-7568699614101471465</id><published>2009-04-25T16:55:00.000-07:00</published><updated>2009-04-25T16:56:11.010-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LED'/><title type='text'>Fourth layer</title><content type='html'>The fourth layer is finished, but not attached yet. Hopefully that will happen tomorrow, together with my first animation. Video should be provided.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-7568699614101471465?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/7568699614101471465/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=7568699614101471465' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/7568699614101471465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/7568699614101471465'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/04/fourth-layer.html' title='Fourth layer'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-5489339534095403776</id><published>2009-04-12T16:51:00.000-07:00</published><updated>2009-04-12T16:53:17.429-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LED'/><title type='text'>Third layer</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_rXqAardmcdI/SeJ-ioJr77I/AAAAAAAAAU8/gTsvF3ONRSQ/s1600-h/LEDcube4.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 209px;" src="http://2.bp.blogspot.com/_rXqAardmcdI/SeJ-ioJr77I/AAAAAAAAAU8/gTsvF3ONRSQ/s320/LEDcube4.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5323956842864046002" /&gt;&lt;/a&gt; And here is the third layer of the cube. I also rewired the connections so the cathodes and the anodes are each on their own port. One more layer, which doesn't need any more connections, and the circuit is finished.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-5489339534095403776?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/5489339534095403776/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=5489339534095403776' title='1 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/5489339534095403776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/5489339534095403776'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/04/third-layer.html' title='Third layer'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_rXqAardmcdI/SeJ-ioJr77I/AAAAAAAAAU8/gTsvF3ONRSQ/s72-c/LEDcube4.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-841441222825320171</id><published>2009-03-30T23:07:00.001-07:00</published><updated>2009-03-30T23:15:40.156-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LED'/><title type='text'>Pattern</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rXqAardmcdI/SdG0-FgBtZI/AAAAAAAAAUQ/LElBytQXd4Y/s1600-h/LEDcube3.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 298px;" src="http://1.bp.blogspot.com/_rXqAardmcdI/SdG0-FgBtZI/AAAAAAAAAUQ/LElBytQXd4Y/s320/LEDcube3.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5319231613622662546" /&gt;&lt;/a&gt;&lt;br /&gt;I succeeded in creating a two part pattern loop. An issue was that blanking the image in between each shift caused the LED to be less bright. By adding a delay the impact of the blank could be reduced, however, initially there was too much delay and the pattern seemed to be blinking. The correct code is as follows:&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;PatternDelay&lt;br /&gt;  call Blank&lt;br /&gt;  movf p1,w&lt;br /&gt;  movwf PORTC&lt;br /&gt;  movf p1+1,w&lt;br /&gt;  movwf PORTB&lt;br /&gt;  call SmallDelay&lt;br /&gt;  call Blank&lt;br /&gt;  movf p2,w&lt;br /&gt;  movwf PORTC&lt;br /&gt;  movf p2+1,w&lt;br /&gt;  movwf PORTB&lt;br /&gt;  call SmallDelay&lt;br /&gt;  decfsz delay+1,f&lt;br /&gt;  goto PatternDelay&lt;br /&gt;  decfsz howlong,f&lt;br /&gt;  goto PatternDelay&lt;br /&gt;  retlw 0&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;Here the two patterns are in p1 and p2. As you can see it is relatively easy to extend to more patterns. The next step would be to write an application that can find the minimum sets needed to display a certain pattern.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-841441222825320171?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/841441222825320171/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=841441222825320171' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/841441222825320171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/841441222825320171'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/03/pattern.html' title='Pattern'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_rXqAardmcdI/SdG0-FgBtZI/AAAAAAAAAUQ/LElBytQXd4Y/s72-c/LEDcube3.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-2257042676502565498</id><published>2009-03-29T22:33:00.000-07:00</published><updated>2009-03-29T22:38:13.829-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LED'/><title type='text'>Figures</title><content type='html'>Today I tried to create the first figure on the LED cube, an O. In order to do this I had to switch between two patterns, two dots at the bottom in the middle and at the top in the middle, and two dots to the left in the middle and at the right in the middle. The trick was ensuring that the screen is blank in between, because any transistion LED will seem lit as well. The code became:&lt;br /&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;Display&lt;br /&gt;  call Blank&lt;br /&gt;  movlw 96&lt;br /&gt;  movwf PORTC&lt;br /&gt;  movlw 6+96&lt;br /&gt;  movwf PORTB&lt;br /&gt;  call Blank&lt;br /&gt;  movlw 144&lt;br /&gt;  movwf PORTC&lt;br /&gt;  movlw 9+144&lt;br /&gt;  movwf PORTB&lt;br /&gt;  goto Display&lt;br /&gt;Blank&lt;br /&gt;  movlw 240&lt;br /&gt;  movwf PORTC&lt;br /&gt;  clrf PORTB&lt;br /&gt;  retlw 0&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;br /&gt;Next step would be to have the delay loop automatically switch between two patterns... Although I might need more than two for complex figures. At 20 MHz it is completely invisible that such switching is taking place, except for the LED being slightly dimmer. Biggest problem is still that the bottom LED make it seem like the LED at the top are slightly lit. I might need to reduce their transparancy somehow.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-2257042676502565498?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/2257042676502565498/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=2257042676502565498' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/2257042676502565498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/2257042676502565498'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/03/figures.html' title='Figures'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-3682588922941552316</id><published>2009-03-28T13:27:00.000-07:00</published><updated>2009-03-28T13:28:27.650-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LED'/><title type='text'>Second layer of LED cube</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rXqAardmcdI/Sc6IP8PQ46I/AAAAAAAAAUI/a-pYqd7K0pE/s1600-h/LEDcube2.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 190px;" src="http://4.bp.blogspot.com/_rXqAardmcdI/Sc6IP8PQ46I/AAAAAAAAAUI/a-pYqd7K0pE/s320/LEDcube2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5318338017420698530" /&gt;&lt;/a&gt;&lt;br /&gt;After the set back I finished the second layer of the LED cube, which you can see in action here. A small problem is that the second layer of LED actually responds to the light of the lower layer. It creates a strange effect, but maybe won't work really well... We'll have to see once it's finished.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-3682588922941552316?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/3682588922941552316/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=3682588922941552316' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/3682588922941552316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/3682588922941552316'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/03/second-layer-of-led-cube.html' title='Second layer of LED cube'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_rXqAardmcdI/Sc6IP8PQ46I/AAAAAAAAAUI/a-pYqd7K0pE/s72-c/LEDcube2.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-3458664618512745859</id><published>2009-03-23T18:04:00.001-07:00</published><updated>2009-03-23T18:06:14.770-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LED'/><title type='text'>LED cube problem</title><content type='html'>I woke up in the middle of the night (which usually doesn't happen) with the thought that my idea of reversing the polarity of the LED in the matrix to double the number of LED I can control wouldn't work. I drew a small version on a piece of paper, and indeed: it doesn't work. There is no combination of control signals that will allow me to turn on only one LED. It's fortunate that I discovered this now, instead of after soldering the next layer of LED. I can still control the cube with 16 lines, but I'll have to use a matrix of 8x8 divided in 4 4x4 segments rather than using two 4x4x2 segments. There will be a switching issue, but at 20 MHz this shouldn't create a big problem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-3458664618512745859?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/3458664618512745859/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=3458664618512745859' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/3458664618512745859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/3458664618512745859'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/03/led-cube-problem.html' title='LED cube problem'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-4606103768870066458</id><published>2009-03-22T21:48:00.000-07:00</published><updated>2009-03-22T21:51:58.366-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LED'/><title type='text'></title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/NRgmd4ioWO4&amp;hl=nl&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/NRgmd4ioWO4&amp;hl=nl&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Here is the first attempt at getting the cube to work. One line of one layer only, but the rest should follow quickly: the other lines are only three wires away, and the second layer is a matter of just adding the LED. Then I will have to repeat it for the next layer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-4606103768870066458?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/4606103768870066458/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=4606103768870066458' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/4606103768870066458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/4606103768870066458'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/03/here-is-first-attempt-at-getting-cube.html' title=''/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-1605444350588504216</id><published>2009-03-22T15:32:00.000-07:00</published><updated>2009-03-22T15:36:56.494-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PIC16F57'/><category scheme='http://www.blogger.com/atom/ns#' term='LED'/><title type='text'>Processor board</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rXqAardmcdI/Sca8shx16AI/AAAAAAAAAUA/o-uHzQdxfxw/s1600-h/LEDbase.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 260px;" src="http://4.bp.blogspot.com/_rXqAardmcdI/Sca8shx16AI/AAAAAAAAAUA/o-uHzQdxfxw/s320/LEDbase.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5316143883325138946" /&gt;&lt;/a&gt; After I cycled against and with the wind to Radioshack (the closest, but not the cheapest supplier of PCB in my area) I was able to start soldering together the board shown. It is the typical board I make, with a 6 pin ICSP for connecting the Pickit 2, a 8-12V power supply input using a 2.1mm jack (standard) and a 20 MHz resonator (not very accurate, but accuracy seems not very important in a LED cube. The speed is useful for making special effects, which I'll probably never write). As said I'm using the 16F57, mostly because I had one around and it has two full ports (PORTB and PORTC) that can be used to control the cube. PORTB will have to share bits with the ICSP, but that shouldn't be a problem. After soldering the board I tested it, and it didn't immediately work, but that was because I didn't realise the PIC16F57 is actually not a 16-series PIC, but a base model PIC. After switching the programming software to recognize base PIC, it all worked fine. My voltage meter is running out of power, so it was giving the clearly wrong voltage of 6.3V from USB and the 7805. I'll have to buy a new battery for it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-1605444350588504216?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/1605444350588504216/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=1605444350588504216' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/1605444350588504216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/1605444350588504216'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/03/processor-board.html' title='Processor board'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_rXqAardmcdI/Sca8shx16AI/AAAAAAAAAUA/o-uHzQdxfxw/s72-c/LEDbase.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-7760322127373166608</id><published>2009-03-21T15:49:00.000-07:00</published><updated>2009-03-21T15:52:04.383-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LED'/><title type='text'>LED part 2</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_rXqAardmcdI/ScVvDLSKGhI/AAAAAAAAATg/zI4euus_pVA/s1600-h/LEDcube.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 206px;" src="http://2.bp.blogspot.com/_rXqAardmcdI/ScVvDLSKGhI/AAAAAAAAATg/zI4euus_pVA/s320/LEDcube.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5315777035539978770" /&gt;&lt;/a&gt; I know, progress is rather slow, but here is the next part, and basically the ground floor of the LED cube. I also added the required resistors. I didn't have a PCB so I couldn't hook it up yet, but I did decide on the PICmicro to use: the rather obscure PIC16F57 which happened to be in one of the boxes that I got for winning the Microchip Innovation competition. I need to check on it, but it has 28 pins so I'm pretty sure I can use two full PORT for outputting the data, which would reduce the requirement for quick switching between patterns. I already tried lighting one of the LED, and they burn rather brightly, and are visible from the side as well. I'm still not sure if the next layer should face up as well, but it is probably best if they do.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-7760322127373166608?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/7760322127373166608/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=7760322127373166608' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/7760322127373166608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/7760322127373166608'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/03/led-part-2.html' title='LED part 2'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_rXqAardmcdI/ScVvDLSKGhI/AAAAAAAAATg/zI4euus_pVA/s72-c/LEDcube.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-69322720288880550</id><published>2009-03-12T22:39:00.000-07:00</published><updated>2009-03-12T22:40:44.846-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LED'/><title type='text'>LED part 1</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rXqAardmcdI/SbnxrDrAR7I/AAAAAAAAASU/SaNEfH6Is9Q/s1600-h/led1.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 272px; height: 320px;" src="http://4.bp.blogspot.com/_rXqAardmcdI/SbnxrDrAR7I/AAAAAAAAASU/SaNEfH6Is9Q/s320/led1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5312542957482559410" /&gt;&lt;/a&gt;The LED arrived, and they were nicer than I thought: they actually look transparent, which is much more useful for the cube idea. I started soldering them together, here are the first 8. I'll probably need to devise some plastic covering to ensure that the wires don't cross once I start bending the whole thing into a proper shape.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-69322720288880550?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/69322720288880550/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=69322720288880550' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/69322720288880550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/69322720288880550'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/03/led-part-1.html' title='LED part 1'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_rXqAardmcdI/SbnxrDrAR7I/AAAAAAAAASU/SaNEfH6Is9Q/s72-c/led1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-963080418191651766</id><published>2009-02-28T13:13:00.001-08:00</published><updated>2009-02-28T13:20:38.510-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LED'/><category scheme='http://www.blogger.com/atom/ns#' term='HD44780'/><title type='text'>Places to order parts</title><content type='html'>In my previous post I referenced &lt;a href="http://www.futurlec.com"&gt;Futurlec&lt;/a&gt; as a place where you can order parts. Note that they are slow, but they are inexpensive and they have some very unique items. I really like their "&lt;span style="font-family:Arial;font-size:85%;color:#000000;"&gt;LCD8X2", which is the smallest LCD display I have found so far that can still display 16 characters on two lines, and is controlled by a normal HD44780.&lt;br /&gt;&lt;br /&gt;If I needs parts quickly, I usually go to &lt;a href="http://www.jameco.com"&gt;Jameco&lt;/a&gt;, which is around the corner of my work place. They are more expensive, but they have very good service: you can just walk in, and walk out with your parts within 15 minutes. If you order them over the phone, they can even make them ready for pick up.&lt;br /&gt;&lt;br /&gt;For the actual PIC microcontrollers I used to use &lt;a href="http://www.glitchbuster.com/"&gt;Glitchbuster&lt;/a&gt;, but unfortunately they disappeared. I currently still have a large amount of them from winning the grand prize of the &lt;a href="http://www.microchip.com"&gt;Microchip&lt;/a&gt; innovation competition but dread the moment that I would actually have to order more, as none of the websites I mentioned so far carry a good assortment. I might just order them directly of Microchip's website.&lt;br /&gt;&lt;br /&gt;Finally, for all sorts of odds and ends, like soldering irons, solder, wirewrap wire, and various PCB, I tend to visit the local &lt;a href="http://www.radioshack.com"&gt;Radioshack&lt;/a&gt;. Do not buy parts here, as they are very expensive, and inferior in quality. Just look out for those things that will make your life better.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-963080418191651766?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/963080418191651766/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=963080418191651766' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/963080418191651766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/963080418191651766'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/02/places-to-order-parts.html' title='Places to order parts'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-5199193486434551089</id><published>2009-02-28T13:09:00.000-08:00</published><updated>2009-02-28T13:12:52.040-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LED'/><title type='text'>3D LED cube</title><content type='html'>Of course I will be continuing with the ZX-jen project, but I'm also working on a display consisting of 4x4x4 LED. I ordered 10mm big LED and will soon put them together. Using a grid with two LED (opposite polarity) per crossing you can control 72 LED with 12 lines, but I think it is wiser to control two groups of 32 LED with 8 lines each, for a total of 16 lines. This way the control of each group can be done with a single PORT, allowing all LED to change at the same time without intermediate values, which could cause the display to blink LED that should remain off. This could still happen, but is a lot less likely with the new configuration. I'll write more once the LED have come in, I used &lt;a href="http://www.futurlec.com"&gt;Futurlec&lt;/a&gt; for the order, which is notoriously slow, but has nice products for an inexpensive price.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-5199193486434551089?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/5199193486434551089/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=5199193486434551089' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/5199193486434551089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/5199193486434551089'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/02/3d-led-cube.html' title='3D LED cube'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-2311217681890871830</id><published>2009-02-17T21:45:00.000-08:00</published><updated>2009-02-17T21:47:36.801-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><title type='text'>MIDI module</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rXqAardmcdI/SZuglVsm9YI/AAAAAAAAARk/lJPoF2jR9ck/s1600-h/DSC_0348.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 213px;" src="http://1.bp.blogspot.com/_rXqAardmcdI/SZuglVsm9YI/AAAAAAAAARk/lJPoF2jR9ck/s320/DSC_0348.JPG" alt="" id="BLOGGER_PHOTO_ID_5304009549498742146" border="0" /&gt;&lt;/a&gt;At some point I found this box, and decided to turn it into a MIDI module. MIDI is a bit obsolete nowadays, but I still have a keyboard and an pseudo-analog synthesizer that use it, so I thought to create something. So far it can play Beethoven, but it can't record yet. This is something I'll still need to work on, but after my recent experience with the GPS module, this should be a lot easier.&lt;br /&gt;&lt;br /&gt;At least it looks nice, though a few lights would of course make it more interesting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-2311217681890871830?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/2311217681890871830/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=2311217681890871830' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/2311217681890871830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/2311217681890871830'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/02/midi-module.html' title='MIDI module'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_rXqAardmcdI/SZuglVsm9YI/AAAAAAAAARk/lJPoF2jR9ck/s72-c/DSC_0348.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-4102330503572454805</id><published>2009-02-15T17:06:00.000-08:00</published><updated>2009-02-15T17:34:18.408-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ZX-jen'/><title type='text'>Acey Ducey working</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rXqAardmcdI/SZi8KlkXfdI/AAAAAAAAARc/fT1i2rFS_bE/s1600-h/aceyducey.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 213px;" src="http://4.bp.blogspot.com/_rXqAardmcdI/SZi8KlkXfdI/AAAAAAAAARc/fT1i2rFS_bE/s320/aceyducey.JPG" alt="" id="BLOGGER_PHOTO_ID_5303195451298119122" border="0" /&gt;&lt;/a&gt;"Soon" was a bit later than I thought. The first thing that became troublesome was the encoding of strings as {length,character,character,character,...}. Parsing strings like that requires making sure the length is always kept correct, and given the large number of different parse routines for skipping digits, skipping characters, skipping whitespace and various other tokens the length rarely was correct. Instead of hunting down this error I thought it was more robust to change the encoding of strings as {character,character,character,...,0} which is the usual way strings are encoded in C. This means that 0 can no longer be used as a character, but since this was not something you could input on a keyboard anyway it wasn't very relevant. Of course, changing the code this way was not entirely insignificant, but fortunately everything was structured well enough so the switch was done in an hour or so.&lt;br /&gt;&lt;br /&gt;The next issue that I ran into was the keyboard input. The keyboard handling is currently done without an interrupt, disabling and enabling the keyboard using the clock line whenever character input is required. This worked well. However, I also want to check for the "Esc" key during program execution, so the user can interrupt the program if so desired. In order to do this I occasionally release control of the clock line and look if a character comes in. If it does, I read it and checked whether it was "Esc". This worked well, however, if keyboard input happens for a normal reason during execution (in this case, to enter the bet of the player) the last scan code ("Enter key released") will be stalled due to the clock line being pulled low, and will appear as the next character. The routine checking for "Esc" finds this scan code, and assumes that the user entered something and will wait for input, but obviously the user just released the "Enter" key and no characters are forthcoming. This means the program seems to hang. I fixed it by having two versions of the getKeyboard routine (using a status bit), one in case I do want to wait until input takes place, and one which will return after the first scancode has been recognized.&lt;br /&gt;&lt;br /&gt;But after that, the &lt;a href="http://www.moorecad.com/classicbasic/basic/creative/aceyducy.bas"&gt;Acey Ducey&lt;/a&gt; game from the classic computer games website started working. Of course, there were some bugs in this BASIC program, and some minor conversions that were needed, but in general it works, as you can see from the screen shot. Typical conversions include adding % to indicate that the variables are integers, adding LET in front of assignment statements, using RND(number) instead of number*RND(1) and splitting the PRINT part of an INPUT statement, as well as a PRINT statement that prints both constants and variables. Finally some of the constant strings needed to be shortened in order to fit the screen.&lt;br /&gt;&lt;br /&gt;I'm happy that the game is running, but obviously I don't want to enter it over and over again. I therefore will have to devise a way to store the program somewhere, and retrieve it. There are two ways: I can add an additional 24LC512 chip and compress and store the code in there, or I can use the upper part of the current 24LC512 for storage. Currently a program can use lines 1-2047, storing it at the top would reduce this. Of course, an alternative would be to use an SD card for storage, allowing easy exchange with a PC as well. Or a serial interface/USB interface for storing it in a PC.&lt;br /&gt;&lt;br /&gt;Apart from this a lot will need to happen with the code. String handling. Array handling. Negative number input. Fortunately it is using much less than 3K so far, of the 4K that is available. So a lot of features are still possible, although I might have to divert from usual BASIC syntax in certain cases. For arrays I'm tempted to use square brackets, for example, to distinguish them from functions. For strings I'll probably resort to the ZX-81 method of treating them as arrays to begin with. And it is likely an array like DIM A%(10) will have element A%[1] overlap with variable B%, as the RAM of a PICmicro is, after all, tiny (less than 400 bytes, of which many are used for processing).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-4102330503572454805?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/4102330503572454805/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=4102330503572454805' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/4102330503572454805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/4102330503572454805'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/02/acey-ducey-working.html' title='Acey Ducey working'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_rXqAardmcdI/SZi8KlkXfdI/AAAAAAAAARc/fT1i2rFS_bE/s72-c/aceyducey.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-1501125319158532036</id><published>2009-02-13T09:07:00.000-08:00</published><updated>2009-02-13T09:09:21.354-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ZX-jen'/><title type='text'>Partial LIST</title><content type='html'>Partial LIST now works. You can specify a line number, and it will only show the code from that line number. I also limited the length of the list displayed, as there is no way to control this otherwise. I then started implementing one of the examples again, and discovered that the 9 was not handled correctly, which I fixed. Soon the first game will be working...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-1501125319158532036?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/1501125319158532036/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=1501125319158532036' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/1501125319158532036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/1501125319158532036'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/02/partial-list.html' title='Partial LIST'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-5554364954849512999</id><published>2009-02-09T20:50:00.001-08:00</published><updated>2009-02-09T20:51:31.136-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ZX-jen'/><title type='text'>Subtract</title><content type='html'>And now subtract works in expressions. Again only a few minutes of coding, but by coding a few minutes a day, I slowly get to where I want to be. The next step will be more attention to the user interface, as showing the entire listing is unacceptable. LIST 10-100 and such commands need to be understood and functioning, or there needs to be a delay between moving back to the top of the next page.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-5554364954849512999?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/5554364954849512999/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=5554364954849512999' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/5554364954849512999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/5554364954849512999'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/02/subtract.html' title='Subtract'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-4108758033320202928</id><published>2009-02-08T16:12:00.001-08:00</published><updated>2009-02-08T21:19:20.363-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ZX-jen'/><title type='text'>RND</title><content type='html'>As I'm trying to get the programs at the &lt;a href="http://www.moorecad.com/classicbasic/index.html"&gt;classic basic games&lt;/a&gt; webpage to run on the ZX-jen I needed the RND() function. Unlike the old RND() functions, which return floating point numbers, which would require me to add floating point or at least fixed point methods to my code, I decided to create an integer version of RND() in which the parameter indicates the limit to be returned. So if RND(14) is called, it returns a random number between 0 and 13. It actually accepts an expression between the parenthesis, although since the PICmicro has only 8 depths of recursion it could go wrong at some point. Soon I will be able to show you the first program running under the ZX-jen.&lt;br /&gt;&lt;br /&gt;Upon attempting to enter the first program I discovered that I need to implement the - operation, as well as some form of delay, because the screen is small and often scrolls over before everything is displayed. Of course, I can code the delay manually, but then GOSUB suddenly becomes important.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-4108758033320202928?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/4108758033320202928/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=4108758033320202928' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/4108758033320202928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/4108758033320202928'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/02/rnd.html' title='RND'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-2561692001546511274</id><published>2009-02-05T23:08:00.000-08:00</published><updated>2009-02-05T23:13:53.941-08:00</updated><title type='text'>INPUT</title><content type='html'>I'm pretty sure you'll believe that INPUT now works without me showing a screen shot. INPUT accepts only a variable name (and an integer variable only, even) and causes a ? to be displayed, after which the user can enter a number. The number gets converted and can then be used for processing. It was relatively easy, although I had to distinguish i-nput from i-f. There was one bug: as you know I disable the keyboard while the program is executing, in order to avoid characters getting lost (I know, an interrupt routine to gather keystrokes would work, but that is just postponing the problem, makes the code more complicated to debug, and doesn't use the hardware to its fullest extent, as a keyboard has a built in 15 character buffer). When I called the getSentence() code I forgot to enable the keyboard. So it seemed the system just froze. Easily found, and easily fixed.&lt;br /&gt;&lt;br /&gt;Now all I need is an random function and some other easy mathematics and I can start porting simple BASIC games. At that point it will probably become useful to write an inport/export feature that allows me to store the written programs. Of course, I could just take the memory chip out and insert another one, preserving the code that way, but that seems rather involved and expensive. An interface to a PC or SD card might be better.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-2561692001546511274?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/2561692001546511274/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=2561692001546511274' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/2561692001546511274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/2561692001546511274'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/02/input.html' title='INPUT'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-8918565830998691365</id><published>2009-02-01T12:57:00.001-08:00</published><updated>2009-02-01T13:01:46.038-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ZX-jen'/><category scheme='http://www.blogger.com/atom/ns#' term='TV'/><title type='text'>IF...THEN</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_rXqAardmcdI/SYYM35zq7ZI/AAAAAAAAAQ8/uTNQF3gngZ0/s1600-h/screen4.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 213px;" src="http://2.bp.blogspot.com/_rXqAardmcdI/SYYM35zq7ZI/AAAAAAAAAQ8/uTNQF3gngZ0/s320/screen4.JPG" alt="" id="BLOGGER_PHOTO_ID_5297936166197849490" border="0" /&gt;&lt;/a&gt;Instead of FOR...NEXT I thought IF...THEN might be a much better option. As shown, IF...THEN now works. It can do comparisons &lt;, =, &gt;, &lt;&gt;, &lt;=, &gt;=, and, as a bonus, == (same as =, obviously). As my parser only checks for positive cases and not for negative cases, you can also write IF...GOTO. Because this work was done during the weekend, and therefore during the day, you can even see me taking the picture in the reflection of the television as well as my messy desk on the background. I discovered several things still need to improve: number printing should leave out leading zeroes, and it should handle negative numbers, as these might show up soon. Regardless, this introduces the important concept of flow control into the system which means it might actually start doing something useful in the near future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-8918565830998691365?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/8918565830998691365/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=8918565830998691365' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/8918565830998691365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/8918565830998691365'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/02/ifthen.html' title='IF...THEN'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_rXqAardmcdI/SYYM35zq7ZI/AAAAAAAAAQ8/uTNQF3gngZ0/s72-c/screen4.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-5831750836672523500</id><published>2009-01-30T23:16:00.000-08:00</published><updated>2009-01-30T23:17:49.808-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LED'/><title type='text'>Source code for alphabet applications</title><content type='html'>On the PIClist someone asked about an example for controlling a LED display to show characters. I referred to my clock at the time, but I wrote a simpler application for a &lt;a href="http://docs.google.com/Doc?id=dggffzm9_7dxjqsdfs"&gt;children's night light &lt;/a&gt;which also contained an alphabet. If you click on this link, it will lead you to the source code, which includes the character set. The usual copyright notice, found elsewhere in this blog, applies.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-5831750836672523500?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/5831750836672523500/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=5831750836672523500' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/5831750836672523500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/5831750836672523500'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/01/source-code-for-alphabet-applications.html' title='Source code for alphabet applications'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-2851092518789598158</id><published>2009-01-29T20:28:00.000-08:00</published><updated>2009-01-29T20:31:49.403-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ZX-jen'/><category scheme='http://www.blogger.com/atom/ns#' term='TV'/><title type='text'>Addition!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rXqAardmcdI/SYKB97MtVUI/AAAAAAAAAQ0/2QO3FeUIHlw/s1600-h/screen3.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 301px; height: 200px;" src="http://1.bp.blogspot.com/_rXqAardmcdI/SYKB97MtVUI/AAAAAAAAAQ0/2QO3FeUIHlw/s320/screen3.JPG" alt="" id="BLOGGER_PHOTO_ID_5296939012604122434" border="0" /&gt;&lt;/a&gt;As you can see from this screen shot, addition now works. In fact, I now have a CMRreadexpression routine that reads an expression, parses it and executes it. It can differentiate between variable names and numbers, as well as handle the + symbol. It can be easily extended to handle other operations as well, though parentheses will be another hurdle, if I am going to implement those at all. Making it a separate function will make it very easy to include it in the next challenge, the FOR instruction. So hopefully I will be able to say things like:&lt;br /&gt;&lt;br /&gt;FOR a%=b%+1 TO 0 STEP -1&lt;br /&gt;...&lt;br /&gt;NEXT a%&lt;br /&gt;&lt;br /&gt;In the screen shot you can see additional debug statements that identify the operator ('+') but this will be removed soon, probably. Despite what the screen shot seems to imply, the print bug of virtual semicolons has not been fixed: I just added a few spaces to the end of the line.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-2851092518789598158?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/2851092518789598158/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=2851092518789598158' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/2851092518789598158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/2851092518789598158'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/01/addition.html' title='Addition!'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_rXqAardmcdI/SYKB97MtVUI/AAAAAAAAAQ0/2QO3FeUIHlw/s72-c/screen3.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-611365400473901093</id><published>2009-01-26T21:50:00.000-08:00</published><updated>2009-01-26T21:55:06.198-08:00</updated><title type='text'>Slow ZX-jen progress</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rXqAardmcdI/SX6gwQgymtI/AAAAAAAAAQs/UOilxZNBAnk/s1600-h/screen2.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 301px; height: 200px;" src="http://4.bp.blogspot.com/_rXqAardmcdI/SX6gwQgymtI/AAAAAAAAAQs/UOilxZNBAnk/s320/screen2.JPG" alt="" id="BLOGGER_PHOTO_ID_5295846962760948434" border="0" /&gt;&lt;/a&gt;Another short program, demonstrating progress in the handling of variables. You can now assign integer variables with let, and assign them a number (other operations will be implemented in the future) and print them, either with ; (means no newline will print) or without. The output contains the usual debug statements, l for 'let' and p for 'print'. As you can see there is still a slight bug in the print command where it doesn't check the length of the read sentence, and thereby it assumes that line 40 ends with a ;. It used to, in the past, but it was erased. Unfortunately, this was not yet realised by the program. This will need to be fixed. But lots of things need to be fixed still. At least it seems like it is doing something.&lt;br /&gt;&lt;br /&gt;I decreased the size of the image here. If you want to see a blown up version of the screen shot, look at the previous post. It will show approximately how the screen is built. Also, thank you for the comment on that post... I always enjoy comments.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-611365400473901093?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/611365400473901093/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=611365400473901093' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/611365400473901093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/611365400473901093'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/01/slow-zx-jen-progress.html' title='Slow ZX-jen progress'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_rXqAardmcdI/SX6gwQgymtI/AAAAAAAAAQs/UOilxZNBAnk/s72-c/screen2.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-1537565529393610224</id><published>2009-01-25T21:02:00.000-08:00</published><updated>2009-01-25T21:16:38.007-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PIC16F690'/><category scheme='http://www.blogger.com/atom/ns#' term='24LC512'/><category scheme='http://www.blogger.com/atom/ns#' term='TV'/><title type='text'>ZX-jen screen shot</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rXqAardmcdI/SX1EC1vex0I/AAAAAAAAAQk/5fo1yrAb1_U/s1600-h/DSC_0252.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 213px;" src="http://1.bp.blogspot.com/_rXqAardmcdI/SX1EC1vex0I/AAAAAAAAAQk/5fo1yrAb1_U/s320/DSC_0252.JPG" alt="" id="BLOGGER_PHOTO_ID_5295463552434227010" border="0" /&gt;&lt;/a&gt;Here is a screenshot from the "ZX-jen" project, or the &lt;a href="http://emergingdrake.blogspot.com/2009/01/current-project-drake-tv.html"&gt;Drake-TV&lt;/a&gt; mentioned earlier in this blog. The cursor is '&gt;' and the screen continues at the top after it ends at the bottom, instead of scrolling. The square block is the cursor and indicates the current position. Before that is the executing of the program, which is:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;10 print "Hello world!"&lt;br /&gt;20 let a%=3&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;&lt;/span&gt;&lt;/span&gt;As you can see the result of the execution is:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;pHello world!&lt;br /&gt;l%&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;The "Hello world!" is the actual output, the "p" and "l" are debug indicators: they are the first letter of the command being executed, so "print" and "let". The % sign is the type of variable being read, in this case an integer, which indicates that the let statement was correctly interpreted. The only other command that is currently available is "goto". The "Esc" key can be used to interrupt a program. The next step will be to allow printing of a%, although for that to happen the assignment should actually store the value in memory. After this various simple operations, like + and - should be implemented. After this I will consider the "for" and "next" statements.&lt;br /&gt;&lt;br /&gt;As you can see the system supports "run" and "list" commands, but also "new" to wipe the memory. The program is stored in an external 24LC512, so even if the power fails the program will be available. Program lines can be entered by just preceding something with a line number, and deleted by providing a line number with no data. Overwriting is possible too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-1537565529393610224?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/1537565529393610224/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=1537565529393610224' title='1 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/1537565529393610224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/1537565529393610224'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/01/here-is-screenshot-from-zx-jen-project.html' title='ZX-jen screen shot'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_rXqAardmcdI/SX1EC1vex0I/AAAAAAAAAQk/5fo1yrAb1_U/s72-c/DSC_0252.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-6188718706056472603</id><published>2009-01-24T09:26:00.000-08:00</published><updated>2009-01-24T09:29:10.927-08:00</updated><title type='text'>Debugging the clock</title><content type='html'>Most likely due to the fact that I took pictures of it for this blog, one of the many wires connecting the LED had broken. This is the disadvantage of wirewrap wire: it breaks easily. After looking at the clock, I discovered that last vertical line failed completely, and the vertical line 7 before that. So using my own schematic it was clear that the D0 line from the PIC16F877A had failed, but not immediately: going from the 7th row of LED to the 14th row. So it was easy to locate the wire that was loose and resolder it. The clock works now, again.&lt;br /&gt;&lt;br /&gt;In other words: glad I documented things in this blog. Otherwise I wouldn't have had the schematic. Of course, if I hadn't documented it, it probably wouldn't have broken either...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-6188718706056472603?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/6188718706056472603/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=6188718706056472603' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/6188718706056472603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/6188718706056472603'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/01/debugging-clock.html' title='Debugging the clock'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-2006964186328434156</id><published>2009-01-19T19:10:00.000-08:00</published><updated>2009-01-19T19:20:28.396-08:00</updated><title type='text'>LED clock source code</title><content type='html'>The &lt;a href="http://docs.google.com/Doc?id=dggffzm9_6f73k2rd2"&gt;source code of the LED clock&lt;/a&gt; is not very tidy, but it does the job. It first contains the definition of the hands of the clock, for one quarter. These are given by move up and move right markers, two bits at a time. I also added tables for mapping X coordinates and multiplying a number with 5, which, together with a bit shift, is convenient for also multiplying with 10. Then there are the routines for drawing digits. Digits have been optimized for the least amount of LED needed to display them, as displaying fewer LED allows brighter LED. The "second hand" is actually a single LED that moves in a square around the clock, and its table defines that movement. Initialization is as usual, with the A/D converter for reading the temperature.&lt;br /&gt;&lt;br /&gt;The drawing routine has a memory bank that retains the image, which is rebuilt every time a display is made. For this rebuilding separate routines exist, one to display a single pixel, ones that draw entire digits, and ones that draw hands. A cursor keeps track of where things are currently being drawn. There is a separate set of routines to allow a scroll text on the clock, which is used to announce birthdays (not completely implemented yet) and a help text (which currently randomly enables itself).  Then there are routines to display the temperature graph over the last 15 minutes, 15 hours and 15 days. Each LED position is 2 degrees Celcius. Not very accurate, but still interesting to see. Actually displaying things is done by "RefreshDisplay" which draws all the LED that are on. It skips LED that are off, to ensure that the remaining ones are brighter (this means that a display with more LED on will have these LED dim a bit).&lt;br /&gt;&lt;br /&gt;Then there are routines to handle the two buttons, which are used to navigate through the different menus and submenus, including the setting of the alarm time and the alarm count down options. Updating the clock is also done this way. I also started on a teddy bear mode where it would display certain animals as pictures, but this has not completed yet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-2006964186328434156?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/2006964186328434156/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=2006964186328434156' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/2006964186328434156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/2006964186328434156'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/01/led-clock-source-code.html' title='LED clock source code'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-409739655836307930</id><published>2009-01-18T13:45:00.000-08:00</published><updated>2009-01-18T13:55:13.375-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PIC16F877A'/><category scheme='http://www.blogger.com/atom/ns#' term='LED'/><category scheme='http://www.blogger.com/atom/ns#' term='74LS154'/><category scheme='http://www.blogger.com/atom/ns#' term='74LS125'/><title type='text'>Powering the LED of the clock</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_rXqAardmcdI/SXOjPs3fkUI/AAAAAAAAAQc/yqLC-eAdAvU/s1600-h/clock.bmp"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 242px;" src="http://3.bp.blogspot.com/_rXqAardmcdI/SXOjPs3fkUI/AAAAAAAAAQc/yqLC-eAdAvU/s320/clock.bmp" alt="" id="BLOGGER_PHOTO_ID_5292753477227745602" border="0" /&gt;&lt;/a&gt;Obviously the hardest part of the clock was all the LED. For a display of 21x15 you already have 315 LED that need to be powered, and even the large 16F877A has only 40 pins. The first step to simplify things is to group the LED in groups of 7, with a shared cathode. At that point you can select a group of LED by setting the cathode to 0V, and light a specific LED by setting its anode to 5V. LED burn very brightly at 5V, but can handle this only for a short duration of time (the so-called duty interval). For the LED I used the duty interval was 1/16th, but because of the amount of LED I stayed well below that. To select a group of LED I used the 74LS154, which demultiplexes a 4-bit input into 16 separate lines that can be individually pulled low. Attaching these to each of the cathodes would allow the control of 16 groups of LED. As they are grouped in groups of 7, this meant approximately 1/3rd of the LED could be controlled this way. Using 3 74LS154 the entire board could be controlled (in the schematic not all LED are drawn, one has to imagine the missing LED in between). To make things easy the 74LS154 allows you to individually select which 74LS154 is active at a given time, so with only 7 lines you can control all cathodes, and with 7 additional lines all anodes. With 45 cathodes, this means the duty cycle is, at best, 1/45th. However, it turned out that the drain on the 74LS154 is not high enough to power 7 LED at the same time, and it has to be split in 2 groups (one of 3 LED, one of 4 LED). This means the duty cycle became 1/90th. It turns out that even at 1/90th the LED burn quite brightly and are well visible.&lt;br /&gt;&lt;br /&gt;The anodes could obviously be powered directly from the PIC16F877A, as it can output 25mA per line. However, it can only output 100mA in total, and it is therefore recommend to add the 74LS125 buffer chip, which can output 35mA per line. Do not forget to add the 0.1uF decoupling capacitors at every IC used: in this case there are 3 74LS154, 2 74LS125 and 1 16F877A that need decoupling. The result is a display that can be used for many purposes, but was used, in this case, for a clock. Alternatively the LED could be all put in a long line, making a scroll text display.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-409739655836307930?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/409739655836307930/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=409739655836307930' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/409739655836307930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/409739655836307930'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/01/powering-led-of-clock.html' title='Powering the LED of the clock'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_rXqAardmcdI/SXOjPs3fkUI/AAAAAAAAAQc/yqLC-eAdAvU/s72-c/clock.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-7674816553478894743</id><published>2009-01-17T15:56:00.001-08:00</published><updated>2009-01-17T16:00:04.167-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thermometer'/><title type='text'>Temperature measurement for clock</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rXqAardmcdI/SXJwVn4NwtI/AAAAAAAAAQU/DHotzMMZoVQ/s1600-h/temperature.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 195px;" src="http://4.bp.blogspot.com/_rXqAardmcdI/SXJwVn4NwtI/AAAAAAAAAQU/DHotzMMZoVQ/s320/temperature.JPG" alt="" id="BLOGGER_PHOTO_ID_5292416028898083538" border="0" /&gt;&lt;/a&gt;The reason why I added a thermometer to the clock was because I had an LM335 lying around, which I bought at a website that doesn't exist anymore. It was relatively easy to connect (as you can see from the schematic). The resistor is pretty lenient, as the whole system needs to be calibrated on the PIC microcontroller that is attached. Unfortunately this also means that the system is very sensitive to the voltage that is applied: I currently have 6V attached to the system, which is not enough to properly prime the 7805 I use for power (a minimum of 6.6V is needed) which means that attaching a higher voltage source (like a 9V adapter) causes the temperature display to behave erratically. This can, of course, be easily avoided by just having enough power. Still, it is likely that for each different 7805 it has to be adjusted separately. This can be done externally by hooking up a 10K potentiometer to the ADJ pin of the LM335, however, since this was a one-off implementation I decided to just leave it the way it is.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-7674816553478894743?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/7674816553478894743/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=7674816553478894743' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/7674816553478894743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/7674816553478894743'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/01/temperature-measurement-for-clock.html' title='Temperature measurement for clock'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_rXqAardmcdI/SXJwVn4NwtI/AAAAAAAAAQU/DHotzMMZoVQ/s72-c/temperature.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-8532846904731986783</id><published>2009-01-15T21:52:00.000-08:00</published><updated>2009-01-15T21:56:49.639-08:00</updated><title type='text'></title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rXqAardmcdI/SXAg95Je2fI/AAAAAAAAAQM/jn2BR0aADsY/s1600-h/DSC_0239.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 213px;" src="http://4.bp.blogspot.com/_rXqAardmcdI/SXAg95Je2fI/AAAAAAAAAQM/jn2BR0aADsY/s320/DSC_0239.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5291765809845033458" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And here is the backside of the clock. As you can see, I took a few days wiring up all the LED on the front. It was a bit tedious, but also fun to see the result. I tested each line I added separately with a test program, to make sure everything worked well before continuing.&lt;br /&gt;&lt;br /&gt;The wire used is actually wirewrap wire. It is very thin, and therefore has a higher resistance, but if you keep them relatively short this will not affect the circuit. They place themselves easily, but unfortunately will break if you move them too often. Easiest is to cut them to the correct length first, then strip them with pliers, then solder two spots together on the board and then push the end into the existing solder. This way you get a pretty solid connection to anywhere.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-8532846904731986783?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/8532846904731986783/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=8532846904731986783' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/8532846904731986783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/8532846904731986783'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/01/and-here-is-backside-of-clock.html' title=''/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_rXqAardmcdI/SXAg95Je2fI/AAAAAAAAAQM/jn2BR0aADsY/s72-c/DSC_0239.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-3562083666468858757</id><published>2009-01-13T17:33:00.001-08:00</published><updated>2009-01-17T16:00:50.635-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PIC16F877A'/><category scheme='http://www.blogger.com/atom/ns#' term='LED'/><category scheme='http://www.blogger.com/atom/ns#' term='DS1307'/><category scheme='http://www.blogger.com/atom/ns#' term='Clock'/><category scheme='http://www.blogger.com/atom/ns#' term='Thermometer'/><title type='text'>Clock</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rXqAardmcdI/SW1BCTJDMFI/AAAAAAAAAQE/jbgnqO_mxis/s1600-h/DSC_0228.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 213px;" src="http://4.bp.blogspot.com/_rXqAardmcdI/SW1BCTJDMFI/AAAAAAAAAQE/jbgnqO_mxis/s320/DSC_0228.JPG" alt="" id="BLOGGER_PHOTO_ID_5290956644983976018" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Another interesting project I completed last year was a clock, that uses 5x7 segment displays in a 21x15 configuration to form a display, on which a clock is displayed. The clock also &lt;a href="http://emergingdrake.blogspot.com/2009/01/temperature-measurement-for-clock.html"&gt;measures temperature&lt;/a&gt;, keeps graphs over time and has a scroll text explaining its function. It is controlled by two buttons. On the picture you can see the normal display, with the clock set to approximately 5:30 PM (the LED in the corner indicates the PM). It also shows the current temperature in Celcius as well as the date (13th). The clock uses a PIC16F877A, mostly because of the large number of outputs that is needed to control all the LED. Most time was the soldering of all these connections, I'll include a picture of the back later, which shows how this was done. There are some IC to ensure proper power to the LED (although it is still lacking, occasionally). It uses the DS1307 for the time. The DS1302 with capacitor would've been better, but unfortunately I had none available, so I used the DS1307 with a separate battery.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-3562083666468858757?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/3562083666468858757/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=3562083666468858757' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/3562083666468858757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/3562083666468858757'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/01/clock.html' title='Clock'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_rXqAardmcdI/SW1BCTJDMFI/AAAAAAAAAQE/jbgnqO_mxis/s72-c/DSC_0228.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-6866164939983320041</id><published>2009-01-11T14:42:00.001-08:00</published><updated>2009-01-11T14:45:41.017-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='PIC16F690'/><category scheme='http://www.blogger.com/atom/ns#' term='PIC16F688'/><category scheme='http://www.blogger.com/atom/ns#' term='PIC16F628A'/><category scheme='http://www.blogger.com/atom/ns#' term='EEPROM'/><category scheme='http://www.blogger.com/atom/ns#' term='power supply'/><title type='text'>Current project: Drake-TV</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rXqAardmcdI/SWp2BKCrGII/AAAAAAAAANo/wOZ9ZP72Wuo/s1600-h/DSC_0226.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 213px;" src="http://4.bp.blogspot.com/_rXqAardmcdI/SWp2BKCrGII/AAAAAAAAANo/wOZ9ZP72Wuo/s320/DSC_0226.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5290170474547583106" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;My current project is Drake-TV, a new version of the Drake that is hooked up to a PS/2 keyboard and the television, and works on a 9V adapter. It contains the various circuits described on these pages: the power supply (using a 7805), the video output (this time using a 16F688 instead of the 16F628A), the main processor (the 16F690) and the "external" memory EEPROM (24LC512). The audio has not been connected yet, but will undoubtedly be connected in the future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-6866164939983320041?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/6866164939983320041/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=6866164939983320041' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/6866164939983320041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/6866164939983320041'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2009/01/current-project-drake-tv.html' title='Current project: Drake-TV'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_rXqAardmcdI/SWp2BKCrGII/AAAAAAAAANo/wOZ9ZP72Wuo/s72-c/DSC_0226.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-3360800660129122654</id><published>2008-12-10T18:09:00.000-08:00</published><updated>2008-12-10T18:13:12.838-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TV'/><title type='text'>TV card output</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_rXqAardmcdI/SUB2fCpclUI/AAAAAAAAAE0/hBa5F4bnijU/s1600-h/tvout.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_rXqAardmcdI/SUB2fCpclUI/AAAAAAAAAE0/hBa5F4bnijU/s320/tvout.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5278349038936954178" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The output to the TV from the PIC microcontroller is a very simple circuit. For the audio, it is merely a 0.47uF capacitor, to avoid DC current bias. For the video, it is two resistors. The actual values should be 450 Ohm and 900 Ohm, but 1k Ohm and 470 Ohm are close enough, and work really well. These are used to generate the appropriate voltages (low threshold, black, white and gray). Gray could be used for two levels of output, but due to the speed limitations of the microcontroller this state is not used. Basically the 1k Ohm pin is used the generate the threshold voltages for syncing, and the 470 Ohm pin is used to generate the actual black and white values in the output. The circuit assumes the TV has an internal resistance of 50-75 Ohm, which is generally the case, to generate 0V, 0.4V and 1.2V levels.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-3360800660129122654?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/3360800660129122654/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=3360800660129122654' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/3360800660129122654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/3360800660129122654'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2008/12/tv-card-output.html' title='TV card output'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_rXqAardmcdI/SUB2fCpclUI/AAAAAAAAAE0/hBa5F4bnijU/s72-c/tvout.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-4820368151802637011</id><published>2008-12-10T18:02:00.000-08:00</published><updated>2008-12-10T18:04:28.557-08:00</updated><title type='text'></title><content type='html'>This is a &lt;a href="http://people.zeelandnet.nl/whhofman/jen/PIC/tv.html"&gt;copy of the text on the other website&lt;/a&gt;, to ensure that it is preserved in case it goes down.&lt;br /&gt;&lt;br /&gt;Version 0.1&lt;br /&gt;&lt;br /&gt;Version 2, with its old-style joystick interface, desparately needed a TV interface as well. I therefore started working on this. After some experimenting with an old television, I discovered that at 20 MHz it is quite possible to get 14 characters on one line without any real problems. You can also get quite a few characters vertically, but memory of a 16F628 is limited, so I decided on 10 characters, making a grand total of 140 characters. The memory is set to two segments, one starting from A0-F4, the other from 20-58. Each byte represents one character. If the top bit is set, it is assumed to be a regular ASCII character (see picture for the entire set).&lt;br /&gt;&lt;br /&gt;Version 0.2&lt;br /&gt;&lt;br /&gt;If the top bit is not set, it is assumed to be a user defined character, and retrieved from the local EEPROM. A next version will implement a three-byte code that can be sent over RS-232 in order to change memory and EEPROM locations.&lt;br /&gt;&lt;br /&gt;Version 0.3&lt;br /&gt;&lt;br /&gt;I then continued developing the "low resolution graphics option" which allows a &lt;br /&gt;screen of 56*20 pixels, shown in the picture. This can be configured per line, so you can have one line of text, and 56*18 pixels, if desired. I originally planned on also have a line-by-line configurable 28*40 resolution, but am probably going to make that a global setting.&lt;br /&gt;&lt;br /&gt;Currently I'm working more on the RS-232 interface, which understands the following commands:&lt;br /&gt;&lt;br /&gt;Sequence Effect&lt;br /&gt;0 1 2 Sync sequence. Send this if you're not certain if the chip is in sync with its RS-232 communication.&lt;br /&gt;128 A0+14*Y+X V Prints character V at location X,Y. This works for lines 0-5. To print an ASCII character, set bit 7 of V. To print a user defined character, reset bits 0, 1, 2 and 7. This leaves a choice of 16 user defined characters. You can "scroll" through the user defined graphics by changing the lower three bits.&lt;br /&gt;128 20+14*Y+X V See above, for lines 6-9.&lt;br /&gt;128 106/107 V Defines which lines will be text, and which lines will be 56*20 graphics. The bits of 106 define the first eight lines, the lower two bits of 107 define lines 9 and 10. A 0 means text, a 1 means graphics. V is the value assigned.&lt;br /&gt;129 Y*8+X V Defines a user defined character. Y (0-15) defines which user defined character is changed, X (0-7) defines which line in the user defined character is changed. V is the value assigned. Changing a user defined character takes time: do not send multiple changes in rapid succession or some changes might be lost.&lt;br /&gt;130 .. .. Similar to commands starting with 128, but instead the value is XORed instead of assigned. Sending this sequence twice would result in no change.&lt;br /&gt;132 255 0 Set speed to 1200 bits/second.&lt;br /&gt;132 129 0 Set speed to 2400 bits/second (default).&lt;br /&gt;132 129 1 Set speed to 9600 bits/second.&lt;br /&gt;132 64 1 Set speed to 19200 bits/second.&lt;br /&gt;132 32 1 Set speed to 38400 bits/second.&lt;br /&gt;132 21 1 Set speed to 57600 bits/second.&lt;br /&gt;132 3 0 Set speed to 76800 bits/second. This exceeds the maximum processing speed of the device. Do not send data continuously.&lt;br /&gt;132 10 1 Set speed to 115200 bits/second (not continuous).&lt;br /&gt;132 4 1 Set speed to 250000 bits/second (not continuous).&lt;br /&gt;132 0 0 Set speed to 312500 bits/second (not continuous).&lt;br /&gt;132 1 1 Set speed to 625000 bits/second (not continuous).&lt;br /&gt;132 0 1 Set speed to 1250000 bits/second (not continuous).&lt;br /&gt;132 111 4 Odd times: disables fake interlace (makes screen more stable, but makes dark lines inside letters visible), even times: enable fake interlace.&lt;br /&gt;128 126 V 130 111 8 Change all locations on the screen to V. This can be used as a clear screen (with 0xA0 in text mode and 0x00 in graphics mode). V needs to be set only once, and defaults to 0xA0.&lt;br /&gt;128 121 L 128 122 H 130 111 1 Play a musical note through the television. L,H=65536-(15660/frequency). To turn the note off, send 132 111 1 again.&lt;br /&gt;Version 1&lt;br /&gt;TV I built the first daughterboard version (see picture) and discovered that the bytecode is way to slow to even send a continuous 2400 bits/second data stream, let alone higher bit rates. I therefore decided to code some of the commands in bytecode (in fact adding a "TV mode") which worked well, until I tried higher speeds. It turned out I didn't call HandleRS232 often enough, and had to change that. It can now run at 9600 bits/second, and tonight I'll start trying higher speeds. Hopefully I'll get the 57600 bits/second that I promised myself earlier on this page. And yes, the system works also without the LCD display, and only the TV daughterboard connected.&lt;br /&gt;&lt;br /&gt;TV Game Update: the speed is now up to 78600 bits/second continuous, where it belongs. To the left you can see a picture of a conversion of the "Version 1" meteor game to TV. The space ship has pixel level (two TV line level) up and down movement, and the meteors are moving quite fast compared to its speed. This is still in the beginning stages, but development goes quite well.&lt;br /&gt;&lt;br /&gt;Version 1.01&lt;br /&gt;&lt;br /&gt;Version 1.01 now has the Drake v2.0 logo when it boots. I also modified the output not to be on cables, but on the PCB itself. A good picture of the board is now available on this page as well. The final version of this system will be on a smaller board, but will still have three outputs (though it is still mono: the two sound outputs are provided with the same stream). TV Card&lt;br /&gt;&lt;br /&gt;Version 1.02&lt;br /&gt;&lt;br /&gt;Here is a picture of the current font of the TV card. It includes the suits of cards, a ball, an overscore, a solid block and a grayed block, four triangles in four corners and a number of digraphs (and ...) which allow more characters to be squeezed on a line, improving the amount of text that can be displayed on one line.&lt;br /&gt;&lt;br /&gt;Version 1.03&lt;br /&gt;&lt;br /&gt;To show how the digraphs help in increasing the number of characters per line, you can see a text in the picture on the right. The content is a Dutch song which has been roughly translated into English. As you can see, the digraphs allow a lot more characters per line than would normally be possible. This is version 1.03 because the digraphs are different from the ones in version 1.02. As you can see, the largest number of characters on one line in this example is 21, which is 50% more than the normal 14. The only line with less than 14 characters is "first had", this line still has six regular spaces left. The average line length is 16.6 characters, almost a 20% increase.&lt;br /&gt;&lt;br /&gt;Version 1.04&lt;br /&gt;&lt;br /&gt;This is the first picture of the version using the 16F628A. The 16F628A has the unfortunate aspect that disallows reading from the EEPROM while it is being written to (the 16F628 had no problems with that). I'm still working on making tbhe meteor pattern more random, which is more difficult than it seems. The random generator might need more work. I'm also working on porting the application to the 16F688. This will increase the amount of user defined characters to 32, and the number of characters in the character set to 256. However, it will disallow user defined characters and regular characters to appear on the same line.&lt;br /&gt;Purchasing&lt;br /&gt;If people are interested in buying this TV card, which can easily be used in other Microcontroller/PC projects, I would be welcome to send it to you. It can be configured to your desires, will come unassembled with a preprogrammed PIC16F628A, and will be $10 excluding shipping. Features:&lt;br /&gt;&lt;br /&gt;    * 14*10 character resolution&lt;br /&gt;    * 56*20 graphics mode, selectable on a per line basis&lt;br /&gt;    * 16 user definable characters, can be combined on a pixel line basis&lt;br /&gt;    * Communication speed up to 250000 bits/second (3 bytes/charater)&lt;br /&gt;    * 1 voice audio with frequencies up to 15660 Hz&lt;br /&gt;    * Fast clear screen operation&lt;br /&gt;    * Special character set with digraphs for an average of 18 letters/line&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-4820368151802637011?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/4820368151802637011/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=4820368151802637011' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/4820368151802637011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/4820368151802637011'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2008/12/this-is-copy-of-text-on-other-website.html' title=''/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-6585742835475014339</id><published>2008-12-10T17:53:00.000-08:00</published><updated>2008-12-10T18:02:00.187-08:00</updated><title type='text'>Drake TV daughterboard</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rXqAardmcdI/SUB0jbuBrRI/AAAAAAAAAEs/rpZIXrC4Jhk/s1600-h/tvcard.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 318px; height: 320px;" src="http://1.bp.blogspot.com/_rXqAardmcdI/SUB0jbuBrRI/AAAAAAAAAEs/rpZIXrC4Jhk/s320/tvcard.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5278346915363269906" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://people.zeelandnet.nl/whhofman/jen/PIC/tv.html"&gt;Drake TV daughterboard&lt;/a&gt; is a very simple circuit, based around the PIC16F628A, although I made a version using the PIC16F688 as well. The board uses a composite video and RCA audio output, has the usual &lt;a href="http://emergingdrake.blogspot.com/2008/11/power.html"&gt;78L05 power regulator&lt;/a&gt; and uses a 9-pin sub D connector to hook up to the old Drake motherboards, which will be described at another time. The daughterboard accepts specially coded input of characters, and outputs them as a signal to the TV, also handling audio.&lt;br /&gt;&lt;br /&gt;The choice for a PIC16F628A was very deliberate, and the resulting code ONLY runs on this device. A larger memory actually causes the timing to go off, and such a device would actually have less functionality (which is the case for the PIC16F688). 18F devices could of course perform similarly, but they would be more expensive. With the current circuit you can output TV from your product for less than $2.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-6585742835475014339?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/6585742835475014339/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=6585742835475014339' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/6585742835475014339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/6585742835475014339'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2008/12/drake-tv-daughterboard.html' title='Drake TV daughterboard'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_rXqAardmcdI/SUB0jbuBrRI/AAAAAAAAAEs/rpZIXrC4Jhk/s72-c/tvcard.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-8334769767858573419</id><published>2008-12-10T17:50:00.000-08:00</published><updated>2008-12-10T17:52:21.345-08:00</updated><title type='text'>Old drakes</title><content type='html'>Note that the &lt;a href="http://people.zeelandnet.nl/whhofman/jen/PIC/"&gt;old drakes&lt;/a&gt; are still available. I will undoubtedly republish that content here, but I wanted to make sure the link was posted as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-8334769767858573419?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/8334769767858573419/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=8334769767858573419' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/8334769767858573419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/8334769767858573419'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2008/12/old-drakes.html' title='Old drakes'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-2720607936012319121</id><published>2008-12-09T18:56:00.000-08:00</published><updated>2008-12-11T11:18:23.227-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PIC16F877A'/><category scheme='http://www.blogger.com/atom/ns#' term='Calculator'/><category scheme='http://www.blogger.com/atom/ns#' term='HD44780'/><category scheme='http://www.blogger.com/atom/ns#' term='DS1302'/><title type='text'>Calculator software</title><content type='html'>No diagram of how the PIC16F877A was actually connected: the only special things were the ceramic resonator that I used to keep it at a specific frequency (the PIC16F877A unfortunately does not have an internal clock) and the diode that I used to share pins with the &lt;a href="http://emergingdrake.blogspot.com/2008/11/icsp-for-pic-microcontrollers.html"&gt;ICSP circuitry&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;This article concerns the &lt;a href="http://docs.google.com/Doc?id=dggffzm9_4dfjgf5fb"&gt;code for the calculator &lt;/a&gt;I built.&lt;br /&gt;By now a lot of features of my code should be recognizable. The initialization of the system is generally the same, both of the LCD display as well as the rest of the system. The code starts defining icons used on the display: the HD44780 allows user definable characters, and here they are defined and read. Then there is the keymap, which maps the scanlines of the keyboard to actual values. After initialization, the following steps happen:&lt;br /&gt;&lt;br /&gt;1. Day and month are read by sending their locations in the DS1302 and calling TIMERead which retrieves that value.&lt;br /&gt;2. In the birthday loop ROMretrieveword is used to retrieve the next birthday, which is then compared with the current date to see if the name associated with this birthday should be displayed.&lt;br /&gt;3. After this done it waits for a random key to be pressed, indicating that the birthdays have been viewed. After this the birthdays are not displayed until the calculator is turned off and on again.&lt;br /&gt;4. At this point it reaches the MainLoop where the menu is displayed and the user can use a key to select an item from the menu. The menu has groups of 3, representing the lines on the keypad. This interface has failed in all my user tests, but it works for me. You might want to find a better organization, though. The menu options are 1 to display the time, 2 to set the time, 3 to use the calculator and 4 to use the address book.&lt;br /&gt;&lt;br /&gt;The addressbook starts at MainContacts:&lt;br /&gt;1. The LCD display is cleared.&lt;br /&gt;2. ROMretrieveword is used to skip the birthday.&lt;br /&gt;3. If this was the last contact, go back to the main menu.&lt;br /&gt;4. Display the first line of the contact (which is the name).&lt;br /&gt;5. Wait for a key press.&lt;br /&gt;6. If it is 2, skip the next parts of the address and continue at 2.&lt;br /&gt;7. Show rest of address and return to main menu.&lt;br /&gt;&lt;br /&gt;The calculator starts at MainCalculator. The menu works the same as the main menu. Some of the keys on the keyboard (backspace, +, +/- and =) have short cuts. At any point # can be used to access a menu with additional features. The most remarkable aspect of the calculator is the method of storage: the numbers are stored as they would be displayed, in the decimal system. All calculations are done using the decimal system as well, using the mechanisms that are taught to children. Not efficient in either memory and space, but quite readable and very easy to convert between keyboard input and display, which was my biggest concern.&lt;br /&gt;&lt;br /&gt;A few other routines that require mentioning are the keypad read routine, which always checks for *. If * is pressed, the system jumps to the main menu, regardless of what state it is in. This is a very useful shortcut for the user, but is a good example of how code should not be written. Another aspect of the keypad that is interesting is how it debounces. The other interesting aspect is the way data is stored. The data is not stored in an external memory, like with the &lt;a href="http://emergingdrake.blogspot.com/2008/11/camera-gps.html"&gt;GPS system&lt;/a&gt;, but &lt;br /&gt;uses the main memory of the PIC16F877A. It has 8K of 14 bit wide memory, and using clever tricks we can store 12K of address data and birthdays in this memory. I wrote a separate &lt;a href="http://docs.google.com/Doc?id=dggffzm9_5dhz9h3dk"&gt;JAVA program to cover this address compression&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-2720607936012319121?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/2720607936012319121/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=2720607936012319121' title='1 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/2720607936012319121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/2720607936012319121'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2008/12/calculator-software.html' title='Calculator software'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-6266164807423766994</id><published>2008-12-09T18:50:00.000-08:00</published><updated>2008-12-09T18:56:20.417-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Calculator'/><category scheme='http://www.blogger.com/atom/ns#' term='Time and date'/><title type='text'>Keeping time and date</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_rXqAardmcdI/ST8ucTobqcI/AAAAAAAAAEk/bjhoGT8rpII/s1600-h/calculatorclock.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 260px;" src="http://2.bp.blogspot.com/_rXqAardmcdI/ST8ucTobqcI/AAAAAAAAAEk/bjhoGT8rpII/s320/calculatorclock.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5277988352142584258" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Keeping time and date is relatively simple if one uses an external component. It is in principle possible to use the PIC microcontroller itself, moving it into sleep mode, giving it a 32.768 kHz crystal, et cetera. However, the head aches are not worth it if you have the space for a 8 pin DIP, like the DS1302. The DS1307 is another option if you wish to use &lt;a href="http://emergingdrake.blogspot.com/2008/11/i2c-eeprom-microcontroller-connection.html"&gt;I2C&lt;/a&gt;. This circuit was meant for &lt;a href="http://emergingdrake.blogspot.com/2008/12/my-calculator.html"&gt;my calculator&lt;/a&gt;, mostly to keep the date so it would tell me of birthdays that I might otherwise miss.&lt;br /&gt;&lt;br /&gt;Connecting a DS1302 is pretty simple: just connect the 3 wires to the PIC microcontroller, connect the X1 and X2 to an appropriate crystal (these crystals have very small pins, so if a socket is used for the DS1302, something I would recommend, you can add the crystal to the same socket, and not solder it) and connect the power. Do not forget the 0.1uF decoupling capacitor, although in this case it might be less important, because the DS1302 is supposed to work using a backup battery. The DS1302 can charge this backup battery, so the ideal choice is a super capacitor. The value in the circuit is no joke, I used a 1F capacitor for this purpose. They are slightly bigger than a watch battery and can NOT handle voltages larger than 5V. However, most of the time it will not charge over 2V, which is still sufficient for the DS1302 to work. It has never lost time in my application, even with the power being off for weeks. The hardest part of the DS1302 is the software, but fortunately you can just &lt;a href="http://docs.google.com/Doc?id=dggffzm9_4dfjgf5fb"&gt;copy the pieces of code&lt;/a&gt; that I wrote.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-6266164807423766994?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/6266164807423766994/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=6266164807423766994' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/6266164807423766994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/6266164807423766994'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2008/12/keeping-time-and-date.html' title='Keeping time and date'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_rXqAardmcdI/ST8ucTobqcI/AAAAAAAAAEk/bjhoGT8rpII/s72-c/calculatorclock.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-5953501264748009672</id><published>2008-12-08T19:29:00.001-08:00</published><updated>2008-12-08T19:58:47.796-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PIC16F877A'/><category scheme='http://www.blogger.com/atom/ns#' term='Calculator'/><title type='text'>Calculator switchpad</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_rXqAardmcdI/ST3mHmh0XQI/AAAAAAAAAEc/Q0zN8o5V2UA/s1600-h/switchpad.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 270px; height: 320px;" src="http://2.bp.blogspot.com/_rXqAardmcdI/ST3mHmh0XQI/AAAAAAAAAEc/Q0zN8o5V2UA/s320/switchpad.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5277627356623953154" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Today I got my first comment on this blog, and I appreciate it a lot. Hopefully more comments follow.&lt;br /&gt;&lt;br /&gt;The switchpad of the calculator came from Jameco, and was basically 16 switches in a grid, as displayed in this schematic. To connect them to the PIC16F877A was simple: on the read side the voltage is pulled up to a known voltage (5V makes perfect sense) using a resistor network. The values of these resistors are arbitrary. I like 100k Ohm because this reduces power consumption. Speed does not really matter as they are switches anyway, and their fastest response time is 10ms. On the scan side you just connect the pins to the PIC16F877A. To read it is a matter of setting a particular line to 0V and see if any of the receiving ports detect it. If this is the case, that particular switch was pressed.&lt;br /&gt;&lt;br /&gt;The software is slightly more complicated, because switches tend to "bounce" a bit, and it needs to be debounced, preferably over a 20ms range. So if there are changes faster than 20ms, these should be ignored, and the system should wait until the signal is stable for over 20ms. This is relatively easy to code as well, though.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-5953501264748009672?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/5953501264748009672/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=5953501264748009672' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/5953501264748009672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/5953501264748009672'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2008/12/calculator-switchpad.html' title='Calculator switchpad'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_rXqAardmcdI/ST3mHmh0XQI/AAAAAAAAAEc/Q0zN8o5V2UA/s72-c/switchpad.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-979263457277222217</id><published>2008-12-08T19:03:00.000-08:00</published><updated>2008-12-08T19:10:38.676-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GPS'/><title type='text'>Version 2 GPS software</title><content type='html'>&lt;a href="http://docs.google.com/Doc?id=dggffzm9_3gp4jvcfx"&gt;Version 2 of the GPS had a new program&lt;/a&gt;, although some of the old software is still recognizable.&lt;br /&gt;&lt;br /&gt;It first initializes the variables, and the LCD display. It also sets the serial port for 4800 bps communication, which is what is needed for the GPS module. This means output to the PC will also be in this speed. The LCD activation sequence is always the same, as the R/W line is pulled down, we need to have maximum delays (160uS and 5ms respectively). Finally the software displays a . on the display to indicate that something is happening.&lt;br /&gt;&lt;br /&gt;During the start loop it reads from the GPS until a valid string is read. If the button is pressed during this time, it is remembered so that the location can be recorded.&lt;br /&gt;&lt;br /&gt;During the main loop it continues to read from the GPS and makes sure that a valid sentence is stored separately for later recording. The SendString routine sends the GPS string from the sentence that is at location Number. This is used to display relevant information for each screen.&lt;br /&gt;&lt;br /&gt;There are a number of states, that can be cycled through using the button. In one state it works normally, displaying the location and recording locations and pictures in case the camera triggers the flash port. In various other states different information is displayed. In the sending state it displays "Sending..."  and sends the complete memory to the PC over the serial port.&lt;br /&gt;&lt;br /&gt;Other routines handle the storing in external memory, the reading from external memory, the writing and reading from the serial port, and the recognizing of a valid sentence and skipping all the other information from the GPS module.&lt;br /&gt;&lt;br /&gt;The detecting of the switches is done with a separate routine, which sets a flag when it happens. This routine is called as often as possible, to make sure no button presses are missed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-979263457277222217?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/979263457277222217/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=979263457277222217' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/979263457277222217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/979263457277222217'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2008/12/version-2-gps-software.html' title='Version 2 GPS software'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-8140221615973953658</id><published>2008-12-08T18:21:00.000-08:00</published><updated>2008-12-08T18:59:36.047-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='serial port'/><category scheme='http://www.blogger.com/atom/ns#' term='GPS'/><category scheme='http://www.blogger.com/atom/ns#' term='PIC16F628A'/><category scheme='http://www.blogger.com/atom/ns#' term='DS275'/><category scheme='http://www.blogger.com/atom/ns#' term='power supply'/><title type='text'>Serial port for the new GPS</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rXqAardmcdI/ST3cNumfNbI/AAAAAAAAAEU/U0EbLPSASVo/s1600-h/serialgps.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 186px;" src="http://1.bp.blogspot.com/_rXqAardmcdI/ST3cNumfNbI/AAAAAAAAAEU/U0EbLPSASVo/s320/serialgps.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5277616466753959346" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://emergingdrake.blogspot.com/2008/11/camera-gps-official-version.html"&gt;Version 2 of the GPS&lt;/a&gt; has a more complicated serial port interface, as it has two functions. The &lt;a href="http://emergingdrake.blogspot.com/2008/11/camera-gps.html"&gt;original&lt;/a&gt; only had to read from the GPS, and store the results in memory, the new version also has to be able to send the result to a PC. Unlike version 1, which used an external GPS and therefore used a &lt;a href="http://emergingdrake.blogspot.com/2008/11/serial-port-for-input.html"&gt;regular serial input&lt;/a&gt;, version 2 uses an actual GPS module. The second version also has to be able to output to a PC, something that was not covered at all in the first version.&lt;br /&gt;&lt;br /&gt;The connection to the GPS module has some intricacies, because the GPS module, despite having a 4-6V input, had only a 3.3V output. Glancing through the data sheets of the PIC16F628A this might seem to be no problem, until one notices that the serial input port of this microcontroller uses Schmitt Trigger inputs, which means the minimum voltage for a '1' is 4V. To do the conversion I used a 74HCT125, which accepts a large range of input voltages, and converts them to whatever voltage is set on Vcc. Of course it is a bit of a waste of the other 3 buffers inside this chip, but it works and makes it very unlikely to damage the GPS module. An alternative would be to run the PIC16F628A on 3.3V, but this would cause other difficulties, for example with the interface to the LCD display, which needs 5V. Apart from the buffer, the connection to the GPS is very simple, as there is no other conversion necessary.&lt;br /&gt;&lt;br /&gt;To connect to the PC we would officially have to output +12V and -12V signals. Clearly this is not easy with 5V power, and even if we used the 9V battery power we would still run into trouble with negative voltages. Fortunately there is the DS275. This small component leeches voltage from the RS232 interface of the PC and uses that voltage to send the messages to the PC. Of course, a PC might not have the right voltage (in fact, often they do not) but you would expect a PC to be able to read its own voltage levels back. The DS275 covers the -12V, for the +12V it uses Vdrv, which in this case is still connected to +5V. As the RS232 specification states that anything above +3V should be considered legal, +5V is fine, though barely. Hooking up the DS275 is very staightforward. As you can see it handles reads as well, but in this case it is not used. However, on the PC side the read should still be connected to allow access to the voltage levels. Note that if you decide to use the DS275 for sending AND receiving you should realise the component is NOT full duplex. You can either send or receive, but not both at the same time. If you need to do this, you might want to consider the Maxim 232 range of devices, which will be covered at another time.&lt;br /&gt;&lt;br /&gt;Of course, you can see the decoupling capacitors of 0.1uF everywhere in the schematic. The GPS, the DS275 and the 74HCT125 all need them. Also, the plug used for the serial port is female, in this case, and this is why pins 2 and 3 were swapped compared to the previous schematic.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-8140221615973953658?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/8140221615973953658/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=8140221615973953658' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/8140221615973953658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/8140221615973953658'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2008/12/serial-port-for-new-gps.html' title='Serial port for the new GPS'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_rXqAardmcdI/ST3cNumfNbI/AAAAAAAAAEU/U0EbLPSASVo/s72-c/serialgps.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-8654679762754997910</id><published>2008-12-07T13:58:00.000-08:00</published><updated>2008-12-07T14:03:53.979-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='power supply'/><title type='text'>More power (on voltage doubling)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rXqAardmcdI/STxHKB8N6JI/AAAAAAAAAEM/ZSb2xBCeJz4/s1600-h/voltagedouble.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_rXqAardmcdI/STxHKB8N6JI/AAAAAAAAAEM/ZSb2xBCeJz4/s320/voltagedouble.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5277171101016647826" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://emergingdrake.blogspot.com/2008/12/my-calculator.html"&gt;The calculator&lt;/a&gt; uses 2 AAA batteries. However, so far all my circuits use 5V, and even the &lt;a href="http://emergingdrake.blogspot.com/2008/11/microcontroller-lcd-interface-using.html"&gt;HD44780 LCD&lt;/a&gt; display requires 5V. Initially I decided to use 4 rechargeable AAA batteries (1.25V each, 5V total) but this was too cumbersome and heavy.&lt;br /&gt;&lt;br /&gt;I had already used the ICL7660A to invert a voltage. This time I decided to use it to double a voltage. The circuit above comes straight from the documentation, and it works. However, as you can see, there is a diode involved, which causes the voltage to drop by 0.7V. So the 3V becomes 5.3V. Clearly there is a risk involved here: if the batteries are exceedingly fresh, they will deliver over 1.5V each and the 5.5V threshold of the PIC microcontroller could be reached. However, this has not happened yet. Also, rechargeable batteries don't work well in this configuration, because they have too little voltage to properly power the LCD display.&lt;br /&gt;&lt;br /&gt;In the schematic the +5V is not 5V that is applied, but actually the voltage that comes out of the circuit. The battery is hooked up to the 3V input. Despite the odd configuration of the capacitors, they are correct.&lt;br /&gt;&lt;br /&gt;A more ideal way to create the 5V is to use a bucket converter, but that will not be covered in this post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-8654679762754997910?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/8654679762754997910/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=8654679762754997910' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/8654679762754997910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/8654679762754997910'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2008/12/more-power-on-voltage-doubling.html' title='More power (on voltage doubling)'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_rXqAardmcdI/STxHKB8N6JI/AAAAAAAAAEM/ZSb2xBCeJz4/s72-c/voltagedouble.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-7080148878523159192</id><published>2008-12-07T13:34:00.000-08:00</published><updated>2008-12-07T13:42:16.682-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software license'/><title type='text'>Software licensing</title><content type='html'>In this blog there are many references to software I published using google documents. As you can tell from the source files, this software is copyrighted. This post is to clarify the nature of this copyright.&lt;br /&gt;&lt;br /&gt;First of all, you can always contact me regarding the use of a specific file. In fact, I appreciate people contacting me. You can contact me for other things as well. So if there is any doubt, just send me an Email.&lt;br /&gt;&lt;br /&gt;PERSONAL USE: Next is the use of the files. Obviously, if you want to try the code, that is fine. There is no warranty: if this file blows something up, it's not my fault. They are on the blog merely to explain how I did certain things for myself. &lt;br /&gt;&lt;br /&gt;OTHER USE: If you use the source code (or a modified version) to create something and it stays in a quantity less than 10, there will be no objection from me (but again, telling me would be nice). The moment things become more commercial (even if you plan to give them away) you need to contact me first.&lt;br /&gt;&lt;br /&gt;MODIFICATIONS: If you want to modify the code, this is usually fine too, though I would appreciate it if you told me, and sent me an updated version.&lt;br /&gt;&lt;br /&gt;DISTRIBUTING: Unless I give permission (which I most likely will do), you are not allowed to distribute the source code, or a modified version of it. Obviously you can create a patch file, and publish it together with a link to my code. Even in that case, it would be best to let me know. In general, I just would like to be aware where my code is going.&lt;br /&gt;&lt;br /&gt;Hopefully this explains things. This is version 1.0, if you need a reference. If there is a later version, it will void this one, except for those cases where this one was used before the other one appeared.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-7080148878523159192?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/7080148878523159192/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=7080148878523159192' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/7080148878523159192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/7080148878523159192'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2008/12/software-licensing.html' title='Software licensing'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-2494371074639307057</id><published>2008-12-07T13:18:00.001-08:00</published><updated>2008-12-08T18:21:04.170-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PIC16F877A'/><category scheme='http://www.blogger.com/atom/ns#' term='LED'/><category scheme='http://www.blogger.com/atom/ns#' term='LCD'/><category scheme='http://www.blogger.com/atom/ns#' term='Calculator'/><category scheme='http://www.blogger.com/atom/ns#' term='HD44780'/><title type='text'>My calculator</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rXqAardmcdI/STw9vBu2R6I/AAAAAAAAAEE/3hVrwzZNtpA/s1600-h/calculator.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_rXqAardmcdI/STw9vBu2R6I/AAAAAAAAAEE/3hVrwzZNtpA/s320/calculator.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5277160741499455394" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;On the piclist I recently posted that I would publish my calculator here. So here is the first installment, with picture.&lt;br /&gt;&lt;br /&gt;As you can see, the calculator uses a weird keyboard that I found in the catalog of Jameco. It used an even smaller one first (with only 12 keys) and later I replaced it with the current one. It uses a PIC16F877A microcontroller to do basic arithmic operations, has an &lt;a href="http://emergingdrake.blogspot.com/2008/11/microcontroller-lcd-interface-using.html"&gt;HD44780 display&lt;/a&gt; and works using &lt;a href="http://emergingdrake.blogspot.com/2008/12/more-power-on-voltage-doubling.html"&gt;2 AAA batteries&lt;/a&gt; (and has worked on the same batteries since 2006). There is a LED to indicate it is on, as well as an on/off switch. I've started making a cover out of it (using a cat litter container) but this is not finished yet. The &lt;a href="http://docs.google.com/Doc?id=dggffzm9_4dfjgf5fb"&gt;software for the calculator&lt;/a&gt; is available.&lt;br /&gt;&lt;br /&gt;Features of the calculator are:&lt;br /&gt;* Keeps time and date&lt;br /&gt;* Alerts of birthdays&lt;br /&gt;* Stores addresses&lt;br /&gt;* Basic arithmetic (multiply, divide, addition, subtraction, random number)&lt;br /&gt;* 0.00000001 to 99999999&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-2494371074639307057?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/2494371074639307057/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=2494371074639307057' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/2494371074639307057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/2494371074639307057'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2008/12/my-calculator.html' title='My calculator'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_rXqAardmcdI/STw9vBu2R6I/AAAAAAAAAEE/3hVrwzZNtpA/s72-c/calculator.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-1884848125952342372</id><published>2008-11-20T17:51:00.000-08:00</published><updated>2008-11-20T18:30:10.563-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LCD'/><category scheme='http://www.blogger.com/atom/ns#' term='PIC16F628A'/><category scheme='http://www.blogger.com/atom/ns#' term='HD44780'/><title type='text'>Microcontroller LCD interface using HD44780</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_rXqAardmcdI/SSYbdo-vwiI/AAAAAAAAAD8/ikVVENN4794/s1600-h/hd44780.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 298px; height: 320px;" src="http://2.bp.blogspot.com/_rXqAardmcdI/SSYbdo-vwiI/AAAAAAAAAD8/ikVVENN4794/s320/hd44780.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5270930609914495522" /&gt;&lt;/a&gt; This is doubtless the most simple way of hooking up a character based LCD display with a built-in HD44780 controller (and almost all character LCD displays are like this). The Vcc and Vdd are connected as usual, with the 0.1uF decoupling capacitor. For the contrast voltage a 10k potentiometer is used. Normally this has to be calibrated once, so a tiny one that you set with a screwdriver is good. The R/W is grounded, ensuring that the connection is write only (do NOT use a resistor for this. Quite some current goes through this pin, and not grounding it will cause the I/O ports to occasionally go into read mode, which will destroy your microcontroller, even if it is a PIC). The RS and E(nable) lines are hooked up to arbitrary pins on the 16F628A, and the D0-D3 are left disconnected. D4-D7 are connected to half a port of the microcontroller, in this case PORTA (RA0-RA3). Pins 15 and 16 are sometimes absent and are used to control the backlight. Regardless, they are left disconnected too.&lt;br /&gt;&lt;br /&gt;Controlling this uses the 4-bit interface with maximum delays (it is not possible to use shorter delays, as it is a write only connection and there is no way of knowing whether the sent nybble has arrived). The software should show how it works. The initialization sequence is crucial, and I recommend copying it from the code, as it is easy to get wrong. When you see no characters appear, also fiddle with the contrast setting, as this could be set such that nothing displays.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-1884848125952342372?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/1884848125952342372/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=1884848125952342372' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/1884848125952342372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/1884848125952342372'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2008/11/microcontroller-lcd-interface-using.html' title='Microcontroller LCD interface using HD44780'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_rXqAardmcdI/SSYbdo-vwiI/AAAAAAAAAD8/ikVVENN4794/s72-c/hd44780.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-5602955019398169193</id><published>2008-11-19T18:46:00.000-08:00</published><updated>2008-11-20T18:29:45.843-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LCD'/><category scheme='http://www.blogger.com/atom/ns#' term='GPS'/><category scheme='http://www.blogger.com/atom/ns#' term='Camera'/><category scheme='http://www.blogger.com/atom/ns#' term='PIC16F628A'/><title type='text'>Camera GPS official version</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rXqAardmcdI/SSTPsrz8jfI/AAAAAAAAADs/-O1iyC-d7eE/s1600-h/gps1.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_rXqAardmcdI/SSTPsrz8jfI/AAAAAAAAADs/-O1iyC-d7eE/s320/gps1.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5270565830512119282" /&gt;&lt;/a&gt; The final version of the camera GPS had to be smaller. In fact, a number of things needed to happen: smaller, lighter, own GPS module, PC connection and an &lt;a href="http://emergingdrake.blogspot.com/2008/11/microcontroller-lcd-interface-using.html"&gt;LCD display&lt;/a&gt;. The picture shows the final version. Still slightly bigger and heavier than a flash module, with a rather clumsy 9V battery (which should clearly be replaced with a LiIon one) and a serial output port (which should become a USB port, which can also charge the LiIon battery). On the picture you can see the GPS module (the square at the top left) the LCD display (2x8 characters, on the right), the battery, the &lt;a href="http://emergingdrake.blogspot.com/2008/11/icsp-for-pic-microcontrollers.html"&gt;6-pin ICSP connector&lt;/a&gt;, a white button, an on/off switch (at the bottom) and an RS-232 output (at the top). The system still uses the PIC16F628A and the 24LC512 memory. The circuit seems a bit awkward because of the attached flash port at the bottom. I did not yet make an enclosure for it.&lt;br /&gt;&lt;br /&gt;On the picture you can see the GPS in operation. The display shows the number of the last picture taken (40) as well as the direction in degrees, the quadrant that we are in (NW) and the movement speed. Another picture, below, shows the actual coordinates, although the display is too small to show the smallest values: this is something that still needs to be addressed in the &lt;a href="http://docs.google.com/Doc?id=dggffzm9_3gp4jvcfx"&gt;new version of the GPS software&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_rXqAardmcdI/SSTSVK5LZII/AAAAAAAAAD0/VXI4wDEgdME/s1600-h/gps2.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_rXqAardmcdI/SSTSVK5LZII/AAAAAAAAAD0/VXI4wDEgdME/s320/gps2.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5270568725073585282" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-5602955019398169193?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/5602955019398169193/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=5602955019398169193' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/5602955019398169193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/5602955019398169193'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2008/11/camera-gps-official-version.html' title='Camera GPS official version'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_rXqAardmcdI/SSTPsrz8jfI/AAAAAAAAADs/-O1iyC-d7eE/s72-c/gps1.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-4947485602528919988</id><published>2008-11-18T18:07:00.000-08:00</published><updated>2008-11-18T18:15:10.977-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LED'/><category scheme='http://www.blogger.com/atom/ns#' term='7-segment'/><category scheme='http://www.blogger.com/atom/ns#' term='PIC16F628A'/><title type='text'>7 segment displays</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_rXqAardmcdI/SSN1AT4oToI/AAAAAAAAADk/Fdymc-jenW0/s1600-h/7segment.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 249px;" src="http://3.bp.blogspot.com/_rXqAardmcdI/SSN1AT4oToI/AAAAAAAAADk/Fdymc-jenW0/s320/7segment.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5270184637151858306" /&gt;&lt;/a&gt; Seven segment displays are basically 8 LED in a pattern. The most convenient way of connecting would be to hook up each LED to one pin of a port, but usually this is not possible because ports have different uses and there is always a certain port you wish to use for a certain purpose. In this case the RX/TX pins in PORT B are used for the &lt;a href="http://emergingdrake.blogspot.com/2008/11/serial-port-for-input.html"&gt;serial input&lt;/a&gt;, and RA4 is used for the &lt;a href="http://emergingdrake.blogspot.com/2008/11/i2c-eeprom-microcontroller-connection.html"&gt;I2C communication&lt;/a&gt;. This means we have to select other pins. This design avoids fancy PWM output to the LED and just allows them to be on and off. To avoid the LED dying from current drain I added 330 Ohm resistors. For a brighter result one can go as low as 220 Ohm, to save power you can go as high as 1k Ohm. The &lt;a href="http://emergingdrake.blogspot.com/2008/11/serial-port-for-input.html"&gt;part of the software for controlling the LED display&lt;/a&gt; is very simple in this case: it just consists of subroutines that send the appropriate output to the port. Normally one would not do it this way, as this is inefficient. A lookup table would be better. In this case, however, there are a limited number of values, and it was meant as a prototype anyway.&lt;br /&gt;&lt;br /&gt;Note that it might seem attractive to use a single resistor on the ground pin of the LED display. This, however, will cause the brightness to fluctuate and can even cause damage to the display, and is therefore not recommended.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-4947485602528919988?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/4947485602528919988/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=4947485602528919988' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/4947485602528919988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/4947485602528919988'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2008/11/7-segment-displays.html' title='7 segment displays'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_rXqAardmcdI/SSN1AT4oToI/AAAAAAAAADk/Fdymc-jenW0/s72-c/7segment.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-2384488447255266375</id><published>2008-11-17T14:52:00.000-08:00</published><updated>2008-11-17T15:00:35.621-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='24LC512'/><category scheme='http://www.blogger.com/atom/ns#' term='PIC16F628A'/><category scheme='http://www.blogger.com/atom/ns#' term='EEPROM'/><category scheme='http://www.blogger.com/atom/ns#' term='I2C'/><title type='text'>I2C EEPROM microcontroller connection</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rXqAardmcdI/SSH15KtwEtI/AAAAAAAAADc/MCRaKsugHqw/s1600-h/rom.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 212px;" src="http://4.bp.blogspot.com/_rXqAardmcdI/SSH15KtwEtI/AAAAAAAAADc/MCRaKsugHqw/s320/rom.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5269763401477788370" /&gt;&lt;/a&gt; Hooking up an I2C device, like an EEPROM, is relatively simple. I2C uses a 2-pin bus, with labels SCL (clock) and SDA (data). In case your microcontroller has a built in I2C controller, it is wise to hook these two lines to that port. However, I generally write it in software, because the hardware is slightly more complicated than needed (it handles clock skewing, master/slave configurations and multiple devices) in this case. It also does not give you the nice three byte buffer, which the &lt;a href="http://emergingdrake.blogspot.com/2008/11/serial-port-for-input.html"&gt;UART (serial port input)&lt;/a&gt; does. If you do write it in software, it is best to hook the data input to the so-called "open collector" port. On most older PIC microcontrollers, like the 16F628(A), this is RA4 (port A bit 4). Note that both lines need pull up resistors. The values of these resistors depend on the speed that you wish to transmit data over. The disadvantage of low values is the current drain on the system. 1k Ohm works well. Note that the 24LCxxx (xxx indicates the memory in bits, a 512 module therefore has 64K of memory) needs its own decoupling capacitor, which as usual I chose to be 0.1uF. The write protect line and the address lines can all be grounded, unless you plan to have more than 64K of memory: you will need to configure different addresses for each of the EEPROM in that case.&lt;br /&gt;&lt;br /&gt;Reading the EEPROM runs at 400 kHz. Not very fast, but suitable (and it seems most of them allow you to go up to 700 kHz, if needed). Writing is slower: you can send up to 256 bytes to the EEPROM without any delay, but after that a wait is needed (so-called ack-polling) until the EEPROM is available again for other operations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-2384488447255266375?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/2384488447255266375/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=2384488447255266375' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/2384488447255266375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/2384488447255266375'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2008/11/i2c-eeprom-microcontroller-connection.html' title='I2C EEPROM microcontroller connection'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_rXqAardmcdI/SSH15KtwEtI/AAAAAAAAADc/MCRaKsugHqw/s72-c/rom.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-1802008677213134725</id><published>2008-11-16T12:56:00.000-08:00</published><updated>2008-11-16T13:17:25.472-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='serial port'/><category scheme='http://www.blogger.com/atom/ns#' term='PIC16F628A'/><title type='text'>Serial port for input</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_rXqAardmcdI/SSCNPqSu03I/AAAAAAAAACw/aphzB-aS0gI/s1600-h/serial.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 200px;" src="http://3.bp.blogspot.com/_rXqAardmcdI/SSCNPqSu03I/AAAAAAAAACw/aphzB-aS0gI/s320/serial.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5269366864213889906" /&gt;&lt;/a&gt;&lt;br /&gt;To allow a microcontroller to read from a serial port (but not write to it) is relatively simple. In principle it is a matter of hooking up a 10 kOhm resistor from the output of the serial cable to any pin of the microcontroller, at which point the microcontroller can read the incoming data using software (note that this could push the microcontroller outside of its specification, as you're using the protection diodes for another purpose). Usually, however, one does not want to rely on software to do the reading, as this is slow, time consuming and prone to errors. Most PIC microcontrollers, including the PIC16F628A, have a so-called UART, which handles the reading and writing of serial ports. Unfortunately you can not use the resistor trick in this case, as the signal is inverted and the UART can not handle an inverted serial signal. Fortunately a simple RTL circuit can solve two issues: the illegal use of the protection diodes inside the microcontroller and inverting the signal so it can be properly read, and this with only one additional transistor and resistor.&lt;br /&gt;&lt;br /&gt;The provided circuit can handle almost any serial port, even if the voltage is out of specification. It assumes a male connector, for a female connector it needs to connect to pin 3 (as this is a read operation there is no problem if you make a mistake). Note that transistors are much slower at inverting than regular inverters, and that you should therefore not use very high baud rates.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-1802008677213134725?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/1802008677213134725/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=1802008677213134725' title='2 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/1802008677213134725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/1802008677213134725'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2008/11/serial-port-for-input.html' title='Serial port for input'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_rXqAardmcdI/SSCNPqSu03I/AAAAAAAAACw/aphzB-aS0gI/s72-c/serial.bmp' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-249382967499541758</id><published>2008-11-15T18:13:00.000-08:00</published><updated>2008-11-17T14:45:43.405-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LED'/><category scheme='http://www.blogger.com/atom/ns#' term='ICSP'/><category scheme='http://www.blogger.com/atom/ns#' term='24LC512'/><category scheme='http://www.blogger.com/atom/ns#' term='GPS'/><category scheme='http://www.blogger.com/atom/ns#' term='Camera'/><category scheme='http://www.blogger.com/atom/ns#' term='7-segment'/><category scheme='http://www.blogger.com/atom/ns#' term='PIC16F628A'/><category scheme='http://www.blogger.com/atom/ns#' term='EEPROM'/><title type='text'>Camera GPS</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_rXqAardmcdI/SR-B5NnHzEI/AAAAAAAAACY/q81TAmZevbc/s1600-h/cameragps1.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_rXqAardmcdI/SR-B5NnHzEI/AAAAAAAAACY/q81TAmZevbc/s320/cameragps1.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5269072908953046082" /&gt;&lt;/a&gt; Another project I work(ed) on was the camera GPS. The idea is that when you take a picture, your camera tends to send a signal to the flash port, which could trigger the flash if necessary. A very simple flash port just has an on/off switch, which could be hooked up to a GPS to record the current date, time and place so that you can later associate the picture with this information. The board shown here actually used to be a prototype for the &lt;a href="http://emergingdrake.blogspot.com/2008/11/one-of-more-recent-projects-i-did-was.html"&gt;servo controller&lt;/a&gt; featured elsewhere in this blog, but was modified to communicate with a gps. On the board you can see a 7-segment LED display in green, an on/off LED, a 24LC512 external EEPROM to store the results, a PIC16F628A microcontroller, an RS-232 input port that would hook up to the GPS, the usual 6-pin &lt;a href="http://emergingdrake.blogspot.com/2008/11/icsp-for-pic-microcontrollers.html"&gt;ICSP&lt;/a&gt; and a 74HC125, which seems useless but was used to hook up a smaller GPS module that worked on 3V. There is also the &lt;a href="http://emergingdrake.blogspot.com/2008/11/power.html"&gt;obvious 7805 power supply with 9V clip&lt;/a&gt;. This, as well as the &lt;a href="http://docs.google.com/Doc?id=dggffzm9_2dzzq73hn"&gt;software for the GPS camera controller&lt;/a&gt;, will all be explained in more detail in later posts, first another picture of the prototype hooked up to a camera (a Minolta X700 in this case, which worked really well).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rXqAardmcdI/SR-DLV-lJiI/AAAAAAAAACg/lRCLGQtQFLY/s1600-h/IMG_0030.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_rXqAardmcdI/SR-DLV-lJiI/AAAAAAAAACg/lRCLGQtQFLY/s320/IMG_0030.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5269074319948195362" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-249382967499541758?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/249382967499541758/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=249382967499541758' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/249382967499541758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/249382967499541758'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2008/11/camera-gps.html' title='Camera GPS'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_rXqAardmcdI/SR-B5NnHzEI/AAAAAAAAACY/q81TAmZevbc/s72-c/cameragps1.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-3854132285779513389</id><published>2008-11-15T18:08:00.000-08:00</published><updated>2008-11-18T18:25:37.859-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='servo'/><title type='text'>Servo controller in action</title><content type='html'>&lt;object width="425" height="350"&gt; &lt;param name="movie" value="http://www.youtube.com/v/Udp3h3Erczo"&gt; &lt;/param&gt; &lt;embed src="http://www.youtube.com/v/Udp3h3Erczo" type="application/x-shockwave-flash" width="425" height="350"&gt; &lt;/embed&gt; &lt;/object&gt; Here is a short video that shows the servo controller working. As my 9V NiCd battery was still charging I used a regular alkaline one, which actually was better for the video as it made the servo motor respond slower due to the lower maximum current.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-3854132285779513389?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/3854132285779513389/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=3854132285779513389' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/3854132285779513389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/3854132285779513389'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2008/11/servo-controller-in-action.html' title='Servo controller in action'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-5596054609474758448</id><published>2008-11-13T18:25:00.000-08:00</published><updated>2008-11-13T18:37:13.100-08:00</updated><title type='text'>Servo controller software</title><content type='html'>The &lt;a href="http://docs.google.com/Doc?id=dggffzm9_0c4jz67c7"&gt;software for the servo controller&lt;/a&gt; is simple: it initializes the analog input AN0, it ensures that the internal clock is running at 8 MHz, and sets the servo motor port to output. The main loop then reads the value of the potentiometer using the ReadPotentiometer routine, and calls DoThisNow to start the pulse on the servo motor control that will cause it to move to the correct position. A servo motor expects a 1ms pulse that is on, then 0-1ms that is on (which determines the position) and finally at least 20ms of offtime. It can therefore change 50x each second, however, it is usually slower in responding.&lt;br /&gt;&lt;br /&gt;The software implementation allows a value from 1-511 to define the second 1ms, thereby having a good resolution. A final version of this software would allow storing the values from the potentiometer in either internal EEPROM or external memory, thereby allowing you to replay it. It should also allow for multiple servo controllers. An example of this is my &lt;a href="http://docs.google.com/Doc?id=dggffzm9_1fzqnbnfd"&gt;older version of servo controller software&lt;/a&gt;, which stores the different settings using macros in program memory, allowing easy control using POSITION and LINEAR macros. This was the version used by &lt;a href="http://nl.youtube.com/watch?v=VGo51U8o3LA"&gt;balloon manor in 2007&lt;/a&gt; in Rochester, NY.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-5596054609474758448?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/5596054609474758448/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=5596054609474758448' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/5596054609474758448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/5596054609474758448'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2008/11/servo-controller-software.html' title='Servo controller software'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-7800942947044569626</id><published>2008-11-12T23:11:00.000-08:00</published><updated>2008-11-12T23:17:15.478-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PIC16F688'/><category scheme='http://www.blogger.com/atom/ns#' term='servo'/><category scheme='http://www.blogger.com/atom/ns#' term='Potentiometer'/><title type='text'>Potentiometer and servo motor connections</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rXqAardmcdI/SRvTVH22QuI/AAAAAAAAACQ/uX4BkLKy9Nc/s1600-h/power.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 194px;" src="http://4.bp.blogspot.com/_rXqAardmcdI/SRvTVH22QuI/AAAAAAAAACQ/uX4BkLKy9Nc/s320/power.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5268036548979737314" /&gt;&lt;/a&gt;&lt;br /&gt;To connect a potentiometer to a PIC microcontroller is very simple. The circuit here is copied from the circuit that is on the PicKit 2's demo board (except that that circuit uses a 330 Ohm resistor, and this one uses a 1k Ohm resistor), and the software that comes with this board can be used to read it. In this case it is hooked up to AN0, which is also the programming input, but because of the high resistance this will not affect the programming of the microcontroller. In addition to the capacitor inside the microcontroller it is wise to keep an external one to avoid fluctuations in the readings.&lt;br /&gt;&lt;br /&gt;Hooking up the servo motor is even simpler: a servo motor has 3 wires. Red is the main voltage line, which ideally is at +5V with at least 200mA, although at peak it could use over 500mA. Black is the ground and white is the control wire. The control wire can be hooked up to a PIC16F688 (or most other PIC) directly. Due to the very low frequency needed to control a servo motor there is no need to use PWM hardware, should this be available.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-7800942947044569626?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/7800942947044569626/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=7800942947044569626' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/7800942947044569626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/7800942947044569626'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2008/11/potentiometer-and-servo-motor.html' title='Potentiometer and servo motor connections'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_rXqAardmcdI/SRvTVH22QuI/AAAAAAAAACQ/uX4BkLKy9Nc/s72-c/power.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-7379002846576315416</id><published>2008-11-11T18:16:00.000-08:00</published><updated>2008-11-11T18:50:25.050-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PIC16F688'/><category scheme='http://www.blogger.com/atom/ns#' term='ICSP'/><category scheme='http://www.blogger.com/atom/ns#' term='programmer'/><title type='text'>ICSP for PIC microcontrollers</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rXqAardmcdI/SRpCcOcDcJI/AAAAAAAAAAc/Mpi465-_eRg/s1600-h/power.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 274px;" src="http://4.bp.blogspot.com/_rXqAardmcdI/SRpCcOcDcJI/AAAAAAAAAAc/Mpi465-_eRg/s320/power.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5267595766842749074" /&gt;&lt;/a&gt; Microcontrollers are modified by a so-called "programmer". The first programmers you use usually have a socket that allows you to insert the microcontroller, after which you can update its internal memory. It is, however, much more convenient to leave the microcontroller in the circuit, and program it by hooking up the programmer to your circuit. This is called ICSP and relatively easy when one uses a &lt;a href="http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&amp;nodeId=1406&amp;dDocName=en023805"&gt;PicKit 2&lt;/a&gt; (I believe there is a PicKit 3 too, but I have little experience with it). The PicKit 2 accepts a regular 6 pin socket, so a simple header pin suffices. The schematic shows how to hook it up. If you align the pins with the PIC16F688 (or PIC16F690, or any other "modern" PIC) you only need to add two wires: Vdd (+5V) and MCLR.&lt;br /&gt;&lt;br /&gt;Make sure that the end is marked, so the user can match the white triangle on the PicKit 2 correctly. Note that you should put a 0.1uF decoupling capacitor over the microcontroller, as marked in the circuit. If you are using some of the pins that are used by the ICSP, make sure they do not draw a lot of current away from the PicKit 2 (or other programmer that you might be using). Also avoid hooking up components that are sensitive to higher voltages, as you can't be certain what voltage will come out of the programmer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-7379002846576315416?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/7379002846576315416/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=7379002846576315416' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/7379002846576315416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/7379002846576315416'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2008/11/icsp-for-pic-microcontrollers.html' title='ICSP for PIC microcontrollers'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_rXqAardmcdI/SRpCcOcDcJI/AAAAAAAAAAc/Mpi465-_eRg/s72-c/power.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-1698276018438456550</id><published>2008-11-10T22:52:00.001-08:00</published><updated>2008-11-10T23:21:17.301-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='battery'/><category scheme='http://www.blogger.com/atom/ns#' term='wallwart'/><category scheme='http://www.blogger.com/atom/ns#' term='power supply'/><title type='text'>Power</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_rXqAardmcdI/SRkrwlqQ86I/AAAAAAAAAAU/4fBsDPpJ96k/s1600-h/power.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 221px;" src="http://2.bp.blogspot.com/_rXqAardmcdI/SRkrwlqQ86I/AAAAAAAAAAU/4fBsDPpJ96k/s320/power.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5267289352929604514" /&gt;&lt;/a&gt; All designs require power. Here I cover the simple design that I use for most power supplies. As you can see from the schematic, most of the work is done by a component that is called the 7805. The 7805 model is the biggest version, and recognizable by its large heat sink, which has a hole so it can be attached to an even bigger heat sink. The 7805 model can output 5V at 1A, which is quite a lot and suitable for projects involving motors, like my &lt;a href="http://emergingdrake.blogspot.com/2008/11/one-of-more-recent-projects-i-did-was.html"&gt;servo controller&lt;/a&gt;. A smaller model, the 78M05 gives 500mA, and is therefore not very useful. I include it more as a warning: avoid the 78M05. The smallest model is the &lt;a href="http://www.national.com/mpf/LM/LM78L05.html"&gt;78L05&lt;/a&gt;, which looks more like a simple transistor. The 78x05 series is inexpensive in terms of money, but not entirely cheap in terms of power consumption. They regulate power quite well, ensuring that their output is 5V (the 05 in their name is this voltage, a 7812 would output 12V) with very small fluctuations. They do require that the input voltage is higher than their output voltage, though, and the difference is converted into heat (hence the heat sink). For 5V output the input needs to be at least 6.6V (or higher, check the data sheet of the particular model you acquired). There are other options, and I will discuss some later in other posts to this blog.&lt;br /&gt;&lt;br /&gt;Note that the component does not limit the current to the value specified. All it does is try to maintain the output voltage. I have had a 78L05 output over 1A at 5V. The problem here is mostly the heat: exceeding the output current will cause the component to grow hot, to the point where it will burn you, or even destroy itself. It is therefore wise to know what the current consumption of your circuit will be, and choose the appropriate component.&lt;br /&gt;&lt;br /&gt;As you can see from the schematic, there are two other components, both of them capacitors. At the input side I have a 10uF capacitor. This is to ensure that fluctuations in the input voltage are filtered out, as well as moments where the target circuit has peaks in the demand. It generally does not hurt to increase this capacitor: values up to 470uF are quite acceptable. Note that this capacitor has polarization and will therefore need to be inserted correctly. On the output side I usually suffice with a 0.1uF capacitor. Obviously it is possible to add a larger capacitor on this side too, but the ceramic capacitors are much faster than the electrolytic ones, and response time is generally more important. Apart from the one in the power circuit I also put the 0.1uF capacitors near all the current consuming components on the board. This is called "decoupling" and without them you might experience very strange behavior, as voltages might drop below operating requirements. If you feel that ceramic capacitors are not fast enough you could switch them for tantalum. However, tantalum capacitors have polarity, which is why I tend to avoid them.&lt;br /&gt;&lt;br /&gt;In the circuit above I assume that it is hooked up to the mains using a wallwart. However, frequently I use batteries. As you need to exceed 6.6V my preferred method is a 9V battery. For high current applications this has to be a NiCd battery, as these give a lot more current than other batteries. This might seem odd, given that a 9V NiCd battery generally has "160mAh" written on it, which implies a small amount of current compared to a NiMH battery (300mAh). However, the C (charge/discharge rate) of a NiCd battery is 5C-10C, so it can actually provide 800mA-1600mA, whereas a NiMH usually doesn't exceed 0.5C, which means it would only provide 150mA. Of course, the NiCd battery only provides this power for 6-12 minutes, whereas the NiMH would last 2 hours. I'm not a fan of batteries that can not be recharged, because I sometimes forget to disconnect them which renders them useless, and because they are not good for the environment and difficult to dispose of.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-1698276018438456550?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/1698276018438456550/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=1698276018438456550' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/1698276018438456550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/1698276018438456550'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2008/11/power.html' title='Power'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_rXqAardmcdI/SRkrwlqQ86I/AAAAAAAAAAU/4fBsDPpJ96k/s72-c/power.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-996658767399753582.post-4775818795501329723</id><published>2008-11-09T20:08:00.000-08:00</published><updated>2008-11-12T23:15:26.270-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PIC16F688'/><category scheme='http://www.blogger.com/atom/ns#' term='servo'/><title type='text'>Servo controller</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rXqAardmcdI/SRe06DCGsbI/AAAAAAAAAAM/S4D3MGTteoE/s1600-h/servo.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_rXqAardmcdI/SRe06DCGsbI/AAAAAAAAAAM/S4D3MGTteoE/s320/servo.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5266877198572630450" /&gt;&lt;/a&gt; One of the more recent projects I did was a servo controller. In the past I already designed two (which undoubtedly will feature on this blog too) but because of the new Balloon Manor in Rochester this month I wanted to design one with a higher resolution. It was never used, and this was a very simple prototype, but it did increase the resolution to 512 steps, which is twice the number of the previous version.&lt;br /&gt;&lt;br /&gt;As usual with servo controllers the tricky bit is the &lt;a href="http://emergingdrake.blogspot.com/2008/11/power.html"&gt;power supply&lt;/a&gt;. As this controller was only controlling a single servo I could suffice with a single 7805 (do not use the 78L05 or the 78M05, as these give too little power, 100mA and 500mA respectively). Again because this was a prototype I hooked it up with a 9V battery clip. As battery it is required to use a NiCd rechargeable battery, because those are the only batteries that would supply the power used by the servo motor. In the end product it is recommended to use either over 7.5V worth of AA batteries, or even D batteries, or use a wallwart to hook it up to mains. As you can see in the circuit board I put a 10uF capacitor (it doesn't hurt to make this bigger) over the input voltage, and a 0.1uF (tantalum is preferred for speed, but ceramic works well and is easier to use, as it doesn't have polarity) capacitor at both the servo motor connector as well as the microcontroller.&lt;br /&gt;&lt;br /&gt;As microcontroller I used a &lt;a href="http://ww1.microchip.com/downloads/en/DeviceDoc/41203D.pdf"&gt;PIC16F688&lt;/a&gt;, mostly because it is so nice and small, and modern, allowing it to be easily programmed using the PicKit 2 (you can even program it in the PicKit 2 demo board: even though it is made for the 16F690, it fits the 16F688 equally). I used the usual &lt;a href="http://emergingdrake.blogspot.com/2008/11/icsp-for-pic-microcontrollers.html"&gt;6 pin programming connector&lt;/a&gt;, which, if mounted as displayed, is really easy to hook up: the three pins next to the PIC16F688 (pins 3-5) can be connected directly. The fourth pin (6) is left floating. 2 is connected to the top pin on the other side, as this is the other voltage, and 1 is connected to the reset line, which is the middle pin on the other side of the Microcontroller. For this I use a white wire, so it is quite recognizable on the board, so I can match the triangle of the PicKit 2 with the white wire and do not mistakingly connect it the wrong way.&lt;br /&gt;&lt;br /&gt;The final two components are the &lt;a href="http://emergingdrake.blogspot.com/2008/11/potentiometer-and-servo-motor.html"&gt;potentiometer&lt;/a&gt;, which is connected to the analog port of the 16F688 and is used as input for the servo motor, and the &lt;a href="http://emergingdrake.blogspot.com/2008/11/potentiometer-and-servo-motor.html"&gt;servo output&lt;/a&gt;. On the servo output pins 1 and 2 are connected to the power directly, and 3 is connected to the output pin of the microcontroller that is used to control the servo. Obviously multiple servos can be attached using different pins of the microcontroller. Note that once you exceed two servos, a separate power circuit is needed for the next two. The ground will need to remain the same, to ensure proper functioning of the control line.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://docs.google.com/Doc?id=dggffzm9_0c4jz67c7"&gt;The software that I wrote for this servo controller is very basic&lt;/a&gt;: it measures the potentiometer and moves the servo motor accordingly. The plan was to include a system that registers the sequence of movements of the potentiometer in memory. This is not very difficult to develop, but the higher resolution of 512 values as well as the limited storage of 256 bytes inside the 16F688 made this trickier. I was contemplating using the difference between two settings and storing it in a 4 bit value, but never got to implement this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/996658767399753582-4775818795501329723?l=emergingdrake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emergingdrake.blogspot.com/feeds/4775818795501329723/comments/default' title='Reacties plaatsen'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=996658767399753582&amp;postID=4775818795501329723' title='0 reacties'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/4775818795501329723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/996658767399753582/posts/default/4775818795501329723'/><link rel='alternate' type='text/html' href='http://emergingdrake.blogspot.com/2008/11/one-of-more-recent-projects-i-did-was.html' title='Servo controller'/><author><name>Maarten Hofman</name><uri>http://www.blogger.com/profile/02132621919363250065</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='25' height='32' src='http://1.bp.blogspot.com/_rXqAardmcdI/SxWnTjA_7NI/AAAAAAAAAiI/sXd-xfuuTck/S220/blog.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_rXqAardmcdI/SRe06DCGsbI/AAAAAAAAAAM/S4D3MGTteoE/s72-c/servo.bmp' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
