<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;C0ABR307eyp7ImA9WhRbFU8.&quot;"><id>tag:blogger.com,1999:blog-4473618294892545516</id><updated>2012-02-06T11:49:16.303+02:00</updated><category term="geiger" /><category term="control" /><category term="challenge" /><category term="uav" /><category term="display" /><category term="ai" /><category term="airplane" /><category term="radiation" /><category term="7-segment" /><category term="shift register" /><category term="LM317" /><category term="voltmeter" /><category term="7803" /><category term="study" /><category term="voltage" /><category term="yaw" /><category term="video" /><category term="glow-in-the-dark" /><category term="linear" /><category term="7812" /><category term="photodiode" /><category term="arduino" /><category term="contest" /><category term="regulator" /><category term="soldering" /><category term="diy" /><category term="photography" /><category term="7815" /><category term="blinky" /><category term="game ai" /><category term="rc" /><category term="games" /><category term="78xx" /><category term="inventory" /><category term="experiment" /><category term="fashion" /><category term="electronics" /><category term="photo" /><category term="gamma" /><category term="7805" /><category term="design" /><category term="led" /><category term="components" /><category term="fun" /><category term="detector" /><category term="project" /><category term="frame" /><category term="op-amp" /><category term="avr" /><category term="vblog" /><title>The Null Nibble</title><subtitle type="html">Fun DIY projects &amp;amp; sweet technical crunchies</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://0000b.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://0000b.blogspot.com/" /><author><name>Andrei Sosnin</name><uri>http://www.blogger.com/profile/07658315434668184753</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_Pk8C9KYQDBc/TQPcmJBch7I/AAAAAAAAGOQ/qMTWvEePUfM/S220/mypicbw.png" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>18</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/TheNullNibble" /><feedburner:info uri="thenullnibble" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;D0cHR3c_eSp7ImA9Wx9UFk4.&quot;"><id>tag:blogger.com,1999:blog-4473618294892545516.post-7955221389346490421</id><published>2011-02-11T13:00:00.009+02:00</published><updated>2011-02-14T00:10:36.941+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-14T00:10:36.941+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="uav" /><category scheme="http://www.blogger.com/atom/ns#" term="rc" /><category scheme="http://www.blogger.com/atom/ns#" term="design" /><category scheme="http://www.blogger.com/atom/ns#" term="airplane" /><category scheme="http://www.blogger.com/atom/ns#" term="project" /><category scheme="http://www.blogger.com/atom/ns#" term="diy" /><title>WildFly UAV project &amp; home-built RC airplane</title><content type="html">&lt;p&gt;A group of people, me included, have decided to join forces in building a quadcopter UAV. I was given a responsibility for the hardware (structure) and low-level electronics part. We're planning to meet up next week to discuss it in detail.&lt;/p&gt;

&lt;p&gt;We're currently amassing some knowledge about other projects and whatever general wisdom has already been gathered so far about this topic by people around the world.&lt;/p&gt;

&lt;p&gt;The plan is to first make the basics: a physical model build with necessary minimum amount of equipment on board and make it fly &amp;mdash; in stable hover first at least. Then we hope to make gradual progress towards a small and effective payload carrier capable of autonomous flight. Our main inspiration (and probably development basis) is ArduCopter, but we're planning of using an Android smartphone as the higher-level onboard autopilot. Although I'm a bit skeptical about it, at least, it will be interesting to see, if it really works, and how well does it.&lt;/p&gt;

&lt;h2&gt;RC Airplane&lt;/h2&gt;

&lt;p&gt;There's another thing that I was thinking of building before summer this year, and it is an approximately 2-meter wingspan glider-type RC airplane, capable of carrying some photo/video equipment. The aim is the same &amp;mdash; build an FPV/aerial photography platform, but with a different approach &amp;mdash; making a fixed-wing aircraft instead of rotorcraft. I've been studying this topic for a while already and have gathered some insights about it with the help of a number of Internet web-sites (listed below, if you're interested). I feel like I'm ready to start designing and building my first-ever model. I'll give more details a bit later, when I get to draw some real plans.&lt;/p&gt;

&lt;p&gt;Here's a short list of the most helpful web-sites with detailed instructions and well-explained practical and theoretical aspects of RC aircraft modelling:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://adamone.rchomepage.com/guide.htm"&gt;RC Homepage comprehensive RC Aircraft Beginner's guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.instructables.com/id/Beginners-Guide-to-Radio-Control-Airplanes/"&gt;Instructables' Beginner's Guide to Radio Control Airplanes&lt;/a&gt; &amp;mdash; although repeats (and confirms) a lot of basics from the first guide, but does contain some little tips and tricks that the first omits.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.worldofkrauss.com/"&gt;Airfoil Investigation Database&lt;/a&gt; -- a database of airfoils (wing profiles) with all their improtant characteristics presented. Helps finding the right airfoil, when designing an aircraft from scratch and understand some details about wing physics on examples.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There's a number of challenges associated with the aircraft building, starting with budget allocation and remote control radio and other related electronics choice and ending with a whole set of design, construction and flying issues. I will try to report on my progress of solving all that.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4473618294892545516-7955221389346490421?l=0000b.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheNullNibble/~4/tbHyBUuTeIQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://0000b.blogspot.com/feeds/7955221389346490421/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://0000b.blogspot.com/2011/02/wildfly-uav-project-another-project-as.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/7955221389346490421?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/7955221389346490421?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullNibble/~3/tbHyBUuTeIQ/wildfly-uav-project-another-project-as.html" title="WildFly UAV project &amp; home-built RC airplane" /><author><name>Andrei Sosnin</name><uri>http://www.blogger.com/profile/07658315434668184753</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_Pk8C9KYQDBc/TQPcmJBch7I/AAAAAAAAGOQ/qMTWvEePUfM/S220/mypicbw.png" /></author><thr:total>1</thr:total><feedburner:origLink>http://0000b.blogspot.com/2011/02/wildfly-uav-project-another-project-as.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEEEQns7fCp7ImA9Wx9QFU8.&quot;"><id>tag:blogger.com,1999:blog-4473618294892545516.post-2989493978585618481</id><published>2010-12-04T16:09:00.072+02:00</published><updated>2010-12-28T10:56:43.504+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-28T10:56:43.504+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ai" /><category scheme="http://www.blogger.com/atom/ns#" term="games" /><category scheme="http://www.blogger.com/atom/ns#" term="challenge" /><category scheme="http://www.blogger.com/atom/ns#" term="contest" /><category scheme="http://www.blogger.com/atom/ns#" term="game ai" /><title>Google AI Challenge</title><content type="html">&lt;p&gt;The Google AI Challenge is finally over. I participated together with other ~4500 programmers and programming students from all over the world. My alias was '&lt;strong&gt;&lt;a href="http://ai-contest.com/profile.php?user_id=8564"&gt;deemoowoor&lt;/a&gt;&lt;/strong&gt;'.&lt;/p&gt;

&lt;p&gt;I've decided to follow the winner's and many other participators' example and release my source code. I believe it may be of use for educational analysis: there have certainly been genuinely nice ideas about the game strategy implemented and mistakes, that may be useful to get some insights from.&lt;/p&gt;

&lt;p&gt;The code is released on &lt;a href="https://github.com/deemoowoor/my-planetwars-bot"&gt;my GitHub&lt;/a&gt;. It's licensed under CC-BY-SA 3.0, so feel free to do anything with it as long as you give me credit and share your derivatives alike.&lt;/p&gt; 

&lt;p&gt;Here's an example of one of the last games: &lt;a href="http://ai-contest.com/visualizer.php?game_id=9559141" target="_blank"&gt;http://ai-contest.com/visualizer.php?game_id=9559141&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Some notable points about the bot and my participation in the competition:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I chose Python, because it's very easy and quick to write code in. Complex things can be expressed in simple terms. On the other hand, dynamic typing creates some issues during development (you have to run all of the code to be sure it doesn't have any of common problems with types, i.e. unit tests are a must).&lt;/li&gt;

&lt;li&gt;There was no unit testing used. Something I regret about now. Although I didn't really take the contest very seriously at first, once it took my mind over, I was too excited about the features (i.e. strategy options) of the bot, rather than common quality concerns. It was fine as long as the bot was relatively simple, but once it got more and more complex, taking more and more variables into account, it became harder and harder to make changes without creating regressions elsewhere. While extensive testing has been, of course, being done during development, it was way too time-consuming.&lt;/li&gt;

&lt;li&gt;All of the bot's strategy was designed based solely on my own analysis of the game as I watched the games visualized as well as analyzing extensive logs produced by the bot in debug mode. Again, as the bot became more and more complex and more and more variables were being used to determine best strategies and tactics, the logs got even longer, spanning several print pages for each step, where the amount of conquered planets on both sides got big enough.&lt;/li&gt;

&lt;li&gt;One of the problems was bot's performance. While first development iterations could be easily run on the contest servers, once I started using searches through all the planets for every kind of action for the bot to undertake, it quickly degraded to the point, where even on my 3-core 12600.01 BogoMIPS AMD Phenom computer with 3 gigs of RAM it took a whopping 0.7-1.0 seconds to compute just one step of the game. So I had to optimize, which was mostly resolved by &lt;a href="http://en.wikipedia.org/wiki/Memoization"&gt;memoizing&lt;/a&gt; everything I could. I know, many other participators did this, too, because it was inevitable for complex searches, which were needed to successfully compete on the Planet Wars battlefields. :) This was what I did during one of the last development iterations, where apparently a lot of bugs and functional regressions were introduced.&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;I would like to congratulate the winners of the contest and thank everyone else for participation. It was an educating and very entertaining experience for me!&lt;/p&gt;

&lt;p&gt;There were lots of positive emotions for me from my small victories during the contest. I did manage to get as high as about #30-50 overall a couple of times in the middle of it. Even though it doesn't mean much for the contest itself, it played an important role for me to further understanding the things that make me go in programming. And participating in competitions with some hope of winning or at least getting an honorable position on the final ranking table is certainly one of them.&lt;/p&gt;

&lt;h2&gt;Statistics&lt;/h2&gt;

Here are statistics based on data from &lt;a href="http://www.r-chart.com/2010/12/google-ai-challenge-languages-used-by.html"&gt;Google AI Challenge: Languages Used by the Best Programmers&lt;/a&gt; to give you an insight into some aspects of the contest:

&lt;a href="http://picasaweb.google.com/lh/photo/JBJ6fT_kvqTG0fBlol5-OA?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_Pk8C9KYQDBc/TPzTRWZwx8I/AAAAAAAAGLw/3n-1tjanC70/s640/GoogleAI_PtsDistOverall.png" height="404" width="640" /&gt;&lt;/a&gt;

&lt;p&gt;The above chart demonstrates the points distribution among all participants. Vertical axis is the amount of points, horizontal axis is the final ranking position. My approximate ranking position is highlighted in red.&lt;/p&gt;

&lt;p&gt;I wonder what does that anomaly at around 3000th place mean... There is a certain trend to follow an &lt;em&gt;n&lt;/em&gt; root plot, but then, at about 3010th position, it makes a slight but obvious dive. Is that the RageBot or starter package position? &lt;/p&gt;

&lt;a href="http://picasaweb.google.com/lh/photo/6aU8R1pPGes43pS8AL_qIQ?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_Pk8C9KYQDBc/TPzLcIOMyJI/AAAAAAAAGIg/QhFqTxsJR4o/s640/googleAI_stats.png" height="408" width="640" /&gt;&lt;/a&gt;

&lt;p&gt;Language-specific average point distribution chart together with standard deviations rendered as vertical lines (centered at the mean value). Groovy had a single contest entrant, so doesn't have deviation specified.&lt;/p&gt;

&lt;a href="http://picasaweb.google.com/lh/photo/xYpUz2UWW7gQaLzUoVP9Nw?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_Pk8C9KYQDBc/TPzLcCgd_YI/AAAAAAAAGIg/SJQhbBXmEGY/s640/GoogleAI_stats_abs.png" height="432" width="640" /&gt;&lt;/a&gt;

&lt;p&gt;Average amount of points gained by participators in each of the programming languages used.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4473618294892545516-2989493978585618481?l=0000b.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheNullNibble/~4/YlaiZdroy7I" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://0000b.blogspot.com/feeds/2989493978585618481/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://0000b.blogspot.com/2010/12/my-google-ai-challenge-participation.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/2989493978585618481?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/2989493978585618481?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullNibble/~3/YlaiZdroy7I/my-google-ai-challenge-participation.html" title="Google AI Challenge" /><author><name>Andrei Sosnin</name><uri>http://www.blogger.com/profile/07658315434668184753</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_Pk8C9KYQDBc/TQPcmJBch7I/AAAAAAAAGOQ/qMTWvEePUfM/S220/mypicbw.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_Pk8C9KYQDBc/TPzTRWZwx8I/AAAAAAAAGLw/3n-1tjanC70/s72-c/GoogleAI_PtsDistOverall.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://0000b.blogspot.com/2010/12/my-google-ai-challenge-participation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MGSXY_cCp7ImA9Wx9TF0Q.&quot;"><id>tag:blogger.com,1999:blog-4473618294892545516.post-9172340455642706545</id><published>2010-11-19T20:25:00.002+02:00</published><updated>2010-11-26T21:23:48.848+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-26T21:23:48.848+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="glow-in-the-dark" /><category scheme="http://www.blogger.com/atom/ns#" term="led" /><category scheme="http://www.blogger.com/atom/ns#" term="blinky" /><title>A glow-in-the-dark board using a PIN photodiode</title><content type="html">&lt;p&gt;Here's a small board I've soldered together yesterday for &lt;a href="http://0000b.blogspot.com/2010/11/blinky-lights-are-fashionable.html"&gt;Kristi&lt;/a&gt;'s next "electronic garment" project.&lt;/p&gt;

&lt;a href="http://picasaweb.google.com/lh/photo/PK5n8ybPijOPVHwh37UdYw?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_Pk8C9KYQDBc/TOa2IdQeeYI/AAAAAAAAGF4/khCvifjSUWo/s400/IMGP9904.jpg" height="400" width="386" /&gt;&lt;/a&gt;

&lt;a href="http://picasaweb.google.com/lh/photo/orH2Dcg2KjKJ7TduP7-R8g?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_Pk8C9KYQDBc/TOa2Ik-yYZI/AAAAAAAAGF8/PHu670Zkxfs/s400/IMGP9910.jpg" height="269" width="400" /&gt;&lt;/a&gt;

&lt;a href="http://picasaweb.google.com/lh/photo/xvvVRwjRZiFemLpd8x6qKg?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_Pk8C9KYQDBc/TOa2I4IugqI/AAAAAAAAGGA/rpuUczA3pkE/s400/IMGP9919.jpg" height="269" width="400" /&gt;&lt;/a&gt;

&lt;p&gt;The schematic was taken from an &lt;a href="http://www.evilmadscientist.com/article.php/darkpumpkin"&gt;Evil Mad Scientist post here&lt;/a&gt;, but was converted to a photodiode basis instead of a phototransistor used there (which is in essence a photodiode connected to a small signal transistor).&lt;/p&gt;

&lt;p&gt;It's a very simple thing doing a very simple thing: it makes LEDs glow in the darkness (or when there is little light hitting the photodiode, to be precise) and dim them out in the light.&lt;/p&gt;

&lt;p&gt;The LED on the board is there for testing. It's not soldered in and can be removed easily. The green wires are for the LED connection. Black/red are for power, which is expected to be around 3-5 V, but can probably also get to as high as 9 V. The wires are not mandatory and are there for convenience, cut off to fit.&lt;/p&gt;

&lt;p&gt;This also happens to be my first significant soldering project since 1995. :)&lt;/p&gt;

&lt;p&gt;I've also tried the prototype board for the first time and it turned out to be fairly easy to handle. I used components' leads to make it easier to solder connections on the copper side. everything else was basically done solely by the soldering grease magic. :)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4473618294892545516-9172340455642706545?l=0000b.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheNullNibble/~4/1DpBhfdE2DM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://0000b.blogspot.com/feeds/9172340455642706545/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://0000b.blogspot.com/2010/11/glow-in-dark-board-with-pin-photodiode.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/9172340455642706545?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/9172340455642706545?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullNibble/~3/1DpBhfdE2DM/glow-in-dark-board-with-pin-photodiode.html" title="A glow-in-the-dark board using a PIN photodiode" /><author><name>Andrei Sosnin</name><uri>http://www.blogger.com/profile/07658315434668184753</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_Pk8C9KYQDBc/TQPcmJBch7I/AAAAAAAAGOQ/qMTWvEePUfM/S220/mypicbw.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_Pk8C9KYQDBc/TOa2IdQeeYI/AAAAAAAAGF4/khCvifjSUWo/s72-c/IMGP9904.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://0000b.blogspot.com/2010/11/glow-in-dark-board-with-pin-photodiode.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UGSHY8fip7ImA9Wx5aGU0.&quot;"><id>tag:blogger.com,1999:blog-4473618294892545516.post-8750436494282456182</id><published>2010-11-15T17:37:00.002+02:00</published><updated>2010-11-16T11:53:49.876+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-16T11:53:49.876+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="fashion" /><category scheme="http://www.blogger.com/atom/ns#" term="led" /><category scheme="http://www.blogger.com/atom/ns#" term="blinky" /><title>Blinky lights are fashionable!</title><content type="html">A friend of my friend, Kristi Kuusk, an Estonian arts student, is experimenting with some garment designs with conductive fabrics and LEDs, and I feel like sharing: &lt;strong&gt;&lt;a href="http://www.kristikuusk.com/?cat=3"&gt;Kristi Kuusk: Projects&lt;/a&gt;&lt;/strong&gt;. 

