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

<channel>
	<title>andreas.goelzer.de &#187; avr</title>
	<atom:link href="http://andreas.goelzer.de/tag/avr/feed" rel="self" type="application/rss+xml" />
	<link>http://andreas.goelzer.de</link>
	<description>Electronics and small programs and other stuff</description>
	<lastBuildDate>Tue, 29 Nov 2011 21:08:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>USB Controller for 12 RC Servos</title>
		<link>http://andreas.goelzer.de/usbservo</link>
		<comments>http://andreas.goelzer.de/usbservo#comments</comments>
		<pubDate>Thu, 12 Aug 2010 22:59:36 +0000</pubDate>
		<dc:creator>Andreas Goelzer</dc:creator>
				<category><![CDATA[Electronics]]></category>
		<category><![CDATA[avr]]></category>
		<category><![CDATA[servo]]></category>
		<category><![CDATA[usb]]></category>

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

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

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

		<guid isPermaLink="false">http://andreas.goelzer.de/?p=41</guid>
		<description><![CDATA[This device connects to a computer&#8217;s usb port and controls two small electric motors using the L293D. The atmega microcontroller uses the firmware-only USB driver from objective development. Device description The usbmot device controls up to two small motors, 600 &#8230; <a href="http://andreas.goelzer.de/usbmot">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This device connects to a computer&#8217;s usb port and controls two small electric motors using the <a href="http://www.st.com/stonline/products/literature/ds/1330.pdf">L293D</a>. The atmega microcontroller uses the firmware-only <a href="http://www.obdev.at/products/avrusb/">USB driver</a> from objective development.</p>
<h4>Device description</h4>
<p>The usbmot device controls up to two small motors, 600 mA current each, 1.2 A peak each, with an atmel atmega microcontroller connected to some host device via USB. The speed of the motors can be controlled with PWM.</p>
<h4>Compiling</h4>
<p>Both firmware and host software are in the software package at the end of this page. In order to recompile the firmware, you will need an avr build chain (for example avr-gcc and avrdude), which you probably have if you found this page. To compile the host software, you will need a c++-compiler and the qt development package.</p>
<p>To compile the firmware, change into the firmware folder. Then edit the makefile and adjust device type and programmer. In order to remake the hex file, type &#8220;make hex&#8221;, and to transfer it to the device, type &#8220;make flash&#8221; (jumper 1-1 needs to be set).</p>
<p>To compile the host software, change into the qusbmot folder. You will need <a href="http://trolltech.com/products">qt</a> and <a href="http://libusb.sourceforge.net/">libusb</a> with their respective tools and header files to successfully compile. If both are properly installed, typing &#8220;qmake &#038;&#038; make&#8221; should compile the program, which can then be executed by typing &#8220;./qusbmot&#8221;.</p>
<h4>Usable AVR Microcontrollers</h4>
<p>So far I&#8217;ve used this board only with an atmega 168. Due to pin compatibility, it should work with at least an atmega 8, 48, 88, 168. Since 12 MHz speed are needed, the low-voltage versions will not work. The firmware size is about 2 kiB, so all are a bit oversized, but in low quantities this is no problem.</p>
<h4>USBAsp roots</h4>
<p>The PCB is based on the <a href="http://www.fischl.de/usbasp/">USBAsp</a> Layout. It can still be used as a programmer, however the USBAsp Firmware has to be modified since I changed the USB port and pins to use the output compare pins for PWM.</p>
<h4>Jumper description</h4>
<ul>
<li><b>JP 1-1: Self programming: </b>Needs to be set in order to program the device, and must not be set if the device is operating. Sorry, this is a bit inconvenient, a residue of the usbasp roots.</li>
<li><b>JP 1-2: Programmer Power: </b>Powers the device logic from the Programmers power source.</li>
<li><b>JP 5: coupled power: </b> Connects the motor and logic voltages. Might work for really small motors(take care that the current of the motor is much higher when under heavy load) or strong USB power sources.</li>
</ul>
<h4>Two red LEDs hack</h4>
<p>When all that separated my board from completion were the two 3V6 Z-diodes, I asked for help in the <a href="http://www.mikrocontroller.net/">mikrocontroller.net</a> &#8211; chat, and Loetmichel told me the 3.6 V Zener diodes can be replaced by 2 red LEDs each. If incorporated into the PCB, this might even look really nice, and add some information.</p>
<h4>Free pins</h4>
<p>in the pcb, some of the atmega&#8217;s pins are connected to pinheads, so the board can be extended. I&#8217;ve tested a rather crude servo control for PC2&#8230;PC5, but unfortunately, if there is activity on the usb bus, the timing will get disturbed and the servos will move without being told so. I guess one could use the two 8-bit timers with their pwm pins to avoid being disturbed by the high-level usb interrupt, maybe in the next version. If however you can live with a bad servo control, try the &#8220;trunk&#8221; package.</p>
<h4>Board problems</h4>
<ul>
<li>JP 5 is too close to the power connector.</li>
<li>The L293D is a bit old and can only power rather small motors. There are some nice <a href="http://www.roboternetz.de/wissen/index.php/Getriebemotoren_Ansteuerung#Noch_mehr_Power_gew.C3.BCnscht.3F">automotive ICs</a>, but unfortunately, those chips aren&#8217;t that easily available. Another Problem of the L293D is the low allowed pwm frequency &#8211; with 5 kHz in a region that is acoustically displeasing.</li>
<li>The holes for screws are placed randomly.</li>
<li>Setting the jumpers for programming is not that comfortable. I guess I will use a USB bootloader for the next version, saves some wires, too</li>
<li>Probably a lot more.</li>
</ul>
<h4>License and warnings</h4>
<p>The software for both the microcontroller and the host is available under the terms of the <a href="http://www.gnu.org/copyleft/gpl.html">GPL</a>, in the hope that it might be useful for someone out there. In Addition to the terms of the GPL, obdev, who provide the firmware-only usb driver, kindly ask and require <a href="http://www.obdev.at/products/avrusb/license.html">additional terms</a> that especially apply as long as the shared obdev vid/pid pair is used.</p>
<p>The atmega, especially if powered by 5 Volts as in this device, cannot comply to the electrical part of the USB standard. Nevertheless, it works well with a large range of computers. However, there is no guarantee that it will not destroy your USB controller or your entire computer, so keep in mind the last sentence of the GPL: This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.</p>
<p><p><a href='photos/elektronik/usbmot//coll.png'><img class='photofiles_thumb' src='thumbs/elektronik/usbmot//coll.png.thumb_small.png' alt='link to photos/elektronik/usbmot//coll.png' height='100' width='100' title=''/></a> <a href='photos/elektronik/usbmot//usbmot.png'><img class='photofiles_thumb' src='thumbs/elektronik/usbmot//usbmot.png.thumb_small.png' alt='link to photos/elektronik/usbmot//usbmot.png' height='100' width='100' title=''/></a> <a href='photos/elektronik/usbmot//usbmot_assembly_diagram.png'><img class='photofiles_thumb' src='thumbs/elektronik/usbmot//usbmot_assembly_diagram.png.thumb_small.png' alt='link to photos/elektronik/usbmot//usbmot_assembly_diagram.png' height='100' width='100' title=''/></a> <a href='photos/elektronik/usbmot//usbmot_in_action.jpg'><img class='photofiles_thumb' src='thumbs/elektronik/usbmot//usbmot_in_action.jpg.thumb_small.png' alt='link to photos/elektronik/usbmot//usbmot_in_action.jpg' height='100' width='100' title=''/></a> <a href='photos/elektronik/usbmot//usbmot_screenshot.png'><img class='photofiles_thumb' src='thumbs/elektronik/usbmot//usbmot_screenshot.png.thumb_small.png' alt='link to photos/elektronik/usbmot//usbmot_screenshot.png' height='100' width='100' title=''/></a> </p><br />
<hr /><a href='http://andreas.goelzer.de/download/usbmot_software.tar.bz2'><img src="http://andreas.goelzer.de/wp-content/plugins/kfile/fileicons/file-compressed.png" width="16" height="16" alt="filetype" class="icon16" /> usbmot_software.tar.bz2</a> (723.15 kiB, 2008-11-03)<br/><a href='http://andreas.goelzer.de/download/usbmot_trunk.tar.bz2'><img src="http://andreas.goelzer.de/wp-content/plugins/kfile/fileicons/file-compressed.png" width="16" height="16" alt="filetype" class="icon16" /> usbmot_trunk.tar.bz2</a> (759.19 kiB, 2008-11-21)<br/><a href='http://andreas.goelzer.de/download/usbmot_schematic.pdf'><img src="http://andreas.goelzer.de/wp-content/plugins/kfile/fileicons/file-pdf.png" width="16" height="16" alt="filetype" class="icon16" /> usbmot_schematic.pdf</a> (93.99 kiB, 2008-10-29)<br/><a href='http://andreas.goelzer.de/download/usbmot_pcb.pdf'><img src="http://andreas.goelzer.de/wp-content/plugins/kfile/fileicons/file-pdf.png" width="16" height="16" alt="filetype" class="icon16" /> usbmot_pcb.pdf</a> (194.58 kiB, 2008-10-29)<br/><a href='http://andreas.goelzer.de/download/usbmot_eagle_pcb.tar.bz2'><img src="http://andreas.goelzer.de/wp-content/plugins/kfile/fileicons/file-compressed.png" width="16" height="16" alt="filetype" class="icon16" /> usbmot_eagle_pcb.tar.bz2</a> (73.22 kiB, 2008-11-21)<br/><hr /></p>
]]></content:encoded>
			<wfw:commentRss>http://andreas.goelzer.de/usbmot/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 1/5 queries in 0.005 seconds using disk: basic
Object Caching 421/421 objects using disk: basic

Served from: andreas.goelzer.de @ 2012-02-05 05:30:22 -->
