<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet [<!ENTITY mdash "&#x2014;">]>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="text" xml:lang="en">Thomas Kilbride</title>
  <link type="application/atom+xml" href="https://obnauticus.com/feed.xml" rel="self"/>
  <link type="text/html" href="https://obnauticus.com" rel="alternate"/>
  <updated>2026-02-12T03:33:40-05:00</updated>
  <id>https://obnauticus.com/all_feed</id>
  <author>
    <name>Thomas A. Kilbride</name>
  </author>

  
  <entry>
    <title>Bring back the IMera!</title>
    <link href="https://obnauticus.com/2014/09/bring-back-the-im-era/"/>
    <updated>2014-09-29T00:00:00-04:00</updated>
    <id>https://obnauticus.com/2014/09/bring-back-the-im-era</id>
    <content type="html">&lt;p&gt;A few years ago I decided to start a Jabber/XMPP server for a few close friends as an experiment. Now it has become something a little bit larger and has changed what I think of the status quo.&lt;/p&gt;

&lt;h2 id=&quot;history&quot;&gt;History&lt;/h2&gt;

&lt;p&gt;At first, I started my Jabber network as a free service for my friends and the only price I had to pay was living in the same room as a rack server. If you’re not farmiliar with the hardware, a 2U-sized server usually sounds a little bit louder than a normal vaccuum cleaner, but not quite as loud as a large shop-vac. Originally the server was running Debian (lenny) with &lt;a href=&quot;www.igniterealtime.org/projects/openfire&quot;&gt;OpenFire&lt;/a&gt;. Then, I moved across the country for college. My parents were nice enough to let me keep the servers running, even though it’s not exactly cheap to run a server like that reliably. Surprisingly, it worked really well for about two years–also, the internet connection was Comcast Cable. Then, network hardware began to fail, and I wasn’t able to fix it quickly enough–I was across the country, so my parents had to help me remotely.&lt;/p&gt;

&lt;p&gt;The hardware issues brought the jabber services down intermittantly on a few different occasions. The worst outage was for about a week where many people switched to Facebook chat as their next-best alternate chat medium. Since so many people depended upon the service, I got numerous complaints from them about the uptime and reliability of the network. At this point there were probably 20 active users on consistently and a little more than 150 registered users. I needed to move the server somewhere more reliable.&lt;/p&gt;

&lt;h2 id=&quot;new-and-improved&quot;&gt;New and Improved!&lt;/h2&gt;

&lt;p&gt;The best parts about technical difficulties in time-critical situations are hot-fixes. Since services are down, it’s actually an excellent opportunity to experiment and add new features to your product. It’s also easier to see what functionality you can remove without your users noticing, helping you create a more lean system. Obviously, there are some caveats to this approach for improvement, but for a small-scale Jabber network it can be reasonable to take advantage of down-time like this.&lt;/p&gt;

&lt;p&gt;I ended up changing multiple things like the OS, the server daemon and authentication system entirely. Exporting user data from OpenFire was a bit of a pain in the ass. Most online communities really doesn’t like it when you ask questions like “how do I move all of my users from your &lt;em&gt;current_closed-source_software&lt;/em&gt; to one like &lt;em&gt;insert_open-source_competitor_here&lt;/em&gt;”, on IRC these questions remain ignored at best. I forgot exactly what I did (in python) to do the switch, but it ended up working pretty well and migrated the services without many problems. I chose &lt;a href=&quot;http://www.ejabberd.im&quot;&gt;eJabberd&lt;/a&gt; since it has a great community and can scale much better than OpenFire can; furthermore, I was also looking for a handy excuse to learn function programming and eJabberd is written in Erlang!&lt;/p&gt;

&lt;p&gt;I ended up retiring all of the hardware I was hosting at my parents’ house. I am a college student who moves frequently and in order to prevent these problems from happening again, I needed to host this service independantly from where I live. I decided to host my server on DigitalOcean because it’s dirt-cheap and reliable. I have had two downtimes in the past year and both were for less than 2 minutes, that’s good enough for me. I have had no complaints about reliability and my Jabber network continues to acquire new users. In the future, I plan on setting up a few redundant instances of my jabber network on various different hosts in a cluster.&lt;/p&gt;

&lt;h2 id=&quot;reflection&quot;&gt;Reflection&lt;/h2&gt;

