<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6648499777386163936</id><updated>2011-12-17T07:37:02.642-08:00</updated><title type='text'>Lars Englund</title><subtitle type='html'>Personal blog of Lars Englund.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://larsenglund.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6648499777386163936/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://larsenglund.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Lars Englund</name><uri>http://www.blogger.com/profile/09611224123157594870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6648499777386163936.post-351238427998618925</id><published>2007-04-14T02:04:00.003-07:00</published><updated>2010-12-22T13:56:44.135-08:00</updated><title type='text'>Simple USB LCD</title><content type='html'>&lt;p&gt;In this post I will describe a simple way to add a LCD (HD44780 based) to a computer via USB. Besides a LCD the only component needed is a FTDI FT245-chip (or any other FTDI-chip that supports asynchronous bit bang mode). These can either be bought unsoldered for $4 if you have the means to manually solder it (empty breakout board is $3), or they can be bought presoldered on a breakout board with USB connector for $15. You'll also need a USB cable for about $2. All prices are from &lt;a href="http://www.sparkfun.com/"&gt;Spark Fun Electronics&lt;/a&gt;. If you live in Europe (I'm from Sweden) you can get FTDI-chips from &lt;a href="http://www.lawicel-shop.se/"&gt;Lawicel&lt;/a&gt; or &lt;a href="http://www.farnell.com/"&gt;Farnell&lt;/a&gt;, they both have low shipping costs. If you have access to etching equipment you can easily make the breakout board yourself and save some money. Here´s an 600dpi etch mask for a SSOP-28 breakout board (it can be made smaller, this was just a quick auto routing in Eagle):&lt;/p&gt;&lt;p style="text-align: center; clear: both;" class="separator"&gt;&lt;a style="border: 0pt none ; background-color: transparent; margin-left: 1em; margin-right: 1em;" href="http://lars.englund.googlepages.com/SSOP28_breakout.png" imageanchor="1"&gt;&lt;img src="http://lars.englund.googlepages.com/SSOP28_breakout-medium.jpg" style="border: 0pt none ;" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Once you have your FTDI-chip mounted on the breakout board, connect the FDTI-chip to the USB-cable in the simple bus-powered configuration (see FT245 datasheet) and connect the LCD to the FTDI-chip as follows (NC= not connected):&lt;/p&gt;&lt;p&gt;FTDI: D7 D6 D5 D4 D3 D2 D1 D0&lt;br /&gt;LCD: NC E  RS RW D7 D6 D5 D4&lt;/p&gt;&lt;p&gt;Here are some photos of my test setup:&lt;/p&gt;&lt;p style="text-align: center; clear: both;" class="separator"&gt;&lt;a style="border: 0pt none ; background-color: transparent; margin-left: 1em; margin-right: 1em;" href="http://lars.englund.googlepages.com/PICT2177.JPG" imageanchor="1"&gt;&lt;img src="http://lars.englund.googlepages.com/PICT2177-medium.jpg" style="border: 0pt none ;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a style="border: 0pt none ; background-color: transparent; margin-left: 1em; margin-right: 1em;" href="http://lars.englund.googlepages.com/PICT2179.JPG" imageanchor="1"&gt;&lt;img src="http://lars.englund.googlepages.com/PICT2179-medium.jpg" style="border: 0pt none ;" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Install the D2XX drivers from FTDI and you´re good to go! I've made a sample application that prints text to the LCD using the D2XX drivers, you can get it from Google code:&lt;/p&gt;&lt;p&gt;&lt;a href="http://code.google.com/p/ftdiusblcd"&gt;http://code.google.com/p/ftdiusblcd&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;D7 (and optionally D4) can be used for general purpose I/O (buttons or whatever). There are FTDI drivers for Linux, Windows and Mac OS and bindings for C/C++, C#, Java, etc, so it should be easy to make it work cross platform. It would be nice if someone wrote the code needed to make it work in common LCD programs like LCDproc, LCD4Linux, etc. Please let me know in that case :)&lt;br /&gt;&lt;/p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-style: italic;"&gt;Some LCD links:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.repairfaq.org/filipg/LINK/F_LCD_HD44780.html"&gt;Nice LCD FAQ&lt;/a&gt; , &lt;a href="http://www.quinapalus.com/hd44780udg.html"&gt;User defined graphics&lt;/a&gt; , &lt;a href="http://www.koders.com/c/fid8D89E5165579C6791AB1425CEE2CEDC88690D549.aspx"&gt;HD44780 code from LCDproc&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6648499777386163936-351238427998618925?l=larsenglund.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://larsenglund.blogspot.com/feeds/351238427998618925/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6648499777386163936&amp;postID=351238427998618925' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6648499777386163936/posts/default/351238427998618925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6648499777386163936/posts/default/351238427998618925'/><link rel='alternate' type='text/html' href='http://larsenglund.blogspot.com/2007/04/simple-usb-lcd.html' title='Simple USB LCD'/><author><name>Lars Englund</name><uri>http://www.blogger.com/profile/09611224123157594870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6648499777386163936.post-910506610356787431</id><published>2007-04-14T02:04:00.001-07:00</published><updated>2007-04-23T09:01:02.118-07:00</updated><title type='text'>Automatic Go game record - Saikifu</title><content type='html'>I started playing &lt;a href="http://playgo.to/interactive/"&gt;Go&lt;/a&gt; with my friend &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Björn&lt;/span&gt; about a year ago after watching &lt;a href="http://www.animenfo.com/animetitle,719,jahmbq,hikaru_no_go.html"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Hikaru&lt;/span&gt; no Go&lt;/a&gt;. It's good fun :) While playing we found ourselves sometimes taking a picture of the board to be able to test variations of our moves later on. We also found ourselves not motivated enough to actually look at the photo afterwards and place it on a board :P That's when the idea to have a computer watch the game and log it automatically came about.&lt;br /&gt;I wrote a small program that looks at a game of Go through a camera and logs it to a &lt;a href="http://www.red-bean.com/sgf/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;SGF&lt;/span&gt;&lt;/a&gt; file. The main GUI looks like this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_jU6zJQXKBuo/Riipu3v9Z5I/AAAAAAAAADo/O8rWCzxXU8g/s1600-h/saikifu-full.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_jU6zJQXKBuo/Riipu3v9Z5I/AAAAAAAAADo/O8rWCzxXU8g/s320/saikifu-full.jpg" alt="" id="BLOGGER_PHOTO_ID_5055477204427564946" border="0" /&gt;&lt;/a&gt;It also acts as an automatic game clock: when black places a stone blacks timer stops and whites timer starts to tick and the other way around. If there is any interest i could add different byoyomi time control methods to enable the program to act as a full-fledged Go game clock.&lt;br /&gt;The program is written in java to be portable, using &lt;a href="http://java.sun.com/products/java-media/jmf/2.1.1/download.html"&gt;Java Media Framework &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;API&lt;/span&gt; (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;JMF&lt;/span&gt;) 2.1.1e&lt;/a&gt;, &lt;a href="http://java.sun.com/j2se/1.5.0/download.jsp"&gt;J2SE 5.0 Update 6&lt;/a&gt; and &lt;a href="http://www.netbeans.info/downloads/download.php?type=5.0"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;NetBeans&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;IDE&lt;/span&gt; 5.0&lt;/a&gt;. It should work with most &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;web cameras&lt;/span&gt;.&lt;br /&gt;The code is available at Google code:&lt;br /&gt;&lt;a href="http://code.google.com/p/saikifu"&gt;http://code.google.com/p/saikifu&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Just let me know if you want me to add some features :)&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6648499777386163936-910506610356787431?l=larsenglund.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://larsenglund.blogspot.com/feeds/910506610356787431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6648499777386163936&amp;postID=910506610356787431' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6648499777386163936/posts/default/910506610356787431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6648499777386163936/posts/default/910506610356787431'/><link rel='alternate' type='text/html' href='http://larsenglund.blogspot.com/2007/04/automatic-go-game-record-saikifu.html' title='Automatic Go game record - Saikifu'/><author><name>Lars Englund</name><uri>http://www.blogger.com/profile/09611224123157594870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_jU6zJQXKBuo/Riipu3v9Z5I/AAAAAAAAADo/O8rWCzxXU8g/s72-c/saikifu-full.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6648499777386163936.post-9046638677596380068</id><published>2007-04-13T03:27:00.000-07:00</published><updated>2007-04-13T05:10:49.213-07:00</updated><title type='text'>Simple AVR wireless communication using Cypress Wireless USB modules</title><content type='html'>A simple way of adding wireless communication to your electronics projects is by using &lt;a href="http://www.cypress.com/portal/server.pt?space=CommunityPage&amp;control=SetCommunity&amp;amp;amp;amp;amp;amp;amp;amp;amp;CommunityID=209&amp;PageID=215&amp;amp;gid=14&amp;fid=65&amp;amp;category=WirelessUSB+Modules&amp;showall=false"&gt;wireless &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;USB&lt;/span&gt; modules by Cypress&lt;/a&gt;. These 2.4 GHz tranceiver (both TX&amp;amp;RX on each module) modules have very low power consumption, over 50m range (over 200m with non-PCB antenna) and cost $10 in quantities of 1 (one). Cypress also offer samples of all their wireless products so you can test them out before you buy. I will show how to interface the &lt;a name="ParamTable"&gt;&lt;/a&gt;&lt;a href="http://www.cypress.com/portal/server.pt?space=CommunityPage&amp;control=SetCommunity&amp;amp;CommunityID=209&amp;amp;amp;amp;amp;amp;amp;amp;PageID=259&amp;fid=65&amp;amp;rpn=CYWM6934&amp;ref=pfm"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;CYWM&lt;/span&gt;6934&lt;/a&gt; and  &lt;a name="ParamTable"&gt;&lt;/a&gt;&lt;a href="http://www.cypress.com/portal/server.pt?space=CommunityPage&amp;amp;control=SetCommunity&amp;CommunityID=209&amp;amp;amp;amp;amp;amp;amp;amp;PageID=259&amp;fid=65&amp;amp;rpn=CYWM6935&amp;ref=pfm"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;CYWM&lt;/span&gt;6935&lt;/a&gt; modules (they are pin compatible and &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;interchangeable&lt;/span&gt;, just different range) (it should work with the CYWM6935PAEC aswell since it's just a CYWM6935 with a power amplifier) with a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Atmel&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;AVR&lt;/span&gt; mega8 &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;microcontroller&lt;/span&gt;.&lt;br /&gt;The modules consists of a wireless &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;transceiver (CYWUSB6934 or CYWUSB6935)&lt;/span&gt;, a PCB antenna, some passive components, a crystal and a pin header for connecting to the module. Communication between the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;transceiver&lt;/span&gt; and the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;AVR&lt;/span&gt; is done via &lt;a href="http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;SPI&lt;/span&gt;&lt;/a&gt;, which the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;AVR&lt;/span&gt; has hardware support for. The only components needed besides the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;AVR&lt;/span&gt; and the module is +5V and +3.3V power supplies. I used L7805CV for +5V and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;LM&lt;/span&gt;317T for +3.3V (better to use a dedicated 3.3V regulator, but couldn't find one on short notice).&lt;br /&gt;To have something fun to send over the wireless link I connected a &lt;a href="http://www.maxim-ic.com/quick_view2.cfm/qv_pk/2815"&gt;Dallas &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;DS&lt;/span&gt;1820&lt;/a&gt; temperature sensor (also available as samples) to the transmitting side (any DS18X20 sensor works, DS1820, DS18S20 and DS18B20). To read the temperature sensor I used a &lt;a href="http://www.siwawi.arubi.uni-kl.de/avr_projects/tempsensor/index.html"&gt;collection of code from Martin Thomas&lt;/a&gt;. I also used some USART code from &lt;a href="http://www.iki.fi/jap"&gt;Jaakko Ala-Paavola&lt;/a&gt;. The following photo shows the first test setup with two &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;CYWM&lt;/span&gt;6934 connected to one &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;AVR&lt;/span&gt; mega8 each.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_jU6zJQXKBuo/Rh9jx4kBOaI/AAAAAAAAADg/YxZ5ZDSjAt8/s1600-h/PICT2499.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_jU6zJQXKBuo/Rh9jx4kBOaI/AAAAAAAAADg/YxZ5ZDSjAt8/s320/PICT2499.JPG" alt="" id="BLOGGER_PHOTO_ID_5052867015581186466" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;After initial testing I moved the module with the temperature sensor to a separate board for range testing. Pinouts for the modules can be found in their datasheets and pin connections to the AVR can be found in the source code (wireless_tx.c and wireless_rx.c).&lt;br /&gt;My code for interacting with the wireless module is available on &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_17"&gt;Google&lt;/span&gt; code:&lt;br /&gt;&lt;a href="http://code.google.com/p/cywusb"&gt;http://code.google.com/p/cywusb&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Have fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6648499777386163936-9046638677596380068?l=larsenglund.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://larsenglund.blogspot.com/feeds/9046638677596380068/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6648499777386163936&amp;postID=9046638677596380068' title='24 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6648499777386163936/posts/default/9046638677596380068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6648499777386163936/posts/default/9046638677596380068'/><link rel='alternate' type='text/html' href='http://larsenglund.blogspot.com/2007/04/simple-avr-wireless-communication-using.html' title='Simple AVR wireless communication using Cypress Wireless USB modules'/><author><name>Lars Englund</name><uri>http://www.blogger.com/profile/09611224123157594870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_jU6zJQXKBuo/Rh9jx4kBOaI/AAAAAAAAADg/YxZ5ZDSjAt8/s72-c/PICT2499.JPG' height='72' width='72'/><thr:total>24</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6648499777386163936.post-758534462877816869</id><published>2007-04-12T15:10:00.000-07:00</published><updated>2007-04-14T02:07:48.760-07:00</updated><title type='text'>Altec Lansing ACS295 Subwoofer hack</title><content type='html'>This page will show how to use the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;subwoofer&lt;/span&gt;&lt;/span&gt; from the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Altec&lt;/span&gt;&lt;/span&gt; Lansing &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;ACS&lt;/span&gt;&lt;/span&gt;295 2.1 speaker kit as a stand alone active &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;subwoofer&lt;/span&gt;&lt;/span&gt; without using the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;satellite&lt;/span&gt; speakers. The speakers are controlled from one of the satellites (as seen in the picture below, the controls are on the left satellite speaker) so if the satellites are lost the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;subwoofer&lt;/span&gt;&lt;/span&gt; is dead in the water..&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_jU6zJQXKBuo/Rh6xBYkBOUI/AAAAAAAAACw/Mf_R7gRVfSY/s1600-h/back.GIF"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_jU6zJQXKBuo/Rh6xBYkBOUI/AAAAAAAAACw/Mf_R7gRVfSY/s320/back.GIF" alt="" id="BLOGGER_PHOTO_ID_5052670469287786818" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;Image from &lt;a href="http://support.dell.com/support/edocs/acc/ACS295/"&gt;Dells support page for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Altec&lt;/span&gt;&lt;/span&gt; Lansing &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;ACS&lt;/span&gt;&lt;/span&gt;295 Speaker System&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;We (me and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;Fredrik&lt;/span&gt;&lt;/span&gt;) found two of these &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;subwoofers&lt;/span&gt;&lt;/span&gt; at a second hand &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;hifi&lt;/span&gt;&lt;/span&gt; shop and wanted a active &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;subwoofer&lt;/span&gt;&lt;/span&gt; for a home cinema. There where no &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;sattelites&lt;/span&gt;&lt;/span&gt; and searching the web we only found other people wanting to know how to use the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;subwoofer&lt;/span&gt;&lt;/span&gt; stand alone and that &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;Altec&lt;/span&gt;&lt;/span&gt; Lansing isn't exactly handing out &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_15"&gt;datasheets :P&lt;/span&gt; Thus, we took the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;subwoofer&lt;/span&gt;&lt;/span&gt; apart and analyzed/traced the circuit board. Here are some high resolution photos of the board:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_jU6zJQXKBuo/Rh8-q4kBOYI/AAAAAAAAADQ/xp-9mKiW25M/s1600-h/PICT2533.JPG"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_jU6zJQXKBuo/Rh8-q4kBOYI/AAAAAAAAADQ/xp-9mKiW25M/s200/PICT2533.JPG" alt="" id="BLOGGER_PHOTO_ID_5052826213391874434" border="0" /&gt;&lt;/a&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_jU6zJQXKBuo/Rh8-PokBOWI/AAAAAAAAADA/QE92kziXZpM/s1600-h/PICT2532.JPG"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_jU6zJQXKBuo/Rh8-PokBOWI/AAAAAAAAADA/QE92kziXZpM/s200/PICT2532.JPG" alt="" id="BLOGGER_PHOTO_ID_5052825745240439138" border="0" /&gt;&lt;/a&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_jU6zJQXKBuo/Rh8_O4kBOZI/AAAAAAAAADY/sV5BZuQ8lUk/s1600-h/PICT2534.JPG"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_jU6zJQXKBuo/Rh8_O4kBOZI/AAAAAAAAADY/sV5BZuQ8lUk/s200/PICT2534.JPG" alt="" id="BLOGGER_PHOTO_ID_5052826831867165074" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The speakers are controlled by a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;TDA&lt;/span&gt;&lt;/span&gt;7433 audio processor that speaks I2C with the controls on the satellite. This is a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;pinout&lt;/span&gt;&lt;/span&gt; of the connection to the satellite (red connector in the picture above from Dells support page):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_jU6zJQXKBuo/Rh62pYkBOVI/AAAAAAAAAC4/G5aQZnHEshk/s1600-h/acs295_pinout.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_jU6zJQXKBuo/Rh62pYkBOVI/AAAAAAAAAC4/G5aQZnHEshk/s320/acs295_pinout.jpg" alt="" id="BLOGGER_PHOTO_ID_5052676654040693074" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;After studying the &lt;a href="http://www.st.com/stonline/products/literature/ds/4061.pdf"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;datasheet&lt;/span&gt;&lt;/span&gt; for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;TDA&lt;/span&gt;&lt;/span&gt;7433&lt;/a&gt; and &lt;a href="http://www.robot-electronics.co.uk/htm/using_the_i2c_bus.htm"&gt;this page about I2C&lt;/a&gt; I wrote a controller program for a &lt;a href="http://www.atmel.com/dyn/products/product_card.asp?part_id=2004"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;Atmel&lt;/span&gt;&lt;/span&gt; Mega8&lt;/a&gt; using &lt;a href="http://www.nongnu.org/avr-libc/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;avr&lt;/span&gt;&lt;/span&gt;-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;libc&lt;/span&gt;&lt;/span&gt;&lt;/a&gt; and connected it to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;SDA&lt;/span&gt;&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;SCL&lt;/span&gt;&lt;/span&gt; together with 4.7&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;kOhm&lt;/span&gt;&lt;/span&gt; pull-ups (there are no pull-ups on the circuit board inside the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;ACS&lt;/span&gt;&lt;/span&gt;295). Power the amplifier on by connecting the power pin to ground as shown in the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;pinout&lt;/span&gt;&lt;/span&gt; above, send the right parameters via I2c and &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_29"&gt;eureka&lt;/span&gt;, we have a working &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;subwoofer&lt;/span&gt;&lt;/span&gt;! :D Unfortunately &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;Altec&lt;/span&gt;&lt;/span&gt; chose a cheap plastic to cover the back of the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;subwoofer&lt;/span&gt;&lt;/span&gt; and this plastic &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_33"&gt;vibrates&lt;/span&gt; and makes a noise when the base is pumping :( Let me know if you find a solution to this (we are thinking of replacing it with wood).&lt;br /&gt;I've made the source code for the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_34"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;AVR&lt;/span&gt;&lt;/span&gt; I2C controller available at &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;google&lt;/span&gt; code:&lt;br /&gt;&lt;a href="http://code.google.com/p/acs295"&gt;http://code.google.com/p/acs295&lt;/a&gt;&lt;br /&gt;I´d be happy of you post a comment if any of this is &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_32"&gt;useful&lt;/span&gt; to you, happy hacking!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6648499777386163936-758534462877816869?l=larsenglund.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://larsenglund.blogspot.com/feeds/758534462877816869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6648499777386163936&amp;postID=758534462877816869' title='82 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6648499777386163936/posts/default/758534462877816869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6648499777386163936/posts/default/758534462877816869'/><link rel='alternate' type='text/html' href='http://larsenglund.blogspot.com/2007/04/altec-lansing-acs295-subwoofer-hack.html' title='Altec Lansing ACS295 Subwoofer hack'/><author><name>Lars Englund</name><uri>http://www.blogger.com/profile/09611224123157594870</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_jU6zJQXKBuo/Rh6xBYkBOUI/AAAAAAAAACw/Mf_R7gRVfSY/s72-c/back.GIF' height='72' width='72'/><thr:total>82</thr:total></entry></feed>
