tag:blogger.com,1999:blog-72753785745433266752024-03-13T02:59:33.623+00:00Astro-BeanoNovice astronomer and photographer near Dundee, Scotland, starting out with his first telescope. Also dissects webcams & puts them in bird boxes, and tinkers with Raspberry Pi projects.Peter Cockhttp://www.blogger.com/profile/00233221181317137855noreply@blogger.comBlogger55125tag:blogger.com,1999:blog-7275378574543326675.post-51128466573779172342015-02-01T16:24:00.002+00:002015-03-28T22:56:23.867+00:00Ikea ZAISU - Floor chairs for our kotatsuA year ago I setup a <a href="http://astrobeano.blogspot.co.uk/2014/01/kotatsu-made-in-scotland.html">DIY kotatsu using an <i>Ikea LACK</i> coffee table</a>, but never got a proper futon-mat, nor any Japanese style floor chairs to go with it: <a href="http://en.wikipedia.org/wiki/Zaisu">座椅子 (ざいす, or zaisu)</a>. I'd been seriously pondering importing zaisu chairs when I stumbled on <a href="http://www.apartmenttherapy.com/chairs-similar-to-these-in-the-157389">a blog comment</a> suggesting using the top half of an Ikea swivel chair.<br />
<br />
So I went back to the <a href="http://www.ikea.com/gb/en/store/edinburgh">Edinburgh Ikea</a> and attempted to check <i>all</i> their chairs to see which (if any) might be used without legs as a simple zaisu. I came home with a pair of <i>Ikea VÅGSBERG</i> swivel chair shells (and nearly bought the <i>Ikea JULES</i> junior desk chair shell as well - a little small for me), and a new thick rug.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-iIlIQIpp9BA/VM5RDosyp7I/AAAAAAAAB1Q/hKDHhat6LPQ/s1600/2015-01-31%2B22.13.38.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-iIlIQIpp9BA/VM5RDosyp7I/AAAAAAAAB1Q/hKDHhat6LPQ/s1600/2015-01-31%2B22.13.38.jpg" height="300" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: start;">Ikea kotatsu & zaisu: <i>LACK</i> coffee table with Metro heater, <i style="text-align: start;">VÅGSBERG</i><span style="text-align: start;"> chairs, <br /> <i>ALMSTED</i> rug, Euro-King size <i>MYSA STRÅ</i> duvet with <i>LYCKOAX</i> cover</span></td></tr>
</tbody></table>
<br />
<h3>
<a name='more'></a>Ikea ZAISU</h3>
<br />
Where Ikea sold a chair and its legs separately, I tried the chair part directly on the store floor. I was looking for something similar to the simple one-piece curved wooden zaisu readily available in Japan which have a flat base.<br />
<br />
The <i>Ikea VÅGSBERG</i> (£25 without legs) and <i>Ikea JULES</i> (£10 without legs) were the best bets, stable and reasonably comfy on a hard floor. Note that both have a front lip which will dig into your carpet or rug. I rejected the <i>Ikea VILMAR</i> seat shell (£21 without legs; it rocked left/right), and the <i>Ikea MARTIN</i> seat shell (£10 without legs; it tips over backward very easily).<br />
<br />
There were some more expensive possibilities sold with the legs - but most were unsuitable. The <i>Ikea ERLAND</i> (£40) has a curved front lip so would rock left/right. The <i>Ikea TOBIAS</i> (£65) clearly would not work due to where the legs were attached. The <i>Ikea PREBEN</i> (£80) was nice but has a slight bulge in the centre underneath which put me off. I was quite tempted by the <i>Ikea BERNHARD</i> bar stool (£100), without the legs the base is almost flat so <i>should</i> be stable on a carpet or rug. One worry with these upholstered chairs is the underneath is not really designed for the kind of wear it would get if used as a zaisu.<br />
<br />
<h3>
Ikea Rugs</h3>
<br />
For our kotatsu we laid a couple of old blankets on top of the carpet to sit on, supplemented with cushions. I was looking for a nice warm rug, thick enough not to worry about the Ikea chairs not having a perfectly flat base. Our kotatsu was made from the <i>Ikea LACK</i> 118x78cm coffee table, and I was aiming for about another 50cm on each side for people to sit on, meaning a total rug size around 220x180cm. I had looked at the Ikea selection online before hand, but this was something I really wanted to touch (and sit on) before buying.<br />
<br />
I was very tempted in store by the <i>Ikea ALMSTED</i> wool rugs, which seem to be about 1cm think and short pile, available in medium (140x200cm) and large (170x240cm). Confused by conflicting price tags, the floor staff explained that the black and brown versions were being discontinued and reduced - both sizes were on sale at £75 (down from £190 and £300 each online!).<br />
<br />
I came home with a large brown <i>Ikea ALMSTED</i> rug, and am pleased to say it fits nicely, the colour seems to go fine with the rest of the room, and it is a big improvement for sitting on directly. The only catch is I'm still looking for some kind of carpet protectors for the table legs...<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/--mr68TjRoLY/VM5VVNQKnGI/AAAAAAAAB1c/zfQ0Fex0l8I/s1600/2015-01-31%2B20.45.45.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://4.bp.blogspot.com/--mr68TjRoLY/VM5VVNQKnGI/AAAAAAAAB1c/zfQ0Fex0l8I/s1600/2015-01-31%2B20.45.45.jpg" height="300" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Large Ikea ALMSTED rug, which I carried through the store on my shoulder <br />
(in a poor imitation of Arnie in the film Commando)</td></tr>
</tbody></table>
<br />
This might not impress the <a href="http://www.ikeahackers.net/">Ikea Hackers</a>, but I'm happy, and wrote this post sitting under an "<i><a href="http://astrobeano.blogspot.co.uk/2014/01/kotatsu-made-in-scotland.html">Ikea KOTATSU</a></i>" in my new "<i>Ikea ZAISU</i>" chair :)Peter Cockhttp://www.blogger.com/profile/00233221181317137855noreply@blogger.com5tag:blogger.com,1999:blog-7275378574543326675.post-55187556237412721462014-09-06T02:33:00.001+01:002014-09-06T02:33:53.534+01:00Curious Rover Tracks at Space Expo 2014This week I enjoyed visiting the <a href="http://www.space-expo2014.jp/english">Space Expo 2014 "The Great Challenge of NASA/JAXA"</a> which is being held 19 July to 23 September at <a href="http://en.wikipedia.org/wiki/Makuhari_Messe">Makuhari Messe (幕張メッセ)</a> in Chiba, Japan.<br />
<br />
<table align="center" cellpadding="5" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-siiRpI9Ui6o/VAlLh9sTMNI/AAAAAAAABx4/G4NgtFwIYP8/s1600/2014-09-02%2B13.31.32-2.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-siiRpI9Ui6o/VAlLh9sTMNI/AAAAAAAABx4/G4NgtFwIYP8/s1600/2014-09-02%2B13.31.32-2.jpg" height="240" width="320" /></a></td><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-NGMtqS0iMQY/VAlNNc12GjI/AAAAAAAAByI/rN1ho1PcpDE/s1600/2014-09-02%2B14.21.44.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-NGMtqS0iMQY/VAlNNc12GjI/AAAAAAAAByI/rN1ho1PcpDE/s1600/2014-09-02%2B14.21.44.jpg" height="240" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">1/10 size <a href="http://en.wikipedia.org/wiki/Saturn_V">Saturn V</a> model at Space Expo 2014</td><td class="tr-caption" style="text-align: center;">Space Expo 2014 exhibit floor, with hanging ISS model</td></tr>
</tbody></table>
<table align="center" cellpadding="5" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-XLiWYdgf0E4/VAlKL0dWeFI/AAAAAAAABxw/Krinu6Ypi4c/s1600/2014-09-02%2B13.51.03.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://4.bp.blogspot.com/-XLiWYdgf0E4/VAlKL0dWeFI/AAAAAAAABxw/Krinu6Ypi4c/s1600/2014-09-02%2B13.51.03.jpg" height="320" width="240" /></a></td><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-lpgSPEp_Df4/VAlJIKdvvRI/AAAAAAAABxY/Kg3XelUFMqY/s1600/2014-09-02%2B15.12.03.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-lpgSPEp_Df4/VAlJIKdvvRI/AAAAAAAABxY/Kg3XelUFMqY/s1600/2014-09-02%2B15.12.03.jpg" height="320" width="240" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><a href="http://en.wikipedia.org/wiki/Lunokhod_programme">Lunokhod</a> ("Moonwalker") model</td><td class="tr-caption" style="text-align: center;"><a href="http://en.wikipedia.org/wiki/Curiosity_(rover)">Curiosity Rover</a> model at Space Expo 2014</td></tr>
</tbody></table>
<a name='more'></a>Some of the most fun things were the life size models of the Space Shuttle nose section (including toilet) and the Japanese International Space Station (ISS) module - the Japanese Experiment Module (JEM, or Kibo, きぼう, meaning hope). This included the astronaut's entrance with its blue welcome curtain on the "ceiling" and small blue welcome message on the "floor", reading "<i>Welcome to Kibo - please enjoy and relax in this brand new, spacious and the most quietest room in the ISS</i>" (sic; see this <a href="http://blogs.esa.int/luca-parmitano/2013/11/06/guide-to-the-international-space-station-for-the-occasional-visitor-part-2/">guide to the ISS</a>).<br />
<table align="center" cellpadding="5" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-c41eA1OVRL0/VAlSvbpSgTI/AAAAAAAAByU/PiAM0AZgI6o/s1600/2014-09-02%2B14.20.48.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-c41eA1OVRL0/VAlSvbpSgTI/AAAAAAAAByU/PiAM0AZgI6o/s1600/2014-09-02%2B14.20.48.jpg" height="240" width="320" /></a></td><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-xPZaSsCZxn4/VAlMszNQedI/AAAAAAAAByA/G8EbPMbQsF8/s1600/2014-09-02%2B15.04.46.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-xPZaSsCZxn4/VAlMszNQedI/AAAAAAAAByA/G8EbPMbQsF8/s1600/2014-09-02%2B15.04.46.jpg" height="240" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Life size Space Shuttle model's flight deck</td><td class="tr-caption" style="text-align: center;">Life size JEM/Kibo ISS module model with its "veranda"</td></tr>
</tbody></table>
I was pleasantly surprised to see an exhibit about Felix Baumgartner's <a href="http://www.redbullstratos.com/">Red Bull Stratos</a> jump (lots of photos and Japanese text about this exhibit <a href="http://www.redbull.com/jp/ja/stories/1331656269898/stratos-in-space-expo-2014">here</a>). I remember watching this world record breaking sky dive on the internet.<br />
<br />
Many of the models and artefacts had a brief English caption, but most of the text was of course in Japanese. Unfortunately for me that meant I could only look at the pictures and models for the Japanese rocketry history and JAXA space missions like <a href="http://en.wikipedia.org/wiki/Hayabusa">Hayabusa which brought back comet dust</a> (with its ion drive).<br />
<br />
I found lots of interesting exhibits, but something which caught my eye in particular was the NASA Curiosity Mars Rover model - because one of the interesting design features was wrong...<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/--XHkadQqdlA/VAlJxQAhIfI/AAAAAAAABxo/3XfbEubg2tI/s1600/2014-09-02%2B15.06.23.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/--XHkadQqdlA/VAlJxQAhIfI/AAAAAAAABxo/3XfbEubg2tI/s1600/2014-09-02%2B15.06.23.jpg" height="480" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Curiosity Rover model at Space Expo 2014</td></tr>
</tbody></table>
<br />
There are two things wrong with this, first and most obviously the tracks in the sand are wider than this model rover's wheels, although the zig-zag pattern looks consistent. Maybe the diorama setting was intended for an even bigger model?<br />
<br />
<table align="center" cellpadding="5" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-OK8B9ktFHKo/VAlJIBkM06I/AAAAAAAABxQ/STj5WL_U2zk/s1600/2014-09-02%2B15.36.17.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://4.bp.blogspot.com/-OK8B9ktFHKo/VAlJIBkM06I/AAAAAAAABxQ/STj5WL_U2zk/s1600/2014-09-02%2B15.36.17.jpg" height="320" width="240" /></a></td><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-jWDel5K84y8/VAlJIBA2TcI/AAAAAAAABxU/hsUr1mJnAeE/s1600/2014-09-02%2B15.36.34.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-jWDel5K84y8/VAlJIBA2TcI/AAAAAAAABxU/hsUr1mJnAeE/s1600/2014-09-02%2B15.36.34.jpg" height="320" width="240" /></a></td></tr>
<tr><td class="tr-caption" colspan="2" style="text-align: center;">Curiosity Rover model wheel and track mismatch</td></tr>
</tbody></table>
<br />
Second, the rover's wheel treads are not uniform - all six wheels bear a pattern (dot dash dash dash; dot dash dash dot; dot dash dot dot) which spells out "JPL" in morse code in the tracks (see this <a href="http://www.scientificamerican.com/gallery/curiosity-rover-makes-morse-code-tracks-on-mars/">Scientific American article</a>, or this <a href="http://www.jpl.nasa.gov/spaceimages/details.php?id=PIA16093">NASA page</a>). This is partly a homage to short for NASA's Jet Propulsion Laboratory in Pasadena, but also has a practical application in helping determine the distance travelled (or amount of wheel slip) by analysis of images of the tracks.<br />
<br />
The older Soviet rovers like the Lunokhod shown earlier used a free wheel odometer approach (there was not enough light at the back of the model to photograph the spiked ninth wheel), combined with analysis of ariel photos. This had put the off-Earth rover record at 37.5km but a revised estimate using more accurate imagery put the <a href="http://www.nature.com/news/space-rovers-in-record-race-1.13229">Lunikhod 2 lunar journey at 42km</a>, which at the time of writing has yet to be beaten.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://imgs.xkcd.com/comics/spirit.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="" border="0" src="http://imgs.xkcd.com/comics/spirit.png" title=""Spirit" cartoon copyright Randall Munroe, CC-BY-NC 2.5, http://xkcd.com/695/" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><a href="http://xkcd.com/695/">XCKD Spirit Mars Rover cartoon</a></td></tr>
</tbody></table>
<br />
I wondered what the <a href="http://sarcasticrover.wordpress.com/">Sarcastic Rover</a> (<a href="https://twitter.com/SarcasticRover">@SarcasticRover</a>) would have as morse code on its wheels? With the <a href="http://xkcd.com/695/">XCKD Spirit Mars Rover cartoon</a> in mind, I guessed SOS - and <a href="https://twitter.com/SarcasticRover/status/233628027131670528">I was close</a> ;)<br />
<blockquote class="twitter-tweet" lang="en">
</blockquote>
<script async="" charset="utf-8" src="//platform.twitter.com/widgets.js"></script>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://twitter.com/SarcasticRover/status/233627512121462784" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://pbs.twimg.com/profile_images/378800000488557197/5904b6346c16a7c3b1eb0227f8b61e3f_bigger.jpeg" /></a></td><td class="tr-caption" style="text-align: centre;">SarcasticRover (@SarcasticRover) <a href="https://twitter.com/SarcasticRover/status/233627512121462784">August 9, 2012</a>:<br />
<i>Little known fact: The treads on my tires write JPL in morse-code...<br />all except one, which writes "SOS WTF BRB"!<br /><a href="http://twitpic.com/ahearg">twitpic.com/ahearg</a></i></td></tr>
</tbody></table>
<br />Peter Cockhttp://www.blogger.com/profile/00233221181317137855noreply@blogger.com0Makuhari Messe, Mihama Ward, Chiba, Japan35.649729208271722 140.0362443923950235.646503708271723 140.03120189239502 35.652954708271722 140.04128689239502tag:blogger.com,1999:blog-7275378574543326675.post-38106900999763923702014-01-26T19:50:00.000+00:002014-11-24T15:48:37.971+00:00Instrumented Telescope with Raspberry Pi and orientation sensorA "Push To" telescope mount is like a fully automated "Go To" telescope mount, but without the motors. You must manually move the telescope, but because the telescope knows where it is pointed, you get live tracking telling you where it needs to go.<br />
<br />
I'm using a <a href="http://astrobeano.blogspot.co.uk/2014/01/gy-80-orientation-sensor-on-raspberry-pi.html">Raspberry Pi with a GY-80 orientation sensor</a> to turn my basic SkyWatcher EQ2 mount into a computer assisted "Push To" telescope - which can pass this information to planetarium software like <a href="http://www.southernstars.com/support/manual/scope_control.shtml">SkySafari</a> on my iPad/iPhone. To do this I've written a little Python script (<a href="https://github.com/peterjc/longsight/blob/master/telescope_server.py">telescope_server.py</a>) which runs on the Raspberry Pi, and translates the orientation sensor information into RA/Dec angles. The Raspberry Pi listens to Meade LX200 (or Nexstar) serial protocol commands received over TCP/IP, and responds with the orientation information.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-b6ie4t9eBjw/UuQthcEisTI/AAAAAAAABpY/CLoi0mXf-MQ/s1600/skysafari_ipad_telescope_push_to.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-b6ie4t9eBjw/UuQthcEisTI/AAAAAAAABpY/CLoi0mXf-MQ/s1600/skysafari_ipad_telescope_push_to.png" height="300" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">SkySafari Plus v4, showing telescope direction from a Raspberry Pi</td></tr>
</tbody></table>
<br />
Indoor testing has gone well so far... I can rotate the Raspberry Pi and watch the blue cross-hairs on SkySafari change position. The locations look sensible (and drift naturally due to sidereal rotation). There is a bit of jitter which may need some smoothing.<br />
<div>
<br />
Part of the idea came from reading how easy it is to have <a href="http://stargazerslounge.com/topic/180030-skyfi-with-a-pi/">SkySafari talking to telescope via a Raspberry Pi running a WiFi to serial port bridge</a> (similar <a href="http://astroland.funxiun.com/remote-control-your-goto-telescope-mount-using-a-raspberry-pi-and-skysafari/">blog post</a>), mimicking <a href="http://www.southernstars.com/products/skyfi/index.html">SkySafari's expensive but neat SkyFi</a> box. I was also impressed with <a href="http://simonbox.info/index.php/astronomy">Simon Box's instrumented Dobsonian telescope (measuring altitude-azimuth angles directly) connected to Stellarium</a> (<i>Update</i>: and this similar <a href="http://www.keteu.org/posts/scopebox.html">instrumented telescope project called scopebox</a>), and Leon Rozengarten's project building an Arduino telescope controller using the HMC6352 and ADXL345 sensors (<a href="https://www.youtube.com/watch?v=ewFa3NRJiEw&list=PLTTj3aewgxRRfc5P5nKQHr71IyoCy18pI&index=15">video</a>, <a href="https://sourceforge.net/projects/computerizedtel/">code</a>).<br />
<br />
This project meant integrating lots of different stuff - serial communication protocols, I2C sensor chips, Inertial measurement unit (IMU) / Attitude and heading reference system (AHRS) calculations, quaternion mathematics for rotations, sidereal time, angle conversions, etc. Here are a few notes... my Python script <a href="https://github.com/peterjc/longsight/blob/master/telescope_server.py">telescope_server.py</a> is on GitHub.<br />
<br /></div>
<a name='more'></a><h3>
Mounting the Raspberry Pi</h3>
<br />
Because I wanted a case with some form of external mounting, I went for the <a href="http://shop.cyntech.co.uk/products/berryblack">Cyntech "BerryBlack" Raspberry Pi case</a> - plus the <a href="http://shop.cyntech.co.uk/products/sd-card-cover">optional SD card cover</a>. The red and green logo RPi stands out nicely, and the light pipe for the LEDs is very well done. I was able to mount this quite stably to the telescope tube via a piece of wood attached to the camera screw thread on the O-rings.<br />
<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="http://2.bp.blogspot.com/-Ln8gAWa1NYI/UuPH6O_s7vI/AAAAAAAABoU/a5Pd1f705ns/s1600/telescope_wooden_board.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-Ln8gAWa1NYI/UuPH6O_s7vI/AAAAAAAABoU/a5Pd1f705ns/s1600/telescope_wooden_board.jpg" height="240" width="320" /></a></td><td><a href="http://4.bp.blogspot.com/-iSZGRNSdD2Q/UuPHv75_XQI/AAAAAAAABoM/n_AaOFjgPwU/s1600/telescope_raspberry_pi.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://4.bp.blogspot.com/-iSZGRNSdD2Q/UuPHv75_XQI/AAAAAAAABoM/n_AaOFjgPwU/s1600/telescope_raspberry_pi.jpg" height="240" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13px;">Two screws ready to hang the Raspberry Pi on</td><td class="tr-caption" style="font-size: 13px;">Raspbery Pi attached to SkyWatcher telescope tube</td></tr>
</tbody></table>
<br />
However, for outdoor use, note the Cyntech case is not air or water tight - for a start the slot for the GPIO cable is wide open. Also the two screw slots on the back are not fully enclosed - there is an air/water gap to the back of the board. I may have to do something about this to avoid dew getting inside...<br />
<br />
<h3>
Meade LX200 Protocol</h3>
<br />
This is a well established and widely used protocol for communicating with a computerised telescope using serial commands. It is also well documented, see <a href="http://www.meade.com/support/TelescopeProtocol_2010-10.pdf">Meade Telescope Serial Command Protocol (2010)</a>, see also <a href="http://www.meade.com/support/LX200CommandSet.pdf">Meade Telescope Serial Command Protocol (2002)</a> and this <a href="http://www.astro.louisville.edu/software/xmtel/archive/xmtel-3.1/docs/lx200/CommandSet.html">alternative page</a> (sometimes clearer).<br />
<br />
The commercial SkySafari SkyFi box seems to use a standard approach (RFC 2217) for transmitting serial connection data via TCP/IP (i.e. a normal network connection), which can be done in software using <span style="font-family: Courier New, Courier, monospace;">ser2net</span> on Linux. This means writing code to listen on a network port for Meade LX200 commands was actually quite straightforward. In my code I focussed on implementing enough of the commands for Sky Safari Plus v4 to connect, set the time and location, get the orientation - and behave nicely if any of the goto or slew commands are sent. SkySafari also handles alignment by sending a sync command to the (Raspberry Pi pretending to be a) telescope.<br />
<br />
<h3>
Celestron Nexstar Protocol</h3>
<br />
Celestron have released the <a href="http://www.celestron.com/c3/images/files/downloads/1154108406_nexstarcommprot.pdf">Nexstar Protocol documentation</a>. It is a similar serial protocol, and works over TCP/IP in the same way. In some ways it seems better designed than the Meade LX200 protocol - for example the RA/Dec angles are always sent as pairs.<br />
<br />
Since Sky Safari Plus v4 can also connect using this protocol, I tried this too. Surprisingly SkySafari only uses a small handful of the commands and interestingly does not send sync commands to the telescope - it seems to do a local calibration itself instead. I'm sticking with the Meade LX200 protocol instead (see below for more details).<br />
<br />
<h3>
Measuring the Celestial Angles</h3>
<br />
The telescope communication protocols use two important celestial angles: the <i>right ascension</i> (equatorial axis) paired with the <i>declination</i>, which must be calculated from the local <i>altitude</i> and <i>azimuth</i> angles taking into account the latitude, longitude and time. See for example <a href="http://www.nmt.edu/tcc/help/lang/python/examples/sidereal/ims/">sidereal.py</a> for how this works.<br />
<br />
I'm using a combined gyroscope/accelerometer/magnetometer orientation sensor. Without caring about the telescope mount type etc, this can give me the altitude and azimuth angles - although most relevant documentation instead talks about yaw, pitch and roll angles.<br />
<br />
<h3>
IMU and AHRS code</h3>
<br />
Using the <a href="http://en.wikipedia.org/wiki/Aircraft_principal_axes">axis terminology for planes</a> there are three rotational axes: roll (rotation about X-axis, direction of flight), pitch (lateral rotation about Y-axis), and yaw (rotation about Z-axis). In general planes fly horizontally, so the yaw is typically a compass bearing and maps to the telescope's <i>azimuth</i>. Similar the roll can be interpreted as the rotation of the eyepiece/camera, while pitch would be the telescope's elevation (i.e. the <i>altitude</i> angle).<br />
<br />
For the yaw, the accelerometer is useless (the values don't change, gravity is just down) so we must combine the gyroscope and compass data. For the most part the Earth's magnetic field is nearly horizontal, but I suppose in principle the compass data is also of some limited use for the pitch when pointing roughly North or South. However, for the pitch and roll, it is normal to just combine the accelerometer and gyroscope data.<br />
<br />
See for example this page on <a href="http://theboredengineers.com/2012/09/the-quadcopter-get-its-orientation-from-sensors/">how a quadcopter can get its orientation</a>, <a href="http://blog.davidegrayson.com/2012/11/orientation-sensing-with-raspberry-pi.html">Raspberry Pi AHRS by David Grayson</a> (core code in <a href="https://github.com/DavidEGrayson/minimu9-ahrs/blob/master/minimu9-ahrs.cpp">minimu9-ahrs.cpp</a>), and <a href="http://www.camelsoftware.com/firetail/blog/uncategorized/quaternion-based-ahrs-using-altimu-10-arduino/">FireTail AHRS software (for Arduino)</a> based on this (core core in <a href="http://sourceforge.net/p/firetail/code/ci/master/tree/ahrs.cpp">ahrs.cpp</a>, <a href="http://sourceforge.net/projects/firetail/">FireTail is an autopilot for RC aircraft</a>). There are <i>lots</i> of cool hobby projects out there using these kinds of sensors!<br />
<br />
For the angle calculations I decided to play with quaternions, this page on <a href="http://www.camelsoftware.com/firetail/blog/c/imu-maths/">IMU maths with quarternions</a> was very helpful - as was <a href="http://www.lfd.uci.edu/~gohlke/code/transformations.py.html">Christoph Gohlke's Python quarternions code</a>. I'm currently using a simple complementary filter putting 98% of the weighting on the gyroscope, and 2% on the accelerometer and compass. There are more <a href="http://www.olliw.eu/2013/imu-data-fusing/">advanced IMU approaches</a> including <a href="http://www.x-io.co.uk/open-source-imu-and-ahrs-algorithms/">Sebastian Madgwick's IMU/AHRS sensor fusion algorithm</a>.<br />
<br />
<h3>
Using SkySafari Plus</h3>
<br />
Here's my SkySafari v4.0.1 telescope setup on the iPad or iPhone:<br />
<ul>
<li>Scope Type: Meade LX-200 GPS (see note below)</li>
<li>Mount Type: Equatorial Push-To (see note below)</li>
<li>Auto-Detect SkyFi: Off (I'm currently testing via ethernet)</li>
<li>IP Address: The Raspberry Pi's IP address, or helpfully just the host name</li>
<li>Port Number: 4030 (default, but must match the Raspberry Pi setting)</li>
<li>Set Time & Location: On (see note below)</li>
<li>Readout Rate: 4 per second (default)</li>
<li>Save Log File: Off</li>
</ul>
<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-szckQY3P1T0/UuQulmXpGFI/AAAAAAAABpg/BbpxkJB3qR8/s1600/skysafari_ipad_telescope_settings.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-szckQY3P1T0/UuQulmXpGFI/AAAAAAAABpg/BbpxkJB3qR8/s1600/skysafari_ipad_telescope_settings.png" height="240" width="320" /></a></td><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-b6ie4t9eBjw/UuQthcEisTI/AAAAAAAABpU/1PKLhmRUoTk/s1600/skysafari_ipad_telescope_push_to.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-b6ie4t9eBjw/UuQthcEisTI/AAAAAAAABpU/1PKLhmRUoTk/s1600/skysafari_ipad_telescope_push_to.png" height="240" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">SkySafari Plus v4 on iPad, telescope connection settings</td><td class="tr-caption" style="text-align: center;">SkySafari Plus v4 on iPad, connected as "Push To" telescope</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-KcaeHC8Ms88/UuQTnASEnsI/AAAAAAAABos/xif0bQXy570/s1600/skysafari_iphone_telescope_settings.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-KcaeHC8Ms88/UuQTnASEnsI/AAAAAAAABos/xif0bQXy570/s1600/skysafari_iphone_telescope_settings.png" height="400" width="225" /></a></td><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-xLzoL1H659A/UuQTmzaY_iI/AAAAAAAABoo/u5d3O9dLmp4/s1600/skysafari_iphone_telescope_push_to.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-xLzoL1H659A/UuQTmzaY_iI/AAAAAAAABoo/u5d3O9dLmp4/s1600/skysafari_iphone_telescope_push_to.png" height="400" width="225" /></a></td><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-YSe86p7ErG0/UuQTmlsrB3I/AAAAAAAABok/rHXTIfzuBk8/s1600/skysafari_iphone_telescope_goto.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-YSe86p7ErG0/UuQTmlsrB3I/AAAAAAAABok/rHXTIfzuBk8/s1600/skysafari_iphone_telescope_goto.png" height="400" width="223" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13px;">SkySafari Plus v4 on iPhone,<br />
telescope connection settings</td><td class="tr-caption" style="font-size: 13px;">SkySafari Plus v4 on iPhone,<br />
connected as a "Push To" telescope</td><td class="tr-caption" style="font-size: 13px;">SkySafari Plus v4 on iPhone,<br />
connected as a "GoTo" telescope</td></tr>
</tbody></table>
<br />
The exact mount type does not seem important, only if it is "Push-To" or "GoTo". If you select "Push-To" then the "GoTo" button and rate control are inactive. If you select "GoTo" these controls are live, and additional Left/Right and Up/Down buttons appear on the side of the screen. Since the iPad/iPhone is multi-touch, you can use these together at the same time. If you did have motors on the telescope connected to the Raspberry Pi, it should be possible to extend <a href="https://github.com/peterjc/longsight/blob/master/telescope_server.py">telescope_server.py</a> to control the telescope this way.<br />
<br />
In order to do the angle conversion, the Raspberry Pi needs to know the location (latitude and longitude) and time zone. If running a Raspberry Pi offline (e.g. from batteries away from the house) it won't know the date and time. <a href="http://astrobeano.blogspot.co.uk/2012/10/pharosmicrosoft-gps-360-on-raspberry-pi.html">Connecting a GPS to the Raspberry Pi</a> is one solution, but from a usability point of view it seems simplest to just set this via SkySafari (especially if using an iPad or iPhone with a GPS).<br />
<br />
However, if you configure the Scope Type as "Meade LX-200 Classic" then SkySafari v4 takes an extra 15 seconds or so for the connection. Using one of the other Meade settings like "Meade LX-200 GPS" avoids this and connects really quickly while setting the location and time information. Here's a sample of the output seen during connection (location redacted) when running my Python script <a href="https://github.com/peterjc/longsight/blob/master/telescope_server.py">telescope_server.py</a> on a Raspberry Pi:<br />
<br />
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
<span style="color: #5330e1;">$</span> ./telescope_server.py </div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
Connecting to sensors...</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
Connected to GY-80 sensor</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
Opening network port...</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
Starting up on 192.168.1.102 port 4030</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
Local site now latitude XX.XXXd, longitude X.XXXd</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
Local site timezone now -0.0</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
Local site timezone now -0.0</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
Requested site time 14:42:20 (TZ -0.0), new offset 1s, total offset 1s</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
Effective site date/time is 2014-01-25 14:42:20.964108 (local/GMT/UTC)</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
Requested site date 01/25/14 (MM/DD/YY) gives offset of 0 days</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
Effective site date/time is 2014-01-25 14:42:21.090983 (local/GMT/UTC)</div>
<br />
Oddly, if the Scope Type is set to one of the Celestron NexStar models, then SkySafari v4 doesn't actually seem to try to set the location or time. This is one reason why I'm sticking with the Meade LX200 protocol instead.<br />
<br />
With a target selected in SkySafari, pressing the align button should update the telescope mount tracking to be centred there. With the NexStar protocol SkySafari seems to do this itself (and only allow relatively small offsets to be used). With the Meade LX-200 protocol, SkySafari sends the revised orientation to the telescope with a sync command, and the telescope mount itself recalculates the calibration. This seems like a really neat user interface, which Simon Box uses on <a href="http://simonbox.info/index.php/astronomy">his project</a>.<br />
<br />
The Meade LX200 protocol includes commands for controlling a motorised focuser - but as far as I can see, SkySafari doesn't support this. If it did, I might be tempted to connect my <a href="http://astrobeano.blogspot.co.uk/2012/12/tasco-1603ef-focus-motor-on-skywatcher.html">Tasco 1603EF focuser</a> to the Raspberry Pi as well.<br />
<br />
<h3>
To Do List</h3>
<br />
Improve the Raspberry Pi mounting. It currently has some give, so may need bracing to prevent any knocks while in use throwing off the calibration by a few degrees. Also this is too far away from the eyepiece to connect the Raspberry Pi add-on camera via its ribbon cable, but a USB cable to a web camera or DSLR should be fine...<br />
<br />
Sensor calibration, see for example <a href="http://blog.bitify.co.uk/2013/11/connecting-and-calibrating-hmc5883l.html">AndrewBirkett's post on calibrating the HMC5883L compass</a>, another interesting post on <a href="http://www.ardumower.de/index.php/en/a">compass calibration</a> (from <a href="http://www.ardumower.de/index.php/en/">a group working on DIY robot lawn mowers</a>), and these maths heavy posts on <a href="http://chionophilous.wordpress.com/2012/09/01/implementing-the-gauss-newton-algorithm-for-sphere-fitting-1-of-3/">Gauss-Newton for sphere fitting</a> (<a href="http://chionophilous.wordpress.com/2012/09/08/implementing-the-gauss-newton-algorithm-for-sphere-fitting-2-of-3/">part 2</a>, <a href="http://chionophilous.wordpress.com/2012/09/15/implementing-the-gauss-newton-algorithm-for-sphere-fitting-3-of-3/">part 3</a>, <a href="https://github.com/rolfeschmidt/muCSense">mcUSense on GitHub</a>).<br />
<br />
A refinement (or alternative) would be to capture photos from a webcam or DLSR on the telescope and run a plate solver (e.g. using <a href="http://astrometry.net/">astrometry.net</a>'s software), to report exactly where the telescope is pointed. Plate solvers can be sped up by providing an approximate orientation, so this orientation sensor could help there.<br />
<br />
Multi-star calibration, probably with SkySafari as the front end using the Meade LX200 protocol's sync commands. This will be important if the sensor chip's X-axis isn't perfectly aligned with the telescope's line of sight. Initially I'm just use one-star alignment to correct the azimuth angle which depends on the offset between true North and the compass bearing.<br />
<br />
Reduce cable clutter by switching from ethernet to wifi, ideally freeing me from the house wifi network (<i>Update</i>: done, using a mini USB WiFi dongle which supports use as an Access Point).<br />
<br />
Further reduce cable clutter by tapping a 5V supply for the Raspberry Pi from the 6V supply for the <a href="http://astrobeano.blogspot.co.uk/2012/01/mains-power-for-multi-speed-eq2-motor.html">SkyWatcher EQ2 sidereal motor</a>?<br />
<br />
And of course, test this outdoors for real... ;)<br />
<br />
<h3>
Update - Code Feedback</h3>
<br />
Can people check for or report any problems with the code on the <a href="https://github.com/peterjc/longsight/issues">issue tracker</a> on the <a href="https://github.com/peterjc/longsight">GitHub page</a> please?<br />
<ul>
</ul>
Peter Cockhttp://www.blogger.com/profile/00233221181317137855noreply@blogger.com36tag:blogger.com,1999:blog-7275378574543326675.post-67377209103847777122014-01-10T11:54:00.000+00:002014-01-27T23:23:29.536+00:00GY-80 orientation sensor on a Raspberry PiAs I don't yet have a "Goto Mount" for my telescope, I've spent a frustrating amount of time trying and failing to find objects of interest by star hopping. Perhaps I just need more practice, but if accurate enough, an orientation sensor might give me a shortcut by telling me where my telescope is pointing? (<i>Update</i> - see <a href="http://astrobeano.blogspot.com/2014/01/instrumented-telescope-with-raspberry.html">next blog post</a>.)<br />
<br />
There are plenty of guides from people using <a href="http://en.wikipedia.org/wiki/I%C2%B2C">I2C interface</a> sensors from a Raspberry Pi, so this seemed worth a try. I bought a GY-80 on eBay for £7.50 shipped from China.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-FnRPBW-mKlQ/Us_cjyJSsVI/AAAAAAAABmA/0J6KQj60mtQ/s1600/raspberry-pi-gy80-imu.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-FnRPBW-mKlQ/Us_cjyJSsVI/AAAAAAAABmA/0J6KQj60mtQ/s1600/raspberry-pi-gy80-imu.jpg" height="240" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">GY-80 sensor attached to Raspberry Pi</td></tr>
</tbody></table>
The GY-80 is tiny, only about 27x17mm in size, and has following I2C sensors:<br />
<ul>
<li>HMC5883L (3-Axis Digital Compass), I2C Address 0x1E, <a href="http://www51.honeywell.com/aero/common/documents/myaerospacecatalog-documents/Defense_Brochures-documents/HMC5883L_3-Axis_Digital_Compass_IC.pdf">datasheet</a></li>
<li>ADXL345 (3-Axis Digital Accelerometer), I2C Address 0x53, <a href="http://www.analog.com/static/imported-files/data_sheets/ADXL345.pdf">datasheet</a></li>
<li>L3G4200D (3-Axis Angular Rate Sensor / Gyro), I2C Address 0x69, <a href="http://www.st.com/web/catalog/sense_power/FM89/SC1288/PF250373">datasheet</a></li>
<li>BMP085 (Barometric Pressure / Temperature Sensor), I2C Address 0x77, <a href="http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Sensors/Pressure/BST-BMP085-DS000-06.pdf">data sheet</a></li>
</ul>
Buying an all-in-one unit may allow a more accurate orientation sensor, but I was also intrigued if the digital compass would be helpful for polar alignment of my equatorial telescope mount?<br />
<a name='more'></a><br />
<h3>
Raspberry Pi I2C Setup</h3>
The Raspberry Pi's I2C interface is disabled by default - and also they switched things round a little in the B revision. See <a href="http://learn.adafruit.com/adafruits-raspberry-pi-lesson-4-gpio-setup/configuring-i2c">configuring I2C for Raspberry Pi (by Adafruit)</a>.<br />
<br />
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
<span style="color: #5330e1;">$</span> sudo emacs /etc/modules</div>
<br />
Add the following lines (and reboot for it to take effect):<br />
<br />
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
i2c-bcm2708 </div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
i2c-dev</div>
<br />
Check if the I2C modules have been disabled,<br />
<br />
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
<span style="color: #5330e1;">$</span> more /etc/modprobe.d/raspi-blacklist.conf</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
# blacklist spi and i2c by default (many users don't need them)</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px; min-height: 16px;">
<br /></div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
blacklist spi-bcm2708</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
blacklist i2c-bcm2708</div>
<br />
If they have (as above), edit the file to comment out those blacklist entries by adding a leading hash.<br />
<br />
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
<span style="color: #5330e1;">$</span> sudo emacs /etc/modprobe.d/raspi-blacklist.conf</div>
<br />
Install the I2C tools,<br />
<br />
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
<span style="color: #5330e1;">$</span> sudo apt-get install i2c-tools python-smbus</div>
<div>
<br /></div>
This checks the driver side of things - there are two potential I2C Linux devices:<br />
<br />
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
<span style="color: #5330e1;">$</span> sudo i2cdetect -l</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
i2c-0<span class="Apple-tab-span" style="white-space: pre;"> </span>i2c <span class="Apple-tab-span" style="white-space: pre;"> </span>bcm2708_i2c.0 <span class="Apple-tab-span" style="white-space: pre;"> </span>I2C adapter</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
i2c-1<span class="Apple-tab-span" style="white-space: pre;"> </span>i2c <span class="Apple-tab-span" style="white-space: pre;"> </span>bcm2708_i2c.1 <span class="Apple-tab-span" style="white-space: pre;"> </span>I2C adapter</div>
<br />
Now let's check if there are any I2C devices detected - the exact command differs between the older Raspberry Pi model B with 256MB RAM and no holes,<br />
<br />
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
<span style="color: #5330e1;">$</span> sudo i2cdetect -y 0</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
0 1 2 3 4 5 6 7 8 9 a b c d e f</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
00: -- -- -- -- -- -- -- -- -- -- -- -- -- </div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- </div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- </div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- </div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- </div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- </div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- </div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
70: -- -- -- -- -- -- -- --</div>
<br />
Or the newer Raspberry Pi revisions with 512MB RAM and two mounting holes:<br />
<br />
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
<span style="color: #5330e1;">$</span> sudo i2cdetect -y 1</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
0 1 2 3 4 5 6 7 8 9 a b c d e f</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
00: -- -- -- -- -- -- -- -- -- -- -- -- -- </div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- </div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- </div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- </div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- </div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- </div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- </div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
70: -- -- -- -- -- -- -- -- </div>
<br />
This says that there were no I2C devices found, on either of the possible Linux I2C devices (zero <span style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">/dev/i2c-0</span> and one <span style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">/dev/i2c-1</span>). Which makes sense as I've not connected anything yet.<br />
<br />
To avoid having to use sudo all the time to access the I2C device, I did this (log out and log in again for it to take effect):<br />
<br />
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
<span style="color: #5330e1;">$</span> sudo usermod -a -G i2c pi</div>
<br />
Hat tip to David Grayson's documentation for his <a href="https://github.com/DavidEGrayson/minimu9-ahrs/wiki">Raspberry C++ code for the MinIMU-9 sensor</a> which is similar to the GY-80.<br />
<br />
<h3>
Hardware</h3>
I'm using four jumper cables (<span style="background-color: red; color: #444444;">red</span>, <span style="background-color: #7f6000; color: #444444;">brown</span>, <span style="background-color: lime; color: #444444;">green</span> and <span style="background-color: yellow; color: #444444;">yellow</span>) to connect the GY-80 IMU to the Raspberry Pi GPIO pins (as in the photo above):<br />
<ul>
<li><span style="background-color: red; color: #444444;">VCC_IN <--> Raspberry Pi GPIO pin 1, 3.3V</span></li>
<li>VCC_3.3V <--> Unused</li>
<li><span style="background-color: #7f6000; color: #444444;">GND <--> Raspberry Pi GPIO pin 6, Ground</span></li>
<li><span style="background-color: yellow; color: #444444;">SCL <--> Raspberry Pi GPIO pin 5, I2C serial clock (SCL)</span></li>
<li><span style="background-color: lime; color: #444444;">SDA <--> Raspberry Pi GPIO pin 3, I2C serial data (SDA)</span></li>
<li>M_DRDY (interrupt from HMC5883L magnetometer) <--> Unused</li>
<li>A_INT1 (interrupt from ADXL345 accelerometer) <--> Unused</li>
<li>T_INT1 (interrupt from L3G4200 gyroscope) <--> Unused</li>
<li>P_XCLR (clear BMP085 barometer) <--> Unused</li>
<li>P_EOC (end of conversion for BMP085 barometer) <--> Unused</li>
</ul>
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-lf8tAgh2CcY/Us_aG57HQ4I/AAAAAAAABlw/mq-KCeC9bZs/s1600/gy80-back.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://4.bp.blogspot.com/-lf8tAgh2CcY/Us_aG57HQ4I/AAAAAAAABlw/mq-KCeC9bZs/s1600/gy80-back.jpg" height="320" width="320" /></a></td><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-8DGiLjCmE24/Us_aF6dB9ZI/AAAAAAAABls/ujhtkkVTIQ0/s1600/gy80-front.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-8DGiLjCmE24/Us_aF6dB9ZI/AAAAAAAABls/ujhtkkVTIQ0/s1600/gy80-front.jpg" height="320" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Labelled back of GY-80 board</td><td class="tr-caption" style="text-align: center;">Chips on the front of the GY-80 board</td></tr>
</tbody></table>
I soldered the pins I was using on the GY-80 board (without this you don't get any connection), and then my Raspberry Pi could detect the four I2C sensors:<br />
<br />
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
<span style="color: #5330e1;">$</span> i2cdetect -y 1</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
0 1 2 3 4 5 6 7 8 9 a b c d e f</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
00: -- -- -- -- -- -- -- -- -- -- -- -- -- </div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 1e -- </div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- </div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- </div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- </div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
50: -- -- -- 53 -- -- -- -- -- -- -- -- -- -- -- -- </div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
60: -- -- -- -- -- -- -- -- -- 69 -- -- -- -- -- -- </div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
70: -- -- -- -- -- -- -- 77</div>
<br />
As expected, four I2C devices found, with the published hex identifiers :)<br />
<ul>
<li>HMC5883L (3-Axis Digital Compass), I2C Address 0x1E</li>
<li>ADXL345 (3-Axis Digital Accelerometer), I2C Address 0×53</li>
<li>L3G4200D (3-Axis Angular Rate Sensor), I2C Address 0×69</li>
<li>BMP085 (Barometric Pressure / Temperature Sensor), I2C Address 0×77</li>
</ul>
<br />
<h3>
Data Access</h3>
From the very nice <a href="http://learn.adafruit.com/using-the-bmp085-with-raspberry-pi/overview">Adafruit tutorial for using BMP085 with Raspberry Pi</a>, let's download and run their example Python code:<br />
<br />
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
<span style="color: #5330e1;">$</span> git clone https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code.git</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
Cloning into 'Adafruit-Raspberry-Pi-Python-Code'...</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
remote: Reusing existing pack: 461, done.</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
remote: Total 461 (delta 0), reused 0 (delta 0)</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
Receiving objects: 100% (461/461), 155.96 KiB, done.</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
Resolving deltas: 100% (196/196), done.</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
<span style="color: #5330e1;">$</span> cd Adafruit-Raspberry-Pi-Python-Code/Adafruit_BMP085/</div>
<div>
<br /></div>
<div>
And now use <a href="https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code/blob/master/Adafruit_BMP085/Adafruit_BMP085_example.py">Adafruit_BMP085_example.py</a> to access the BMP085 chip's temperature/pressure sensor:</div>
<div>
<br /></div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
<span style="color: #5330e1;">$</span> python Adafruit_BMP085_example.py </div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
Temperature: 14.60 C</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
Pressure: 999.04 hPa</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
Altitude: 118.99</div>
<br />
Those numbers look about right - it is quite cold in this room (thus my wish for <a href="http://astrobeano.blogspot.co.uk/2014/01/kotatsu-made-in-scotland.html">a kotatsu in Scotland</a>), atmospheric pressure is about 1000 hPa and my analogue barometer says 997 millibars or hPa, while the altitude isn't far off either.<br />
<br />
Adafruit also have example code for the ADXL345 (3-Axis Digital Accelerometer), <a href="https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code/blob/master/Adafruit_ADXL345/Adafruit_ADXL345.py">Adafruit_ADXL345.py on GitHub</a>, I moved the sensor while this was running and the numbers changed:<br />
<br />
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
<span style="color: #5330e1;">$</span> cd ../Adafruit_ADXL345/</div>
<div style="background-color: black; color: #5330e1; font-family: 'Andale Mono'; font-size: 14px;">
$<span style="color: #29f914;"> python Adafruit_ADXL345.py </span></div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
[Accelerometer X, Y, Z]</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
[0, 0, 0]</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
[42, -31, -269]</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
[41, -31, -272]</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
[41, -30, -271]</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
[41, -31, -273]</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
[35, -32, -257]</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
[40, -43, -282]</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
[28, -27, -253]</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
[15, -25, -273]</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
[14, -24, -273]</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
[16, -26, -274]</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
^C</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
Traceback (most recent call last):</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
File "Adafruit_ADXL345.py", line 114, in <module></div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
sleep(1) # Output is fun to watch if this is commented out</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
KeyboardInterrupt</div>
<br />
I briefly tested the gyroscope using a little test script <a href="https://github.com/bashardawood/L3G4200D-Python">gyro.py from bashardawood on Github</a>, which gave small numbers at rest, and big numbers when I moved the sensor:<br />
<br />
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
<span style="color: #5330e1;">$</span> python gyro.py </div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
7 6 -6</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
11 2 -4</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
8 4 -5</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
9 3 -5</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
6 2 -1</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
11 -252 -7</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
7 1 -3</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
7 0 -3</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
5 2 1</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
6 4 -3</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
6 -1 -2</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
6 0 -3</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
9 0 -5</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
6 1 1</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
11 4 -3</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
114 202 -97</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
-3180 -3039 740</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
-2965 -4777 1272</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
874 -2551 601</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
-188 -2221 101</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
-833 -1531 93</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
363 774 -347</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
758 1450 -1096</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
^C<br />
Traceback (most recent call last):</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
File "gyro.py", line 56, in <module></div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
sleep(0.02)</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
KeyboardInterrupt</div>
<div>
<br /></div>
I also gave the compass a quick test by following <a href="http://blog.bitify.co.uk/2013/11/connecting-and-calibrating-hmc5883l.html">Andrew Birkett's blog post on using the HMC5883L</a>. He has some other nice posts on the <a href="http://blog.bitify.co.uk/search/label/MPU-6050">MPU-6050 gyro and accelerometer</a> and <a href="http://blog.bitify.co.uk/search/label/HMC5883L">HMC5883L compass</a>, including <a href="http://blog.bitify.co.uk/2013/12/pitch-roll-and-yaw-using-mpu6050.html">combining the MPU6050 and HMC5883L for pitch, roll and yaw</a> where he says he hopes to expand this code (on <a href="https://github.com/bitify/raspi">GitHub</a>) to also cover the ADXL345 (accelerometer), the L3G4200D (gyroscope) and the BMP085 (pressure sensor) (<i>Update - Andrew has bought a <a href="http://blog.bitify.co.uk/2014/01/gy80-l3g4200d-adxl345-hmc5883l-bmp085.html">GY-80 for his Raspberry Pi</a> too.</i>).<br />
<br />
<b><u>Update:</u></b><br />
My next blog post talks about using the <a href="http://astrobeano.blogspot.com/2014/01/instrumented-telescope-with-raspberry.html">GY-80 to measure telescope orientation</a>.Peter Cockhttp://www.blogger.com/profile/00233221181317137855noreply@blogger.com26tag:blogger.com,1999:blog-7275378574543326675.post-16975496585213260502014-01-08T13:20:00.001+00:002023-08-04T22:02:06.528+01:00A Japanese-style kotatsu made in ScotlandTraditional Japanese wooden houses don't have central heating - instead some rooms have air conditioning (イアコン), the toilet seat is usually heated, while the living room often has a kotatsu heated table (炬燵, こたつ). Modern kotatsu heaters are compact electrical units mounted on the underside of a low table, which is then covered with a quilt hanging down to the floor to trap the heat. Family life in winter is centred on the kotatsu, for watching TV, eating dinner, etc - with everyone sat round the table with their legs and lower body nicely warm.<br />
<br />
A kotatsu heater is probably my best souvenir purchase from Japan to date. The heaters are small enough to bring back in a suitcase (unlike a complete kotatsu table unit), maybe even in hand luggage? To create a kotatsu here in Scotland I've attached the heater to an Ikea LACK coffee table, and added a large duvet and voltage transformer:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-6a1Pbjs607Y/UsyTF-Rln3I/AAAAAAAABko/6p6C23m_myY/s1600/kotatsu-setup.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://4.bp.blogspot.com/-6a1Pbjs607Y/UsyTF-Rln3I/AAAAAAAABko/6p6C23m_myY/s1600/kotatsu-setup.jpg" width="400" /></a></div>
<br />
The kotatsu is a welcome addition to the traditional stone-built Scottish cottage where we live, which is hard to get warm in winter - despite retro-fitted central heating with radiators. If this winter gets really cold, we'll move the kotatsu in front of the open fire place...<br />
<a name='more'></a><br />
<h3>
Electric Kotatsu Heaters</h3>
Nowadays kotatsu heaters are electric units, usually mounted under the table surface within a frame which is covered by the quilt which the table top rests on top of. The main manufacturer selling replacement heaters seems to be <a href="http://www.metro-co.com/">Metro Denki Kougyou (メトロ電気工業, or Metro Electrical Manufacturers)</a> whose products also seem to be available as OEM rebadged versions like Yamazen (山善). Metro have a nice English page about their <a href="http://www.metro-co.com/english/products/heater/sehako/index.html">heating elements</a> and their <a href="http://www.metro-co.com/english/products/kotatsu/ardor/index.html">kotatsu heaters</a>.<br />
<br />
The current Metro kotatsu heater range are 600W units: MSU-600E(K) with a quartz heater, MHU-600E(K) with a halogen heater, and the MQU-600E(K) with a red quartz heater. These all have U-shaped heating elements with a fan, and have temperature control on the cable itself which is very convenient and an improvement on the older 400W and 500W models like the MS-400HS(K) and MSF-500H(K), where this was on the heater itself - hard to reach under the table.<br />
<br />
There are also variants of the current 600W Metro/Yamazen units with more advanced controllers featuring a timer, but I didn't see any of these in stock at the shops I visited.<br />
<br />
I bought the MQU-600E(K) with a red quartz heater while in Japan, and brought it back in my suitcase. The unit is designed to fit in a 29x29cm frame, and comes with spacer bars for a larger 31cm frame, and four thumb screws to attach it. According to the label on the back, it was made in Malaysia.<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-YrU1GPi5LH4/UsybdW-pdpI/AAAAAAAABlI/GWQ8G6jCU9Q/s1600/kotatsu-heater-kit.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://2.bp.blogspot.com/-YrU1GPi5LH4/UsybdW-pdpI/AAAAAAAABlI/GWQ8G6jCU9Q/s1600/kotatsu-heater-kit.jpg" width="320" /></a></td><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-OjfFAba97co/UsyazsJTvxI/AAAAAAAABlA/WnWLlk3gBXM/s1600/kotatsu-red-quartz-wart.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://4.bp.blogspot.com/-OjfFAba97co/UsyazsJTvxI/AAAAAAAABlA/WnWLlk3gBXM/s1600/kotatsu-red-quartz-wart.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Metro MQU-600E(K) red quartz kotatsu heater kit</td><td class="tr-caption" style="text-align: center;">Small 'wart' on the red quartz heating element</td></tr>
</tbody></table>
I was a little worried that there was a defect on the red quartz heating coil - there is a quite visible 'wart' about 2mm in size on the right hand side of the U-shaped coil, especially noticeable once glowing, but apparently this is just a manufacturing artefact.<br />
<br />
Note the Metro kotatsu heaters expect the Japanese standard of 100V. Most of the links below are to people running them in USA or Canada (120V) without a transformer, but the heaters probably <i>require</i> a step-down transformer to run in the UK with 230 to 240V. Better safe than sorry.<br />
<div>
<br /></div>
<h3>
Other DIY Kotatsu Builds</h3>
<a href="http://supersailormars.tumblr.com/post/68304073675/random-update">Super Sailor Mars' kotatsu</a> used a small Ikea Lacks table with the legs cut down (<a href="http://supersailormars.tumblr.com/post/70105068631/diy-kotatsu-part-ii">finished version</a>). Similarly <a href="http://www.instructables.com/id/Build-an-American-style-kotatsu/?ALLSTEPS">Silver Skeeter's kotatsu</a> and <a href="http://kotatsu-project.blogspot.jp/">Annie's kotatsu project</a> used a large Ikea Lacks table.<br />
<br />
<a href="https://web.archive.org/web/20161114114414/http://rabite.alcedea.net:80/2012/09/08/we-made-a-kotatsu-directions-and-pictures-inside/">Chronicles of a Sleepy Rabite's kotatsu</a> used <i>two</i> Ikea Hemnes tables, 90cm by 90 cm, legs cut down from table being 45cm high to 40cm high. I liked how they made an actual frame for holding the heater - and wondered if this would be possible using the shelf parts from a single Hemnes table instead?<br />
<br />
As a final example, <a href="http://countdownzero.wordpress.com/2011/01/16/building-your-own-kotatsu-part-3/">Count-Down-Zero built his own kotatsu table from scratch</a>!<br />
<br />
<h3>
Table & Quilt Sizes</h3>
Although you can get round kotatsu tables, browsing in-store and online most are 40cm high and either square (75x75cm to 80x80cm) or rectangular (75x105cm to 80x120cm). Ready made kotatsu quilt/futon sets assume this (up to 190x190cm for the square tables, 190x240cm for the rectangular tables), although international postage costs makes buying them online unattractive (and slow).<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-L-DitKznQo4/UsxJnQMYZOI/AAAAAAAABkY/qu-3DwLrGWw/s1600/kotatsu-cover-square.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://3.bp.blogspot.com/-L-DitKznQo4/UsxJnQMYZOI/AAAAAAAABkY/qu-3DwLrGWw/s1600/kotatsu-cover-square.jpg" width="320" /></a></td><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-Bggq7D5m5xY/UsxJmPKt88I/AAAAAAAABkQ/HUL1wDQ1jWQ/s1600/kotatsu-cover-rectangle.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://3.bp.blogspot.com/-Bggq7D5m5xY/UsxJmPKt88I/AAAAAAAABkQ/HUL1wDQ1jWQ/s1600/kotatsu-cover-rectangle.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Cover for square kotatsu table</td><td class="tr-caption" style="text-align: center;">Cover for rectangular kotatsu table</td></tr>
</tbody></table>
<br />
Based on these sizes, the Ikea Lacks square 78x78cm coffee tables should work well with a standard double bed duvet (200x200cm), even if kept at 45cm high. Going for this smaller square table would therefore have made things quite a lot cheaper as we could have reused existing bed linen.<br />
<br />
Instead we opted for the larger Ikea Lacks rectangular 78x118cm coffee table, and therefore needed something bigger for the quilt. Sadly even a UK King sized duvet isn't big enough. However, at 220x240cm the European King sized duvet works - and conveniently Ikea sell these and duvet covers too. I found with the table at its original 45cm height the duvet was only <i>just</i> long enough to touch the ground along the short edges. In addition, I found the table uncomfortably high, so cut the legs by 6cm bringing the effective table height in line with the expected Japanese norm - and ensuring the duvet fits much better.<br />
<br />
<h3>
My Kotatsu</h3>
Parts list:<br />
<ul>
<li>Kotatsu heater, <a href="https://web.archive.org/web/20160209204759/http://www.metro-co.com:80/english/products/kotatsu/ardor/index.html">Metro MQU-600E(K)</a> (5490 Yen, about £35)</li>
<li>Four corner braces as mounting brackets (£4)</li>
<li>Screw hook to hold cable in corner of table (£1)</li>
<li>Table, <a href="http://www.ikea.com/gb/en/catalog/products/00104291/">Ikea Lack 118x78cm coffee table</a> (£23)</li>
<li>Duvet quilt, <a href="http://www.ikea.com/gb/en/catalog/products/30129214/#/20129219">Ikea Euro King "Mysa Stra"</a> 220x240cm, 10.5 tog (£30)</li>
<li>Duvet cover, <a href="http://www.ikea.com/gb/en/catalog/products/70207257/#/30207259">Ikea Euro King "Lyckoax"</a> 220x240cm (£50)</li>
<li>UK to Japanese voltage stepdown transformer, <a href="http://www.airlinktransformers.com/japanese_voltage_converters/japan_uk_voltage_converters/UK-JA0750/">Airlink 750W model</a> (£82 including postage)</li>
</ul>
<br />
As in the Ikea Lack examples above, rather than having a removable tabletop above a frame holding the heater, this approach mounts the heater directly to the original thick (5cm) table top - and uses what would normally be the coffee table's shelf as a thin (1cm) second table top above the quilt. This works, but to make it more stable a heavier tabletop could be used - or a thinner quilt?<br />
<br />
Following the other blogged examples linked to above, I looked for suitable right angle brackets in our local DIY stores. For a flush mounting I wanted a hole about 12mm up, and managed to find a set of 4cm zinc corner brackets which worked perfectly - any larger and they would have stuck out above the heater.<br />
<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-KZb0ZfJK2Uo/Usw0CKSzRdI/AAAAAAAABjc/bahutYUlCG0/s1600/kotatsu-thumb-screw.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://3.bp.blogspot.com/-KZb0ZfJK2Uo/Usw0CKSzRdI/AAAAAAAABjc/bahutYUlCG0/s1600/kotatsu-thumb-screw.jpg" width="320" /></a></td>
<td style="text-align: center;"><a href="http://3.bp.blogspot.com/-ghIjYjrDhKE/Usw0si82nYI/AAAAAAAABjo/Ghv09vsJ8ro/s1600/ikea-lacks-kotatsu-heater.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://3.bp.blogspot.com/-ghIjYjrDhKE/Usw0si82nYI/AAAAAAAABjo/Ghv09vsJ8ro/s1600/ikea-lacks-kotatsu-heater.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Thumb screw provided with heater, added corner brace</td>
<td class="tr-caption" style="text-align: center;">Kotatsu heater attached with four corner braces</td></tr>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-l89HhBXCafg/UswyY0p2nDI/AAAAAAAABjM/nRKYhvCCLEo/s1600/ikea-lacks-kotatsu-heater-test.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" height="210" src="https://3.bp.blogspot.com/-l89HhBXCafg/UswyY0p2nDI/AAAAAAAABjM/nRKYhvCCLEo/s1600/ikea-lacks-kotatsu-heater-test.jpg" width="320" /></a></td>
<td style="text-align: center;"><a href="http://3.bp.blogspot.com/-QhTt41imq0Q/UswzTr9c33I/AAAAAAAABjU/va_l13TuIRY/s1600/ikea-lacks-kotatsu-heater-mounted.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" height="210" src="https://3.bp.blogspot.com/-QhTt41imq0Q/UswzTr9c33I/AAAAAAAABjU/va_l13TuIRY/s1600/ikea-lacks-kotatsu-heater-mounted.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Testing the Metro Kotatsu heater, mounted in place</td>
<td class="tr-caption" style="text-align: center;">Metro kotatsu heater mounted under Ikea Lacks coffee table</td></tr>
</tbody></table>
Without the shelf in place to prevent this, the Ikea Lacks table legs are prone to rotate. To prevent this I reused the little right angle brackets Ikea include to attach the shelf to instead lock the table legs in place (see photo below).<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-E9qiM_ysA9Y/Usw2d53TQUI/AAAAAAAABj0/7pJbGISUbfg/s1600/ikea-lacks-table-leg-brace.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://1.bp.blogspot.com/-E9qiM_ysA9Y/Usw2d53TQUI/AAAAAAAABj0/7pJbGISUbfg/s1600/ikea-lacks-table-leg-brace.jpg" width="320" /></a></td><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-qDF5jE2tUEA/UsyT9mz2r_I/AAAAAAAABkw/4SAzEtDXc2o/s1600/ikea-lacks-removed-feet.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://4.bp.blogspot.com/-qDF5jE2tUEA/UsyT9mz2r_I/AAAAAAAABkw/4SAzEtDXc2o/s1600/ikea-lacks-removed-feet.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Ikea Lack shelf support reused to prevent table legs rotating</td><td class="tr-caption" style="text-align: center;">6cm offcuts from the hollow Ikea Lack table legs</td></tr>
</tbody></table>
Note if you do cut the Ikea Lacks table legs, on mine the lower parts are actually hollow with only a thin capping piece inside (see photo above). Perhaps it would have been better to cut off the top, and re-drill the screw hole... hard to say. By cutting the table legs from 40cm to 34cm, this made the final table height 39cm, or including the former-shelf table top about 40cm (plus the quilt), matching most ready made tables on sale in Japan. This also ensured the Euro King duvet touched the ground easily on all sides.<br />
<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-HO-JPX5BX4o/Usw4niU5lZI/AAAAAAAABkA/uQz82gLrWhk/s1600/under-kotatsu-full-power.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://4.bp.blogspot.com/-HO-JPX5BX4o/Usw4niU5lZI/AAAAAAAABkA/uQz82gLrWhk/s1600/under-kotatsu-full-power.jpg" width="320" /></a></td><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-hBJSrLbROJQ/Us1ONvtxquI/AAAAAAAABlY/ywTf70e5uUw/s1600/airlink_UK-JA0750_transformer.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://1.bp.blogspot.com/-hBJSrLbROJQ/Us1ONvtxquI/AAAAAAAABlY/ywTf70e5uUw/s1600/airlink_UK-JA0750_transformer.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">View from under the kotatsu blanket at full power</td><td class="tr-caption" style="text-align: center;">The bulky step down transformer to run the heater in the UK</td></tr>
</tbody></table>
The weather so far this January has been quite mild, but we should be ready when it gets colder :)<br />
<br />
<h3>
Update (Feb 2015)</h3>
<br />
One year later the kotatsu is still going strong, and I've improvised some <a href="http://astrobeano.blogspot.com/2015/02/ikea-zaisu-kotatsu-floor-chairs.html">Ikea ZAISU</a> to go with it.<br />
<br />
<h3>
Update (Feb 2016)</h3>
<br />
Two years on, we moved house. We don't yet have a sofa and we're still using the kotatsu and zaisu. The new place has a wooden floor with under-floor heating. We're using the same rug with a couple of blankets underneath making it comfortable to sit on, but have added a few cushions too. The heater is still plugged in, but is now only used occasionally rather than daily in winter.<br />
<br />
<h3>
Update (June 2017)</h3>
<div>
<br /></div>
<div>
Since moving out of the charming traditional stone cottage to more modern well insulated accommodation, we only used the kotatsu heater a few times. In fact, last winter we never plugged in the heater at all. The low table with duvet has found another role - it is padded and a nice height for a crawling baby to practice standing.<br />
<br />
<h3>
Update (April 2019)</h3>
<br />
I noticed recently that the big online store Ali Express has started selling various kotatsu things (whole tables, heaters, quilts), and they even have chair and table leg protectors - the <a href="https://www.aliexpress.com/item/4pcs-Non-slip-Black-chair-leg-caps-silicone-floor-protector-pads/32967010607.html">50mmx50mm square table leg protectors</a> from this listing worked perfectly on my sawn-off Ikea LACKS table legs.</div><div><br /></div><h3 style="text-align: left;">Update (August 2023)</h3><div><br /></div><div>Updated a couple of broken links to use the internet archive, sadly this didn't seem to preserve all the images.</div>
Peter Cockhttp://www.blogger.com/profile/00233221181317137855noreply@blogger.com18tag:blogger.com,1999:blog-7275378574543326675.post-59913276979433353442013-11-12T00:14:00.001+00:002015-05-12T13:25:29.812+01:00Raspberry Pi IR blaster and Roomba IR codesWhen I finally bought an iRobot vacuum cleaner, <a href="http://astrobeano.blogspot.co.uk/2013/10/roomba-620-infrared-signals.html">I went for the Roomba 620</a> which is the current entry model. This version doesn't come with any accessories like the "Virtual Walls" (infrared barriers), an infrared remote control, or handy features like scheduling.<br />
<br />
However, all of the above ought in principle to be possible by transmitting infrared (IR) signals from a DIY circuit... or a Raspberry Pi? For example, with older model Roombas people have used <a href="http://www.gentoo-wiki.info/TIP_Start_your_Roomba_remotely">LIRC and an IR Blaster to tell their Roomba to start cleaning</a> by mimicking the remote control - with the computer handling the scheduling.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-TYY99kyx85o/UoFxBTxyoCI/AAAAAAAABh4/a4VqmhI63qY/s1600/raspberry_pi_ir_blaster.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="301" src="http://4.bp.blogspot.com/-TYY99kyx85o/UoFxBTxyoCI/AAAAAAAABh4/a4VqmhI63qY/s320/raspberry_pi_ir_blaster.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Raspberry Pi Infrared Blaster,<br />
using a P2N2222A NPN transistor,<br />
and two IR LEDs in series with 3.3V</td></tr>
</tbody></table>
<a name='more'></a><br />
<h3>
Roomba InfraRed Signals</h3>
iRobot sell simple IR remote controls which cover the basic commands (like start cleaning) and even let you steer it. The IR codes are emitted at 940nm using a form of pulse-width modulation (PWM), modulated with a carrier frequency around 38KHz. Each code consists of a sequence of eight bits, encoded as:<br />
<ul>
<li>Bit 0 - 1ms on, 3 ms off</li>
<li>Bit 1 - 3ms on, 1 ms off</li>
</ul>
and terminated with ~4ms off. That means in total the code and the pause is about 36ms. The IR control codes are published in the <a href="http://www.irobot.com/filelibrary/create/Create%20Open%20Interface_v2.pdf">iRobot Create Open Interface v2 (PDF)</a>, and see also my last blog post on <a href="http://astrobeano.blogspot.co.uk/2013/10/roomba-620-infrared-signals.html">recording the Roomba IR codes</a>.<br />
<br />
<h3>
Raspberry Pi IR Blaster</h3>
I recently setup an <a href="http://astrobeano.blogspot.co.uk/2013/10/raspberry-pi-xbmc-infrared-remote.html">infrared receiver in my Raspberry Pi</a>, but this time I need to <a href="http://alexba.in/blog/2013/01/06/setting-up-lirc-on-the-raspberrypi/">hook up an infrared LED under GPIO control</a>. And if you want to mimic a Roomba docking station, you would need three separate independently controllable IR LEDs.<br />
<br />
According to the source code (see <a href="https://github.com/raspberrypi/linux/pull/152">original pull request</a> and the <a href="http://aron.ws/projects/lirc_rpi/">lirc_rpi homepage</a>), the default Raspberry Pi LIRC settings use GPIO18 (pin 12) for input and GPIO17 (pin 11) for output:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">/* set the default GPIO input pin */</span><br />
<span style="font-family: Courier New, Courier, monospace;">static int gpio_in_pin = 18;</span><br />
<span style="font-family: Courier New, Courier, monospace;">/* set the default GPIO output pin */</span><br />
<span style="font-family: Courier New, Courier, monospace;">static int gpio_out_pin = 17;</span><br />
<br />
So, to make life simple, I used GPIO17 (pin 11) to connect my IR transmitter. Since I didn't have any resistors handy I improvised and uses two IR LEDs in series and the 3.3V supply (pushing the LEDs a little over the rating but it works for now in my solder-free test rig).<br />
<br />
<h3>
LIRC Codes</h3>
Some kind soul posted a <a href="http://lirc.sourceforge.net/remotes/irobot/Roomba">LIRC configuration for the Roomba Remote Control</a> (dated Oct 2007), with codes for clean, spot, max, power, and pause. Here's a cut down version showing just the clean button (the most important button).<br />
<br />
<table align="center" cellpadding="3" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: left;"><tbody>
<tr><td><pre># Excerpt from a config file which was automatically generated
# using lirc-0.8.2(default) on Sun Oct 7 19:28:15 2007
#
# brand: iRobot
# model no. of remote control: Standard Roomba Remote
# devices being controlled by this remote: Roomba Discovery/400 Series
#
begin remote
name iRobot_Roomba
flags RAW_CODES|CONST_LENGTH
eps 30
aeps 100
ptrail 0
repeat 0 0
gap 91790
begin raw_codes
name clean
2831 886 972 2709 944 2711
943 2710 2743 893 958 2723
931 2722 927 19304 2811 897
954 2726 927 2726 927 2726
2747 889 966 2714 942 2710
941
end raw_codes
end remote</pre>
</td></tr>
</tbody></table>
<br />
The <a href="http://winlirc.sourceforge.net/technicaldetails.html">LIRC Configuration File Format Technical Details</a> tells us these numbers are in micro-seconds, so we'd expect to see patterns of 3000 (3ms) and 1000 (1ms) but what was measured were on average ~2740 and ~930 instead. Was the calibration slightly off?<br />
<div>
<br /></div>
<div>
We expect each code to send eight bits, each either 3ms on 1ms off or the other way round (then an off pause) which would be 15 numbers (16 if you include the final off). However, all the button recordings had 31 numbers so clearly this captured double signals - with a gap of about 19000 (or 19ms) in between.</div>
<br />
<span style="font-family: Courier New, Courier, monospace;">$ sudo mv /etc/lirc/lircd.conf /etc/lirc/lircd_original.conf</span><br />
<span style="font-family: Courier New, Courier, monospace;">$ wget http://lirc.sourceforge.net/remotes/irobot/Roomba</span><br />
<span style="font-family: Courier New, Courier, monospace;">$ sudo mv Rooma /etc/lirc/lircd.conf</span><br />
<span style="font-family: Courier New, Courier, monospace;">$ sudo modprobe lirc_rpi</span><br />
<span style="font-family: Courier New, Courier, monospace;"> $ sudo /etc/init.d/lirc start</span><br />
<span style="font-family: Courier New, Courier, monospace;">[ ok ] Loading LIRC modules:.</span><br />
<span style="font-family: Courier New, Courier, monospace;">[ ok ] Starting remote control daemon(s) : LIRC :.</span><br />
<span style="font-family: Courier New, Courier, monospace;">$ irsend LIST "" ""</span><br />
<span style="font-family: Courier New, Courier, monospace;">irsend: iRobot_Roomba</span><br />
<span style="font-family: Courier New, Courier, monospace;"><br /></span>
<span style="font-family: Courier New, Courier, monospace;">$ irsend send_once iRobot_Roomba CLEAN</span><br />
(watch flash via IR camera!)<br />
<br />
A single send didn't work. Four or five (in a quick loop) do. Range 4m+ (although harder to get the line of sight).<br />
<br />
<h3>
Generating a configuration file</h3>
Using <a href="https://gist.github.com/peterjc/7422624">this Python script</a> I generated a complete set of Roomba IR codes for LIRC, based on the above example entry and the documented codes:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">$ python make_roomba_lirc.py > Roomba_LIRC.conf</span><br />
<span style="font-family: Courier New, Courier, monospace;">$ sudo cp Roomba_LIRC.conf /etc/lirc/lircd.conf</span><br />
<span style="font-family: Courier New, Courier, monospace;">$ sudo /etc/init.d/lirc restart</span><br />
<span style="font-family: Courier New, Courier, monospace;">[ ok ] Stopping remote control daemon(s): LIRC:.</span><br />
<span style="font-family: Courier New, Courier, monospace;">[ ok ] Loading LIRC modules:.</span><br />
<span style="font-family: Courier New, Courier, monospace;">[ ok ] Starting remote control daemon(s) : LIRC :.</span><br />
<span style="font-family: Courier New, Courier, monospace;">$ irsend list iRobot_Roomba ""</span><br />
<span style="font-family: Courier New, Courier, monospace;">irsend: 0000000000000001 left</span><br />
<span style="font-family: Courier New, Courier, monospace;">irsend: 0000000000000002 forward</span><br />
<span style="font-family: Courier New, Courier, monospace;">irsend: 0000000000000003 right</span><br />
<span style="font-family: Courier New, Courier, monospace;">irsend: 0000000000000004 spot</span><br />
<span style="font-family: Courier New, Courier, monospace;">irsend: 0000000000000005 maxdock</span><br />
<span style="font-family: Courier New, Courier, monospace;">irsend: 0000000000000006 small</span><br />
<span style="font-family: Courier New, Courier, monospace;">irsend: 0000000000000007 medium</span><br />
<span style="font-family: Courier New, Courier, monospace;">irsend: 0000000000000008 largeclean</span><br />
<span style="font-family: Courier New, Courier, monospace;">irsend: 0000000000000009 pause</span><br />
<span style="font-family: Courier New, Courier, monospace;">irsend: 000000000000000a power</span><br />
<span style="font-family: Courier New, Courier, monospace;">irsend: 000000000000000b forwardleft</span><br />
<span style="font-family: Courier New, Courier, monospace;">irsend: 000000000000000c forwardright</span><br />
<span style="font-family: Courier New, Courier, monospace;">irsend: 000000000000000d stop</span><br />
<span style="font-family: Courier New, Courier, monospace;">irsend: 000000000000000e sendall</span><br />
<span style="font-family: Courier New, Courier, monospace;">irsend: 000000000000000f seekdock</span><br />
<span style="font-family: Courier New, Courier, monospace;">irsend: 0000000000000010 virtualwall</span><br />
<br />
It isn't very easy, but pairs of commands like this worked to drive the Roomba:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">$ irsend send_start iRobot_Roomba forward</span><br />
<span style="font-family: Courier New, Courier, monospace;">$ irsend send_stop iRobot_Roomba ""</span><br />
<span style="font-family: Courier New, Courier, monospace;">$ irsend send_start iRobot_Roomba forwardright</span><br />
<span style="font-family: Courier New, Courier, monospace;">$ irsend send_stop iRobot_Roomba ""</span><br />
<span style="font-family: Courier New, Courier, monospace;">$ irsend send_start iRobot_Roomba right</span><br />
<span style="font-family: Courier New, Courier, monospace;">$ irsend send_stop iRobot_Roomba ""</span><br />
<span style="font-family: Courier New, Courier, monospace;">$ irsend send_start iRobot_Roomba stop</span><br />
<span style="font-family: Courier New, Courier, monospace;">$ irsend send_stop iRobot_Roomba ""</span><br />
<div>
<br /></div>
I can see why people have hooked this up to web interfaces to control their Roombas.<br />
<br />
Anyway, with a careful positioning, and a cron job, I could use the Raspberry Pi IR blaster to automatically trigger the Roomba to clean the house on a rota. It would be an expensive way to do it, but I think the Raspberry Pi could also mimic a Roomba Virtual Wall as well.Peter Cockhttp://www.blogger.com/profile/00233221181317137855noreply@blogger.com5tag:blogger.com,1999:blog-7275378574543326675.post-39421714074918788752013-10-23T23:14:00.003+01:002015-10-07T22:48:48.023+01:00Roomba 620 infrared signalsHaving been pondering it for a while, I recently bought an <a href="http://www.irobot.com/global/en/store/Roomba.aspx">iRobot Roomba vacuum cleaner</a> - the Roomba 620 which is the current entry model. For fun I took some photos with an <a href="http://astrobeano.blogspot.co.uk/2012/01/xbox-360-webcam-ir-filter.html">infrared sensitive webcam</a> (a trusty <a href="http://astrobeano.blogspot.co.uk/search/label/Xbox%20Live%20Vision">XBox Live Vision</a>), and then measured some of the IR signal codes with my <a href="http://astrobeano.blogspot.co.uk/search/label/Raspberry%20Pi">Raspberry Pi</a>.<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-MyRFvTMmJaI/UmbpnHjCxJI/AAAAAAAABgs/qvUynI89Bg0/s1600/roomba_semi_ir.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="213" src="http://4.bp.blogspot.com/-MyRFvTMmJaI/UmbpnHjCxJI/AAAAAAAABgs/qvUynI89Bg0/s320/roomba_semi_ir.jpg" width="320" /></a></td><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-x5dzC5XWVFo/Umbpm06uLFI/AAAAAAAABgk/NY48wLEsxyo/s1600/roomba_semi_ir_wall.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="213" src="http://4.bp.blogspot.com/-x5dzC5XWVFo/Umbpm06uLFI/AAAAAAAABgk/NY48wLEsxyo/s320/roomba_semi_ir_wall.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Note the four downward facing IR LEDs (cliff sensors)</td><td class="tr-caption" style="text-align: center;">Does the Roomba use IR illumination to follow walls?</td></tr>
</tbody></table>
<br />
<a name='more'></a>Initially it might seem like the Roomba explores blindly until it bumps into things, but it does have some open space detection as you can obverse speed changes. Having seen how it lights up where it is going with four IR LEDs (and another four pointing down which I assume are the cliff detectors) this is less mysterious.<br />
<br />
<h3>
Roomba Home Base</h3>
I've already done some background reading, so I was expecting to be able to see three IR LEDs on the Roomba Home Base or "Docking Station" - the top one is a unidirectional emitter visible from all sides of the dock (and behind it) referred to as the "Force Field" which normally repels the Roomba. The other two emit angled beams used to guide the Roomba to its "Home Base" for recharging.<br />
<br />
<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-aQiqLiJjAlc/Umbq_zs7NiI/AAAAAAAABhI/nEJpS1mB3Lg/s1600/roomba_home_base_1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="213" src="http://3.bp.blogspot.com/-aQiqLiJjAlc/Umbq_zs7NiI/AAAAAAAABhI/nEJpS1mB3Lg/s320/roomba_home_base_1.jpg" width="320" /></a></td><td rowspan="3" style="text-align: center;"><a href="http://1.bp.blogspot.com/-ImVP0AKUE8w/Umbz59vOpjI/AAAAAAAABhY/RsHf-Xw-WXU/s1600/Roomba_lateral_buoys.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="400" src="http://1.bp.blogspot.com/-ImVP0AKUE8w/Umbz59vOpjI/AAAAAAAABhY/RsHf-Xw-WXU/s400/Roomba_lateral_buoys.png" width="230" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Roomba Docking Station, with three IR LEDs (and glare)</td></tr>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-uRscvdTXkTI/UmbqxgJ5wuI/AAAAAAAABg8/Gg9xK7H9LvQ/s1600/roomba_docking_ir_1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="213" src="http://3.bp.blogspot.com/-uRscvdTXkTI/UmbqxgJ5wuI/AAAAAAAABg8/Gg9xK7H9LvQ/s320/roomba_docking_ir_1.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Roomba coming in to dock using infrared</td><td class="tr-caption" style="text-align: center;">From <a href="http://www.irobot.com/filelibrary/create/Create%20Open%20Interface_v2.pdf">Roomba iRobot Create Open Interface</a></td></tr>
</tbody></table>
<br />
This works like the port and starboard (red and green) <a href="http://en.wikipedia.org/wiki/Lateral_buoy">lateral buoys</a> in used to guide ships into harbour. By keeping the "Green buoy" to port (left), and the "Red Buoy" to starboard (right), the Roomba can find its way home. Of course, here the LEDs are not different colours (although I'd guess the original prototypes probably were), rather they emit different pulsed signals - which I should now be able to detect and decode with my newly fitted <a href="http://astrobeano.blogspot.co.uk/2013/10/raspberry-pi-xbmc-infrared-remote.html">Raspberry Pi infrared receiver</a>.<br />
<br />
<h3>
Published Roomba IR Codes</h3>
I used <a href="http://www.irobot.com/filelibrary/create/Create%20Open%20Interface_v2.pdf">iRobot Create Open Interface v2 (PDF)</a> to compile the following table, specifically page 18 which has the above diagram, and which covers the remote codes indirectly when talking about the Roomba serial interface - iRobot have been very positive about people hacking their robots for technology projects.<br />
<br />
Each of these remote codes is 8 bits (1 bytes) which can be represented as a decimal number, a hexadecimal number, or a string of eight bits (hereafter the first bit in the signal being the most significant bit in the numerical code).<br />
<br />
<table align="center" cellpadding="3" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: left;"><thead>
<tr bgcolor="SlateGray"><td>Sent by</td><td>Dec </td><td>Hex</td><td>Binary</td><td>Meaning</td></tr>
</thead><tbody>
<tr bgcolor="LightGrey"><td colspan="1" rowspan="13">Remote Control</td><td>129</td><td>0x81</td><td>1000 0001</td><td>Left</td></tr>
<tr bgcolor="LightGrey"><td>130</td><td>0x82</td><td>1000 0010</td><td>Forward</td></tr>
<tr bgcolor="LightGrey"><td>131</td><td>0x83</td><td>1000 0011</td><td>Right</td></tr>
<tr bgcolor="LightGrey"><td>132</td><td>0x84</td><td>1000 0100</td><td>Spot</td></tr>
<tr bgcolor="LightGrey"><td>133</td><td>0x85</td><td>1000 0101</td><td>Max / Dock</td></tr>
<tr bgcolor="LightGrey"><td>134</td><td>0x86</td><td>1000 0110</td><td>Small</td></tr>
<tr bgcolor="LightGrey"><td>135</td><td>0x87</td><td>1000 0111</td><td>Medium</td></tr>
<tr bgcolor="LightGrey"><td>136</td><td>0x88</td><td>1000 1000</td><td>Large / Clean</td></tr>
<tr bgcolor="LightGrey"><td>137</td><td>0x89</td><td>1000 1001</td><td>Pause</td></tr>
<tr bgcolor="LightGrey"><td>138</td><td>0x8A</td><td>1000 1010</td><td>Power</td></tr>
<tr bgcolor="LightGrey"><td>139</td><td>0x8B</td><td>1000 1011</td><td>Arc-forward-left</td></tr>
<tr bgcolor="LightGrey"><td>140</td><td>0x8C</td><td>1000 1100</td><td>Arc-forward-right</td></tr>
<tr bgcolor="LightGrey"><td>141</td><td>0x8D</td><td>1000 1101</td><td>Drive-stop</td></tr>
<tr bgcolor="LightSlateGray"><td colspan="1" rowspan="2">Scheduling Remote</td><td>142</td><td>0x8E</td><td>1000 1110</td><td>Download / Send All</td></tr>
<tr bgcolor="LightSlateGray"><td>143</td><td>0x8F</td><td>1000 1111</td><td>Seek Dock</td></tr>
<!--
<tr bgcolor="SlateGray"><td>VW or Lighthouse</td><td>162</td><td>0xA2</td><td>1010 0010</td><td>Virtual Wall</td></tr>
-->
<tr bgcolor="LightGrey"><td colspan="1" rowspan="10">Roomba 400<br />
Home Base</td><td>240</td><td>0xF0</td><td>1111 0000</td><td>Reserved</td></tr>
<tr bgcolor="LightGrey"><td>242</td><td>0xF2</td><td>1111 00<span style="background-color: cyan;">1</span>0</td><td>Behind / <span style="background-color: cyan;">Force Field</span></td></tr>
<tr bgcolor="LightGrey"><td>244</td><td>0xF4</td><td>1111 0<span style="background-color: lime;">1</span>00</td><td><span style="background-color: lime;">Green Buoy (meaning Starboard, or Right)</span></td></tr>
<tr bgcolor="LightGrey"><td>246</td><td>0xF6</td><td>1111 0<span style="background-color: lime;">1</span><span style="background-color: cyan;">1</span>0</td><td><span style="background-color: lime;">Right</span> <span style="background-color: cyan;">Close</span> / <span style="background-color: lime;">Green Buoy</span> & <span style="background-color: cyan;">Force Field</span></td></tr>
<tr bgcolor="LightGrey"><td>248</td><td>0xF8</td><td>1111 <span style="background-color: red;">1</span>000</td><td><span style="background-color: red;">Red Buoy (meaning Port, or Left)</span></td></tr>
<tr bgcolor="LightGrey"><td>250</td><td>0xFA</td><td>1111 <span style="background-color: red;">1</span>0<span style="background-color: cyan;">1</span>0</td><td><span style="background-color: red;">Left</span> <span style="background-color: cyan;">Close</span> / <span style="background-color: red;">Red Buoy</span> & <span style="background-color: cyan;">Force Field</span></td></tr>
<tr bgcolor="LightGrey"><td>252</td><td>0xFC</td><td>1111 <span style="background-color: red;">1</span><span style="background-color: lime;">1</span>00</td><td>Middle / <span style="background-color: red;">Red Buoy</span> & <span style="background-color: lime;">Green Buoy</span></td></tr>
<tr bgcolor="LightGrey"><td>254</td><td>0xFE</td><td>1111 <span style="background-color: red;">1</span><span style="background-color: lime;">1</span><span style="background-color: cyan;">1</span>0</td><td>Middle <span style="background-color: cyan;">Close</span> / <span style="background-color: red;">Red Buoy</span>, <span style="background-color: lime;">Green Buoy</span> & <span style="background-color: cyan;">Force Field</span></td></tr>
</tbody></table>
<br />
The IR codes from the Home Base make sense with a bit each for the <span style="background-color: red;">"Red Buoy" (Port, right LED beam)</span>, <span style="background-color: lime;">"Green Buoy" (Starboard, left LED beam)</span> and the <span style="background-color: cyan;">"Force Field" (unidirectional close range LED)</span>.<br />
<br />
It would be my guess that the composite signals are not actually broadcast explicitly, but are the overlap of the output from the two to three separate LEDs which must therefore be time synchronised. Time to find out…<br />
<br />
<h3>
Recording Roomba 620 Home Base IR codes</h3>
I recently setup an <a href="http://astrobeano.blogspot.co.uk/2013/10/raspberry-pi-xbmc-infrared-remote.html">infrared receiver in my Raspberry Pi</a> which can be used to record IR signals from remote controls. I was able to use the same procedure to record the signals from the each of the three separate LEDs of the Roomba Home Base by blocking the others with card and tape.<br />
<br />
The IR codes are documented as emitted at 940nm using a form of pulse-width modulation (PWM), modulated with a carrier frequency around 38KHz. Each code consists of a sequence of eight bits, encoded as:<br />
<ul>
<li>Bit 0 - 1ms on, 3 ms off</li>
<li>Bit 1 - 3ms on, 1 ms off</li>
</ul>
I started by watching just the "Force Field" LED, from the back (while Roomba was away in another room), it was clear that (with some variation in the long pauses), there was a simple repeating pattern. For example, where the numbers are in micro-seconds (1000 is 1ms):<br />
<br />
<table align="center" cellpadding="3" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: left;"><tbody>
<tr><td><pre>$ mode2 -d /dev/lirc0
...
space 33098
pulse 2947
space 965
pulse 1016
space 2865
pulse 3086
space 826
pulse 1044
space 2869
pulse 1015
space 2894
pulse 1015
space 2868
pulse 1035
space 2873
pulse 2953
space 99558
pulse 2947
space 969
...</pre>
</td><td><pre></pre>
<pre>(long pause)</pre>
<pre>1
.
0
.
1
.
0
.
0
.
0
.
0
.
1
(long pause)
1
.</pre>
</td></tr>
</tbody></table>
<br />
This repeating pattern was 1010 0001, or 161 (decimal), or 0xA1 in hex, which is <i>not</i> is listed in the current iRobot documentation (see table above).<br />
<br />
Decoding that by hand was tedious, so I wrote a little <a href="https://gist.github.com/peterjc/7127551">Python script to decode the Roomba IR codes</a> for me:<br />
<br />
<table align="center" cellpadding="3" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: left;"><tbody>
<tr><td><pre>$ mode2 -d /dev/lirc0 | python decode_roomba_ir.py
10100001 - 161 - 0xA1
10100001 - 161 - 0xA1
10100001 - 161 - 0xA1
10100001 - 161 - 0xA1
...</pre>
</td></tr>
</tbody></table>
Attempting to watch the "Force Field" IR LED only, from the back, gave a nice clean simple repeat. Using some tape to securely mask the two buoy LEDs I could get the same clean signal from the front of the dock:<br />
<ul>
<li>10100001 - 161 - 0xA1</li>
</ul>
With just the right LED and the top LED, there were apparently two codes:<br />
<ul>
<li>10100001 - 161 - 0xA1</li>
<li>10101000 - 168 - 0xA8</li>
</ul>
Just the left LED and the top LED, again I saw two codes:<br />
<ul>
<li>10100001 - 161 - 0xA1</li>
<li>10100100 - 164 - 0xA4</li>
</ul>
All three LEDs from front, in some locations it was hard to decode the 5 and 6th bits - but usually there was a blend of 0xA4 and 0xA8 giving 0xAC as a recognisable code:<br />
<ul>
<li>10100001 - 161 - 0xA1</li>
<li>10101100 - 172 - 0xAC</li>
</ul>
It seems that with the 600 series Roomba have changed the Home Base IR codes (compared to the Roomba 400 series). While the left and right IR LEDs seem to be synchronised so that when you see both their individual signals 0xA1 and 0xA4 overlap to register as 0xAC, I wasn't able to get them to blend with the "Force Field" LED as well - maybe my sensor is at the wrong height?<br />
<br />
<table align="center" cellpadding="3" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: left;"><thead>
<tr bgcolor="SlateGray"><td>Sent by</td><td>Dec </td><td>Hex</td><td>Binary</td><td>Meaning</td></tr>
</thead><tbody>
<tr bgcolor="LightGrey"><td colspan="1" rowspan="4">Roomba 500/600<br />
Drive-on charger/Home Base</td><td>161</td><td>0xA1</td><td>1010 000<span style="background-color: cyan;">1</span></td><td><span style="background-color: cyan;">Force Field</span></td></tr>
<tr bgcolor="LightGrey"><td>164</td><td>0xA4</td><td>1010 <span style="background-color: lime;">1</span>000</td><td><span style="background-color: lime;">Green Buoy (meaning Starboard, or Right)</span></td></tr>
<tr bgcolor="LightGrey"><td>168</td><td>0xA8</td><td>1010 0<span style="background-color: red;">1</span>00</td><td><span style="background-color: red;">Red Buoy (meaning Port, or Left)</span></td></tr>
<tr bgcolor="LightGrey"><td>172</td><td>0xAC</td><td>1010 <span style="background-color: lime;">1</span><span style="background-color: red;">1</span>00</td><td>Middle / <span style="background-color: red;">Red Buoy</span> & <span style="background-color: lime;">Green Buoy</span></td></tr>
<tr bgcolor="LightSlateGrey"><td>Roomba 500 Virtual Wall</td><td>162</td><td>0xA2</td><td>1010 00<span style="background-color: magenta;">1</span>0</td><td>Virtual Wall</td></tr>
</tbody>
</table>
The first four bits match <a href="http://www.enide.net/webcms/index.php?page=virtual-wall-for-roomba">João Figueiredo's Roomba Virtual Wall</a> (1010 0010, or 162 decimal, 0xA2 in hex), which seems to hint at a new scheme. Curious.<br />
<br />
<h3>
Update - More official documentation</h3>
I've now found the <a href="http://www.irobot.lv/uploaded_files/File/iRobot_Roomba_500_Open_Interface_Spec.pdf">iRobot Roomba 500 Open Interface Specification</a> online (<a href="http://www.robotreviews.com/chat/download/file.php?id=1244">alternative link</a>), which confirms these codes - and indicated I should be able to get a blend of the three IR LEDs.<br />
<br />
See also the next blog post, where I could <a href="http://astrobeano.blogspot.co.uk/2013/11/raspberry-pi-ir-blaster-and-roomba-ir.html">control the Roomba with a Raspberry Pi and an IR LED</a>.Peter Cockhttp://www.blogger.com/profile/00233221181317137855noreply@blogger.com4tag:blogger.com,1999:blog-7275378574543326675.post-19737512970677613512013-10-14T12:18:00.000+01:002015-04-09T20:23:05.605+01:00Raspberry Pi XBMC infrared remote controlI've added an infrared receiver to my Raspberry Pi, tucked inside a <a href="http://shop.pimoroni.com/products/pibow">PiBow case</a> with its clear top layer letting it receive the signals. This lets me re-use an old DVD player IR remote to control XBMC running on the Pi.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-uC98YFP99cg/UlsvOTXtL0I/AAAAAAAABfw/R51NhZFJYFQ/s1600/2013-10-13+19.48.02.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-uC98YFP99cg/UlsvOTXtL0I/AAAAAAAABfw/R51NhZFJYFQ/s320/2013-10-13+19.48.02.jpg" height="240" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">IR sensor and cable hiding inside PiBow case</td></tr>
</tbody></table>
<br />
Basically I followed this <a href="http://learn.adafruit.com/using-an-ir-remote-with-a-raspberry-pi-media-center?view=all">AdaFruit Tutorial for adding an IR receiver to the Raspberry Pi</a>, but not being in the USA I had to substitute parts which I sourced via eBay instead. Despite much searching, the shortest suitable jumper cables I could find (one pin to one pin, 1P-1P, and female-to-female, F/F) were 10cm long - which is a bit much to coil up inside the Pibow case but easier than soldering.<br />
<a name='more'></a><br />
Parts:<br />
<ul>
<li>1x TSOP38238 InfraRed receiver (under £2 from eBay with shipping)</li>
<li>3x 10cm Dupont Wire 2.54mm 1P-1P Female/Female jumper cable (pack of 40 for £1 on eBay)</li>
</ul>
<br />
The three jumper wires (split off my ribbon of 40 as a triple) connect the three pins of the IR sensor to GPIO18, GND, and 3V3 respectively (pins 12, 6, and 1).<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-Q_6BvmmIcqU/UlsvZ8jhSXI/AAAAAAAABf4/LTcnHjdJEd0/s1600/2013-10-13+19.01.02.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-Q_6BvmmIcqU/UlsvZ8jhSXI/AAAAAAAABf4/LTcnHjdJEd0/s320/2013-10-13+19.01.02.jpg" height="240" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">IR sensor and 10cm jumper leads to Raspberry Pi</td></tr>
</tbody></table>
<br />
<h3>
Raspian Configuration</h3>
I just used the following to check the hardware was working:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">$ sudo apt-get install lirc</span><br />
<span style="font-family: Courier New, Courier, monospace;">$ sudo modprobe lirc_rpi</span><br />
<span style="font-family: Courier New, Courier, monospace;">$ mode2 -d /dev/lirc0</span><br />
<br />
This showed it received signals from my assorted working IR remote controls. I didn't go any further with this since I'm not actually running XBMC under Raspian at the moment.<br />
<br />
<h3>
OpenELEC</h3>
Then for XBMC under OpenElec, I followed the <a href="http://wiki.openelec.tv/index.php?title=Guide_To_lirc_rpi_GPIO_Receiver">instructions here</a> via SSH. Under OpenElec LIRC is already installed, we just need to enable it for the current session, add this to the startup script for future use, and then configure the remote control.<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">$ modprobe lirc_rpi</span><br />
<span style="font-family: Courier New, Courier, monospace;">$ echo "modprobe lirc_rpi" >> /storage/.config/autostart.sh</span><br />
<span style="font-family: Courier New, Courier, monospace;">$ irrecord /storage/.config/lircd.conf</span><br />
<br />
Running irrecord is a bit fiddly, but seems to work nicely. I found it helps to have looked at the output of this command which lists all the KEY_* names that irrecord understands.<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">$ irrecord --list-namespace</span><br />
<br />
Remote control configuration tips for XBMC (<a href="http://wiki.openelec.tv/index.php?title=HowTo:_debug_a_IR_Remote">see this HowTo</a>):<br />
<ul>
<li>For navigating the menus in place of the cursor keys on a normal keyboard, define KEY_LEFT, KEY_RIGHT, KEY_UP and KEY_DOWN (at least that was easy).</li>
<li>For navigating the menus in place of 'enter' on a normal keyboard, define KEY_OK rather than KEY_SELECT or KEY_ENTER.</li>
<li>For navigating the menus in place of 'backspace' on a normal keyboard, use KEY_EXIT, none of KEY_BACKSPACE, KEY_BACK or KEY_CANCEL work.</li>
<li>For the context menu reached via 'c' on a normal keyboard, none of KEY_C, KEY_MENU or KEY_CONTEXT_MENU work. However, KEY_EPG (electronic program guide) does.</li>
<li>For media information reached via 'i' on a normal keyboard, defining KEY_INFO works.</li>
<li>For changing the volume, KEY_VOLUMEUP and KEY_VOLUMEDOWN work fine. However KEY_MUTE appears to have no effect.</li>
<li>For rapid scrolling through the menus I like to use Page Up/Down on my normal keyboard. Unfortunately KEY_PAGEUP and KEY_PAGEDOWN via the remote have no effect.</li>
</ul>
<br />
When I say things have no effect, they are being detected as you can monitor this live via SSH while running XMBC:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">$ irw /var/run/lirc/lircd-lirc0</span><br />
<br />
To rename a key, edit <span style="font-family: Courier New, Courier, monospace;">/storage/.config/lircd.conf</span> and reboot.<br />
<br />
This was done under OpenElec v2.95.6, which I then updated to v3.2.2 after realising the automatic updates hadn't picked up the major releases. The remote still seems to work (and seems to have fixed a playback glitch too). I may need to fine tune the repeat settings for best results...<br />
<br />
<h3>
Update (April 2015) for Raspberry Pi 2</h3>
<br />
Eventually, as XBMC/Kodi was updated, my original Raspberry Pi could not keep it - it was getting slow in the menus, and would get stuck while playing videos. I replaced it with the newer Raspberry Pi 2 which has more RAM and a faster CPU. This has worked great with OpenElec 5.0.8 and Kodi, but once again I wanted to setup an IR remote under OpenElec.<br />
<br />
I used the same model TSOP38238 InfraRed receiver, and the exact same pins on the new Raspberry Pi. I again opted for the pibow case with its clear lid, this time picking the black "ninja" version rather than the "rainbow". I was a little disappointed though - it looks noticeably taller and less cute as a result. The reason seems to be the new Pi's USB ports are a millimetre or so higher forcing Pimori to add an extra layer to the PiBow case compared to the original. On the rainbow model this new layer is transparent so it is hard to see in the photos.<br />
<br />
Anyway, on to the code side of things:<br />
<br />
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
<span style="color: #34bd26; font-variant-ligatures: no-common-ligatures;">OpenELEC:</span><span style="color: #5330e1; font-variant-ligatures: no-common-ligatures;">~ </span># modprobe lirc_rpi</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
modprobe: ERROR: could not insert 'lirc_rpi': No such device</div>
<br />
It turns out the IR module is now disabled by default, so we need to enable it:<br />
<br />
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
<span style="color: #34bd26; font-variant-ligatures: no-common-ligatures;">OpenELEC:</span><span style="color: #5330e1; font-variant-ligatures: no-common-ligatures;">~ </span># mount -o remount,rw /flash</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
<span style="color: #34bd26; font-variant-ligatures: no-common-ligatures;">OpenELEC:</span><span style="color: #5330e1; font-variant-ligatures: no-common-ligatures;">~ </span># nano /flash/config.txt</div>
<br />
Referring to the <a href="https://www.raspberrypi.org/documentation/configuration/device-tree.md">official documentation</a>, add the line <span style="font-family: Courier New, Courier, monospace;">dtoverlay=lirc-rpi</span> to this file and save it, then reboot.<br />
<br />
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
<span style="color: #34bd26; font-variant-ligatures: no-common-ligatures;">OpenELEC:</span><span style="color: #5330e1; font-variant-ligatures: no-common-ligatures;">~ </span># modprobe lirc_rpi</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
<span style="color: #34bd26; font-variant-ligatures: no-common-ligatures;">OpenELEC:</span><span style="color: #5330e1; font-variant-ligatures: no-common-ligatures;">~ </span># killall lircd</div>
<div style="background-color: black; color: #29f914; font-family: 'Andale Mono'; font-size: 14px;">
<span style="color: #34bd26;">OpenELEC:</span><span style="color: #5330e1;">~ </span># irrecord /storage/.config/lircd.conf</div>
<br />
This worked as expected, and I could have gone through the same hassle as before to configure the keys. But I cheated and copied my old <span style="font-family: Courier New, Courier, monospace;">lircd.conf</span> file over instead.Peter Cockhttp://www.blogger.com/profile/00233221181317137855noreply@blogger.com0tag:blogger.com,1999:blog-7275378574543326675.post-63249463774699351652013-06-02T15:14:00.001+01:002013-06-02T15:14:11.917+01:00Blue Tit chicks hatchedPhotos from Friday, six of the <a href="http://astrobeano.blogspot.co.uk/2013/05/blue-tit-eggs.html">seven <i>Blue Tit</i> eggs</a> have clearly hatched.
<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-wjdGwGqUjy0/UatO_THYf3I/AAAAAAAABYA/C4qJrQzawNU/s1600/20130531-04-38-31-00.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-wjdGwGqUjy0/UatO_THYf3I/AAAAAAAABYA/C4qJrQzawNU/s1600/20130531-04-38-31-00.jpg" /></a></td><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-8vxM9cHd3iQ/UatO_sgJg5I/AAAAAAAABYI/6wt9s7vJLe4/s1600/20130531-04-38-43-00.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-8vxM9cHd3iQ/UatO_sgJg5I/AAAAAAAABYI/6wt9s7vJLe4/s1600/20130531-04-38-43-00.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Food!</td><td class="tr-caption" style="text-align: center;">Broken egg shell to recycle</td></tr>
</tbody></table>
<br />
<a name='more'></a>
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-LQz83I40nAg/UatPBI9EaNI/AAAAAAAABYo/CSEN_J8ef9Q/s1600/20130531-05-50-18-00.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-LQz83I40nAg/UatPBI9EaNI/AAAAAAAABYo/CSEN_J8ef9Q/s1600/20130531-05-50-18-00.jpg" /></a></td><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-DBfsnw5ORM0/UatPCPx4lzI/AAAAAAAABY4/EErG-2T4mAg/s1600/20130531-05-51-17-00.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-DBfsnw5ORM0/UatPCPx4lzI/AAAAAAAABY4/EErG-2T4mAg/s1600/20130531-05-51-17-00.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">One egg unhatched</td><td class="tr-caption" style="text-align: center;">Two open mouths, one egg</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-VtRHY_eWL0s/UatPCNCzsKI/AAAAAAAABZA/RJ6g4AA59CU/s1600/20130531-08-01-50-00.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://4.bp.blogspot.com/-VtRHY_eWL0s/UatPCNCzsKI/AAAAAAAABZA/RJ6g4AA59CU/s1600/20130531-08-01-50-00.jpg" /></a></td><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-BSQ4d9qsusE/UatPDf3bL1I/AAAAAAAABZg/K-urH_p5w3U/s1600/20130531-17-08-18-00.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-BSQ4d9qsusE/UatPDf3bL1I/AAAAAAAABZg/K-urH_p5w3U/s1600/20130531-17-08-18-00.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Both parents squeezed into the box</td><td class="tr-caption" style="text-align: center;">Five open mouths, one closed beak</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-0xAWQNlQT04/UatPDXggL5I/AAAAAAAABZc/Q_KcatZCkq8/s1600/20130531-17-48-04-00.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-0xAWQNlQT04/UatPDXggL5I/AAAAAAAABZc/Q_KcatZCkq8/s1600/20130531-17-48-04-00.jpg" /></a></td><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-JpBhhVPd-z8/UatPEbl5qmI/AAAAAAAABZk/orjqHRv-k5Y/s1600/20130531-18-07-59-01.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-JpBhhVPd-z8/UatPEbl5qmI/AAAAAAAABZk/orjqHRv-k5Y/s1600/20130531-18-07-59-01.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Food or a feather?</td><td class="tr-caption" style="text-align: center;">Six hungry mouths</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-AOE3X52A5no/UatPEtLe6UI/AAAAAAAABZw/6gzLMZZk0Fs/s1600/20130531-18-12-29-00.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-AOE3X52A5no/UatPEtLe6UI/AAAAAAAABZw/6gzLMZZk0Fs/s1600/20130531-18-12-29-00.jpg" /></a></td><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-s-NOP22HWc0/UatPEgkLv7I/AAAAAAAABZ0/GRF2lLAHin8/s1600/20130531-19-03-09-00.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-s-NOP22HWc0/UatPEgkLv7I/AAAAAAAABZ0/GRF2lLAHin8/s1600/20130531-19-03-09-00.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Six hungry chicks competing</td><td class="tr-caption" style="text-align: center;">Six or seven chicks?</td></tr>
</tbody></table>
<br />
I'm not sure if the last egg hatched or not - I've not seen a clear image of seven mouths but in a couple of shots like the last ones above, there could be a seventh chick which happened to have its beak closed? We shall see..<br />
<br />
Using the <a href="http://www.lavrsen.dk/foswiki/bin/view/Motion/WebHome">motion software</a>, my <a href="http://astrobeano.blogspot.co.uk/2013/01/raspberry-pi-down-garden.html">garden based Raspberry Pi</a> is still recording tens of thousands of images a day recorded - not only does this cause trouble filling up the Raspberry Pi's SD card, browsing the folder for each day makes my desktop struggle with the thumbnail images!Peter Cockhttp://www.blogger.com/profile/00233221181317137855noreply@blogger.com0tag:blogger.com,1999:blog-7275378574543326675.post-77559953149654895262013-05-29T17:54:00.000+01:002013-06-03T14:11:02.290+01:00Blue Tit eggsIn addition to <a href="http://astrobeano.blogspot.co.uk/2013/03/raspberry-pi-motion-sensitive-trail-cam.html">automatically monitoring my TrailCam</a>, the <a href="http://astrobeano.blogspot.co.uk/2013/01/raspberry-pi-down-garden.html">garden based Raspberry Pi</a> has continued to watch the <i>Blue Tits</i> in <a href="http://astrobeano.blogspot.co.uk/2012/03/xbox-birdbox-mk-iii.html">Bird Box III</a> which have this year laid a clutch of seven eggs, averaging one a day.<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-e7YGMrdytLk/UaNUQ_3LW4I/AAAAAAAABXg/zDEumiYMtys/s1600/20130509-05-00-00-00-zero-eggs.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-e7YGMrdytLk/UaNUQ_3LW4I/AAAAAAAABXg/zDEumiYMtys/s1600/20130509-05-00-00-00-zero-eggs.jpg" /></a></td><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-0bqu09yOFhQ/UZvJXsD-pII/AAAAAAAABWQ/KEGlepFfowY/s1600/20130517-06-12-01-00-seven-eggs.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-0bqu09yOFhQ/UZvJXsD-pII/AAAAAAAABWQ/KEGlepFfowY/s1600/20130517-06-12-01-00-seven-eggs.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">No eggs</td><td class="tr-caption" style="text-align: center;">One week later, seven eggs</td></tr>
</tbody></table>
<br />
<a name='more'></a>Here are some of the intermediate images:<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-lz0TfaMcKbk/UaNUQ7NgnFI/AAAAAAAABXc/cAYGJ1ZEAro/s1600/20130509-06-41-18-05-one-egg.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-lz0TfaMcKbk/UaNUQ7NgnFI/AAAAAAAABXc/cAYGJ1ZEAro/s1600/20130509-06-41-18-05-one-egg.jpg" /></a></td><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-i9ZefYgfOOk/UZvJVB25oHI/AAAAAAAABVc/ivf8bSJ_xCo/s1600/20130512-05-09-37-00-two-eggs.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-i9ZefYgfOOk/UZvJVB25oHI/AAAAAAAABVc/ivf8bSJ_xCo/s1600/20130512-05-09-37-00-two-eggs.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The first egg, recently laid</td><td class="tr-caption" style="text-align: center;">Two eggs</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-8RdlSvUiUD0/UZvJVW-4oFI/AAAAAAAABVk/_5gntUrqGcA/s1600/20130512-06-00-00-00-three-eggs.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-8RdlSvUiUD0/UZvJVW-4oFI/AAAAAAAABVk/_5gntUrqGcA/s1600/20130512-06-00-00-00-three-eggs.jpg" /></a></td><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-djNu7LSgAHg/UZvJWEBRFgI/AAAAAAAABVs/K0L9Z-T4mgw/s1600/20130513-05-46-56-01-four-eggs.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-djNu7LSgAHg/UZvJWEBRFgI/AAAAAAAABVs/K0L9Z-T4mgw/s1600/20130513-05-46-56-01-four-eggs.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Three eggs</td><td class="tr-caption" style="text-align: center;">Four eggs</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-hplzfAo7CR4/UZvJWTp0ciI/AAAAAAAABVw/oA6LhuOrJwM/s1600/20130513-08-44-42-00-shift-change.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-hplzfAo7CR4/UZvJWTp0ciI/AAAAAAAABVw/oA6LhuOrJwM/s1600/20130513-08-44-42-00-shift-change.jpg" /></a></td><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-F3_zT8TIClo/UZvJWgVjRfI/AAAAAAAABV0/jSk6U_EKT3I/s1600/20130513-10-29-32-03-twiggy.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-F3_zT8TIClo/UZvJWgVjRfI/AAAAAAAABV0/jSk6U_EKT3I/s1600/20130513-10-29-32-03-twiggy.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Feather delivery</td><td class="tr-caption" style="text-align: center;">Nesting material</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-Z-FpFxwerpc/UZvJXAmu_HI/AAAAAAAABWE/gnBk1y9IY0Q/s1600/20130515-06-08-36-02-five-eggs.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://4.bp.blogspot.com/-Z-FpFxwerpc/UZvJXAmu_HI/AAAAAAAABWE/gnBk1y9IY0Q/s1600/20130515-06-08-36-02-five-eggs.jpg" /></a></td><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-0bqu09yOFhQ/UZvJXsD-pII/AAAAAAAABWQ/KEGlepFfowY/s1600/20130517-06-12-01-00-seven-eggs.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-0bqu09yOFhQ/UZvJXsD-pII/AAAAAAAABWQ/KEGlepFfowY/s1600/20130517-06-12-01-00-seven-eggs.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Five eggs</td><td class="tr-caption" style="text-align: center;">Seven eggs</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-AxaWh2oKA30/UZvK9pHWZlI/AAAAAAAABWk/T7d1hqAZxBw/s1600/20130520-07-42-13-00.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-AxaWh2oKA30/UZvK9pHWZlI/AAAAAAAABWk/T7d1hqAZxBw/s1600/20130520-07-42-13-00.jpg" /></a></td><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-zOPTBZ7k46s/UZvLWORGewI/AAAAAAAABWs/g8QQzvxK0nk/s1600/20130520-08-43-13-02-room-service.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-zOPTBZ7k46s/UZvLWORGewI/AAAAAAAABWs/g8QQzvxK0nk/s1600/20130520-08-43-13-02-room-service.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Still seven eggs</td><td class="tr-caption" style="text-align: center;">Home delivery</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-KGx2_ffx778/UZvMGVrse7I/AAAAAAAABW0/70q9ZQ_qntE/s1600/20130520-09-04-52-01-more-insulation.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-KGx2_ffx778/UZvMGVrse7I/AAAAAAAABW0/70q9ZQ_qntE/s1600/20130520-09-04-52-01-more-insulation.jpg" /></a></td><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-QJ4Fps0gXn4/UaNQmOTna3I/AAAAAAAABXE/LMhUggOeyn8/s1600/20130527-13-14-43-00-seven-eggs.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-QJ4Fps0gXn4/UaNQmOTna3I/AAAAAAAABXE/LMhUggOeyn8/s1600/20130527-13-14-43-00-seven-eggs.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">More insulation?</td><td class="tr-caption" style="text-align: center;">Another week later, no advance on seven eggs.</td></tr>
</tbody></table>
<br />
These glimpses of the eggs are few and far between - most of the images are of one nesting <i>Blue Tit</i> moving on the nest, with only a handful of images with both parents visible.<br />
<br />
With the default <a href="http://www.lavrsen.dk/foswiki/bin/view/Motion/WebHome">motion</a> settings I was getting tens of thousands of images a day recorded - which was causing trouble filling up the Raspberry Pi's SD card, and occasionally failing with a read only file system. That required me to reboot and delete older images to make space. I've imposed a maximum of 5 frames a second for now...<br />
<br />
According to the internet, the typical <i>Blue Tit</i> egg incubation time is around two weeks, so these should hatch about the start of June.<br />
<br />
<b><u>Update:</u></b><br />
<br />
The <a href="http://astrobeano.blogspot.co.uk/2013/06/blue-tit-chicks-hatched.html"><i>Blue Tit</i> eggs hatched</a> at the end of MayPeter Cockhttp://www.blogger.com/profile/00233221181317137855noreply@blogger.com2tag:blogger.com,1999:blog-7275378574543326675.post-38761609991100929892013-05-13T22:00:00.000+01:002013-05-13T22:00:58.639+01:00Raspberry Pi Trail Cam - UpdateIts been two months since I posted the <a href="http://astrobeano.blogspot.co.uk/2013/03/raspberry-pi-motion-sensitive-trail-cam.html">first set of photos captured by my Raspberry Pi trail-cam</a>. Since the UK had some unexpected snow in March 2013 - during which the <a href="http://astrobeano.blogspot.co.uk/2013/01/raspberry-pi-down-garden.html">garden based Raspberry Pi</a> continued to work just fine.<br />
<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-zHNW4cvBsfM/UZFPs9HtweI/AAAAAAAABT0/1x6Ft3jojoo/s1600/20130310-13-30-57-03.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-zHNW4cvBsfM/UZFPs9HtweI/AAAAAAAABT0/1x6Ft3jojoo/s320/20130310-13-30-57-03.jpg" /></a></td><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-rwAlbibXUl0/UZFPtKLblEI/AAAAAAAABT4/hvi2Xl4Gpk8/s1600/20130312-06-26-30-05.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-rwAlbibXUl0/UZFPtKLblEI/AAAAAAAABT4/hvi2Xl4Gpk8/s320/20130312-06-26-30-05.jpg" /></a></td></tr>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-9evqQXbzVLo/UZFPtE_DCwI/AAAAAAAABUA/uGEzhx-tADQ/s1600/20130312-11-30-38-00.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://4.bp.blogspot.com/-9evqQXbzVLo/UZFPtE_DCwI/AAAAAAAABUA/uGEzhx-tADQ/s320/20130312-11-30-38-00.jpg" /></a></td><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-32AE0vjTE8E/UZFPtxd2ayI/AAAAAAAABUM/Bf159aC-1QM/s1600/20130313-09-23-21-04.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-32AE0vjTE8E/UZFPtxd2ayI/AAAAAAAABUM/Bf159aC-1QM/s320/20130313-09-23-21-04.jpg" /></a></td></tr>
<tr><td class="tr-caption" colspan="2" style="text-align: center;">Pheasants in the snow</td></tr>
</tbody></table>
<br />
Bar missing some days where the SD card filled up, and a couple of occasions when for reasons unknown motion failed, the Raspberry Pi worked very nicely - despite the cold. There were a few more unexpected sightings in the last week...<br />
<a name='more'></a><br />
We're not sure where this cat lives, but we have seen it in the garden before:<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-EHqlLkMyN_Q/UZFRusvWVFI/AAAAAAAABUg/p_81nXfxAiY/s1600/20130510-15-10-07-07.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://4.bp.blogspot.com/-EHqlLkMyN_Q/UZFRusvWVFI/AAAAAAAABUg/p_81nXfxAiY/s1600/20130510-15-10-07-07.jpg" /></a></td><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-REW7iiPJmIs/UZFRuu9XrHI/AAAAAAAABUk/p5vwZJ8lNMk/s1600/20130513-14-32-04-01.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://4.bp.blogspot.com/-REW7iiPJmIs/UZFRuu9XrHI/AAAAAAAABUk/p5vwZJ8lNMk/s1600/20130513-14-32-04-01.jpg" /></a></td></tr>
<tr><td class="tr-caption" colspan="2" style="text-align: center;">Bird Hunter</td></tr>
</tbody></table>
But this was a surprise - a pair of deer (judging from the full set of images) were in our garden at dusk on Saturday! I wonder if I left the gate open or they found another way in avoiding the camera?<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-JUlbDUJAS2I/UZFTZZT6oMI/AAAAAAAABU0/0l-tZOa9ww4/s1600/20130511-21-38-07-00.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-JUlbDUJAS2I/UZFTZZT6oMI/AAAAAAAABU0/0l-tZOa9ww4/s1600/20130511-21-38-07-00.jpg" /></a></td><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-rYPD2uBwK-o/UZFTZqyC52I/AAAAAAAABU4/yGFn_MiQZWg/s1600/20130511-21-38-13-01.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-rYPD2uBwK-o/UZFTZqyC52I/AAAAAAAABU4/yGFn_MiQZWg/s1600/20130511-21-38-13-01.jpg" /></a></td></tr>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-BRYEsg2NWSY/UZFTZpt91hI/AAAAAAAABU8/ZcYj36h9aJA/s1600/20130511-21-39-26-01.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-BRYEsg2NWSY/UZFTZpt91hI/AAAAAAAABU8/ZcYj36h9aJA/s1600/20130511-21-39-26-01.jpg" /></a></td><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-2XPMeTVjR4g/UZFTae7MehI/AAAAAAAABVI/AjW8b_mIUlo/s1600/20130511-21-39-30-00.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://4.bp.blogspot.com/-2XPMeTVjR4g/UZFTae7MehI/AAAAAAAABVI/AjW8b_mIUlo/s1600/20130511-21-39-30-00.jpg" /></a></td></tr>
<tr><td class="tr-caption" colspan="2" style="text-align: center;">Venison and Bambi?</td></tr>
</tbody></table>
<br />Peter Cockhttp://www.blogger.com/profile/00233221181317137855noreply@blogger.com0tag:blogger.com,1999:blog-7275378574543326675.post-35689751701696925802013-04-13T23:42:00.000+01:002013-07-11T12:59:29.704+01:00Moving the mirror on the SkyWatcher 130MMy <a href="http://astrobeano.blogspot.co.uk/2013/02/sk1309eq2-prime-focus-canon-eos-1000d.html">SkyWatcher 130M telescope needs a little help to reach prime focus with a DSLR camera</a> (see also this <a href="http://www.alananna.co.uk/blog/2012/using-an-slr-with-a-skywatcher-explorer-130m-telescope/">great blog post</a>). So I decided to move the primary mirror up the tube to allow my Canon EOS to reach focus when attached directly to the T-ring for prime focus astrophotography. This involved almost completely dis-assemblying it, playing with new nuts and bolts, then putting it back together.<br />
<br />
I started by removing the spider and secondary mirror assembly, which are held by four recessed screws and nuts on the inside (which should not be dropped onto the primary mirror):<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-0vjjX4QfW6k/UWnbJ1Cv-9I/AAAAAAAABSo/kaOJJ18R38k/s1600/SK1309EQ2-spider-screw.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="http://2.bp.blogspot.com/-0vjjX4QfW6k/UWnbJ1Cv-9I/AAAAAAAABSo/kaOJJ18R38k/s320/SK1309EQ2-spider-screw.jpg" width="320" /></a></td><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-oB4XkYXCpVU/UWnbM82F8cI/AAAAAAAABSw/4sfdEPFhw_4/s1600/SK1309EQ2-secondary-mirror.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="http://4.bp.blogspot.com/-oB4XkYXCpVU/UWnbM82F8cI/AAAAAAAABSw/4sfdEPFhw_4/s320/SK1309EQ2-secondary-mirror.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Four screws hold the SkyWatcher 130M spider</td><td class="tr-caption" style="text-align: center;">SkyWatcher 130M (SK1309EQ2) secondary mirror</td></tr>
</tbody></table>
<br />
<a name='more'></a>By the time I finished, I realised it probably wasn't essential to remove the secondary like this, but it does make dealing with the four nuts at the other end of the tube easier! Once the four retaining screws in the curved side of the bottom piece are removed (again, taking take not to drop the nuts on the mirror), the whole mirror cell can be removed. This comes in two parts joined by the three collimation screws - separated by rubber 'O' rings (about 5mm as a pair):<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-sIP9h7MeXG0/UWnNCaPGatI/AAAAAAAABR8/sNI--vUqxV8/s1600/SK1309EQ2-mirror-ring.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="http://3.bp.blogspot.com/-sIP9h7MeXG0/UWnNCaPGatI/AAAAAAAABR8/sNI--vUqxV8/s320/SK1309EQ2-mirror-ring.jpg" width="320" /></a></td><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-mO65_RyxJ1s/UWnNB8wRTPI/AAAAAAAABR4/aq5iR8dTcgM/s1600/SK1309EQ2-mirror.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="http://1.bp.blogspot.com/-mO65_RyxJ1s/UWnNB8wRTPI/AAAAAAAABR4/aq5iR8dTcgM/s320/SK1309EQ2-mirror.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">SkyWatcher 130M (SK1309EQ2) ring for primary mirror,<br />
showing one of four tube attachment holes (top left)<br />
and one of three flanges for collimation screws</td><td class="tr-caption" style="text-align: center;">SkyWatcher 130M (SK1309EQ2) primary mirror,<br />
showing one of three mirror clips (right) and<br />
one of three collimation screws & locking screws</td></tr>
</tbody></table>
<br />
I'd intended to follow the method on this thread <a href="http://stargazerslounge.com/topic/162294-sw-explorer-130-primary-mirror-removal/">moving the mirror of the SkyWatcher 130P</a>, replacing the collimation screws with longer bolts, and the rubber 'O' rings with 2cm long compression springs (specifically the <a href="http://www.strutsdirect.co.uk/components/product_info_springs_sc.php/cPath/55_81/products_id/221">SC229 springs from www.strutdirect.co.uk</a>). However, once I'd taken it apart I realised the SkyWatcher 130M has a differently mounted mirror.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-p4FW6FYo1cY/Ud6dWvnTR7I/AAAAAAAABbM/LTh-AUQ90l0/s1600/skywatcher_130p_mirror_modification.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-p4FW6FYo1cY/Ud6dWvnTR7I/AAAAAAAABbM/LTh-AUQ90l0/s1600/skywatcher_130p_mirror_modification.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">SkyWatcher 130P primary mirror modification<br />(<a href="http://stargazerslounge.com/topic/10503-going-to-mod-my-skywatcher-130p/#entry108623">image originally posted by <i>geppetto</i></a>)</td></tr>
</tbody></table>
<br />
Here is my schematic of the original arrangement (left) and how I moved the mirror up the tube (right) by about 3cm. The basic idea is to put the mirror mounting plate (shown in blue) above the mounting ring (shown in green), allowing enough room for the four nuts used to attach the ring to the main tube:<br />
<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-55iZMqjjIHo/UWm0nKKX4vI/AAAAAAAABRk/O0b5R2990Xk/s1600/SK1309EQ2-mirror-before.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="229" src="http://3.bp.blogspot.com/-55iZMqjjIHo/UWm0nKKX4vI/AAAAAAAABRk/O0b5R2990Xk/s320/SK1309EQ2-mirror-before.png" width="320" /></a></td><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-Cfn_IrBaUo8/UWm0mF6eQ-I/AAAAAAAABRg/CanHSc4wtzo/s1600/SK1309EQ2-mirror-after.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="229" src="http://1.bp.blogspot.com/-Cfn_IrBaUo8/UWm0mF6eQ-I/AAAAAAAABRg/CanHSc4wtzo/s320/SK1309EQ2-mirror-after.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Diagram showing SkyWatcher 130M (SK1309EQ2)<br />
primary mirror attachment.</td><td class="tr-caption" style="text-align: center;">Diagram showing modified SkyWatcher 130M<br />
primary mirror attachment, moving it about 3cm</td></tr>
</tbody></table>
<br />
The collimation screws' holes in the mounting plate are not threaded (although the neighbouring lock screws do have threaded holes), so I have put washers either side of this in the hope that when I turn the new longer collimation screw (35mm M5 thread) in the threaded hole on the flange of the mounting ring this will move the mirror. We shall see.<br />
<br />
Simply reusing the existing rubber 'O' rings seems to work (they are glued onto the flange so must be carefully peeled off in order to use them on the other side of the flange). A very short spring might work instead...<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="http://4.bp.blogspot.com/-2-ZXINqUemE/UWnXNkhH79I/AAAAAAAABSg/UB_HFsdxWA4/s1600/SK1309EQ2-ring-mod.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="http://4.bp.blogspot.com/-2-ZXINqUemE/UWnXNkhH79I/AAAAAAAABSg/UB_HFsdxWA4/s320/SK1309EQ2-ring-mod.jpg" width="320" /></a></td><td><a href="http://1.bp.blogspot.com/-bo1vda-yDzM/UWnTiznoHMI/AAAAAAAABSA/LnoytMsmFmU/s1600/SK1309EQ2-mirror-cell-filed.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="http://1.bp.blogspot.com/-bo1vda-yDzM/UWnTiznoHMI/AAAAAAAABSA/LnoytMsmFmU/s320/SK1309EQ2-mirror-cell-filed.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption">Replacement collimation screw with rubber 'O' ring,<br />
nut and washer ready for the mirror plate...</td><td class="tr-caption">Reassembled mirror cell post modification,<br />
filing by yellow tape aligns to the main tube's seam.</td></tr>
</tbody></table>
<br />
As my diagram tried to suggest, it is a pretty tight fit to get the mirror's mount disk inside the main tube. I had to file it down 1mm or so in places, and more at the seam of the tube. You can see this as the shiny edge in the photo above by the yellow marker tape - I may need some mat-black paint to cover this. Despite this, there is now a lot more light leaking into the end of the tube - a new cover might help?<br />
<br />
And here's an exterior shot of the reassembled telescope tube - having moved the mirror like this makes it really quite easy to place the four nuts and bolts, but they do restrict the mirror placement - I've had to move it higher than I originally intended.<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-iEThnbjbsY4/UWnWIKjryJI/AAAAAAAABSQ/7X1Zc7HvZzc/s1600/SK1309EQ-mirror-before.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://4.bp.blogspot.com/-iEThnbjbsY4/UWnWIKjryJI/AAAAAAAABSQ/7X1Zc7HvZzc/s320/SK1309EQ-mirror-before.jpg" width="240" /></a></td><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-pc5pyQLkw_g/UWnWU3tleYI/AAAAAAAABSY/iidq364So9I/s1600/SK1309EQ2-mirror-moved-close-up.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://2.bp.blogspot.com/-pc5pyQLkw_g/UWnWU3tleYI/AAAAAAAABSY/iidq364So9I/s320/SK1309EQ2-mirror-moved-close-up.jpg" width="240" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">SkyWatcher 130M before modification,<br />
note the plate is flush with the ring.</td><td class="tr-caption" style="text-align: center;">SkyWatcher 130M after modification,<br />
note you can reach the ring nuts etc.</td></tr>
</tbody></table>
<br />
You might notice that I've left the old collimation lock screws in place - I'm intending to try using them like this with fingers/pliers to turn them. It might work?<br />
<br />
If this alternative mounting doesn't work that well in practise, I'm now less nervous about the simpler option of simply cutting an inch off the end of the tube itself. With a suitable saw I think that would actually be more straightforward (but irreversible).<br />
<br />
I'm waiting for a clear night to test this out, and attempt to <a href="http://www.astro-baby.com/collimation/astro%20babys%20collimation%20guide.htm">re-collimate the telescope</a>. Fingers crossed for some nice <a href="http://astrobeano.blogspot.co.uk/search/label/Astrophotography">astrophotography</a> results with my <a href="http://astrobeano.blogspot.co.uk/search/label/Canon%20EOS">Canon EOS DSLR</a> directly attached. From some daylight testing it does seem like I will need an extension tube for some of my eyepieces now - I really should have ordered one before.<br />
<br />
I'll direct any discussion to <a href="http://stargazerslounge.com/topic/183322-moving-the-skywatcher-130m-primary-mirror-up/">this thread on the StarGazersLounge.com forum</a>.<br />
<br />
<b><u>Update (21 April)</u></b><br />
<br />
I did get a chance to test the initial modification, and took a couple of photos of the Moon and Jupiter, but it was too windy to really examine the performance on stars. Comments on the <a href="http://stargazerslounge.com/topic/183322-moving-the-skywatcher-130m-primary-mirror-up/">this thread</a> reinforced my worry about too many moving parts with the extra nuts, so I'm trying out an alternative arrangement using springs. The trick here is I've cut a slot into the end of the bolts which can then be turned from the outside with a flat screwdriver for collimation adjustments.<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-55iZMqjjIHo/UWm0nKKX4vI/AAAAAAAABRk/O0b5R2990Xk/s1600/SK1309EQ2-mirror-before.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="229" src="http://3.bp.blogspot.com/-55iZMqjjIHo/UWm0nKKX4vI/AAAAAAAABRk/O0b5R2990Xk/s320/SK1309EQ2-mirror-before.png" width="320" /></a></td><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-tG9bMAs1O6k/UXPdamWF2MI/AAAAAAAABTA/hqRw3EYWuoM/s1600/SK1309EQ2-mirror-spring.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="229" src="http://4.bp.blogspot.com/-tG9bMAs1O6k/UXPdamWF2MI/AAAAAAAABTA/hqRw3EYWuoM/s320/SK1309EQ2-mirror-spring.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Diagram showing SkyWatcher 130M (SK1309EQ2)<br />
primary mirror attachment (pre-modification)</td><td class="tr-caption" style="text-align: center;">Diagram of SkyWatcher 130M using springs for<br />
primary mirror attachment, moving it just over 3cm</td></tr>
</tbody></table>
Since I'd already bought them, I am using the <a href="http://www.strutsdirect.co.uk/components/product_info_springs_sc.php/cPath/55_81/products_id/221">SC229 springs from www.strutdirect.co.uk</a> (as recommend for <a href="http://stargazerslounge.com/topic/162294-sw-explorer-130-primary-mirror-removal/">moving the mirror of the SkyWatcher 130P</a>), but they are a little long for this setup in the SkyWatcher 130M. Maybe I don't need all the washers, but as shown the mirror is a few millimetres higher still.<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-pc5pyQLkw_g/UWnWU3tleYI/AAAAAAAABSY/iidq364So9I/s1600/SK1309EQ2-mirror-moved-close-up.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://2.bp.blogspot.com/-pc5pyQLkw_g/UWnWU3tleYI/AAAAAAAABSY/iidq364So9I/s320/SK1309EQ2-mirror-moved-close-up.jpg" width="240" /></a></td><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-BWk-jT6HvL0/UXPiOR7lx2I/AAAAAAAABTI/UoT4H_lPqZY/s1600/2013-04-21+13.10.34.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://2.bp.blogspot.com/-BWk-jT6HvL0/UXPiOR7lx2I/AAAAAAAABTI/UoT4H_lPqZY/s320/2013-04-21+13.10.34.jpg" width="240" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Original SkyWatcher 130M modification<br />
re-using the rubber 'O' rings for the mirror</td><td class="tr-caption" style="text-align: center;">Revised SkyWatcher 130M modification<br />
using springs to mount the mirror</td></tr>
</tbody></table>
<br />
<div>
Again, please post any discussion on <a href="http://stargazerslounge.com/topic/183322-moving-the-skywatcher-130m-primary-mirror-up/">this thread on the StarGazersLounge.com forum</a>.</div>
Peter Cockhttp://www.blogger.com/profile/00233221181317137855noreply@blogger.com7tag:blogger.com,1999:blog-7275378574543326675.post-77773558792264575802013-03-30T15:14:00.001+00:002013-03-31T16:12:38.249+01:00Installing Canon EOS Utility on Mac without the CDMy second hand Canon EOS 1000D has arrived (intended for <a href="http://astrobeano.blogspot.co.uk/2013/02/sk1309eq2-prime-focus-canon-eos-1000d-take2.html">astrophotography</a>), but without the manual or software CD. Canon provide this stuff to download on their website which is great, except that the software is intended only to update an existing installation originally made from the CD-ROM. That seems stupid on many levels - the only people interested in using this software will have a Canon camera. Practically speaking, I have neither the Canon CD-ROM, nor in fact even a CD-ROM drive. Apple don't believe in them any more ;)<br />
<br />
Fortunately enterprising people have worked out how to hack the Canon software to install without the CD-ROM, both on Windows (e.g. <a href="http://paulclarke.com/photography/blog/how-to-install-canon-eos-utility-from-the-web/">here</a>) and on Mac OS X. Canon don't support Linux.<br />
<a name='more'></a>The <a href="http://www.canon.co.uk/Support/Consumer_Products/products/cameras/Digital_SLR/EOS_1000D.aspx?type=download&page=1">Canon EOS 1000D downloads</a> page for Mac OS X 10.8 currently offers <i>EOS Utility 2.12.3 Updater for Mac OS X</i> (filename <span style="font-family: Courier New, Courier, monospace;">eu2.12.3x-updater.dmg.zip</span>), but the tricks I found documented online to install this without the CD-ROM failed. Therefore we need to start with an older version which can be fooled.<br />
<div>
<br /></div>
<div>
There is a trick <a href="http://www.dmertl.com/blog/?p=41">here</a> (deleting file <span style="font-family: Courier New, Courier, monospace;">Info.datx</span> file) credited to FrancoisG for version 2.11.4 (filename <span style="font-family: Courier New, Courier, monospace;">EU211.4x-updater.dmg</span>). I couldn't find that on the Canon websites anymore - it is listed on the Canon Asia site, <a href="http://support-id.canon-asia.com/contents/ID/EN/0200211902.html">Canon EOS Utility 2.11.4 Updater for Mac OS X</a>, but the download link is broken. However I could find version 2.10 on the Canon UK site, and the hack <a href="http://www.dmertl.com/blog/?p=41">here</a> for version 2.9 still works.<br />
<br />
<div>
Here's what I did to get v2.10 installed:</div>
<div>
<ol>
<li>Download <i>EOS Utility 2.10.2 Updater for Mac OS X</i>, intended for Mac OS X 10.5 upwards but not 10.8 (filename <span style="font-family: Courier New, Courier, monospace;">eu2102x.dmg.zip</span>).</li>
<li>Decompress the zip file by double clicking on it to extract the disk image, <span style="font-family: Courier New, Courier, monospace;">eu2102x.dmg</span></li>
<li>Mount the disk image by double clicking it, then drag <span style="font-family: Courier New, Courier, monospace;">UpdateInstaller.app</span> to your downloads folder.</li>
<li>Right click on your copy of the installer app and select <i>Show Package Contents</i>, open folder "Contents", "Resources".</li>
<li>Right click on the <span style="font-family: Courier New, Courier, monospace;">SDI.bundle</span> and select <i>Show Package Contents</i>, open folder "Contents", "Resources".</li>
<li>Delete the <span style="font-family: Courier New, Courier, monospace;">update.plist</span> file and return to the downloads folder.</li>
<li>Run the modified installer application. It will ask for the administrator password.</li>
<li>Try to run the <i>EOS Utility</i> app, it will complain "Alert: Cannot be used with this version of the operating system"</li>
</ol>
</div>
<div>
Now, to update it:<br />
<ol>
<li>Download <i>EOS Utility 2.12.3 Updater for Mac OS X</i> (filename <span style="font-family: Courier New, Courier, monospace;">eu2.12.3x-updater.dmg.zip</span>)</li>
<li>Decompress the zip file by double clicking on it to extract the disk image, <span style="font-family: 'Courier New', Courier, monospace;">eu2.12.3x-updater.dmg</span></li>
<li>Mount the disk image by double clicking it</li>
<li>Run the updater, <span style="font-family: Courier New, Courier, monospace;">eu2.12.3x_updater.app</span>, again it will ask for the administrator password, and this time it asked to restart the computer as well.</li>
</ol>
Now to test it:<br />
<ol>
<li>Run the <i>EOS Utility</i> app.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-Y4yXHYAu_nM/UVbz_Csp8BI/AAAAAAAABQ4/EPFYyprvYo4/s1600/Canon+EOS+Utility+2.12.3+main.png" imageanchor="1" style="clear: left; margin-bottom: 1em;"><img border="0" height="255" src="http://3.bp.blogspot.com/-Y4yXHYAu_nM/UVbz_Csp8BI/AAAAAAAABQ4/EPFYyprvYo4/s320/Canon+EOS+Utility+2.12.3+main.png" width="320" /></a></div>
</li>
<li>Check the version via the main menu.
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-XU2cGu1Tl9U/UVbz_Acqg2I/AAAAAAAABQw/BKJ19QGfgQk/s1600/Canon+EOS+Utility+2.12.3+about.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" src="http://2.bp.blogspot.com/-XU2cGu1Tl9U/UVbz_Acqg2I/AAAAAAAABQw/BKJ19QGfgQk/s1600/Canon+EOS+Utility+2.12.3+about.png" /></a></div>
</li>
<li>Connect the camera via the USB cable, and turn on the camera.</li>
<li>Click on "<i>Camera settings/Remote shooting</i>", and a tall this window appears - quite what all the icons mean is not immediately obvious, nor the counter.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-cJBbf4oyjdk/UVb2B4kx4rI/AAAAAAAABRA/lT-iKbl7KFE/s1600/Canon+EOS+Utility+Camera+settings+Remote+shooting.png" imageanchor="1" style="clear: left; display: inline !important; margin-bottom: 1em; margin-right: 1em; text-align: center;"><img border="0" height="320" src="http://4.bp.blogspot.com/-cJBbf4oyjdk/UVb2B4kx4rI/AAAAAAAABRA/lT-iKbl7KFE/s320/Canon+EOS+Utility+Camera+settings+Remote+shooting.png" width="124" /></a></div>
</li>
<li>On the main menu, I tried "Tool", "Test shooting ..." (Alt+Apple+S), which opened a new window and caused the camera flash to open and take a photo.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-wh5wVZJlqk4/UVb2FqpkPLI/AAAAAAAABRI/crbCaPLjFzc/s1600/Canon+EOS+Utility+Test+Shooting.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="273" src="http://4.bp.blogspot.com/-wh5wVZJlqk4/UVb2FqpkPLI/AAAAAAAABRI/crbCaPLjFzc/s320/Canon+EOS+Utility+Test+Shooting.png" width="320" /></a></div>
</li>
<li>Next, I guessed that the round button on the top left of the remote shooting window was a remote shutter button.</li>
</ol>
There does not seem to be any help file included with the application which is disappointing, but I later realised there was an out of date PDF manual <i>EOS Utility 2.11 for Macintosh Instruction Manual</i> on the <a href="http://www.canon.co.uk/Support/Consumer_Products/products/cameras/Digital_SLR/EOS_1000D.aspx?type=download&page=1">Canon 1000D website</a>. I find it bizarre that Canon don't bundle this with the software.<br />
<br />
<b>Tip:</b> The buttons shown in this application depend on the camera mode, use the ring dial to change this. In full auto mode (green square on the dial) then the yellow tool icon on the "<i>Camera settings/Remote shooting</i>" window is disabled.<br />
<br />
<b><u>Firmware Update</u></b><br />
<br />
<br />
One of the reasons to install the <i>EOS Utility</i> is to update the camera's firmware - mine had v1.0.3 while the <a href="http://web.canon.jp/imaging/eosd/firm-e/eosdigital5/firmware.html">current Canon EOS 1000D firmware is v1.0.7</a> (oddly this wasn't on the Canon UK website). I've not done this yet as you need a spare SD card which will be reformatted.<br />
<div>
<br /></div>
<br />
<b><u>Shutter Count</u></b><br />
<br />
I couldn't find the shutter count via the <i>EOS Utility</i>, but the simple free app <a href="http://astrojargon.net/40dshuttercount.aspx">40D Shutter Count</a> seems to work and apparently when I got it my Canon EOS 1000D had taken only 7790 photos - so should have lots of life left in it.<br />
<br /></div>
</div>
Peter Cockhttp://www.blogger.com/profile/00233221181317137855noreply@blogger.com3tag:blogger.com,1999:blog-7275378574543326675.post-82672828820115707422013-03-09T20:38:00.002+00:002013-05-13T22:02:26.119+01:00Raspberry Pi motion sensitive Trail-CamMy <a href="http://astrobeano.blogspot.co.uk/2013/01/raspberry-pi-down-garden.html">Raspberry Pi at the bottom of the garden</a> is now monitoring an unmodified XBox webcam pointing at a fence break, rather than the <a href="http://astrobeano.blogspot.co.uk/2013/02/mouse-recorded-by-raspberry-pi-compost.html">mice visiting the compost heap</a>. This uses the <a href="http://motion.sourceforge.net/">Motion software</a> to hopefully catch anything walking past - like the pheasants I've seen using this route.<br />
<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-YX9kmvVHGqs/UTuYOdBDWbI/AAAAAAAABQI/sGRvXTSwgso/s1600/20130301-09-44-27-03-pheasant.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-YX9kmvVHGqs/UTuYOdBDWbI/AAAAAAAABQI/sGRvXTSwgso/s1600/20130301-09-44-27-03-pheasant.jpg" /></a></td><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-mBXdKtLyDPI/UTuWpZLJzVI/AAAAAAAABPg/3eiCnXFe_Oc/s1600/20130301-08-45-20-04-pheasant.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-mBXdKtLyDPI/UTuWpZLJzVI/AAAAAAAABPg/3eiCnXFe_Oc/s1600/20130301-08-45-20-04-pheasant.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Mr. Pheasant</td><td class="tr-caption" style="text-align: center;">Mr. Pheasant and two wives in two</td></tr>
</tbody></table>
<br />
<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-wbNsDVOjvyc/UTuW5mxxpcI/AAAAAAAABPo/EIqWqjW6mRo/s1600/20130301-09-46-56-11-pheasant.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-wbNsDVOjvyc/UTuW5mxxpcI/AAAAAAAABPo/EIqWqjW6mRo/s1600/20130301-09-46-56-11-pheasant.jpg" /></a></td><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-UlYw_mqwddc/UTuYyuIoSKI/AAAAAAAABQQ/4f-8i4pS5KE/s1600/20130306-10-18-03-02-pheasant.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-UlYw_mqwddc/UTuYyuIoSKI/AAAAAAAABQQ/4f-8i4pS5KE/s1600/20130306-10-18-03-02-pheasant.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Pheasant on a sunny day</td><td class="tr-caption" style="text-align: center;">Quite a regular visitor</td></tr>
</tbody></table>
<br />
While most of the images so far have been of pheasants, there were a few surprises too.<br />
<a name='more'></a><br />
<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-O7GZjC5PcNI/UTuXO6Lu_4I/AAAAAAAABPw/R-1BF7xxMjA/s1600/20130303-12-39-44-18-bird.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://4.bp.blogspot.com/-O7GZjC5PcNI/UTuXO6Lu_4I/AAAAAAAABPw/R-1BF7xxMjA/s1600/20130303-12-39-44-18-bird.jpg" /></a></td><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-AE5fFWGWv9Y/UTuXkkDR1cI/AAAAAAAABP4/WvHC6A58w9g/s1600/20130303-11-35-09-13-horse.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-AE5fFWGWv9Y/UTuXkkDR1cI/AAAAAAAABP4/WvHC6A58w9g/s1600/20130303-11-35-09-13-horse.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Action shot! A sparrow?</td><td class="tr-caption" style="text-align: center;">Horses - wasn't expecting that!</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-bLsYIKvI7Sw/UTuXzpt7IkI/AAAAAAAABQA/rBgcgJTUatM/s1600/20130305-10-42-02-04-black-bird.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://4.bp.blogspot.com/-bLsYIKvI7Sw/UTuXzpt7IkI/AAAAAAAABQA/rBgcgJTUatM/s1600/20130305-10-42-02-04-black-bird.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A black-bird on the wing</td></tr>
</tbody></table>
<br />
<br />
Here's a shot of the <a href="http://astrobeano.blogspot.co.uk/2013/02/mouse-recorded-by-raspberry-pi-compost.html">compost-cam</a> and the replacement XBox trail-cam with the crude wooden shelter I built to keep off the worst of the weather. The camera is connected to my <a href="http://astrobeano.blogspot.co.uk/2013/01/raspberry-pi-down-garden.html">Raspberry Pi in the garden</a> running Motion, monitoring a second camera in a bird box.<br />
<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-sC50QF3AxIU/UTubD-aW3iI/AAAAAAAABQY/W0yoJfbvDtI/s1600/compost-cam.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-sC50QF3AxIU/UTubD-aW3iI/AAAAAAAABQY/W0yoJfbvDtI/s320/compost-cam.jpeg" height="320" width="240" /></a></td><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-Sv5SI2kbiQs/UTubIFNV8jI/AAAAAAAABQg/zCIKwYDsUOY/s1600/trail-cam.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-Sv5SI2kbiQs/UTubIFNV8jI/AAAAAAAABQg/zCIKwYDsUOY/s320/trail-cam.jpeg" height="320" width="240" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Compost-cam<br />
(modified Xbox Live Vision with IR LEDs)</td><td class="tr-caption" style="text-align: center;">Trail-cam<br />
(Unmodified Xbox Live Vision)</td></tr>
</tbody></table>
<u><b><i>Update</i></b></u>: Here's a <a href="http://astrobeano.blogspot.co.uk/2013/05/raspberry-pi-trail-cam-update.html">photo round up for the following two months</a>.Peter Cockhttp://www.blogger.com/profile/00233221181317137855noreply@blogger.com1tag:blogger.com,1999:blog-7275378574543326675.post-45033044376420802772013-03-05T17:24:00.000+00:002013-03-07T09:46:18.675+00:00PS3 Eye Camera for astrophotographyI was inspired to try out the PlayStation 3 Eye camera for astrophotogaphy after seeing this amazing <a href="http://stargazerslounge.com/topic/81464-webcam-orion-nebulawip/">Orion M42 nebula image taken using a PS3 webcam on a SkyWatcher 130P</a> (an hours worth of 4s exposures and a lot of post processing). Here's another nice thread on <a href="http://stargazerslounge.com/topic/162102-ps3-webcam-arrived/">using the PlayStation 3 Eye camera with a telescope</a>. It's reported to use an <a href="http://image-sensors-world.blogspot.co.uk/2010/10/omnivision-vga-sensor-inside-sony-eye.html">OV7725 60fps 6um pixel VGA sensor and image processor from Omnivision</a>.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-uuhuyYr9Z7I/UTOXNvu8EPI/AAAAAAAABN4/xGy3UeJqqvs/s1600/PS3-Eye-mod-for-telescope.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="233" src="http://2.bp.blogspot.com/-uuhuyYr9Z7I/UTOXNvu8EPI/AAAAAAAABN4/xGy3UeJqqvs/s320/PS3-Eye-mod-for-telescope.jpeg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">PS3 Eye webcam with standard lens removed and replaced<br />
with 1.25" telescope nose piece, with threaded IR filter</td></tr>
</tbody></table>
<br />
Actual test images pending - I need a clear night without other commitments.<br />
<a name='more'></a><br />
<br />
<b><u>Opening the case</u></b><br />
<br />
This is surprisingly tricky. First, there are four screws on the back hidden behind glued on covers, which must be removed. Then the hard part - using a flat screwdriver or two, pop the seam all the way round. The main rectangular part of the casing is held by three clips (marked) which are quite easy, but there ball part is held by a pair of strong clips (also marked). This <a href="http://vimeo.com/2939528">video from Peau Productions</a> helped, but have a look at the full sized version of the images here to understand where the clips you are aiming for are.<br />
<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-_ZA7gl46yVY/UTOil4yekzI/AAAAAAAABOs/FDHUVJSBA2s/s1600/PS3-Eye-expose-screws.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="213" src="http://2.bp.blogspot.com/-_ZA7gl46yVY/UTOil4yekzI/AAAAAAAABOs/FDHUVJSBA2s/s320/PS3-Eye-expose-screws.jpeg" width="320" /></a></td><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-Yrs5zgSF2ec/UTOj4M77_GI/AAAAAAAABOw/SBpzFDbwvsU/s1600/PS3-Eye-case-back-annot.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="204" src="http://1.bp.blogspot.com/-Yrs5zgSF2ec/UTOj4M77_GI/AAAAAAAABOw/SBpzFDbwvsU/s320/PS3-Eye-case-back-annot.jpeg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Back of PS3 Eye with screw covers removed.</td><td class="tr-caption" style="text-align: center;">Back casing, highlighting three easy clips (blue),<br />
and the two difficult clips (yellow) </td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-lBcQMRdDDBI/UTOmuYMM4lI/AAAAAAAABPA/ygtNF1Fjops/s1600/PS3-Eye-case-opened-annot.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://1.bp.blogspot.com/-lBcQMRdDDBI/UTOmuYMM4lI/AAAAAAAABPA/ygtNF1Fjops/s320/PS3-Eye-case-opened-annot.jpg" width="302" /></a></td><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-1ftOLadKs6s/UTOmp14IZvI/AAAAAAAABO4/jdcmhYhn1XQ/s1600/PS3-Eye-stand-removed.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://2.bp.blogspot.com/-1ftOLadKs6s/UTOmp14IZvI/AAAAAAAABO4/jdcmhYhn1XQ/s320/PS3-Eye-stand-removed.jpeg" width="284" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">PS3 Eye opened, showing easily broken catches (blue)<br />
and one of the two difficult ones to open (yellow)</td><td class="tr-caption" style="text-align: center;">PS3 Eye opened with stand removed,<br />
held by two screws.</td></tr>
</tbody></table>
<br />
Once the back of the case is removed, the base is easily freed by removing another pair of screws. I decided for telescope use to remove the heavy flat foot - but the screw holding this on didn't unscrew. In the end I used a hacksaw to free this - and once reassembled covered the slot with insulating tape.<br />
<br />
Now just two screws must be removed to free the board, the most left and most right. Don't remove the lens holder unless you need to (in case you get it dirty), and likewise there is no point removing the microphone cover (held by three screws).<br />
<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-XI9oUQdT-lI/UTOe2i_ACoI/AAAAAAAABOY/FYJwBxXD9R8/s1600/PS3-Eye-PCB-back.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="235" src="http://2.bp.blogspot.com/-XI9oUQdT-lI/UTOe2i_ACoI/AAAAAAAABOY/FYJwBxXD9R8/s320/PS3-Eye-PCB-back.jpeg" width="320" /></a></td><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-xS3pZiOHJkU/UTOhF6c3szI/AAAAAAAABOg/nOwzP7CTJig/s1600/PS3-Eye-without-case.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="245" src="http://3.bp.blogspot.com/-xS3pZiOHJkU/UTOhF6c3szI/AAAAAAAABOg/nOwzP7CTJig/s320/PS3-Eye-without-case.jpeg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Back of PS3 Eye PCB. Note the central OV0538 USB chip.<br />
The two pair of screws hold the lens mount.<br />
The bottom row of three screws hold the microphone cover.<br />
The far left and right screws (removed) hold it in the case</td><td class="tr-caption" style="text-align: center;">Front of PS3 Eye PCB with lens mount attached.<br />
Across the top of there are four microphones<br />
(under a protective shell held by three screws).<br />
The left LED is red (active), the right blue (power).</td></tr>
</tbody></table>
<br />
<b><u>Telescope mounting</u></b><br />
<br />
Thanks to other bloggers like <a href="http://astropetros.com/wp/?p=206">this one</a>, I knew there was a standard M12 board lens holder into which a ready made 1.25" nosepiece should screw in for use with a telescope. I also knew from post like this that least <a href="http://nuigroup.com/forums/viewthread/5189/">two variants of the PS3 Eye camera's lens and IR filter</a>, often with lots of glue making disassembly hard.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-hexhap0ug8o/UTOeyIki1nI/AAAAAAAABOQ/evT7us7tPe4/s1600/PS3-Eye-PCB-and-sensor.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="189" src="http://4.bp.blogspot.com/-hexhap0ug8o/UTOeyIki1nI/AAAAAAAABOQ/evT7us7tPe4/s320/PS3-Eye-PCB-and-sensor.jpeg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Front of PS3 Eye PCB with lens mount removed,<br />
exposing the image sensor (bottom).</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-AAjDnZ3TLqY/UTOYP00p_rI/AAAAAAAABOE/ftW0JVRJYnk/s1600/PS3-eye-lens.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" src="http://1.bp.blogspot.com/-AAjDnZ3TLqY/UTOYP00p_rI/AAAAAAAABOE/ftW0JVRJYnk/s200/PS3-eye-lens.jpeg" width="200" /></a></td>
<td style="text-align: center;"><a href="http://3.bp.blogspot.com/-TknMWo0JByA/UTOba_5LQDI/AAAAAAAABOM/0txTCsQHg1A/s1600/PS3-Eye-red-glass-IR.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" src="http://3.bp.blogspot.com/-TknMWo0JByA/UTOba_5LQDI/AAAAAAAABOM/0txTCsQHg1A/s200/PS3-Eye-red-glass-IR.jpeg" width="199" /></a></td></tr>
<tr><td class="tr-caption" colspan="2" style="text-align: center;">PS3 Eye Lens and mount with red glass IR filter at base</td></tr>
</tbody></table>
Mine turned out to have the lens glued into the holder, so I simply unscrewed the mount and replaced it with the lens holder from a spare <a href="http://astrobeano.blogspot.co.uk/search/label/Xbox%20Live%20Vision">Xbox Live Vision</a> webcam instead. Note that the PS3 mount has two small legs on opposite corners (with holes in the PCB to match), while the Xbox mount has two small legs on the non-screw sides. I just cut these off, so the mount is only held by the two screws. This made reattaching it a little harder, but shouldn't affect the stability.<br />
<br />
Luckily this worked nicely with my existing 1.25" Astro Engineering AC378 nose-piece adapter, without having to cut away any of the PS3 Eye's casing. For a shorter height M12 board lens mount used, you may need a hacksaw to modify the case.<br />
<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-txidRgkDDpc/UTPO6eUJvNI/AAAAAAAABPQ/7QGvKpbcmVM/s1600/PS3-Eye-modified.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="233" src="http://4.bp.blogspot.com/-txidRgkDDpc/UTPO6eUJvNI/AAAAAAAABPQ/7QGvKpbcmVM/s233/PS3-Eye-modified.jpeg" width="204" /></a></td><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-uuhuyYr9Z7I/UTOXNvu8EPI/AAAAAAAABN4/xGy3UeJqqvs/s1600/PS3-Eye-mod-for-telescope.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="233" src="http://2.bp.blogspot.com/-uuhuyYr9Z7I/UTOXNvu8EPI/AAAAAAAABN4/xGy3UeJqqvs/s320/PS3-Eye-mod-for-telescope.jpeg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Modified PS3 Eye, with dust cap,<br />
and removed lens parts and foot</td><td class="tr-caption" style="text-align: center;">PS3 Eye webcam with standard lens removed and replaced<br />
with 1.25" telescope nose piece, with threaded IR filter</td></tr>
</tbody></table>
<br />
I've not shown the front casing and how to remove the original twisting lens covering (quite a clever design - the lens itself has a twist action for a wide-angle and zoom setting). The outer lens casing is retained via four clips - I removed it by bending one clip at a time and holding them open with small jewellers' screwdrivers as a wedge. This was a bit fiddly, so if you don't need this part a little force could just break these clips.<br />
<div>
<br /></div>
<br />
<b><u>Windows Drivers</u></b><br />
<br />
There is company doing <a href="http://codelaboratories.com/downloads">Windows PS3 Eye drivers</a>, but as I don't have a Windows machine at home anymore I didn't explore this.<br />
<br />
<br />
<b><u>No joy under Mac OS X</u></b><br />
<br />
Video for the PS3 Eye does not work out of the box on Mac OS X "Mountain Lion" 10.8, but the microphone does. Here's what it says at the command line:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">$ system_profiler SPUSBDataType</span><br />
<span style="font-family: Courier New, Courier, monospace;">...</span><br />
<span style="font-family: Courier New, Courier, monospace;"><br /></span>
<span style="font-family: Courier New, Courier, monospace;"> USB Camera-B4.04.27.1:</span><br />
<span style="font-family: Courier New, Courier, monospace;"><br /></span>
<span style="font-family: Courier New, Courier, monospace;"> Product ID: 0x2000</span><br />
<span style="font-family: Courier New, Courier, monospace;"> Vendor ID: 0x1415</span><br />
<span style="font-family: Courier New, Courier, monospace;"> Version: 1.00</span><br />
<span style="font-family: Courier New, Courier, monospace;"> Speed: Up to 480 Mb/sec</span><br />
<span style="font-family: Courier New, Courier, monospace;"> Manufacturer: OmniVision Technologies, Inc.</span><br />
<span style="font-family: Courier New, Courier, monospace;"> Location ID: 0xfa130000 / 6</span><br />
<span style="font-family: Courier New, Courier, monospace;"> Current Available (mA): 500</span><br />
<span style="font-family: Courier New, Courier, monospace;"> Current Required (mA): 500</span><br />
<br />
According to these guys' <a href="http://codelaboratories.com/research/view/ps3-eye-disassembly">detailed tear-down</a>, that version string <span style="font-family: Courier New, Courier, monospace;">B4.04.27.1</span> matches this being a newer version with the OV538 USB chip (see photo above, unlike the older B3.04.06.1 with an OV534 chip). The serial number on the base is S/N 8X0066138, and says it is a SLEH-00201 manufactured by Namtai for Sony.<br />
<br />
So, driver time - this should work with the <a href="http://webcam-osx.sourceforge.net/cameras/camera.php?id=626">Macam PS3 Eye driver</a>, although they do warn about high bandwidth needs. I tried both macam.0.9.2.dmg (the current release), and the latest development build <a href="https://sourceforge.net/projects/webcam-osx/files/cvs-build/2009-09-25/">macam-cvs-build-2009-09-25.zip</a> (several years old - not a good sign for the project's health), and while they could capture still images at VGA resolution (640 x 480 pixels), there was no live video and when trying to record video the <a href="https://sourceforge.net/tracker/index.php?func=detail&aid=3485862&group_id=44375&atid=439342">PS3 Eye made the macam app crash</a>.<br />
<br />
This rules out using my nice light Mac laptop with the telescope and this camera :(<br />
<br />
<br />
<u><b>Linux Support OK</b></u><br />
<br />
Linux includes drivers so this is very easy - it just works. However, on an older kernels the drivers are less functional (e.g. no choice of resolution or frame rate). The PS3 Eye camera even worked out of the box with Skype.<br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">$ lsusb</span><br />
<span style="font-family: "Courier New",Courier,monospace;">... ID 1415:2000 Nam Tai E&E Products Ltd. or OmniVision Technologies, Inc. Sony Playstation Eye</span><br />
<br />
However, <a href="http://tech.groups.yahoo.com/group/wxAstroCapture/message/2048">wxAstroCapture didn't seen to recognise it</a>. For now using <a href="http://guvcview.sourceforge.net/">guvcview</a> gives some promising results in terms of control over gain/exposure.<br />
<br />
<br />
<b><u>Testing</u></b><br />
<br />
Waiting for clear skies on a free evening... I'll update this post later.<br />
<br />
The PS3 Eye's USB cable is almost exactly 2m long, quite useful for connecting a laptop to a camera on your telescope.Peter Cockhttp://www.blogger.com/profile/00233221181317137855noreply@blogger.com4tag:blogger.com,1999:blog-7275378574543326675.post-64203383601096465962013-02-28T00:26:00.001+00:002013-02-28T00:26:06.755+00:00Trapezium (Orion Nebula) using Xbox Webcam<div class="separator" style="clear: both; text-align: center;">
</div>
I first tried imaging the Orion Nebula (M42) with the <a href="http://astrobeano.blogspot.co.uk/2012/01/xbox-360-webcam-for-astrophotography.html">Xbox webcam</a> on my SkyWatcher 130M telescope last year, and managed to resolve the Trapezium star cluster. Sadly I can't find the original images, so I tried again last night.<br />
<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-gZpEL6b4V2Y/US6VpgZNZcI/AAAAAAAABMs/xjJt_oKtEaY/s1600/Orion_Trapezium_xbox_webcam_crop.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-gZpEL6b4V2Y/US6VpgZNZcI/AAAAAAAABMs/xjJt_oKtEaY/s1600/Orion_Trapezium_xbox_webcam_crop.jpeg" /></a></td><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-MkUHBuaeSWs/US6hjE-K91I/AAAAAAAABNQ/_NXWZMllYmY/s1600/Orion_Trapezium_xbox_webcam_annot.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://4.bp.blogspot.com/-MkUHBuaeSWs/US6hjE-K91I/AAAAAAAABNQ/_NXWZMllYmY/s1600/Orion_Trapezium_xbox_webcam_annot.jpeg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">No editing other than cropping</td><td class="tr-caption" style="text-align: center;">Annotated by hand</td></tr>
</tbody></table>
<br />
As you can hopefully see, there are at least five stars here. Top right as show is the <a href="http://en.wikipedia.org/wiki/Trapezium_(astronomy)">Trapezium cluster (Theta1 Orionis, or θ1 Ori for short)</a>, of which only the three brightest stars showed up. Centrally is <a href="http://en.wikipedia.org/wiki/Theta2_Orionis">Theta2 Orionis (or θ2 Ori)</a>, and another bright star to the left of it. That means I've captured the brightest stars in the centre of M42 nebula, but in the single stills at least there is no hint of the nebula background.<br />
<a name='more'></a><br />
Here's the original un-cropped image,<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-kiDaS3LbM2k/US6VaRaQH2I/AAAAAAAABMk/GJbmofJZ7SU/s1600/Orion_Trapezium_xbox_webcam.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="213" src="http://1.bp.blogspot.com/-kiDaS3LbM2k/US6VaRaQH2I/AAAAAAAABMk/GJbmofJZ7SU/s320/Orion_Trapezium_xbox_webcam.jpeg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Single frame, no editing, no cropping.<br />
Recorded with Apple Photo Booth (auto-balance).<br />
Xbox live vision, prime focus, SkyWatcher SK1309EQ</td></tr>
</tbody></table>
<br />
This was with an Xbox Live Vision webcam still with its <a href="http://astrobeano.blogspot.co.uk/2012/01/xbox-360-webcam-ir-filter.html">original red glass IR filter</a>. I would have liked to have tried a head-to-head comparison where that is replaced with a proper 1.25" astronomy IR cut filter - but time and the weather prevented this (a <a href="http://en.wikipedia.org/wiki/Haar_(fog)">heavy haar</a> came in, cutting visibility completely).<br />
<br />
I did take a couple of movies and could try stacking the AVI files to see if anything more can be extracted for a slightly more exciting image. Also if I'd not used my Mac laptop I could have used a more sophisticated bit of software to capture the image - adjusting the gain and exposure for instance.Peter Cockhttp://www.blogger.com/profile/00233221181317137855noreply@blogger.com0tag:blogger.com,1999:blog-7275378574543326675.post-66622605291797278902013-02-17T21:13:00.001+00:002017-01-14T19:14:21.659+00:00SkyWatcher Explorer 130M with Canon EOS (Take 2)<br />
I borrowed a Canon EOS 1000D for the weekend, and was lucky to get some clear sky both on Friday and again tonight (Sunday). On Friday I was mostly working out focus travel issues, what modifications might be needed, and how to get any heavenly bodies in focus. Tonight I tried a planet, the moon, and some stars.<br />
<br />
<a name='more'></a><br />
Once again I used the <a href="http://astrobeano.blogspot.co.uk/2013/02/sk1309eq2-prime-focus-canon-eos-1000d.html">Canon DSLR with the slim line T-Ring resting on the SkyWatcher's 40mm silver focuser thread (exposed by removing the large black eye-piece holder)</a>. I was lucky tonight in that the Moon, Jupiter and Orion were all at about the same elevation, at an angle which gave me a surprisingly stable hands free shooting opportunity:<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="http://2.bp.blogspot.com/-UgCk-H4ohn0/USFCwTrXeVI/AAAAAAAABKU/IwtITnhEJZU/s1600/2013-02-17+19.52.38+jupiter.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="266" src="https://2.bp.blogspot.com/-UgCk-H4ohn0/USFCwTrXeVI/AAAAAAAABKU/IwtITnhEJZU/s400/2013-02-17+19.52.38+jupiter.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13px;">Jupiter (and moons), over exposed and wobbly (when zoom in),<br />
Canon EOS 1000D, single exposure, no cropping, no editing,<br />
prime-focus with SkyWatcher Explorer 130M telescope (SK1309EQ2).</td></tr>
</tbody></table>
<br />
While trying the lunar photos, the wobble from pressing the shutter was easier to see - so I took advantage of using the 10s delay option to allow the telescope to settle (if I buy one of these Canon EOS cameras, getting a remote shutter cable seems a good idea). This combined with the fact I wasn't having to hold the camera seemed to work much better:<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="http://3.bp.blogspot.com/-SLchsFOIy6Q/USFAR6Vp4xI/AAAAAAAABKI/na3ws3AyU_g/s1600/2013-02-17+20.00.16+moon.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="266" src="https://3.bp.blogspot.com/-SLchsFOIy6Q/USFAR6Vp4xI/AAAAAAAABKI/na3ws3AyU_g/s400/2013-02-17+20.00.16+moon.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13px;">Half moon.<br />
Canon EOS 1000D, single exposure, no cropping, no editing,<br />
prime-focus with SkyWatcher Explorer 130M telescope (SK1309EQ2).</td></tr>
</tbody></table>
<br />
Finally I tried the Orion Nebula (M42) at the tip of Orion's dagger - not a long enough exposure to capture anything other than the main stars, but a pleasing result. When you zoom in there is vertical smearing of the starts (also seen in the Jupiter shot) where I can't have done my polar alignment very well, or perhaps hadn't tightened the clutches enough while photographing.<br />
<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-APV-Oqf_cQQ/USFGe0a77MI/AAAAAAAABK8/ZC6-Af-F8h8/s1600/2013-02-17+20.35.26+orion+nebula.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="400" src="https://3.bp.blogspot.com/-APV-Oqf_cQQ/USFGe0a77MI/AAAAAAAABK8/ZC6-Af-F8h8/s400/2013-02-17+20.35.26+orion+nebula.jpg" width="266" /></a></td><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-2OGpJXYYFnk/USF4i26k6GI/AAAAAAAABLk/h1ovYCR5Tys/s1600/2013-02-17+20.35.26+orion+nebula+annot.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="400" src="https://1.bp.blogspot.com/-2OGpJXYYFnk/USF4i26k6GI/AAAAAAAABLk/h1ovYCR5Tys/s400/2013-02-17+20.35.26+orion+nebula+annot.jpeg" width="266" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Orion nebula (M42).<br />
Canon EOS 1000D, single exposure,<br />
no cropping, no editing, prime-focus with<br />
SkyWatcher Explorer 130M telescope.</td><td class="tr-caption" style="text-align: center;">Orion nebula (M42).<br />
Canon EOS 1000D, single exposure,<br />
no cropping, brightness adjustment only.<br />
Annotated by hand, with rough compass added.</td></tr>
</tbody></table>
<br />
I found these results very encouraging - for a start, other than looking up how to turn on live view in the manual, and turning on the 10s timer delay, these are all 'point-and-shoot' default settings. Also, for DSLR astrophotography there is an incentive to perfect my polar alignment so that my <a href="http://astrobeano.blogspot.co.uk/2012/01/multi-speed-motor-for-skywatcher-eq2.html">RA motor can counteract the Earth's rotation</a>.<br />
<br />
<b><u>Update (30 March 2012):</u></b><br />
<br />
I brought myself a second hand Canon EOS 1000D on eBay, worked out <a href="http://astrobeano.blogspot.co.uk/2013/03/installing-canon-eos-utility-on-mac.html">how to install the Canon EOS Utility software on Mac OS X</a>, and will try more astrophotography once it stops snowing.<br />
<br />
Update:<br />
<br />
I <a href="http://astrobeano.blogspot.co.uk/2013/04/moving-mirror-on-skywatcher-130m.html">moved the telescope mirror to allow focusing</a> with the DSLR mounted directly on the telescope.Peter Cockhttp://www.blogger.com/profile/00233221181317137855noreply@blogger.com1tag:blogger.com,1999:blog-7275378574543326675.post-55578832623867771602013-02-16T23:30:00.000+00:002014-01-27T22:18:15.390+00:00SkyWatcher Explorer 130M with Canon EOS DSLRThis weekend I borrowed a Canon EOS 1000D to try out for prime-focus astrophotography when connected directly to my SkyWatcher Explorer 130M (SK1309EQ2) telescope using a T-ring adapter.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-RJtbVaD61l0/UR-Hkfl6diI/AAAAAAAABHQ/2c-rFnIlBXM/s1600/2013-02-15+22.51.03.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-RJtbVaD61l0/UR-Hkfl6diI/AAAAAAAABHQ/2c-rFnIlBXM/s400/2013-02-15+22.51.03.jpg" height="266" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Moon using Canon EOS 1000D, held at prime-focus with<br />
SkyWatcher Explorer 130M telescope (SK1309EQ2).<br />
Single exposure, no cropping, no editing.</td></tr>
</tbody></table>
<br />
As well as doing a lot of reading on assorted astronomy forums, I found this excellent blog post about using a <a href="http://www.alananna.co.uk/blog/2012/using-an-slr-with-a-skywatcher-explorer-130m-telescope/">(digital) SLR with the SkyWatcher Explorer 130M telescope</a> very helpful, and this page on <a href="http://www.astro-baby.com/Skywatcher%20Focuser%20Tune%20up/Skywatcher%20Focuser%20Tune-up.htm">taking the SkyWatcher focuser apart</a> was informative: The challenge is getting enough inwards focus travel.<br />
<br />
<a name='more'></a><b><u>T-Ring adapter</u></b><br />
<br />
From online reading I knew getting the camera as close to the mirror as possible in order to focus on solar targets would be a problem. With a standard fat T-ring adapter an extra 10mm or so is added to the light path, which makes this worse. I therefore invested in a slim line "Low Profile Canon EOS T Ring" which only adds about 1mm to the camera body. This was £20 from <a href="http://www.modernastronomy.com/accessories.html#accTRings">Modern Astronomy</a>, although I later noticed some very <i>similar</i> looking adapters on eBay using the term M42 (which actually appears on the face of my adapter). Apparently the T-thread and M42 are both 42mm, but with different pitches, so this is a bit confusing - the good news is mine fits on my telescope!<br />
<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-5DJFcZhGu4E/UR-cMJJlzqI/AAAAAAAABIg/C4adZSurjhw/s1600/slim_T_ring_Canon_EOS.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-5DJFcZhGu4E/UR-cMJJlzqI/AAAAAAAABIg/C4adZSurjhw/s320/slim_T_ring_Canon_EOS.jpg" height="213" width="320" /></a></td><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-OiKGaeXGVXs/UR-cO9Pc8KI/AAAAAAAABIo/Kqk1jVtBcI8/s1600/slim_Canon_EOS_T_ring.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-OiKGaeXGVXs/UR-cO9Pc8KI/AAAAAAAABIo/Kqk1jVtBcI8/s320/slim_Canon_EOS_T_ring.jpg" height="213" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Canon EOS T ring adapter, says "KIPON M42/s-EOS"</td><td class="tr-caption" style="text-align: center;">Back of T ring, showing Canon EOS fitting</td></tr>
<tr><td class="tr-caption" colspan="2" style="text-align: center;">Low Profile Canon EOS T Ring, with tool for unscrewing (note the two little holes on the face where the tool's teeth fit).</td></tr>
</tbody></table>
<br />
<b><u>SkyWatcher focuser's T thread</u></b><br />
<br />
The black metal 1.25" eye-piece holder on the SkyWatcher Explorer 130M also provides a 42mm T-thread for direct connection to a (digital) SLR camera. The physical connection of a camera is therefore quite simple - the problem is getting the heavens in focus. While I could get this to focus on some terrestrial targets (e.g. distant trees), I was not able to get the camera close enough to the mirror to get the moon in focus this way.<br />
<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-rUh-gmc_d2k/UR_ZMeDihNI/AAAAAAAABJQ/Qumo_Wr3ORE/s1600/Canon_EOS_1000D_T_Ring.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-rUh-gmc_d2k/UR_ZMeDihNI/AAAAAAAABJQ/Qumo_Wr3ORE/s320/Canon_EOS_1000D_T_Ring.jpg" height="258" width="320" /></a></td><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-o7_IpiYhtvo/UR-MLC9jUvI/AAAAAAAABH4/3Og7e20wcCs/s1600/Canon_EOS_on_SK1309EQ2.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-o7_IpiYhtvo/UR-MLC9jUvI/AAAAAAAABH4/3Og7e20wcCs/s320/Canon_EOS_on_SK1309EQ2.jpeg" height="240" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Canon EOS 1000D with slim line T Ring adapter fitted</td><td class="tr-caption" style="text-align: center;">Canon EOS 1000D camera attached via T Ring to<br />
SkyWatcher Explorer 130M telescope (SK1309EQ2)</td></tr>
</tbody></table>
<br />
<b><u>SkyWatcher's Mystery 40mm thread</u></b><br />
<br />
Unscrewing the black eyepiece holder (which is about 22mm long) exposes a <a href="http://stargazerslounge.com/topic/172286-skywatcher-130-mystery-thread-connection/">40mm screw thread on the silver metal cylinder of the focuser</a>, and holding the camera with T ring against this by hand, I found get the moon in focus - with about 5mm of spare travel on the focus rack.<br />
<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-YKOczI9EEw8/UR_dnFqte-I/AAAAAAAABJg/FNQCUknzp4o/s1600/SK1309EQ2-focuser.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-YKOczI9EEw8/UR_dnFqte-I/AAAAAAAABJg/FNQCUknzp4o/s320/SK1309EQ2-focuser.jpg" height="320" width="320" /></a></td><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-vdtaJ7rFcao/UR_dQXP7J8I/AAAAAAAABJY/pr4HNDbCsjM/s1600/moon-focus-t-ring-position.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-vdtaJ7rFcao/UR_dQXP7J8I/AAAAAAAABJY/pr4HNDbCsjM/s320/moon-focus-t-ring-position.jpg" height="320" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Eye-piece holder removed exposing 40mm thread</td><td class="tr-caption" style="text-align: center;">T Ring resting on 40mm thread, in focus for moon</td></tr>
</tbody></table>
<br />
The "tasco" box attached to the focuser in the above photographs is my <a href="http://astrobeano.blogspot.co.uk/2012/12/tasco-1603ef-focus-motor-on-skywatcher.html">Tasco 1603EF motorised focuser</a> - which did make fine focusing easier. The example moon image was taken holding the camera resting the 42mm T-ring adapter on the 40mm thread like this. Keeping it steady enough for a clear picture via the live-view on the LCD was fine, the problem I had was minimising the wobble while pressing the shutter button - not so easy without a shutter cable!<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-RJtbVaD61l0/UR-Hkfl6diI/AAAAAAAABHQ/2c-rFnIlBXM/s1600/2013-02-15+22.51.03.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-RJtbVaD61l0/UR-Hkfl6diI/AAAAAAAABHQ/2c-rFnIlBXM/s400/2013-02-15+22.51.03.jpg" height="266" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Moon using Canon EOS 1000D, held at prime-focus with<br />
SkyWatcher Explorer 130M telescope (SK1309EQ2).<br />
Single exposure, no cropping, no editing.</td></tr>
</tbody></table>
<br />
With access to metal working tools, perhaps the standard SkyWatcher Explorer 130 eyepiece holder could be replaced or reduced from 22mm to more like 5 to 10mm, but even so the focal travel would be quite tight for lunar/astrophotography.<br />
<br />
Other documented alternatives for prime-focus astrophotography with this telescope involve modifying the telescope - either by <a href="http://stargazerslounge.com/topic/10503-going-to-mod-my-skywatcher-130p/">raising the primary mirror springs</a>, <a href="http://www.iceinspace.com.au/63-441-0-0-1-0.html">raising the primary mirror by shortening the entire tube</a> (like the SkyWatcher Explorer 130PDS), or cutting back the plastic sleeve of the focuser to allow it to retract another centimetre or so (which in my case may be hampered by the focuser motor).<br />
<br />
Alternatives include using a barlow lens (ideally one with an integrated T thread) and/or eyepiece projection - which should solve the focal distance problem (but has downsides like reducing the amount of light captured).<br />
<br />
Something to ponder... maybe I should stick with the webcam for now?<br />
<br />
<b style="text-decoration: underline;">Update:</b> <a href="http://astrobeano.blogspot.co.uk/2013/02/sk1309eq2-prime-focus-canon-eos-1000d-take2.html">More photos two days later using the same approach</a>.<br />
<br />
<b><u>Update:</u></b> <a href="http://astrobeano.blogspot.co.uk/2013/04/moving-mirror-on-skywatcher-130m.html">I moved the mirror on the SkyWatcher 130M telescope in order to reach focus with a DSLR camera</a>.Peter Cockhttp://www.blogger.com/profile/00233221181317137855noreply@blogger.com4tag:blogger.com,1999:blog-7275378574543326675.post-44139309225356328302013-02-02T14:33:00.001+00:002013-03-09T20:42:05.572+00:00Mouse recorded by Raspberry Pi Compost-camThe compost-cam (my <a href="http://astrobeano.blogspot.com/2013/01/raspberry-pi-down-garden.html">Raspberry Pi powered webcam in a compost heap</a>) has confirmed there are regular mouse (or mice) visits, I've even spotted a visitor via the live webcam feed from motion.<br />
<table align="center" cellpadding="0" cellspacing="2" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-hOGOTQ3HjrQ/UQ0gqlk7ePI/AAAAAAAABFU/jeThFZk56vM/s1600/mouse-20130202-02-47-52-01.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-hOGOTQ3HjrQ/UQ0gqlk7ePI/AAAAAAAABFU/jeThFZk56vM/s1600/mouse-20130202-02-47-52-01.jpg" /></a></td>
<td style="text-align: center;"><a href="http://3.bp.blogspot.com/-gUcZQrAaHLw/UQ0gqbVxCAI/AAAAAAAABFQ/v9kx87GK9Rc/s1600/mouse-20130202-04-35-54-02.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-gUcZQrAaHLw/UQ0gqbVxCAI/AAAAAAAABFQ/v9kx87GK9Rc/s1600/mouse-20130202-04-35-54-02.jpg" /></a></td></tr>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-2kLM4WJpyMc/UQ0grC_znYI/AAAAAAAABFY/qWJw0Sv4bqM/s1600/mouse-20130202-05-14-14-00.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-2kLM4WJpyMc/UQ0grC_znYI/AAAAAAAABFY/qWJw0Sv4bqM/s1600/mouse-20130202-05-14-14-00.jpg" /></a></td>
<td style="text-align: center;"><a href="http://3.bp.blogspot.com/-CXL7_hJjwYM/UQ0gr21jtWI/AAAAAAAABFs/hkm5OaoIwSw/s1600/mouse-20130202-06-03-54-00.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-CXL7_hJjwYM/UQ0gr21jtWI/AAAAAAAABFs/hkm5OaoIwSw/s1600/mouse-20130202-06-03-54-00.jpg" /></a></td>
</tr>
<tr><td class="tr-caption" colspan="2" style="text-align: center;">Mouse eating old melon in our compost heap.<br />
IR image taken with a modified XBox Live Vision webcam,<br />
image captured with Motion running on a Raspberry Pi.</td></tr>
</tbody></table>
<br />
<a name='more'></a>The large round thing on the right is three quarters of a melon which we didn't finish. I had carefully positioned under the camera hoping for some mouse photos like this. The small black dots are mouse droppings, you'll notice more as the time progresses.<br />
<br />
This is using the very <a href="http://astrobeano.blogspot.co.uk/2012/03/ir-night-vision-xbox-webcam-birdbox.html">first IR LED Xbox camera I made</a>, with four IR LEDs all pointing almost straight ahead. The infra-red illumination is a bit too focussed in the middle of the view, but it seems to be working OK.<br />
<br />
<b><u>Update</u></b><br />
<br />
I had a check online for other compost heap webcams, and found the <a href="http://www.horstedkeynes.com/compost.html">Horsted-Keynes compost-cam</a> - described by UK television's Channel 4 as "<i>The most boring page on the internet!</i>", but sadly it has been offline since 2004 when their compost heap was moved.<br />
<br />
I'm toying with the idea of setting <a href="http://motion.sourceforge.net/">Motion</a> to take timed snapshots of the compost, which could be compiled rotting compost. For this it would be nice to have colour (to see what happens to bright red tomatoes, or orange melon), so perhaps I'll swap out the IR sensitive webcam with IR LEDs for normal colour one with white light LEDs instead?<br />
<br />
<b><u>Update</u></b><br />
<br />
Here's a photo of the compost-cam and the <a href="http://astrobeano.blogspot.com/2013/03/raspberry-pi-motion-sensitive-trail-cam.html">Raspberry Pi trail-cam</a> I've replaced it with:<br />
<br />
<table align="center" cellpadding="2" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-sC50QF3AxIU/UTubD-aW3iI/AAAAAAAABQY/W0yoJfbvDtI/s1600/compost-cam.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://3.bp.blogspot.com/-sC50QF3AxIU/UTubD-aW3iI/AAAAAAAABQY/W0yoJfbvDtI/s320/compost-cam.jpeg" width="240" /></a></td><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-Sv5SI2kbiQs/UTubIFNV8jI/AAAAAAAABQg/zCIKwYDsUOY/s1600/trail-cam.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://1.bp.blogspot.com/-Sv5SI2kbiQs/UTubIFNV8jI/AAAAAAAABQg/zCIKwYDsUOY/s320/trail-cam.jpeg" width="240" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Compost-cam<br />
(modified Xbox Live Vision with IR LEDs)</td><td class="tr-caption" style="text-align: center;">Trail-cam<br />
(Unmodified Xbox Live Vision)</td></tr>
</tbody></table>
<br />Peter Cockhttp://www.blogger.com/profile/00233221181317137855noreply@blogger.com0tag:blogger.com,1999:blog-7275378574543326675.post-55015981959790612452013-01-30T19:17:00.001+00:002013-05-29T17:56:59.055+01:00Raspberry Pi down the GardenI'm now installed a Raspberry Pi with two webcams at the bottom of the garden using <a href="http://astrobeano.blogspot.com/2012/10/24v-passive-poe-for-raspberry-pi.html">passive power over ethernet with a 40m cable</a>. In the autumn I tested this indoors to catch <a href="http://astrobeano.blogspot.co.uk/2012/11/mouse-in-house.html">invading mice</a>, but now the snow has gone and spring seems to be on its way...<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-3GVPHfehDno/UQlLVCdo3OI/AAAAAAAABDI/wXPlbVudJII/s1600/raspberry_pi_inna_box.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="337" src="http://4.bp.blogspot.com/-3GVPHfehDno/UQlLVCdo3OI/AAAAAAAABDI/wXPlbVudJII/s640/raspberry_pi_inna_box.jpeg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Raspberry Pi, passive POE, and DC voltage step-down squeezed in a box</td></tr>
</tbody></table>
<br />
<a name='more'></a>The water-tight box I selected in store at my local Maplins was their light grey <a href="http://www.maplin.co.uk/project-boxes-265960">125mm x 100mm x 60mm project box (code N25HG RL6335-F)</a>. In store this seemed quite roomy for a little Raspberry Pi, with space for my <a href="http://astrobeano.blogspot.co.uk/2012/10/24v-passive-poe-for-raspberry-pi.html">passive POE adaptor and 24V to 5V DC stepdown module</a>. However, I'd forgotten just how long the USB plugs were, and it is actually quite a tight fit.<br />
<br />
The two bright blue spiky things are a couple of aluminium passive heatsinks - which seemed a sensible and inexpensive precaution as this will be running inside a sealed box.<br />
<br />
You might also notice in the photo I did the <a href="http://www.john.geek.nz/2012/09/raspberry-pi-increasing-the-usb-power-limitations/">USB port polyfuse by-pass</a> (using telephone extension wire), which should help powering hungry USB devices from the RPi. I'm not sure if it made any difference for my webcams - even with their extra infra-red LEDs.<br />
<br />
For the cabling I was initially hoping to use a <a href="http://en.wikipedia.org/wiki/Cable_gland">cabling gland</a> for a nice water-tight seal, but none of those in stock would allow a USB or ethernet plug though (the cable thickness would have been fine). Instead I cut a notch just big enough for two USB cables and my ethernet cable - which will go at the bottom of the box once mounted - perhaps I can add a little hot glue or sealant?<br />
<br />
<table align="center" cellpadding="0" cellspacing="2" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-7PLA8BE8ah8/UQltcjq77pI/AAAAAAAABDs/iYHX6d8NoFQ/s1600/pi_inna_shelter.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://2.bp.blogspot.com/-7PLA8BE8ah8/UQltcjq77pI/AAAAAAAABDs/iYHX6d8NoFQ/s320/pi_inna_shelter.jpeg" width="320" /></a></td><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-a9STnBnTqJ8/UQltgi8CObI/AAAAAAAABD0/dKfXjd2Key8/s1600/garden_pi_shelter.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://2.bp.blogspot.com/-a9STnBnTqJ8/UQltgi8CObI/AAAAAAAABD0/dKfXjd2Key8/s320/garden_pi_shelter.jpg" width="318" /></a></td>
</tr>
<tr><td class="tr-caption" colspan="2" style="text-align: center;">DIY shelter for my Pi in-a-box in the garden</td></tr>
</tbody></table>
<br />
My original plan was to place the Raspberry Pi near <a href="http://astrobeano.blogspot.co.uk/2012/03/xbox-birdbox-mk-iii.html">Birdbox III</a> (initially <a href="http://astrobeano.blogspot.co.uk/2012/03/birdbox-battles.html">occupied by blue tits</a>, <a href="http://astrobeano.blogspot.co.uk/2012/03/birdbox-battles.html">displaced by sparrows</a>, and then left empty) with a direct USB connection, and use a 5m USB repeater cable to connect it to <a href="http://astrobeano.blogspot.co.uk/2012/04/woodpecker-birdbox.html">Birdbox IV</a> (intended for woodpeckers, but used by <a href="http://astrobeano.blogspot.co.uk/2012/06/sparrows-nesting.html">sparrows this summer</a>) as well. Sadly in my field trial the USB repeater cable wouldn't work with the RPi, so instead the second camera is monitoring a compost heap (which I know mice visit).<br />
<br />
<table align="center" cellpadding="0" cellspacing="2" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-CQgiPGfcqd4/UQlvQfFl73I/AAAAAAAABEY/cYeHFoQ7cRY/s1600/birdbox3.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-CQgiPGfcqd4/UQlvQfFl73I/AAAAAAAABEY/cYeHFoQ7cRY/s1600/birdbox3.jpeg" /></a></td><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-BgpBkS06HtI/UQlvQw78tRI/AAAAAAAABEc/y9xRx-QJDEE/s1600/compost_cam.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-BgpBkS06HtI/UQlvQw78tRI/AAAAAAAABEc/y9xRx-QJDEE/s1600/compost_cam.jpeg" /></a></td></tr>
<tr>
<td class="tr-caption" style="text-align: center;">Birdbox III is occupied!</td>
<td class="tr-caption" style="text-align: center;">Compost-Cam: cherry tomatoes and potato peelings! </td></tr>
</tbody></table>
<br />
I'll be using <a href="http://motion.sourceforge.net/">Motion to capture images</a>, these were just saved via the Motion webcam feature - I wasn't actually expecting anyone to be in the bird box.<br />
<br />
<b><u>Update (2 Feb)</u></b><br />
<br />
The roosting ball of fluff is a <i>Blue Tit</i>, and it seems to be a regular house guest overnight. The compost-cam has confirmed there are regular <a href="http://astrobeano.blogspot.com/2013/02/mouse-recorded-by-raspberry-pi-compost.html">mouse visits to the compost heap</a>:<br />
<br />
<table align="center" cellpadding="0" cellspacing="2" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-8JpwI1Hv0jg/UQ0rTIz3eoI/AAAAAAAABGY/RaVi7h7H1ls/s1600/tit-20130201-07-46-21-00.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-8JpwI1Hv0jg/UQ0rTIz3eoI/AAAAAAAABGY/RaVi7h7H1ls/s1600/tit-20130201-07-46-21-00.jpg" /></a></td>
<td style="text-align: center;"><a href="http://3.bp.blogspot.com/-zkUpWwMN4LE/UQ0f5hSDksI/AAAAAAAABFI/88Bn3bVYfXc/s1600/mouse-20130201-05-21-57-00.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-zkUpWwMN4LE/UQ0f5hSDksI/AAAAAAAABFI/88Bn3bVYfXc/s1600/mouse-20130201-05-21-57-00.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Roosting Blue Tit</td><td class="tr-caption" style="text-align: center;">Mouse in the compost heap</td></tr>
</tbody></table>
<br />
There is potential bad news for the <i>Blue Tit</i> - during the day there has been a <i>Sparrow</i> visiting too, perhaps also eyeing up this as a future nest site? Last year <a href="http://astrobeano.blogspot.com/2012/03/birdbox-battles.html">a <i>Blue Tit</i> pair was pushed out of this bird box by sparrows</a>...<br />
<br />
<table align="center" cellpadding="0" cellspacing="2" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-T0nb0BzXpdI/UQ0s2XkL23I/AAAAAAAABGg/KL50JvN26W0/s1600/sparrow-20130201-11-12-17-02.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-T0nb0BzXpdI/UQ0s2XkL23I/AAAAAAAABGg/KL50JvN26W0/s1600/sparrow-20130201-11-12-17-02.jpg" /></a></td><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-V07C-amKIYI/UQ0tAJRVaBI/AAAAAAAABGo/Rnbg8jGYan0/s1600/sparrow-20130202-14-08-18-08.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-V07C-amKIYI/UQ0tAJRVaBI/AAAAAAAABGo/Rnbg8jGYan0/s1600/sparrow-20130202-14-08-18-08.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">What's that ceiling fixture?</td><td class="tr-caption" style="text-align: center;">Twiggy</td></tr>
</tbody></table>
<br />
<br />
<b><u>Update (8 Feb 2013):</u></b><br />
<br />
I've switched the bird-box's metal entrance plate to a smaller <i>Blue Tit</i> sized one to try and keep the sparrows out - there are several other birdboxes in the garden they can use and this year I'm hoping that <i>Blue Tits</i> will nest here. So far just one <i>Blue Tit</i> is using this as a nightly roost box.<br />
<br />
<u><b>Update (March 2013):</b></u><br />
<br />
After <a href="http://astrobeano.blogspot.co.uk/2013/02/mouse-recorded-by-raspberry-pi-compost.html">filming mice in the compost heap</a>, I've replaced that camera with a <a href="http://astrobeano.blogspot.co.uk/2013/03/raspberry-pi-motion-sensitive-trail-cam.html">Raspbery Pi powered trail camera</a>.<br />
<br />
<u><b>Update (29 May 2013):</b></u><br />
<br />
The <a href="http://astrobeano.blogspot.co.uk/2013/05/blue-tit-eggs.html"><i>Blue Tits</i> have laid a clutch of seven eggs</a>.Peter Cockhttp://www.blogger.com/profile/00233221181317137855noreply@blogger.com0tag:blogger.com,1999:blog-7275378574543326675.post-66139708474120445672012-12-22T21:21:00.002+00:002012-12-24T00:51:34.557+00:00Tasco 1603EF focus motor on SkyWatcher SK1309EQ2 telescopeSince I was having trouble with <a href="http://astrobeano.blogspot.co.uk/search/label/Astrophotography">astrophotography</a> focussing my telescope via the webcam, I decided to try out a motorised focus control - sometimes misleading called an automatic focuser. I found the Tasco 1603EF for about £20 all in on eBay, which seemed worth a try with my SkyWatcher Explorer 130M, also known as the SK1309EQ2. I was expecting a little tinkering might be needed but fitting it was extremely straightforward. SkyWatcher do sell their own focus motor at about £50, but it was unclear if this would fit my telescope.<br />
<br />
<table align="center" cellpadding="2" cellspacing="2" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-0d3lvfNpX54/UNYbPnQtMVI/AAAAAAAABBA/I9GSh7_fb-8/s1600/Tasco_1603EF_on_SK1309EQ2.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://3.bp.blogspot.com/-0d3lvfNpX54/UNYbPnQtMVI/AAAAAAAABBA/I9GSh7_fb-8/s340/Tasco_1603EF_on_SK1309EQ2.jpg" width="340" /></a></td><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-H5joSLJtqhQ/UNYdeXLgS2I/AAAAAAAABBs/z-9B3RQ8jDg/s1600/Tasco_1603EF_clutch_button.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://4.bp.blogspot.com/-H5joSLJtqhQ/UNYdeXLgS2I/AAAAAAAABBs/z-9B3RQ8jDg/s320/Tasco_1603EF_clutch_button.jpg" width="237" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Tasco 1603EF focus motor on SkyWatcher SK1309EQ2 telescope</td><td class="tr-caption" style="text-align: center;">Tasco 160EF manual focus clutch button</td></tr>
</tbody></table>
<a name='more'></a><br />
As you can see I've left the right manual focus wheel exposed (since I am right handed), which can be used with the small clutch button on the side of the motor housing.<br />
<br />
The only tricky bit was lifting up the silver cover disk of the focus wheel (a Jeweller's screwdriver worked although the cover got a little bent out of shape), in order that the motor's U-shaped attachment can drive it by pushing against the spokes.<br />
<br />
<table align="center" cellpadding="2" cellspacing="2" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-GPdVBOUb_GQ/UNYco1_V1MI/AAAAAAAABBM/AIiY-gnJulI/s1600/SK1309EQ2_focus_wheel.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="260" src="http://3.bp.blogspot.com/-GPdVBOUb_GQ/UNYco1_V1MI/AAAAAAAABBM/AIiY-gnJulI/s320/SK1309EQ2_focus_wheel.jpg" width="320" /></a></td><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-pOxRNWn8ZjM/UNYfQVAha_I/AAAAAAAABCQ/VBQ9auR9iMU/s1600/Tasco_1603EF_attachment.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="260" src="http://3.bp.blogspot.com/-pOxRNWn8ZjM/UNYfQVAha_I/AAAAAAAABCQ/VBQ9auR9iMU/s295/Tasco_1603EF_attachment.jpg" width="295" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">SK1309EQ2 focus wheel without silver cover</td><td class="tr-caption" style="text-align: center;">How the focus motor bracket is attached</td></tr>
</tbody></table>
<br />
If you want to see inside the casing, have a look at this <a href="http://www.cloudynights.com/ubbthreads/showflat.php/Cat/0/Number/4548371/Main/4529006">forum thread with photos</a> showing the same focus motor modified to attach to another telescope.<br />
<br />
I'm looking forward to trying this out, once the rain stops and we get some clear skies ;)<br />
<br />
<b><u>Update 23 December</u></b><br />
<br />
There was a little slack the attachment - I think the Tasco scopes must have a smaller gap between their wheel spokes. This meant a short delay switching directions, which was a little frustrating. Putting a bit of blu-tack in the focus wheel where the motor's U-arm is inserted seems to have solved that, at least in the short term.<br />
<br />
After my first night out with the new focuser, and I'm very pleased with it. I got to practise with Jupiter and then briefly the moon before the clouds returned. Watching the webcam live on a laptop while fine tuning the focus with the motor worked <i>really</i> well - next I'll be wanting to extend the little remote's wire which is only about 1m, or even look at computer control. Some focus motors are actually designed with that in mind, this one isn't.Peter Cockhttp://www.blogger.com/profile/00233221181317137855noreply@blogger.com1tag:blogger.com,1999:blog-7275378574543326675.post-30782677462449338542012-12-01T21:17:00.000+00:002013-01-30T20:38:13.539+00:00Webcam telescope image of Jupiter & MoonsIt is winter again, and the upside to it getting dark before 5pm is many more chances for astronomy. This week I had my SkyWatcher telescope out again, and captured a few images of Jupiter and its moons using the <a href="http://astrobeano.blogspot.co.uk/search/label/Xbox%20Live%20Vision">XBox Live Vision webcam</a>.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-c_0BSw5t8TY/ULpb-gqE3mI/AAAAAAAAA_o/BfRqtFsucD4/s1600/Jupiter_20121128_1938_snapshot.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-c_0BSw5t8TY/ULpb-gqE3mI/AAAAAAAAA_o/BfRqtFsucD4/s1600/Jupiter_20121128_1938_snapshot.png" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Wednesday 28 November 2012, Jupiter and four moons.<br />
640 × 480 pixel uncropped image from Xbox 360 webcam,<br />
No filters, prime focus, SkyWatcher SK1309EQ2 telescope.<br />
Single snapshot using wxAstroCapture under Linux.</td></tr>
</tbody></table>
<a name='more'></a>That image is a full size unedited and unprocessed snapshot extracted using <a href="http://www.videolan.org/vlc/">VLC</a> from the AVI movie I recorded using <a href="http://arnholm.org/astro/software/wxAstroCapture/">wxAstroCapture</a> running on my old Linux Laptop, captured at 640 × 480 pixels doing about 5 fps. The camera can be run at a higher resolution too.<br />
<br />
The physical camera setup is as described before, an <a href="http://astrobeano.blogspot.co.uk/2012/01/xbox-360-webcam-for-astrophotography.html">XBox 360 webcam with a telescope nose adaptor added</a> and the <a href="http://astrobeano.blogspot.co.uk/2012/01/xbox-360-webcam-ir-filter.html">red glass IR filter removed</a> (<i>correction</i> - this camera still had the original red glass IR filter).<br />
<br />
Using the aperture mask (the round cover for the telescope opening with an opening about 5cm) as a quick way to cut down the light (aka <a href="http://www.atmsite.org/contrib/Harbour/StoppingDown.html">stopping down</a>, simpler than messing with the image capture size) I was able to get some shots where Jupiter's stripes were visible too - at the expense of losing the faint moons. Without post-processing to stack the images though, they are not very impressive. I tried <a href="http://keithwiley.com/software/keithsImageStacker.shtml">Keith's Image Stacker for Mac OS X</a>, but sadly it didn't understand the AVI files from wxAstroCapture.<br />
<br />
A few days later I had another clear night and experimented with capturing at the native resolution of 1280 × 960 pixels, and decided rather than saving as AVI files I'd try the folder of FITS format images. I've not found a tool look at those yet, let alone stack them for image processing. Sigh.<br />
<br />
Pretty poor compared to some of the images posted on <a href="http://stargazerslounge.com/topic/123338-imaging-with-xbox-live-camera-first-pic/">this thread</a> or <a href="http://stargazerslounge.com/topic/131246-xbox-livecam-mod-cliff/page__st__100">this thread</a> - but there are some useful tips there like don't use auto-exposure, and turn down the gain.<br />
<br />Peter Cockhttp://www.blogger.com/profile/00233221181317137855noreply@blogger.com0tag:blogger.com,1999:blog-7275378574543326675.post-36454993915133589352012-11-01T20:26:00.000+00:002013-01-30T20:20:30.553+00:00Mouse in the house!I've been working on using a <a href="http://astrobeano.blogspot.co.uk/2012/10/24v-passive-poe-for-raspberry-pi.html">Raspberry Pi using passive power over ethernet</a> to monitor <a href="http://astrobeano.blogspot.co.uk/2012/03/xbox-birdbox-mk-iii.html">webcams in the birdboxes at the bottom of the garden</a>, using the <a href="http://motion.sourceforge.net/">software Motion to capture images or stream video</a>. Given it has started to get cold at night (with frost) I've been testing the camera setup in doors, using it to keep an eye on some autumnal wildlife - at this time of year we get mice in the house:<br />
<br />
<table align="center" cellpadding="2" cellspacing="2" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-IEmZ5DjMhnw/UJLXv7DrSMI/AAAAAAAAA8Q/s98pBvBjO0c/s1600/01-20121101055008-01.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://4.bp.blogspot.com/-IEmZ5DjMhnw/UJLXv7DrSMI/AAAAAAAAA8Q/s98pBvBjO0c/s1600/01-20121101055008-01.jpg" /></a></td><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-j8SMBThDXs4/UJLXh8mwjRI/AAAAAAAAA70/SH4YOK6o8kI/s1600/01-20121101055013-01.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://4.bp.blogspot.com/-j8SMBThDXs4/UJLXh8mwjRI/AAAAAAAAA70/SH4YOK6o8kI/s1600/01-20121101055013-01.jpg" /></a></td></tr>
</tbody></table>
<br />
We'd heard noises in this cupboard, and caught mice here last year, but I was a little surprised to get pictures of a visitor the first night I setup the cameras at this location. Now switching to the second camera positioned closer which benefited from the indirect illumination (and was actually in focus):<br />
<a name='more'></a><table align="center" cellpadding="2" cellspacing="2" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-1Qd7ZcLsEZI/UJLWw2Ydf-I/AAAAAAAAA7Q/JFpWLO6-PWk/s1600/01-20121101055013-03.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-1Qd7ZcLsEZI/UJLWw2Ydf-I/AAAAAAAAA7Q/JFpWLO6-PWk/s1600/01-20121101055013-03.jpg" /></a></td><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-VtuwwGVPUe4/UJLW13em_pI/AAAAAAAAA7Y/78ZeS2JV1E4/s1600/01-20121101055019-00.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-VtuwwGVPUe4/UJLW13em_pI/AAAAAAAAA7Y/78ZeS2JV1E4/s1600/01-20121101055019-00.jpg" /></a></td></tr>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-itWjKf7AZ80/UJLW60j-C3I/AAAAAAAAA7g/etZX31Rhmvg/s1600/01-20121101055021-02.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-itWjKf7AZ80/UJLW60j-C3I/AAAAAAAAA7g/etZX31Rhmvg/s1600/01-20121101055021-02.jpg" /></a></td><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-tXTaLUOqq9c/UJLW797FKtI/AAAAAAAAA7k/VMn_ulFJwzY/s1600/01-20121101055027-01.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-tXTaLUOqq9c/UJLW797FKtI/AAAAAAAAA7k/VMn_ulFJwzY/s1600/01-20121101055027-01.jpg" /></a></td></tr>
</tbody></table>
<br />
Cute little chap, and he didn't fall for the (unbaited) live trap. I must buy some more peanut butter... that worked very well last autumn!<br />
<br />
Now back to the first camera (which had the four IR LEDs on it) to catch the exit - this was just a quick inspection visit lasting under thirty seconds:
<br />
<table align="center" cellpadding="2" cellspacing="2" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-D7HWuQQoX1c/UJLXiuBMU0I/AAAAAAAAA78/NCrRD2wiXOc/s1600/01-20121101055027-01.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-D7HWuQQoX1c/UJLXiuBMU0I/AAAAAAAAA78/NCrRD2wiXOc/s1600/01-20121101055027-01.jpg" /></a></td><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-rwFnU6E4vg0/UJLXjUV-h0I/AAAAAAAAA8E/9AeDc5PYMFc/s1600/01-20121101055032-01.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-rwFnU6E4vg0/UJLXjUV-h0I/AAAAAAAAA8E/9AeDc5PYMFc/s1600/01-20121101055032-01.jpg" /></a></td></tr>
</tbody></table>
<br />
Here's a quick shot (with flash) of how the cameras were setup in this cupboard under the sink - you can see how the mice get in via the hole cut for the plumbing:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-qv4w3gtXrIA/UJLgKixQnFI/AAAAAAAAA80/w9N1dzPrtt4/s1600/under-sink-webcams.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-qv4w3gtXrIA/UJLgKixQnFI/AAAAAAAAA80/w9N1dzPrtt4/s1600/under-sink-webcams.jpg" /></a></div>
<br />
Clearly as with my iterative improvements to the LED placement for <a href="http://astrobeano.blogspot.co.uk/search/label/Birdbox">birdbox usage</a>, I could do a bit better with the infrared illumination. But this was the first positive result in a live test for my <a href="http://astrobeano.blogspot.co.uk/2012/10/24v-passive-poe-for-raspberry-pi.html">Raspberry Pi 24V passive POE system, using a 40m ethernet cable and two webcams</a> :)<br />
<br />
<br />
<b><u>Update</u></b><br />
<br />
A mouse returned the following two nights (still no bait in the trap), and managed to disarm the trap, probably just by jumping on top of it which could easily tip it and close the door:<br />
<table align="center" cellpadding="2" cellspacing="2" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-wpXo5Y5QfhU/UJUpD0MUKYI/AAAAAAAAA9Y/T_wfNN4hk2s/s1600/02-20121102053535-00.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://4.bp.blogspot.com/-wpXo5Y5QfhU/UJUpD0MUKYI/AAAAAAAAA9Y/T_wfNN4hk2s/s1600/02-20121102053535-00.jpg" /></a></td><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-0A1DB1pbrcM/UJUpE8XICjI/AAAAAAAAA9g/3637kECjRbk/s1600/02-20121102053545-00.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-0A1DB1pbrcM/UJUpE8XICjI/AAAAAAAAA9g/3637kECjRbk/s1600/02-20121102053545-00.jpg" /></a></td></tr>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-VIg0Eo7fkDk/UJUpF97hs1I/AAAAAAAAA9k/1HHJIATxd5w/s1600/02-20121102053548-00.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://4.bp.blogspot.com/-VIg0Eo7fkDk/UJUpF97hs1I/AAAAAAAAA9k/1HHJIATxd5w/s1600/02-20121102053548-00.jpg" /></a></td><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-5nl-EVHTIIM/UJUpH1Pmh-I/AAAAAAAAA98/H5LnzyOyfJU/s1600/02-20121102053548-03.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-5nl-EVHTIIM/UJUpH1Pmh-I/AAAAAAAAA98/H5LnzyOyfJU/s1600/02-20121102053548-03.jpg" /></a></td></tr>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-6T85NqvOlng/UJUpI9UmVkI/AAAAAAAAA-I/y2tp_ZtGxnk/s1600/02-20121102053556-00.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-6T85NqvOlng/UJUpI9UmVkI/AAAAAAAAA-I/y2tp_ZtGxnk/s1600/02-20121102053556-00.jpg" /></a></td><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-mLkZA3wwofA/UJUpKDi3wAI/AAAAAAAAA-U/vL5LDjjCfOc/s1600/02-20121102053603-01.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://3.bp.blogspot.com/-mLkZA3wwofA/UJUpKDi3wAI/AAAAAAAAA-U/vL5LDjjCfOc/s1600/02-20121102053603-01.jpg" /></a></td></tr>
<tr><td class="tr-caption" colspan="2" style="text-align: center;">Trap disarmed by jumping on it?</td></tr>
</tbody></table>
Sadly Motion and the Raspberry Pi didn't capture the precise moment the trap closed, the frame rate isn't quite high enough (it seems to fluctuate between one and four frames per second). Probably using one camera rather than two would give a better frame rate.<br />
<br />
<i>Update</i>: <a href="http://astrobeano.blogspot.com/2013/01/raspberry-pi-down-garden.html">Successful outdoor camera testing</a>.Peter Cockhttp://www.blogger.com/profile/00233221181317137855noreply@blogger.com0tag:blogger.com,1999:blog-7275378574543326675.post-26132334618437715112012-10-22T13:32:00.001+01:002014-02-23T22:43:26.579+00:00TomTom Bluetooth Remote & Raspberry PiA while back I bought a TomTom Bluetooth remote control (here's a good <a href="http://www.pocketgpsworld.com/tomtombtremote.php">review</a>) with a view to using it with a Linux home theatre computer (HTPC) running XBMC or similar. As far as the computer is concerned, it is just a Bluetooth keyboard.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-HIljF8HKRjs/UHxUekAZO6I/AAAAAAAAA6Y/lwu3pgv0pRQ/s1600/TomTom_Bluetooth_remote.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-HIljF8HKRjs/UHxUekAZO6I/AAAAAAAAA6Y/lwu3pgv0pRQ/s1600/TomTom_Bluetooth_remote.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">TomTom Bluetooth remote control</td></tr>
</tbody></table>
<br />
While most of the information below <i>should</i> apply to any Debian/Ubuntu system, this time I was using the Debain variant Raspbian on a Raspberry Pi. Since the Raspberry Pi has an HDMI connector I may keep one connected to our TV, but this could also work out nicely for controlling a <a href="http://www.blogger.com/2012/10/navit-gps-on-raspberry-pi.html">Raspberry Pi running the GPS software Navit</a> in the car. Time to get Bluetooth on the Pi with a USB dongle!<br />
<a name='more'></a><br />
I tried this with two Bluetooth dongles, a tiny <i>Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)</i> (USB ID 0a12:0001), and a noticeable larger <i>Belkin Components F8T013 Bluetooth Adapter</i> (USB ID 050d:0013). Both worked fine (eventually).<br />
<br />
From having played with this before, I know that the TomTom Remote pretends to be a normal Bluetooth Keyboard (only it happens to have just ten keys). The only catch is this means you can't type in a Bluetooth pairing code, instead like a Bluetooth mouse, the PIN is preset to 0000.<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">$ sudo apt-get install bluetooth bluez</span><br />
<br />
That takes a <i>long</i> time, and seems to install a whole bunch of apparently unrelated printer and scanner stuff. Once it is done, check if it recognises your Bluetooth dongle and everything seems OK so far:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">$ /etc/init.d/bluetooth status</span><br />
<span style="font-family: 'Courier New', Courier, monospace;">[ ok ] bluetooth is running.</span><br />
<br />
<br />
<b><u>TomTom Bluetooth pairing</u></b><br />
<br />
Now let's do a Bluetooth scan, and at this point put batteries in the TomTom Remote if you haven't already (or take them out for 30 seconds or so to reset it if needed), or press any key to wake it up. Then start scanning - although it never seems to show up until just after the flashing blue LED stops:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">$ hcitool scan --refresh</span><br />
<span style="font-family: Courier New, Courier, monospace;">Scanning ...</span><br />
<span style="font-family: Courier New, Courier, monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>00:13:6C:BC:E1:CD<span class="Apple-tab-span" style="white-space: pre;"> </span>TomTom Remote</span><br />
<br />
Possibly helpful snippets of information via hcitools:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">$ hcitool name 00:13:6C:BC:E1:CD</span><br />
<span style="font-family: Courier New, Courier, monospace;">TomTom Remote</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">and:</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: 'Courier New', Courier, monospace;">$ hcitool inq</span><br />
<span style="font-family: Courier New, Courier, monospace;">Inquiring ...</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 00:13:6C:BC:E1:CD clock offset: 0x369c class: 0x000540</span><br />
<br />
Also potentially of interest, although until I'd sorted out the pairing properly most of the time it just gave "Can't create connection: Input/output error" failures:<br />
<br />
<span style="font-family: 'Courier New', Courier, monospace;">$ sudo hcitool info 00:13:6C:BC:E1:CD</span><br />
<span style="font-family: Courier New, Courier, monospace;">Requesting information ...</span><br />
<span style="font-family: Courier New, Courier, monospace;"> BD Address: 00:13:6C:BC:E1:CD</span><br />
<span style="font-family: Courier New, Courier, monospace;"> Device Name: TomTom Remote</span><br />
<span style="font-family: Courier New, Courier, monospace;"> LMP Version: 2.0 (0x3) LMP Subversion: 0x10b7</span><br />
<span style="font-family: Courier New, Courier, monospace;"> Manufacturer: Cambridge Silicon Radio (10)</span><br />
<span style="font-family: Courier New, Courier, monospace;"> Features: 0xff 0xff 0x8f 0xfe 0x9b 0xf9 0x00 0x80</span><br />
<span style="font-family: Courier New, Courier, monospace;"> <3-slot packets> <5-slot packets> <encryption> <slot offset> </span><br />
<span style="font-family: Courier New, Courier, monospace;"> <timing accuracy> <role switch> <hold mode> <sniff mode> </span><br />
<span style="font-family: Courier New, Courier, monospace;"> <park state> <RSSI> <channel quality> <SCO link> <HV2 packets> </span><br />
<span style="font-family: Courier New, Courier, monospace;"> <HV3 packets> <u-law log> <A-law log> <CVSD> <paging scheme> </span><br />
<span style="font-family: Courier New, Courier, monospace;"> <power control> <transparent SCO> <broadcast encrypt> </span><br />
<span style="font-family: Courier New, Courier, monospace;"> <EDR ACL 2 Mbps> <EDR ACL 3 Mbps> <enhanced iscan> </span><br />
<span style="font-family: Courier New, Courier, monospace;"> <interlaced iscan> <interlaced pscan> <inquiry with RSSI> </span><br />
<span style="font-family: Courier New, Courier, monospace;"> <extended SCO> <EV4 packets> <EV5 packets> <AFH cap. slave> </span><br />
<span style="font-family: Courier New, Courier, monospace;"> <AFH class. slave> <3-slot EDR ACL> <5-slot EDR ACL> </span><br />
<span style="font-family: Courier New, Courier, monospace;"> <AFH cap. master> <AFH class. master> <EDR eSCO 2 Mbps> </span><br />
<span style="font-family: Courier New, Courier, monospace;"> <EDR eSCO 3 Mbps> <3-slot EDR eSCO> <extended features></span><br />
<br />
My first attempts to pair from the command line were frustrating. I gave up, plugged the Raspberry Pi into my TV, and used the GUI bluetooth tool which was very simple. So having confirmed it could be done, I tried once more at the command line only.<br />
<br />
Tip - a brute force way to remove <i>all</i> existing Bluetooth pairings etc back to a clean slate is to remove these files, and then reboot:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">$ sudo rm -rf /var/lib/bluetooth/*</span><br />
<br />
What worked for me was following a combination of this <a href="http://www.ctheroux.com/2012/08/a-step-by-step-guide-to-setup-a-bluetooth-keyboard-and-mouse-on-the-raspberry-pi/">Bluetooth pairing on Raspberry Pi guide</a> and <a href="http://zitzlinux.wordpress.com/2011/02/28/connecting-bluetooth-devices-from-command-line/">connecting Bluetooth from the command line</a>, using the bluez to pair using PIN 0000, and mark the device as trusted:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">$ echo "0000" | sudo bluez-simple-agent hci0 00:13:6C:BC:E1:CD</span><br />
<span style="font-family: Courier New, Courier, monospace;">RequestPinCode (/org/bluez/1891/hci0/dev_00_13_6C_BC_E1_CD)</span><br />
<span style="font-family: Courier New, Courier, monospace;">Enter PIN Code: Release</span><br />
<span style="font-family: Courier New, Courier, monospace;">New device (/org/bluez/1891/hci0/dev_00_13_6C_BC_E1_CD)</span><br />
<span style="font-family: Courier New, Courier, monospace;">$ sudo bluez-test-device trusted 00:13:6C:BC:E1:CD yes</span><br />
<br />
At that point it seemed to be connected,<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">$ hcitool con</span><br />
<span style="font-family: Courier New, Courier, monospace;">Connections:</span><br />
<span style="font-family: Courier New, Courier, monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span>> ACL 00:13:6C:BC:E1:CD handle 11 state 1 lm MASTER AUTH ENCRYPT</span><br />
<br />
It was a great relief to find this still worked following a reboot as well. To switch Bluetooth dongles, I removed the TomTom remote's batteries in order to reset it, and tried again - also successfully.<br />
<br />
<br />
<b><u>TomTom Remote remapping</u></b><br />
<br />
As I was logged into the Raspberry Pi via ssh, key presses on the Bluetooth remote don't show up in my terminal window. Working directly with a keyboard and monitor might be easier. In fact I had no other keyboard attached - but I was able to check the key presses as follows. Note with other devices attached, <span style="font-family: Courier New, Courier, monospace;">/dev/input/event0</span> probably won't be the Bluetooth remote - but a higher number:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">$ /lib/udev/keymap -i input/event0</span><br />
<span style="font-family: Courier New, Courier, monospace;">Press ESC to finish, or Control-C if this device is not your primary keyboard</span><br />
<span style="font-family: Courier New, Courier, monospace;">scan code: 0x70052 key code: up</span><br />
<span style="font-family: Courier New, Courier, monospace;">scan code: 0x70050 key code: left</span><br />
<span style="font-family: Courier New, Courier, monospace;">scan code: 0x70051 key code: down</span><br />
<span style="font-family: Courier New, Courier, monospace;">scan code: 0x7004F key code: right</span><br />
<span style="font-family: Courier New, Courier, monospace;">scan code: 0x70028 key code: enter</span><br />
<span style="font-family: Courier New, Courier, monospace;">scan code: 0x70042 key code: f9</span><br />
<span style="font-family: Courier New, Courier, monospace;">scan code: 0x70043 key code: f10</span><br />
<span style="font-family: Courier New, Courier, monospace;">scan code: 0x7002A key code: backspace</span><br />
<span style="font-family: Courier New, Courier, monospace;">scan code: 0x7002E key code: equal</span><br />
<span style="font-family: Courier New, Courier, monospace;">scan code: 0x70029 key code: esc</span><br />
<br />
Here I pressed the ring of direction buttons (which act like the cursor keys) and their central button (which acts as enter), the minus and plus volume controls (which act as F9 and F10), then the three buttons from right to left (backspace, equals, escape). I did the escape button last as it quits the <span style="font-family: Courier New, Courier, monospace;">keymap</span> application.<br />
<br />
What each of the buttons does can be remapped - something I worked out under Ubuntu Linux a few years ago when I brought this remote. Initially I tried HAL but had success with udev rules. The aim of this is to <i>only</i> remap key presses from the TomTom remote, and not affect any other keyboards.<br />
<br />
<div>
My remapping is defined in a new file <span style="font-family: Courier New, Courier, monospace;">/lib/udev/keymaps/tomtom-remote</span> which gets loaded automatically using an entry in <span style="font-family: Courier New, Courier, monospace;">/lib/udev/rules.d/95-keymap.rules</span> (so that only the TomTom remote keys are remapped - not any other keyboards):<br />
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td class="tr-caption" style="text-align: center;"><b>/lib/udev/keymaps/tomtom-remote</b></td></tr>
<tr><td class="tr-caption" style="text-align: left;"><pre><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">#TomTom Remote (Bluetooth)
#Based on model 4M02.000
#
#Save this file as /lib/udev/keymaps/tomtom-remote and to enable it, add the
#following (as a single line) to http:///lib/udev/rules.d/95-keymap.rules near the
#start before the line: SUBSYSTEMS=="bluetooth", GOTO="keyboard_end"
#
#SUBSYSTEMS=="bluetooth", ATTRS{name}=="TomTom Remote",
#ATTRS{uniq}=="00:13:6C:*", RUN+="keymap $name tomtom-remote"
#
#Here are the ten key codes you can remap:
#
#The four cursor keys and enter, left alone:
#0x70028 enter
#0x7004F right
#0x70050 left
#0x70051 down
#0x70052 up
#
#The remaining five buttons are remapped here,
#you may want to change these (e.g. prev track,
#mute and next track):
#
0x70029 pageup # Left button, by default escape
0x7002E backspace # Middle button, by default equals
0x7002A pagedown # Right button, by default backspace
0x70042 volumedown # Volume down button, by default F9
0x70043 volumeup # Volume up button, by default F10
</span></pre>
</td></tr>
</tbody></table>
Start by creating this remapping file, then test it directly (using the appropriate event number for your system):<br />
<br />
<span style="font-family: 'Courier New', Courier, monospace;">$ /lib/udev/keymap input/event0 /lib/udev/keymaps/tomtom-remote</span><br />
<span style="font-family: Courier New, Courier, monospace;">Remapped scancode 0x70029 to 0x68 (prior: 0x01)</span><br />
<span style="font-family: Courier New, Courier, monospace;">Remapped scancode 0x7002e to 0x0e (prior: 0x0d)</span><br />
<span style="font-family: Courier New, Courier, monospace;">Remapped scancode 0x7002a to 0x6d (prior: 0x0e)</span><br />
<span style="font-family: Courier New, Courier, monospace;">Remapped scancode 0x70042 to 0x72 (prior: 0x43)</span><br />
<span style="font-family: Courier New, Courier, monospace;">Remapped scancode 0x70043 to 0x73 (prior: 0x44)</span><br />
<br />
Now if I try all the keys on the remote again - following the same order as before:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">$ /lib/udev/keymap -i input/event0</span><br />
<span style="font-family: Courier New, Courier, monospace;">Press ESC to finish, or Control-C if this device is not your primary keyboard</span><br />
<span style="font-family: Courier New, Courier, monospace;">scan code: 0x70052 key code: up</span><br />
<span style="font-family: Courier New, Courier, monospace;">scan code: 0x70050 key code: left</span><br />
<span style="font-family: Courier New, Courier, monospace;">scan code: 0x70051 key code: down</span><br />
<span style="font-family: Courier New, Courier, monospace;">scan code: 0x7004F key code: right</span><br />
<span style="font-family: Courier New, Courier, monospace;">scan code: 0x70028 key code: enter</span><br />
<span style="font-family: Courier New, Courier, monospace;">scan code: 0x70042 key code: volumedown</span><br />
<span style="font-family: Courier New, Courier, monospace;">scan code: 0x70043 key code: volumeup</span><br />
<span style="font-family: Courier New, Courier, monospace;">scan code: 0x7002A key code: pagedown</span><br />
<span style="font-family: Courier New, Courier, monospace;">scan code: 0x7002E key code: backspace</span><br />
<span style="font-family: Courier New, Courier, monospace;">scan code: 0x70029 key code: pageup</span><br />
<span style="font-family: Courier New, Courier, monospace;">^C</span><br />
<br />
This time as none of the keys send escape, I had to press control+c on the ssh terminal to end the test. As you can see the remapping works. Now, to make that happen automatically, we need to add a rule to <span style="font-family: Courier New, Courier, monospace;">/lib/udev/rules.d/95-keymap.rules</span> as follows:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">SUBSYSTEMS=="bluetooth", ATTRS{name}=="TomTom Remote", ATTRS{uniq}=="00:13:6C:*", RUN+="keymap $name tomtom-remote"</span><br />
<br />
Place that new line just before this line (i.e. near the top of the file),<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">SUBSYSTEMS=="bluetooth", GOTO="keyboard_end"</span><br />
<br />
What this does is filter for bluetooth keyboards with the name "TomTom Remote" and a MAC address belonging to the range assigned to TomTom. If you have more than one TomTom Remote and want to treat them differently, include the full MAC address (in my case, <span style="font-family: 'Courier New', Courier, monospace;">00:13:6C:BC:E1:CD</span>, as shown in the commands above).<br />
<br />
Getting that working was quite fiddly, since after each change I had to reboot to retest. The file on the Ubuntu Desktop machine where I originally did this has been replaced during a system upgrade. My original notes were on this <a href="http://www.moovida.com/forums/viewtopic.php?f=3&t=1369&start=15">thread on the (defunct) Moovida Forums</a>, the only trace of which I could find online was this <a href="http://www.kript.net/wordpress/?p=390">blog post</a> but sadly it lacked all the relevant details. [<a href="https://launchpad.net/moovida">Moovida v1</a> was an interesting open source Linux friendly media center owned by Fluendo, and the key-mapping above worked nicely with it. Sadly in v2 they went closed source and focussed on Windows, and development on v1 stalled, and so I lost interest. Anyway, back to the present...]<br />
<br />
Quite what the best remapping to use is depends on the primary application in mind of course - those three buttons in the middle of the remote appear to be used to match three context specific on-screen buttons in the original TomTom GUI. Right now I'm thinking of using either the <a href="http://www.blogger.com/2012/10/navit-gps-on-raspberry-pi.html">GPS software Navit on the Raspberry Pi</a>, or a media center connected to my TV.<br />
<br />
On a related note, see this blog post for using this <a href="http://norvangorgi.blogspot.co.uk/2011/10/using-tomtom-bluetooth-remote-with.html">TomTom BlueTooth Remote with Android</a> (also covering pairing and remapping the keys).<br />
<div>
<br />
P.S. If you want to buy your own <i>Bluetooth</i> TomTom Remote on eBay, there are some grey and black variations and currently the prices seem to start at about £15. There is also a variant Renault TomTom Bluetooth remote in black where the volume buttons have been replaced with a Map 2D/3D toggle and a menu key - that would probably work too.<br />
<br />
Watch out for the older cheaper TomTom remotes which are <strike><i>infra-red</i> (IR)</strike> radio frequency (RF) only.<br />
<br />
<h3>
Update (October 2013):</h3>
I was hoping to try using the TomTom bluetooth remote to control XBMC running under OpenElec, but <a href="http://openelec.tv/forum/104-bluetooth-remotes/51531-trying-to-connect-tomtom-bluetooth-remote">that wasn't so easy</a>. Instead I've <a href="http://astrobeano.blogspot.com/2013/10/raspberry-pi-xbmc-infrared-remote.html">added an infrared sensor to my Raspberry Pi</a> which was fairly simple to setup.</div>
Peter Cockhttp://www.blogger.com/profile/00233221181317137855noreply@blogger.com2tag:blogger.com,1999:blog-7275378574543326675.post-87730447173789829982012-10-15T11:36:00.001+01:002012-11-18T00:21:13.427+00:00Navit GPS on Raspberry PiI've got a <a href="http://astrobeano.blogspot.co.uk/2012/10/pharosmicrosoft-gps-360-on-raspberry-pi.html">USB GPS dongle working with my Raspberry Pi</a>, so I started exploring mapping software that I could run on it if I were to mount the RPi in my car with a little screen - the simple low resolution screens used for reverse parking cameras sold on eBay for under £20 look perfect.<br />
<br />
Two options came up, <a href="http://www.gpsdrive.de/">GpsDrive</a> and <a href="http://www.navit-project.org/">Navit</a> - both of which recommend map data from <a href="http://www.openstreetmap.org/">Open StreetMap</a>. Of these only Navit is available in the Debian/Raspian repository, so I tried that first.<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">$ sudo apt-get install gpsd gpsd-clients navit</span><br />
<br />
<a name='more'></a><br />
Since Navit is a graphical tool, you'll either need to run with a screen attached, or ssh in with X forwarding and display Navit on your computer. I did the later, there is hardly any GPS signal where our TV is, and I don't yet have any other suitable screen.<br />
<br />
Assuming gpsd is working and you're getting a good location from the GPS, when running Navit for the first time you get a black screen with a little green circle for your location - since it doesn't come with any useful maps pre-loaded.<br />
<br />
<b><u>Installing a Map</u></b><br />
<br />
I followed the wiki links to the <a href="http://maps5.navit-project.org/">Navit Planet Extractor </a>website, drilled down through the menu of pre-defined areas, picked Scotland, and waited for the map file to download. I then copied this to my RPi, and put it in a maps folder with a more meaningful name:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">$ mkdir maps</span><br />
<span style="font-family: Courier New, Courier, monospace;">$ mv osm_bbox_-8.1,54.5,-0.1,61.4.bin maps/osm_Scotland.bin</span><br />
<br />
Referring to their <a href="http://wiki.navit-project.org/index.php/Configuring_Navit">Navit configuration instructions</a>, I need to start by creating a configuration file based on the template provided, and then added the new map to it:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">$ cp /etc/navit/navit.xml ~/.navit/navit.xml</span><br />
<span style="font-family: Courier New, Courier, monospace;">$ sudo apt-get install emacs</span><br />
<span style="font-family: Courier New, Courier, monospace;">$ emacs </span><span style="font-family: 'Courier New', Courier, monospace;">~/.navit/navit.xml</span><br />
<span style="font-family: Courier New, Courier, monospace;"><br /></span>
<br />
Scanning the example configuration you come to a OpenStreetMap example entry:<br />
<div>
<span style="font-family: Courier New, Courier, monospace;"><br /></span></div>
<div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> <!-- Mapset template for openstreetmaps --></span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> <mapset enabled="no"></span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> <map type="binfile" enabled="yes" data="/media/mmc2/MapsNavit/osm_europe.bin"/></span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> </mapset></span></div>
</div>
<br />
<br />
So I copied that, switched it to enabled="yes", and pointed it at my new Scotland map file:<br />
<br />
<br />
<div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> <!-- Mapset template for openstreetmaps --></span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> <mapset enabled="yes"></span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> <map type="binfile" enabled="yes" data="/home/pi/maps/osm_Scotland.bin"/></span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> </mapset></span></div>
</div>
<br />
<br />
<br />
I also disabled the sample map. Next time I ran Navit, I saw this at the terminal, and a map on screen:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">navit:main_real:Using config file '/home/pi/.navit/navit.xml'</span><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-JyzoqMsw_ss/UHsoc3d14AI/AAAAAAAAA5s/CGh7MEb4rgc/s1600/Navit_Dundee.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="239" src="http://1.bp.blogspot.com/-JyzoqMsw_ss/UHsoc3d14AI/AAAAAAAAA5s/CGh7MEb4rgc/s320/Navit_Dundee.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Navit on Raspberry Pi showing Dundee using OpenStreetMap</td></tr>
</tbody></table>
Using the arrow keys moves the map. Pressing enter brings up a menu, again use the cursor keys to move, and escape goes back. Selecting the menu "Settings", "Maps", I could check it was looking at my new file. You can also control various things like orient the map North via the GUI, and switch the display mode (e.g. bright or for night driving). The proper way to shutdown Navit seems to be selecting the menu "Actions", "Quit".<br />
<br />
Since this Scotland map was only 126MB, I decided to download the entire British Isles. Using the mouse on the <a href="http://maps5.navit-project.org/">Navit Planet Extractor </a>website I picked bottom left (49.5, -11.2) and top right (61.1, 3.0), giving a 441MB file instead.<br />
<br />
There is in fact a <a href="http://maps.navit-project.org/planet.bin">Navit world map</a> available, at the time of writing 9.2GB in size (which would fit fine on a 16GB SDHC card if I really wanted to use it).<br />
<br />
<b><u>Building Navit from SVN</u></b> <br />
<div>
<br />
At this point I wondered if I could build Navit on the Raspberry Pi (see <a href="http://wiki.navit-project.org/index.php/Navit_on_Linux">Navit on Linux</a> instructions) from their SVN repository (recommended on their website), as the Raspbian package is already quite dated. Getting the build dependencies the easy way failed:</div>
<div>
<br /></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">$ sudo apt-get build-dep navit</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">Reading package lists... Done</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">Building dependency tree </span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">Reading state information... Done</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">E: You must put some 'source' URIs in your sources.list</span></div>
<div>
<br /></div>
<div>
Seems a little <a href="http://www.raspbian.org/RaspbianFAQ#What_do_I_need_in_my_sources.list_file_to_access_the_Raspbian_repository.3F">configuration is needed</a> perhaps? Having played with apt-rdepends, this seems to work instead - perhaps overkill:</div>
<div>
<br /></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">$ sudo apt-get install subversion espeak cmake freeglut3-dev imagemagick libdbus-1-dev libdbus-glib-1-dev libdevil-dev libfontconfig1-dev libfreetype6-dev libfribidi-dev libgarmin-dev libglc-dev libgps-dev libgtk2.0-dev libimlib2-dev libpq-dev libqt4-dev libqtwebkit-dev librsvg2-bin libsdl-image1.2-dev libspeechd-dev libxml2-dev ttf-liberation</span></div>
<div>
<br /></div>
<div>
And now the build - the output from cmake looked good, make itself took half an hour on the RPi:</div>
<div>
<br /></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">pi@raspberrypi ~ $ mkdir repositories</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">pi@raspberrypi ~ $ cd repositories</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">pi@raspberrypi ~/repositories $ sudo apt-get install cmake subversion build-essentials</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">pi@raspberrypi ~/repositories $ svn co https://navit.svn.sourceforge.net/svnroot/navit/trunk/navit/ navit</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">pi@raspberrypi ~/repositories $ cd navit</span></div>
<div>
<div>
<span style="font-family: Courier New, Courier, monospace;">pi@raspberrypi ~/repositories/navit $ mkdir build</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">pi@raspberrypi ~/repositories/navit $ cd build</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">pi@raspberrypi ~/repositories/navit/build $ cmake ..</span></div>
</div>
<div>
<div>
<span style="font-family: Courier New, Courier, monospace;">pi@raspberrypi ~/repositories/navit/build $ time make</span></div>
</div>
<div>
<br /></div>
<div>
The docs tell you to run this in place. We also have to update this configuration file as discussed above to use the new map:</div>
<div>
<br /></div>
<div>
<div>
<span style="font-family: Courier New, Courier, monospace;">pi@raspberrypi ~/repositories/navit/build $ cd navit/</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">pi@raspberrypi ~/repositories/navit/build/navit $ emacs navit.xml</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">pi@raspberrypi ~/repositories/navit/build/navit $ ./navit</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">Running from source directory</span></div>
</div>
<div>
<span style="font-family: Courier New, Courier, monospace;">vehicle_gpsd:vehicle_gpsd_try_open:Trying to connect to localhost:default</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">vehicle_gpsd:vehicle_gpsd_try_open:Connected to gpsd fd=5 evwatch=0x1c6f30</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">navit:vehicle_ref:refcount 2</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">navit:vehicle_unref:refcount 1</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">navit:main_real:Using config file '/home/pi/repositories/navit/build/navit/navit.xml'</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">...</span></div>
<div>
<br />
<u><b>Summary</b></u><br />
<br /></div>
Playing with the Scotland map the draw times and route planning seemed fine, and
the Raspberry Pi didn't seem short of RAM - so this would probably work
in a car. Of course, there are a few hurdles to jump - first of all, waiting for my little in car monitor to arrive from Hong Kong, and then <a href="http://wiki.navit-project.org/index.php/OSD_Layouts">configuring Navit for a low resolution screen</a> (or
reusing an existing Navit OSD). It would also be fun to setup Navit's
speech processing too (using espeak), which would mean adding a speaker as well.
Finally unless I go for a touch screen, I'd need a keyboard or mouse to
actually control Navit (although without this the default tracking mode
would still be useful). I have a plan for that...<br />
<br />
<b><u>Update</u></b><br />
<br />
See my next post on using a <a href="http://astrobeano.blogspot.com/2012/10/tomtom-bluetooth-remote-raspberry-pi.html">TomTom Bluetooth Remote with a Raspberry Pi</a>, including remapping the buttons.Peter Cockhttp://www.blogger.com/profile/00233221181317137855noreply@blogger.com16