&lt;p&gt;Reliability is key, especially in communications. I’m sure that 50% of my jabber network is used to coordinate drinking activities among my college friend group, but even that has to happen reliably–and I’m glad I am able to help. Despite the fact these conversations are not exactly “mission-critical”, I always hear about a downtime within 30 sec or less (I usually know before they do). If both of those things are correct, maybe my jabber network is probably the closest thing to an alcoholics’ anonymous chatting network.&lt;/p&gt;

&lt;p&gt;I have no idea why my Jabber service has gained any traction, there are plenty of other options available with higher levels of “leet” (e.g., IRC). My Jabber network requires the user to install new software, and spend time configuring some things manually–it’s not polished, and yet, people still continue to register and reccomend it. I’ve asked a couple of people why and I’ve heard anything from NSA-bashing to “it’s just the right-level of leet”; however, I have a different theory.&lt;/p&gt;

&lt;h2 id=&quot;im-nostalgia&quot;&gt;IM Nostalgia&lt;/h2&gt;

&lt;p&gt;My friend group is mostly people born in the 1990’s and I’d bet that most of used AIM and MSN as their first instant messaging platform. Now the interface has changed from the old chat window to weird tabs things on the bottom right of your desktop (google hangouts). Most chatting isn’t even done with a desktop client anymore (e.g., Facebook Chat). All of the tech giants seem to be diverging from the original IM look and feel, and I think they’re getting it wrong (except for iMessage). I think that people from my generation want the old back, and it’s becoming more and more scarse. I suspect that small-scale chat networks like mine would not have gained any traction when market was dominated by AIM and MSN.&lt;/p&gt;

&lt;p&gt;Maybe the market is moving in the other direction for a good reason, or perhaps the only explination for anyone to use a private jabber network is NSA-fear. I’m not exactly sure, but I’ll keep hosting this jabber server for the nostalgic 90s kids like myself.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Z800 BIOS SPI Flash Write Protection</title>
    <link href="https://obnauticus.com/2014/09/fixing-my-z800/"/>
    <updated>2014-09-25T00:00:00-04:00</updated>
    <id>https://obnauticus.com/2014/09/fixing-my-z800</id>
    <content type="html">&lt;p&gt;I got some surplus z800 hardware off of ebay with the hopes of making a usable desktop out of it. The only problem is the Intel Westmere architecture is not supported by all revisions of the motherboard (460838-003 supports Westmere architecture). This is fixed by modifying the “BootBlock” in the bios, unfortuinately there are some technicalities.&lt;/p&gt;

&lt;h2 id=&quot;dammit&quot;&gt;Dammit&lt;/h2&gt;

&lt;p&gt;I need to update the bootblock in my BIOS. Based upon some &lt;a href=&quot;http://www.techsupportforum.com/forums/f15/hp-z800-upgrading-bios-bootblock-649793.html&quot;&gt;research&lt;/a&gt; online the SPI Flash is write protected as a security feature. I assume this is just to prevent someone from installing malware at the BIOS-level see:[CIH Virus](http://en.wikipedia.org/wiki/CIH_(computer_virus).&lt;/p&gt;

&lt;h2 id=&quot;idea&quot;&gt;Idea&lt;/h2&gt;
&lt;p&gt;The SPI Flash chip is an &lt;a href=&quot;http://ww1.microchip.com/downloads/jp/DeviceDoc/jp550401.pdf&quot;&gt;SST25VF016B&lt;/a&gt;. Looking at the datasheet I notice a WP# pin, this sets the write protect status register bits on whatever address is currently being written. It might be possible to perform the following modification:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;	1. Dump the flash over SPI bus with an SPI programmer (BusPirate)
	2. Perform a full chip erase as per the datasheet for the SST25VF0116B.
	3. Jumper VDD to WP# pin to disable write protection.
	4. Perform a write with the flash from step 1.
	5. Attempt to overwrite BootBlock with SPIFLASH from user-land.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The result of this modification should allow me to modify the bootblock–this will allow a user to update the Z800 motherboard to support the westmere architecture. I will follow-up with another post in the future regarding the success (or failure) of this method.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Update: The WP# status register disables the ability to perform an erase; therefore, it is necessary to buy a new SST chip in order to replace the image on the chip. I’ll repost results soon.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
  </entry>
  
  <entry>
    <title>BoilerMake Hackathon Atendee Badge</title>
    <link href="https://obnauticus.com/2014/09/BoilerMakeBadge_I/"/>
    <updated>2014-09-01T00:00:00-04:00</updated>
    <id>https://obnauticus.com/2014/09/BoilerMakeBadge_I</id>
    <content type="html">&lt;p&gt;I don’t have time to really update this mainly because I’m actively working on this project, but here’s the prototype for the BoilerMake Badge board! It just got in today…&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/images/boilerbadgeprototype.jpeg&quot; /&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>FirePICK Motor Controller Board</title>
    <link href="https://obnauticus.com/2014/08/firepick-delta-EMC01/"/>
    <updated>2014-08-15T00:00:00-04:00</updated>
    <id>https://obnauticus.com/2014/08/firepick-delta-EMC01</id>
    <content type="html">
