<?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-1620774144236432664</id><updated>2012-02-16T12:52:17.639-05:00</updated><category term='DS1052E'/><category term='intro'/><title type='text'>Where did the magic smoke go?</title><subtitle type='html'>A journal of my various hobby projects.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://andydodd.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1620774144236432664/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://andydodd.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Andy</name><uri>http://www.blogger.com/profile/04050678530388304934</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-1620774144236432664.post-895940446554556719</id><published>2010-02-01T17:46:00.000-05:00</published><updated>2010-02-01T17:46:56.755-05:00</updated><title type='text'>First project of the year - I2C Controllable RGB LED Nodes</title><content type='html'>I actually started this project during the last week of 2009, and is one of the primary reasons I resumed blogging.  Go figure, I haven't actually gotten around to posting it until now!&lt;br /&gt;&lt;br /&gt;While I primarily focused on RF engineering in school, I have always had an interest in lighting, especially solid state lighting (LEDs).  I have also always been in awe of those computer controlled animated Christmas light displays like that of Carson Williams back in 2005 or so.&lt;br /&gt;&lt;br /&gt;More after the break... &lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I occasionally follow the development at &lt;a href="http://www.doityourselfchristmas.com/"&gt;Do It Yourself Christmas&lt;/a&gt; and have considered participating in development myself.&lt;br /&gt;&lt;br /&gt;At the end of this year, I saw user mrpackethead's YouTube clip of his "Mega Tree" using 2000 individually addressable RGB nodes at &lt;a href="http://http//www.youtube.com/watch?v=GAt6A98lXQw"&gt;&lt;/a&gt;.  It is amazing, however, the nodes MPH is using are based on a controller chipset that is not available outside of Asia.  As a result, I decided to start work on developing similar nodes using parts readily available in the USA.  Eventually, I settled on the Atmel ATTiny25/45/85 AVR microcontroller due to previous AVR experience, and I2C for minimal pin count/pin use on the AVR.  (Daisy-chain SPI was not achievable with an 8-pin AVR without sacrificing in-circuit serial programming.)&lt;br /&gt;&lt;br /&gt;I prototyped my first node during Christmas break, and posted the results to DIYC in &lt;a href="http://http//doityourselfchristmas.com/forums/showthread.php?t=10157"&gt;this thread&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;At this point I have the following implemented:&lt;br /&gt;24 bits/node (8 bits/color) control&lt;br /&gt;Gamma curve applied to the input RGB, with internal 12-bit sigma-delta modulator for each color channel&lt;br /&gt;Storage of I2C address in AVR EEPROM&lt;br /&gt;A preliminary board design for the nodes I intend to send to Olimex next week&lt;br /&gt;&lt;br /&gt;Source code for the project is located at &lt;a href="http://github.com/Entropy512/I2C_RGB"&gt;my GitHub repository for this project&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Also, a video of a somewhat older version of my nodes is on YouTube at &lt;a href="http://http//www.youtube.com/watch?v=bg5ph8kWKJA"&gt;I2C-Addressable RGB LEDs - Breadboard Prototype&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;By the way, this project was the main driving reason for me purchasing the Rigol oscilloscope I discussed in previous posts.  I also plan on posting more of my experiences with the Rigol and Linux soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1620774144236432664-895940446554556719?l=andydodd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://andydodd.blogspot.com/feeds/895940446554556719/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://andydodd.blogspot.com/2010/02/first-project-of-year-i2c-controllable.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1620774144236432664/posts/default/895940446554556719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1620774144236432664/posts/default/895940446554556719'/><link rel='alternate' type='text/html' href='http://andydodd.blogspot.com/2010/02/first-project-of-year-i2c-controllable.html' title='First project of the year - I2C Controllable RGB LED Nodes'/><author><name>Andy</name><uri>http://www.blogger.com/profile/04050678530388304934</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>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1620774144236432664.post-6657252011551529642</id><published>2010-01-07T18:40:00.001-05:00</published><updated>2010-01-07T18:40:33.743-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DS1052E'/><title type='text'>Rigol DS1052E Oscilloscope and Linux - Part 2</title><content type='html'>Well, after further investigation, I'm a dumbass.&lt;br /&gt;&lt;br /&gt;The Python library I linked to in my previous post predates the usbtmc kernel module - it's libusb based!&lt;br /&gt;&lt;br /&gt;So after "modprobe -r usbtmc" and running an example which sends *IDN? to the device, I get:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;adodd@quadmonkey:~/Documents/ds1052e$ sudo ./usbtmc.py&lt;br /&gt;[sudo] password for adodd:&lt;br /&gt;Rigol Technologies,DS1052E,DS1ED113506705,00.02.02.02.00&lt;br /&gt;adodd@quadmonkey:~/Documents/ds1052e$&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;IT WORKS!  However, I'd like to try and find some documentation on the kernel module based approach, since it's likely more up to date.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1620774144236432664-6657252011551529642?l=andydodd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://andydodd.blogspot.com/feeds/6657252011551529642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://andydodd.blogspot.com/2010/01/rigol-ds1052e-oscilloscope-and-linux_07.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1620774144236432664/posts/default/6657252011551529642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1620774144236432664/posts/default/6657252011551529642'/><link rel='alternate' type='text/html' href='http://andydodd.blogspot.com/2010/01/rigol-ds1052e-oscilloscope-and-linux_07.html' title='Rigol DS1052E Oscilloscope and Linux - Part 2'/><author><name>Andy</name><uri>http://www.blogger.com/profile/04050678530388304934</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>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1620774144236432664.post-4250978687925765545</id><published>2010-01-07T18:27:00.001-05:00</published><updated>2010-01-07T18:41:36.728-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DS1052E'/><title type='text'>Rigol DS1052E Oscilloscope and Linux - Part 1</title><content type='html'>I just received a new piece of test equipment today, a Rigol DS1052E oscilloscope from &lt;a href="http://www.saelig.com/PSBEB100/PSPC016.htm"&gt;Saelig&lt;/a&gt;.&amp;nbsp; After powering it on and connecting one probe, I decided to see if I could interface with it in Linux.&amp;nbsp; I've done some interfacing with test equipment in Linux before using USB-to-GPIB interfaces, but this instrument has serial and raw USB.&lt;br /&gt;&lt;br /&gt;Trusty Google has yet to provide me any information about this combination, so I decided to start by plugging the scope into my Ubuntu machine.&amp;nbsp; dmesg output and more after the break.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;[65794.781221] usb 2-6.3: new full speed USB device using ohci_hcd and address 6&lt;br /&gt;[65794.909328] usb 2-6.3: configuration #1 chosen from 1 choice&lt;br /&gt;[65794.984233] usbtmc 2-6.3:1.0: can't read capabilities&lt;br /&gt;[65794.984312] usbcore: registered new interface driver usbtmc&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;That error doesn't look promising, however it may be benign.  Here's the lsusb output:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Bus 002 Device 006: ID 1ab1:0588  &lt;br /&gt;Device Descriptor:&lt;br /&gt;bLength                18&lt;br /&gt;bDescriptorType         1&lt;br /&gt;bcdUSB               1.10&lt;br /&gt;bDeviceClass            0 (Defined at Interface level)&lt;br /&gt;bDeviceSubClass         0 &lt;br /&gt;bDeviceProtocol         0 &lt;br /&gt;bMaxPacketSize0        64&lt;br /&gt;idVendor           0x1ab1 &lt;br /&gt;idProduct          0x0588 &lt;br /&gt;bcdDevice            1.00&lt;br /&gt;iManufacturer           1 Rigol Technologies&lt;br /&gt;iProduct                2 DS1000 SERIES &lt;br /&gt;iSerial                 3 DS1K00005888&lt;br /&gt;bNumConfigurations      1&lt;br /&gt;Configuration Descriptor:&lt;br /&gt;bLength                 9&lt;br /&gt;bDescriptorType         2&lt;br /&gt;wTotalLength           39&lt;br /&gt;bNumInterfaces          1&lt;br /&gt;bConfigurationValue     1&lt;br /&gt;iConfiguration          0 &lt;br /&gt;bmAttributes         0xc0&lt;br /&gt;Self Powered&lt;br /&gt;MaxPower                2mA&lt;br /&gt;Interface Descriptor:&lt;br /&gt;bLength                 9&lt;br /&gt;bDescriptorType         4&lt;br /&gt;bInterfaceNumber        0&lt;br /&gt;bAlternateSetting       0&lt;br /&gt;bNumEndpoints           3&lt;br /&gt;bInterfaceClass       254 Application Specific Interface&lt;br /&gt;bInterfaceSubClass      3 Test and Measurement&lt;br /&gt;bInterfaceProtocol      1 TMC&lt;br /&gt;iInterface              0 &lt;br /&gt;Endpoint Descriptor:&lt;br /&gt;bLength                 7&lt;br /&gt;bDescriptorType         5&lt;br /&gt;bEndpointAddress     0x01  EP 1 OUT&lt;br /&gt;bmAttributes            2&lt;br /&gt;Transfer Type            Bulk&lt;br /&gt;Synch Type               None&lt;br /&gt;Usage Type               Data&lt;br /&gt;wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;bInterval               0&lt;br /&gt;Endpoint Descriptor:&lt;br /&gt;bLength                 7&lt;br /&gt;bDescriptorType         5&lt;br /&gt;bEndpointAddress     0x82  EP 2 IN&lt;br /&gt;bmAttributes            2&lt;br /&gt;Transfer Type            Bulk&lt;br /&gt;Synch Type               None&lt;br /&gt;Usage Type               Data&lt;br /&gt;wMaxPacketSize     0x0040  1x 64 bytes&lt;br /&gt;bInterval               0&lt;br /&gt;Endpoint Descriptor:&lt;br /&gt;bLength                 7&lt;br /&gt;bDescriptorType         5&lt;br /&gt;bEndpointAddress     0x83  EP 3 IN&lt;br /&gt;bmAttributes            3&lt;br /&gt;Transfer Type            Interrupt&lt;br /&gt;Synch Type               None&lt;br /&gt;Usage Type               Data&lt;br /&gt;wMaxPacketSize     0x0008  1x 8 bytes&lt;br /&gt;bInterval               1&lt;br /&gt;Device Status:     0x0001&lt;br /&gt;Self Powered&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;There is very little information about this usbtmc driver available.  There's a python library available from &lt;a href="http://svn.openmoko.org/developers/werner/ahrt/host/tmc/README"&gt;OpenMoko SVN&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I tried installing that, however it only gives an error when I try one of the examples.&amp;nbsp; It may be related to that "can't get capabilities" error.&lt;br /&gt;&lt;br /&gt;There is apparently an Agilent usbtmc driver in addition to the mainline Linux kernel one, I will try that later, as I need to go run errands now.&amp;nbsp; Stay tuned!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1620774144236432664-4250978687925765545?l=andydodd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://andydodd.blogspot.com/feeds/4250978687925765545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://andydodd.blogspot.com/2010/01/rigol-ds1052e-oscilloscope-and-linux.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1620774144236432664/posts/default/4250978687925765545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1620774144236432664/posts/default/4250978687925765545'/><link rel='alternate' type='text/html' href='http://andydodd.blogspot.com/2010/01/rigol-ds1052e-oscilloscope-and-linux.html' title='Rigol DS1052E Oscilloscope and Linux - Part 1'/><author><name>Andy</name><uri>http://www.blogger.com/profile/04050678530388304934</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>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1620774144236432664.post-7123717573947334367</id><published>2010-01-05T21:22:00.000-05:00</published><updated>2010-01-05T21:27:58.974-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='intro'/><title type='text'>A new beginning</title><content type='html'>Once upon a time, a long time ago, I had a Livejournal account.  I have not posted to that account, and while it still exists, it represented a very different phase of my life.&lt;br /&gt;&lt;br /&gt;For that reason, I've moved to Blogspot and started fresh.  Compared to my previous effort in blogging, this will have somewhat of a different focus.  Rather than focus on personal issues, I plan on focusing more on various hobby projects.&lt;br /&gt;&lt;br /&gt;More to come in the next few days...  Over the holiday vacation I started a project that I need to start documenting, and I expect the oscilloscope arriving Thursday should lead to a few other small efforts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1620774144236432664-7123717573947334367?l=andydodd.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://andydodd.blogspot.com/feeds/7123717573947334367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://andydodd.blogspot.com/2010/01/new-beginning.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1620774144236432664/posts/default/7123717573947334367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1620774144236432664/posts/default/7123717573947334367'/><link rel='alternate' type='text/html' href='http://andydodd.blogspot.com/2010/01/new-beginning.html' title='A new beginning'/><author><name>Andy</name><uri>http://www.blogger.com/profile/04050678530388304934</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>0</thr:total></entry></feed>