&lt;p&gt;&lt;img src="http://www.kristikuusk.com/wp-content/uploads/2010/11/Led-dress-657x318.jpg" /&gt;&lt;/p&gt;

&lt;p&gt;These are not really blinky, but they do shine. Also, the concept is there and it's only a start! Looks really good so far.&lt;/p&gt;

&lt;p&gt;This stuff is getting crazy popular in the West &amp;mdash; judging on the amount of stuff written in all kinds of DIY blogs about it &amp;mdash; but was not so much here, in Estonia. And so, at last, we're getting there, too!&lt;/p&gt;

&lt;p&gt;Well, I, for one, welcome our new LED-flashing conductive-cloth-wearing overlords! :) My best wishes to Kristi!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4473618294892545516-8750436494282456182?l=0000b.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheNullNibble/~4/fl_Y6jNQqgM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://0000b.blogspot.com/feeds/8750436494282456182/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://0000b.blogspot.com/2010/11/blinky-lights-are-fashionable.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/8750436494282456182?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/8750436494282456182?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullNibble/~3/fl_Y6jNQqgM/blinky-lights-are-fashionable.html" title="Blinky lights are fashionable!" /><author><name>Andrei Sosnin</name><uri>http://www.blogger.com/profile/07658315434668184753</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_Pk8C9KYQDBc/TQPcmJBch7I/AAAAAAAAGOQ/qMTWvEePUfM/S220/mypicbw.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://0000b.blogspot.com/2010/11/blinky-lights-are-fashionable.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YHSX0zfSp7ImA9Wx9bGEQ.&quot;"><id>tag:blogger.com,1999:blog-4473618294892545516.post-3368403515603199208</id><published>2010-09-18T20:30:00.004+03:00</published><updated>2011-02-28T13:05:38.385+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-28T13:05:38.385+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="arduino" /><category scheme="http://www.blogger.com/atom/ns#" term="photography" /><category scheme="http://www.blogger.com/atom/ns#" term="avr" /><category scheme="http://www.blogger.com/atom/ns#" term="photodiode" /><title>Flash driven photography snapshot trigger</title><content type="html">&lt;p&gt;The idea to make such a device originated on the &lt;a href="http://www.devclub.eu"&gt;DevClub&lt;/a&gt; &lt;a href="http://groups.google.com/group/devclub-estonia/browse_thread/thread/27122019b9116466"&gt;mail-list&lt;/a&gt; (in Russian). 

&lt;p&gt;This is how it looks on a breadboard:&lt;/p&gt;

&lt;a href="http://smg.photobucket.com/albums/v466/tomatensaft/electronics/?action=view&amp;current=IMGP9669DNG.jpg" target="_blank"&gt;&lt;img src="http://img.photobucket.com/albums/v466/tomatensaft/electronics/IMGP9669DNG.jpg" border="0" alt="barebones arduino flash driven switch"&gt;&lt;/a&gt;

&lt;p&gt;
The PIN photodiode (the little square on top right edge of the photo, left of the button) is used to detect light. It is connected to ATmega8L chip's ADC0 pin. There are also 4 LEDs connected to digital output pins and an LCD module, also connected via 6 digital pins on the chip. There is also a potentiometer (on the left of the chip) used to set the ADC reference voltage (AREF pin) for the chip, effectively regulating the light detector's sensitivity.

&lt;p&gt;
The LCD displays raw values returned by the 10-bit ADC: rightmost "p" and "c" values display the values continuously measured by the ADC once every second. The leftmost two values are the ones measured, when the chip first detected a sharp increase in light level, which also results in a sharp increase in voltage on the ADC0 pin.

&lt;p&gt;
The effective sampling rate is only about 1.8-2.2 kHz. It's not much, but it's enough.

&lt;p&gt;
This thing was programmed using Arduino. Publicly available on  &lt;a href="http://gist.github.com/585875"&gt;gist.github.com here&lt;/a&gt;.

&lt;p&gt;Works perfectly with my Pentax K-m, making the second LED light up even when the stock flash goes off from more than 4 meters away (indoors). Doesn't work as well with Nikon Coolpix 7500, though -- probably the flash is not as powerful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4473618294892545516-3368403515603199208?l=0000b.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheNullNibble/~4/e0tVbQKZJxM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://0000b.blogspot.com/feeds/3368403515603199208/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://0000b.blogspot.com/2010/09/flash-driven-photography-snapshot.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/3368403515603199208?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/3368403515603199208?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullNibble/~3/e0tVbQKZJxM/flash-driven-photography-snapshot.html" title="Flash driven photography snapshot trigger" /><author><name>Andrei Sosnin</name><uri>http://www.blogger.com/profile/07658315434668184753</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_Pk8C9KYQDBc/TQPcmJBch7I/AAAAAAAAGOQ/qMTWvEePUfM/S220/mypicbw.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://0000b.blogspot.com/2010/09/flash-driven-photography-snapshot.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4HSXozfCp7ImA9Wx9bGE4.&quot;"><id>tag:blogger.com,1999:blog-4473618294892545516.post-7088283269973380500</id><published>2010-09-11T16:10:00.017+03:00</published><updated>2011-02-27T22:18:58.484+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-27T22:18:58.484+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="electronics" /><category scheme="http://www.blogger.com/atom/ns#" term="arduino" /><category scheme="http://www.blogger.com/atom/ns#" term="study" /><category scheme="http://www.blogger.com/atom/ns#" term="led" /><category scheme="http://www.blogger.com/atom/ns#" term="diy" /><category scheme="http://www.blogger.com/atom/ns#" term="experiment" /><title>Using Atmel ATMega8 as a barebones minimal Arduino clone</title><content type="html">It's nothing new, that you can use Arduino software and a cheap ISP programmer (such as the &lt;a href="http://www.ladyada.net/make/usbtinyisp/"&gt;USBTinyISP by Adafruit&lt;/a&gt;) to program AVR microcontrollers. 

&lt;p&gt;So, long story short, I decided to make a simple photography flash-driven trigger, used for flash synchronization etc. To start, all I really needed was an AVR chip, a photodiode and a handful of LEDs to indicate results somehow. 

&lt;p&gt;It wasn't very hard to figure out, although there were a couple of caveats I'd like to share about. I almost burned the chip (or programmer) out, when trying to hook them up together -- you'll see why below. 

&lt;p&gt;So, here is the &lt;a href="http://arduino.cc/en/Hacking/PinMapping"&gt;Arduino pin mapping&lt;/a&gt;. Using this picture, you can figure out, which pins go where. Article called &lt;a href="http://todbot.com/blog/2009/05/26/minimal-arduino-with-atmega8/"&gt;Minimal Arduino with ATmega8&lt;/a&gt; describes a lot about it nicely. Moreover, it also describes, how to set up Arduino software to work with an AVR chip, which is set up to be driven by an internal oscillator. 

&lt;p&gt;You don't need an old Arduino board to program the chip, though, if you have a USBtinyISP programmer. This little board enables you to program any microcontroller, that supports the ICSP interface, which of course includes all AVR chips (&lt;a href="http://www.best-microcontroller-projects.com/pic-icsp.html"&gt;also possibly others, like PICs&lt;/a&gt;, but I'm not sure yet). For that we need only 6 wires: +5V power, ground, reset, clock, MISO and MOSI. Connecting those is well-described here: &lt;a href="http://itp.nyu.edu/physcomp/Tutorials/ArduinoBreadboard"&gt;Standalone Arduino&lt;/a&gt;, which also includes a HOWTO for setting up a crystal-based Arduino. Alternatively, you can find info &lt;a href="http://www.arduino.cc/playground/Learning/AtmegaStandalone"&gt;here&lt;/a&gt;. 

&lt;p&gt;One important caveat, though: if you look down to section 6 of the Standalone Arduino article, about bootloading the Arduino, you will see the pinout of the ICSP interface:

&lt;p&gt;
&lt;img src="http://itp.nyu.edu/physcomp/uploads/6pinAVRproghead.jpg"/&gt;

&lt;p&gt;Well, this is the pinout of the &lt;strong&gt;board header&lt;/strong&gt;, not the cable. On the cable (when you look at it from below) it's mirrored, which is visible on the other picture: 
&lt;p&gt;
&lt;img src="http://itp.nyu.edu/physcomp/uploads/6pinAVRprogcable.jpg"/&gt;

&lt;p&gt;Mixing it up together and then trying to connect it to the programmer &lt;em&gt;may&lt;/em&gt; make your chip or programmer to become permanently damaged, so be careful. I was lucky: I've made this mistake and the chip became too hot to touch in several seconds, but it did not apparently make any permanent damage to the chip, although I'm afraid it severely degraded its future lifetime... :)

&lt;p&gt;Another caveat is not to forget to connect both ground pins on the AVR chip to the ground (and not the AREF pin, which I did at first). It will appear like the chip works. In fact, in will work! But on-chip ADC won't. Luckily, it didn't burn out.

&lt;p&gt;Take your time to check every connection and the fact that it goes to the right pin twice before powering the whole setup up. 

&lt;p&gt;What I've also learned was that it is possible, and is quite easy, to program bare AVR chips with Arduino using any of the supported programmers (&lt;a href="http://www.ladyada.net/make/usbtinyisp/"&gt;USBtinyISP&lt;/a&gt; included!). 

&lt;p&gt;The key benefit is: &lt;strong&gt;no bootloader is needed then&lt;/strong&gt;! It eliminates the boot-up delay and it saves 1-2 KB of flash memory on the chip (which is almost 1/4th of the whole amount on ATmega8!). 

&lt;p&gt;To do that, you only need a programmer and configure Arduino to use the programmer to upload the programs: &lt;a href="http://www.arduino.cc/en/Hacking/Programmer"&gt;more about it here&lt;/a&gt;.