</content>
  </entry>
  
  <entry>
    <title>Delta Robot LCD Console</title>
    <link href="https://obnauticus.com/2014/07/firepick-delta-LCD/"/>
    <updated>2014-07-19T00:00:00-04:00</updated>
    <id>https://obnauticus.com/2014/07/firepick-delta-LCD</id>
    <content type="html">&lt;div class=&quot;leaders&quot;&gt;
&lt;h2&gt;&lt;li&gt;Quick Information&lt;/li&gt;&lt;/h2&gt;
The firepick-delta-console is a display which is used to give the user useful information about their FirePICK delta machine.

&lt;h2&gt;Features&lt;/h2&gt;
*	IP Address Status
*	Time/date information

&lt;h2&gt;To-Do&lt;/h2&gt;
*	Interface with FireREST software to display job completeness status bar
*	Display other useful system info
*	Add buttons to allow the user to scroll through informational the different screens.


&lt;h2&gt;&lt;li&gt;Instillation&lt;/li&gt;&lt;/h2&gt;
&lt;h2&gt;Requirements&lt;/h2&gt;
* python-pip (for python 2.7)
* python 2.7
* python-setuptools
* pip package rpi.gpio


&lt;h2&gt;Automatic/Scripted Instillation&lt;/h2&gt;
The install.sh script was written for a debian-based system, specifically the Raspberry Pi Rev. B running Raspberrian/FireREST. If you are using different software, please fork the repo and revise the script :).

* run the bash installer script install.sh.

&lt;h2&gt;Manual Instillation&lt;/h2&gt;
1. Install the following dependancies manually:
  * Python 2.7
  * Python Setup Tools
  * rpi.gpio python package

2. Optional Dependancies:
  * Pip for Python 2.7 (for installing the rpi.gpio package)
 &lt;/div&gt;
</content>
  </entry>
  
  <entry>
    <title>DIY Curve Tracer</title>
    <link href="https://obnauticus.com/2010/03/a-diy-curve-tracer/"/>
    <updated>2010-03-19T00:00:00-04:00</updated>
    <id>https://obnauticus.com/2010/03/a-diy-curve-tracer</id>
    <content type="html">&lt;script type=&quot;text/javascript&quot; src=&quot;http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML&quot;&gt;&lt;/script&gt;

&lt;div class=&quot;leaders&quot;&gt;
&lt;h2&gt;&lt;li&gt;Abstract&lt;/li&gt;&lt;/h2&gt;
The purpose of this experiment was to build a curve tracer to measure the characteristics of a Bi-polar Junction Transistor (BJT).  The experiment found that it is possible to use a curve tracer to measure the forward DC amplification factor β of a BJT. It was concluded that a curve tracer is useful for quickly characterising BJT&apos;s. Additionally, these measurements can be used to find matched pairs of BJTs (i.e., two BJTs with a similar β measurement).
&lt;h2&gt;Introduction&lt;/h2&gt;
BJTs are often used in analog circuits where current amplification is needed. The equation which models the current gain of a transistor is given by:
\begin{equation}
\label{eq:1}
\beta I_B = I_C \Longleftrightarrow \frac{I_C}{I_B}=\beta
\end{equation}

In the equation above, the current gain of the transistor (β) is defined by the ratio between the BJT collector and base currents. Unfortuinately, not all transistors have the same β due to deviations in manufacturing. The deviations in β need to be considered when constructing circuits such as a differential amplifier. If the amplification factors are too dissimilar, a circuit will not behave as expected. In order to measure these parameters, a family of curves for each BJT needs to be obtained.

