<?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-2131958746786008795</id><updated>2012-01-26T05:21:08.689-05:00</updated><category term='laser'/><category term='vwr vortexer'/><category term='circuit'/><category term='logic analyzer'/><category term='radio astronomy'/><category term='pic18'/><category term='pager'/><category term='vector network analyzer'/><category term='HP16500B'/><category term='c18'/><category term='on screen display'/><category term='intergraph'/><category term='temperature'/><category term='at+t'/><category term='ALTERA'/><category term='pcb'/><category term='microchip'/><category term='cisco'/><category term='audio'/><category term='555 contest'/><category term='pic'/><category term='ferric chloride'/><category term='bind'/><category term='cpu'/><category term='serial port'/><category term='network closet'/><category term='brodcast ping'/><category term='scanner'/><category term='weather'/><category term='breakout board'/><category term='MaxStream'/><category term='tmp100'/><category term='ps3'/><category term='camera'/><category term='logic'/><category term='downconverter'/><category term='nearspace balloon'/><category term='scope'/><category term='reverse engineer'/><category term='bench'/><category term='blu-ray'/><category term='i2c'/><category term='harmon kardon'/><category term='flex'/><category term='APT'/><category term='Maxim'/><category term='microcontroller'/><category term='dns'/><category term='Agilent'/><category term='Test Equipment'/><category term='navigation display'/><category term='cpu from scratch'/><category term='accelerometer'/><category term='led'/><category term='mp3'/><category term='neverendingdoom'/><category term='spindle motor'/><category term='project'/><category term='tektronix'/><category term='satellite'/><category term='space'/><category term='vfd display'/><category term='moving'/><category term='oscilloscope'/><category term='datasheet'/><category term='peltier'/><category term='tip31c'/><category term='datasheets. project'/><category term='sony'/><category term='ttl'/><category term='range testing'/><category term='a300'/><category term='interface'/><category term='laser diode'/><category term='programmer'/><category term='water'/><category term='scientech balance'/><category term='yagi antenna'/><category term='sun microsystems'/><category term='windows'/><category term='peoplebacon'/><category term='adc'/><category term='CPLD'/><category term='mini-circuits'/><category term='555 timer'/><category term='rabbit semiconductor'/><category term='rf'/><category term='car'/><category term='t1'/><category term='linux'/><category term='VNA'/><category term='hack'/><category term='HP'/><category term='radio'/><category term='MAX7456'/><category term='level'/><category term='php'/><category term='plants'/><category term='ICMP'/><category term='rocket'/><category term='icom-r7000'/><category term='electronics'/><category term='gps'/><category term='capacitors'/><category term='pocsag'/><category term='lmr-200'/><category term='repeater'/><category term='model railroad'/><category term='Digi'/><category term='wireless'/><category term='national semiconductor'/><category term='hard drive'/><category term='pic18f25k20'/><category term='XBee'/><category term='japan'/><category term='preamp'/><category term='tube amp'/><category term='pumpkin'/><category term='extreme networks'/><category term='CompactFlash'/><title type='text'>incoming nonsense</title><subtitle type='html'>&lt;center&gt;
Thoughts of a computer scientist focused on electronics.
&lt;br&gt;
VHDL, FPGA, CPLD, PIC, DSP, RF, Analog, Digital, Audio, plus anything I find interesting at the moment.
&lt;/center&gt;</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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>51</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-5039773020213165071</id><published>2012-01-19T01:00:00.008-05:00</published><updated>2012-01-19T01:34:27.840-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='radio astronomy'/><category scheme='http://www.blogger.com/atom/ns#' term='downconverter'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><category scheme='http://www.blogger.com/atom/ns#' term='mini-circuits'/><title type='text'>21cm Line Downconverter Testing</title><content type='html'>This project is the heterodyning downconverter I have designed and assembled for radio astronomy purposes. It will be used to convert 1420Mhz Hydrogen Line reception from my 10' dish and feedhorn / LNA assembly down to a more manageable frequency of 100Mhz or so. It consists of a mini-circuits mixer along with a Z-Comm VCO for the LO. This particular VCO has a frequency range of 850Mhz to 1600Mhz, ideally covering the 1420Mhz band. A few mini-circuits low noise mmics are used for amplification along with a mini-circuits low pass filter to filter out the original LO and source frequencies.&lt;br /&gt;&lt;br /&gt;Last week after returning from vacation I received my downconverter boards and started assembly. Here is the final assembled downconverter ready for testing:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-Q3ogLw3L-S8/TxexzVqjmkI/AAAAAAAAAa0/qODQG6E0gcw/s1600/21cm_downconverter.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/-Q3ogLw3L-S8/TxexzVqjmkI/AAAAAAAAAa0/qODQG6E0gcw/s400/21cm_downconverter.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5699219349007735362" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This downconverter as I began testing has excellent performance. I need to do some further testing and measuring to calculate its noise and gain, but I have been very pleased so far. Because of the flexibility of the VCO, I have had some fun during testing downconverting and also upconverting various frequencies around, the following video show upconversion of FM bands to 900Mhz:&lt;br /&gt;&lt;br /&gt;&lt;iframe width="420" height="315" src="http://www.youtube.com/embed/-PG17iBfrjg" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-5039773020213165071?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/5039773020213165071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2012/01/21cm-line-downconverter-testing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/5039773020213165071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/5039773020213165071'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2012/01/21cm-line-downconverter-testing.html' title='21cm Line Downconverter Testing'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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/-Q3ogLw3L-S8/TxexzVqjmkI/AAAAAAAAAa0/qODQG6E0gcw/s72-c/21cm_downconverter.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-3170964482898427648</id><published>2011-11-18T22:24:00.018-05:00</published><updated>2011-11-19T10:03:29.480-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='microchip'/><category scheme='http://www.blogger.com/atom/ns#' term='microcontroller'/><category scheme='http://www.blogger.com/atom/ns#' term='pic18'/><category scheme='http://www.blogger.com/atom/ns#' term='i2c'/><category scheme='http://www.blogger.com/atom/ns#' term='pic18f25k20'/><category scheme='http://www.blogger.com/atom/ns#' term='c18'/><title type='text'>PIC18F C18 Implemented I2C Slave Communication</title><content type='html'>So after many hours of wasted time I was able to successfully implement an I2C slave device on a PIC18F25K20. What seemed to be a simple task to implement as PIC18F device as an I2C slave ended up being a significant amount of work. This was not because I2C is a complex protocol (it's not), but a combination of attempting to use the built in Microchp C18 compiler I2C libraries for a slave device along with trying to save time by not fully reading the datasheets. This ended up wasting a lot of time. Much searching for the issue turned up with lots of results of people with the same issue, but often as you find in forums, no one had an actual answer to why it wasn't working ( as in no one could get it working! ). My intention here is to clear up this issue and explain what you must do to make a PIC18 work as an I2C slave device. This will not be an I2C tutorial, a good understanding of I2C along with an understanding of the Microchip PIC18 series and C18 libraries will make things more clear.&lt;br /&gt;&lt;br /&gt;Using Microchips C18 compiler with the C18 libraries has been very straightforward when using a PIC18F series microcontroller as an I2C master device. If you wanted to write a single byte of data to a slave device with an address of say 0xB0, it can be implemented in the following way:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;OpenI2C( MASTER, SLEW_OFF);&lt;br /&gt;SSPADD = 0x27; //SSPADD Baud Register used to calculate I2C clock speed in MASTER mode (in this case 100Khz)&lt;br /&gt;&lt;br /&gt;StartI2C();&lt;br /&gt;IdleI2C();&lt;br /&gt;putcI2C( 0xB0 );     //send address&lt;br /&gt;IdleI2C();&lt;br /&gt;putcI2C( databyte ); //send data&lt;br /&gt;IdleI2C();&lt;br /&gt;StopI2C();&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This code is simply placing the target device address onto the I2C bus, the upper seven bits of this byte contain the devices address with the lsb bit indicating whether the op will begin a read(0) or a write(1). The data byte is then sent following the address. A standard I2C diagram will explain this the most clearly including the Ack and NAck data.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-7EnxeR_ZZqc/TscpfHWlPBI/AAAAAAAAAaU/oC7sxU_RMU0/s1600/I2C_write.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 112px;" src="http://3.bp.blogspot.com/-7EnxeR_ZZqc/TscpfHWlPBI/AAAAAAAAAaU/oC7sxU_RMU0/s400/I2C_write.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5676551469850246162" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;While still in master mode, reading data from an I2C device can be easily done as well. The following code can be used to read two bytes of data from an I2C slave device from a PIC18 micro operating in master mode:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;StartI2C();               // Start condition&lt;br /&gt;IdleI2C();&lt;br /&gt;WriteI2C( 0xB0 );     // addresses the chip with a read bit   &lt;br /&gt;IdleI2C();&lt;br /&gt;inbit = ReadI2C();        // read the value from the RTC and store in result&lt;br /&gt;IdleI2C();&lt;br /&gt;AckI2C();&lt;br /&gt;IdleI2C();&lt;br /&gt;inbit2 = ReadI2C();       // read the value from the RTC and store in result&lt;br /&gt;IdleI2C();&lt;br /&gt;NotAckI2C();    &lt;br /&gt;IdleI2C();&lt;br /&gt;StopI2C();                // Stop condition I2C on bus&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This is also clarified by looking at I2C timing:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-muDA9yrMhu4/Tscp3e43CkI/AAAAAAAAAag/yzHNvLbvifk/s1600/I2C_read.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 117px;" src="http://2.bp.blogspot.com/-muDA9yrMhu4/Tscp3e43CkI/AAAAAAAAAag/yzHNvLbvifk/s400/I2C_read.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5676551888484895298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now things become tricky when you want to use two PIC18F devices where one is a master device while the other is a slave. Utilizing the I2C libraries, you would think that implementing something like this on the Slave device would work:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;OpenI2C( SLAVE_7, SLEW_OFF);&lt;br /&gt;SSPADD = 0xB0; //SSPADD contains I2C device address in SLAVE mode&lt;br /&gt;&lt;br /&gt;while ( !DataRdyI2C() )&lt;br /&gt;{&lt;br /&gt;    addr = ReadI2C();&lt;br /&gt;    AckI2C();&lt;br /&gt;    IdleI2C();&lt;br /&gt;    data = ReadI2C();&lt;br /&gt;    NAckI2C();&lt;br /&gt;    IdleI2C();&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;What the above is attempting to do is wait until the SSPBUF register contains address data, when it does read the byte, acknowledge, wait until the next byte, read that byte, then NAck the data. Of course any data that appears on the bus will not be accepted by the specific PIC at all, so if SSPBUF does ever contain data it will be destined for this device. Another important note is the SSPBUF register will contain the address that is sent upon first byte received. The ReadI2C() function will clear this buffer so even if we have no need for the data, it still must be read.&lt;br /&gt;&lt;br /&gt;Now you can play with this code all you want adjusting timing, Ack and NAck sequencing, delays, etc... but ultimately it will not do what you would like it to do / think it should do. Why? Looking into the C18 I2C libraries themselves you will see that some of the functions will only work in MASTER mode, or put simply they were not designed to be used in SLAVE mode. This is where most of my time was wasted.&lt;br /&gt;&lt;br /&gt;The solution? Read the datasheet and application notes, one particular app note in particular &lt;a href="http://ww1.microchip.com/downloads/en/AppNotes/00734b.pdf"&gt;AN734&lt;/a&gt; will tell you everything you need to know. I would recommend reading AN734 fully if you really want to understand slave communication on a PIC18F. Instead of attempting to modify the C18 I2C predefined functions I decided to implement my own at the register level. Here are the important registers and bits within the PIC18F25K20 (among others) you need to be aware of:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;SSPBUF          : Serial TX/RX data buffer. &lt;br /&gt;PIR1bits.SSPIF  : Interrupt flag bit. This will be 1 when data is received into SSPBUF&lt;br /&gt;SSPSTATbits.BF  : SSPBUF buffer full status bit. 1 = full, 0 = empty.&lt;br /&gt;SSPSTATbits.D_A : Data / Address bit. When receiving it indicates what the data received was. 0 = address, 1 = data.&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;With the above data you can easily implement I2C slave data reception, so here is how. There are two ways you can handle data received. If you code timing is critical, the best and preferred method will be to implement an ISR and place the code within it. If the timing on your device is not as critical you can implement the code in a separate function or within your main loops themselves. Implementation will be up to you.&lt;br /&gt;&lt;br /&gt;If you are looking for an interrupt, your ISR will be ran when &lt;code&gt;PIR1bits.SSPIF == 1&lt;/code&gt;. Alternately you can look for a few thing to be true while would indicate that a first address byte has been received. Checking for the following will guarantee this case:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;if ( PIR1bits.SSPIF == 1 &amp;&amp; SSPSTATbits.BF == 1 &amp;&amp; SSPSTATbits.D_A == 0 )&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;With this you are checking to see that an interrupt has been received, SSPBUF is indeed full, and SSPBUF contains an address (not data).&lt;br /&gt;From there you will need to immediately clear the interrupt flag.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;PIR1bits.SSPIF = 0;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Then read the byte in SSPBUF&lt;br /&gt;&lt;br /&gt;&lt;code&gt;addr = SSPBUF;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Note that the addr byte may not need to be read at all so you can skip this read if not necessary, but be sure to then clear the SSPBUF BF bit. If this is not cleared the next byte sent will cause an SSP overflow resulting in a NAck condition. Reading SSPBUF automatically clears the BF bit.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;SSPSTATbits.BF = 0;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Now that the data has been read and/or the BF bit has been cleared you can prepare to receive the data. Depending on the speed of your I2C bus, the speed of your microntrollers, etc the data byte may have already arrived. Before reading SSPBUF blindly as we don't exactly know what is there, we can perform the following check:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;if ( PIR1bits.SSPIF == 0 &amp;&amp; SSPSTATbits.BF == 0 &amp;&amp; SSPSTATbits.D_A == 1 )&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This checks to see if an interrupt has been received, SSPBUF is indeed full again, and SSPBUF contains data (not an address). If all checks out we can then read the data byte:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;data = SSPBUF;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Now that we have our data we have to do some further housekeeping:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;PIR1bits.SSPIF = 0; //clear interrupt&lt;br /&gt;SSPSTATbits.D_A = 0; //set D_A bit to 0 so that we can check if the subsequent byte is more data.&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;If you wish to receive more than a single byte of data you can then loop through the checks again waiting for each additional byte of data. If you continue to have trouble receiving data from the master, try adding a delay between the first address byte and data byte to be sent on the master. If you are still seeing issues, slow your I2C bus speeds down so you can more clearly see what is going on. A logic analyzer can also instantly show you what is going on with your data. Remember to also watch timing. I was using a 100Khz SCL in the above examples which is slow enough to keep things under control. If you are using a 400Khz SCL (or faster) be sure to enable clock stretching to keep things manageable. Without clock stretching, your ISR may not have enough time to read SSPBUF before the master sends another byte of data.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-3170964482898427648?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/3170964482898427648/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2011/11/pic18f-c18-implemented-i2c-slave.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/3170964482898427648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/3170964482898427648'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2011/11/pic18f-c18-implemented-i2c-slave.html' title='PIC18F C18 Implemented I2C Slave Communication'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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/-7EnxeR_ZZqc/TscpfHWlPBI/AAAAAAAAAaU/oC7sxU_RMU0/s72-c/I2C_write.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-8589321419153057676</id><published>2011-11-18T00:07:00.005-05:00</published><updated>2011-11-18T09:59:22.885-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='breakout board'/><category scheme='http://www.blogger.com/atom/ns#' term='ALTERA'/><category scheme='http://www.blogger.com/atom/ns#' term='CPLD'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>ALTERA EPM3032A CPLD Breakout Board</title><content type='html'>Recently I came across a large quantity of NetApp DS14 Filers that were being disposed of which are basically Fiber Channel shelves full of FC drives. While a few of these ended up in my basement 48U rack for FC attached storage, the rest I scavenged as many parts from as possible. These shelves have removable modules depending on the interfaces required. On these modules two parts caught my eye:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-9uWmofA4ifc/TsZyHIMt5TI/AAAAAAAAAaM/rVZIXV-VpCc/s1600/altera_max_cpld.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 239px;" src="http://2.bp.blogspot.com/-9uWmofA4ifc/TsZyHIMt5TI/AAAAAAAAAaM/rVZIXV-VpCc/s400/altera_max_cpld.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5676349847132562738" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Two ALTERA CPLDs from the Max 3000 family. An EPM3256A and an EPM3032A. While I was excited about both devices, the EPM3032A I was initially more excited for as it is a more manageable package size.&lt;br /&gt;&lt;br /&gt;After removing about 10 or so of these CPLDs from the boards I went ahead and designed a simple breakout board in Eagle. All 44 pins are broken out and I included an onboard 3.3V regulator along with a JTAG connector. Upon receiving the boards I threw one together, wrote a simple 4 bit counter in VHDL in Quartus II and downloaded to the CPLD via JTAG to see it worked perfectly.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-uzLz_HcGJPo/TsZyGyAHKMI/AAAAAAAAAZ8/d3jyqKk4RWk/s1600/altera_max_cpld_breakout.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 239px;" src="http://3.bp.blogspot.com/-uzLz_HcGJPo/TsZyGyAHKMI/AAAAAAAAAZ8/d3jyqKk4RWk/s400/altera_max_cpld_breakout.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5676349841174112450" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The EPM3032A is not a large CPLD, with only 32 macrocells it's by no means a device for large scale logic implementations. The 4 bit counter ended up using 4 macrocells or 13% of the usable space in the CPLD, but it is perfect when you need a small custom logic device where many individual chips would be required. I'll be working on a breakout for the more powerful EPM3256A soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-8589321419153057676?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/8589321419153057676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2011/11/altera-epm3032a-cpld-breakout-board.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/8589321419153057676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/8589321419153057676'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2011/11/altera-epm3032a-cpld-breakout-board.html' title='ALTERA EPM3032A CPLD Breakout Board'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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/-9uWmofA4ifc/TsZyHIMt5TI/AAAAAAAAAaM/rVZIXV-VpCc/s72-c/altera_max_cpld.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-1939047030473764696</id><published>2011-08-30T01:04:00.004-04:00</published><updated>2011-08-30T01:36:43.864-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tmp100'/><category scheme='http://www.blogger.com/atom/ns#' term='XBee'/><category scheme='http://www.blogger.com/atom/ns#' term='pic18'/><category scheme='http://www.blogger.com/atom/ns#' term='temperature'/><title type='text'>XBee Based Datacenter Temperature Monitoring Network</title><content type='html'>&lt;br /&gt;&lt;br /&gt;Temperature monitoring and control is extremely crucial for any datacenter. I work for a hosting company who has several thousand servers running producing enormous mounts of heat. To battle the BTU output of these servers you must have hundreds of tons of cooling running all the time to keep everything operating under control. Monitoring the datacenters temperature is important in more ways than you think. In the event of a cooling failure, servers will begin to overheat extremely quickly, this in turn causes them to raise the speed of their internal fans to full speed to combat the internal heat. For one server this may not be so bad, but when 1000+ servers do it your total power consumption increases drastically. This can then cause circuits to draw more current which in turn heats them up further increasing the overall temperature in the facility. Servers CPUs will then begin to be throttled by the bios to cool them down which can hurt websites performance. Datacenters internally can actually reach high enough temperatures over 100 degrees Fahrenheit were circuit breakers begin to trip and large 150KVA+ UPS battery backup systems can actually fail from the high temperatures and the increased load they are seeing. Thermal expansion can also come into play causing wire lugs to come loose on UPS inputs and transformers further causing points of failure.&lt;br /&gt;&lt;br /&gt;All of this is why reliable temperature monitoring is so crucial. Being able to monitor temperatures throughout a facility can keep you ahead of any potential failure. Commercial temperature monitoring systems are available, but they are extremely expensive and limited on their placement. If you have a 10,000+ square foot facility, monitoring the temperature everywhere could be extremely expensive and difficult to implement. So for all these reasons I wanted to design a system that was very inexpensive and easy to implement anywhere you needed it. Specifically I wanted to not only monitor ambient air in both hot and cold aisles, but also be able to monitor temperatures inside circuit panels and PDUs. Being able to measure a increase in temperature within the circuit panel or PDU itself could indicate a potential failure way ahead of time allowing it to be addressed before it causes a dangerous situation. &lt;br /&gt;&lt;br /&gt;My solution was to build a simple temperature monitoring network that was ideal for a datacenter environment. When beginning the design process I came up with the following requirements that it needed to meet:&lt;br /&gt;&lt;br /&gt;1.Inexpensive. Commercial temperature monitoring systems are very expensive. I wanted my sensors to be inexpensive enough where you could place them in locations that you would not normally be able to place a temperature sensor because of cost reasons.&lt;br /&gt;2.Wireless. Most existing temperature systems are wired, which is silly in my opinion based on the inexpensiveness of existing XBee based wireless modules. This saves the need of having to run additional wires to each sensor and increases placement flexibility.&lt;br /&gt;3.Easily expandable. I wanted to make sure that I could add additional sensors into the system at any time without hitting any limits on the amount of sensors, within reason.&lt;br /&gt;4.Reliable. Previous systems I used were dumb in the fact that the sensors would sometimes have errors collecting data. This would in turn wake me up at 4am telling me the datacenter was at 150+ degrees Fahrenheit, then instantly back to 70 degrees. This was just annoying.&lt;br /&gt;&lt;br /&gt;This is the design of my first three prototype sensors I made:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-kuGp2OnSB9c/TlxyZMnzcuI/AAAAAAAAAZA/gQfGxLhVR1Y/s1600/temp_monitoring.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 239px; height: 400px;" src="http://2.bp.blogspot.com/-kuGp2OnSB9c/TlxyZMnzcuI/AAAAAAAAAZA/gQfGxLhVR1Y/s400/temp_monitoring.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5646513810026230498" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Each sensor is based on a PIC 18F25K20 microcontroller driven by a 16Mhz oscillator. An XBee module provides the wireless connectivity while a TI TMP100 I2C based temperature sensor monitors the current temperature condition. The TMP100 is one of my favorite chips, it is inexpensive, has 12 bit resolution, and has a wide temperature range. Now I know I could have easily made these much smaller by using all smd based components The PIC I chose is way overkill for the job anyway, but I had a large quantity of these in my parts bin left over from previous designs so I used them as I hate having parts sit around unused.&lt;br /&gt;&lt;br /&gt;The software on the PIC simply reads the temperature from the TMP100 every 60 seconds and sends the temp along with a unique device ID to the XBee. The data it sends is also DES encrypted to prevent anyone from injecting rogue temperature data into my monitoring network. If someone really wanted to they could probably crack the encryption over time. I guess if they just really want to wake me up at night I'll have to implement even stronger encryption. ;)&lt;br /&gt;&lt;br /&gt;The receiving end is PHP based. An Xbee / Max232 interface receives the data and sends it to /dev/ttyS0 on the receiving Linux based server. From there I decrypt and parse the received data and process it for errors. It is then checked for predefined temperature limits and emails the appropriate  contacts if thresholds are reached. It is also stored into a database and sends a daily log of temperatures throughout the day.&lt;br /&gt;&lt;br /&gt;The system is flexible as it allows me to add any additional sensors into the monitoring network at any time. I'm using 2.4Ghz based XBee's, but they are in sockets allowing me to replace them with the 900Mhz version in the event that a facility has a lot of walls blocking the 2.4Ghz signal.&lt;br /&gt;&lt;br /&gt;So far the temperature sensors have been working very well, future plans include a modular temperature sensor board and a better (prettier) web interface to show the current facility conditions.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-1939047030473764696?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/1939047030473764696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2011/08/xbee-based-datacenter-temperature.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/1939047030473764696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/1939047030473764696'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2011/08/xbee-based-datacenter-temperature.html' title='XBee Based Datacenter Temperature Monitoring Network'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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/-kuGp2OnSB9c/TlxyZMnzcuI/AAAAAAAAAZA/gQfGxLhVR1Y/s72-c/temp_monitoring.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-5317231021811205086</id><published>2011-06-12T23:23:00.013-04:00</published><updated>2011-06-15T22:56:31.969-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rf'/><category scheme='http://www.blogger.com/atom/ns#' term='vector network analyzer'/><category scheme='http://www.blogger.com/atom/ns#' term='lmr-200'/><category scheme='http://www.blogger.com/atom/ns#' term='VNA'/><category scheme='http://www.blogger.com/atom/ns#' term='mini-circuits'/><category scheme='http://www.blogger.com/atom/ns#' term='bench'/><title type='text'>Verifying LMR-200 Coax Cable Loss</title><content type='html'>For years I have used RG-58 cable for my antenna systems, it is inexpensive, easy to work with, and for short runs it works just fine. Last year I started heavily receiving NOAA weather APT imagery using the same RG-58 cable. During this time, pass after satellite pass I noticed my images were not as pristine as they should be. The cable length I was using was just over 100' in length and looking at the loss of my RG-58 it's no surprise that I had such poor images. As a test I replaced all of the cable with a used length on Andrew LMR-400 cable which resulted in an instant improvement. &lt;br /&gt;&lt;br /&gt;Now this past week I finally mounted a wide-band scanner antenna on my home and needed a 60' run of cable to reach my RF bench in the basement. Instead of going to my typical spool of RG-58, I wanted something better. LMR-400 was my first choice but is significantly more expensive than my free RG-58. Because of this and the fact that a smaller diameter cable would be better hidden on the outside of the house I chose LMR-200. I purchased 60' of &lt;a href="http://timesmicrowave.com/products/lmr/downloads/12-15.pdf"&gt;Times Microwave LMR-200&lt;/a&gt; (arguably the best cable you can buy).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-Na5_hieG8E8/TflwlbrgunI/AAAAAAAAAYk/5S27JQEFKhY/s1600/P1000603%2B%2528Large%2529.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/-Na5_hieG8E8/TflwlbrgunI/AAAAAAAAAYk/5S27JQEFKhY/s400/P1000603%2B%2528Large%2529.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5618645798509132402" /&gt;&lt;/a&gt;&lt;br /&gt;With an attenuation of 9.9dB @ 900Mhz, it was significantly better than RG-58. This cable combined with quality Amphenol SMA connectors I was curious to see if the cable would measure up to it's spec sheet. Times Microwave rates it's LMR-200 at 9.9dBm of attenuation at 900Mhz over 100'. At my 60 feet I should only be seeing 5.94dBm of loss which is what I am looking to verify.&lt;br /&gt;&lt;br /&gt;The test setup:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-V1PKqiCZO04/TfloUk7OLKI/AAAAAAAAAYE/uROLWi9O75k/s1600/P1000592%2B%2528Large%2529.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/-V1PKqiCZO04/TfloUk7OLKI/AAAAAAAAAYE/uROLWi9O75k/s400/P1000592%2B%2528Large%2529.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5618636712840146082" /&gt;&lt;/a&gt;&lt;br /&gt;An HP 8656B signal generator would be the test source while the spectrum analyzer in my HP 8922H would be used to verify the attenuation of the cable. As a baseline test, I connected a small 1' high quality 50 ohm SMA cable with Amphenol connectors in between the signal generator and spectrum analyzer. Using a -50dBm baseline, the measured signal through the cable was -50.52dBm at 100Mhz. At 900Mhz, it was -51.65dBm, a good start. Now to place the 60' of LMR-200 inline. Unfortunately I did not have a male N to female SMA adapter so I could not test the cable directly inline. To make the test work I placed a mini-circuits &lt;a href="http://www.minicircuits.com/pdfs/ZFSC-2-5.pdf"&gt;ZFSC-2-5-S&lt;/a&gt; splitter inline of the cable.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-x4MJ4Et_6VY/Tflt9UMmizI/AAAAAAAAAYU/uvYcZb-LW00/s1600/P1000606%2B%2528Large%2529.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/-x4MJ4Et_6VY/Tflt9UMmizI/AAAAAAAAAYU/uvYcZb-LW00/s400/P1000606%2B%2528Large%2529.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5618642910282418994" /&gt;&lt;/a&gt;&lt;br /&gt;According the the mini-circuits datasheet, at 100Mhz this splitter has a loss on each output of 3.25dBm. At ~900Mhz it has a loss of 3.57dBm, both of which will be compensated for in the results. So testing the 60' of LMR-200 through the splitter at 900Mhz yielded -59.95dBm:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-H2mid2X0CM4/Tflsptjny7I/AAAAAAAAAYM/85BgV1UJwfI/s1600/P1000594%2B%2528Large%2529.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/-H2mid2X0CM4/Tflsptjny7I/AAAAAAAAAYM/85BgV1UJwfI/s400/P1000594%2B%2528Large%2529.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5618641473980844978" /&gt;&lt;/a&gt;&lt;br /&gt;Taking that result and subtracting the loss of the mini-circuits splitter you end up with -56.38dBm, and the difference of that from the original baseline of -50.52dBm at 900Mhz is -5.86dBm of loss at 900Mhz, which is under the spec sheet of -5.94dBm by .08dBm, a very good result indeed. I love it when numbers work out. As a final test I ran a sweep test on the 60' cable using an HP 8754A Vector Network Analyzer. As expected, the loss from 10Mhz to 1300Mhz exactly matched the expected attenuation in the datasheet:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-C7wHeWa9OaQ/TflvH-tEtkI/AAAAAAAAAYc/h4utLZHlG58/s1600/P1000616%2B%2528Large%2529.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/-C7wHeWa9OaQ/TflvH-tEtkI/AAAAAAAAAYc/h4utLZHlG58/s400/P1000616%2B%2528Large%2529.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5618644193003222594" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I will be running this cable to my antenna tomorrow. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-5317231021811205086?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/5317231021811205086/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2011/06/verifying-lmr-200-coax-cable-loss.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/5317231021811205086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/5317231021811205086'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2011/06/verifying-lmr-200-coax-cable-loss.html' title='Verifying LMR-200 Coax Cable Loss'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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://1.bp.blogspot.com/-Na5_hieG8E8/TflwlbrgunI/AAAAAAAAAYk/5S27JQEFKhY/s72-c/P1000603%2B%2528Large%2529.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-5035207002169666291</id><published>2011-03-30T23:24:00.013-04:00</published><updated>2011-03-31T00:12:11.116-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pcb'/><category scheme='http://www.blogger.com/atom/ns#' term='vwr vortexer'/><category scheme='http://www.blogger.com/atom/ns#' term='peoplebacon'/><category scheme='http://www.blogger.com/atom/ns#' term='ferric chloride'/><category scheme='http://www.blogger.com/atom/ns#' term='peltier'/><category scheme='http://www.blogger.com/atom/ns#' term='circuit'/><title type='text'>Faster PCB Etching with Ferric Chloride</title><content type='html'>At times I am very impatient when I am working on a project and want to assemble a working design. If the design is simple enough I will assemble it on a copper perf board, but often the component count is high enough where a PCB is a much better solution. If the design has a really high component count with lots of surface mount components I will send the board out to a fab house only to have to wait a few days to a month for it to return before finally finishing my project. Sometimes this is much too long. What if I want to have a finished design that night? The solution is etching... more specifically &lt;span style="font-style:italic;"&gt;fast&lt;/span&gt; etching.&lt;br /&gt;&lt;br /&gt;I have been etching my own boards with ferric chloride for years with great success. The only downside to this is time. A larger board will take 20 to 30 minutes (sometimes even longer) to etch in the solution. It also requires agitation to keep it etching effectively by keeping the fresh solution contacting the copper. This requires you to either shake the container of ferric chloride or push the board around constantly in the solution as it etches.&lt;br /&gt;&lt;br /&gt;My solution was to have something agitate the board for me.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-6ah_FHM5CwU/TZP0LzdTnvI/AAAAAAAAAXg/ixL43xVtPJ0/s1600/P1000571%2B%2528Small%2529.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/-6ah_FHM5CwU/TZP0LzdTnvI/AAAAAAAAAXg/ixL43xVtPJ0/s320/P1000571%2B%2528Small%2529.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5590080046125784818" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This was my first test of using a VWR vortexer to speed up the process. This device was designed for a lab environment to hold test tubes, beakers, and such. The lower plate rotated around causing a mini vortex within the containers solution that would be placed on it. I have modified it to hold a glass container full of ferric chloride to agitate the solution for me. The glass container I am using is perfect for the job. It is a food container called 'Glass Lock' and has a tight fitting plastic lid that locks into place on all four sides. Nothing will be leaking out of it. I bought two of them for the lids. One has small holes that I drilled to allow fumes to evacuate while the second lid is unmodified to store the solution.&lt;br /&gt;&lt;br /&gt;Ferric chloride also works better when it is warm. To facilitate this I mounted a good sized peltier junction to the bottom with an epoxy heatsink compound and supplied it with a 12V 2A power supply. It heats the solution up to about 110 degrees Fahrenheit, still below the maximum ferric chloride recommended temp of 135 degrees.&lt;br /&gt;&lt;br /&gt;The VWR vortexer as it arrived has an adjustable speed control, the only issue was it had a minimum speed of 1200rpm. This is much too fast for what I needed. Opening up the unit I found two adjustable resistors that let you adjust the minimum and maximum speeds of the motor. I was able to adjust it all the way down to a nice ~200 rpm, perfect to keep the ferric chloride in motion.&lt;br /&gt;&lt;br /&gt;In goes the PCB:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-pM5QpSuLpAo/TZP0MGxANwI/AAAAAAAAAXo/ao9eBWA_RWA/s1600/P1000572%2B%2528Small%2529.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/-pM5QpSuLpAo/TZP0MGxANwI/AAAAAAAAAXo/ao9eBWA_RWA/s320/P1000572%2B%2528Small%2529.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5590080051308672770" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;With the lid locked on and the vortexer switched on, I checked the board every five minutes. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-udKwobs47VM/TZP0Mn_keWI/AAAAAAAAAXw/lidnkBOeblo/s1600/P1000573%2B%2528Small%2529.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/-udKwobs47VM/TZP0Mn_keWI/AAAAAAAAAXw/lidnkBOeblo/s320/P1000573%2B%2528Small%2529.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5590080060228139362" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Total etching time was about 12 minutes, less than half the time of any previous etching I have done. After a quick sanding here is the finished board before tin plating:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-5okixKpU40c/TZP0NBut7uI/AAAAAAAAAX4/ZzPr6GnB6D4/s1600/P1000576%2B%2528Small%2529.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/-5okixKpU40c/TZP0NBut7uI/AAAAAAAAAX4/ZzPr6GnB6D4/s320/P1000576%2B%2528Small%2529.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5590080067136777954" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Not perfect, but not bad for less than an hour and a half time. I had the design drawn up in eagle in about 45 minutes, the rest was transferring the design to the copper and etching.&lt;br /&gt;&lt;br /&gt;Future improvements will be to add a second peltier device to get the solution up to a higher temperature and to also add a digital temperature gauge to make sure the solution does not get too hot.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-5035207002169666291?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/5035207002169666291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2011/03/faster-pcb-etching-with-ferric-chloride.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/5035207002169666291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/5035207002169666291'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2011/03/faster-pcb-etching-with-ferric-chloride.html' title='Faster PCB Etching with Ferric Chloride'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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://4.bp.blogspot.com/-6ah_FHM5CwU/TZP0LzdTnvI/AAAAAAAAAXg/ixL43xVtPJ0/s72-c/P1000571%2B%2528Small%2529.JPG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-2647366527985321780</id><published>2011-02-28T01:18:00.007-05:00</published><updated>2011-02-28T02:42:02.609-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='level'/><category scheme='http://www.blogger.com/atom/ns#' term='555 timer'/><category scheme='http://www.blogger.com/atom/ns#' term='audio'/><category scheme='http://www.blogger.com/atom/ns#' term='555 contest'/><category scheme='http://www.blogger.com/atom/ns#' term='circuit'/><title type='text'>555 Contest Entry - Audible Level</title><content type='html'>&lt;div style="text-align: left;"&gt;The deadline for this &lt;a href="http://www.555contest.com/"&gt;555 contest&lt;/a&gt; came up very fast, so here I am wiring my blog post for it's entry right around 2am. Over the past few weeks I have been thinking and thinking, trying to come up with an awesome design that used just tons of 555 timers, but with lack of time this month and after seeing some of the other designs posted around I decided to go for something simple.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The design I am submitting is a level that can be used for any purpose where you need to find a level surface in respect to gravity. Typical levels have a clear tube full of a liquid and an air bubble that you have to visually watch. This design uses two separate audio tones at different frequencies that when a level surface is found, the two tones exactly match producing a single uniform tone. With this design, you can listen for a level surface instead of watching. The video has a brief outline of it's function.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/03hfhakvGOs?hl=en&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/03hfhakvGOs?hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;When designing it my first idea was to generate two individual frequencies and mix them together, the results being a sounds similar to DTMF tones you hear on a phone. After testing this I realized that it didn't work as well as I would have liked, it was very difficult to accurately detect the 'true' portion of the level. The resulting design ended up working quite well using two tones that are switched back and forth by a 555 as an oscillator controlling an analog multiplexer to switch the voltages. The second 555 is the actual VCO that generates the tones. When an axis on the accelerometer outputs a voltage that is equal to a reference voltage set, the two tones being generated will exactly match and no difference in frequency is heard. To detect a 45 degree angle, you can take the z axis and either the x or y axis outputs and put them both into the multiplexer instead of the reference voltage.&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-ifmGF6h0UAY/TWtRUJ_4sLI/AAAAAAAAAXQ/xS8_OZIH7Pw/s1600/555_contest1%2B%2528Large%2529.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/-ifmGF6h0UAY/TWtRUJ_4sLI/AAAAAAAAAXQ/xS8_OZIH7Pw/s400/555_contest1%2B%2528Large%2529.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5578641970151600306" /&gt;&lt;/a&gt;&lt;div&gt;I left the circuit on a breadboard as I didn't see any rule stating that the design must be a finished product, hopefully that holds true. The 555s are basic NE555 timers that I have had forever. The analog multiplexer is a 508A that came off of some old wire wrapped boards that I believe to be used in old radar hardware. The 508A is a very cool chip, it adds to the vintage of the 555s. The accelerometer is a ADXL-330, 3 axis plus or minus 3G which I happened to have on hand. Another idea originally was to cycle between both x and y axis of it along with the reference voltage in order allowing you to be able to level something in two dimensions. This proved to be more difficult to listen to so I stuck with the single axis idea to measure.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-cZsJnp7EbPg/TWtRUFMYmEI/AAAAAAAAAXY/hsD-07SHex4/s1600/555_contest2%2B%2528Large%2529.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/-cZsJnp7EbPg/TWtRUFMYmEI/AAAAAAAAAXY/hsD-07SHex4/s400/555_contest2%2B%2528Large%2529.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5578641968861845570" /&gt;&lt;/a&gt;&lt;div&gt;I tested the accuracy of this level to see if it was actually practical to use. I mounted this circuit to a small board and lined it up on a piece of wood. I then 'listened' for 45 degrees and drew a line on the board. Using a regular level and protractor I found that I was at 46 degrees which was pretty close. My accuracy became better in subsequent tests resulting in most of my lines being right at 45 degrees. It is cool to see that this circuit has an actual practical application.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-2647366527985321780?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/2647366527985321780/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2011/02/555-contest-entry-audible-level.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/2647366527985321780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/2647366527985321780'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2011/02/555-contest-entry-audible-level.html' title='555 Contest Entry - Audible Level'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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/-ifmGF6h0UAY/TWtRUJ_4sLI/AAAAAAAAAXQ/xS8_OZIH7Pw/s72-c/555_contest1%2B%2528Large%2529.JPG' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-8426980535974800042</id><published>2011-02-12T00:15:00.008-05:00</published><updated>2011-02-12T00:56:59.007-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='navigation display'/><category scheme='http://www.blogger.com/atom/ns#' term='MAX7456'/><category scheme='http://www.blogger.com/atom/ns#' term='car'/><category scheme='http://www.blogger.com/atom/ns#' term='pic18'/><category scheme='http://www.blogger.com/atom/ns#' term='accelerometer'/><title type='text'>Vehicle Lateral Acceleration Meter</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-j2QS7bpRwVE/TVYg5uexjHI/AAAAAAAAAW4/nnPwVVeuqzA/s1600/P1000497%2B%2528Medium%2529.JPG"&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-tcmXNBam94o/TVYg5qfwe2I/AAAAAAAAAWw/PvG8Rzp0Wl8/s1600/lateralgmeter.JPG"&gt;&lt;/a&gt;&lt;div style="text-align: left;"&gt;I have often been curious when driving through a sharp turn how much lateral acceleration I am able to reach.  Being a Car and Driver subscriber for nearly 15 years now I am well aware of how many G's a vehicle can reach because of centrifugal force. The best vehicles with the best suspension and tires an reach just over 1G of lateral acceleration, so being a spirited driver I want to know what I am able to reach as my tires begin to chirp as I am accelerating out of the apex of a highway cloverleaf at nearly 65 mph.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You can buy inexpensive G meters that you can place on your dash that can show you and log this data along with other fun things like 0-60 times. But these devices are clunky and I hate having things stuck to my dash. In my car there is also no good location to place one. Thinking about this, it would be extremely easy to make one. Accurate accelerometers are dirt cheap, plus wouldn't it be nice to have the data overlaid on my vehicles in-dash navigation system for a nice clean look? I thought so :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The system is very basic. I'm using a 3-axis accelerometer (only two of the three axis' are in use, the third can be used for acceleration at a later time. Now I am focused on lateral acceleration), a MAX7456 on-screen display generator, and a PIC18F2520 to make it all work. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;a href="http://3.bp.blogspot.com/-tcmXNBam94o/TVYg5qfwe2I/AAAAAAAAAWw/PvG8Rzp0Wl8/s1600/lateralgmeter.JPG"&gt;&lt;img src="http://3.bp.blogspot.com/-tcmXNBam94o/TVYg5qfwe2I/AAAAAAAAAWw/PvG8Rzp0Wl8/s320/lateralgmeter.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5572677763949689698" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 240px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="-webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;The PIC utilizes it's 10 bit A/D converters to read in the accelerometer data from an ADXL330 which is good for plus or minus 3G. This data is then manipulated using some basic trig to remove any z-axis rotational data to eliminate false acceleration caused by body roll of the car in a turn. The PIC then sends data to the MAX7456 via i2c to generate a simple bar graph showing relative acceleration between 0G and 1G along with text of the actual current acceleration. The device was easy to calibrate as all you have to do is rotate the accelerometer exactly 90 degrees and get a reading of the earths gravity.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;a href="http://4.bp.blogspot.com/-j2QS7bpRwVE/TVYg5uexjHI/AAAAAAAAAW4/nnPwVVeuqzA/s1600/P1000497%2B%2528Medium%2529.JPG"&gt;&lt;img src="http://4.bp.blogspot.com/-j2QS7bpRwVE/TVYg5uexjHI/AAAAAAAAAW4/nnPwVVeuqzA/s320/P1000497%2B%2528Medium%2529.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5572677765019307122" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 240px; height: 320px; " /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-tcmXNBam94o/TVYg5qfwe2I/AAAAAAAAAWw/PvG8Rzp0Wl8/s1600/lateralgmeter.JPG"&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/-tcmXNBam94o/TVYg5qfwe2I/AAAAAAAAAWw/PvG8Rzp0Wl8/s1600/lateralgmeter.JPG"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;The video output of the MAX7456 will then be overlaid onto my in dash navigation system display. I am using a simple ntsc display for testing on the bench. Looking into the Lexus navigation system in my car I had assumed that the video would be simply composite ntsc, but this was not the case. The video from the nav computer to the in-dash display was RGB destroying my hopes of simply placing the MAX7456 inline with the nav system. Luckily there are inexpensive devices that can plug into the factory wiring harness that can accept composite video and display it on the display. Here is the video output on my bench at rest:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/-AnnDde7W2ho/TVYczsq4a2I/AAAAAAAAAWI/Hr0KAHSTxOo/s1600/P1000492%2B%2528Medium%2529.JPG"&gt;&lt;img src="http://3.bp.blogspot.com/-AnnDde7W2ho/TVYczsq4a2I/AAAAAAAAAWI/Hr0KAHSTxOo/s320/P1000492%2B%2528Medium%2529.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5572673263407491938" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 240px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is output at 1G (device turned 90 degrees with z-axis compensation disabled):&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/-o_dsVQ30Jn8/TVYc0AzTPBI/AAAAAAAAAWY/pxV9S-cJvN8/s1600/P1000495%2B%2528Medium%2529.JPG"&gt;&lt;img src="http://4.bp.blogspot.com/-o_dsVQ30Jn8/TVYc0AzTPBI/AAAAAAAAAWY/pxV9S-cJvN8/s320/P1000495%2B%2528Medium%2529.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5572673268811512850" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 240px; " /&gt;&lt;/a&gt;Here is the device with me shaking it randomly.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-SA92iWxNUvo/TVYcz-JsCXI/AAAAAAAAAWQ/4e4B2JADBLI/s1600/P1000496%2B%2528Medium%2529.JPG"&gt;&lt;img src="http://4.bp.blogspot.com/-SA92iWxNUvo/TVYcz-JsCXI/AAAAAAAAAWQ/4e4B2JADBLI/s320/P1000496%2B%2528Medium%2529.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5572673268100106610" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 240px; " /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://3.bp.blogspot.com/-AnnDde7W2ho/TVYczsq4a2I/AAAAAAAAAWI/Hr0KAHSTxOo/s1600/P1000492%2B%2528Medium%2529.JPG"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Now I just need to get it on the pcb I am in the process of making and get it installed in my car. It has been so cold here in Michigan I haven't had the motivation to get out to the garage and get it going, but should be done soon for it's first test. Once tested the next obvious steps will be to add a datalogger and GPS to track both vehicle speed and acceleration.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-8426980535974800042?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/8426980535974800042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2011/02/vehicle-lateral-acceleration-meter.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/8426980535974800042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/8426980535974800042'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2011/02/vehicle-lateral-acceleration-meter.html' title='Vehicle Lateral Acceleration Meter'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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/-tcmXNBam94o/TVYg5qfwe2I/AAAAAAAAAWw/PvG8Rzp0Wl8/s72-c/lateralgmeter.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-6211018348919229759</id><published>2010-10-31T23:55:00.001-04:00</published><updated>2010-11-01T00:22:42.564-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='peoplebacon'/><category scheme='http://www.blogger.com/atom/ns#' term='led'/><category scheme='http://www.blogger.com/atom/ns#' term='pumpkin'/><category scheme='http://www.blogger.com/atom/ns#' term='circuit'/><title type='text'>Happy Halloween</title><content type='html'>We had an extra pumpkin and I had 20 minutes... :)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/TM49epmn4YI/AAAAAAAAAVE/fMFRFAnXjMA/s1600/pumpkin_circuit_1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/TM49epmn4YI/AAAAAAAAAVE/fMFRFAnXjMA/s400/pumpkin_circuit_1.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5534428588858139010" /&gt;&lt;/a&gt;&lt;br /&gt;Happy Halloween.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/TM49fIZhIEI/AAAAAAAAAVM/2rAEvoFs3Cc/s1600/pumpkin_circuit_2.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/TM49fIZhIEI/AAAAAAAAAVM/2rAEvoFs3Cc/s400/pumpkin_circuit_2.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5534428597124669506" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-6211018348919229759?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/6211018348919229759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2010/11/happy-halloween.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/6211018348919229759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/6211018348919229759'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2010/11/happy-halloween.html' title='Happy Halloween'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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/_T8VFoOnB0ZQ/TM49epmn4YI/AAAAAAAAAVE/fMFRFAnXjMA/s72-c/pumpkin_circuit_1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-6461914925298431103</id><published>2010-09-21T23:57:00.004-04:00</published><updated>2010-09-22T00:28:47.873-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XBee'/><category scheme='http://www.blogger.com/atom/ns#' term='wireless'/><category scheme='http://www.blogger.com/atom/ns#' term='repeater'/><category scheme='http://www.blogger.com/atom/ns#' term='yagi antenna'/><title type='text'>XBee Repeater</title><content type='html'>&lt;div&gt;I am finally ready to perform some long-range XBee testing using the Digi XBee-Pro XSC modules. I put together a few simple Xbee repeaters utilizing an&lt;a href="http://www.digi.com/products/wireless/point-multipoint/xbee-pro-xsc.jsp#overview"&gt; Xbee-Pro XSC 900Mhz module&lt;/a&gt;, a simple rs232 interface, and power supply. Power come from a pair of 18650 lithium batteries.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/TJmANd3hqKI/AAAAAAAAAUw/gRrsmy5S0cY/s1600/xbee_repeater.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/TJmANd3hqKI/AAAAAAAAAUw/gRrsmy5S0cY/s400/xbee_repeater.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5519583787163429026" /&gt;&lt;/a&gt;&lt;br /&gt;I made two of the devices above as they are useful for any project that needs portable XBee communication. Simply hook any two laptops or mobile embedded devices up to the pair via rs232 and you have instant point to point mobile serial communication. To enable the device as a repeater, I made a loopback device that plugs into the serial port echoing anything that arrives on the serial rx line back over tx. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The simple 900mhz antenna hooked up to it works well for testing, but I have a pair of high gain 900Mhz ISM band yagis I plan to use for long range testing.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/TJmAOTmusiI/AAAAAAAAAU4/OWTih4aNqww/s1600/xbee_900mhz_yagi.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/TJmAOTmusiI/AAAAAAAAAU4/OWTih4aNqww/s400/xbee_900mhz_yagi.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5519583801588494882" /&gt;&lt;/a&gt;&lt;br /&gt;These yagis connected to the Xbee PROs with good lmr-200 cable should make for some very long range communication. The biggest issue is finding a good line-of-site location to test. I have been studying some topographical maps around the Ann Arbor area trying to find two good points of high ground, or a point from a tall structure to high ground. So far I have some good tests at about 6 to 7 miles (which doesn't seem like much, but when trying to see from your point on the ground is a very long distance away). Standing at ground level (if at sea level and looking out), from your eye level (say six feet up) you can only see about 3 miles to the visible horizon. Increasing your distance above the earth to 100 feet only increases the visible horizon to about 12 miles. So I will need to find some tall structures or high ground to test the full 15 mile range that the Xbee datasheet states for the maximum range.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-6461914925298431103?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/6461914925298431103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2010/09/xbee-repeater.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/6461914925298431103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/6461914925298431103'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2010/09/xbee-repeater.html' title='XBee Repeater'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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/_T8VFoOnB0ZQ/TJmANd3hqKI/AAAAAAAAAUw/gRrsmy5S0cY/s72-c/xbee_repeater.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-663224834863701888</id><published>2010-09-17T22:24:00.024-04:00</published><updated>2010-09-18T10:28:23.079-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Agilent'/><category scheme='http://www.blogger.com/atom/ns#' term='tektronix'/><category scheme='http://www.blogger.com/atom/ns#' term='Test Equipment'/><category scheme='http://www.blogger.com/atom/ns#' term='peoplebacon'/><category scheme='http://www.blogger.com/atom/ns#' term='HP'/><category scheme='http://www.blogger.com/atom/ns#' term='oscilloscope'/><category scheme='http://www.blogger.com/atom/ns#' term='bench'/><title type='text'>My Electronics Bench and Test Equipment</title><content type='html'>I have been into the electronics field since I was about 11 years old. I reached that phase of my life where I began taking everything apart and wondering what all this 'stuff' inside these electronic devices was. It wasn't too long until I began understanding and learning while making my own analog and digital designs come to life. Eventually I reached a point where my current tools were just not allowing me to really debug and see what was going on inside the circuit I was designing. This is where I realized I needed better equipment than what I had. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Throughout this post I am going to talk about the equipment I own and what you should look for if just stating out in electronics. With all of the equipment available on the used market, anyone beginning in electronics that is taking it seriously should have the basics: A good multimeter, a soldering station, and a current limiting adjustable power supply. Without these three items frustration will only ensue.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We all start somewhere and my start was with a $9 RadioShack soldering iron and a couple dollars more analog multimeter. While the meter suited me fine for a very long time, the $9 fire hazard was the most frustrating piece. I remember at the time reading my Radio Electronics (later Electronics Now) magazine and looking in the back advertising sections at the nice Weller soldering stations and amazing test equipment that was being made by companies like HP and Tektronix. I had only wished that I could have even a 20Mhz oscilloscope but with my non-existing income as being in middle school allowed, I had to settle for some basic test equipment like the multimeter I had.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My break came in 7th grade when one day I happened to notice that my science teacher had an oscilloscope in the labs storage closet. I questioned my teacher about it only to learn that it didn't work and had been there a very long time. To my surprise my teacher said I could have it if I wanted it which I enthusiastically accepted. It was a very old Bell+Howell model, most likely a kit originally. It had only a couple Mhz bandwidth and upon opening it was full of tubes. The issue it had was there was no horizontal sync, only a single dot burning a mark into its crt upon power on. I immediately pulled all the tubes and went to a local tv shop which I had remembered still had an old tube tester in the back (this was like 1993, tubes were still very obsolete). I tested all of the tubes and found a few that were definitely bad and purchased replacements. Upon powering on with new tubes in place, I finally could see into the time-domain of the circuits I was building. The 555 timer oscillator circuit I could finally see the waveform being generated. From my 1Mhz crystal oscillator I could see a near perfect square wave with a 50% duty cycle. It was a very exciting time. This only fueled the fire for things to come.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I dealt with basic equipment all thorough college, but once I had a job and could finally afford good test equipment, I went at it full force. It is amazing to see how cheap test equipment has become, especially on the used market.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is the current test equipment that I own as this is my current bench as it exists today:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/TJQp2Cw_3nI/AAAAAAAAAR4/1LcNfyeGRJI/s1600/main_bench.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/TJQp2Cw_3nI/AAAAAAAAAR4/1LcNfyeGRJI/s320/main_bench.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5518081451867758194" /&gt;&lt;/a&gt;A nice big workspace is key, I personally like deep desks which allow me to place bigger items far away from me without taking up valuable local workspace. I built the bench shown above as I was not able to find any workspace that nicely fit my needs. They do exist, but can cost a considerable amount of money. I built my bench with a strong shelf to hold most of my test equipment right at eye level, it had to be considerably strong as some of the older test equipment can weigh 60 pounds or more each (HP / Agilent builds things very well ;)   ). Also shown is an anti-static mat as it it important to not destroy your expensive components before you get to use them. Now to talk about the equipment itself:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Multimeter. The absolute most important piece of test equipment for anyone. In my opinion this is the first thing anyone interested in electronics needs to buy. I use Fluke multimeters as they are the best, hands-down. I have a Fluke 77 II shown here along with a Fluke 73 (not shown). Need to see exactly how much voltage that power supply is putting out? Need to see how much current this circuit is really drawing? Need to see how many ohms that resistor really is? A multimeter has the answers. A good multimeter will pay for itself the first time you don't blow up the circuit you are working on out.   I also still have my original Micronta analog multimeter and use it every now and then. Analog multimeters have the benefit of being able to see slow voltage changes over time by watching the needle move. Hook one up to an 110V outlet in your home to see what I mean, it shows a slow voltage inconsistency that a digital meter cannot easily display. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/TJQp2iIQOUI/AAAAAAAAASA/01mJkSMMqzg/s1600/fluke_77_multimeter.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/TJQp2iIQOUI/AAAAAAAAASA/01mJkSMMqzg/s320/fluke_77_multimeter.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5518081460286798146" /&gt;&lt;/a&gt;Soldering Iron, a good one. This is the 2nd most important tool anyone interested in electronics needs. An adjustable temperature one is best, especially dealing with temperature sensitive smd components. You are able to turn the temp down when needed, but also have the ability to crank it up when soldering or desoldering components on huge ground planes. I like Weller, but there are many good brands out there. A digital display is nice for being able to see what the current temperature is set at. The Weller below also has an anti-static tip to make sure you don't destroy any devices from rogue static charges on the iron itself.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/TJQp3RbQ2hI/AAAAAAAAASI/chFrey_yUwI/s1600/weller_wsd51.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/TJQp3RbQ2hI/AAAAAAAAASI/chFrey_yUwI/s320/weller_wsd51.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5518081472982997522" /&gt;&lt;/a&gt;Oscilloscope, the standard piece of test equipment when you are serious in electronics. I have many of them. An analog scope with decent bandwidth is still an extremely important piece of test equipment as it allows you to look into the time domains of signals to see what is really going on. The Tektronix 2246 seen here is an awesome scope. This is the scope I go to most even with the several digital scopes I own. Analog scopes are simply better for viewing complex analog waveforms such as a video signal. Everyone needs at least one good analog oscilloscope. I have talked about the benefits and disadvantages of analog vs digital scopes in previous posts, but it will deserve much more discussion in it's own dedicated post. If you are looking for your first scope, go for a 40Mhz to 100Mhz analog model IMO. It will serve you well. Above the Tektronix in the pic  is a Racal-Dana 1992 1.3Ghz frequency counter which I will discuss shortly.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/TJQp39E7L0I/AAAAAAAAASQ/6VMKpU6LQFM/s1600/tektronix_2246_oscilloscope.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/TJQp39E7L0I/AAAAAAAAASQ/6VMKpU6LQFM/s320/tektronix_2246_oscilloscope.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5518081484700462914" /&gt;&lt;/a&gt;Digital oscilloscopes are extremely awesome as well. The one shown on the bottom here is a HP 54503A digital oscilloscope. it is a 500Mhz 4-channel digitizing oscilloscope. This is the scope I go to most when dealing with high speed digital signals. The 500Mhz bandwidth allows me to see very high speed repetitive signals easily. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/TJQp4dsN52I/AAAAAAAAASY/34_bUv5VVz8/s1600/hp54503a_oscilloscope.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/TJQp4dsN52I/AAAAAAAAASY/34_bUv5VVz8/s320/hp54503a_oscilloscope.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5518081493455202146" /&gt;&lt;/a&gt;&lt;br /&gt;The scope below is one of my favorites, an HP 54112D. It is a digital scope similar to the 54503A above, but offers may comprehensive triggering options. It is often used for glitch detection, where you are looking for an anomaly in a signal. Because it has digital storage options, it is able to store any waveform once the specified trigger has been hit allowing me to see what happened. This was very useful during the design of my own custom ttl based cpu last year.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/TJQqK5HWvFI/AAAAAAAAASg/U0tuh4ZzTCE/s1600/hp54112d_oscilloscope.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/TJQqK5HWvFI/AAAAAAAAASg/U0tuh4ZzTCE/s320/hp54112d_oscilloscope.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5518081810054429778" /&gt;&lt;/a&gt;Make sure you do not skimp on the scope probes! A good set of probes can easily cost more that the scope itself when buying used. A quality passive probe from HP / Agilent or Tektronix that is matched to the scope it will be used on is a must, especially when dealing with high speed signals. Using a cheap generic probe will distort the signal being measured and not truly represent the signal you are viewing on it's display. A cheap probe can also actually inject noise into a circuit destroying the signal you are attempting to observe. Pay attention to the probe attenuation factor as well. A 10X (attenuated by ten times) probe is good for most cases, but be aware it will be difficult to look at signals under about 10 millivolts with one. Be sure to compensate any passive probe before use, otherwise your signals could appear distorted.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/TJREcV7eXjI/AAAAAAAAAUo/WhUlL_HvRGo/s1600/scope_probes.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/TJREcV7eXjI/AAAAAAAAAUo/WhUlL_HvRGo/s320/scope_probes.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5518110697149324850" /&gt;&lt;/a&gt;&lt;br /&gt;Power supplies. These are actually more important than a good oscilloscope for the beginner. An adjustable voltage, current limiting power supply will keep you from destroying your circuits in the event of a mistake. I have five of these and use them for everything. The ones below are all HP / Agilent models and are my favorite for the money. They are all adjustable voltage and current limiting which means you can prevent any load from drawing too much current. This is important because most power supplies can provide several if not many amps of current per given load. If you were to make a mistake in wiring your circuit and power it up with a non-current limiting power supply, you can plan to have that circuit go up in smoke. With supplies like the Agilent E3610 and E3611 shown below, you can set the current limit to N millamps / amps so that if there is a mistake it will protect your circuit from destroying itself.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I have seen some people modifying computer ATX PC power supplies for bench use and this is ultimately a horrible idea. Since they cannot current limit, using the 5V output on them could provide a huge surge current to your circuit before the power supplies protection circuit can go into effect , instantly blowing it up in your face. A current limiting supply will pay for itself the first time you make a mistake.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/TJQqL5ox5KI/AAAAAAAAASw/tnZ-t3fFEvI/s1600/agilent_power_supplies.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/TJQqL5ox5KI/AAAAAAAAASw/tnZ-t3fFEvI/s320/agilent_power_supplies.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5518081827374490786" /&gt;&lt;/a&gt;&lt;br /&gt;Logic analyzers are very important if you work with any type of digital logic. When I was designing my own CPU from scratch, this was an invaluable tool. Think of them as oscilloscopes,  but differing in the fact that they can view many channels at once (think 16 to 128+ channels) and can only show states as defined per voltage thresholds for 0's and 1's over time. Basically if you need to watch many channels at once for lengths of time (a data or address bus), then to store the data... a logic analyzer is the answer. The HP 16500B shown below is my favorite with a color display and touch-screen control. It is a modular system allowing you to populate it with the boards you need. I picked mine up (I actually have three of them) from a local Dovebid auction fully populated. I had to get two of the three working, but now have a logic analyzer capable of up to 2Ghz resolution. I am only using one, keeping the others for spare parts. They are excellent tools for any digital design debugging and hardware hacking project.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/TJQqLW5MzOI/AAAAAAAAASo/UtOqD32BwQE/s1600/hp_16500b_logic_analyzer.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/TJQqLW5MzOI/AAAAAAAAASo/UtOqD32BwQE/s320/hp_16500b_logic_analyzer.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5518081818048122082" /&gt;&lt;/a&gt;&lt;br /&gt;PIC Programmers. PICs are my microcontroller of choice. I use Atmels and FPGAs as well, but PICs are my favorite. I use them in probably 75% of the projects I make. They are cheap, powerful, and with MPLab IDE free from Microchip along with their C compiler, I can have a working circuit in minutes. There are two programmers I use, The PicKit-2 and ICD-2. The PicKit-2 was my first programmer and still serves me well. It can program all devices with exception of PIC24, PIC32, and dsPICs. This is where the PicKit2 comes in, handling the more powerful smd PIC devices. Both have in-circuit programming capability which is nice as well. To program my microcontrollers, I have several computers at my bench. Today it is essential to have at least one for looking up component datasheets to programming your devices with your favorite IDE.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/TJQqML4hukI/AAAAAAAAAS4/qV5LavRrsWs/s1600/pic_programmers.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/TJQqML4hukI/AAAAAAAAAS4/qV5LavRrsWs/s320/pic_programmers.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5518081832272378434" /&gt;&lt;/a&gt;Breadboards, have had them forever and are so nice for prototyping. I use them all the time. I have many as often I have many projects going at once and don't want to scrap a circuit to start a new one. Be sure to have good wiring kits as well, nothing sucks more than not having the correct length wires to build a circuit.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/TJQqMjGZmOI/AAAAAAAAATA/nxBIhn4pDhM/s1600/breadboards.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/TJQqMjGZmOI/AAAAAAAAATA/nxBIhn4pDhM/s320/breadboards.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5518081838504581346" /&gt;&lt;/a&gt;&lt;br /&gt;Now it is time to talk RF. I love making RF filters and amplifiers and to test them you need good, stable RF generators. The two shown below combined cover all frequencies between 10Khz to 2.4Ghz. Each can be modulated with AM or FM carriers. The HP 8656B is a much newer unit with digital controls. It has option 001 (high stability timebase) which provides extremely accurate frequency generation. The model on top is an HP 8614A frequency generator which is older than I am. I picked this up on eBay for an amazing $20 and it works perfectly. It is an analog monster utilizing a klystron tube for RF generation.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/TJQqhd_Dz1I/AAAAAAAAATI/zxPCi8ZCTXw/s1600/hp8656b_rf_generator.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/TJQqhd_Dz1I/AAAAAAAAATI/zxPCi8ZCTXw/s320/hp8656b_rf_generator.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5518082197908868946" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A spectrum analyzer. This is the piece of test equipment I have wanted more than anything. Unlike an oscilloscope that lets you view into a signals time domain, a spectrum analyzer allows you to view a signals frequency domain. In the world of RF design, a spectrum analyzer shows you everything you want to know. The HP model 8922H below is actually a GSM / PCS cellular test set, but has option 006 which is a 10Mhz to 1Ghz spectrum analyzer.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/TJQqh5eT9_I/AAAAAAAAATQ/Op8iFRMCkZ4/s1600/hp8922h_spectrum_analyzer.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/TJQqh5eT9_I/AAAAAAAAATQ/Op8iFRMCkZ4/s320/hp8922h_spectrum_analyzer.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5518082205287708658" /&gt;&lt;/a&gt;&lt;br /&gt;Frequency counters are extremely useful for measuring frequencies in oscillators or any clock / RF source. The one shown below by Startek is a handheld model designed for sniffing out transmitters and other RF sources. It can also be used with a good probe to measure frequencies of any clock or RF source up to 2.4Ghz. Earlier above I showed my Racal-Dana bench top frequency counter which has a higher resolution then the Startek. I use both to measure RF frequencies in clock sources, RF sources, and to make sure any frequency is what it is supposed to be. You can use an oscilloscope (provided it's bandwidth is high enough) to measure frequency too, but frequency counters usually have much higher resolution.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/TJQqiO1W3qI/AAAAAAAAATY/wRJ8QXvT-ww/s1600/frequency_counter.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/TJQqiO1W3qI/AAAAAAAAATY/wRJ8QXvT-ww/s320/frequency_counter.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5518082211021512354" /&gt;&lt;/a&gt;&lt;br /&gt;Second bench, this bench is just spare space with a Tektronix TDS-420 digital oscilloscope and analog current limiting power supply. I use it for quick testing of devices when my main bench is full of clutter. Also seen is a small parts cabinet, and plenty of spools of chemicals, solder wick, and solder (use ROHS solder!, lead is not good. Yes, solder with lead does flow better but you will get used to the non-lead stuff).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/TJQsURLDW1I/AAAAAAAAAUg/WkL4Y1KqUbE/s1600/bench_2.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/TJQsURLDW1I/AAAAAAAAAUg/WkL4Y1KqUbE/s320/bench_2.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5518084170154466130" /&gt;&lt;/a&gt;&lt;br /&gt;More work space, of course completely cluttered, but more space is always needed. The dry erase board in background is always fun for drawing up new ideas.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/TJQsTWVuryI/AAAAAAAAAUY/tK4-mNxpBbA/s1600/messy_bench.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/TJQsTWVuryI/AAAAAAAAAUY/tK4-mNxpBbA/s320/messy_bench.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5518084154361556770" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This bench is where I work on enclosures and any type of metal or plastic work needed for a project. By far a drill press is the most used tool I own. The band saw and newly added milling machine help considerably when working with aluminum and plastic parts for enclosure panels.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/TJQsSm52k2I/AAAAAAAAAUQ/PaaIiZ6vGvE/s1600/machine_bench.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/TJQsSm52k2I/AAAAAAAAAUQ/PaaIiZ6vGvE/s320/machine_bench.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5518084141628167010" /&gt;&lt;/a&gt;&lt;br /&gt;The parts rack is the goto place for components. Keep everything you have organized so you spend less time looking for components and more time actually working on designing and assembling!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/TJQsR4P9UsI/AAAAAAAAAUI/JPEsJ10OeXk/s1600/pats_bins.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/TJQsR4P9UsI/AAAAAAAAAUI/JPEsJ10OeXk/s320/pats_bins.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5518084129104417474" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-663224834863701888?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/663224834863701888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2010/09/my-electronics-bench-and-test-equipment.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/663224834863701888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/663224834863701888'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2010/09/my-electronics-bench-and-test-equipment.html' title='My Electronics Bench and Test Equipment'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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/_T8VFoOnB0ZQ/TJQp2Cw_3nI/AAAAAAAAAR4/1LcNfyeGRJI/s72-c/main_bench.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-5417086406719195629</id><published>2010-09-17T21:07:00.007-04:00</published><updated>2010-09-17T21:49:50.934-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='satellite'/><category scheme='http://www.blogger.com/atom/ns#' term='icom-r7000'/><category scheme='http://www.blogger.com/atom/ns#' term='peoplebacon'/><category scheme='http://www.blogger.com/atom/ns#' term='weather'/><category scheme='http://www.blogger.com/atom/ns#' term='APT'/><title type='text'>NOAA APT Reception Using an Icom + Quadrifilar Helix Antenna Part III</title><content type='html'>&lt;div&gt;This post is way overdue, but here it is anyway as reviously I have talked about NOAA APT reception &lt;a href="http://bradthx.blogspot.com/2009/05/quadrifilar-helix-antenna-for-noaa-apt.html"&gt;here&lt;/a&gt; and &lt;a href="http://bradthx.blogspot.com/2008/02/listening-to-satellites.html"&gt;here&lt;/a&gt;.This past June 5th was the Ann Arbor Mini-Maker Faire where this year we demo'd real time APT Reception throughout the day. I had brought my homemade quadrifilar antenna that I made a few years ago, along with my ICOM IC-R7000 receiver, Mini-Circuits ZFL-1000LN low noise preamplifier, computer running WXtoImg which is my favorite APT decoding software, plenty of LMR-400 low loss cable, and an Agilent E3611 power supply to power the preamp.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Setup was ideal with the antenna being mounted outside the building we were in with an almost completely unobstructed view of the sky. The pass list was nice with at least 8 good passes throughout the day. One addition to my setup was that the night before I threw together a serial to CIV Icom interface:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/TJQWnaTmpjI/AAAAAAAAARw/vqM9q96lWmk/s1600/CIMG3116.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/TJQWnaTmpjI/AAAAAAAAARw/vqM9q96lWmk/s320/CIMG3116.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5518060309767956018" /&gt;&lt;/a&gt;This really made all the difference to receiving APT satellites. With a general purpose receiver like the ICom (still way better than any general purpose scanner) it has less than ideal bandwidth compare to a dedicated APT receiver. With the CIV interface, WXtoImg can tune the Icom as necessary to compensate for doppler shift as the satellite passes by. It will also automatically tune to the correct NOAA APT frequency. Previously I would tune manually by watching signal strength and listening to the familiar tick-tock synchronization sounds for best quality. This course was still not perfect and led to noisy signals. With WXtoImg tuning my receiver for me, there were no issues. I still had some slight noise on the extreme ends of the signal, but it is expected when dealing with the narrower bandwidth. This resulted with near-perfect images from horizon to horizon.&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I was able to get some excellent composites from the day:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/TJQWmUftcoI/AAAAAAAAARo/UAO08X8zgLs/s1600/noaa-20100605-n-hvct.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 258px;" src="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/TJQWmUftcoI/AAAAAAAAARo/UAO08X8zgLs/s320/noaa-20100605-n-hvct.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5518060291028251266" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Along with some good thermal water temperatures:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/TJQWlf0pD_I/AAAAAAAAARg/NX9owx7EV4U/s1600/noaa-18-06051800-sea.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 266px; height: 320px;" src="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/TJQWlf0pD_I/AAAAAAAAARg/NX9owx7EV4U/s320/noaa-18-06051800-sea.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5518060276888965106" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here are a few raw images showing both channels (in this case visible and infrared):&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/TJQWkrtG_sI/AAAAAAAAARY/b60QN0QoBqs/s1600/noaa-17-06051739-norm.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 189px;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/TJQWkrtG_sI/AAAAAAAAARY/b60QN0QoBqs/s320/noaa-17-06051739-norm.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5518060262898728642" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/TJQWj2yFObI/AAAAAAAAARQ/G7e1Ld5AyeQ/s1600/noaa-15-06041111-contrast.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 50px;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/TJQWj2yFObI/AAAAAAAAARQ/G7e1Ld5AyeQ/s320/noaa-15-06041111-contrast.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5518060248692505010" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;These are about the best APT images you can get from a general purpose receiver, which I have been totally happy with. It would be nice to have perfectly pristine images which I have seen others make, you would just need a dedicated special purpose receiver with the necessary frequency bandwidth to receive them.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-5417086406719195629?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/5417086406719195629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2010/09/noaa-apt-reception-using-icom.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/5417086406719195629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/5417086406719195629'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2010/09/noaa-apt-reception-using-icom.html' title='NOAA APT Reception Using an Icom + Quadrifilar Helix Antenna Part III'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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/_T8VFoOnB0ZQ/TJQWnaTmpjI/AAAAAAAAARw/vqM9q96lWmk/s72-c/CIMG3116.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-4349693199648187861</id><published>2010-03-23T22:26:00.005-04:00</published><updated>2010-03-23T22:40:34.568-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='on screen display'/><category scheme='http://www.blogger.com/atom/ns#' term='MAX7456'/><category scheme='http://www.blogger.com/atom/ns#' term='pic18'/><category scheme='http://www.blogger.com/atom/ns#' term='peoplebacon'/><category scheme='http://www.blogger.com/atom/ns#' term='Maxim'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>Maxim MAX7456 On Screen Display</title><content type='html'>&lt;div&gt;While looking for a solution to display characters over video for an on screen display I came across the &lt;a href="http://freedatasheets.com/datasheet-download/1c272b384139988aac37d442d8555c1d/MAX7456"&gt;Maxim MAX7456&lt;/a&gt;. This is one easy to use chip for exactly this purpose. Using a SPI bus it is easily interfaced with a PIC microcontroller (I'm using a PIC18F2520 for testing).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/S6l63PMHXMI/AAAAAAAAARA/ree7nfssv0E/s1600-h/CIMG2963.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/S6l63PMHXMI/AAAAAAAAARA/ree7nfssv0E/s320/CIMG2963.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5452023913297435842" /&gt;&lt;/a&gt;I have just started playing with this chip and have discovered how easy and powerful it is to use. I have one project in mind for it that I am starting on now and will post again once it is further developed.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-4349693199648187861?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/4349693199648187861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2010/03/maxim-max7456-on-screen-display.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/4349693199648187861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/4349693199648187861'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2010/03/maxim-max7456-on-screen-display.html' title='Maxim MAX7456 On Screen Display'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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/_T8VFoOnB0ZQ/S6l63PMHXMI/AAAAAAAAARA/ree7nfssv0E/s72-c/CIMG2963.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-1744692762826518672</id><published>2010-02-24T00:10:00.006-05:00</published><updated>2010-02-24T00:35:12.376-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XBee'/><category scheme='http://www.blogger.com/atom/ns#' term='peoplebacon'/><category scheme='http://www.blogger.com/atom/ns#' term='interface'/><category scheme='http://www.blogger.com/atom/ns#' term='wireless'/><category scheme='http://www.blogger.com/atom/ns#' term='yagi antenna'/><category scheme='http://www.blogger.com/atom/ns#' term='range testing'/><category scheme='http://www.blogger.com/atom/ns#' term='datasheets. project'/><title type='text'>Long Range XBee PRO XSC testing, Part 2</title><content type='html'>It has been awhile since my &lt;a href="http://bradthx.blogspot.com/2009/04/long-range-xbee-pro.html"&gt;original post&lt;/a&gt; about seeing how large of a distance I can get two XBee PROs to communicate, but since coming across two nice 902 - 928Mhz ISM band 9 element yagi antennas I figured it was time to give it a try.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/S4S2rB8iJAI/AAAAAAAAAQ4/TlqYSMEeP-s/s1600-h/CIMG2953.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/S4S2rB8iJAI/AAAAAAAAAQ4/TlqYSMEeP-s/s320/CIMG2953.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5441675100143363074" /&gt;&lt;/a&gt;&lt;br /&gt;My plan is to mount two &lt;a href="http://www.digi.com/products/wireless/point-multipoint/xbee-pro-xsc.jsp#overview"&gt;XBee PRO XSCs&lt;/a&gt; each to one of the yagis mounted on tripods. A small ttl to serial interface will be needed at each end which will allow interfacing to laptops. These setups will need to be as portable as possible. With each setup I will be able to set them up easily at any location (the tripod / antenna / XBee and interface, along with a laptop will be the only items needed) and test signal strength and communication using the XBee X-CTU application.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I finished the first ttl to serial converter tonight, only one more to make:&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/S4S2qtC41rI/AAAAAAAAAQw/NU9ySLuW6MA/s1600-h/CIMG2952.JPG"&gt;&lt;img style="text-align: left;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; cursor: pointer; width: 320px; height: 240px; " src="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/S4S2qtC41rI/AAAAAAAAAQw/NU9ySLuW6MA/s320/CIMG2952.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5441675094532871858" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The final step will be to find two locations that are line of sight and up to 15 miles apart using topographical data. 15 miles is a long way, so I will be starting with a five mile distance. As soon as it warms up I will be giving the range test a try. I'm hoping to reach the 15 mile range Digi states that these modules are capable of, but even further would be better. :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-1744692762826518672?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/1744692762826518672/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2010/02/long-range-xbee-pro-xsc-testing-part-2.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/1744692762826518672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/1744692762826518672'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2010/02/long-range-xbee-pro-xsc-testing-part-2.html' title='Long Range XBee PRO XSC testing, Part 2'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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://1.bp.blogspot.com/_T8VFoOnB0ZQ/S4S2rB8iJAI/AAAAAAAAAQ4/TlqYSMEeP-s/s72-c/CIMG2953.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-5490108530288607261</id><published>2010-02-11T11:26:00.005-05:00</published><updated>2010-02-11T11:40:22.093-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='serial port'/><category scheme='http://www.blogger.com/atom/ns#' term='microcontroller'/><category scheme='http://www.blogger.com/atom/ns#' term='vfd display'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>Serial VFD character displays are awesome</title><content type='html'>I finally spent a few minutes powering up the serial VFDs I bought a month or so ago, they are all working. :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/S3QwvSNIL_I/AAAAAAAAAQk/-YuXTVKo5pU/s1600-h/CIMG2950.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/S3QwvSNIL_I/AAAAAAAAAQk/-YuXTVKo5pU/s320/CIMG2950.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5437024239041916914" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And it's bright! :D Placing a filter over the front will increase contrast and make it much easier to read in bright conditions.&lt;br /&gt;&lt;br /&gt;I will say that these are by far the easiest displays I have ever worked with. Powered it up with 5V, wired it through a max232 to my machine, 19200, 8,1,1 was its default serial config and it was running. Any text to the terminal showed up on the display. Special codes can place cursor and clear the display. With a little extra work you can write custom characters to the displays memory. Interfacing these with any microcontroller will be so easy and will save a bunch of io pins and code space not having to interface HD44780 compatible displays via a parallel interface.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-5490108530288607261?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/5490108530288607261/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2010/02/serial-vfd-character-displays-are.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/5490108530288607261'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/5490108530288607261'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2010/02/serial-vfd-character-displays-are.html' title='Serial VFD character displays are awesome'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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://4.bp.blogspot.com/_T8VFoOnB0ZQ/S3QwvSNIL_I/AAAAAAAAAQk/-YuXTVKo5pU/s72-c/CIMG2950.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-3837585398149560793</id><published>2010-02-04T21:33:00.018-05:00</published><updated>2010-02-06T21:51:08.136-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pic'/><category scheme='http://www.blogger.com/atom/ns#' term='tip31c'/><category scheme='http://www.blogger.com/atom/ns#' term='hard drive'/><category scheme='http://www.blogger.com/atom/ns#' term='spindle motor'/><category scheme='http://www.blogger.com/atom/ns#' term='peoplebacon'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>Using a hard drive spindle motor for projects</title><content type='html'>I was recently staring at a pile of 15K RPM SCSI drives that had gone bad at work.  I have always admired the build quality of these drives, the fact that they can spin at 15000 rpm without failure for years is amazing. I was curious if the platter spindle motors would be useful to use in any type of projects, so I tore a couple drives apart and pulled the spindle motors out of them.&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/S2z33jVdMCI/AAAAAAAAAQU/r8ns43_Dsl8/s1600-h/CIMG2902.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/S2z33jVdMCI/AAAAAAAAAQU/r8ns43_Dsl8/s320/CIMG2902.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5434991384079446050" /&gt;&lt;/a&gt;These spindle motors are basically a small three phase motor. My initial assumption to drive them was that you would need to provide each phase a voltage pulse in sequence to create rotation. Looking at a drive with my scope I could see that this was definitely not the case. The waveform on each pin was extremely complex, actually so complex that all of my Agilent and Tektronix digital scopes had a hard time capturing the waveform. My best success in capturing was with my Tektronix analog scope. The waveform to one of the phases can be seen here:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/S24mQ3OPjeI/AAAAAAAAAQc/FYI3wfhtmz4/s1600-h/CIMG2942.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/S24mQ3OPjeI/AAAAAAAAAQc/FYI3wfhtmz4/s320/CIMG2942.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5435323871426219490" /&gt;&lt;/a&gt;This shows again how as awesome as digital scopes are, sometimes an analog scope can provide a better picture of the waveform you are trying to see. :)&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To drive this motor, I wanted to see if I could get it spinning as fast as possible with the minimum amount of circuitry simply by pulsing the three phases in sequence. I chose a pic 18F4520 as the controller and was driving each phase using a TIP31C power transistor. Initially I was using a ULN2003 to drive the phases, but found the current consumption from the motor was higher than I would have liked risking damage to the ULN2003. This motor is definitely harder to drive than a typical stepper motor.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/S2z32hHBpwI/AAAAAAAAAP8/rziYQJ3CJgU/s1600-h/CIMG2882.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/S2z32hHBpwI/AAAAAAAAAP8/rziYQJ3CJgU/s320/CIMG2882.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5434991366302181122" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;When initially starting up the motor, you need to start the pulses at a slow rate. I found that pulsing each phase at about 20Hz (1200 rpm) was slow enough to get the spindle rotating. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/S2z33ZhMxTI/AAAAAAAAAQM/noFUOQ87xXI/s1600-h/CIMG2889.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/S2z33ZhMxTI/AAAAAAAAAQM/noFUOQ87xXI/s320/CIMG2889.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5434991381444347186" /&gt;&lt;/a&gt;Once initial rotation is established you can begin decreasing the delay between pulses to increase the spindle rotation speed. Driving the motor with a square wave, I am able to reach speeds just over 100Hz (6000 rpm) before the motor begins decreasing speed. &lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/S2z33ML4ZQI/AAAAAAAAAQE/smyj1K0VrtU/s1600-h/CIMG2884.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/S2z33ML4ZQI/AAAAAAAAAQE/smyj1K0VrtU/s320/CIMG2884.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5434991377865270530" /&gt;&lt;/a&gt;&lt;div&gt;At this point my pulses begin to overrun each other causing speed to decrease as each phase is on consecutively. Decreasing the pulse width doesn't help either as the decreased pulse width doesn't provide enough current to each winding to keep the motor running. I would like to try driving it with sine waves, or that complex waveform that the original controller generates, but 6k rpm is pretty good for the minimal circuitry required. Not bad for about an hour worth of work anyway.&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/S2z32RNlpRI/AAAAAAAAAP0/UiC9KJ0SQQI/s1600-h/CIMG2879.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/S2z32RNlpRI/AAAAAAAAAP0/UiC9KJ0SQQI/s320/CIMG2879.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5434991362034738450" /&gt;&lt;/a&gt;&lt;br /&gt;I found that placing the platters back on the spindle acted as a flywheel which helped the motor maintain smoothness being driven by the pulses. To control the speed, I used an adjustable resistor to provide input into one of the adc inputs on the pic. This in turn adjusted the pulse width of the motor. Here is the code to make it spin:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;#pragma config WDT = OFF&lt;br /&gt;&lt;br /&gt;void delay1(int result1)&lt;br /&gt;{&lt;br /&gt; result1 = result1 / 20;&lt;br /&gt; if (result1 &lt;= 30)&lt;br /&gt; {&lt;br /&gt;     result1 = 30;&lt;br /&gt; }&lt;br /&gt; Delay1KTCYx(result1);&lt;br /&gt;}&lt;br /&gt;void delay2(int result1)&lt;br /&gt;{&lt;br /&gt; result1 = result1 / 12;&lt;br /&gt; Delay1KTCYx(result1);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void main (void)&lt;br /&gt;{&lt;br /&gt; int result1;&lt;br /&gt; TRISB = 0x00;&lt;br /&gt; while (1)&lt;br /&gt; {&lt;br /&gt;  OpenADC( ADC_FOSC_4 &amp; ADC_RIGHT_JUST &amp; ADC_4_TAD, ADC_CH0 &amp; ADC_INT_OFF, 15 );&lt;br /&gt;  ConvertADC();&lt;br /&gt;  while( BusyADC() );&lt;br /&gt;  result1 = ReadADC();&lt;br /&gt;  CloseADC();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  PORTB = 0b00000001; &lt;br /&gt;  delay1(result1); //big&lt;br /&gt;  PORTB = 0b00000000;&lt;br /&gt;  delay2(result1); //short&lt;br /&gt;  PORTB = 0b00000010;&lt;br /&gt;  delay1(result1); //big&lt;br /&gt;  PORTB = 0b00000000; &lt;br /&gt;  delay2(result1); //short&lt;br /&gt;  PORTB = 0b00000100; &lt;br /&gt;  delay1(result1); //big&lt;br /&gt;  PORTB = 0b00000000; &lt;br /&gt;  delay2(result1); //short&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Next I plan creating a simulated sine wave with the pic to try to obtain higher speeds and smoothness replicating what the hard drive controller circuity does. I would like to look into the pulses generate by the actual hard drive controller as well to get a better understanding of how it can reach speeds of 15000 rpm.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-3837585398149560793?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/3837585398149560793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2010/02/fun-with-hard-drive-spindle-motors.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/3837585398149560793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/3837585398149560793'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2010/02/fun-with-hard-drive-spindle-motors.html' title='Using a hard drive spindle motor for projects'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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/_T8VFoOnB0ZQ/S2z33jVdMCI/AAAAAAAAAQU/r8ns43_Dsl8/s72-c/CIMG2902.JPG' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-6760217424420749307</id><published>2010-01-07T20:29:00.005-05:00</published><updated>2010-01-07T20:40:00.832-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vfd display'/><category scheme='http://www.blogger.com/atom/ns#' term='peoplebacon'/><category scheme='http://www.blogger.com/atom/ns#' term='cpu from scratch'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>Updates and new serial VFD modules</title><content type='html'>&lt;div&gt;I'm finally moved in the new place, unfortunately there has been a lot of 'home things' that needed attention that have pushed back my electronic and software projects. I have been setting up my benches and unpacking my equipment this week in the new basement work area which I am very excited about. I should actually be able to start getting back into things this coming week.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Today my new serial VFDs showed up which has me pretty excited:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/S0aLQ4MlmZI/AAAAAAAAAPs/7GLcTjsws9k/s1600-h/vfd_serial_display.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/S0aLQ4MlmZI/AAAAAAAAAPs/7GLcTjsws9k/s400/vfd_serial_display.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5424175923293690258" /&gt;&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;They are two line by 20 character display with both an 8 bit 5v parallel and up to 19200bps serial interface. Vacuum fluorescent displays just have a nice glow to them that contrasts the typical look of an LCD display you see today. I plan on using one as a primary display interface for my CPU project among other things.  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-6760217424420749307?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/6760217424420749307/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2010/01/updates-and-new-serial-vfd-modules.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/6760217424420749307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/6760217424420749307'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2010/01/updates-and-new-serial-vfd-modules.html' title='Updates and new serial VFD modules'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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://1.bp.blogspot.com/_T8VFoOnB0ZQ/S0aLQ4MlmZI/AAAAAAAAAPs/7GLcTjsws9k/s72-c/vfd_serial_display.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-5601228676028549257</id><published>2009-11-18T21:42:00.004-05:00</published><updated>2009-11-18T21:48:03.165-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='moving'/><category scheme='http://www.blogger.com/atom/ns#' term='peoplebacon'/><category scheme='http://www.blogger.com/atom/ns#' term='datasheets. project'/><category scheme='http://www.blogger.com/atom/ns#' term='bench'/><title type='text'>Moving day, projects on hold</title><content type='html'>&lt;div&gt;The downturn in the economy has created some amazing deals in the housing market around me. Because of this I have purchased a new home and will be moving next week. This will of course put my projects on hold, I definitely have a lot of packing to do...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/SwSxPvxKujI/AAAAAAAAAPg/88UuReWkrtg/s1600/bench1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/SwSxPvxKujI/AAAAAAAAAPg/88UuReWkrtg/s400/bench1.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5405640336830282290" /&gt;&lt;/a&gt;&lt;div&gt;The really good news is that my new home has a huge basement which will allow me to have much more room for my current cluttered work area. :D&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-5601228676028549257?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/5601228676028549257/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2009/11/moving-day-projects-on-hold.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/5601228676028549257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/5601228676028549257'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2009/11/moving-day-projects-on-hold.html' title='Moving day, projects on hold'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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/_T8VFoOnB0ZQ/SwSxPvxKujI/AAAAAAAAAPg/88UuReWkrtg/s72-c/bench1.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-3565412026353793212</id><published>2009-10-22T00:38:00.013-04:00</published><updated>2009-10-22T23:29:59.473-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Agilent'/><category scheme='http://www.blogger.com/atom/ns#' term='logic analyzer'/><category scheme='http://www.blogger.com/atom/ns#' term='peoplebacon'/><category scheme='http://www.blogger.com/atom/ns#' term='HP'/><category scheme='http://www.blogger.com/atom/ns#' term='HP16500B'/><category scheme='http://www.blogger.com/atom/ns#' term='datasheets. project'/><category scheme='http://www.blogger.com/atom/ns#' term='CompactFlash'/><title type='text'>Recovering a HP 16500B Logic Analysis System From a Failed Hard Drive to a CompactFlash Drive.</title><content type='html'>In a recent auction I purchased two HP16500B logic analysis systems and one HP16500A system for pretty much next to nothing which had me very excited. I have been looking to upgrade from my current 1630D logic analyzer to something a little more powerful. My 1630D has been excellent and has worked perfect for many tasks, but I have been finding that I have needed a more powerful analyzer with a lot more memory depth for some recent hardware hacking projects i have worked on. I have wanted to buy a 16500B system as their prices are reasonable, but the hard drives that they use have scared me. These hard drive based systems are ticking time bombs. Once it's disk fails the device is useless unless you have the original system boot disks for it and a working floppy drive.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/St_zpV0mnuI/AAAAAAAAAPY/ZN5cSTAckZo/s1600-h/CIMG2708.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/St_zpV0mnuI/AAAAAAAAAPY/ZN5cSTAckZo/s400/CIMG2708.JPG" alt="" id="BLOGGER_PHOTO_ID_5395298770171109090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The price of these three systems I bought was next to nothing, and having local pickup as an option saved me a ton in shipping as these devices are by no means small or light. So even if they were all dead I wouldn't be that upset. Upon arrival home and powering them all up, one of the three worked. The 16500A has a power supply issue and will be looked at soon. I was really interested in the two 16500B systems which one worked perfectly while the other had the common 'HARD DISK FAILURE' error upon boot indicating a dead hard drive. Luckily both of these systems came with a full (unopened) floppy disk set of the system software which lets me boot the system with the failed drive from the floppy. While I was able to successfully boot the system, unfortunately many of the modules in it have been upgraded which my disk set didn't support leaving these feature modules useless.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;These systems use a Quantum PI16A011 hard drive of 170MB capacity (at least both of mine did, later earlier or later models may have had different disks). Now while I probably had a box of these drives 10 years ago or so, I have since thrown them all away. I figured purchasing one would be easy but the only similar ones I found on eBay the sellers wanted a premium for them because they were 'vintage'. Whatever, I'm not paying you $40 for a 15 year old hard drive that will probably just fail again. Looking for a more permanent solution I decided to give a Compact Flash card a try in the device.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;CF cards have the cool ability to mimic a hard drive in CHS mode ( cylinder / head / sector) . I have saved many failed firewalls and other embedded devices by replacing their failed hard drives with a CF card using a CF to IDE adapter card. You can find these adapter cards for around $5 to $10.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To get the data onto the new system I considered pulling the good drive out of the working 16500B and throwing it in a linux machine along with the CF card IDE adapter. I could then clone the disk using the 'dd' command to the CF card making an exact copy. Since I had already backed up all the data from the working 16500B to my network in fear the the working one would die, it was easier for me to just ftp this backup data over to the failed system.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is how I was able to recover my 16500B system with the failed drive by replacing it with a CompactFlash card:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1.  I booted the good working system and configured the network interface for an IP on my network. This allowed me to ftp to the 16500B, logging in with the user 'control' and no password. I then copied over all files on the 16500B system via ftp get to my local computer. I now had a backup of all of the system software for safe keeping. (Note: If using an ftp application such as LeechFTP, or any other that allows threaded ftp functionality, make sure only one thread runs at a time. Trying to transfer more than one file at once will cause the 16500B to lock up) Note, Note! If you have a 16500B, back up it's software to your network! When that drive fails you will need this data to recover.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. I purchased a CompactFlash to IDE adapter to use in the 16500B with the failed disk. I had to try several of them before I found one that worked with the 16500B. (Buy a quality one, not a cheap Chinese one. Make sure it also has a jumper for master/slave configuration and set it to Master).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. Buy a CompactFlash card and place it in the adaptor. I used a 64MB card in my 16500B successfully. These cards follow the basic CHS (cylinder / head / sector ) format of older hard drives so it works fine. Avoid cards larger than 256MB as the 16500B may not recognize them ( I haven't tested, just my assumption. I do know for sure that my 64MB card works perfect).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/St_xM2vC_iI/AAAAAAAAAPQ/IAXSGNkbU0M/s1600-h/CIMG2698.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/St_xM2vC_iI/AAAAAAAAAPQ/IAXSGNkbU0M/s400/CIMG2698.JPG" alt="" id="BLOGGER_PHOTO_ID_5395296081766710818" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4. Place the adapter in the 16500B with the CF card installed. You will need to come up with your own mounting system to hold the new CF adapter in place where the hard drive was located. Connect the IDE cable and power connector to the adapter. Make sure it doesn't short out to the chassis ground.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/St_xLww6LJI/AAAAAAAAAOw/22krYxHJ_Ig/s1600-h/CIMG2697.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/St_xLww6LJI/AAAAAAAAAOw/22krYxHJ_Ig/s400/CIMG2697.JPG" alt="" id="BLOGGER_PHOTO_ID_5395296062984039570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;5. Power on the 16500B and boot it via the system floppy disk. During boot, it will still report the 'HARD DRIVE FAIL' error message, this is normal.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;6. In the 'system' menu, select 'hard disk' then select 'format' and press 'execute'. It will prompt you twice to confirm and format within a few seconds. If you have any errors here try a different CF card or adapter. Again, I had to try a few different ones to find one that worked.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;7. Configure your 16500B's network adapter for a free ip on your network. Place an AUI media adapter on the 16500B and hook up to your network. It now should be pingable from another computer.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/St_xMh8atCI/AAAAAAAAAPI/931G1jRoCwA/s1600-h/CIMG2682.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/St_xMh8atCI/AAAAAAAAAPI/931G1jRoCwA/s400/CIMG2682.JPG" alt="" id="BLOGGER_PHOTO_ID_5395296076185646114" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;8. FTP to the 16500B's ip and login with user 'control', no password. You should login successfully. Now copy over all of the HP16550B's /system files from your backup to the 16500B with the CF card. If your CF adapter has an LED activity light, it will be blinking showing the data is indeed being copied. This may take up to 15 minutes to complete. If you only have the backup floppy disks, copy them to the CF card via the 16500Bs interface. I find it much faster to copy the floppies to a computer and ftp over all the data. The /system directory is the important one you will want to copy over.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;9. Once all files are copied, remove the 16500B's floppy disk and power cycle. Upon boot, the hard disk should pass the self test and it should be immediately booting. Your 16500B is now ready for use!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/St_xMaDzimI/AAAAAAAAAPA/QjGYie68onk/s1600-h/CIMG2702.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/St_xMaDzimI/AAAAAAAAAPA/QjGYie68onk/s400/CIMG2702.JPG" alt="" id="BLOGGER_PHOTO_ID_5395296074069150306" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now CF cards do have a limited lifespan as well in regards to the amount of writes they can do, but since my 16500B just reads the card to boot, it should last a very long time. I'll still have to compare the CF card to the hard drive to see if there is any speed benefit in boot time to using the CF card. These are very powerful and excellent logic analyzers that are well worth converting to CF cards to increase their lifetime. Remember, if you have a working 16500B system, back up it's software before it's too late!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/St_xMPbya-I/AAAAAAAAAO4/l1GHSm69Ifs/s1600-h/CIMG2681.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/St_xMPbya-I/AAAAAAAAAO4/l1GHSm69Ifs/s400/CIMG2681.JPG" alt="" id="BLOGGER_PHOTO_ID_5395296071216950242" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-3565412026353793212?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/3565412026353793212/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2009/10/recovering-hp-16500b-logic-analysis.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/3565412026353793212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/3565412026353793212'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2009/10/recovering-hp-16500b-logic-analysis.html' title='Recovering a HP 16500B Logic Analysis System From a Failed Hard Drive to a CompactFlash Drive.'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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://1.bp.blogspot.com/_T8VFoOnB0ZQ/St_zpV0mnuI/AAAAAAAAAPY/ZN5cSTAckZo/s72-c/CIMG2708.JPG' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-8732956163571496049</id><published>2009-10-01T00:57:00.005-04:00</published><updated>2009-10-01T01:12:59.643-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cpu'/><category scheme='http://www.blogger.com/atom/ns#' term='logic analyzer'/><category scheme='http://www.blogger.com/atom/ns#' term='ttl'/><category scheme='http://www.blogger.com/atom/ns#' term='peoplebacon'/><category scheme='http://www.blogger.com/atom/ns#' term='cpu from scratch'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><category scheme='http://www.blogger.com/atom/ns#' term='logic'/><title type='text'>CPU From Scratch</title><content type='html'>&lt;div&gt;I haven't been posting too much lately, mostly because I have taken on a very ambitious project. I have decided to create an entire CPU from scratch using only TTL based logic. This project has been in the works for about two months now and I finally have something to show for it. Because this project is going to be more in-depth than most I have dedicated an entire wiki to it which can be located at &lt;a href="http://bradthx.net/"&gt;bradthx.net&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/SsQ4cw3RzDI/AAAAAAAAAOo/6k3mjzNgF6Q/s1600-h/CIMG2670.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/SsQ4cw3RzDI/AAAAAAAAAOo/6k3mjzNgF6Q/s400/CIMG2670.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5387493121046203442" /&gt;&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;As it stands now I have an 8-bit CPU that is able to load and store instructions into address and instruction registers from memory. This proves (along with a lot of additional debugging) that my design seems solid and I can begin designing my opcode and burning it to eproms.  I will update this blog when I make major milestones, but all the technical data will be located at &lt;a href="http://bradthx.net/"&gt;bradthx.net&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-8732956163571496049?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/8732956163571496049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2009/10/cpu-from-scratch.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/8732956163571496049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/8732956163571496049'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2009/10/cpu-from-scratch.html' title='CPU From Scratch'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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/_T8VFoOnB0ZQ/SsQ4cw3RzDI/AAAAAAAAAOo/6k3mjzNgF6Q/s72-c/CIMG2670.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-5734089848550535576</id><published>2009-09-20T00:45:00.007-04:00</published><updated>2009-09-20T01:28:37.034-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='peoplebacon'/><category scheme='http://www.blogger.com/atom/ns#' term='scientech balance'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><category scheme='http://www.blogger.com/atom/ns#' term='reverse engineer'/><title type='text'>Power Supply Reverse Engineering</title><content type='html'>&lt;div style="text-align: left;"&gt;I recently came across a crazy good deal on eBay, a Scientech SP1000 precision balance / scale. For $15 I couldn't refuse the purchase of a retail $2000 precision scale  even though I knew the power supply was not included with the unit.  I figured I could just reverse engineer the circuitry to create my own external power supply ( $100 retail value for the power supply from Scientech) to be able to use the scale, and after an hour on my bench my assumptions were correct.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I have wanted a simple scale for awhile now to measure the weight of rocket components to be better able to predict it's performance with my addition of GPS / accelerometer payloads. There are a ton of cheap scales on eBay (mostly from Chinese suppliers) but I knew I wanted something better and more precise than the average drug dealer who purchases these cheap items. After some research I discovered Scientech was one of the leaders in precision balances and began to search for them. I was very happy to find one for very cheap with the absense of a power supply. This is where my reverse engineering began. The scale had a 5-pin din connector for power. Knowing that this was not going to be completely simple, I tore the unit apart.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To reverse engineer it's power input, I first located it's ground pins. I did this by locating known ic's and metering their ground pins to a pin on the power connector. Also noticing large ground planes on the board helped as well. There ended up being two grounds pins on this board. Two pins down, three to go.  Once the two ground pins were identified, I went for non-ground voltages. The first I discovered was a +5v line. I traced the pins back through taces from some known 7400 TTL logic ic's and was able to identify a +5v input. So one pin from the power supply provided +5v.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/SrW2Fr0_yyI/AAAAAAAAAOI/HWAPBKM7maU/s400/CIMG2638.JPG" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Moving forward I was lucky to find a label on the board indicating -12V. I followed this trace back to the power connector and identified one pin as being definitely -12V. Another pin from strictly an assumption would be +12V.  I followed the traces from this last pin around and discovered they followed the -12V traces to a regulator, indicating that my assumption was probably correct. Time to power up.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/SrW2F4bZWWI/AAAAAAAAAOQ/kVEi8E4wa1w/s400/CIMG2639.JPG" /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;After making all connections to my power supply, i powered up the +5V line first. Pressing the power button resulted in the display turning on with '-----'. A good start. I set my +12V and -12V supplies to current limit at .1A as to not burn it out if I was wrong, and slowly raised the voltage on each. Once about 10V on each was hit, the device came to life. I had a working scale with the exception of some errors on display. With some testing I discovered it was just pissed because the measuring tray did not have the full tray on it (applying a certain amount of weight). Placing an object, pliers in this case, on the scale are powering back up it turned on completely and successfully. I just now need to design a high quality linear supply for it for +5V, -12V and +12V voltages.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;It's interesting to note that this small wire-wrap wire:&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/SrW71X0iGAI/AAAAAAAAAOY/QeS1UlUeYRY/s320/CIMG2642.JPG" /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Weighs a whole .053 grams. :D (uncalibrated of course, so give or take +-.01 grams)&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;img src="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/SrW7132FnfI/AAAAAAAAAOg/A2-ldCb1hQU/s320/CIMG2643.JPG" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-5734089848550535576?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/5734089848550535576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2009/09/power-supply-reverse-engineering.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/5734089848550535576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/5734089848550535576'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2009/09/power-supply-reverse-engineering.html' title='Power Supply Reverse Engineering'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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://1.bp.blogspot.com/_T8VFoOnB0ZQ/SrW2Fr0_yyI/AAAAAAAAAOI/HWAPBKM7maU/s72-c/CIMG2638.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-5668403679869555553</id><published>2009-08-08T23:47:00.003-04:00</published><updated>2009-08-09T00:04:02.112-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pic'/><category scheme='http://www.blogger.com/atom/ns#' term='national semiconductor'/><category scheme='http://www.blogger.com/atom/ns#' term='adc'/><category scheme='http://www.blogger.com/atom/ns#' term='peoplebacon'/><category scheme='http://www.blogger.com/atom/ns#' term='datasheet'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>One sweet ADC, National Semiconductor ADC08100</title><content type='html'>&lt;div&gt;I spent this weekend playing with a few analog to digital convertors I have been meaning to try out, one of which is the National Semiconductor &lt;a href="http://www.national.com/pf/AD/ADC08100.html"&gt;ADC08100&lt;/a&gt;. The ADC08100 is an 8 bit 100Msps ADC with very low power operation. To test it out I have it clocked from a PIC18F4520 running at 40Mhz and has the output being displayed on a pair of HP hexadecimal displays. Input is coming from a small Murata pot whose voltage can be adjusted over the set range of 0V to +3V.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/Sn5HDUcRaxI/AAAAAAAAAN8/-GmbT9tnoB0/s1600-h/CIMG2503.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/Sn5HDUcRaxI/AAAAAAAAAN8/-GmbT9tnoB0/s400/CIMG2503.JPG" border="0" alt="" id="BLOGGER_PHOTO_ID_5367805928224680722" /&gt;&lt;/a&gt;&lt;div&gt;I plan on using these ADCs for everything from video capture in basic machine vision systems to any type of ADC that needs high speed accurate conversion that can offload the ADC operation from the microcontroller itself.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-5668403679869555553?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/5668403679869555553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2009/08/one-sweet-adc-national-semiconductor.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/5668403679869555553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/5668403679869555553'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2009/08/one-sweet-adc-national-semiconductor.html' title='One sweet ADC, National Semiconductor ADC08100'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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/_T8VFoOnB0ZQ/Sn5HDUcRaxI/AAAAAAAAAN8/-GmbT9tnoB0/s72-c/CIMG2503.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-50048552868418782</id><published>2009-07-19T00:13:00.009-04:00</published><updated>2009-07-19T00:29:42.864-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nearspace balloon'/><category scheme='http://www.blogger.com/atom/ns#' term='i2c'/><category scheme='http://www.blogger.com/atom/ns#' term='peoplebacon'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><category scheme='http://www.blogger.com/atom/ns#' term='temperature'/><category scheme='http://www.blogger.com/atom/ns#' term='datasheets. project'/><title type='text'>Texas Instruments TMP100 Temperature Sensor</title><content type='html'>&lt;div style="text-align: left;"&gt;When looking for cheap and accurate temperature sensors for the next up and coming near space balloon project, I came across this great little device from TI. The &lt;a href="http://focus.ti.com/docs/prod/folders/print/tmp100.html"&gt;TMP100&lt;/a&gt;.  Tonight I interfaced these little devices with a PIC18F4520 via I2C and everything is working perfectly.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238);"&gt;&lt;img src="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/SmKeiEx4D1I/AAAAAAAAANk/RjEJlrwzqpw/s320/ti_tmp100.jpg" alt="" id="BLOGGER_PHOTO_ID_5360020814759989074" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" border="0" /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Some basic info about this sensor:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Resolution: up to 12bit&lt;/div&gt;&lt;div&gt;Temperature range: -55 to +125 degrees Celsius&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;I plan on using two of these to monitor temperature, one for the inside electronics temperature and one for the outside environment temperature.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-50048552868418782?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/50048552868418782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2009/07/texas-instruments-tmp100-temperature.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/50048552868418782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/50048552868418782'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2009/07/texas-instruments-tmp100-temperature.html' title='Texas Instruments TMP100 Temperature Sensor'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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://1.bp.blogspot.com/_T8VFoOnB0ZQ/SmKeiEx4D1I/AAAAAAAAANk/RjEJlrwzqpw/s72-c/ti_tmp100.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-3006652338028256431</id><published>2009-07-02T13:15:00.004-04:00</published><updated>2009-07-02T13:33:56.005-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pic'/><category scheme='http://www.blogger.com/atom/ns#' term='logic analyzer'/><category scheme='http://www.blogger.com/atom/ns#' term='camera'/><category scheme='http://www.blogger.com/atom/ns#' term='peoplebacon'/><category scheme='http://www.blogger.com/atom/ns#' term='datasheet'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>TCM8230MD Camera Images Within Reach</title><content type='html'>Last night I was able issue a start command over I2c to the TCM8230MD camera module to have it start sending images.  I'm now receiving valid YUV 422 data off of the 8 bit bus along with the necessary clock and sync pulses.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/Skztrf6EV7I/AAAAAAAAANc/BrhPMeSriWA/s1600-h/CIMG2492.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/Skztrf6EV7I/AAAAAAAAANc/BrhPMeSriWA/s320/CIMG2492.JPG" alt="" id="BLOGGER_PHOTO_ID_5353915388591888306" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This camera is definitely not the easiest thing to work with. The datasheet is not as clear I would have liked and the timings necessary for the startup sequence took a little bit longer to figure out than I had expected.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/SkztrNFVW_I/AAAAAAAAANU/SVPimFhmvDo/s1600-h/CIMG2474.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/SkztrNFVW_I/AAAAAAAAANU/SVPimFhmvDo/s320/CIMG2474.JPG" alt="" id="BLOGGER_PHOTO_ID_5353915383538867186" border="0" /&gt;&lt;/a&gt;The next step will be to be to send the camera a few more control codes to lower the frame rate and resolution to get the data rate to a more manageable level for the pic. I'm hoping to capture and display my first usable image over the weekend.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-3006652338028256431?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/3006652338028256431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2009/07/tcm8230md-camera-images-within-reach.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/3006652338028256431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/3006652338028256431'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2009/07/tcm8230md-camera-images-within-reach.html' title='TCM8230MD Camera Images Within Reach'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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://4.bp.blogspot.com/_T8VFoOnB0ZQ/Skztrf6EV7I/AAAAAAAAANc/BrhPMeSriWA/s72-c/CIMG2492.JPG' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-165802071002944764</id><published>2009-06-27T14:07:00.004-04:00</published><updated>2009-06-27T14:43:58.226-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pcb'/><category scheme='http://www.blogger.com/atom/ns#' term='camera'/><category scheme='http://www.blogger.com/atom/ns#' term='peoplebacon'/><category scheme='http://www.blogger.com/atom/ns#' term='datasheet'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>Custom PCB for Toshiba TCM8230MD Camera</title><content type='html'>I recently purchased a few small &lt;a href="http://www.sparkfun.com/commerce/product_info.php?products_id=8667"&gt;TCM8230MD CMOS cameras&lt;/a&gt; made by Toshiba from SparkFun. I plan on using the camera for some machine vision experiments as they are controlled by an I2c bus and have an 8 bit parallel video out with sync and clock. This makes them very microcontroller interfacing friendly. I plan to use a higher end PIC micro to receive the picture data and process the received video frames. The only issue is that I didn't realize how small these cameras  actually are until I tried to use one.&lt;br /&gt;&lt;br /&gt;My first attempt at soldering didn't go so well as the solder pads on this device are extremely small. Since no breakout board is available and the lead spacing on this device appears to be non-standard, I went for a custom PCB design.&lt;br /&gt;&lt;br /&gt;I made the initial pattern in Eagle using the dimensions from the datasheet to space the solder pads for it, than drew simple traces to solder pads for two headers. I then used the instructions &lt;a href="http://www.riccibitti.com/pcb/pcb.htm"&gt;here&lt;/a&gt; to transfer the trace layout to a copper PCB.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/SkZj9u6g1HI/AAAAAAAAAM8/EzqmpQHY2AU/s1600-h/CIMG2467.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/SkZj9u6g1HI/AAAAAAAAAM8/EzqmpQHY2AU/s320/CIMG2467.JPG" alt="" id="BLOGGER_PHOTO_ID_5352075119393035378" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;A nice thing about this simple board is that I didn't have to worry abut mirroring the layout when printing as the orientation of the camera doesn't matter. Once the board was etched in Ferric Chloride, it looked like this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/SkZj91cy_qI/AAAAAAAAANE/Vje6-m1Gw_8/s1600-h/CIMG2469.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/SkZj91cy_qI/AAAAAAAAANE/Vje6-m1Gw_8/s320/CIMG2469.JPG" alt="" id="BLOGGER_PHOTO_ID_5352075121147444898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Not bad for a quick design, there was one weak trace that was etched too much but a little solder will fix that.  One note about etching, It took much longer to etch than anticipated. About 20 minutes was needed with me agitating the board for the last 10 minutes.&lt;br /&gt;&lt;br /&gt;A reflow procedure was used to solder the camera down, I did it with an electric skillet. After reflow, a quick test showed no shorts and inspection of the pins to pads looks good. I plan on starting to use it tonight.&lt;br /&gt;&lt;br /&gt;Now that I have made the board, I would have changed a few things. I should have made pin 1 on the camera line up with the standard pin 1 location on the board. I should have also made all the header pins along one side of the board instead of two so I could use right angle headers to mount the camera vertically. I also didn't forget to drill the holes in the board for the headers, I purchased new PCB drill bits online and they have not arrived yet. I'll just solder jumpers to the pads for now. Yes i'm impatient.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/SkZj-PbnFRI/AAAAAAAAANM/-An4m5bdvyM/s1600-h/CIMG2470.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/SkZj-PbnFRI/AAAAAAAAANM/-An4m5bdvyM/s320/CIMG2470.JPG" alt="" id="BLOGGER_PHOTO_ID_5352075128121791762" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-165802071002944764?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/165802071002944764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2009/06/custom-pcb-for-toshiba-tcm8230md-camera.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/165802071002944764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/165802071002944764'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2009/06/custom-pcb-for-toshiba-tcm8230md-camera.html' title='Custom PCB for Toshiba TCM8230MD Camera'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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/_T8VFoOnB0ZQ/SkZj9u6g1HI/AAAAAAAAAM8/EzqmpQHY2AU/s72-c/CIMG2467.JPG' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-773554494276135545</id><published>2009-05-31T16:01:00.005-04:00</published><updated>2009-05-31T16:17:27.827-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pic'/><category scheme='http://www.blogger.com/atom/ns#' term='plants'/><category scheme='http://www.blogger.com/atom/ns#' term='rabbit semiconductor'/><category scheme='http://www.blogger.com/atom/ns#' term='water'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>Automatic plant watering system, Part II</title><content type='html'>&lt;a href="http://bradthx.blogspot.com/2008/07/plant-watering-system.html"&gt;Last summers automatic plant watering system&lt;/a&gt; worked well, but it never ended up leaving the breadboard. So as I already have my pepper plants planted for this year,  I wanted to get a more permanent system up and working. I took the design from last year and built it on a Rabbit Flex dev board I have had laying around since I had used the rc3400 I built last years on for a separate project. One of the nice parts of this board is that it has on-board Ethernet which I plan to take advantage of.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/SiLjEBFlW2I/AAAAAAAAAMs/ly2U1kS8Tg4/s1600-h/CIMG2441.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/SiLjEBFlW2I/AAAAAAAAAMs/ly2U1kS8Tg4/s320/CIMG2441.JPG" alt="" id="BLOGGER_PHOTO_ID_5342081766165666658" border="0" /&gt;&lt;/a&gt;This version will have a web based interface to allow me to control the watering times remotely. Along with the rain detector that was built last year, it will also have temperature and humidity sensors that will allow me to adjust watering accordingly based on current conditions. Ideally it will also be able to show how much water I am using per day once I calculate the flow rate of my system.&lt;br /&gt;&lt;br /&gt;Design:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/SiLlScRUWfI/AAAAAAAAAM0/bvfi8boelNc/s1600-h/CIMG2442.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/SiLlScRUWfI/AAAAAAAAAM0/bvfi8boelNc/s320/CIMG2442.JPG" alt="" id="BLOGGER_PHOTO_ID_5342084213004065266" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The basic system is operational right now along with the external sensors, the web interface is the last step of the project, along with a case to mount the project in.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-773554494276135545?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/773554494276135545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2009/05/automatic-plant-watering-system-part-ii.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/773554494276135545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/773554494276135545'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2009/05/automatic-plant-watering-system-part-ii.html' title='Automatic plant watering system, Part II'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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/_T8VFoOnB0ZQ/SiLjEBFlW2I/AAAAAAAAAMs/ly2U1kS8Tg4/s72-c/CIMG2441.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-1834641094137142653</id><published>2009-05-28T20:43:00.010-04:00</published><updated>2009-05-28T23:15:55.628-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='satellite'/><category scheme='http://www.blogger.com/atom/ns#' term='icom-r7000'/><category scheme='http://www.blogger.com/atom/ns#' term='weather'/><category scheme='http://www.blogger.com/atom/ns#' term='APT'/><category scheme='http://www.blogger.com/atom/ns#' term='mini-circuits'/><title type='text'>Quadrifilar Helix Antenna for NOAA APT Reception</title><content type='html'>Since most of my previous attempts of NOAA APT live weather imagery reception have resulted in rather poor quality images, I finally decided to give it a real try this summer. I started with purchasing a serious receiver, the icom IC-R7000. With continuous coverage of 25Mhz all the way to 2Ghz, it is probably one of the best scanner / receivers I have ever used. It has the Japan built quality of electronics that you just don't find anymore and the feel of a very solid piece of electronics. Along with this I purchased a registered copy of &lt;a href="http://www.wxtoimg.com/"&gt;WXtoImg&lt;/a&gt;, which is definitely the best APT decoding software available. I have used several of the free APT decoding applications, and while they work... they just don't have the image clarity that WXtoImg offers. WxtoImg also can control tuning of my icom IC-R7000 via rs-232 which is very nice as well.&lt;br /&gt;&lt;br /&gt;The final missing piece I need is a good antenna. Here is an example of an APT capture using a dipole antenna with ground plane tuned to 137 Mhz:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/Sh9QbjRtXGI/AAAAAAAAAMk/9owIN4_6z88/s1600-h/noaa-19-03141853-veg.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 294px; height: 400px;" src="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/Sh9QbjRtXGI/AAAAAAAAAMk/9owIN4_6z88/s400/noaa-19-03141853-veg.jpg" alt="" id="BLOGGER_PHOTO_ID_5341076117340904546" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The image is excellent just above my location ( indicated by the yellow + sign ) but image quality decreases as noise increases quickly outside of my location. What is needed is an antenna with a much better gain from a high speed moving satellite that doesn't have signal fade caused by the orientation of the propagated wavefront. While many people have had good results using basic dipole whip antennas, discone antennas, turnstile antennas, and more exotic Lindenblads, nothing seems to perform as well as the Quadrifilar Helix Antenna (QHA) .&lt;br /&gt;&lt;br /&gt;Looking at the QHA, it is initially somewhat hard to understand it's design. It is a pair of circularly polarized, half turn, half wavelength helical antennas designed for reception of low-earth polar orbiting satellites. Reading into the &lt;a href="http://www.ncdc.noaa.gov/oa/pod-guide/ncdc/docs/klm/html/c1/sec12-7.htm"&gt;documentation for the actual NOAA polar orbiting satellites&lt;/a&gt;, they actually use this exact same antenna design for APT transmission on the satellites themselves. After some research, I came across an &lt;a href="http://jcoppens.com/ant/qfh/calc.en.php"&gt;excellent calculator&lt;/a&gt; for designing the antenna. I recently built this antenna using measurements from the calculator and ended up with this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/Sh9OLZUd79I/AAAAAAAAAMU/LGm5L4NJ4-A/s1600-h/quadrifilar_antenna.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/Sh9OLZUd79I/AAAAAAAAAMU/LGm5L4NJ4-A/s320/quadrifilar_antenna.JPG" alt="" id="BLOGGER_PHOTO_ID_5341073640766959570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;It's not perfect, but it is designed to specifications.  I used thick 4mm copper grounding wire instead of small copper pipe that other designers of these antennas use mostly for ease of assembly. Also in the picture is the RF choke balun, which converts the balanced signal from the antenna to an unbalanced coaxial cable. It is simply four turns of RG-8 around the antenna mast as close to the feed point as possible. For extra gain, I'm using a &lt;a href="http://www.minicircuits.com/pdfs/ZFL-1000LN+.pdf"&gt;mini-circuits ZFL-1000LN&lt;/a&gt; low noise amplifier between the antenna and receiver. Overall antenna parts cost was about $30 and assembly time took about two hours. I plan on testing the antenna this weekend and I'm looking forward to some good satellite imagery.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-1834641094137142653?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/1834641094137142653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2009/05/quadrifilar-helix-antenna-for-noaa-apt.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/1834641094137142653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/1834641094137142653'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2009/05/quadrifilar-helix-antenna-for-noaa-apt.html' title='Quadrifilar Helix Antenna for NOAA APT Reception'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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://1.bp.blogspot.com/_T8VFoOnB0ZQ/Sh9QbjRtXGI/AAAAAAAAAMk/9owIN4_6z88/s72-c/noaa-19-03141853-veg.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-3253688675736530137</id><published>2009-05-22T01:08:00.008-04:00</published><updated>2009-05-22T01:44:59.302-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pager'/><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='pocsag'/><category scheme='http://www.blogger.com/atom/ns#' term='scanner'/><category scheme='http://www.blogger.com/atom/ns#' term='icom-r7000'/><title type='text'>POCSAG and FLEX pager reception and decoding</title><content type='html'>Browsing the 900Mhz band last week, I came across the distinct sound of pager protocols on a handful of frequencies. Years ago I began listening to pagers on the 138Mhz band as my scanner at the time only reached the 500Mhz band as it’s highest frequency. With my ICOM-R7000, I am able to easily browse through the entire 900Mhz band where I have found most of the pager frequencies are located.&lt;br /&gt;&lt;br /&gt;The two main protocols used by pagers are POCSAG and FLEX. Both protocols support tone only, numeric and alphanumeric pages at various bit rates. POCSAG uses FSK modulation with a +- 4.5Khz change of the carrier frequency. A +4.5Khz tone is a 0 and a -4.5Khz is a 1. Bit rates of 512 ,1200, and 2400 bits per second are supported. FLEX is another protocol which is newer and also uses FSK modulation. Bit rates are available at 1600, 3200, and 6400 bits per second. A key note to make about both of these protocols is the fact that their data is transmitted in clear text.&lt;br /&gt;&lt;br /&gt;The only requirements to decode pager transmissions is a scanner / receiver capable of receiving FM on pager frequencies, ( the low 900Mhz band seems to be the most active) and software that is capable of decoding pager transmissions. The software I use is called &lt;a href="http://www.gsm-antennes.nl/PDW/"&gt;PDW&lt;/a&gt;, and is freely available. It is capable of receiving both POCSAG and FLEX transmissions in all bit rates including a handful of other protocols.&lt;br /&gt;&lt;br /&gt;For an antenna I’m using an outdoor wide-band antenna that has coverage in the 900Mhz band. I’m also utilizing a mini-circuits&lt;a href="http://www.minicircuits.com/pdfs/ZRL-2400LN.pdf"&gt; ZRL-2400LN&lt;/a&gt; wide band low noise preamp to help pull in any distant signals, even though it really isn’t necessary as these pager transmissions are fairly strong.&lt;br /&gt;&lt;br /&gt;There are several interface methods available; the first is connecting your scanners audio output directly to the input of your sound card. The second involves taking he discriminator output of your scanner and connecting it directly to your soundcards input. The last method involves making an FSK to rs232 level decoder that takes the scanners audio output or discriminator output and converting it to serial data. I have actually had really good results with using the discriminator output of the R7000 and tying it to my sound card.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/ShY7HRF_6eI/AAAAAAAAAMM/2Nc0CEMy-Gs/s1600-h/IMGP0115.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/ShY7HRF_6eI/AAAAAAAAAMM/2Nc0CEMy-Gs/s400/IMGP0115.JPG" alt="" id="BLOGGER_PHOTO_ID_5338519404327987682" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The ICOM-R7000 does not have a discriminator output, but it is an easy modification to add. The R7000 actually has a ‘spare’ rca connector on the back that can be used for any additional mods you wish to add, and tapping into the discriminator is an easy operation to do. &lt;a href="http://www.discriminator.nl/r7000/index-en.html"&gt;There are instructions all over the place to do this&lt;/a&gt; so I won’t describe it here. The discriminator output is key since it provides access to the FSK pager audio before it is passed through filters on the scanner that usually destroy the signal.&lt;br /&gt;&lt;br /&gt;I am passing this discriminator output directly to my soundcard line input and have had excellent results. Many people mention that this won’t work for the higher bit rates, but I am successfully decoding FLEX pages even at 6400 bps using this method. I used to use the audio output form my old scanner to my sound cards input with poor results. At best I was able to decode POCSAG at 512 bps. I would still like to make a 2 level or 4 level FSK converter, but I really find it isn’t necessary.&lt;br /&gt;&lt;br /&gt;Finding the pager frequencies is fairly easy. There are many lists available around that I found from some searches, although I found many of them to be old and out of date. I had my best results by simply searching around and hearing them. This is better to perform during the day as I found pager transmissions are much more active than at night.  I usually start right at 900Mhz and begin tuning up 5Khz at a time. Pagers are easy to find as the tone has a very distinctive sound. Several passes over the band may be required as some of the frequencies will be idle when no transmissions are present. I found the following frequencies to be very active by me:&lt;br /&gt;&lt;br /&gt;940.870, 929.295, 929.620, 929.720, 931.340, 929.670, 929.545, 929.845, 931.345, and 929.495.&lt;br /&gt;&lt;br /&gt;This may be different in your area, but most of these I believe are nationwide pager networks. Here are some of my results:&lt;br /&gt;&lt;br /&gt;( I removed actual names and modified phone numbers as I have no interest in displaying real personal information. )&lt;br /&gt;&lt;br /&gt;0389996   00:08:13 20-05-09 FLEX-A  ALPHA  6400  MSN 019 hello Message from NOC PCB. 1510016&lt;br /&gt;1424219   00:09:31 20-05-09 FLEX-A  ALPHA  6400  THIS IS A TEST PERIODIC PAGE SEQUENTIAL NUMBER  7829&lt;br /&gt;0769357   00:09:33 20-05-09 FLEX-C  ALPHA  6400  &lt;!--P&lt;?%g&lt;/1Trevor Ariza steals Nugget inbound with 28 seconds left, crushing Denver's chances...   &lt;/1Kobe Wins Round One: Kobe scor&lt;br--&gt;0769357   00:09:46 20-05-09 FLEX-C  ALPHA  6401  es 40 pts, 6 rebs, 4 ast vs. Carmelo Anthony's 39 pts, 6 reb, 4 ast...010243590 00:09:48 20-05-09 FLEX-A  ALPHA  6400  801221234545020519203005192245005&lt;br /&gt;010243590 00:10:03 20-05-09 FLEX-A  ALPHA  6400  902051234545990519203005192245015&lt;br /&gt;0186743   00:10:03 20-05-09 FLEX-C  ALPHA  6400  MONTGOMERY, NJ (SOMERSET) *2ND ALARM* 16 HAMPTON CT. 2ND ALARM REQ ON ARRIVAL FOR THE F/I DWG W/POSS ENTRAP. NJ2&lt;br /&gt;011156517 00:10:22 20-05-09 FLEX-A  StNUM  6400  281 555-9405 &lt;br /&gt;011319993 00:10:22 20-05-09 FLEX-A  StNUM  6400  213 555-4758 &lt;br /&gt;0000001   00:10:22 20-05-09 FLEX-A  ALPHA  6400  MSN 030 hello Message from NOC PCB. 1111111111&lt;br /&gt;010239056 00:11:39 20-05-09 FLEX-C  ALPHA  6400  38767:Host:png,pBg_fcsw_4.png.com Event:nodedown   [nvasp] [58]&lt;br /&gt;010248578 00:14:13 20-05-09 FLEX-C  ALPHA  6400  Feeder 07Q85 opened 05/20/09-00:03. 3 of the 24 feeders are out of service at FLUSHING NETWORK . [57]&lt;br /&gt;0186742   00:41:01 20-05-09 FLEX-A  ALPHA  3201  DV. BULK OF FIRE K/D. CO'S GOING INT FOR SEARCH &amp;amp; O/H. NJ2&lt;br /&gt;0186743 &lt;br /&gt;002816630 00:41:37 20-05-09 FLEX-A SH/TONE 3200  520   &lt;br /&gt;003951995 00:44:05 20-05-09 FLEX-A  ALPHA  3201  MSGW02MOM"  CPU is running at 5.50 percent    This event was generated by the script: "Exchange ... [88]&lt;br /&gt;003435545 00:48:11 20-05-09 FLEX-A  ALPHA  3200    HARD WATER IN CONDENSATE. CALL THE POWERHOUSE 3-7038. PAMS_24.Unack HARD WATER IN CONDENSATE  *ALM* High  [78]&lt;br /&gt;003951995 00:43:11 20-05-09 FLEX-A  ALPHA  3200  Store timed out at the 30 seconds threshold   Exchange Server:"MOBMSPF05"   MDB:"SG1 (MOBMSPF05)\SG1_Priv1_(MOBMSPF05)"   Mailbo&lt;br /&gt;003951995 00:43:22 20-05-09 FLEX-A  ALPHA  3201  x:"MOBMSPF05MOM"   CPU is running at 2.97 percent     This event was generated by the script: ... [82]&lt;br /&gt;002116131 00:07:43 20-05-09 FLEX-C  ALPHA  6400  PATIENT - EMERGENCY&lt;br /&gt;                                                SAME&lt;br /&gt;                                                HER EYE WAS OPERATED ON LAST MONTH AND SHE HAS&lt;br /&gt;                                                EXTREME PAIN NOW&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The message displayed in PDW consists of the pagers cap code (unique address), time, date, protocol, page type, bit rate, and finally the message. The cap code is the unique id set to each pager. All pagers on a certain frequency receive all pages on that frequency, but they only display pages where its cap code matches the code in the messages. I am seeing pages from a local hospital, sports scores, news, tower information transmissions, business nagios server alerts, other miscellaneous data, and of course pager numbers. It’s quite interesting to see how much information is easily received and decoded.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-3253688675736530137?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/3253688675736530137/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2009/05/pocsag-and-flex-pager-reception-and.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/3253688675736530137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/3253688675736530137'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2009/05/pocsag-and-flex-pager-reception-and.html' title='POCSAG and FLEX pager reception and decoding'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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://1.bp.blogspot.com/_T8VFoOnB0ZQ/ShY7HRF_6eI/AAAAAAAAAMM/2Nc0CEMy-Gs/s72-c/IMGP0115.JPG' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-1223829455275365153</id><published>2009-04-13T23:05:00.009-04:00</published><updated>2009-06-24T21:06:51.393-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XBee'/><category scheme='http://www.blogger.com/atom/ns#' term='rocket'/><category scheme='http://www.blogger.com/atom/ns#' term='peoplebacon'/><category scheme='http://www.blogger.com/atom/ns#' term='accelerometer'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><category scheme='http://www.blogger.com/atom/ns#' term='bench'/><title type='text'>Remote GPS tracker + Accelerometer</title><content type='html'>This summer there are a few projects I have planned. One of the first is a model rocket tracking / data-logging  system for some launches I am planning on performing this summer. I recently came across a good supplier of F and G series rocket engines for a very reasonable price. Some of these engines have as long as a 7.8 second burn making them very exciting to see take off.&lt;br /&gt;&lt;br /&gt;The idea of this project is to be able to record all acceleration of the rocket throughout the the entire launch. The tracker will also have a GPS receiver that can log it's maximum altitude as well as track its decent to aid in finding it's landing location in the event of a launch where the rocket landing ends up not being visible. This GPS data will be transmitted through a long range Xbee tranceiver.&lt;br /&gt;&lt;br /&gt;The basis of the performance data is an Analog Devices ADXL accelerometer. These accelerometers are very cheap and very accurate. They are available in different models with varying degrees of g resolution. The model I am using here is the ADXL330, a three axis +- 3g accelerometer.&lt;br /&gt;&lt;br /&gt;The +-3g of resolution is fine for testing, for the actual rocket launch I will be using a +-18g accelerometer to capture launch and decent data.&lt;br /&gt;&lt;br /&gt;The ADXL is a pretty small SMD device, so soldering was a little tricky:&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/SeQE05uAx8I/AAAAAAAAALc/8KxLYXl4czI/s1600-h/CIMG2385.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/SeQE05uAx8I/AAAAAAAAALc/8KxLYXl4czI/s400/CIMG2385.JPG" alt="" id="BLOGGER_PHOTO_ID_5324385966352287682" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The prototype I am making here is a testing base that will be used for debugging and developing the base station receiving software. I envision making a simple and cool app that will control and display all functions of the rocket from launch to landing. The design is based around a PIC18 series microcontroller. Initial performance testing and range testing will be performed by mounting this prototype to a remote controlled truck to gather data.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/SeQE1HyE02I/AAAAAAAAALk/02HPIk_KcaI/s1600-h/CIMG2396.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/SeQE1HyE02I/AAAAAAAAALk/02HPIk_KcaI/s400/CIMG2396.JPG" alt="" id="BLOGGER_PHOTO_ID_5324385970127426402" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The tracker under development on my bench:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/SeQE1EVRiiI/AAAAAAAAALs/kE_sApkTSis/s1600-h/CIMG2403.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/SeQE1EVRiiI/AAAAAAAAALs/kE_sApkTSis/s400/CIMG2403.JPG" alt="" id="BLOGGER_PHOTO_ID_5324385969201318434" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The finished prototype:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/SeQE1Sx37lI/AAAAAAAAAL0/oDvuK1I_wfQ/s1600-h/CIMG2416.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/SeQE1Sx37lI/AAAAAAAAAL0/oDvuK1I_wfQ/s400/CIMG2416.JPG" alt="" id="BLOGGER_PHOTO_ID_5324385973079371346" border="0" /&gt;&lt;/a&gt;Please note that this device is much too big and heavy for use in a rocket. The final version will be made mostly of SMD devices on a PCB I design using Eagle. Lithium Polymer batteries will be used to save weight as well as using a smaller GPS receiver. I need to be able to save every gram of weight possible.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/SeQE1ni48yI/AAAAAAAAAL8/op3tMeOozdo/s1600-h/CIMG2417.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/SeQE1ni48yI/AAAAAAAAAL8/op3tMeOozdo/s400/CIMG2417.JPG" alt="" id="BLOGGER_PHOTO_ID_5324385978653668130" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The device is currently working flawlessly as I have tossed the device around outside my home and been able to capture the data from it. Truck testing will occur this coming week or two, I will be able to display actual data at this time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-1223829455275365153?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/1223829455275365153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2009/04/remote-gps-tracker-accelerometer.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/1223829455275365153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/1223829455275365153'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2009/04/remote-gps-tracker-accelerometer.html' title='Remote GPS tracker + Accelerometer'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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/_T8VFoOnB0ZQ/SeQE05uAx8I/AAAAAAAAALc/8KxLYXl4czI/s72-c/CIMG2385.JPG' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-1056972657329373968</id><published>2009-04-05T10:24:00.007-04:00</published><updated>2009-04-05T10:49:46.438-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XBee'/><category scheme='http://www.blogger.com/atom/ns#' term='MaxStream'/><category scheme='http://www.blogger.com/atom/ns#' term='wireless'/><category scheme='http://www.blogger.com/atom/ns#' term='Digi'/><category scheme='http://www.blogger.com/atom/ns#' term='bench'/><title type='text'>Long Range XBee PRO</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;div style="text-align: left;"&gt;Digi recently released a new series of XBee wireless long range transmitters which I have been very excited to play with. The &lt;a href="http://www.digi.com/products/wireless/point-multipoint/xbee-pro-900.jsp"&gt;XBee-PRO 900 series&lt;/a&gt; has up to a 6 mile range using a high gain antenna! Some other features from the XBee site:&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Fast 156 Kbps RF data rate&lt;/li&gt;&lt;li&gt;Point-to-multipoint networking ideal for low-latency applications&lt;/li&gt;&lt;li&gt;Support for large, dense networks&lt;/li&gt;&lt;li&gt;128-bit AES encryption&lt;/li&gt;&lt;/ul&gt;Jim cam over this past weekend to help me perform some basic ranging tests with these modules to see what type of distance can be achieved in an urban area. The plan was to set up a base station and send messages out to a mobile XBee PRO as a repeater and see how far away we can get without dropping any packets.&lt;br /&gt;&lt;br /&gt;The base station is simply an XBee PRO linked to my bench machine through it's serial port via a MAX232.&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/Sdi_frqaPRI/AAAAAAAAALU/mpk33giu_SU/s1600-h/xbee3.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/Sdi_frqaPRI/AAAAAAAAALU/mpk33giu_SU/s320/xbee3.JPG" alt="" id="BLOGGER_PHOTO_ID_5321213510755695890" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The mobile module is simply an XBee PRO with it's TX and RX lines wired together forming a basic echo repeater. Lithium polymer batteries are being used through a 3.3v regulator. This is simply in basic mode as well, no API mode.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/Sdi_frqPMdI/AAAAAAAAALM/FnT64Junk9A/s1600-h/xbee2.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/Sdi_frqPMdI/AAAAAAAAALM/FnT64Junk9A/s320/xbee2.JPG" alt="" id="BLOGGER_PHOTO_ID_5321213510754972114" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Using Digis' useful X-CTU application for range testing, we were able to get some impressive results.  We were not able to get anywhere near a 6 mile range, but with the fact that we were using only the on board whip antenna on these modules instead of a high gain antenna, it was expected. Our testing environment significantly limited the range as well because of the amount of concrete structures in the area. With all of this we were still able to reach a range of several thousand feet before packet loss. A standard XBee would never reach this range.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/Sdi_fdeNQ1I/AAAAAAAAALE/qeTAlNxinlU/s1600-h/xbee1.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/Sdi_fdeNQ1I/AAAAAAAAALE/qeTAlNxinlU/s320/xbee1.JPG" alt="" id="BLOGGER_PHOTO_ID_5321213506946417490" border="0" /&gt;&lt;/a&gt;Range was very limited to line-of-sight. If there was a building in between the source XBee and repeater XBee, packet loss would occur in a very predictable manner. This was all happening from the source transmitter being on my bench inside my home, so there was already an initial structure blocking it's signal path.&lt;br /&gt;&lt;br /&gt;Our next tests will occur in a more open area which will allow more line-of-sight testing. I am confident that we will reach several miles in this scenario and will report our findings.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-1056972657329373968?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/1056972657329373968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2009/04/long-range-xbee-pro.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/1056972657329373968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/1056972657329373968'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2009/04/long-range-xbee-pro.html' title='Long Range XBee PRO'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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/_T8VFoOnB0ZQ/Sdi_frqaPRI/AAAAAAAAALU/mpk33giu_SU/s72-c/xbee3.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-8381516216755476117</id><published>2009-02-09T23:46:00.010-05:00</published><updated>2009-02-10T00:44:20.190-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ttl'/><category scheme='http://www.blogger.com/atom/ns#' term='model railroad'/><category scheme='http://www.blogger.com/atom/ns#' term='led'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>HO scale train layout signal dispatch panel</title><content type='html'>My dad has a pretty good sized HO scale model train layout that he has been working on for the past year or so. The last time I came to visit I realized that he was in serious need of a signal control panel. A few years ago when he started planning his new layout, I had told him that he needed to upgrade all of his target signals that then used grain of wheat light bulbs to LEDs. Previously, you had to put very small light bulbs in each signal whcih ran on 12 volts. While they have always worked fine, they did have several disadvantages. First, they produced a lot of heat. Often your signal would get very hot just from operating. Second, each target of the signal was limited to a single color ( unless you were able to stick two light bulbs side by side in the same target light ) which was difficult to do and never looked very good. Finally, they were usually very bright, bright enough to illuminate the entire section of track in front of the signal which is very unrealistic.&lt;br /&gt;&lt;br /&gt;A typical target signal you see in the midwest ( pretty much the only style signal you see in Michigan ) is this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/SZEJPdL0tBI/AAAAAAAAAJw/SGAHZEj-C6s/s1600-h/target.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 150px; height: 200px;" src="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/SZEJPdL0tBI/AAAAAAAAAJw/SGAHZEj-C6s/s200/target.jpg" alt="" id="BLOGGER_PHOTO_ID_5301028397528691730" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This signal is typically in a two or three target configuration where each light can produce Red, Yellow, and Green light. To have a convincing signal on a model layout you need to have signals that have the same effect, which is where LEDs come in. A bi-color red / green LED can produce the exact effect needed for this. Power the LED and you get green, reverse the voltage you get red, provide fast alternating current ( faster than the persistance of vision ) and you get yellow.&lt;br /&gt;&lt;br /&gt;My dads model layout has approximately 30 signals on it, so a cool control panel is definitely in order. I have always been all about things with lots of lights and switches. So after my dad upgraded all of his signals to LEDs, I began work on the control panel. First I needed a simple circuit to control the LEDs to provide the three colors necessary from a two-lead LED.  I came up with the following circuit to allow their operation:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/SZELnTGHdTI/AAAAAAAAAJ4/Wz5HdkvszqI/s1600-h/CIMG2345.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/SZELnTGHdTI/AAAAAAAAAJ4/Wz5HdkvszqI/s320/CIMG2345.JPG" alt="" id="BLOGGER_PHOTO_ID_5301031006160516402" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;A 555 timer provides a simple clock at a 50% duty cycle set by the 1K adjustable resistor. The switch on the far right is a single pole double throw toggle switch with a center off. Based on it's poistion of up or down decides on the color of the LED. Up is green, down is red. In the center off position the 555  provides the fast switching current provided by the invertor to the LED producing a yellow color. The exact shade of yellow can be adjusted by changing the duty cycle of the 555 by adjusting the variable resistor. I have a single 555 providing the clock to all my LEDs through this simple circuit. I have a bunch of buffers in line from the clock not shown in the schematic driving each LED. This also allows me an easy upgrade path to a logic based solution in the future where I can have a microcontroller controlling all of the LEDs as well.&lt;br /&gt;&lt;br /&gt;On to the panel assembly. I started by creating a schematic of the layout and creating a template on a 4' by 6" length of  3/8" plexiglass.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/SZENgBM9_uI/AAAAAAAAAKA/bz6NCH70zbE/s1600-h/CIMG2287.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/SZENgBM9_uI/AAAAAAAAAKA/bz6NCH70zbE/s320/CIMG2287.JPG" alt="" id="BLOGGER_PHOTO_ID_5301033080121589474" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Once the layout of the panel was complete it was time to start drilling. Knowing a hand drill would not provide adequate and consistent holes, I bought a small 10" drill press which I have been wanting for a long time anyway. The drilling begins.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/SZEOTQRgHhI/AAAAAAAAAKI/fCGD1fuFt5c/s1600-h/CIMG2291.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/SZEOTQRgHhI/AAAAAAAAAKI/fCGD1fuFt5c/s320/CIMG2291.JPG" alt="" id="BLOGGER_PHOTO_ID_5301033960340463122" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Another thing I found out is local hardware stores do not carry metric drill bits. I had to buy 5mm drill bits online to make sure the LEDs had a perfect fit. After drilling was completed, I peeled off of the protective paper and painted the back of the plexiglass black. It gave the front of the panel a nice look. Then assembly began.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/SZEPEMLtn-I/AAAAAAAAAKQ/ILhh97nHbQM/s1600-h/CIMG2300.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/SZEPEMLtn-I/AAAAAAAAAKQ/ILhh97nHbQM/s320/CIMG2300.JPG" alt="" id="BLOGGER_PHOTO_ID_5301034801056030690" border="0" /&gt;&lt;/a&gt;Once the 62 switches and 62 LEDs are mounted and glued in place the wiring began. I also installed two 4' U channel peices of aluminum on the back of the panel to give it some rigidity and stability. Now time for the wiring. I decided to not use any PCBs when buliding for sake of time saving, but the amount of wiring necessary soon became very regrettable. I did use a perf board for all of the logic driving, but the resistor and diode networks became a bit much.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/SZEQgCQ1vUI/AAAAAAAAAKY/Jv2xhnO0Fj8/s1600-h/CIMG2313.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/SZEQgCQ1vUI/AAAAAAAAAKY/Jv2xhnO0Fj8/s320/CIMG2313.JPG" alt="" id="BLOGGER_PHOTO_ID_5301036378941144386" border="0" /&gt;&lt;/a&gt;The logic portion was much easier.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/SZEQgDJ2U6I/AAAAAAAAAKg/rlCJ0kBc8N4/s1600-h/CIMG2312.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/SZEQgDJ2U6I/AAAAAAAAAKg/rlCJ0kBc8N4/s320/CIMG2312.JPG" alt="" id="BLOGGER_PHOTO_ID_5301036379180258210" border="0" /&gt;&lt;/a&gt;There are still many wires to run from here, but that was finished after this picture was taken. Now the front of the control panel needs to have the layout schematic placed on it. For this I used this vehicle pin striping which is cheap and very easy to work with.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/SZER2FvO_FI/AAAAAAAAAKo/jdG_mFSQdbk/s1600-h/CIMG2333.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/SZER2FvO_FI/AAAAAAAAAKo/jdG_mFSQdbk/s320/CIMG2333.JPG" alt="" id="BLOGGER_PHOTO_ID_5301037857342684242" border="0" /&gt;&lt;/a&gt;And finally the finished product.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/SZER2VGikaI/AAAAAAAAAK4/6mkjFFVzHlo/s1600-h/CIMG2338.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/SZER2VGikaI/AAAAAAAAAK4/6mkjFFVzHlo/s320/CIMG2338.JPG" alt="" id="BLOGGER_PHOTO_ID_5301037861466968482" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;With the lights off.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/SZER2XmqcKI/AAAAAAAAAKw/9P_bCyZ830k/s1600-h/CIMG2327.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/SZER2XmqcKI/AAAAAAAAAKw/9P_bCyZ830k/s320/CIMG2327.JPG" alt="" id="BLOGGER_PHOTO_ID_5301037862138572962" border="0" /&gt;&lt;/a&gt;Mostly red signals shown here with a few greens and yellows. All of these LEDs are the same bi-color device.  The last step is to install the panel in the layout and wire all of the actual signal LEDs in parallel to the LEDs on this control panel. Once installed I will have pictures to show the final result.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-8381516216755476117?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/8381516216755476117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2009/02/ho-scale-train-layout-signal-dispatch.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/8381516216755476117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/8381516216755476117'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2009/02/ho-scale-train-layout-signal-dispatch.html' title='HO scale train layout signal dispatch panel'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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://1.bp.blogspot.com/_T8VFoOnB0ZQ/SZEJPdL0tBI/AAAAAAAAAJw/SGAHZEj-C6s/s72-c/target.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-575423533463659005</id><published>2008-11-17T22:54:00.004-05:00</published><updated>2008-11-17T23:09:29.279-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='microchip'/><category scheme='http://www.blogger.com/atom/ns#' term='pic'/><category scheme='http://www.blogger.com/atom/ns#' term='microcontroller'/><category scheme='http://www.blogger.com/atom/ns#' term='programmer'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><category scheme='http://www.blogger.com/atom/ns#' term='bench'/><title type='text'>New PIC Programmer</title><content type='html'>My new Microchip PIC programmer arrived today. I have been meaning to get a USB powered version for awhile now since my new bench machine only has two serial ports... causing the rs-232 real estate to be rather limited. (plus I can't use my ISA serial cards in machines now that the ISA bus is pretty much obsolete ). Instead of going the expensive option,  I went the cheap Chinese option and ordered a PICkit2 compatible programmer off of eBay. It took about two weeks to arrive directly from Honk Kong, but it's here and it works.&lt;br /&gt;&lt;br /&gt;Of course after opening the package I noticed that it was missing the ZIF sockets. :(&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/SSI9t3QkI_I/AAAAAAAAAHY/vmEqv0dyVsU/s1600-h/CIMG2284.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/SSI9t3QkI_I/AAAAAAAAAHY/vmEqv0dyVsU/s320/CIMG2284.JPG" alt="" id="BLOGGER_PHOTO_ID_5269842372113736690" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Looking back at the auction I see that this was stated in the description in a non-descriptive Chinese kind of way. Luckily the sockets are cheap and I ordered them from a reputable supplier today.&lt;br /&gt;&lt;br /&gt;This will allow me to start using the surplus of samples I have been ordering for free and let me explore the PIC world a little more. I have been spending a lot of time in the AVR ATmega world for the past month or so (most ATmega's don't require a programmer) so it will be cool to compare and contrast the two micro families.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-575423533463659005?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/575423533463659005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2008/11/new-pic-programmer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/575423533463659005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/575423533463659005'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2008/11/new-pic-programmer.html' title='New PIC Programmer'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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://4.bp.blogspot.com/_T8VFoOnB0ZQ/SSI9t3QkI_I/AAAAAAAAAHY/vmEqv0dyVsU/s72-c/CIMG2284.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-438543210885188770</id><published>2008-10-22T22:33:00.008-04:00</published><updated>2008-10-22T23:14:56.853-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='intergraph'/><category scheme='http://www.blogger.com/atom/ns#' term='electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='ttl'/><category scheme='http://www.blogger.com/atom/ns#' term='logic'/><title type='text'>The best electronics find I have ever had: Intergraph Logic Boards</title><content type='html'>I have always had my eye out for surplus electronics and one of the best finds I have ever had was this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/SP_mQNmqIbI/AAAAAAAAAHQ/CJTRM6--rw8/s1600-h/CIMG2196.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/SP_mQNmqIbI/AAAAAAAAAHQ/CJTRM6--rw8/s320/CIMG2196.JPG" alt="" id="BLOGGER_PHOTO_ID_5260176055996129714" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;A local business was throwing away a very old Intergraph computer. This was a very large, old, and massive computer. It consisted of several cabinets of hardware, each containing circuit boards of standard TTL logic. The best part about these boards is the fact that every single chip on each of them is socketed.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/SP_mPlpXrRI/AAAAAAAAAHI/pjcKAkIwyDE/s1600-h/CIMG2198.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/SP_mPlpXrRI/AAAAAAAAAHI/pjcKAkIwyDE/s320/CIMG2198.JPG" alt="" id="BLOGGER_PHOTO_ID_5260176045270084882" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This board in particular which is labeled as a "High Speed Concentrator" has over 550 74S, 74LS, and a few other miscellaneous chips socketed.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/SP_mPTGu_-I/AAAAAAAAAHA/yYtvaEcQm7Q/s1600-h/CIMG2201.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/SP_mPTGu_-I/AAAAAAAAAHA/yYtvaEcQm7Q/s320/CIMG2201.JPG" alt="" id="BLOGGER_PHOTO_ID_5260176040292974562" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I really wish I had more information about this machine. This board labeled as "MPCB191 Bit Slice 2903 16 Bit Processor" has over 300 socketed TTL chips along with Motorola 68000 series processors.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/SP_mO1kSEZI/AAAAAAAAAG4/C0X1tqIQRfU/s1600-h/CIMG2202.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/SP_mO1kSEZI/AAAAAAAAAG4/C0X1tqIQRfU/s320/CIMG2202.JPG" alt="" id="BLOGGER_PHOTO_ID_5260176032363843986" border="0" /&gt;&lt;/a&gt;If anyone has information about what machine this came from, please leave a comment. I am very curious about it. My only regret is that I didn't grab more boards out of the cabinet...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-438543210885188770?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/438543210885188770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2008/10/best-electronics-find-i-have-ever-had.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/438543210885188770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/438543210885188770'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2008/10/best-electronics-find-i-have-ever-had.html' title='The best electronics find I have ever had: Intergraph Logic Boards'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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://4.bp.blogspot.com/_T8VFoOnB0ZQ/SP_mQNmqIbI/AAAAAAAAAHQ/CJTRM6--rw8/s72-c/CIMG2196.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-2172737019268058213</id><published>2008-10-12T23:06:00.006-04:00</published><updated>2008-10-16T15:20:47.839-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='tektronix'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><category scheme='http://www.blogger.com/atom/ns#' term='oscilloscope'/><category scheme='http://www.blogger.com/atom/ns#' term='bench'/><title type='text'>Tektronix TDS-420 oscilloscope external video display</title><content type='html'>A nice feature of the Tektronix TDS series of digital storage oscilloscopes is their external video display capability. Most (if not all) Tektronix scopes in the TDS series have an external video output (including my TDS-420) for hooking up an external display.&lt;br /&gt;&lt;br /&gt;The internal display is very nice:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/SPK_VNRzxXI/AAAAAAAAAGQ/1Zz3VnfhaW4/s1600-h/CIMG2183.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/SPK_VNRzxXI/AAAAAAAAAGQ/1Zz3VnfhaW4/s400/CIMG2183.JPG" alt="" id="BLOGGER_PHOTO_ID_5256474086157305202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Sometimes it would be nice to have a larger display at my bench level while working...&lt;br /&gt;&lt;br /&gt;Unfortunately this external video output is in a 9-pin form, unlike the standard DB15-pin connector we are familiar with on our VGA monitors. Because Tektronix labeled the connector as 'VGA compatible', I assumed it held to the VGA standard, and would be compatible with most modern multisync monitors.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/SPK_VFV_h7I/AAAAAAAAAGY/lKl-FBVaY5M/s1600-h/CIMG2182.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/SPK_VFV_h7I/AAAAAAAAAGY/lKl-FBVaY5M/s400/CIMG2182.JPG" alt="" id="BLOGGER_PHOTO_ID_5256474084027369394" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;To hook up an external display to your TDS series oscilloscope, you must perform the following. Obtain a standard 15-pin VGA connector cable and remove one end, replacing it with a standard 9-pin connector (preferably a metal connector to help with shielding). Wire the new 9-pin connector to the VGA cable as listed here. The 15-pin connector is on the left with pin assignment to the 9 pin on the right:&lt;br /&gt;&lt;br /&gt;VGA DB15-S Female DB9 Female&lt;br /&gt;15-pin,  9-pin&lt;br /&gt;1,            1             Red&lt;br /&gt;2,            2             Green&lt;br /&gt;3,            3             Blue&lt;br /&gt;4,            -             Monitor ID bit 2&lt;br /&gt;5,            -             N/C&lt;br /&gt;6,       6             GND&lt;br /&gt;7,            7             GND&lt;br /&gt;8,             8             GND&lt;br /&gt;9,             -             N/C&lt;br /&gt;10,          -             GND&lt;br /&gt;11,          -             Monitor ID bit 0&lt;br /&gt;12,          -             Minitor ID bit 1&lt;br /&gt;13,          4            Horizontal Sync&lt;br /&gt;14,          5             Vertical Sync&lt;br /&gt;15,          -       N/C&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/SPK_VegbAsI/AAAAAAAAAGg/IJ8Cae233zs/s1600-h/CIMG2181.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/SPK_VegbAsI/AAAAAAAAAGg/IJ8Cae233zs/s400/CIMG2181.JPG" alt="" id="BLOGGER_PHOTO_ID_5256474090781999810" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I tied pin 6 on my 15 pin connector to all three grounds (6,7,8) on the 9 pin connector. After assembly of the connector, I gave it a try with success!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/SPK_V40-n0I/AAAAAAAAAGo/zEb1pW5yOfM/s1600-h/CIMG2193.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/SPK_V40-n0I/AAAAAAAAAGo/zEb1pW5yOfM/s400/CIMG2193.JPG" alt="" id="BLOGGER_PHOTO_ID_5256474097847541570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;One of my Samsung Syncmaster 151v lcds on my bench sync'd up perfectly along with several other lcd monitors I have around. With the output being 640x480 there is plenty of resolution on the display giving the external monitor a very nice picture.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-2172737019268058213?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/2172737019268058213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2008/10/tektronix-tds-420-oscilloscope-external.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/2172737019268058213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/2172737019268058213'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2008/10/tektronix-tds-420-oscilloscope-external.html' title='Tektronix TDS-420 oscilloscope external video display'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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://4.bp.blogspot.com/_T8VFoOnB0ZQ/SPK_VNRzxXI/AAAAAAAAAGQ/1Zz3VnfhaW4/s72-c/CIMG2183.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-2593812660513674679</id><published>2008-09-12T19:34:00.004-04:00</published><updated>2008-09-22T23:56:46.340-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='logic'/><category scheme='http://www.blogger.com/atom/ns#' term='datasheets. project'/><title type='text'>Freedatasheets.com :: my semiconductor datasheet library</title><content type='html'>So I have been frustrated lately. While working on a project... I will need to look up a datasheet for component n. I commonly turn to google with a search such as '[part number] datasheet' with sometimes good and sometimes bad results. I usually end up at one of many bad datasheet archive websites that will go unnamed. By bad, I refer to sites that have broken links, incorrect datasheets for the part described, mazes of links that I must click through, annoying pop-ups, and primarily wasted time.&lt;br /&gt;&lt;br /&gt;Because of my frustrations, last weekend I threw together a site for my own collection of datasheets. It is now available for everyone at &lt;a href="http://freedatasheets.com/"&gt;freedatasheets.com&lt;/a&gt; . I have done my best to collect datasheets from large semiconductor manufacturers (STMicroelectronics, National Semiconductor, Atmel, Freescale Semiconductor, Microchip, Xilinx, Maxim, Fairchild Semiconductor to name a few) and collected ALL of there datasheets into one source.  I currently have about 30,000 datasheets organized, in a database, and fully text searchable for your component database needs. I plan to keep adding to this database, their are still many component manufacturers whose datasheets I would like to obtain.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-2593812660513674679?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/2593812660513674679/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2008/09/freedatasheetscom-my-semiconductor.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/2593812660513674679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/2593812660513674679'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2008/09/freedatasheetscom-my-semiconductor.html' title='Freedatasheets.com :: my semiconductor datasheet library'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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-2131958746786008795.post-1427772885016010892</id><published>2008-07-13T17:59:00.007-04:00</published><updated>2008-07-14T21:53:44.118-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='plants'/><category scheme='http://www.blogger.com/atom/ns#' term='rabbit semiconductor'/><category scheme='http://www.blogger.com/atom/ns#' term='water'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><category scheme='http://www.blogger.com/atom/ns#' term='bench'/><title type='text'>Plant watering system</title><content type='html'>For the past few years I have been growing various cayenne and habanero peppers in planters off of my condos balcony. The only issue with this besides lack of space has been watering. Previously I have been simply filling several large containers with water and carrying it out to the plants. This is fine in the beginning of the season, but by late July and August when the plants are large and consume much more water, this has been a chore. Multiple watering trips are necessary as well with watering them both in the morning and night. For a solution, I built a simple microcontroller based system that I could automatically water the plants on a set cycle. It also has a simple rain detector that preempts any further watering for a set amount of time after it has rained.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_T8VFoOnB0ZQ/SHv1TTEKneI/AAAAAAAAAF4/R8Wrn72H3io/s1600-h/water3.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_T8VFoOnB0ZQ/SHv1TTEKneI/AAAAAAAAAF4/R8Wrn72H3io/s400/water3.jpg" alt="" id="BLOGGER_PHOTO_ID_5223037904750288354" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I designed the system around a Rabbit RCM3400 core 8-bit microcontroller.  Realistically this microcontroller is rather overpowered for this system, ( a pic would have worked just fine)  but I wanted to begin playing with the Rabbit's cooperative multitasking functionality... and I have a few of these micros laying around. There are a couple neat features of this micro as well such as the real-time clock and built in ADC's. For functionality, the rabbit drives a serial LCD for displaying current information on the system and has 5 microswitches along with a rain sensor for input. The system drives a latching relay which then turns on a 12v solenoid based electronic valve to start the water flow to the plants.&lt;br /&gt;&lt;br /&gt;This is final stage of prototyping. It has been working fine for the past five days so I am beginning to build it into an enclosure this week.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_T8VFoOnB0ZQ/SHv1S1YMk_I/AAAAAAAAAFo/iFJEt2C3fp8/s1600-h/water1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_T8VFoOnB0ZQ/SHv1S1YMk_I/AAAAAAAAAFo/iFJEt2C3fp8/s400/water1.jpg" alt="" id="BLOGGER_PHOTO_ID_5223037896781239282" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The system has two adjustable parameters, frequency of the watering cycle and duration of the actual watering.  The five microswitches will be placed under the lcd to allow the lcd to show the functionality of the buttons. I plan on adding a more robust menu setting that will allow control for multiple plants in the future. The left two adjust the watering frequency in hours, the next two can adjust the watering duration in seconds. For my small plants, 20 seconds or so of watering is enough to saturate the soil. The final button on the right is a forced watering function that allows me to provide a 15 second burst of water without resetting the current counters.&lt;br /&gt;&lt;br /&gt;Once timing parameters are set, the micro begins counting down to the set watering time. The display shows how many minutes are remaining to the watering cycle. When the counter hits zero, one of the outputs fires for 250ms, enough to engage a latching relay which in turn opens the solenoid valve to start the water flow.  Once the set watering duration is counted down to zero, the relay is fired for another 250ms to disengage it and cut power to the solenoid valve stopping the water flow. The process then starts over.&lt;br /&gt;&lt;br /&gt;The rain detector is just two thin strips of aluminum foil spaced closely together on my balcony railing. When rain falls and closes the connection, a pin on the micro goes high letting it know rain is detected. The watering process is then put on hold for a set amount of time until watering begins again.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_T8VFoOnB0ZQ/SHv1TK5sAWI/AAAAAAAAAFw/5uN5BiPMums/s1600-h/water2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_T8VFoOnB0ZQ/SHv1TK5sAWI/AAAAAAAAAFw/5uN5BiPMums/s400/water2.jpg" alt="" id="BLOGGER_PHOTO_ID_5223037902558855522" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Now for a water source, I tapped into the cold water supply line underneath my sink. This is my only real option as I don't have any access to outside building watering on the top floor. The water is split with a tee fitting and ran to a solenoid valve. From here I ran a line out to my plants. Through a series of different tubing lengths and tees I was able to get an even watering distrubution among all three plants. The actual water is supplied to the plants through a polypropylene tube with a series of holes drilled through them.&lt;br /&gt;&lt;br /&gt;The system works quite well.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_T8VFoOnB0ZQ/SHv1TogtjGI/AAAAAAAAAGA/uxEigtB6aNY/s1600-h/water4.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_T8VFoOnB0ZQ/SHv1TogtjGI/AAAAAAAAAGA/uxEigtB6aNY/s400/water4.jpg" alt="" id="BLOGGER_PHOTO_ID_5223037910507162722" border="0" /&gt;&lt;/a&gt;Future upgrades will add control for multiple plants, and a better timing interface so I can set more precise watering cycles. If I want to go all out, I will enable the rabbit's ethernet interface to pull down real weather data automatically and have the micro set the watering cycles based on that day's conditions...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-1427772885016010892?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/1427772885016010892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2008/07/plant-watering-system.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/1427772885016010892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/1427772885016010892'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2008/07/plant-watering-system.html' title='Plant watering system'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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://bp0.blogger.com/_T8VFoOnB0ZQ/SHv1TTEKneI/AAAAAAAAAF4/R8Wrn72H3io/s72-c/water3.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-5345976176020637522</id><published>2008-06-17T22:11:00.004-04:00</published><updated>2008-06-18T00:35:09.522-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='gps'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><category scheme='http://www.blogger.com/atom/ns#' term='bench'/><title type='text'>Homemade GPS Antenna</title><content type='html'>I needed a very small, lightweight passive GPS antenna for an ET-301 USGlobalSat GPS module, but didn't have anything to use on-hand. I started some research to make one but information on this topic is very limited... so I figured a good option would be to make my own. As far as passive antennas go, there doesn't look to be very much too them. I looked at lots of pictures of antennas online and reverse engineered them as best as I could. The result was an antenna made out of a thin piece of metal that is 24mm x24mm located 2mm over a 30mm x 30mm ground plane.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/SFiOHXwbMpI/AAAAAAAAAFY/sa8vTy-WAMk/s1600-h/gps_ant.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/SFiOHXwbMpI/AAAAAAAAAFY/sa8vTy-WAMk/s320/gps_ant.jpg" alt="" id="BLOGGER_PHOTO_ID_5213072825968702098" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Now i'm not an RF engineer, and basic antenna math fails me on this antenna design (1/4 wavelength at a gps frequency on the L1 band of ~1.5Ghz would be 50mm) which is much larger than the antenna I designed mine after... but upon power up I had GPS lock.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/SFiOHi0QkjI/AAAAAAAAAFg/j02MP3qbbTE/s1600-h/gps_out.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/SFiOHi0QkjI/AAAAAAAAAFg/j02MP3qbbTE/s320/gps_out.jpg" alt="" id="BLOGGER_PHOTO_ID_5213072828937572914" border="0" /&gt;&lt;/a&gt;So it works... which really shows how sensitive modern GPS receivers are. This is really amazing since this module is sitting inside, on my bench, located about 6 feet away from the nearest window... and I made the antenna by copying antenna designs I found online. The NMEA $GPGGA string shows that there are only 4 satellites in view (which is expected since I am indoors) so I am really looking forward to testing it outside.&lt;br /&gt;&lt;br /&gt;At some point I hope to find a good resource for GPS antenna designs to really make a proper antenna the right way, but for now it works... and I am still impressed by the sensitivity of this receiver.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-5345976176020637522?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/5345976176020637522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2008/06/homemade-gps-antenna.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/5345976176020637522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/5345976176020637522'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2008/06/homemade-gps-antenna.html' title='Homemade GPS Antenna'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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/_T8VFoOnB0ZQ/SFiOHXwbMpI/AAAAAAAAAFY/sa8vTy-WAMk/s72-c/gps_ant.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-2700727147026818973</id><published>2008-06-10T00:15:00.003-04:00</published><updated>2008-06-10T00:40:05.342-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='rabbit semiconductor'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><category scheme='http://www.blogger.com/atom/ns#' term='hack'/><category scheme='http://www.blogger.com/atom/ns#' term='bench'/><title type='text'>Cooperative multitasking</title><content type='html'>Sitting down this past weekend for a large amount of time to begin a new project (details will be provided in the next post)... I discovered an amazing feature with Rabbit Semiconductors microcontrollers. Cooperative multitasking. I have actually always known about the multitasking capability of these processors, but never actually used them in any real form.&lt;br /&gt;&lt;br /&gt;Cooperative multitasking unlike preemptive multitasking has many benefits. For one, variables can be easily shared among  different tasks. This simplifies the necessary code needed immensely as you don't need to take any necessary precautions while sharing variables in a typical interrupt driven preemptive environment. Cooperative multitasking also allows many tasks to be run at once (as they only appear to... time slices are actually given to each function running just like in any modern multitasking OS). The microcontrollers also take advantage of the natural delays that occur in most code execution to provide cpu cycles to other tasks.&lt;br /&gt;&lt;br /&gt;Playing with this multitasking environment I was able to update information on an LCD via an array of switches in real-time, without taking any time away from any other running timers or processes. It essentially allows me to run several tasks at the same time while providing data input without the necessity of any type of interrupt. This is extremely powerful.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/SE4A3-wXeCI/AAAAAAAAAFQ/FSHEKYPwyDs/s1600-h/CIMG1785.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/SE4A3-wXeCI/AAAAAAAAAFQ/FSHEKYPwyDs/s320/CIMG1785.jpg" alt="" id="BLOGGER_PHOTO_ID_5210102780652910626" border="0" /&gt;&lt;/a&gt;I have nearly finished the code for the current project tonight, I hope to have the project finished by the end of the week as an update to what this project is will be given upon completion.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-2700727147026818973?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/2700727147026818973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2008/06/cooperative-multitasking.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/2700727147026818973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/2700727147026818973'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2008/06/cooperative-multitasking.html' title='Cooperative multitasking'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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/_T8VFoOnB0ZQ/SE4A3-wXeCI/AAAAAAAAAFQ/FSHEKYPwyDs/s72-c/CIMG1785.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-1894058345012995024</id><published>2008-06-01T21:09:00.004-04:00</published><updated>2008-06-01T21:12:45.548-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='scope'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><category scheme='http://www.blogger.com/atom/ns#' term='bench'/><title type='text'>Clean Bench :)</title><content type='html'>There hasn't been an update for awhile, but I have some projects in the works. This weekend I finally had time to clean my bench so there will be some updates soon...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/SENIkPWlPcI/AAAAAAAAAFI/-xxWVs6DMec/s1600-h/clean_bench.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/SENIkPWlPcI/AAAAAAAAAFI/-xxWVs6DMec/s320/clean_bench.jpg" alt="" id="BLOGGER_PHOTO_ID_5207085381604163010" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-1894058345012995024?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/1894058345012995024/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2008/06/clean-bench.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/1894058345012995024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/1894058345012995024'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2008/06/clean-bench.html' title='Clean Bench :)'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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/_T8VFoOnB0ZQ/SENIkPWlPcI/AAAAAAAAAFI/-xxWVs6DMec/s72-c/clean_bench.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-7725639114154466318</id><published>2008-04-16T22:00:00.004-04:00</published><updated>2008-04-16T23:58:40.731-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='extreme networks'/><category scheme='http://www.blogger.com/atom/ns#' term='cisco'/><category scheme='http://www.blogger.com/atom/ns#' term='sun microsystems'/><category scheme='http://www.blogger.com/atom/ns#' term='dns'/><category scheme='http://www.blogger.com/atom/ns#' term='network closet'/><category scheme='http://www.blogger.com/atom/ns#' term='bind'/><title type='text'>The Network Part II</title><content type='html'>Update on my network...&lt;br /&gt;&lt;br /&gt;I replaced the unreliable Dell switch with another Extreme Networks switch... this time a Summit 24e3. It has a full layer 3 license and is now configured as my default gateway. I uplinked my Summit 24e2 via a link aggregation trunk of 4 fast ethernet links for a total aggregate bandwidth capacity of 800Mbit (wire speed).&lt;br /&gt;&lt;br /&gt;A Cisco 2514 is still my primary route to the internet and a Cicso 2621XM handles my VPN. Also newly added is a Sun Netra-T1 with a 500Mhz Sparc running Solaris 10 and  Bind 9.4.2 as my primary DNS server. I just built this machine this past week to replace one of my SparcStation 5's (Still one of my favorite Sun boxes :)   )&lt;br /&gt;&lt;br /&gt;I still need to make some improvements, but it is MUCH better than it was before.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/SAav4SRR-hI/AAAAAAAAAFA/ULR_S4pg6mU/s1600-h/CIMG1744.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/SAav4SRR-hI/AAAAAAAAAFA/ULR_S4pg6mU/s320/CIMG1744.JPG" alt="" id="BLOGGER_PHOTO_ID_5190029002102929938" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-7725639114154466318?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/7725639114154466318/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2008/04/network-part-ii.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/7725639114154466318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/7725639114154466318'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2008/04/network-part-ii.html' title='The Network Part II'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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/_T8VFoOnB0ZQ/SAav4SRR-hI/AAAAAAAAAFA/ULR_S4pg6mU/s72-c/CIMG1744.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-2511675008271218919</id><published>2008-04-07T19:22:00.006-04:00</published><updated>2008-04-07T20:10:13.218-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='electronics'/><category scheme='http://www.blogger.com/atom/ns#' term='network closet'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><category scheme='http://www.blogger.com/atom/ns#' term='logic'/><category scheme='http://www.blogger.com/atom/ns#' term='hack'/><title type='text'>Hardware password sniffing and hacking</title><content type='html'>I recently came across a really cool piece of gear... a rack mounted SNMP network interface unit. This device is essentially a interface that allows you to monitor and control external devices of your choice via SNMP.&lt;br /&gt;&lt;br /&gt;There is one issue... I don't have a password to console into it to configure it. Finding a default login password or a reset procedure for this device has been an impossible task. Marconi (the maker of this device) has since been dissolved into several companies making any documentation out there extremely scarce. The only things I have found are links to a manual that point to websites no longer in existence, and very vague product feature descriptions. (if anyone out there does happen to have a manual for this device, please let me know!)&lt;br /&gt;&lt;br /&gt;I really want to get this device working, it is extremely flexible and there really isn't anything else on the market that can inexpensively and easily do the same thing.&lt;br /&gt;&lt;br /&gt;So here is my idea. Since breaking in through the console port doesn't look feasible, and there is no hard manual reset to restore it's factory defaults, i'm not left with very many options. Opening it up, I discovered that the device contains a 16bit flash eeprom... all configuration information is stored on this device as it's the only writable memory on it. At some point while the embedded arm processor is loading it's basic embedded os/program from prom, it has to load this saved configuration from the eeprom. So I will simply sniff the data coming off of it's data bus with a logic analyzer, convert the two bytes of info into ascii and hope that everything is in clear ascii text. I can't imagine that the data on this device would be encrypted between the arm processor and flash... so this data should be easily retrievable.&lt;br /&gt;&lt;br /&gt;Step 1: I obtained the data sheet for the AMD 16bit eeprom and wired the 16 pins off of it's data bus with interfacing leads:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/R_qwjXU1esI/AAAAAAAAAEg/yUMmmSQcPP4/s1600-h/CIMG1721.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/R_qwjXU1esI/AAAAAAAAAEg/yUMmmSQcPP4/s320/CIMG1721.JPG" alt="" id="BLOGGER_PHOTO_ID_5186652042473863874" border="0" /&gt;&lt;/a&gt;The remaining leads were soldered to points on the bottom of the board.&lt;br /&gt;&lt;br /&gt;Step 2: Wire the 16bit data bus to my logic analyzer.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/R_qwkHU1euI/AAAAAAAAAEw/imD2yrtRXfA/s1600-h/CIMG1730.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/R_qwkHU1euI/AAAAAAAAAEw/imD2yrtRXfA/s320/CIMG1730.JPG" alt="" id="BLOGGER_PHOTO_ID_5186652055358765794" border="0" /&gt;&lt;/a&gt;Step 3: Power on the device and capture the data!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/R_qwjnU1etI/AAAAAAAAAEo/QtTFMUfma0o/s1600-h/CIMG1726.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/R_qwjnU1etI/AAAAAAAAAEo/QtTFMUfma0o/s320/CIMG1726.JPG" alt="" id="BLOGGER_PHOTO_ID_5186652046768831186" border="0" /&gt;&lt;/a&gt;The issue I am having now is understanding the data. I have no idea how the arm processor is writing data to memory and what type of endianness it is using. ( it doesn't help that this arm processor manufacturer is no longer in business either  :(   ).  Since arm processors can be configured as big-endian or little-endian I will have to decode the data both ways until I see some legible data. My logic analyzer can take the data seen above and convert it into ascii text, displayable on the screen. It's a slow process,  but i'm making progress.&lt;br /&gt;&lt;br /&gt;I haven't seen the password yet, but I'm still confident it's in there. There is just a lot of data to sniff through... and a large mess on my bench.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/R_qwkHU1evI/AAAAAAAAAE4/ySZqslSdcEA/s1600-h/CIMG1734.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/R_qwkHU1evI/AAAAAAAAAE4/ySZqslSdcEA/s320/CIMG1734.JPG" alt="" id="BLOGGER_PHOTO_ID_5186652055358765810" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-2511675008271218919?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/2511675008271218919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2008/04/hardware-password-sniffing-and-hacking.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/2511675008271218919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/2511675008271218919'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2008/04/hardware-password-sniffing-and-hacking.html' title='Hardware password sniffing and hacking'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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/_T8VFoOnB0ZQ/R_qwjXU1esI/AAAAAAAAAEg/yUMmmSQcPP4/s72-c/CIMG1721.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-5183459265625462464</id><published>2008-02-26T15:16:00.006-05:00</published><updated>2008-02-28T12:43:06.794-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scanner'/><category scheme='http://www.blogger.com/atom/ns#' term='radio'/><category scheme='http://www.blogger.com/atom/ns#' term='satellite'/><category scheme='http://www.blogger.com/atom/ns#' term='space'/><category scheme='http://www.blogger.com/atom/ns#' term='weather'/><title type='text'>Listening to satellites</title><content type='html'>Satellites are cool...&lt;br /&gt;&lt;br /&gt;I have always wanted to pull real-time images off of weather satellites. I read articles of people doing this years ago, but never had the necessary equipment necessary to do it.  Receiving these images is actually pretty easy... I had some horrible looking images within a few hours of setting up my system. So now that I have the necessary equipment and with it being February along with the fact that I'm getting really sick of winter, it's a good time to finally do this.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;First received image: (very noisy since my antenna sucks.)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/R8WnPyZ6dlI/AAAAAAAAADo/QXlLaGUga9o/s1600-h/noaa1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/R8WnPyZ6dlI/AAAAAAAAADo/QXlLaGUga9o/s400/noaa1.png" alt="" id="BLOGGER_PHOTO_ID_5171723636775220818" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The United States currently has three transmitting operational polar orbiting weather satellites, NOAA-15, NOAA-17, and NOAA-18. These satellites travel in a sun-synchronous orbit around the earth at an altitude of about 850km. Because they are moving so fast making revolutions of the earth approximately every 90 minutes, each one passes over regions of the US multiple times each day.&lt;br /&gt;&lt;br /&gt;Now what's interesting is these satellites are transmitting their imagery of the earth back to us on two separate frequencies. The first is a high resolution digital signal that transmits around 1.7Ghz, but the second is a lower resolution modulated signal that is around 137Mhz! This system is called APT (automatic picture transmission) and is not encrypted. The satellites are constantly transmitting this APT signal at about two lines of imaging per second and if you are able to receive this signal, you can view real-time weather satellite imaging.&lt;br /&gt;&lt;br /&gt;Because of the speed of the satellites, you only have about a 12 minute window to capture the satellite imagery as it flies by overhead. This is plenty of time to get some good images.&lt;br /&gt;&lt;br /&gt;The equipment:&lt;br /&gt;&lt;br /&gt;The only equipment you need to receive these signals is a good scanner/receiver with wide bandwidth, a good antenna for 137Mhz, and a computer/software that can decode APT data.&lt;br /&gt;&lt;br /&gt;Most consumer scanners / receivers on the market have two problems. First, they have the 137Mhz spectrum blocked so you can't receive it, and second they don't have a wide enough bandwidth at the receiving frequency to pull in all of the information. The receiver I'm using is a Kenwood RZ-1, which is sufficient for this task.&lt;br /&gt;&lt;br /&gt;I have been using two pieces of software, Wxtrac and WxtoImg. Both work and are freeware. WxtoImg is definitely more powerful... but to unlock all of it's features you have to pay for licensing. JTrack is a powerful satellite tracking tool that is available to use free from NASA that I use to track passing satellites.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;My results:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/R8WnQSZ6dmI/AAAAAAAAADw/KkVd_3Q0UA0/s1600-h/noaa2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/R8WnQSZ6dmI/AAAAAAAAADw/KkVd_3Q0UA0/s400/noaa2.jpg" alt="" id="BLOGGER_PHOTO_ID_5171723645365155426" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The above image is very low quality  ( again from an inadequate antenna) but it does show the entire signal received. The left portion of the images in infrared data, while the right is visible data. The bending of the image is Doppler shift caused by the speed of the satellite moving across the sky.  Once I receive a stronger signal, the software will compensate and correct this. The map of north america is applied by the software, it uses the known keplers of each satellite to keep track of the satellites exact location.&lt;br /&gt;&lt;br /&gt;Here is another pass. I really need an antenna...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/R8WnQiZ6dnI/AAAAAAAAAD4/FoebS9wQZE0/s1600-h/noaa3.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/R8WnQiZ6dnI/AAAAAAAAAD4/FoebS9wQZE0/s400/noaa3.jpg" alt="" id="BLOGGER_PHOTO_ID_5171723649660122738" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Improvements to make:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;The antenna! I need a good antenna with a center frequency at 137.000Mhz. There are a lot of good designs out there, the &lt;/span&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.dxzone.com/cgi-bin/dir/jump2.cgi?ID=13496"&gt;quadrafilar&lt;/a&gt; looks to be the most popular, but also somewhat difficult to make. I will have to do more search into the best antenna...&lt;br /&gt;&lt;br /&gt;The winter months are also the worst time to be receiving this satellite imagery. The low contrast from the clouds and snow covered ground both being a nice bright white color combined with the low amount of sunlight we receive this time of year makes decoding image data from signals that already have a very high signal to noise ratio extremely difficult.&lt;br /&gt;&lt;br /&gt;I'm really hoping to get some good images soon.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-5183459265625462464?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/5183459265625462464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2008/02/listening-to-satellites.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/5183459265625462464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/5183459265625462464'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2008/02/listening-to-satellites.html' title='Listening to satellites'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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://1.bp.blogspot.com/_T8VFoOnB0ZQ/R8WnPyZ6dlI/AAAAAAAAADo/QXlLaGUga9o/s72-c/noaa1.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-8530437269142006791</id><published>2008-02-07T01:06:00.000-05:00</published><updated>2008-02-07T01:18:12.300-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scope'/><category scheme='http://www.blogger.com/atom/ns#' term='preamp'/><category scheme='http://www.blogger.com/atom/ns#' term='tube amp'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>Triode preamp : Part 2</title><content type='html'>As promised, here is the current schematic for my tube preamp:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/R6qgU7tbCoI/AAAAAAAAAC4/g-t66IrK2ss/s1600-h/preamp_schematic.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/R6qgU7tbCoI/AAAAAAAAAC4/g-t66IrK2ss/s400/preamp_schematic.jpg" alt="" id="BLOGGER_PHOTO_ID_5164116204219730562" border="0" /&gt;&lt;/a&gt;I wrote an (almost) legible version. I'm still making some component changes, so this one isn't completely accurate... but very close. This drawing is for a single channel of course, for stereo operation you must duplicate the design. (Power supply can be shared among both channels).&lt;br /&gt;I also resolved the issue with the lower half of the signal being 'squashed' before the top... I still have a lot to read about tube biasing ;)  .&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/R6qgVLtbCpI/AAAAAAAAADA/P900Uax6gXA/s1600-h/preamp_output3.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/R6qgVLtbCpI/AAAAAAAAADA/P900Uax6gXA/s400/preamp_output3.jpg" alt="" id="BLOGGER_PHOTO_ID_5164116208514697874" border="0" /&gt;&lt;/a&gt;The current output of this design (as seen above) has a fairly constant output across it's frequency spectrum from 20Khz to 20 Hz, so I am pretty happy about that. A 1.5v input gives a consistent 1.5v output. I'm very close to finalizing my first design...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-8530437269142006791?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/8530437269142006791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2008/02/triode-preamp-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/8530437269142006791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/8530437269142006791'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2008/02/triode-preamp-part-2.html' title='Triode preamp : Part 2'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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/_T8VFoOnB0ZQ/R6qgU7tbCoI/AAAAAAAAAC4/g-t66IrK2ss/s72-c/preamp_schematic.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-4377540651006182800</id><published>2008-02-03T12:04:00.000-05:00</published><updated>2008-02-04T00:10:46.583-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='preamp'/><category scheme='http://www.blogger.com/atom/ns#' term='tube amp'/><category scheme='http://www.blogger.com/atom/ns#' term='audio'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>Triode preamp : part 1</title><content type='html'>My recent purchase of my Harmon Kardon A300 amp has created a serious fascination with vacuum tubes. The sound of this amp is so good and the electronics behind it are so simple. I was able to find the schematic to my amp online, which was very important when I began replacing the caps in it... the labeling on them wasn't the best and it was hard to make out the values on some of them. Looking at the schematic, this amp was so simple! If you took out the electronics necessary for the turntable preamp, and removed unnecessary features such as presence, stereo reverse, and the bass and treble controls (which I always leave flat anyway), there are only a couple dozen components remaining per channel.&lt;br /&gt;&lt;br /&gt;I decided I had to start designing my own amp. A few years ago I was fed up with the cheap 1-bit  D/A converters found in most CD players and wanted to make my own with nice Burr-Brown 16BIT DACs. I would finish the output stage with a nice tube preamp. Of course I never built it, so I was due. I decided to make a simple preamp with a basic triode.&lt;br /&gt;&lt;br /&gt;I first needed some tubes. eBay of course would be my source. The most common triodes such as ones in the 12**7 family are expensive! 12ax7s' go for some serious money, mostly because almost every vintage amp out there uses them and the sources of new old stock 12ax7s' is disappearing. The Chinese are making tubes again, but apparently they sound like ass. My solution is to buy large lots of tubes on eBay for cheap and hope for the best. Besides, there are tons of other triode tubes out there, others will be suited just fine for my purposes.&lt;br /&gt;&lt;br /&gt;So several boxes of tubes showed up at my door about a week later showing why drinking a bottle of wine while eBaying always leads to suprises. The good news is everything I bought was only $20 and I had about 150 tubes to work with. In this lot I found a bunch of NOS 5963 triodes. Perfect.&lt;br /&gt;&lt;br /&gt;My first design is crude, quickly made, only a single mono channel, but it works!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/R6YLSLtbClI/AAAAAAAAACg/2QXFyZo2qEk/s1600-h/preamp_v1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/R6YLSLtbClI/AAAAAAAAACg/2QXFyZo2qEk/s400/preamp_v1.jpg" alt="" id="BLOGGER_PHOTO_ID_5162826429835709010" border="0" /&gt;&lt;/a&gt;Yes, it's built on a piece of pine (clear pine that is!). Remember, I already admitted it was crude...&lt;br /&gt;&lt;br /&gt;It's totally simple, there are only about 15 passive components. Ill have to upload the schematic once I have a legible version of it that is finalized. I made some component value changes during testing for level adjustments. Here is what the input(top trace) and output(bottom trace) looks like on my scope:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/R6YLSLtbCmI/AAAAAAAAACo/nZ5v1haq9Do/s1600-h/preamp_output.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/R6YLSLtbCmI/AAAAAAAAACo/nZ5v1haq9Do/s400/preamp_output.jpg" alt="" id="BLOGGER_PHOTO_ID_5162826429835709026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;There is some noise in the waveforms, but ignore this as it is from my signal generator which is  garbage. The left traces show a 1v peak to peak input and the output of the preamp, which looks very clean... and inverted. The right traces show what happens when the input is increased to 2 volts peak to peak, which drives the tube a little harder. The bottom trace shows the output result which is clipped, or in the case of tubes, more compressed or squashed. This is one of the most interesting properties of tubes. When their headroom is reached, they don't have a hard 'clip' like a transistor, it is a more 'squashed' effect on the waveform, which creates a more pleasing distortion.&lt;br /&gt;&lt;br /&gt;Here is another view showing the effect on my scope with an X-Y plot:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/R6YLSrtbCnI/AAAAAAAAACw/c-mW7ektyg0/s1600-h/preamp_output2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/R6YLSrtbCnI/AAAAAAAAACw/c-mW7ektyg0/s400/preamp_output2.jpg" alt="" id="BLOGGER_PHOTO_ID_5162826438425643634" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I had to turn the scope illumination on to give my camera something to focus on, but you can see the squashed waveform on the bottom right which has the soft curves instead of a hard flat break if this was a transistor clipping.&lt;br /&gt;&lt;br /&gt;I still have a lot to play with the circuit, I want to figure out why the bottom of the waveform is squashed a little more than the top.  I'm only running the tube plates at about 60V, instead of the usual 120v. (This was a limitation of the transformer I was using for this circuit.) Overall i'm pretty impressed with the sound of it, especially with the complete design and build only taking about 5 hours. Listening to music through it definitely sounded good, and playing my Roland synth through it while overdriving the tube for distortion had some sweet results.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-4377540651006182800?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/4377540651006182800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2008/02/triode-preamp-part-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/4377540651006182800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/4377540651006182800'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2008/02/triode-preamp-part-1.html' title='Triode preamp : part 1'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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://4.bp.blogspot.com/_T8VFoOnB0ZQ/R6YLSLtbClI/AAAAAAAAACg/2QXFyZo2qEk/s72-c/preamp_v1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-7119391820562500151</id><published>2008-02-01T12:49:00.000-05:00</published><updated>2008-02-04T00:06:34.556-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tube amp'/><category scheme='http://www.blogger.com/atom/ns#' term='harmon kardon'/><category scheme='http://www.blogger.com/atom/ns#' term='capacitors'/><category scheme='http://www.blogger.com/atom/ns#' term='a300'/><title type='text'>Harmon Kardon A300 capacitor replacement</title><content type='html'>After almost a month of listening to my new tube amp there was one slight problem I began to notice. The right channel seemed to be a little bit louder than the left. The problem seemed to get worse the more I listened to it. Or maybe I never realized it and now that I have, I listen FOR it which makes it more apparent. Either way... after a lot of checking, swapping channels of signal sources, switching speakers, etc... the right channel was louder than the left.&lt;br /&gt;&lt;br /&gt;I figured I had three possible causes of the problem. A single or several bad/weak tubes, an out of tolerance resistor, or a bad capacitor.  I started with the tubes. I swapped the 6V6GT power pentodes to see if the louder channel swapped, which it did not. I moved the 12ax7 triodes around as well, with no difference in channels. There was really nothing more i could do without a tube tester (which I find myself needing). But for now I'll assume that the tubes are ok.&lt;br /&gt;&lt;br /&gt;Next step will be the capacitors... which I wanted to replace anyway. Lots of browsing websites of tube amp builders and repairers turned up a ridiculous amount of information about the best capacitors to use for an amp. Lots of people recommend things called "orange drops" which provide the best 'classic' sound . Whether this was the technical name of the caps or a description of what they looked like, Digi-Key turned up zero results for 'orange drops'. Now on to the more scientific approach. &lt;a href="http://members.aol.com/sbench102/caps.html"&gt;This site&lt;/a&gt; provided me good information on the linearity of different types of capacitors. After looking at this data, it looks like most capacitors would be well suited replacements with the exception of a few(ceramic disc, tantalum, etc...). I purchased high quality Panasonic polyester film capacitors for the signal paths and ordered high quality Panasonic 105 degree C. electrolytics for the power supply filtering while I was ordering parts. The original filtering capacitors were introducing a slight 60hz hum into the audio, and I know a fresh set of electrolytics for the power supply would solve this issue.  I have always used these Panasonic high temperature caps for replacements in other devices... always with positive results.&lt;br /&gt;&lt;br /&gt;Before:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/R6YEdrtbCjI/AAAAAAAAACQ/KycVg67Zow8/s1600-h/pre_cap.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/R6YEdrtbCjI/AAAAAAAAACQ/KycVg67Zow8/s400/pre_cap.jpg" alt="" id="BLOGGER_PHOTO_ID_5162818930822810162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;After:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/R6YEi7tbCkI/AAAAAAAAACY/iuU34RMKsxU/s1600-h/post_cap.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/R6YEi7tbCkI/AAAAAAAAACY/iuU34RMKsxU/s400/post_cap.jpg" alt="" id="BLOGGER_PHOTO_ID_5162819021017123394" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The results? It sounded better... for sure! The 60hz hum was definitely gone. I always use the Panasonic 105 degree C. electrolytics in all my projects, the extra price is worth it. The overall sound with the new caps in the signal path? Better... definitely. The only problem was my ears were still annoyed at the louder right channel. Time to start checking resistor values. :(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-7119391820562500151?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/7119391820562500151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2008/02/harmon-kardon-a300-capacitor.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/7119391820562500151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/7119391820562500151'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2008/02/harmon-kardon-a300-capacitor.html' title='Harmon Kardon A300 capacitor replacement'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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/_T8VFoOnB0ZQ/R6YEdrtbCjI/AAAAAAAAACQ/KycVg67Zow8/s72-c/pre_cap.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-4261726346040936279</id><published>2008-01-17T10:04:00.000-05:00</published><updated>2008-01-17T11:53:17.180-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='laser'/><category scheme='http://www.blogger.com/atom/ns#' term='ps3'/><category scheme='http://www.blogger.com/atom/ns#' term='sony'/><category scheme='http://www.blogger.com/atom/ns#' term='laser diode'/><category scheme='http://www.blogger.com/atom/ns#' term='blu-ray'/><title type='text'>SONY Blu-ray laser diode</title><content type='html'>A few weeks ago I came across a part of Sam Goldwassers' &lt;a href="http://www.repairfaq.org/sam/lasersam.htm"&gt;Laser FAQ&lt;/a&gt; talking about the SONY blu-ray diode that you find in SONY blu-ray DVD players and PS3's. I haven't been paying much attention to the new blu-ray format as I still think standard definition DVDs look pretty good through a good video scaler to a good HD projector... I also wanted to wait for the whole blu-ray / HD-DVD format war to end before I invest in either one. (as of right now it looks like the blu-ray format is winning). But the article I saw on the blu-ray diode really got my attention. What I didn't know about blu-ray diodes was that they actually emit visible blue light! 405nm to be exact. I had assumed them to be in the UV range (my bad assumption), but again, this way from my lack of knowledge on this new media format.&lt;br /&gt;&lt;br /&gt;So of course I had to have one. There are a few companies out there that have been buying blu-ray format players, scrapping them for the diode and making laser pointers out of them. Then they charge ridiculous amounts of money for them, even thousands of dollars. But another good source of the blu-ray diode is the SONY ps3... more specifically a SONY replacement pickup assembly for the PS3. I found one on eBay for $50.&lt;br /&gt;&lt;br /&gt;I received it yesterday and immediately begin tearing it apart. Here is the complete module:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/R491okuV6JI/AAAAAAAAABI/MdQLZr6hRP0/s1600-h/Copy+of+CIMG1606.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/R491okuV6JI/AAAAAAAAABI/MdQLZr6hRP0/s320/Copy+of+CIMG1606.jpg" alt="" id="BLOGGER_PHOTO_ID_5156469438275774610" border="0" /&gt;&lt;/a&gt;Inside is a very cool array of lenses and beam-splitters:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/R492UkuV6KI/AAAAAAAAABQ/-AvhDfdfsMg/s1600-h/Copy+of+CIMG1617.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/R492UkuV6KI/AAAAAAAAABQ/-AvhDfdfsMg/s400/Copy+of+CIMG1617.jpg" alt="" id="BLOGGER_PHOTO_ID_5156470194190018722" border="0" /&gt;&lt;/a&gt;Here is a close up of the laser diode pinout. This diode contains a 405nm blue diode, a 650nm red diode and a 780nm IR diode all in one package.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/R492VEuV6LI/AAAAAAAAABY/wQ91aDRQbYk/s1600-h/Copy+of+CIMG1613.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/R492VEuV6LI/AAAAAAAAABY/wQ91aDRQbYk/s400/Copy+of+CIMG1613.JPG" alt="" id="BLOGGER_PHOTO_ID_5156470202779953330" border="0" /&gt;&lt;/a&gt;An even closer view of the assembly. The laser diode can be seen on the far right. There are some interesting optics and filters in here. Several of the filters are actually small LCD's.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/R492V0uV6NI/AAAAAAAAABo/t5aPlZwbeMA/s1600-h/Copy+of+CIMG1619.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/R492V0uV6NI/AAAAAAAAABo/t5aPlZwbeMA/s400/Copy+of+CIMG1619.jpg" alt="" id="BLOGGER_PHOTO_ID_5156470215664855250" border="0" /&gt;&lt;/a&gt;The laser FAQ lists this diode to be running at safe levels around 4.5v at 30 to 40mA. Just to be safe, I limited my bench supply to 25mA before powering it up.  I started the voltage at 0v and began slowly increasing. The first visible blue light was visible at about 3.2v. Brightness increased strongly up until about 4.10v, where my current limiting went into effect.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/R493FUuV6PI/AAAAAAAAAB4/WLNohZ7QR8E/s1600-h/Copy+of+CIMG1639.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/R493FUuV6PI/AAAAAAAAAB4/WLNohZ7QR8E/s400/Copy+of+CIMG1639.jpg" alt="" id="BLOGGER_PHOTO_ID_5156471031708641522" border="0" /&gt;&lt;/a&gt;At this current which is lower than the 30mA to 40mA others had tested it at, the diode was extremely bright!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/R492WEuV6OI/AAAAAAAAABw/2J0Lw1yllpQ/s1600-h/Copy+of+CIMG1622.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/R492WEuV6OI/AAAAAAAAABw/2J0Lw1yllpQ/s400/Copy+of+CIMG1622.jpg" alt="" id="BLOGGER_PHOTO_ID_5156470219959822562" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Now I just have to add a collimating lens to focus the output into a nice spot.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/R493F0uV6RI/AAAAAAAAACI/zixcuWqF7zc/s1600-h/Copy+of+CIMG1625.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_T8VFoOnB0ZQ/R493F0uV6RI/AAAAAAAAACI/zixcuWqF7zc/s400/Copy+of+CIMG1625.jpg" alt="" id="BLOGGER_PHOTO_ID_5156471040298576146" border="0" /&gt;&lt;/a&gt;The lens I am using wasn't the best, it came from an old red laser diode module. I need to do a little searching to see if I can find a better lens laying around.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/R493FkuV6QI/AAAAAAAAACA/Ulgq7ZQkD0w/s1600-h/Copy+of+CIMG1633.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/R493FkuV6QI/AAAAAAAAACA/Ulgq7ZQkD0w/s400/Copy+of+CIMG1633.jpg" alt="" id="BLOGGER_PHOTO_ID_5156471036003608834" border="0" /&gt;&lt;/a&gt;The final step will be to make a small power supply to run the diode off of batteries and mount everything in a small enclosure. Hopefully I will be able to finish it this weekend. More / better pictures will follow.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-4261726346040936279?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/4261726346040936279/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2008/01/sony-blu-ray-laser-diode.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/4261726346040936279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/4261726346040936279'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2008/01/sony-blu-ray-laser-diode.html' title='SONY Blu-ray laser diode'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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://1.bp.blogspot.com/_T8VFoOnB0ZQ/R491okuV6JI/AAAAAAAAABI/MdQLZr6hRP0/s72-c/Copy+of+CIMG1606.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-1195351391720841642</id><published>2008-01-16T16:53:00.000-05:00</published><updated>2008-01-16T17:03:16.249-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='at+t'/><category scheme='http://www.blogger.com/atom/ns#' term='t1'/><title type='text'>How rediculous...</title><content type='html'>So one of out at+t T1 circuits was disconnected, and I had to find out why. The following telephone call with at+t support just makes me laugh. I am typing this up after the phone conversation to the best of my memory:&lt;br /&gt;&lt;br /&gt;(apparently the ampersand is not an allowed character in blogger... so I will use '+'s instead for a t and t)&lt;br /&gt;&lt;br /&gt;me :  could you please tell me when the last payment on this circuit was received?&lt;br /&gt;at+t: the last payment was on Dec 12th for $nnnn.&lt;br /&gt;me: what was the previous payment before that?&lt;br /&gt;at+t: Nov 4th for $nnnn.&lt;br /&gt;me: would it be possible for you to send me a list of all the payments we have made last year so I can figure out how we missed a payment?&lt;br /&gt;at+t: well, this information would be on all of your invoices.&lt;br /&gt;me: I understand that, but it would be easier to see a list from you with all of our received payments. this way i wouldn't have to contact our accounting department to request this information.&lt;br /&gt;at+t: well, we do not offer that service.&lt;br /&gt;me: ummm.. ok.&lt;br /&gt;[silence]&lt;br /&gt;me: well, what would i have to do to get this circuit turned back on?&lt;br /&gt;at+t: i could forward you to our services department to re-activate this circuit. would you like me to do that?&lt;br /&gt;me: sure.&lt;br /&gt;at+t: okay, before i forward you to our services department, is there anything else i could help you with?&lt;br /&gt;me: nope.&lt;br /&gt;at+t: and how happy are you with your services with at+t? satisfied? or very satisfied?&lt;br /&gt;me: are those my only two choices?&lt;br /&gt;at+t: yes.&lt;br /&gt;me: just satisfied i guess.&lt;br /&gt;at+t: well, what could we do to make your experience with at+t very satisfied ?&lt;br /&gt;me: you could start by providing me with a list of all our payments received for the past year.&lt;br /&gt;at+t: i'm sorry, but we dont offer that service.&lt;br /&gt;me: well... then i guess i will never be &lt;span style="font-style: italic;"&gt;very&lt;/span&gt; satisfied with your services.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-1195351391720841642?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/1195351391720841642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2008/01/how-rediculous.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/1195351391720841642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/1195351391720841642'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2008/01/how-rediculous.html' title='How rediculous...'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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-2131958746786008795.post-7389729573624861637</id><published>2008-01-11T15:16:00.000-05:00</published><updated>2008-01-11T15:54:54.593-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='brodcast ping'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='ICMP'/><title type='text'>Broadcast ping</title><content type='html'>A really cool feature of the 'ping' implementation under most UNIX and Linux distributions is the ability to ping your subnets broadcast address.&lt;br /&gt;&lt;br /&gt;[root@proxy /]# ping -b 10.70.0.255&lt;br /&gt;WARNING: pinging broadcast address&lt;br /&gt;PING 10.70.0.255 (10.70.0.255) 56(84) bytes of data.&lt;br /&gt;64 bytes from 10.70.0.3: icmp_seq=0 ttl=64 time=0.058 ms&lt;br /&gt;64 bytes from 10.70.0.10: icmp_seq=0 ttl=255 time=0.198 ms (DUP!)&lt;br /&gt;64 bytes from 10.70.0.12: icmp_seq=0 ttl=64 time=0.205 ms (DUP!)&lt;br /&gt;64 bytes from 10.70.0.48: icmp_seq=0 ttl=255 time=0.248 ms (DUP!)&lt;br /&gt;64 bytes from 10.70.0.19: icmp_seq=0 ttl=255 time=0.254 ms (DUP!)&lt;br /&gt;64 bytes from 10.70.0.16: icmp_seq=0 ttl=255 time=0.258 ms (DUP!)&lt;br /&gt;64 bytes from 10.70.0.30: icmp_seq=0 ttl=255 time=0.262 ms (DUP!)&lt;br /&gt;64 bytes from 10.70.0.46: icmp_seq=0 ttl=255 time=0.287 ms (DUP!)&lt;br /&gt;64 bytes from 10.70.0.43: icmp_seq=0 ttl=255 time=0.292 ms (DUP!)&lt;br /&gt;64 bytes from 10.70.0.35: icmp_seq=0 ttl=255 time=0.297 ms (DUP!)&lt;br /&gt;64 bytes from 10.70.0.44: icmp_seq=0 ttl=255 time=0.302 ms (DUP!)&lt;br /&gt;64 bytes from 10.70.0.57: icmp_seq=0 ttl=255 time=0.310 ms (DUP!)&lt;br /&gt;64 bytes from 10.70.0.64: icmp_seq=0 ttl=255 time=0.336 ms (DUP!)&lt;br /&gt;64 bytes from 10.70.0.253: icmp_seq=0 ttl=64 time=0.341 ms (DUP!)&lt;br /&gt;64 bytes from 10.70.0.45: icmp_seq=0 ttl=255 time=0.346 ms (DUP!)&lt;br /&gt;64 bytes from 10.70.0.222: icmp_seq=0 ttl=255 time=0.662 ms (DUP!)&lt;br /&gt;64 bytes from 10.70.0.22: icmp_seq=0 ttl=64 time=0.669 ms (DUP!)&lt;br /&gt;64 bytes from 10.70.0.229: icmp_seq=0 ttl=64 time=0.674 ms (DUP!)&lt;br /&gt;64 bytes from 10.70.0.210: icmp_seq=0 ttl=64 time=0.678 ms (DUP!)&lt;br /&gt;64 bytes from 10.70.0.216: icmp_seq=0 ttl=64 time=0.698 ms (DUP!)&lt;br /&gt;64 bytes from 10.70.0.209: icmp_seq=0 ttl=255 time=1.42 ms (DUP!)&lt;br /&gt;64 bytes from 10.70.0.40: icmp_seq=0 ttl=255 time=1.43 ms (DUP!)&lt;br /&gt;64 bytes from 10.70.0.217: icmp_seq=0 ttl=60 time=1.43 ms (DUP!)&lt;br /&gt;64 bytes from 10.70.0.246: icmp_seq=0 ttl=255 time=2.82 ms (DUP!)&lt;br /&gt;64 bytes from 10.70.0.223: icmp_seq=0 ttl=60 time=2.85 ms (DUP!)&lt;br /&gt;64 bytes from 10.70.0.252: icmp_seq=0 ttl=255 time=2.85 ms (DUP!)&lt;br /&gt;64 bytes from 10.70.0.244: icmp_seq=0 ttl=60 time=4.13 ms (DUP!)&lt;br /&gt;64 bytes from 10.70.0.248: icmp_seq=0 ttl=255 time=5.25 ms (DUP!)&lt;br /&gt;64 bytes from 10.70.0.240: icmp_seq=0 ttl=255 time=15.4 ms (DUP!)&lt;br /&gt;&lt;br /&gt;--- 10.70.0.255 ping statistics ---&lt;br /&gt;1 packets transmitted, 1 received, +28 duplicates, 0% packet loss, time 0ms&lt;br /&gt;rtt min/avg/max/mdev = 0.058/1.554/15.486/2.926 ms, pipe 2&lt;br /&gt;&lt;br /&gt;A couple interesting things about this. First, the only responding hosts are hosts that are set to reply to ICMP broadcast pings. On this network this includes my UNIX and Linux hosts routers and switches, along with a couple other random hosts such as firewalls and a few network based cameras. Now it would be nice to see all of the windows hosts as well, but as part of the windows TCP/IP stack they are set to not reply to ICMP broadcast pings. This seems unfortunate, as if Microsoft did not implement their TCP/IP stack according to RFC guidelines. But upon further research, in &lt;a href="http://www.faqs.org/rfcs/rfc1122.html"&gt;RFC-1122 (Requirements for Internet Hosts)&lt;/a&gt; This behavior is allowed:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;"An ICMP Echo Request destined to an IP broadcast or&lt;br /&gt;IP multicast address MAY be silently discarded."&lt;/pre&gt;The other interesting thing about a broadcast ping is the ordering of replies. The hosts that replied the quickest are the hosts that are the physically closest to the sending host. The hosts that took the longest to reply are the physically farthest away from the sending host. The hosts that have gigabit links, even though physically farther than others appear near the top of the list. It's just cool to see propagation delay at work...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-7389729573624861637?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/7389729573624861637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2008/01/broadcast-ping.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/7389729573624861637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/7389729573624861637'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2008/01/broadcast-ping.html' title='Broadcast ping'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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-2131958746786008795.post-4487567203243729727</id><published>2008-01-07T10:54:00.000-05:00</published><updated>2008-01-11T15:50:49.761-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='extreme networks'/><category scheme='http://www.blogger.com/atom/ns#' term='cisco'/><category scheme='http://www.blogger.com/atom/ns#' term='network closet'/><title type='text'>The network</title><content type='html'>My home network is a disaster.&lt;br /&gt;&lt;br /&gt;When it was originally set up about three years ago everything was nice, clean, labeled and organized. As of today it is a complete mess... I realized this over the weekend when I couldn't get a specific cable to link up to my switch, only to discover that the cable I was using had been pinched in my door a few too many times causing a break. I then looked at the rest of the network and realized that this is really bad.&lt;br /&gt;&lt;br /&gt;My home networks primary purpose is an experimentation playground. Want to play with OSPF between two Cisco routers? Sure. Want to play with an 802.1q VLAN  on a Cisco Catalyst talking to an Extreme Summit? Ok. Need to do some web / database development? Yep. This type of playing results in a lot of moving equipment and cables around... and the result is this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/R4I70kuV6II/AAAAAAAAABA/nsWw_9iVJmQ/s1600-h/net2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/R4I70kuV6II/AAAAAAAAABA/nsWw_9iVJmQ/s320/net2.jpg" alt="" id="BLOGGER_PHOTO_ID_5152746698062555266" border="0" /&gt;&lt;/a&gt;Now everything is working and I know what's going on with everything... it just looks like a mess. A lot of equipment is off because of thermal issues... this closet doesn't have the best air circulation so heat can become an issue. I used to have a Catalyst 5000 in here which was capable of heating a good portion of my home. This was great during the winter months, but as soon as summer came around, it had to go to save myself from a ridiculous electric bill.&lt;br /&gt;&lt;br /&gt;A couple notes on this equipment:&lt;br /&gt;That is my 4th Linksys router. I have never had one last me more than 2 years before it fails. I have to reset mine about once a week... it works fine until it just stops routing packets. By best guess is just that it get's too hot? It shouldn't be an issue though, this closet doesn't get that warm and nothing else in there fails. Next time I will spend the extra money and get a good Cisco Aironet.&lt;br /&gt;Also, Extreme Networks switches are awesome!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/R4I7tkuV6HI/AAAAAAAAAA4/yBFU5HbF_4Y/s1600-h/net1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_T8VFoOnB0ZQ/R4I7tkuV6HI/AAAAAAAAAA4/yBFU5HbF_4Y/s320/net1.jpg" alt="" id="BLOGGER_PHOTO_ID_5152746577803470962" border="0" /&gt;&lt;/a&gt;When I finally move, I will dedicate a lot more space to my systems, working on them in such a small space is not so much fun...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-4487567203243729727?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/4487567203243729727/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2008/01/network.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/4487567203243729727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/4487567203243729727'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2008/01/network.html' title='The network'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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://4.bp.blogspot.com/_T8VFoOnB0ZQ/R4I70kuV6II/AAAAAAAAABA/nsWw_9iVJmQ/s72-c/net2.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-5606821678038555746</id><published>2008-01-02T21:40:00.000-05:00</published><updated>2008-01-11T15:50:10.367-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mp3'/><category scheme='http://www.blogger.com/atom/ns#' term='tube amp'/><category scheme='http://www.blogger.com/atom/ns#' term='harmon kardon'/><title type='text'>Analog pathway</title><content type='html'>I have always wanted a real tube based home audio amplifier. The idea has always intrigued me. With today's high end audio equipment and all it's clean transistor based output power capable of producing hundreds or even thousands of watts per channel, why such a fascination with an old obsolete method of amplification? I had to find out. Just the idea of having an amplifier that is 100% analog based with no DSP and no A/D and D/A conversions going on seems so cool. To hear real tube compression and microphonics instead of the usual digital harsh sound we are so accustomed to with todays electronics. To have an amplifier that only produces 12 watts per channel play just as loud as a MOSFET based amp rated hundreds of watts per channel. To amplify such low level signals by using just these mysterious glowing glass tubes, a few large coils of wire, and a handful of passive components... I have to see what they are all about.&lt;br /&gt;&lt;br /&gt;I began my search as usual at lots of audiophile pages with owners talking about such and such amp, why it is so awesome, and how much it cost. My search then turned to eBay (my preferred method of purchasing almost anything) to find one I wanted. After looking at a bunch and reading lots of user reviews on the ones available, I decided on a Harmon Kardon A300. It was clean looking and in good shape, inexpensive, and working with all tubes intact. This was important because a set of new tubes (new old stock that is, tubes that were made 40+ years ago that were never used) could easily cost more than the amp itself. Most tubes are still manufactured by a handful of companies today (mostly Chinese), but most people seem to say that they don't sound anywhere near as good as the old Russian, UK, and US tubes made forever ago.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/R31loEuV6FI/AAAAAAAAAAo/vOpNKAv3a20/s1600-h/CIMG1601.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 322px; height: 240px;" src="http://1.bp.blogspot.com/_T8VFoOnB0ZQ/R31loEuV6FI/AAAAAAAAAAo/vOpNKAv3a20/s320/CIMG1601.JPG" alt="" id="BLOGGER_PHOTO_ID_5151385287919003730" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The A300 is a stereo amp with approximately 10-15 watts of output power per channel. It has 9 tubes, 4 6v6 outputs, two per channel in a class A push-pull configuration, 4 12ax7 tubes and 1 12au7 tube in the preamp section. Upon receiving, I hooked it up to my system, replacing my current MOSFET based amp, turned it on and hoped for the best. As for any vintage electronics, there is always a chance for disaster or death with first power on. I looked it over really well, so luckily there was no smoke and there were no sparks... after about 30 seconds I could see all of the tubes glowing so it was time for a listen.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/R31mOkuV6GI/AAAAAAAAAAw/JpQ1c-qEgjc/s1600-h/CIMG1565.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_T8VFoOnB0ZQ/R31mOkuV6GI/AAAAAAAAAAw/JpQ1c-qEgjc/s400/CIMG1565.JPG" alt="" id="BLOGGER_PHOTO_ID_5151385949343967330" border="0" /&gt;&lt;/a&gt;                                            (what's a pcb?)&lt;br /&gt;&lt;br /&gt;Now don't get me wrong, digital based equipment sounds good, &lt;span style="font-style: italic;"&gt;really good &lt;/span&gt;(with the exception of mp3's. An mp3 compared to a well mastered cd on a good system lets us forget how lossy the compression of mp3's actually are)&lt;span style="font-style: italic;"&gt;.&lt;/span&gt; So when I started listening to music through this amp it was amazing. Did it sound better than a non tube amp? Yes... well maybe. It sounded &lt;span style="font-style: italic;"&gt;different&lt;/span&gt;. So this is the 'tube warmth' everyone talks about, I can't really explain it but it sounded good.&lt;br /&gt;&lt;br /&gt;So the next step is to begin upgrading the amp. Replacing all the 40+ year old caps will be a good start... it will be interesting to see if it changes the sound quality at all...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-5606821678038555746?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/5606821678038555746/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2008/01/analog-pathway.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/5606821678038555746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/5606821678038555746'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2008/01/analog-pathway.html' title='Analog pathway'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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://1.bp.blogspot.com/_T8VFoOnB0ZQ/R31loEuV6FI/AAAAAAAAAAo/vOpNKAv3a20/s72-c/CIMG1601.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2131958746786008795.post-9077343816145743827</id><published>2008-01-02T12:31:00.000-05:00</published><updated>2008-01-02T10:07:17.273-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='neverendingdoom'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><category scheme='http://www.blogger.com/atom/ns#' term='japan'/><title type='text'>In the beginning.</title><content type='html'>After much thought,  I have decided to start a blog once again. I originally had one starting about in 2002 I think... mostly inspired by Jim's neverendingdoom. In it's original form, it was designed to be an electronics blog for myself to keep track of my current projects and ideas. Soon after it's creation it found itself containing random thoughts and ideas which were very not so much electronics based. After about a year or two of this, it became a webcomic (incomingninsense in case anyone remembers) followed by the base site for my photo journals for my trip to Japan. (I believe this site still exists on NS1 somewhere...) I still own the domain, as godaddy kindly reminds me every month that omg my domains are going to expire so renew now!&lt;br /&gt;&lt;br /&gt;I have decided to use blogger this time. Previously I would always write my sites from scratch, but instead of sifting through all my old broken code... i'll just use this. I have too many other projects going on at the moment to focus my energy on.&lt;br /&gt;&lt;br /&gt;So that's it. My  projects will go here along with other thoughts that seem interesting...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2131958746786008795-9077343816145743827?l=bradthx.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bradthx.blogspot.com/feeds/9077343816145743827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://bradthx.blogspot.com/2008/01/in-beginning.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/9077343816145743827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2131958746786008795/posts/default/9077343816145743827'/><link rel='alternate' type='text/html' href='http://bradthx.blogspot.com/2008/01/in-beginning.html' title='In the beginning.'/><author><name>brad</name><uri>http://www.blogger.com/profile/13205011980298945921</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>