&lt;p&gt;Here's an example schematic of what it looks like (together with a couple of LEDs attached to some of the free digital pins):&lt;/p&gt;

&lt;a href="http://smg.photobucket.com/albums/v466/tomatensaft/electronics/?action=view&amp;current=BarebonesArduino_bb.png" target="_blank"&gt;&lt;img src="http://img.photobucket.com/albums/v466/tomatensaft/electronics/BarebonesArduino_bb.png" border="0" alt="barebones arduino"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4473618294892545516-7088283269973380500?l=0000b.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheNullNibble/~4/RgHFpsxnZmU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://0000b.blogspot.com/feeds/7088283269973380500/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://0000b.blogspot.com/2010/09/using-atmel-atmega8-as-arduino.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/7088283269973380500?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/7088283269973380500?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullNibble/~3/RgHFpsxnZmU/using-atmel-atmega8-as-arduino.html" title="Using Atmel ATMega8 as a barebones minimal Arduino clone" /><author><name>Andrei Sosnin</name><uri>http://www.blogger.com/profile/07658315434668184753</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_Pk8C9KYQDBc/TQPcmJBch7I/AAAAAAAAGOQ/qMTWvEePUfM/S220/mypicbw.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://0000b.blogspot.com/2010/09/using-atmel-atmega8-as-arduino.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkYAQH04fCp7ImA9Wx5RFkk.&quot;"><id>tag:blogger.com,1999:blog-4473618294892545516.post-1757096381077130492</id><published>2010-08-22T11:13:00.006+03:00</published><updated>2010-08-24T13:02:21.334+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-24T13:02:21.334+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="control" /><category scheme="http://www.blogger.com/atom/ns#" term="yaw" /><category scheme="http://www.blogger.com/atom/ns#" term="uav" /><category scheme="http://www.blogger.com/atom/ns#" term="design" /><category scheme="http://www.blogger.com/atom/ns#" term="diy" /><title>Yaw control ideas</title><content type="html">That yaw control problem, I've read about yesterday, puzzled me. Then I got an idea, that it can be solved by vectoring part of thrust sideways using vertical control surfaces underneath the rotors. 
&lt;p&gt;
By changing attitude of these control surfaces sideways in a circular pattern, the part of the thrust will be deflected sideways and a horizontal torque will be created, which will induce yaw on the whole aircraft, rotating it around its center. 
&lt;p&gt;
Same control surfaces can be used to counteract parasitic yaw when applying pitch and roll controls to the aircraft.

&lt;p&gt;Thrust vectoring surfaces can be controlled using servos in the same way they're used in model aircraft. To make these control surfaces yaw-only, just one servo (two will be better, though) and some thick rigid steel wire is needed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4473618294892545516-1757096381077130492?l=0000b.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheNullNibble/~4/0kJ1V09PPOA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://0000b.blogspot.com/feeds/1757096381077130492/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://0000b.blogspot.com/2010/08/yaw-control-ideas.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/1757096381077130492?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/1757096381077130492?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullNibble/~3/0kJ1V09PPOA/yaw-control-ideas.html" title="Yaw control ideas" /><author><name>Andrei Sosnin</name><uri>http://www.blogger.com/profile/07658315434668184753</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_Pk8C9KYQDBc/TQPcmJBch7I/AAAAAAAAGOQ/qMTWvEePUfM/S220/mypicbw.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://0000b.blogspot.com/2010/08/yaw-control-ideas.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE4FQXo9eip7ImA9Wx5RFEs.&quot;"><id>tag:blogger.com,1999:blog-4473618294892545516.post-224707840628811108</id><published>2010-08-21T00:38:00.023+03:00</published><updated>2010-08-22T10:41:50.462+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-22T10:41:50.462+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="frame" /><category scheme="http://www.blogger.com/atom/ns#" term="uav" /><category scheme="http://www.blogger.com/atom/ns#" term="design" /><category scheme="http://www.blogger.com/atom/ns#" term="diy" /><title>Thrust, weight and other interesting numbers</title><content type="html">&lt;p&gt;
Unlike car motors, power has little practical sense for propellers. A helicopter's rotor can ultimately create zero work (thus generating zero power), but still be able to hover. In reality, it pushes lots of air downwards, making work there. But measuring airflow directly and precisely is hard. Measuring thrust is, on the other hand, quite easy: dynamo-meter will do.

&lt;p&gt;
The force of a rotor (hooked up to a motor) propelling a vehicle is called thrust and is measured in newtons (N) or kilograms (kg). 1 kg corresponds to 9.81 N, usually rounded to 10 N, which gives a hint that kilogram is a measure of &lt;a href="http://en.wikipedia.org/wiki/Weight"&gt;weight&lt;/a&gt;. It's not a coincidence: a rotor with a thrust of 1 kg can really pull up anything with a weight of up to 1 kg.

&lt;p&gt;
Now, considering the need to make sure that the remote-controlled (or autonomous) aircraft, that I'm trying to build, will actually fly, I need to make sure that its rotors will be able to pull it up from the ground. This means that total rotors thrust should be bigger than the total weight of the whole aircraft. The difference between the rotor's thrust and aircraft's weight should give us the net thrust, which can be either positive or negative. Divided by aircraft's mass, it gives us vertical acceleration:

&lt;p&gt;
&lt;i&gt;a&lt;/i&gt;&lt;sub&gt;vert&lt;/sub&gt; = (&lt;i&gt;T&lt;/i&gt; - &lt;i&gt;mg&lt;/i&gt;) / &lt;i&gt;m&lt;/i&gt;

&lt;p&gt;
where &lt;i&gt;T&lt;/i&gt; is total thrust, m is aircraft's mass and g is gravitational acceleration = 9.81 m/s&lt;sup&gt;2&lt;/sup&gt;. 

&lt;h2&gt;
The interesting numbers&lt;/h2&gt;

&lt;p&gt;
Since I need 4 motors for the quad, unit price is very important, since the total price is going to be 4x of that. I have to bear in mind, that for any motor I decide to buy, I will also need to get a corresponding ESC (electronic speed control) for each of them, or a &lt;a href="http://diydrones.com/profiles/blogs/gauging-interest-4-channel-esc"&gt;single four-channel ESC&lt;/a&gt;. I have a limited budget for this project, so the cheaper the stuff will be, the better (although I still want to get reasonable quality -- that means, be able to fly it more than 15 minutes).

&lt;p&gt;
So, looking at the &lt;a href="http://www.hobbyking.com/hobbyking/store/uh_listCategoriesAndProducts.asp?idCategory=63&amp;curPage=26&amp;v=l&amp;sortlist=P" target="_blank"&gt;choice of motors available&lt;/a&gt;, I've found out that the motors I want usually provide about 400-600 g of maximum thrust. The tricky issue here is to find a balance between the price of the motor and the ESC (bigger low Kv motors cost more, as well as high-current ESCs), while taking from it as much thrust as possible. 

&lt;p&gt;
Still, I think it's pretty safe to assume, that a decent cheap low-Kv motor can make about 400-500 g of thrust under a reasonable load of 7A with a big 10x4.5 propeller, and can give max output up to 600-800 g under max load. That makes it total "normal" thrust of 400 g &amp;times; 4 = 1600 g. This would be the maximum &lt;em&gt;safe&lt;/em&gt; takeoff weight of the aircraft I'm going to build. 

&lt;p&gt;
The total mass of the quad's frame would be about 250 g &amp;mdash; a 1 m piece of the 10 mm square aluminium profile weighs just 200 g, I would use one piece cut in two with an aluminium plate on both sides to attach them firmly together. By cutting just half of the profile in the cross point, I will save half of the rigidity of the aluminium profile. The loss should be compensated by the aluminium plates, that will hold it together. Refer to &lt;a href="http://0000b.blogspot.com/2010/08/first-sketches-of-quadcopter-uav-i-plan.html"&gt;my previous post&lt;/a&gt; to see the drawing illustrating this construction.

&lt;p&gt;
A big battery weighs about 250 g, ESCs &amp;mdash; some tens of grams, let's take it ~25 g x 4 = ~100 g total. Motors in the chosen category weigh about 30-60 g each. Power wiring can take up to 150 g of weight (thickness of wires is proportional to current, because they provide resistance and heat up proportionally to the amount of current going through them, and we want to keep the wires cool and lose less power to heat). Controller &amp; IMU is probably another 100 g. This gives us a total weight of 250 + 100 + 60 &amp;times; 4 + 150 + 100 = 840 g. 

&lt;p&gt;
With the total nominal thrust of rotors at 1600 grams, it should be able to fly pretty well. Maximum vertical acceleration at "nominal" thrust would be:

&lt;p&gt;&lt;i&gt;a&lt;/i&gt;&lt;sub&gt;vert&lt;/sub&gt; = (&lt;i&gt;T&lt;/i&gt; - &lt;i&gt;mg&lt;/i&gt;) / &lt;i&gt;m&lt;/i&gt; = (400 &amp;times; 4 - 840) / (840 / 9.81) = 8.88 m/s&lt;sup&gt;2&lt;/sup&gt;&lt;/p&gt;

&lt;p&gt;
This is 0.9 &lt;i&gt;g&lt;/i&gt;, which is to be added to the normal 1 &lt;i&gt;g&lt;/i&gt;, which makes it almost double the normal gravitational acceleration. This also means that I can put additional weight of about 600 g, until it begins to be overloaded (require more than nominal thrust to pull it up). That's more than enough, since my Nikon Coolpix 7500 camera weighs only 210 grams with batteries (and I can easily hack it to use the aircraft's battery power supply via e.g. the flight controller, which would make it about 140 g). Special radio-transmitting "spy" cameras weigh even less. So, this means I could put a bigger (~5-6Ah) battery (~450 g) for longer flights. 

&lt;p&gt;These of course are only rough &lt;em&gt;guesstimations&lt;/em&gt;. Actual performance will vary.

&lt;h3&gt;
A side note: placement of motors&lt;/h3&gt;