To obtain a family of curves for a BJT, one must perform a Collector-Emitter voltage DC sweep at targeted base-current operating points. A curve tracer streamlines this process by sequentially constraining a different $I_B$ before performing a DC sweep for each setting.

&lt;h2&gt;&lt;li&gt;Theory&lt;/li&gt;&lt;/h2&gt;
&lt;h3&gt;A 4-bit Binary Counter (74HC193)&lt;/h3&gt;

The binary counter is the first stage of this circuit. This stage utilizes a 74HC193 integrated circuit and can be realized by sequentially cascading four D-latches:.

&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;https://obnauticus.com/assets/images/2259-4-bit.png&quot; /&gt;&lt;/div&gt;

The SYNC output of the function generator is used as the clocking signal in the diagram above and it is also in phase with the collector-emitter DC sweep. When the sync pulse is pulled high a new collector-emitter DC sweep starts and the binary counter also increments. The following is the timing diagram for the outputs of the 74HC193, where the clocking signal is the SYNC pulse from the function generator:

&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;https://obnauticus.com/assets/images/cou3.png&quot; /&gt;&lt;/div&gt;
&lt;h3&gt;N-Bit Digital-to-Analog Converter (DAC)&lt;/h3&gt;

The second stage of the circuit will convert the binary counter&apos;s output registers to an analog waveform by adding them while accounting for the significance of each bit. An operational amplifier in a summing configuration is used to achieve this task:

&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;https://obnauticus.com/assets/images/sumamp.png&quot; /&gt;&lt;/div&gt;

Note: because the SYNC input pulse to the binary counter is in phase with the collector-emitter DC sweep sweep, it will create a zero-order hold at the output of the summing amplifier. The hold time is equivilant to the phase of the collector-emitter DC sweep sweep. The output from DAC will look like a decreasing sawtooth wave with some aliasing and inversion because the op amp is in an inverting configuration:

&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;https://obnauticus.com/assets/images/dac.png&quot; /&gt;&lt;/div&gt;

By referencing the circuit above, the equation which models the summing amplifier configuration is given by the following KCL equations:

\begin{equation}
	I_F = I_1 + I_2 +\dots+ I_n \\
	-V_{out}=\frac{R_F}{R_{1}}V_1+\frac{R_F}{R_{2}}V_2+\dots+\frac{R_F}{R_{n}}V_n
\end{equation}

&lt;h2&gt;Transconductance Inversion Amplifier&lt;/h2&gt;
By this stage there we have a decreasing sawtooth wave. This step will invert the waveform to get the desired increasing sawtooth waveform. An inverting amplifier with  is used as a buffer in this step:

&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;https://obnauticus.com/assets/images/inverter.png&quot; /&gt;&lt;/div&gt;

Additionally, it is not desired to bias the BJT; therefore, this amplifier must also convert voltage to current. It must also have a very high output impedance. 

&lt;h2&gt;Device Under Test (DUT)&lt;/h2&gt;

After the waveform has been inverted, it is then fed into the DUT. In this case, the DUT is a BJT. By this point each binary number is summed, the waveform is stepped up by an increment and then inverted to get an increasing aliased sawtooth wave. The output from the subsequent steps provide the base current to the BJT so the family of curves can be produced when a collector-emitter DC sweep is executed.

&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;https://obnauticus.com/assets/images/dut.png&quot; /&gt;&lt;/div&gt;

In theory, these two sweeps should produce a family of curves when measured on an oscilloscope.

&lt;h2&gt;Measurement&lt;/h2&gt;

An oscilloscope and differential amplifier are used to obtain the family of curves using the XY plotting feature of the scope&apos;s display. The reason a differential amplifier is used is so the probe&apos;s impedance does not divide current from small voltage measurements. 

&lt;h2&gt;&lt;li&gt;Design&lt;/li&gt;&lt;/h2&gt;
&lt;h2&gt;Up Counter&lt;/h2&gt;
As discussed previously, the binary counter is connected to the sync pulse. In this application it is correct to call it an Up-Counter; in theconfiguration used the DOWN pin is pulled high while the UP pin is pulsed. When the up counter reaches its terminal value it rotates back to the base.


The following timing chart shows the outputs of the 74HC193 as it counts from 0 to 10 in the up-coutner configuration:

&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;https://obnauticus.com/assets/images/upcounter.jpg&quot; /&gt;&lt;/div&gt;

The circuit implementation for the up counter stage used in the experiment is the following:

&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;https://obnauticus.com/assets/images/countercir.PNG&quot; /&gt;&lt;/div&gt;

The power supply rail has a bypass capacitor inserted located as physically close to the IC as possible. This capacitor helps decrease the noise on the outputs as they change between binary states. The precise value of a bypass capacitor isn&apos;t important but generally speaking a higher capacitence means it can provide more damping of supply ripple voltage. A common value of 0.1$\mu$F was used in this design (reference C1 in the schematic above).

&lt;h2&gt;4-Bit DAC&lt;/h2&gt;

Since we are adding 4 bits from the counter, this stage of the design needs four inputs. These inputs create the linear terms necessary in the KCL equations. The input resistances (R1, R2, R3, R4) are calculated so the output of the amplifier accurately reflects the magnitude of the counter for each cycle. This table shows the magnitude weighting of each binary value relative to the other:

&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;https://obnauticus.com/assets/images/table.PNG&quot; /&gt;&lt;/div&gt;

These relative weights tell us that the input resistances must satisfy the following equation:

\begin{equation}
	R_{MSB_{-0}} = \frac{1}{2}R_{MSB_{-1}}= \frac{1}{4}R_{MSB_{-2}}= \frac{1}{8}R_{MSB_{-3}}
\end{equation}

Another constraint in the design is the DAC&apos;s full-scale output voltage. It must be adequately high so that in the following stages it can set $I_B$  at a reasonable point. Additionally, it cannot be so high that it goes beyond the supply rails for all following stages (causing clipping in the next step or in the DUT).The full-scale voltage of the DAC is targeted to 12V. This means that with an input of 16 the DAC&apos;s output will be 12V. Constraining the full-scale equations gives the KCL following equations:

\begin{equation}
	12 V= -5V \frac{R_f}{R_{MSB_{-0}}}\Bigg( \frac{|MSB_{-0}|}{2^0} + \frac{|MSB_{-1}|}{2^1} + \frac{|MSB_{-2}|}{2^2} +\\
	\frac{|MSB_{-3}|}{2^3}\Bigg)
\end{equation}

Solving for one of the resistor weights gives:

&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;https://obnauticus.com/assets/images/eqlol.PNG&quot; /&gt;&lt;/div&gt;

Using (6) to calculate the other input resistances gives the complete set for the DAC with the schematic:

&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;https://obnauticus.com/assets/images/schanddac.PNG&quot; /&gt;&lt;/div&gt;

The following are two sample calculations given the states of 10 and 16:

&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;https://obnauticus.com/assets/images/eqlel.PNG&quot; /&gt;&lt;/div&gt;

(10) implies that two cycles of the output at this stage should look like the following graph when the the up counter changes its output registers:

&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;https://obnauticus.com/assets/images/dacplot.PNG&quot; /&gt;&lt;/div&gt;

As expected, the output of the 4-bit DAC is decreasing due to the fact that it is in an inverting configuration.

&lt;h2&gt;Transconductance Amplifier&lt;/h2&gt;

As discussed in the theory section, the inverting amplifier&apos;s output is given by \eqref{3}. Additionally, the amplifier is in a unity gain configuration, this means that the input resistance to the amplifier is equal to the feedback resistance. Therefore:

\begin{equation}
	V_i=-V_o
\end{equation}

Furthermore, we want do not want the output to offset the DC base-emitter voltage; therefore, the output resistances make this function as a transconductance amplifier. The circuit realization of this component is the following:

&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;https://obnauticus.com/assets/images/invertercir.PNG&quot; /&gt;&lt;/div&gt;

The following are the calculations relating the input voltage from the DAC (VO) to the output voltage to the DUT (VBE). The op-amp is modeled as ideal:

&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;https://obnauticus.com/assets/images/topeqlel.PNG&quot; /&gt;&lt;/div&gt;

Next we must write the output current as the current delivered to the base:

\begin{equation}
	I =  I_1 + I_2 + I_B 
\end{equation}
\begin{equation}
	I_B = \frac{v_{out}-v_{BE}}{200k\Omega} - \frac{v_{BE}}{2M\Omega}
\end{equation}