&lt;p&gt;
After looking around at &lt;a href="http://diydrones.com/profiles/blogs/gauging-interest-4-channel-esc"&gt;other's designs&lt;/a&gt;, I've noticed, that people tend to put their motors not on the ends of the beams, but exactly at their centers. With such setup, propeller tips are protected by the rigid beam tips (usually the tips are further improved by putting some round rubbery pieces there, so that both aircraft and surroundings are safe from hard hits). To improve that further, I would also put a thick piece of paracord or something similar around the beams (i.e. effectively connecting each beam with a cord). This way the quadcopter is going to be almost completely safe from any tall vertical obstacles (the rotors won't be damaged by hits against walls, posts, people running around, and when falling to the ground in steep angles :)). Ultimately I could make a wire mesh around propellers, but that would be an overkill -- and considerable weight added to the aircraft.

&lt;p&gt;
I think I will do it this way, too. Although I also think that it may make controlling pitch and roll of the aircraft precisely a little harder (less difference in thrust will be needed to change its roll and pitch, which will result in less precision of control). 

&lt;p&gt;
Another issue is yaw control (i.e. rotation over aircraft's vertical axis), as &lt;a href="http://vrhome.net/vassilis/2009/01/quadcopter-assembly-completed/"&gt;this blog post&lt;/a&gt; points out on the first note:

&lt;blockquote&gt;
Motor spacing plays a big role on stability and yaw control. I found that when the spacing was about 800mm (shaft to shaft) the yaw was nearly impossible to control, also the Quad was impossible to control because any slight change in the motor speed will result in a large change in attitude. The solution was to move the motors in as much as possible for a spacing of 460mm. With that spacing the yaw authority was much better, however yaw became more sensitive to motor alignment so it took a few tries to get the yaw to be stable.&lt;/blockquote&gt;

&lt;p&gt;
Yaw is controlled by spinning the counter-rotating rotors with different speeds (this applies to multi-rotor like quads, as well as coaxial and tandem helicopters). If one of the rotors rotates faster, it creates greater drag and thus creates rotational force to the aircraft. I believe that the 4 rotors on the quad should be controlled in such a way, that at least pairs of rotors, located on opposite sides of the frame would have equal speeds. Although optimal is having all 4 rotors to spin equally fast, it could be hard to achieve. Balancing two pairs of rotors is easier than balancing all 4 at once. 

&lt;p&gt;
This has to be taken into account, when designing and calibrating pitch and roll controls, because they will have an effect on yaw as well. For example, a simple naive approach to changing pitch of the aircraft would be to simply change the speed on just one of the rotors. This would instantly create a difference in rotor torques, which will make the aircraft rotate &amp;mdash; i.e. apply unneeded yaw (as well as pitch) to it. 

&lt;p&gt;
My idea of a better approach is to increase rotational speed &lt;i&gt;&amp;omega;&lt;/i&gt;&lt;sub&gt;1&lt;/sub&gt; on rotor R1, while proportionally decreasing it on R3 (&lt;i&gt;&amp;omega;&lt;/i&gt;&lt;sub&gt;3&lt;/sub&gt;), while also increasing speed on R2 and R4 pair proportionally to the difference between speeds of R1 and R3 (&amp;Delta;&lt;i&gt;&amp;omega;&lt;/i&gt; = &lt;i&gt;&amp;omega;&lt;/i&gt;&lt;sub&gt;1&lt;/sub&gt; - &lt;i&gt;&amp;omega;&lt;/i&gt;&lt;sub&gt;3&lt;/sub&gt;) and also creating a small difference in their speeds proportional to &lt;i&gt;&amp;omega;&lt;/i&gt;&lt;sub&gt;R1&lt;/sub&gt; - &lt;i&gt;&amp;omega;&lt;/i&gt;&lt;sub&gt;3&lt;/sub&gt;:

&lt;p&gt;
&lt;i&gt;&amp;omega;&lt;/i&gt;&lt;sub&gt;0&lt;/sub&gt; = &lt;i&gt;&amp;omega;&lt;/i&gt;&lt;sub&gt;1&lt;/sub&gt; = &lt;i&gt;&amp;omega;&lt;/i&gt;&lt;sub&gt;2&lt;/sub&gt; = &lt;i&gt;&amp;omega;&lt;/i&gt;&lt;sub&gt;3&lt;/sub&gt; = &lt;i&gt;&amp;omega;&lt;/i&gt;&lt;sub&gt;4&lt;/sub&gt;

&lt;p&gt;
&lt;i&gt;&amp;omega;&lt;/i&gt;&lt;sub&gt;1&lt;/sub&gt; = &lt;i&gt;&amp;omega;&lt;/i&gt;&lt;sub&gt;0&lt;/sub&gt; + 1/2 &amp;Delta;&lt;i&gt;&amp;omega;&lt;/i&gt;

&lt;p&gt;
&lt;i&gt;&amp;omega;&lt;/i&gt;&lt;sub&gt;3&lt;/sub&gt; = &lt;i&gt;&amp;omega;&lt;/i&gt;&lt;sub&gt;0&lt;/sub&gt; - 1/2 &amp;Delta;&lt;i&gt;&amp;omega;&lt;/i&gt;

&lt;p&gt;
&lt;i&gt;&amp;omega;&lt;/i&gt;&lt;sub&gt;2&lt;/sub&gt; = &lt;i&gt;&amp;omega;&lt;/i&gt;&lt;sub&gt;0&lt;/sub&gt; + &amp;Delta;&lt;i&gt;&amp;omega;&lt;/i&gt; (&lt;i&gt;x&lt;/i&gt; - &lt;i&gt;y&lt;/i&gt;) 

&lt;p&gt;
&lt;i&gt;&amp;omega;&lt;/i&gt;&lt;sub&gt;2&lt;/sub&gt; = &lt;i&gt;&amp;omega;&lt;/i&gt;&lt;sub&gt;0&lt;/sub&gt; + &amp;Delta;&lt;i&gt;&amp;omega;&lt;/i&gt; (&lt;i&gt;x&lt;/i&gt; + &lt;i&gt;y&lt;/i&gt;) 

&lt;p&gt;where &lt;i&gt;x&lt;/i&gt; and &lt;i&gt;y&lt;/i&gt; are coefficients to be determined experimentally&lt;/p&gt;
&lt;p&gt;
Increasing R2 and R4 speeds would increase the absolute values of counteracting forces, which would make the torque created by difference in R1 and R3 speeds smaller in comparison, but won't change pitch on that axis. This will lower the yaw drift, but probably won't eliminate it. This will also increase total thrust. I will need to investigate this important issue further.

&lt;h2&gt;
Putting it all together&lt;/h2&gt;

&lt;p&gt;
To be continued&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4473618294892545516-224707840628811108?l=0000b.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheNullNibble/~4/V9gsluPRCZY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://0000b.blogspot.com/feeds/224707840628811108/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://0000b.blogspot.com/2010/08/thrust-weight-and-other-interesting.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/224707840628811108?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/224707840628811108?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullNibble/~3/V9gsluPRCZY/thrust-weight-and-other-interesting.html" title="Thrust, weight and other interesting numbers" /><author><name>Andrei Sosnin</name><uri>http://www.blogger.com/profile/07658315434668184753</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_Pk8C9KYQDBc/TQPcmJBch7I/AAAAAAAAGOQ/qMTWvEePUfM/S220/mypicbw.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://0000b.blogspot.com/2010/08/thrust-weight-and-other-interesting.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcCRHozeCp7ImA9Wx5REk0.&quot;"><id>tag:blogger.com,1999:blog-4473618294892545516.post-5809768095885031305</id><published>2010-08-19T10:23:00.006+03:00</published><updated>2010-08-19T11:21:05.480+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-19T11:21:05.480+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="frame" /><category scheme="http://www.blogger.com/atom/ns#" term="uav" /><category scheme="http://www.blogger.com/atom/ns#" term="design" /><category scheme="http://www.blogger.com/atom/ns#" term="diy" /><title>First sketches of the quadcopter UAV I plan to make</title><content type="html">Here's what I've been working on lately: a to-scale sketch of the UAV's frame design. There are many viable variations, but this one fits my requirements best: it's simple, durable and provides possibilities for several layouts (e.g. putting the rotors between the frame beams, possibly in nacelles).&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_Pk8C9KYQDBc/TGzbeTEK-QI/AAAAAAAAF6E/yvp4n8l2n0Y/s1600/uav-schematic1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="451" src="http://2.bp.blogspot.com/_Pk8C9KYQDBc/TGzbeTEK-QI/AAAAAAAAF6E/yvp4n8l2n0Y/s640/uav-schematic1.png" width="640" style="border: 1px solid #000" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style="clear: both"&gt;&lt;/div&gt;&lt;br /&gt;
Here's the &lt;a href="http://docs.google.com/leaf?id=0B6vnl2rx0qoHN2U4OTJiNWItNjRjOS00MWFkLTllODQtYWU0YTBlMDIwNGI5&amp;sort=name&amp;layout=list&amp;num=50"&gt;original SVG&lt;/a&gt;. I've made it with &lt;a href="http://www.inkscape.org/"&gt;Inkscape&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4473618294892545516-5809768095885031305?l=0000b.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheNullNibble/~4/QUQWzB0L4-w" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://0000b.blogspot.com/feeds/5809768095885031305/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://0000b.blogspot.com/2010/08/first-sketches-of-quadcopter-uav-i-plan.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/5809768095885031305?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/5809768095885031305?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullNibble/~3/QUQWzB0L4-w/first-sketches-of-quadcopter-uav-i-plan.html" title="First sketches of the quadcopter UAV I plan to make" /><author><name>Andrei Sosnin</name><uri>http://www.blogger.com/profile/07658315434668184753</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_Pk8C9KYQDBc/TQPcmJBch7I/AAAAAAAAGOQ/qMTWvEePUfM/S220/mypicbw.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_Pk8C9KYQDBc/TGzbeTEK-QI/AAAAAAAAF6E/yvp4n8l2n0Y/s72-c/uav-schematic1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://0000b.blogspot.com/2010/08/first-sketches-of-quadcopter-uav-i-plan.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4NQHo7cCp7ImA9Wx5SFUw.&quot;"><id>tag:blogger.com,1999:blog-4473618294892545516.post-5986979535606033871</id><published>2010-08-06T19:29:00.023+03:00</published><updated>2010-08-11T11:23:11.408+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-11T11:23:11.408+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="study" /><category scheme="http://www.blogger.com/atom/ns#" term="op-amp" /><category scheme="http://www.blogger.com/atom/ns#" term="diy" /><category scheme="http://www.blogger.com/atom/ns#" term="radiation" /><category scheme="http://www.blogger.com/atom/ns#" term="experiment" /><title>PIN-diode light measurement circuit</title><content type="html">Here's what I've found on &lt;a href="http://www.allaboutcircuits.com/vol_3/chpt_9/8.html"&gt;All about circuits&lt;/a&gt; today:&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://sub.allaboutcircuits.com/images/03455.png"/&gt;&lt;br /&gt;
&lt;br /&gt;
Doesn't that look very similar to the &lt;a href="http://www.maxim-ic.com/app-notes/index.mvp/id/2236"&gt;&amp;gamma;-detector circuit&lt;/a&gt; below (not the whole circuit, of course, but the detector and the first stage amplifier part of it)?&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://www.maxim-ic.com/images/appnotes/2236/2236Fig01.gif"/&gt;&lt;br /&gt;
&lt;br /&gt;
Except for the 10nF capacitor on the op-amp input and a connection to a 12 V voltage source via 1 and 10 M&amp;Omega; resistors (which I still don't understand), the first-stage of the circuit is almost identical! The non-inverting input in the &amp;gamma;-detector circuit is simply adjustable to measure the difference not with ground, but with a voltage of 2.885V to 3.078V (this is how much adjustable it is). &lt;br /&gt;
&lt;br /&gt;
There is also an interesting effect, then quickly changing the amount of light coming to the photodiode, the voltage increases and decreases slowly. I haven't yet figured out if this is intended or not and whether it has any specific meaning in the context of this circuit.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;PIN diode's photovoltaic effect&lt;/h2&gt;&lt;br /&gt;
Now, here's another phenomenon I've unexpectedly encountered while trying to build this simple circuit presented by "All About Circuits": looks like a PIN diode can &lt;strong&gt;generate&lt;/strong&gt; electricity! And in fact, this is exactly how it can be described here: light makes the PIN diode generate voltage and thus drive the op-amp to amplify this signal. &lt;br /&gt;
&lt;br /&gt;
Actually, I remember now reading about it somewhere, and quickly forgetting it, since I have instantly assumed it was too small to be even measured by my cheap multimeter. Well, it turned out I was wrong (again): it actually responds to the light quite well, with my room ambient light resulting in about 210mV of potential difference. My fairly powerful LED spotlight has been driving it to about 360mV (not as much as I had expected, but we've got to keep in mind, that it's white (blueish) LED spotlight, not IR). And this PIN photodiode (SFH203FA) is quite sensitive too: even when almost completely covered by a foil bag it produces about 5 to 10 mV of potential difference on its leads... &lt;br /&gt;
&lt;br /&gt;
This sensitivity constitutes a problem, though, since 5 &amp;mdash; 10mV it can produce in almost complete darkness, may interfere with my &amp;gamma;-photon detection effort! I guess, I'll have to find a way to cover it in a complete light-absorbing or reflecting layer of something...&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;The gamma-particle detector circuit built again&lt;/h2&gt;&lt;br /&gt;
Starting from the first circuit above, I've managed to build the circuit as proposed by MAXIM's  application note, but instead of using a comparator, I have used a TDA2322m amplifier to pick the sound on a speaker and driving all the amplifiers on 12V, not 5V. Despite it generating quite a lot of white noise (I wonder why, BTW: is it the circuit's intrinsic thermal noise or some kind of radio pickup?), it did let through some of the light-induced vibration, but it kept silent when left working in the dark...&lt;br /&gt;
&lt;br /&gt;
The 12V "pull-up" on the photodiode obviously works as a very slow potential "equalizer" for the op-amp input -- when light is applied on the photodiode, the voltage slowly increases and vice versa. My understanding it that this helps to filter out any light-induced "interference" on the photodiode to make it more responsive to changes in photodiode voltages, as opposed to its constant levels, generated by any light hitting it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4473618294892545516-5986979535606033871?l=0000b.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheNullNibble/~4/_CY-WM9-F90" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://0000b.blogspot.com/feeds/5986979535606033871/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://0000b.blogspot.com/2010/08/pin-diode-low-light-measurement-circuit.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/5986979535606033871?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/5986979535606033871?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullNibble/~3/_CY-WM9-F90/pin-diode-low-light-measurement-circuit.html" title="PIN-diode light measurement circuit" /><author><name>Andrei Sosnin</name><uri>http://www.blogger.com/profile/07658315434668184753</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_Pk8C9KYQDBc/TQPcmJBch7I/AAAAAAAAGOQ/qMTWvEePUfM/S220/mypicbw.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://0000b.blogspot.com/2010/08/pin-diode-low-light-measurement-circuit.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUCSHkycCp7ImA9Wx5SEkU.&quot;"><id>tag:blogger.com,1999:blog-4473618294892545516.post-8638299725014641517</id><published>2010-08-05T21:33:00.003+03:00</published><updated>2010-08-08T19:01:09.798+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-08T19:01:09.798+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="photo" /><category scheme="http://www.blogger.com/atom/ns#" term="electronics" /><category scheme="http://www.blogger.com/atom/ns#" term="fun" /><title>Just for fun: photo of a bare microchip</title><content type="html">&lt;a href="http://smg.photobucket.com/albums/v466/tomatensaft/electronics/?action=view&amp;current=IMGP9332.jpg" target="_blank"&gt;&lt;img src="http://img.photobucket.com/albums/v466/tomatensaft/electronics/th_IMGP9332.jpg" border="0" alt="Chip compared to a DIP8" &gt;&lt;/a&gt;&lt;a href="http://smg.photobucket.com/albums/v466/tomatensaft/electronics/?action=view&amp;current=IMGP9331.jpg" target="_blank"&gt;&lt;img src="http://img.photobucket.com/albums/v466/tomatensaft/electronics/th_IMGP9331.jpg" border="0" alt="A microchip" &gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
This is a microchip extracted from a toy RC car. Most likely a sound chip, since it was on a sound FX board. The plain part is probably its sound memory, all the rest is actual logic.&lt;br /&gt;
&lt;br /&gt;
On the left of the chip is a salvaged &lt;a href="http://www.st.com/stonline/products/literature/ds/1464/tda2822m.pdf"&gt;TDA2822M stereo audio amplifier&lt;/a&gt; IC, from the same RC car.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4473618294892545516-8638299725014641517?l=0000b.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheNullNibble/~4/FJp9YiGi1tI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://0000b.blogspot.com/feeds/8638299725014641517/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://0000b.blogspot.com/2010/08/just-for-fun-photo-of-bare-microchip.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/8638299725014641517?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/8638299725014641517?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullNibble/~3/FJp9YiGi1tI/just-for-fun-photo-of-bare-microchip.html" title="Just for fun: photo of a bare microchip" /><author><name>Andrei Sosnin</name><uri>http://www.blogger.com/profile/07658315434668184753</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_Pk8C9KYQDBc/TQPcmJBch7I/AAAAAAAAGOQ/qMTWvEePUfM/S220/mypicbw.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://0000b.blogspot.com/2010/08/just-for-fun-photo-of-bare-microchip.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkIHSHg8cCp7ImA9Wx5SEE4.&quot;"><id>tag:blogger.com,1999:blog-4473618294892545516.post-9042714141494329404</id><published>2010-08-05T00:48:00.010+03:00</published><updated>2010-08-05T20:48:59.678+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-05T20:48:59.678+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="electronics" /><category scheme="http://www.blogger.com/atom/ns#" term="arduino" /><category scheme="http://www.blogger.com/atom/ns#" term="study" /><category scheme="http://www.blogger.com/atom/ns#" term="op-amp" /><category scheme="http://www.blogger.com/atom/ns#" term="experiment" /><title>Status update: learning to use op-amps</title><content type="html">Using op-amps is not as easy as it may seem... &lt;br /&gt;
&lt;br /&gt;
I've found a nice article with very informative animations, but it doesn't seem to be exactly that way, at least not for me with my TL072CN op-amps... Here's the article: &lt;a href="http://talkingelectronics.com/projects/OP-AMP/OP-AMP-1.html"&gt;"The op-amp"&lt;/a&gt;. It did help me understand what the hell negative feedback is and why is it used in operational amplifiers. Another great source of explanations to electronics: &lt;a href="http://www.allaboutcircuits.com/vol_3/chpt_8/1.html"&gt;All about circuits: op-amps&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
The latter, &lt;a href="http://www.allaboutcircuits.com/"&gt;"All about circuits"&lt;/a&gt;, is an excellent guide to electronics with very nice balance between detail and clarity of explanations. It has explained virtually every phenomenon I have encountered with the op-amps so far. &lt;br /&gt;
&lt;br /&gt;
&lt;table style="width:auto;"&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.co.uk/lh/photo/0GqwECJ07uE749TDrIhOkw?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_Pk8C9KYQDBc/TFnXk_icdbI/AAAAAAAAF3g/4GN9TXtP1mI/s288/IMGP9324.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.co.uk/lh/photo/lS4cj6X2j2OtWHzu56lQ6g?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_Pk8C9KYQDBc/TFnXlPK7qOI/AAAAAAAAF3o/KlQxLVCrRgo/s288/IMGP9326.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style="font-family:arial,sans-serif; font-size:11px; text-align:right"&gt;Альбом: &lt;a href="http://picasaweb.google.co.uk/tomatensaft/ElectronicStuff?feat=embedwebsite"&gt;Electronic stuff&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;&lt;br /&gt;
&lt;h3&gt;Arduino, the experimentor's friend&lt;/h3&gt;&lt;br /&gt;
These pictures illustrate how useful can Arduino be for such experiments... I've used 3 analog inputs to measure the voltages in several places across the circuit and it really helped me a lot: I could see how output changes in relation to the change in the input (which I varied using the good-ol' voltage divider potentiometer, actually, a pair of them -- one coarse, another for fine tuning). &lt;br /&gt;
&lt;br /&gt;
When adjusting the inverting (-) input voltage to about the same as the non-inverting (+), I've discovered that there was a lot of noise coming from the output. It's definitely mostly Arduino connected to my computer via USB...&lt;br /&gt;
&lt;br /&gt;
There's only one way to find out: unplug Arduino and try the experiment without it. Which is exactly what I plan to do next -- tomorrow!&lt;br /&gt;
&lt;br /&gt;
Replugging Arduino to a separate power supply did not help much, by the way -- it still gives some noise, although it is smaller, than with the Arduino board working near the op-amp circuit.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Update&lt;/strong&gt;: it turned out that indeed Arduino was the offender, but not only it. In fact, simply plugging in an unregulated power supply to it gives even more noise -- that was even pretty loud on the speaker! Giving voltage to the op-amp via a 7805 voltage regulator (or anything similar, I suppose) gave me a virtually noiseless output -- at least nothing, that I could hear from the loudspeaker anymore. This would mean that using a regulator in a circuit such as the &lt;a href="http://0000b.blogspot.com/p/project-1-detector-based-on-pin.html"&gt;&amp;gamma;-radiation detector&lt;/a&gt; is clearly a must.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4473618294892545516-9042714141494329404?l=0000b.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheNullNibble/~4/Z8zCKToZ3U0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://0000b.blogspot.com/feeds/9042714141494329404/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://0000b.blogspot.com/2010/08/status-update-learning-to-use-op-amps.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/9042714141494329404?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/9042714141494329404?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullNibble/~3/Z8zCKToZ3U0/status-update-learning-to-use-op-amps.html" title="Status update: learning to use op-amps" /><author><name>Andrei Sosnin</name><uri>http://www.blogger.com/profile/07658315434668184753</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_Pk8C9KYQDBc/TQPcmJBch7I/AAAAAAAAGOQ/qMTWvEePUfM/S220/mypicbw.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/_Pk8C9KYQDBc/TFnXk_icdbI/AAAAAAAAF3g/4GN9TXtP1mI/s72-c/IMGP9324.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://0000b.blogspot.com/2010/08/status-update-learning-to-use-op-amps.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0IEQHc_fSp7ImA9Wx5TF04.&quot;"><id>tag:blogger.com,1999:blog-4473618294892545516.post-3127613630120546796</id><published>2010-08-01T13:16:00.045+03:00</published><updated>2010-08-02T11:58:21.945+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-02T11:58:21.945+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="arduino" /><category scheme="http://www.blogger.com/atom/ns#" term="display" /><category scheme="http://www.blogger.com/atom/ns#" term="7-segment" /><category scheme="http://www.blogger.com/atom/ns#" term="led" /><category scheme="http://www.blogger.com/atom/ns#" term="voltage" /><category scheme="http://www.blogger.com/atom/ns#" term="voltmeter" /><category scheme="http://www.blogger.com/atom/ns#" term="shift register" /><title>An Arduino-based home-brew voltmeter</title><content type="html">Today in the morning I came up with a simple circuit to learn using shift registers, such as the NXP 74HC164N. I decided to try it out as a serial-to-parallel converter and it quickly worked, something I am really happy about. :) &lt;br /&gt;
&lt;br /&gt;
&lt;div style="float: left"&gt;&lt;a href="http://smg.photobucket.com/albums/v466/tomatensaft/electronics/?action=view&amp;current=ArduVoltmeter_bb.png" target="_blank"&gt;&lt;img src="http://img.photobucket.com/albums/v466/tomatensaft/electronics/ArduVoltmeter_bb.png" border="0" width="350" style="width: 350px" alt="arduino,study,experiments"&gt;&lt;/a&gt; &lt;a href="http://smg.photobucket.com/albums/v466/tomatensaft/electronics/?action=view&amp;current=IMGP9305.jpg" target="_blank"&gt;&lt;img src="http://img.photobucket.com/albums/v466/tomatensaft/electronics/IMGP9305.jpg" border="0" width="350" style="width: 350px" alt="Homebrew breadboard voltmeter"&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;object width="640" height="505"&gt;&lt;param name="movie" value="http://www.youtube.com/v/sC8iBAhYszk&amp;amp;hl=ru_RU&amp;amp;fs=1?rel=0&amp;amp;color1=0x3a3a3a&amp;amp;color2=0x999999"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/sC8iBAhYszk&amp;amp;hl=ru_RU&amp;amp;fs=1?rel=0&amp;amp;color1=0x3a3a3a&amp;amp;color2=0x999999" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="505"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
There was some usual pain in setting up the 7-segment display wires so that they go in a standard A-B-C-D-E-F-G-dot way and the &lt;a href="http://en.wikipedia.org/wiki/Seven-segment_display"&gt;standard control codes&lt;/a&gt; can be used. These segments are not aligned the same way as they're usually addressed and there is no way of getting rid of that wire mess, at least not without compromising their positioning... But once it's done and verified, the result is rewarding. :)&lt;br /&gt;
&lt;br /&gt;
It quickly came to me as an idea to make this output a bit more interesting than just sequential numbers (as I initially did), so I hooked up an Arduino's analog lead to a potentiometer in a &lt;a href="http://en.wikipedia.org/wiki/Voltage_divider"&gt;voltage dividing circuit&lt;/a&gt; fed by 3.3V source from the Arduino board.&lt;br /&gt;
&lt;br /&gt;
In order to multiplex 3 seven-segment LED displays, only 6 control wires are required: 3 for switching between individual display digits, 3 others to control the shift-register: data, master reset and clock signal -- to set the most/least significant bit to a specific value, to reset all the bits and to shift the bits respectively. &lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;So how does the shift register work?&lt;/h3&gt;&lt;br /&gt;
It's very simple, really: set the register's input to a desired bit value (either HIGH or LOW) and then simply toggle the clock signal from LOW to HIGH and back to LOW again. The trick is to make sure, that by the time clock impulse goes back to low the shift operation manages to perform. &lt;br /&gt;
&lt;br /&gt;
The time it takes for a logical operation to be performed by a logical IC is called &lt;em&gt;propagation time&lt;/em&gt;. In the case of 74HC164 it's in the order of 100-200 nanoseconds, which is roughly equivalent to 5-10 MHz clock rate. Since the code given below works, it obviously means that in Arduino, with AVR working at clock rate of 16 MHz, it takes more than 2 clock cycles to call the &lt;code&gt;digitalWrite&lt;/code&gt; function. &lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Arduino source-code&lt;/h3&gt;&lt;br /&gt;
I've written the comments as verbose as possible:&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 90%"&gt;&lt;code&gt;

// This represents pins on the Arduino board. Modify these numbers to match your 
// particular setup
const int CLK = 5, MRESET = 6, DATA = 2, DIGIT1 = 3, DIGIT2 = 4, DIGIT3 = 7;

// These were taken straight out of http://en.wikipedia.org/wiki/Seven-segment_display
// If you hook up your 7-segment display lead A to lead Q1 of the shift register
// (lead 3 in case of NXP 74HC164N) and so on, will result in the corresponding 
// number showing up on the display. For example, 0x5B will give you a "2".
int ledCodes[] = {
  0x3F,
  0x06,
  0x5B,
  0x4F,
  0x66,
  0x6D,
  0x7D,
  0x07,
  0x7F,
  0x6F 
};

// To reset the current register's contents, we just need to switch off MRESET pin
// for just a couple microcontroller's cycles
void masterReset() {
  // set MRESET to LOW and then HIGH to reset the register IC
  digitalWrite(MRESET, LOW);
  digitalWrite(MRESET, HIGH); 
}

void clockPulse()
{
  // according to the 74HC164 datasheet, its response time is at most 200 ns, 
  // which is equivalent to a maximum of 5 MHz clock rate. It's &gt; 3 times
  // slower than Arduino's clock rate, but it works, since function calls
  // do take up cycles too.
  digitalWrite(CLK, HIGH);
  digitalWrite(CLK, LOW);
}

// This procedure sets individual segments taken as bits in the "code" argument
void setShiftRegister8bit(int code)
{
   for (int i = 0; i &lt; 8; i++)
   {
     digitalWrite(DATA, (((1 &lt;&lt; i) &amp; code) != 0) ? LOW : HIGH);
     clockPulse(); 
   }
}

// Flash the digit display once for delayTime milliseconds
void flashDigit(int signalOutput, int delayTime = 1)
{
  digitalWrite(signalOutput, HIGH);
  delay(delayTime);
  digitalWrite(signalOutput, LOW); 
}

// This function makes a number digitValue to be shown on a digit on Arduino digital output pin digitIndex
void showDigit(int digitValue, int dot, int digitIndex)
{
    setShiftRegister8bit(ledCodes[digitValue] | (dot != 0 ?  1 &lt;&lt; 7 : 0) );
    flashDigit(digitIndex, 5);
}

void setup() {
  
  // If you want to enable serial to e.g. log some debugging info, keep in mind, 
  // that pins 0 and 1 are also used for serial communications and will definitely 
  // conflict with your usage of these. 
  //Serial.begin(9600); 
  
  // set all the digital pins to output
  for (int i = 2; i &lt; 8; ++i)
  {
    pinMode(i, OUTPUT);
  }
  
  // This is not required, but does show the possible usage for it.
  // Since we're using a common-anode LED display, this will result
  // in all segments to go on (if DIGIT* controls are all on too).
  masterReset();
  
  // This is done simply as a boot-time status check sequence: first switch everything on
  digitalWrite(DIGIT1, HIGH);
  digitalWrite(DIGIT2, HIGH); 
  digitalWrite(DIGIT3, HIGH);  
  delay(1000); // wait 1000 ms
  // and switch them off
  digitalWrite(DIGIT1, LOW);
  digitalWrite(DIGIT2, LOW);  
  digitalWrite(DIGIT3, LOW);  
  
  // Now go through all the segments one at a time
  for (int i = 0; i &lt; 8; i++)
  {
    setShiftRegister8bit(1 &lt;&lt; i);
    flashDigit(DIGIT1, 10);
    flashDigit(DIGIT2, 10);
    flashDigit(DIGIT3, 10);
    delay(50);
  }
}


void loop() {
  
  // this is where all the voltmeter magic goes:
  // AVR's ADC is 10-bit and thus this function returns values in the range of 0 to 1024.
  // To convert this to real values, we need to compute its fraction from 1024 and then
  // multiply by a factor, which I determined empirically: it was exactly two times more, 
  // than the expected value, when I tried to multiply it by 1000 at first.
  int value = analogRead(0) / 1024.0 * 500; 
  int i = value;

  showDigit(i / 100, 1, DIGIT1);
  int b = i - i / 100 * 100;
  showDigit(b / 10, 0, DIGIT2);
  showDigit(b - b / 10 * 10, 0, DIGIT3);
 
}
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;h3&gt;Some precautions&lt;/h3&gt;&lt;br /&gt;
If you decide to try this out yourself, remember one thing: be careful trying to &lt;strong&gt;directly&lt;/strong&gt; measure  voltages in excess of the Arduino's AVR ATmega's chip's supply voltage, which is usually at 5V, but in some cases can be 3.3V. This &lt;em&gt;might&lt;/em&gt; fry the ADC, rendering it unusable -- but I'm not sure. Check AVR ATMegaXXX chip's datasheet and your Arduino flavor's technical data, if you're in doubt.&lt;br /&gt;
&lt;br /&gt;
You can still attempt measuring such voltages indirectly, by dividing it with a fixed-value voltage divider -- just get two resistors R1 and R2, which have such resistances, that &lt;br /&gt;
&lt;br /&gt;
U&lt;sub&gt;measured&lt;/sub&gt; &amp;times R1 / (R1 + R2) &lt; V&lt;sub&gt;CC&lt;/sub&gt;&lt;br /&gt;
&lt;br /&gt;
where V&lt;sub&gt;CC&lt;/sub&gt; is the Arduino power supply voltage (as I said, it's usually 5V, although Arduino Mini, for example, uses 3.3V supply) and get the relative voltage out of the divider output -- it will always be proportional to the original voltage.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4473618294892545516-3127613630120546796?l=0000b.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheNullNibble/~4/2RPDZFo5fQ0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://0000b.blogspot.com/feeds/3127613630120546796/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://0000b.blogspot.com/2010/08/home-brew-voltmeter.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/3127613630120546796?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/3127613630120546796?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullNibble/~3/2RPDZFo5fQ0/home-brew-voltmeter.html" title="An Arduino-based home-brew voltmeter" /><author><name>Andrei Sosnin</name><uri>http://www.blogger.com/profile/07658315434668184753</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_Pk8C9KYQDBc/TQPcmJBch7I/AAAAAAAAGOQ/qMTWvEePUfM/S220/mypicbw.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://0000b.blogspot.com/2010/08/home-brew-voltmeter.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4DQHc5eip7ImA9Wx5TFk4.&quot;"><id>tag:blogger.com,1999:blog-4473618294892545516.post-7989144434012261479</id><published>2010-07-31T20:44:00.004+03:00</published><updated>2010-08-01T06:56:11.922+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-08-01T06:56:11.922+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="video" /><category scheme="http://www.blogger.com/atom/ns#" term="vblog" /><category scheme="http://www.blogger.com/atom/ns#" term="electronics" /><category scheme="http://www.blogger.com/atom/ns#" term="soldering" /><category scheme="http://www.blogger.com/atom/ns#" term="diy" /><title>My first video blogging attempt: soldering quick tutorial</title><content type="html">&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/-KBHOn1vxDA&amp;amp;hl=ru_RU&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/-KBHOn1vxDA&amp;amp;hl=ru_RU&amp;amp;fs=1" width="425" height="344" allowScriptAccess="never" allowFullScreen="true" wmode="transparent" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;
&lt;br /&gt;
Once more, to remember:&lt;br /&gt;
&lt;br /&gt;
1) clean the tip up with a file until it shines, before heating the iron up &lt;br /&gt;
2) put a bit of soldering grease (flux) onto the iron tip before heating it up&lt;br /&gt;
3) just after heating up the iron (when it just starts fuming the flux), heat up a drop of solder, so that the solder coats the iron tip -- this will help distribute the heat around and make soldering much easier!&lt;br /&gt;
4) use flux on the contacts to make the liquid-hot solder stick to the joints being soldered&lt;br /&gt;
5) be quick, so that you don't overheat the PCB and its components -- don't keep the iron on the joint for longer that a second or so&lt;br /&gt;
6) solder components from two ends at a time -- this way it keeps correct alignment (the mistake I made in the tutorial was about not doing that)&lt;br /&gt;
&lt;br /&gt;
Here's another tutorial by Sparkfun: &lt;a href="http://www.sparkfun.com/commerce/tutorial_info.php?tutorials_id=96"&gt;Getting X onto board Y&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4473618294892545516-7989144434012261479?l=0000b.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheNullNibble/~4/fksppN9fABg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://0000b.blogspot.com/feeds/7989144434012261479/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://0000b.blogspot.com/2010/07/my-first-video-blogging-attempt.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/7989144434012261479?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/7989144434012261479?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullNibble/~3/fksppN9fABg/my-first-video-blogging-attempt.html" title="My first video blogging attempt: soldering quick tutorial" /><author><name>Andrei Sosnin</name><uri>http://www.blogger.com/profile/07658315434668184753</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_Pk8C9KYQDBc/TQPcmJBch7I/AAAAAAAAGOQ/qMTWvEePUfM/S220/mypicbw.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://0000b.blogspot.com/2010/07/my-first-video-blogging-attempt.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4ASH49fip7ImA9Wx5TFUQ.&quot;"><id>tag:blogger.com,1999:blog-4473618294892545516.post-909233441299220128</id><published>2010-07-31T01:14:00.100+03:00</published><updated>2010-07-31T20:55:49.066+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-31T20:55:49.066+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="linear" /><category scheme="http://www.blogger.com/atom/ns#" term="7812" /><category scheme="http://www.blogger.com/atom/ns#" term="78xx" /><category scheme="http://www.blogger.com/atom/ns#" term="regulator" /><category scheme="http://www.blogger.com/atom/ns#" term="7815" /><category scheme="http://www.blogger.com/atom/ns#" term="voltage" /><category scheme="http://www.blogger.com/atom/ns#" term="7805" /><category scheme="http://www.blogger.com/atom/ns#" term="LM317" /><category scheme="http://www.blogger.com/atom/ns#" term="7803" /><title>About the linear voltage regulator</title><content type="html">Since I'm apparently failing miserably with my attempts to build the &amp;gamma;-ray detector by almost blindly following the schematics, I decided to make a step aside and instead do some practical study first to better understand the inner workings of each element of the construction. &lt;br /&gt;
&lt;br /&gt;
&lt;div style="float: left; border: 1px solid #eee; padding: 1em; margin: 1em"&gt;&lt;img src="http://upload.wikimedia.org/wikipedia/commons/a/ae/7800_IC_regulatorsa.jpg"
title="Image courtesy of Wikipedia" style="width: 300px"/&gt;&lt;br /&gt;
&lt;em&gt;Pic. 1. Common 78xx series voltage regulator ICs&lt;/em&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
Enter &lt;a href="http://en.wikipedia.org/wiki/Linear_regulator"&gt;linear voltage regulator&lt;/a&gt;, a useful addition to any fine circuit, digital or analogue alike, where precise and noise-free power supply is required. The main function of a voltage regulator is to set the output voltage to a fixed value, which almost doesn't change at all with variations in the input voltage. So, no matter if you put 15, 12, 9 or 7 volts to the regulator's input, you'll get the same voltage in the output.&lt;br /&gt;
&lt;br /&gt;
If &lt;em&gt;precise and noise-free&lt;/em&gt; power is not needed (such as simply for powering LEDs), you'll be better off with a much simpler &lt;a href="http://en.wikipedia.org/wiki/Voltage_divider"&gt;voltage divider circuit&lt;/a&gt;, essentially a pair of resistors... But if you're planning to play with some integrated circuits and micro-controllers, or &lt;a href="http://0000b.blogspot.com/p/project-1-detector-based-on-pin.html"&gt;a sensitive detector&lt;/a&gt;, you'll definitely need a fitting voltage regulator.&lt;br /&gt;
&lt;br /&gt;
There are many models, but the most common are the &lt;a href="http://en.wikipedia.org/wiki/78xx"&gt;78xx&lt;/a&gt; series fixed and the &lt;a href="http://en.wikipedia.org/wiki/LM317"&gt;LM317&lt;/a&gt; series adjustable voltage regulators.&lt;br /&gt;
&lt;br /&gt;
It's important to know one thing: the amount of current that a regulator can pass through is very limited. Accidentally overloading a regulator without proper measure to vent the resulting heat is certain death to it, something I have learned the hard way already. &lt;br /&gt;
&lt;br /&gt;
For bigger cases, such as the TO-220 (see Pic. 1), the maximum current can be in the order of 1 to 1.5A. Higher currents are possible, but require a heatsink to be installed (this is why there is the round hole on the back plane of the case). Smaller cases, &lt;a href="http://en.wikipedia.org/wiki/TO-92"&gt;TO-92&lt;/a&gt;, for example, typically only allow small currents in the order of 100mA.&lt;br /&gt;
&lt;br /&gt;
Note, that the smaller-case low-power regulators usually have an L in their model name, e.g. 78&lt;strong&gt;L&lt;/strong&gt;05, LM317&lt;strong&gt;L&lt;/strong&gt;Z.&lt;br /&gt;
&lt;br /&gt;
There is a fair bit of information about these circuits in Wikipedia, so I'll try to focus on the stuff that's not there.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Fixed linear voltage regulator 78xx series&lt;/h3&gt;&lt;br /&gt;
These are probably the most common voltage regulators available. The last two digits of the model numbers is the voltage, that these regulators give on output, e.g. 7805 output 5 volts, 7812 give 12 volts, etc. &lt;br /&gt;
&lt;br /&gt;
Using these is very straightforward: just put your power supply's positive output lead (let's say, it's +12V) to the V&lt;sub&gt;IN&lt;/sub&gt; lead of the regulator. Middle lead goes straight to ground (the negative output of the power supply). The third lead is the regulator's output -- the voltage between this lead and the ground should be very close to the regulator's rated voltage.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://picasaweb.google.co.uk/lh/photo/uwoi1B2NQu3Q48AbV_IDng?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_Pk8C9KYQDBc/TFMrhYLeXoI/AAAAAAAAF1Q/JyYjP2hDBMY/s400/voltreg-7805-demo.png" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
It looks like this on a breadboard:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://picasaweb.google.co.uk/lh/photo/7Vd6vsb3SBb_zdhoh-u3Xw?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_Pk8C9KYQDBc/TFMsA02msqI/AAAAAAAAF1U/7beIkwtq93Q/s800/Schematic7805_bb.png" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
There's a caveat though, and probably the most significant disadvantage of a 78xx series regulator: by design, its output current matches input current. But since input and output voltages never match (minimum difference is usually about 2V), it means that part of the electric power has to go somewhere and it's heat. &lt;br /&gt;
&lt;br /&gt;
For example, connecting a 5V regulator to a 15V power supply and feeding 0.1 A of current through it (loading it with just 50 Ohm of resistance) would result in thermal dissipation power of (15V - 5V) * .1A = 7W! All this power is converted to heat and makes the small IC heat up rather quickly. &lt;br /&gt;
&lt;br /&gt;
Best way to avoid it is to set the voltage to as close to the desired output as possible. Take into account, that input voltage must be higher than the output by approximately 2V. So that would make a minimum input voltage of 7V for the 5V regulator. Keeping the current low (under 100 mA), i.e. only using regulators in low-power applications (driving low-power circuitry, such as microcontrollers, few LEDs or an LCD display as opposed to high-gain sound amplification, directly driving motors etc.). &lt;br /&gt;
&lt;br /&gt;
If you need to step down a big difference of voltage (let's say, 30V to 6V), you need a &lt;a href="http://en.wikipedia.org/wiki/Transformer"&gt;transformer&lt;/a&gt; for that. &lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Adjustable linear voltage regulator LM317&lt;/h3&gt;&lt;br /&gt;
These are not less common and are quite useful as well. This kind of regulators is not an easy thing to use, though. &lt;br /&gt;
&lt;br /&gt;
To be honest, I'm still confused about it, as it's still unclear to me, what exactly does "adjustable" mean here. After hours of experimenting, &lt;br /&gt;
&lt;br /&gt;
Unless I'm terribly mistaken, it seems to me "adjustable" means that regulated voltage can be trimmed by a very small amount (about 1% of the output voltage), making this adjustment very precise. These regulators can also be used as precise current limiters, too, by placing a resistor (such that the desired current would be I = U / R) between the output and adjust leads. &lt;br /&gt;
&lt;br /&gt;
But it looks like for the most common purposes, like driving digital ICs and microcontrollers, this kind of regulators is an overkill. With a fixed voltage 78xx regulator it's very much simple to build a regulated power supply -- you only need the regulator IC. For the adjustable one, you will need at least one more discrete component -- a resistor.&lt;br /&gt;
&lt;br /&gt;
Here's a schematic of LM317 used as a voltage regulator:&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://img.photobucket.com/albums/v466/tomatensaft/electronics/lm317.gif" border="0" alt="LM317 connection" style="width: 600px" width="600"/&gt;&lt;br /&gt;
&lt;br /&gt;
To the right you can see a list of resistances that can be used to set a particular voltage on the output. &lt;br /&gt;
&lt;br /&gt;
What should you be careful about here? The R2 resistor. It must not be lower than approximately the value of 2 * R1, otherwise it will result in a very high current going through the R2 resistor, which will burn it (if it's not meant for such currents, of course -- a 125 mW resistor will be burnt for sure!).&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;Update&lt;/h4&gt;&lt;br /&gt;
This graphic actually contradicts what I have said earlier about the trimming of the voltage regulator. &lt;br /&gt;
&lt;br /&gt;
That's why I bought several regulators: during the course of my experiments I'm bound to burn some of them! Besides, buying 10 pieces at a time gives a decent bonus in price sometimes (e.g. 0.30 EUR vs 0.43 EUR a piece).&lt;br /&gt;
&lt;br /&gt;
Trying another regulator actually showed me that my 2nd regulator was dead. By the way, the 1st one was completely burnt (wouldn't even pass current, save regulating anything) after I accidentally shorted it under 12 V for half a minute, only noticing that something was wrong, when it started smelling funny. :)&lt;br /&gt;
&lt;br /&gt;
&lt;div style="border: 1px solid #eee"&gt;&lt;a href="http://smg.photobucket.com/albums/v466/tomatensaft/electronics/?action=view&amp;current=IMGP9290.jpg" target="_blank"&gt;&lt;img src="http://img.photobucket.com/albums/v466/tomatensaft/electronics/th_IMGP9290.jpg" border="0" alt="lm317,led,voltmeter" &gt;&lt;/a&gt; &lt;a href="http://smg.photobucket.com/albums/v466/tomatensaft/electronics/?action=view&amp;current=IMGP9289.jpg" target="_blank"&gt;&lt;img src="http://img.photobucket.com/albums/v466/tomatensaft/electronics/th_IMGP9289.jpg" border="0" alt="lm317,led,voltmeter" &gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://smg.photobucket.com/albums/v466/tomatensaft/electronics/?action=view&amp;current=IMGP9288.jpg" target="_blank"&gt;&lt;img src="http://img.photobucket.com/albums/v466/tomatensaft/electronics/IMGP9288.jpg" border="0" width="700px" alt="lm317,led,voltmeter"&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
So yes, I &lt;strong&gt;was wrong&lt;/strong&gt; about the fine "trimming", and I'm not surprised. With a working regulator I was able to change the voltage to ~6.8 V by taking a 177 &amp;Omega; resistor (rated 180 &amp;Omega; &amp;plusmn; 2%) as R1 -- I didn't have any 240 &amp;Omega; ones -- and setting the R2 resistor to 511 &amp;Omega; (rated as 510 &amp;Omega &amp;plusmn; 2%) + the LED, which gives some additional resistance. Obviously, reducing the R2 resistor even more would lower the output voltage too -- removing the orange LED from the circuit reduces the output voltage to 4.87V. &lt;br /&gt;
&lt;br /&gt;
The output voltage formula, taken from the &lt;a href="http://cache.national.com/ds/LM/LM317L.pdf"&gt;LM317LZ regulator's datasheet&lt;/a&gt; is as follows:&lt;br /&gt;
&lt;br /&gt;
V&lt;sub&gt;OUT&lt;/sub&gt; = V&lt;sub&gt;REF&lt;/sub&gt; ( 1 + R2 / R1 ) + I&lt;sub&gt;ADJ&lt;/sub&gt;(R2)&lt;br /&gt;
&lt;br /&gt;
There is so-called "reference voltage" V&lt;sub&gt;REF&lt;/sub&gt; between the output and the adjustment leads of the regulator, which is usually set to 1.25 V.  With V&lt;sub&gt;REF&lt;/sub&gt; = 1.25V for this type of regulator, the actual calculation would look like:&lt;br /&gt;
&lt;br /&gt;
V&lt;sub&gt;OUT&lt;/sub&gt; = 1.25 &amp;times; (1 + 511 / 177 ) + I&lt;sub&gt;ADJ&lt;/sub&gt;(R2) = 3.75 + I&lt;sub&gt;ADJ&lt;/sub&gt;(R2).&lt;br /&gt;
&lt;br /&gt;
The last component is obviously critical here, with I&lt;sub&gt;ADJ&lt;/sub&gt; being in my case around 2.2 mA (in case this function is linear, which I doubt). &lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;NOTE&lt;/strong&gt; that V&lt;sub&gt;OUT&lt;/sub&gt; doesn't depend on the V&lt;sub&gt;IN&lt;/sub&gt; directly, and it's not a mistake: this is exactly what voltage regulator is supposed to do: keep the output voltage constant, ideally, no matter what power supply you set it to. &lt;br /&gt;
&lt;br /&gt;
You don't really have to calculate much to get a voltage you need, though -- just get a 1K trimmer (it's a good idea to add another fixed resistor of about 100 &amp;Omega;, if the trimmer is 0-1K range, otherwise you risk shorting and burning the regulator) and plug the voltmeter to the output leads of the regulating circuit and you're good to go: by adjusting the trimmer you can set the desired voltage. &lt;br /&gt;
&lt;br /&gt;
If you know the limitations of resistors, then you might say, that resistance of resistors varies with their temperature (increasing when they heat up and decreasing when they cool down). Well, using metal or thin film resistors may help -- these have very low temperature sensitivity, in the order of 5-100 ppm/K (i.e. varying their resistance by 0.005-0.1% per kelvin). I had some of my resistors heat up to ~100&lt;sup&gt;o&lt;/sup&gt;C (burning on touch), but it looked like their resistance didn't vary so much to be detected by my cheap multimeter... =)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4473618294892545516-909233441299220128?l=0000b.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheNullNibble/~4/PjUf6k9TxSY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://0000b.blogspot.com/feeds/909233441299220128/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://0000b.blogspot.com/2010/07/about-linear-voltage-regulator.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/909233441299220128?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/909233441299220128?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullNibble/~3/PjUf6k9TxSY/about-linear-voltage-regulator.html" title="About the linear voltage regulator" /><author><name>Andrei Sosnin</name><uri>http://www.blogger.com/profile/07658315434668184753</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_Pk8C9KYQDBc/TQPcmJBch7I/AAAAAAAAGOQ/qMTWvEePUfM/S220/mypicbw.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/_Pk8C9KYQDBc/TFMrhYLeXoI/AAAAAAAAF1Q/JyYjP2hDBMY/s72-c/voltreg-7805-demo.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://0000b.blogspot.com/2010/07/about-linear-voltage-regulator.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEcHQn8zcCp7ImA9Wx5TFUU.&quot;"><id>tag:blogger.com,1999:blog-4473618294892545516.post-8004294823750225669</id><published>2010-07-28T12:13:00.030+03:00</published><updated>2010-07-31T16:13:53.188+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-31T16:13:53.188+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="gamma" /><category scheme="http://www.blogger.com/atom/ns#" term="diy" /><category scheme="http://www.blogger.com/atom/ns#" term="radiation" /><category scheme="http://www.blogger.com/atom/ns#" term="detector" /><title>A tutorial on solid-state radiation detection and more</title><content type="html">I've already give a link to one of the pages of this resource hosted by &lt;a href="http://www.carroll-ramsey.com/"&gt;Carrol &amp; Ramsey Associates&lt;/a&gt;, a R&amp;D company from Berkley, CA, USA specializing in building cyclotrons for scientific and medical needs (as well as things associated with that, such as, well, radiation detectors and such), but here's another good page describing PIN diode-based radioactivity detection in very nice detail: &lt;strong&gt;&lt;a href="http://www.carroll-ramsey.com/tutor1.htm" target="_blank"&gt;Detection of X-ray and Gamma-ray Photons Using Silicon Diodes&lt;/a&gt;&lt;/strong&gt;. Very good reading to educate oneself in this stuff.&lt;br /&gt;
&lt;img src="http://www.luminousnuminous.com/blog/wp-content/uploads/2009/05/cupro-scheelite_with_traces_of_secondary_uranium_deposit1.jpg" style="float: left; width: 200px" /&gt;&lt;br /&gt;
&lt;p&gt;Looking at the tutorial's pictures, it appears like &lt;a href="http://www.maxim-ic.com/app-notes/index.mvp/id/2236"&gt;MAXIM's application note 2236&lt;/a&gt; was based on same ideas from or may be even directly on it (simply modified to fit the MAXIM's own components). But unlike that appnote, the tutorial has much more detail on the role that leakage currents and terminal capacitances have on the signal-to-noise ratio of the solid-state radiation detector.&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Anyway, the tutorial gave me an idea that I might even use 12 V for the amplifiers and as much as 20-30 V for the diode, instead of 5 and 12 V respectively, since the opamps I used are made for voltages up to 15 V and the diode I chose (SFH203FA) can be used with up to 50 V reverse-bias voltage (although leakage current increases with voltage). This can increase sensitivity, but will also increase noise levels.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;&amp;gamma; detector progress&lt;/h3&gt;&lt;br /&gt;
&lt;p&gt;BTW, I've already attempted a build of a variation of MAXIM's design (using TL074CN's instead of MAXIM's opamps), but it didn't work at all. Instead of the missing 10 nF capacitors I used 100 nF ones, hoping that it wouldn't matter so much... Well, apparently, it does matter after all. :) And without a sensitive oscilloscope, I can't really tell, what's the actual problem -- it might be everything from the wrong RC-components filtering out the signal, opamps being too slow to respond on the signal, a mere error in connections or even a problem with breadboard's own stray capacitances and high resistances... &lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Once the missing capacitors reach me, I'll change the wrong capacitors and see, if that will improve anything... If not, I'll go back to the whiteboard. :)&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;Here are some pictures of what I've made so far:&lt;br /&gt;
&lt;br /&gt;
&lt;div style="float:left"&gt;&lt;a href="http://picasaweb.google.co.uk/lh/photo/F_N3WBuXrCC-JvDL2m0xvw?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_Pk8C9KYQDBc/TFAj-P0dFqI/AAAAAAAAFw0/B6rn7ukwwTY/s400/IMGP9274.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="float: left"&gt;&lt;a href="http://picasaweb.google.co.uk/lh/photo/__epb5ychzsbuEszRiON_w?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_Pk8C9KYQDBc/TFAj9QV0X8I/AAAAAAAAFws/uZ831OV08OI/s400/IMGP9273.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="float:left"&gt;&lt;a href="http://picasaweb.google.co.uk/lh/photo/ITnVoSncMGJt1IdTYETq-g?feat=embedwebsite"&gt;&lt;img src="http://lh4.ggpht.com/_Pk8C9KYQDBc/TFAj8MmnTVI/AAAAAAAAFwY/02QlZyHkYPA/s400/IMGP9271.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style="float: left"&gt;&lt;a href="http://picasaweb.google.co.uk/lh/photo/mOAenPio0ZKwNjxvuZHqXw?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_Pk8C9KYQDBc/TFCq9bRYmjI/AAAAAAAAFzY/JAi0sdSDlZ8/s400/RadDetector_bb.png" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
The LED shows that the circuit is on. So, ideally the piezoelectric speaker (that annoying PC beeper, seen on the bottom of the pictures) should make distinctive audible clicks. Currently it doesn't though for the reasons stated above. :) I'm going to tweak it some more and see, if it works then.&lt;br /&gt;
&lt;br /&gt;
The chips are two TL074CN low-noise JFET double op-amps (seen on the left one under the other), the LM311P comparator (bottom right) and a &lt;a href="http://en.wikipedia.org/wiki/78xx"&gt;7805 voltage regulator&lt;/a&gt; (top right).&lt;br /&gt;
&lt;br /&gt;
Ah, yes: the +12 V supply was straight from the cheap universal 0.5 A wall socket adapter. So it's probably very noisy. I'm going to use the &lt;a href="http://en.wikipedia.org/wiki/LM317"&gt;LM317&lt;/a&gt; adjustable voltage regulator to make it more stable.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;UPDATE:&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
So far I had little success making this thing work, so I'll try to give some insights about the elements used in this circuit to, first of all, troubleshoot my construction and in the meantime also help you, the reader of this blog, to better understand, how does this stuff work -- resistors, opamps, comparators, capacitors, band-pass filters etc. etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4473618294892545516-8004294823750225669?l=0000b.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheNullNibble/~4/idE9UOX7AMA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://0000b.blogspot.com/feeds/8004294823750225669/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://0000b.blogspot.com/2010/07/tutorial-on-solid-state-radiation.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/8004294823750225669?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/8004294823750225669?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullNibble/~3/idE9UOX7AMA/tutorial-on-solid-state-radiation.html" title="A tutorial on solid-state radiation detection and more" /><author><name>Andrei Sosnin</name><uri>http://www.blogger.com/profile/07658315434668184753</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_Pk8C9KYQDBc/TQPcmJBch7I/AAAAAAAAGOQ/qMTWvEePUfM/S220/mypicbw.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_Pk8C9KYQDBc/TFAj-P0dFqI/AAAAAAAAFw0/B6rn7ukwwTY/s72-c/IMGP9274.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://0000b.blogspot.com/2010/07/tutorial-on-solid-state-radiation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMCQ3kzfip7ImA9Wx9VFUU.&quot;"><id>tag:blogger.com,1999:blog-4473618294892545516.post-3862477389877739971</id><published>2010-07-23T01:16:00.012+03:00</published><updated>2011-02-01T19:14:22.786+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-01T19:14:22.786+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="electronics" /><category scheme="http://www.blogger.com/atom/ns#" term="diy" /><category scheme="http://www.blogger.com/atom/ns#" term="components" /><category scheme="http://www.blogger.com/atom/ns#" term="inventory" /><title>Inventory additions</title><content type="html">Today I got my last part of components for the electronic project I'm going to make. This is what I used to have until lately. &lt;br /&gt;
&lt;br /&gt;
&lt;table style="width:194px;"&gt;&lt;tr&gt;&lt;td align="center" style="height:194px;background:url(http://picasaweb.google.co.uk/s/c/transparent_album_background.gif) no-repeat left"&gt;&lt;a href="http://picasaweb.google.co.uk/tomatensaft/ElectronicStuff?feat=embedwebsite"&gt;&lt;img src="http://lh3.ggpht.com/_Pk8C9KYQDBc/TEA7bau69GE/AAAAAAAAFtg/gs--eo9cfug/s160-c/ElectronicStuff.jpg" width="160" height="160" style="margin:1px 0 0 4px;"&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align:center;font-family:arial,sans-serif;font-size:11px"&gt;&lt;a href="http://picasaweb.google.co.uk/tomatensaft/ElectronicStuff?feat=embedwebsite" style="color:#4D4D4D;font-weight:bold;text-decoration:none;"&gt;Electronic stuff&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;
Now I've got some 100 more resistors (1 and 10 M ones), some small signal diodes, more LEDs (this time wide-angle ultra-bright ones), comparators and 555 timer ICs. =)&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://picasaweb.google.co.uk/lh/photo/8yJC2kz2-XCOjXYDPIo7FQ?feat=embedwebsite"&gt;&lt;img src="http://lh6.ggpht.com/_Pk8C9KYQDBc/TEirINQ5uMI/AAAAAAAAFss/NYvnW4nRjPc/s144/IMGP9255.DNG.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
These are MAX986 comparators in a tiny SMD package. Gonna need some 1337 soldering skills to put on a PCB...&lt;br /&gt;
&lt;br /&gt;
This is all I should need to start building the photodiode-based Geiger counter. =)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4473618294892545516-3862477389877739971?l=0000b.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheNullNibble/~4/E7VodVNcza4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://0000b.blogspot.com/feeds/3862477389877739971/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://0000b.blogspot.com/2010/07/post-1.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/3862477389877739971?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/3862477389877739971?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullNibble/~3/E7VodVNcza4/post-1.html" title="Inventory additions" /><author><name>Andrei Sosnin</name><uri>http://www.blogger.com/profile/07658315434668184753</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_Pk8C9KYQDBc/TQPcmJBch7I/AAAAAAAAGOQ/qMTWvEePUfM/S220/mypicbw.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/_Pk8C9KYQDBc/TEA7bau69GE/AAAAAAAAFtg/gs--eo9cfug/s72-c/ElectronicStuff.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://0000b.blogspot.com/2010/07/post-1.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEGRHY4fip7ImA9WxFaGEU.&quot;"><id>tag:blogger.com,1999:blog-4473618294892545516.post-4256593079041302221</id><published>2010-07-22T14:03:00.283+03:00</published><updated>2010-07-23T13:57:05.836+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-23T13:57:05.836+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="geiger" /><category scheme="http://www.blogger.com/atom/ns#" term="electronics" /><category scheme="http://www.blogger.com/atom/ns#" term="diy" /><title>A DIY Geiger counter for less than 30 EUR</title><content type="html">This is a somewhat improved translation of my earlier &lt;a href="http://tomatensaft.livejournal.com/279427.html"&gt;post in LiveJournal&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Intro&lt;/h3&gt;If you've ever wondered (by just being curious, for example...) about the prices on working Geiger counters, then you probably know that their prices range in 30 to 50 EUR (for a simple hand-held device weighing about 1.5 kg without batteries) -- even for a device with doubtable working condition. Using contemporary semiconductor technology and some easily acquired passive components, which you can buy in any well-stocked electronics (of the ELFA and Oomipood type) shop:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;PIN photodiode, preferrably low-noise and low-capacitance (from 0,30 to 3,00 EUR)&lt;/li&gt;
&lt;li&gt;2 ultra low-noise opamp ICs (used for&amp;nbsp;e.g.&amp;nbsp;higher-end audio equipment, &amp;lt; 4,00 EUR a piece)&lt;/li&gt;
&lt;li&gt;1 comparator IC (&amp;lt; 4 EUR)&lt;/li&gt;
&lt;li&gt;A bunch of capacitors and resistors with values such as 100 nF, 10 nF, 4.7 pF, 10 MOhm, 1 MOhm, 100 k, 150 k, 10 k... It's best if you take some precision devices, but for a crude proof-of-concept project, common ones should probably suffice. Total cost is about 2-4 EUR&lt;/li&gt;
&lt;li&gt;Prototype board (&amp;lt;5 EUR)&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
Everything for a total of less than 20 EUR. You would also need a stable power supply, which can provide 5 and 12 V (you can use a set of 1.5 V batteries and a voltage regulator IC).&lt;br /&gt;
&lt;br /&gt;
For comparison, cheaper Soviet and Russia-made Geiger-tubes cost about 10-15 EUR a piece, those of various Western produce -- e.g. &lt;a href="http://www.sparkfun.com/commerce/product_info.php?products_id=8875"&gt;93.95 USD a piece&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
The trick is that PIN photodiode can be used as a relatively low-quality (depends on what kind of quality you're going for) substitute for the &lt;a href="http://en.wikipedia.org/wiki/Geiger%E2%80%93M%C3%BCller_tube"&gt;Geiger-Müller tube&lt;/a&gt;. Of course, function principle is different from the bigger tube-based device, but the end result is almost the same -- when a gamma particle hits diode's PIN substrate, it activates the photosensitive part of the diode and lets a short current impulse through it (I believe, setting diode's into &lt;a href="http://en.wikipedia.org/wiki/Avalanche_breakdown"&gt;breakdown&lt;/a&gt; mode), producing a tiny voltage spike. That spike can then be filtered out and greatly amplified with low-noise op-amps to produce a discrete impulse with a comparator. That impulse can then be processed by digital circuitry, such as microcontrollers -- &lt;a href="http://www.arduino.cc/"&gt;Arduino&lt;/a&gt;, too.&lt;br /&gt;
&lt;br /&gt;
Using Arduino, you can then count number of gamma-particle hits per unit of time and use it to judge the amount of radiation in the given point in space. By roughly adjusting your device on your local background radiation level (which may vary a lot, depending on where you live), you can then invent numerous ways to use it -- and there are many cool ways to use it.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;The project&lt;/h3&gt;&lt;br /&gt;
Since this project is a work in progress, schematics and a step-by-step building process will be published in this blog as I'm progressing with my build myself. I'll try to go through all the problems I faced and the ways I have solved them here. &lt;br /&gt;
&lt;br /&gt;
Refer to this page for some more information about the design of the "solid-state" Geiger counter: &lt;strong&gt;&lt;a href="http://0000b.blogspot.com/p/project-1-detector-based-on-pin.html"&gt;Project #1: γ-photon detector&lt;/a&gt;&lt;/strong&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Some ideas on Geiger counter uses&lt;/h2&gt;&lt;br /&gt;
&lt;h3&gt;1. Primitive radiation measurement&lt;/h3&gt;&lt;br /&gt;
The most straightforward use for a Geiger counter is of course to measure radiation levels. Unfortunately, to be used as a precise measurement instrument, it has to be well-calibrated and made of special precision components, which cannot be done without a radioactivity sample with a known radioactivity value and a lot of shopping around... But it's possible to make a relatively crude, but nevertheless useful tool by calibrating it to the local normal background radiation level and providing a scale of 10, 100 and 1000 times relative values for comparison. By knowing your local normal radiation level, which usually doesn't change much in time, you can estimate an approximate level of your readings in SI units.&lt;br /&gt;
&lt;br /&gt;
One clearly visible downside for the detector is that it can only detect gamma particles and maybe also fast neutrons, if you're lucky. Alpha and beta particles are invisible to it, which is a significant downside, since such radioactive sources, such as Uranium-238 (one of the most common radioactivity sources) and its products are alpha-emitters.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;2. "Quantum" random number generator&lt;/h3&gt;&lt;br /&gt;
By using a Geiger counter, it's possible to create a cryptographically secure "quantum" random number generator. While a home-brew design will unlikely be fit for encryption of state secrets, it will definitely be a cool geeky gadget for your 2048-bit PGP key generation to encrypt your  &lt;strike&gt;private videos&lt;/strike&gt; credit card numbers. =) The first that comes to my mind is counting the delays between received gamma particle strikes. These pulses though appear pretty rarely in normal circumstances: even my &lt;a href="http://lplaces.com/ru/dosimeter/16-devices/81-dp5a"&gt;ДП-5А&lt;/a&gt; gives a click once per 1-2 seconds, which means that it will only be possible to generate just a handful of random bits per minute. I don't think that photodiode-based device will give a better result, since the number of caught particles directly depends on the size of the detector's active part, which is less than half square millimetre in a diode. But with a reasonable radiation source put in front of the detector it's possible to get a steady stream of  really random bits...&lt;br /&gt;
&lt;br /&gt;
Here's a couple of interesting articles about an RNG based on the same principle (but, again, on Geiger tubes instead of PIN diodes): &lt;a href="https://www.sparkfun.com/commerce/tutorial_info.php?tutorials_id=132" style="background-color: transparent; color: #0000cc;"&gt;https://www.sparkfun.com/commerce/tutorial_info.php?tutorials_id=132&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.fourmilab.ch/hotbits/how3.html"&gt;http://www.fourmilab.ch/hotbits/how3.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;3. Radiation source direction finding&lt;/h3&gt;&lt;br /&gt;
Although I have some doubts about this, but it seems to me that if a lead case is to be cast for the photodiode with sufficiently thick sides (1-2 cm should suffice) and with only one thin hole  punctured through to the diode, which would work as an &lt;a href="http://en.wikipedia.org/wiki/Collimator"&gt;ionizing particle collimator&lt;/a&gt;, then it could be used as a remote Geiger-counter... It could be then used for finding various sources of radiation, natural and human-made alike. The trick is that lead is an pretty effective radiation shield (although second to depleted uranium). 1 cm of lead stops half of radiation power. Therefore, by pointing this device to a source of radiation, we should be able to notice a spike in radiation levels. If the hole is made wide, then it would increase the device's scanning area to a line, instead of a dot, which could be used to scan areas of interest to find radiation sources relatively quickly.&lt;br /&gt;
&lt;br /&gt;
Just as a side idea, I think it should also be possible to make "radiation photos" of such areas by making a &lt;em&gt;camera obscura&lt;/em&gt; out of lead and photo paper. The diaphragm should be covered with light-stopping material, so that we only picture the ionizing radiation.&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://upload.wikimedia.org/wikipedia/commons/thumb/0/0d/ParticleCollimator.svg/319px-ParticleCollimator.svg.png" /&gt;&lt;br /&gt;
&lt;br /&gt;
All in all, the possibilities are endless. DIY Geiger-counter's plus is that you can use the same device for many tasks at once -- after all, nothing stops you from designing it in such a way, that it could be used for radiation measurement, ... =)&lt;br /&gt;
&lt;br /&gt;
The problem is that such a camera would only allow through just a tiny fraction of gamma particles that fly around, which would make the Geiger counter even slower than it already is (thus probably unsuitable for quick surveying). &lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Appendix 1. Radioactive sources in Estonia&lt;/h3&gt;&lt;br /&gt;
You might not know, but the first Soviet nuclear bomb was manufactured from uranium originated from Sillamäe, Estonia. That place is only special, because uranium ore comes almost to the surface there and is thus very easy to extract, without much digging required. Otherwise, same uranium ore can be found half around Estonia from the surface in the North-Eastern side of Estonia (where Sillamäe is located, too) to 200-300 m deep in the Central Estonia.&lt;br /&gt;
&lt;br /&gt;
Here's a bit of more information about the uranium-rich&amp;nbsp;sedimentary&amp;nbsp;rock mineral argillite: &lt;a href="http://www.ut.ee/BGGM/maavara/dityoneema.html"&gt;http://www.ut.ee/BGGM/maavara/dityoneema.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://www.ut.ee/BGGM/maavara/dict.jpg" /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;em&gt;Argillite distribution map of Estonia: colour lines code the thickness, dashed line -- depth. As you can see it can even be dug up in Tallinn -- right near the surface. It appears like it becomes naked in Türisalu and on Pakri peninsula, too.&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
Although uranium concentration in Estonian rocks is an order of magnitude bigger (up to 200-400 ppm or 0.02-0.04%), than on average in the Earth crust (2-4 ppm, 0.0004%), Estonian argillite is a low grade ore. &lt;a href="http://www.cultinfo.ru/fulltext/1/001/008/114/406.htm"&gt;Even 0.1% is deemed a low-grade ore.&lt;/a&gt; Besides argillite, Estonian phosphate and oil shale also contain notable portions of uranium.&lt;br /&gt;
&lt;br /&gt;
Because of sufficient amount of uranium in the soil, its decomposition products are also present, Radon is one such product. Radon is a dangerous thing, since it's an alpha-emitter and it's also gaseous. Alpha-particles are fast-flying helium ions (He&lt;sup&gt;2+&lt;/sup&gt;), they are almost completely harmless to humans, when strike us outside, since aplha-particles cannot get through our skin, as opposed to harder radiation types, such as fast neutrons and gamma radiation, but when they appear due to decay of radioactive elements inside us, they can easily destroy our cells inside and are a serious source of risk for cancer.&lt;br /&gt;
&lt;br /&gt;
But even regardless of radioactivity, uranium is toxic, because it's a heavy metal and has health effects similar to lead. Because of that, just for the sake of health security, I wouldn't be holding uranium or its minerals at home, at least if the containers are not sealed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4473618294892545516-4256593079041302221?l=0000b.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheNullNibble/~4/Mq_v2J4N9DI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://0000b.blogspot.com/feeds/4256593079041302221/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://0000b.blogspot.com/2010/07/diy-geiger-counter-for-less-than-30-eur.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/4256593079041302221?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4473618294892545516/posts/default/4256593079041302221?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/TheNullNibble/~3/Mq_v2J4N9DI/diy-geiger-counter-for-less-than-30-eur.html" title="A DIY Geiger counter for less than 30 EUR" /><author><name>Andrei Sosnin</name><uri>http://www.blogger.com/profile/07658315434668184753</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_Pk8C9KYQDBc/TQPcmJBch7I/AAAAAAAAGOQ/qMTWvEePUfM/S220/mypicbw.png" /></author><thr:total>0</thr:total><feedburner:origLink>http://0000b.blogspot.com/2010/07/diy-geiger-counter-for-less-than-30-eur.html</feedburner:origLink></entry></feed>