By combining the equations:

\begin{equation}
I_B = -\frac{5v_{out}}{200k\Omega}
\end{equation}

&lt;h2&gt;&lt;li&gt;Results&lt;/li&gt;&lt;/h2&gt;
&lt;h2&gt;Circuit Diagram&lt;/h2&gt;

&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;https://obnauticus.com/assets/images/entirecir.PNG&quot; /&gt;&lt;/div&gt;

&lt;h2&gt;Plots&lt;/h2&gt;
For some reason I cannot find the plots for this project; however, the hardware did work as intended. The only problems I found were some resoluution issues which could be solved by using a better DAC, one with a 16-Bit resolution could improve this performance.

&lt;/div&gt;

</content>
  </entry>
  
  <entry>
    <title>McGyver Power Supply</title>
    <link href="https://obnauticus.com/2008/12/a-mcgyver-power-supply/"/>
    <updated>2008-12-30T00:00:00-05:00</updated>
    <id>https://obnauticus.com/2008/12/a-mcgyver-power-supply</id>
    <content type="html">&lt;p&gt;For all of your electronics projects, a power supply comes in handy in almost every situation. From making a simple LED circuit to designing High-Frequency RF circuitry Power-Supplies are a key to debugging and testing your circuitry.&lt;br /&gt;
&lt;br /&gt;
This article will help you make your own variable power supply from stuff you can find around your house.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 180%; font-weight: bold;&quot;&gt;Materials:&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;An old TV, or a regular step-down transformer.&lt;/li&gt;
&lt;li&gt;* A rectifier IC, or 4 diodes.&lt;/li&gt;
&lt;li&gt;A light dimmer.&lt;/li&gt;
&lt;li&gt;Alligator clips are nice, but not necessary.&lt;/li&gt;
&lt;li&gt;Soldering Iron.&lt;/li&gt;
&lt;li&gt;Solder.&lt;/li&gt;
&lt;li&gt;An old power cable.&lt;/li&gt;
&lt;li&gt;A surge protector with a breaker.&lt;/li&gt;
&lt;li&gt;2.5A fuse.&lt;/li&gt;
&lt;li&gt;Multimeter.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 180%;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Difficult to find materials:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 130%;&quot;&gt;A rectifier IC or 4 diodes:&lt;/span&gt;&lt;a href=&quot;http://upload.wikimedia.org/wikipedia/commons/thumb/e/e8/Bridge_rectifiers.jpg/590px-Bridge_rectifiers.jpg&quot; onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://upload.wikimedia.org/wikipedia/commons/thumb/e/e8/Bridge_rectifiers.jpg/590px-Bridge_rectifiers.jpg&quot; style=&quot;cursor: pointer; float: left; height: 187px; margin: 0pt 10px 10px 0pt; width: 184px;&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;On a basic level, a rectifier changes AC to DC.&lt;/li&gt;
&lt;li&gt;The outlets in your wall are 120VAC&lt;/li&gt;
&lt;li&gt;Most appliances run DC.&lt;/li&gt;
&lt;li&gt;You can find a rectifier in almost everything you plug into a wall power outlet.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If you cannot find one, or wish to make one yourself--make the rectifier using this &lt;a href=&quot;http://upload.wikimedia.org/wikipedia/commons/thumb/f/f5/Diode_bridge_alt_2.svg/557px-Diode_bridge_alt_2.svg.png&quot;&gt;diagram&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: 180%;&quot;&gt;Procedure:&lt;span style=&quot;font-size: 100%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Strip your old power cable on the female end, exposing the Black (hot) White (neutral) Green (ground) leads. Your cable may not have a ground, this is fine.&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Solder the Neutral, and hot leads to the two terminals on your light dimmer.&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Next take the other side of your light dimmer (the side that normally connects to the lights) and solder that into your step-down transformer.&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Next, you will need to do a little bit of debugging. The wires on your transformer may not be labeled or color-coded correctly, so it is up to you to find out which wires connect to which coils (i.e. high Voltage, low voltage, and input).&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Once you find out which output leads hook to the different coils on the transformer, plug each of them into your diode bridge or rectifier IC circuit.&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;After you rectify the AC from the output of your transformer solder a couple of wires to the output.&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Next, put something on the end of the output (I used an alligator clip) to make it easier for you to power your projects.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 180%;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Conclusion:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
This is not the best way to make a power supply, but it can be done with things from around your house, so you cannot complain. Using an old desktop ATX power supply as a lab power supply is a much better idea than making a power supply this way. You can easily find instructions on Google for to modify an ATX power supply into a lab bench power supply. However there is one advantage to this type of power supply, when you turn the light dimmer, you are actually varying the total output power and not just the voltage.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>A homemade Ultrasonic cleaner</title>
    <link href="https://obnauticus.com/2008/12/a-homemade-ultrasonic-cleaner/"/>
    <updated>2008-12-18T00:00:00-05:00</updated>
    <id>https://obnauticus.com/2008/12/a-homemade-ultrasonic-cleaner</id>
    <content type="html">&lt;p&gt;From cleaning car parts to cleaning cleaning jewelry, ultrasonic cleaners are used in a wide variety of applications. Wither it’s a sensitive diamond ring that needs a little polish, or an old spark plug covered in grease – Ultrasonics are the most popular method of choice for cleaning parts in little time with precision.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 180%; font-weight: bold;&quot;&gt;How Ultrasonic Cleaning works:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Ultrasonic cleaning works by tearing voids between particles in the cleaning solution, this is called cavitation. These little pockets of air explode when they come in contact with a solid surface. Some people report these explosions occurring at pressures up to 15,000PSI and temperatures up to 5,000K. Although these conditions are extreme, the pockets of air are so small that they only have enough power to tear off any surface dirt on the dirty object. You can even stick your hand in the ultrasonic cleaner while it is running.&lt;br /&gt;
&lt;br /&gt;
However, like all other things; machines with this amount of precision cost a large sum of money. This De-I-Why article is written to help you design your own Ultrasonic cleaner at a fraction of the price.&lt;br /&gt;
&lt;br /&gt;
This project is similar to all audio setups. Previous knowledge of audio hardware and setup is a real plus, and will help you lots with the design of this project.&lt;span style=&quot;font-size: 180%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 180%; font-weight: bold;&quot;&gt;Materials:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;= Hard to find around the house.&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;Oscilloscope (Nice if you have one, but not necessary).&lt;/li&gt;
&lt;li&gt;* Two Ultrasonic Transducers&lt;/li&gt;
&lt;li&gt;* A capable sound card (with a frequency response ≥the optimal resonating frequency for the transducers), or function generator (same restrictions apply).&lt;/li&gt;
&lt;li&gt;* Linear Amplifier (with an RMS &amp;gt; the n*the required power necessary to drive the transducers (e.g. 2 Transducers need to be driven at 55W (2x55Watts) -- therefore I need an amplifier with an RMS ≥110Watts) ). The amplifier&apos;s frequency response must be greater than or equal to the frequency necessary to drive your transducers.&lt;/li&gt;
&lt;li&gt;A soldering iron&lt;/li&gt;
&lt;li&gt;Solder&lt;/li&gt;
&lt;li&gt;Old RCA Audio cables.&lt;/li&gt;
&lt;li&gt;A stainless steel container capable of holding a cleaning solution (Jelly roll, or cookie tray will do as long as it is built with only one layer of steel).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Note: Items 3 and 4 can be replaced by buying an “Ultrasonic Generator,” however, they are generally very expensive, and do not have enough output power to drive more than one transducer.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 180%; font-weight: bold;&quot;&gt;Gathering the hard-to-find Materials:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;assets/images/2inchtrans2.jpg&quot; /&gt;1. Ultrasonic Transducers:&lt;br /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ultrasonic Transducers are very easy to find online, I got mine from eBay, a couple of 55Watt ones. Make sure the ones you get are designed for cleaner applications.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;A capable soundcard:&lt;br /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;My sound is the X-Fi Fatal1ty, I generated a high-frequency (44kHz) waveform within Adobe Audition and verified it was 44kHz on my oscilloscope to make sure it was able to drive the transducers. Check your manufacture&apos;s specifications for your sound card&apos;s frequency response or maximum sampling rate to find out what the maximum output frequency of your soundcard is.&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
  &lt;li&gt;A linear amplifier:&lt;br /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;Make sure the RMS of the power is equal to or greater than the total amount of power needed to drive your transducers (the sum of the power necessary to drive all of your transducers must be equal to or greater than the RMS of the power your amplifier provides).&lt;/li&gt;
&lt;li&gt;You must also make sure the frequency response of the amplifier is greater than or equal to the frequency which you plan to run your transducers at (usually around 40-46kHz).&lt;/li&gt;
&lt;/ul&gt;
&lt;div align=&quot;center&quot;&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://obnauticus.com/assets/images/PT2000.jpg&quot; /&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I chose to use the Pyle Pro PT-2000 because it provides 175W of RMS power over two channels with a frequency response of 10Hz to 50kHz. This amplifier both meets and exceeds the specs required to drive the transducers I picked. It is also relativly cheap. &lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Note: Do not buy an &quot;Ultrasonic Amplifier,&quot; these are just regular audio amplifiers. There is a particular seller on ebay which has photoshopped a Pyramid Pro 150W amplifier and charges about 40% more just reselling it on eBay under a different name.&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
  &lt;li&gt;A soldering Iron:&lt;br /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;If you don&apos;t already have one you need to get one. A tempreature controlled one is nice, but not necessary.&lt;/li&gt;
&lt;li&gt;I used my Weller WESD51, this soldering iron is nice for everything and is a popular choice among many hobbyists as well as professionals.&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
  &lt;li&gt;A Stainless Steel Container:&lt;br /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;Keep in mind that it will be filled with a cleaning solution, and therefore must be able to hold a cleaning solution.&lt;/li&gt;
&lt;li&gt;The container must be made of a something capable of resonating sound waves. It&apos;s also a good idea to look for corrosion resistant material. Stainless steel is the most popular choice in the world of ultrasonic cleaning.&lt;/li&gt;
&lt;li&gt;Make sure there is only one layer of metal between the stainless steel and the cleaning solution.&lt;/li&gt;
&lt;li&gt;I chose to use a Jelly Roll pan, there are obviously more choices out there. Be creative!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 180%; font-weight: bold;&quot;&gt;Procedure:&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Epoxy your ultrasonic transducers to the bottom of your stainless steel container. Make sure they are in locations which allows cavitation to occur evenly throughout the cleaning tank. I suggest spacing them diagonally from each other in a rectangular cleaning tank, so there is even cavitation throughout the entire volume of the cleaning tank. Make sure when epoxying them to the bottom that you try to keep the bond space between the transducers and the steel tank as small as possible. You can use vice grips or weights placed on top of the transducers to achieve this.&lt;/li&gt;
&lt;br /&gt;
&lt;li&gt;Now, cut off one end of an old RCA cable of your choice.Next, solder both of the wires (doesn&apos;t matter which one), to ONE of the pads in the picture, pointed out by red arrows. Do not solder both wires to one pad, solder one wire per pad, and solder both of them to a pad.&lt;/li&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;div align=&quot;center&quot;&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;https://obnauticus.com/assets/images/transducer.PNG&quot; /&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;li&gt;  Repeat step 2 for the other transducer.&lt;br /&gt;&lt;/li&gt;
&lt;li&gt; Next, plug the other end of the component cables into the output of your amplifier (left or right channels do not matter).&lt;br /&gt;&lt;/li&gt;
&lt;li&gt; Next, plug your sound card (or HF sin wave generator) into the input of your amplifier.&lt;br /&gt;&lt;/li&gt;
&lt;li&gt; Now, fill the stainless steel container with a cleaning solution of your choice (I used Isopropyl Alcohol &quot;iso alcohol,&quot; most people do not suggest using flammable materials because there is a chance it will explode, I didn&apos;t really care though).&lt;br /&gt;&lt;/li&gt;
&lt;li&gt; Make sure everything is hooked up correctly.&lt;br /&gt;&lt;/li&gt;
&lt;li&gt; Turn your amplifier on, and generate your HF sin wave (you can find some sound card wave generators on google, I used Adobe Audition).&lt;br /&gt;&lt;/li&gt;
&lt;li&gt; If that did not explode, then you should be seeing cavitation in the cleaning solution.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 180%; font-weight: bold;&quot;&gt;Conclusion:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
This should work for most cleaning applications, I have seen many people use Ultrasonic cleaning for cleaning grease off of old PCB’s, a well as a variety of different parts. Just make sure to change your cleaning solution out once you feel it has been tainted with whatever dirt you may have put into the cleaner.&lt;/p&gt;
</content>
  </entry>
  
</feed>