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

<channel>
	<title>Tony's Cafe</title>
	<atom:link href="http://girasoli.org/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://girasoli.org</link>
	<description>A blend of Retro Technology, Amateur Radio, and Educational Psychology...</description>
	<lastBuildDate>Thu, 04 Feb 2010 03:31:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Phone on the 900MHz Band</title>
		<link>http://girasoli.org/?p=270</link>
		<comments>http://girasoli.org/?p=270#comments</comments>
		<pubDate>Mon, 13 Apr 2009 02:27:36 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Amateur Radio]]></category>
		<category><![CDATA[G-NET]]></category>
		<category><![CDATA[Wireless]]></category>

		<guid isPermaLink="false">http://girasoli.org/?p=270</guid>
		<description><![CDATA[I&#8217;ve been putting together plans to get G-NET2 working &#8212; a wireless data link between my house and my friend&#8217;s house 6-7 miles away. I tried a few different antenna designs to work with WaveLAN cards and no luck yet! Each antenna design was a learning experience &#8212; after making each antenna, I&#8217;d review what [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://girasoli.org/wp-content/uploads/2009/04/efj.jpg"><img src="http://girasoli.org/wp-content/uploads/2009/04/efj-225x300.jpg" alt="efj" title="efj" width="225" height="300" class="alignright size-medium wp-image-276" /></a>I&#8217;ve been putting together plans to get <a href="http://girasoli.org/?cat=49">G-NET2</a> working &#8212; a wireless data link between my house and my friend&#8217;s house 6-7 miles away.  I tried a few different antenna designs to work with WaveLAN cards and no luck yet!  Each antenna design was a learning experience &#8212; after making each antenna, I&#8217;d review what I did wrong and try to make a better antenna.  Now I think I&#8217;ve come up with a good antenna design but to test it, I decided to use a phone (voice) mode instead of data.  If I test the antenna with two 900MHz radios, I can at least hear Doug on the other end and see if he&#8217;s coming in strong&#8230; or not at all.</p>
<p>I did some research on (of course) cheap 900MHz radios.  Now that I&#8217;ve had my ham license for a year, I&#8217;ve learned lots of good stuff about radios and antennas.  I learned that a cheap way to get on 900MHz phone is to convert a commercial 900MHz radio.  Most commercial 900MHz radios transmit over 1 Watt, the unlicensed limit.  Since I have my ham license, that is not a problem!  I settled on the E.F. Johnson 86xx series mobile radio.  Here&#8217;s what I did&#8230;</p>
<p><span id="more-270"></span><strong>Getting the Radios</strong></p>
<p>The E.F. Johnson (EFJ) 86xx series radio comes in a few different varieties and each model is explained at <a href="http://www.qsl.net/k0kn/efj.html">K0KN&#8217;s EFJ Radios Page</a>.  The EFJ radios are meant for talking with a repeater (they transmit on one frequency and receive on another) and trunking (radios can communicate on different channels (groups) on the same frequency).  I decided on getting a 8655 and a 8640.  Both can be configured for conventional (non-trunking) use.  The 8655 can be reprogrammed for simplex use (transmit on 927MHz and receive on 927MHz).  The 8640 can only receive in the 927MHz range, which is ok &#8212; I just want to be able to transmit from one radio and receive on the other.  (If I ever want to build a 900MHz repeater, I can by connecting a 8655 and 8640 together with something like the <a href="http://www.hamgadgets.com/product_info.php?products_id=64">ID-O-Matic</a>.)  Oh, why did I choose the 8640 instead of two 8655 radios?  Well, because the 8640 is usually cheaper!  I bought both radios on <a href="http://www.ebay.com">eBay</a>.</p>
<p><strong>Reprogramming the Radios</strong></p>
<p>To reprogram the radios, I had to do six things:</p>
<p>1. Order the replacement Ham-Only CPUs for the 8640 and 8655<br />
2. Build a programming interface (a RS-232 to TTL converter)<br />
3. Install the Ham-Only CPUs and replacement capacitors that came with the CPUs<br />
4. Reprogram the radios<br />
5. Check the voltages on receive and transmit<br />
6. Check to see if the 8655 can transmit to the 8640 on the same frequency</p>
<p><strong>Replacement Ham-Only CPUs</strong></p>
<p>I ordered these from Pete, N2MCI.  Email him at n2mci //at// hvc //dot// rr //dot// com and let Pete know what radio models you&#8217;re programming.  He&#8217;ll send you the appropriate CPUs and capacitors.</p>
<p><strong>Build a Programming Interface</strong></p>
<p><a href="http://girasoli.org/wp-content/uploads/2009/04/efj-programmer.png"><img src="http://girasoli.org/wp-content/uploads/2009/04/efj-programmer-150x150.png" alt="efj-programmer" title="efj-programmer" width="150" height="150" class="alignleft size-thumbnail wp-image-280" /></a>I built a programming interface following K0KN&#8217;s <a href="http://www.qsl.net/k0kn/schematics.html">recommendations</a>.  I had made a TTL to RS-232 converter using a MAX233 chip to build a <a href="http://girasoli.org/?p=143">RS-232 interface</a> for my Commodore 64. Using the MAX chip is a bit expensive, so I was glad to see K0KN&#8217;s &#8220;Two Transistor Level Converter&#8221;.  It was cheap, simple to build, and did the same thing as that MAX233 chip!  I modified K0KN&#8217;s schematic to pull power from the EFJ jack.  Click on the schematic thumbnail on the left to see the modified schematics.  After building the interface, I had to shave off around 2mm from either side of the RJ-45 plug so it would fit into the EFJ&#8217;s front microphone jack.</p>
<p><strong>Install the Ham-Only CPUs and Capacitors</strong></p>
<p>The CPUs are a drop in replacement.   See <a href="http://www.qsl.net/k0kn/efj.html">K0KN&#8217;s EFJ Page</a> for instructions on how to do this.  The capacitors were a little tricky, as they&#8217;re surface mount and very small.  Check the voltages on receive and transmit following K0KN&#8217;s directions.  On two of the three 8655 units I have, I needed to replace C917 to fix the receive voltage.  (Yep &#8212; one of them I didn&#8217;t need to do a thing!)  To give you an idea of what the actual voltages were like after the receive capacitor modification, I had 7.25VDC on receive and 1.48VDC on transmit.  Receive needs to be >= 2VDC and transmit needs to be &lt;8VDC on TP801 on a 8655.  </p>
<p>On the 8640 I had to replace C720 to fix the receive voltage.  I did not need to do any transmit modifications as all transmit voltages were in spec.  You must <a href="http://www.repeater-builder.com/johnson/efj-index.html">download</a> the model&#8217;s service manual to see where each capacitor is.  For C917 on the 8655, it&#8217;s in grid B5 on the bottom of the main board, shown on manual page 9-7.  You&#8217;ll have to remove the bottom cover, then remove RF sheild (15 Torx screws!)  For C720 on the 8640, it&#8217;s on the top of the main board, in the VCO module (see service manual, p. 9-8).  The VCO module is under the RF shield panel, held down with 4 Torx screws.</p>
<p>If you need to turn off the squelch or adjust it, this can be done by turning the potentiometer located at R13.  This is on the CPU board.</p>
<p><strong>Reprogram the Radios</strong></p>
<p>You&#8217;ll need the E.F. Johnson programming software to program the radios.  It is DOS based, very old, and you&#8217;ll have to search the Internet to find it.  Once you have it, unzip its contents and do the following.  In the examples below, the radios are programmed for 927.0125MHz.</p>
<p>Run: TRUNKING.EXE<br />
Press any key to continue</p>
<p><em>To Program a 8655 Radio</em><br />
Choose: Select &#8211; Mobile &#8211; 8605/10/15/20/55<br />
Use the arrow keys to select &#8220;Setup&#8221;.  The down arrow will display the<br />
Setup menu and you can make sure the right COM port is selected.<br />
Select &#8220;Edit&#8221; and press the down arrow to see the Edit menu.<br />
Select: Clear Worksheet<br />
Press Y<br />
Select: Edit Current Worksheet<br />
Use the arrow keys to move between fields.  After changing a field, press<br />
the Enter key to accept.  Change the following field:<br />
Frequency Band of Radio: 900<br />
Press any key when the frequency change warning appears.<br />
Arrow down to &#8220;1 &#8211; Unused&#8221;, select the &#8220;Unused&#8221; next to the &#8220;1&#8243; and press Enter<br />
For the mode selection, choose &#8220;Conventional Radio&#8221; and press Enter<br />
Type a &#8220;Note&#8221; (e.g. Test)<br />
For each group number, program a channel.  For example, we&#8217;ll program 927.0125MHz (channel 401 &#8212; for other channels see the <a href="http://girasoli.org/wp-content/uploads/2009/04/8640.8655.8615.freq.chart.pdf">frequency chart</a>) into Group 1 in talkaround (simplex) mode.</p>
<p>Use the arrow keys to go to &#8220;CHN NUM&#8221; next to &#8220;GR No 1&#8243; and type 401<br />
Change the &#8220;N&#8221; under &#8220;Talk-around&#8221; to Y.<br />
Do not change any other values.</p>
<p>Press CTRL-Enter to accept changes.<br />
Press CTRL-Enter again to accept changes.<br />
Press Enter to continue if prompted.</p>
<p><em>Program the radio</em><br />
Select &#8220;Radio Interface&#8221; from the main menu.<br />
From the Radio Interface menu, select: &#8220;Prompted &#8211; Write Configuration to<br />
Radio/Unit&#8221;<br />
Press Y to execute<br />
Press any key to begin<br />
After &#8220;Data was transferred &#8211; Hit any key!&#8221; is displayed, press any key!</p>
<p>Power off and power on the radio.<br />
Channel 401 in talkaround mode is now programmed into System 1, Group 1.</p>
<p><em>To program a 8640 Radio</em><br />
Choose: Select &#8211; Mobile &#8211; 8600/01/04/40/44<br />
Use the arrow keys to select &#8220;Setup&#8221;.  The down arrow will display the Setup menu and you can make sure the right COM port is selected.<br />
Select &#8220;Edit&#8221; and press the down arrow to see the Edit menu.<br />
Select: Clear Worksheet<br />
Press Y<br />
Select: Edit Current Worksheet<br />
Use the arrow keys to move between fields.  After changing a field, press the Enter key to accept.  Change the following field:<br />
Frequency Band of Radio: 900<br />
Press any key when the frequency change warning appears.</p>
<p>Arrow down to &#8220;1 &#8211; Unused&#8221;, select the &#8220;Unused&#8221; next to the &#8220;1&#8243; and press Enter<br />
For the mode selection, choose &#8220;Conventional Radio&#8221; and press Enter<br />
Type a &#8220;Note&#8221; (e.g. Test)<br />
For example, we&#8217;ll program 927.0125MHz (channel 01 &#8212; for other channels see the <a href="http://girasoli.org/wp-content/uploads/2009/04/8640.8655.8615.freq.chart.pdf">frequency chart</a>) for RX</p>
<p>Use the arrow keys to go to &#8220;CHN NUM&#8221; and type 01<br />
Do not change any other values.</p>
<p>Press CTRL-Enter to accept changes.<br />
Press CTRL-Enter again to accept changes.<br />
Press Enter to continue if prompted.</p>
<p>Program the radio<br />
Select &#8220;Radio Interface&#8221; from the main menu.<br />
From the Radio Interface menu, select: &#8220;Prompted &#8211; Write Configuration to Radio/Unit&#8221;<br />
Press Y to execute<br />
Press any key to begin<br />
After &#8220;Data was transferred &#8211; Hit any key!&#8221; is displayed, press any key!</p>
<p>Power off and power on the radio.<br />
Channel 401 in talkaround mode is now programmed into System 1, Group 1.</p>
<p><strong>Check the Voltages</strong></p>
<p>See <a href="http://www.qsl.net/k0kn/efj.html">K0KN&#8217;s EFJ Page</a> [<a href="http://girasoli.org/wp-content/uploads/2009/04/My-EF-Johnson-8615-8640-8655-Radios-Page.pdf">pdf</a>] and read about checking the receive and transmit voltages on TP801.</p>
<p><strong>Check the Radios</strong></p>
<p>Now that the 8640 and 8655 were programmed, I hooked an antenna up to each one (a random wire antenna) and talked into the 8655 and listened on the 8640.  It worked!  Many thanks to Pete&#8217;s (N2MCI) hard work to develop a replacement ham CPU and many thanks to Kyle&#8217;s (K0KN) efforts to put together all the EFJ 86xx information onto one web site.</p>
]]></content:encoded>
			<wfw:commentRss>http://girasoli.org/?feed=rss2&amp;p=270</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Roberts 808D 8-Track Capacitor List</title>
		<link>http://girasoli.org/?p=241</link>
		<comments>http://girasoli.org/?p=241#comments</comments>
		<pubDate>Sun, 06 Jan 2008 03:24:55 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Audio Projects]]></category>

		<guid isPermaLink="false">http://girasoli.org/?p=241</guid>
		<description><![CDATA[My brother is a 1970s fanatic. When he was an undergrad, he had a disco ball in his dorm room and many 8-tracks to go along with it. For his birthday a couple of years ago, I decided to get him a hi-fi stereo component 8-track player/recorder. Now that my brother had an 8-track player [...]]]></description>
			<content:encoded><![CDATA[<p>My brother is a 1970s fanatic.  When he was an undergrad, he had a disco ball in his dorm room and many 8-tracks to go along with it.  For his birthday a couple of years ago, I decided to get him a hi-fi stereo component 8-track player/recorder.  Now that my brother had an 8-track player in his <a href="http://girasoli.org/?p=63">Buick</a>, it was time to get something that could record on 8-tracks.  (MP3 to 8-track conversion, anyone?)  After doing some research, the Roberts &#8220;Rheem&#8221; 808D (similarly packaged as the AKAI CR-80D) seemed to fit the bill for a good piece of audio equipment.  Unfortunately after a few months in service, the audio began to disappear.  Since this piece of 8-track hi-fidelity (a paradox?) equipment is around 30 years old, the electrolytic capacitors might be on their way out.  As with the <a href="http://girasoli.org/arcade/?cat=50">Seeburg Sunstar</a> I&#8217;m restoring, any electronic device over 30 years old with electrolytic capacitors probably needs all the electrolytic capacitors to be replaced.  Since I don&#8217;t want to try to hunt down a service manual for the Roberts 808D, I opened up its chassis, noted all the electrolytic capacitors, ordered them and replaced them.  If someone else out there is looking to repair their Roberts 808D to listen to their <em>STONE GON&#8217;</em> Barry White 8-track, hopefully this list will help them!  I know I wish this list was out there for me to begin with&#8230;</p>
<p><span id="more-241"></span></p>
<p>Since I don&#8217;t have the schematics, I can&#8217;t properly designate the PCBs (Printed Circuit Boards) or capacitors.  So, I&#8217;ll have to describe the PCBs in a general way:</p>
<p><strong>Bottom of Unit, &#8220;Right PCB&#8221;</strong><br />
This PCB has four potentiometers soldered to the back of the PCB as well as the most electrolytic capacitors of all the PCBs.  You&#8217;ll have to unsolder some wires to work on this PCB, so be sure to take <a href="http://girasoli.org/wp-content/uploads/2008/01/dscf0013.jpg">pictures</a> beforehand.</p>
<ul>
<li>(2) 47uF 25V Radial</li>
<li>(6) 10uF 25V Radial (4 of them are 16V, but 25V will sub just fine)</li>
<li>(6) 33uF 16V Radial</li>
<li>(4) 4.7uF 25V Radial</li>
<li>(4) 100uF 25V Radial (2 of them are 6.3V, but 25V will sub just fine)</li>
<li>(2) 1uF 25V Radial</li>
<li>(2) 47uF 25V Axial (these are on the back of the PCB)</li>
</ul>
<p><strong>Bottom of Unit, In Between &#8220;Right PCB&#8221; and &#8220;Left PCB&#8221;</strong><br />
Be sure to note positive (+) and negative (-) on this huge <a href="http://girasoli.org/wp-content/uploads/2008/01/dscf0013.jpg">capacitor</a> for when you solder in the new capacitor.  (In my case, the purple wire was connected to the negative pole.)  The resistor that bridges the + and &#8211; poles is a 1/2W 220k Ohm carbon resistor.  Since the computer grade version of this capacitor was quite expensive, I opted for the &#8220;regular&#8221; aluminum electrolytic capacitor.  Since the &#8220;regular&#8221; version is much smaller, I used double-backed foam adhesive tape to mount the capacitor to the inside chassis.</p>
<ul>
<li>(1) 330uF 160V Computer Grade Radial</li>
</ul>
<p><strong>Bottom of Unit, &#8220;Left PCB&#8221;</strong><br />
You&#8217;ll have to unsolder some wires to work on this PCB, so be sure to take <a href="http://girasoli.org/wp-content/uploads/2008/01/dscf0014.jpg">pictures</a> beforehand.  The TO-221 transistor is a Hitachi 1061.  I didn&#8217;t replace it because it metered OK.</p>
<ul>
<li>(2) 100uF 25V Radial (1 of them is 6.3V, but 25V will sub just fine)</li>
<li>(1) 47uF 50V Radial</li>
</ul>
<p><strong>Top of Unit, &#8220;Motor Capacitor&#8221;</strong><br />
I didn&#8217;t replace this <a href="http://girasoli.org/wp-content/uploads/2008/01/dscf0019.jpg">capacitor</a> as it is relatively very costly and the motor was working fine and at the right speed.  This capacitor is the &#8220;can type&#8221; as it has a metal housing.</p>
<ul>
<li>(1) 2.5uF 260VAC Motor Capacitor</li>
</ul>
<p><strong>Top of Unit, &#8220;Upper PCB&#8221;</strong><br />
There are a couple of screws that hold this &#8220;sliding&#8221; <a href="http://girasoli.org/wp-content/uploads/2008/01/dscf0019.jpg">PCB</a> in place so be sure to note their position.</p>
<ul>
<li>(1) 470uF 10V Radial</li>
</ul>
<p><strong>Back of Unit, &#8220;Power Supply&#8221;</strong><br />
For the 1000uF 50V computer grade (CG) capacitor, since it was relatively inexpensive, I opted for it.  You could probably substitute a regular, aluminum electrolytic capacitor.  I once read that CG capacitors of 30 years ago are probably equivalent to &#8220;regular&#8221; aluminum electrolytic capacitors today because the technology has advanced.  There are noise and value benefits to CG capacitors, but, if you&#8217;re not too picky, you should be OK.</p>
<ul>
<li>(2) 470uF 25V Radial</li>
<li>(1) 1000uF 10V Radial</li>
<li>(1) 1000uF 50V Computer Grade Radial</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://girasoli.org/?feed=rss2&amp;p=241</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bring Back Citizens Band!  (Or, CB + Jeep = Channel 4)</title>
		<link>http://girasoli.org/?p=238</link>
		<comments>http://girasoli.org/?p=238#comments</comments>
		<pubDate>Fri, 04 Jan 2008 02:32:03 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Wireless]]></category>
		<category><![CDATA[cb]]></category>
		<category><![CDATA[citizens band]]></category>
		<category><![CDATA[jeep]]></category>

		<guid isPermaLink="false">http://girasoli.org/?p=238</guid>
		<description><![CDATA[I miss the days of Citizens Band (CB) radio &#8212; back in the 1970s and 1980s, the &#8220;Golden Age of CB&#8221; &#8212; where everyone seemed to have a CB. I guess CB could be compared to a cross between Internet Relay Chat (IRC) and push-to-talk (PTT) cell phones today. There is something else, though, that [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://girasoli.org/wp-content/uploads/2008/01/midland-13-1830.jpg"><img src="http://girasoli.org/wp-content/uploads/2008/01/midland-13-1830-sm.jpg" class="alignleft" alt="Mid-1970s Midland 13-1830" /></a>I miss the days of Citizens Band (CB) radio &#8212; back in the 1970s and 1980s, the &#8220;Golden Age of CB&#8221; &#8212; where <em>everyone</em> seemed to have a CB.  I guess CB could be compared to a cross between Internet Relay Chat (<a href="http://en.wikipedia.org/wiki/Irc">IRC</a>) and push-to-talk (<a href="http://en.wikipedia.org/wiki/Push_to_talk">PTT</a>) cell phones today.  There is something else, though, that CBing always afforded.  You can chat while driving.  If anything could bring strangers together to &#8220;shoot the breeze&#8221;, talk about common interests, or find out what lies ahead on the road, CB is it.  It&#8217;s free to use and the one-time equipment cost is less than a one year cell phone plan.  The problem is, where is it today?</p>
<p><span id="more-238"></span></p>
<p>CB is still alive and well in some places of the US, not to mention the world.  In the US, though, CB usage is very small compared to what it once was 20 years ago.  I recently hooked up my old CB in my car, put a magnetic-mount antenna on the roof and flipped through the channels.  I was surprised to hear nothing but static.  It was strange not to hear the people chatter that used to be there, especially on channels 11 and 14, which were local &#8220;chat&#8221; channels.  I suppose that brings me to the purpose of this article.  If I want to see a rebirth of CB I need to start somewhere.  </p>
<p>Since the CB is good for bringing strangers together to chat about similar interests, well, the Jeep is a good place to start.  Jeep (CJ, YJ, TJ, JK, etc.) Wrangler owners have the &#8220;Jeep Wave&#8221;.  Most of the time, Jeep Wrangler owners will wave to each other in passing on the road.  If all our Jeeps were outfitted with CBs, we could add more to that wave.  We could use our CBs to chat about anything Jeep related, not to mention meeting other fellow Jeepers.  Just listening to the chatter, too, can be enough entertainment for the drives to and from work.  </p>
<p>A number of Jeepers (and 4&#215;4 off-roaders) use CB to stay in touch when riding trails.  I&#8217;m advocating the use of CBs beyond trail usage &#8212; that we should use CBs to get &#8220;mobile and social&#8221; again.  While I&#8217;d like to see people other than Jeep drivers use a CB, I need to start with one population ready to jaw about lift kits, mudding, local trails, or whatever.  It might even avoid accidents &#8212; when I was driving my old &#8217;82 CJ-5, a YJ Jeeper gave me a Jeep Wave so huge he almost ran over the sidewalk.  A CB could&#8217;ve prevented that.  Alright, so I&#8217;m stretching it.  Anyway, here are some facts needed for choosing a CB and antenna for your vehicle as well as a short code of conduct.</p>
<p><strong>Purchasing a CB Radio</strong></p>
<p>You don&#8217;t need a brand-spanking-new CB.  There are new CBs out there that cost less than US$100, but you might run into reliability issues.  (If you do want a new CB, I recommend the <a href="http://www.galaxyradios.com/">Galaxy</a> brand &#8212; such as the 949 model, for example.  Its list price is US$149 and has everything you need in a good CB radio.)  The best CB can be a used CB that has stood the test of time, one from the 1970s or 1980s.  One can be purchased from <a href="http://www.ebay.com">eBay</a> or a flea market for $15 or less, not including shipping.   To provide some pricing reference, the 23 Channel Midland 13-1830 <a href="http://girasoli.org/wp-content/uploads/2008/01/midland-13-1830.jpg">pictured</a> above was purchased in good working condition via eBay for $1.99 + $10 shipping.  I&#8217;ve also purchased a 23 Channel SSB Midland 13-892 in good working condition for $25 + $10 shipping on eBay.  (Note the price difference between a non-SSB [AM only] and a SSB CB!)  New CBs can also be found on eBay or family-owned Amateur Radio / CB stores (there aren&#8217;t many left!) such as <a href="http://www.lentinicomm.com">Lentini Communications</a>.  A <em>Mobile CB</em> can go in your vehicle while a <em>Base CB</em> is set up for home use.  This article will focus on Mobile CBs.  Here is a list of features you should look for when purchasing a CB:</p>
<ul>
<li><strong>23 or 40 Channels:</strong>  The earlier mass-produced CB radios had 23 channels, then in the late 1970s, the FCC allocated 40 channels.  Back then, 40 channels were needed because of the number of people using CB.  In 2008, though, it&#8217;s easy to find a &#8220;quiet&#8221; channel so you don&#8217;t really need more than 23 channels.  While all new CBs have 40 channels, it&#8217;s OK to purchase a 23 channel CB as many of the channels are barely used these days.  Used CBs that only have 23 channels tend to cost less than 40 channel used CBs.</li>
<li><strong>SSB (Single Sideband a.k.a. &#8220;Sideband&#8221;):</strong>  The FCC limit for &#8220;normal AM&#8221; CB use is 4 Watts.  If you want to get more range out of your CB, get one with SSB.  SSB refers to using the USB (Upper Sideband) or LSB (Lower Sideband) of a frequency.  A CB with SSB has a switch for AM, USB, and LSB.  While all CBs transmit and receive with AM by default, the SSB capabilities allow for greater range by efficiently using 1/3 of a CB channel for transmitting and receiving.  Since you&#8217;re only using 1/3 of the frequency wave for a particular channel, the FCC allows 12 Watts for SSB on CB.  In order for other CBers to hear you on USB or LSB, though, they need to have a CB capable of SSB as well.  SSB CBs should also have a &#8220;Clarifier&#8221; knob (or something similar) for fine tuning the SSB if you&#8217;re having trouble hearing the other person.  If you&#8217;re only using the CB for short distance transmission (one to five miles or less) then you probably don&#8217;t need SSB.  If you want added range (maybe 15 miles or more, if there isn&#8217;t a lot of blocking terrain as CB signals are line-of-sight) and your friends have CBs with SSB, then go for it!  Think of it this way: AM-only CBs are great for trails and convoys.  CBs with SSB are good for that &#8220;extra mile&#8221; where your friends are within a 10 mile (or possibly more) radius.  The problem with SSB is the clarifier only adjusts the receiving frequency&#8230; not the transmit!  (Well, unless your CB has been illegally &#8220;unlocked&#8221; so both the receive and transmit can be adjusted &#8212; this is against FCC rules.)  This could make it difficult for more than two or three people to have a conversation and tune each other properly.  I&#8217;ve also found when using SSB in a mobile conversation, as the other station and I are moving (or one of us is moving) we have to adjust the clarifier every few minutes.  Not fun while driving!  Also, CBs with SSB tend to cost more than CBs that are AM only, too.</li>
<li><strong>Roger Beep:</strong>  This is an optional audible &#8220;beep&#8221; which occurs after your finish your transmission.  While very annoying on regular AM CB channels, this is good for SSB transmissions.  SSB transmissions use much less bandwidth than regular AM transmissions, so transmissions may sometimes be difficult to hear.  A Roger Beep when doing SSB transmissions helps the person receiving your transmission know when you&#8217;re done talking.  This is very helpful if you need to ask them to 10-9 (repeat message)!</li>
<li><strong>PA (Public Address):</strong>  Ever wanted a bullhorn under your hood so you can shout at your friends?  Having a PA feature allows you to connect a separate amplified PA speaker under the hood of your vehicle to the CB.  Flip the switch on the CB to &#8220;PA&#8221; and shout away.</li>
<li><strong>SWR (Standing Wave Ratio) Meter:</strong>  This meter is a must for any CB, whether as a separate unit or built in to the CB.  If you can get a CB with a SWR meter built in, you can save yourself some headaches.  When connecting an antenna system to a CB, you <strong>must</strong> check and adjust the SWR.  The SWR reading helps you tune your antenna and ensure that you have good antenna cable and a good antenna ground.  The closer the SWR to 1:1, the better.  The SWR must be less than 1.5:1.  Anything more than 2:1 for prolonged periods of time can damage your CB!</li>
<li><strong>Brand:</strong>  While the CB brands today aren&#8217;t of the same quality they were 20 years ago (with maybe the exception of Galaxy and President), any used CB brand should be ok.  The Midland, Realistic, Cobra, Uniden, and even JC Penney brands of 20 years ago are fine for a good, cheap CB.  Check <a href="http://www.cbtricks.com">CBTricks.com</a> and see if the brand and model you&#8217;re interested in has supporting documentation.  If there is a lot of information on the used CB you&#8217;re looking at, it may be something you should consider purchasing.  <em>Just make sure it transmits and receives before you buy it!</em></li>
</ul>
<p><strong>Purchasing an Antenna</strong></p>
<p>Any CB isn&#8217;t going to work well unless you pair it with a good antenna.  Most CB antennas are a 1/4 wavelength of the CB band, 27MHz (11 meters).  The problem then lies with antenna length as a 1/4 wavelength is about 108 inches (9 feet or 2.75m).  Nine feet is pretty long for antenna mounted on your vehicle&#8217;s bumper!  I recommend the next best type of antenna: the 5/8 wave wire wound antenna.  Your antenna should be mounted where most of it is not obstructed by the vehicle&#8217;s body.  The types of antennas you can purchase are listed below in order of recommendation:</p>
<ol>
<li><strong>5/8 Wave Wire Wound Antenna:</strong>  The best antenna in terms of efficiency and practicality is the 5/8 wave wire wound antenna, like the <a href="http://firestik.com">Firestik II</a>.  The Firestik II is a great CB antenna and has been around for a long time.  (I remember my dad pulling into the garage with his silver Pinto and forgetting to take the Firestik off his car back in the early 1980s.)  Even though the 4 feet or 5 feet Firestik II isn&#8217;t a 1/4 wave, 5/8 wave antennas have a better radiation pattern that concentrates energy at lower angles.  The price is very reasonable for a new Firestik II (less than US$30).  The Firestik II also has a thumb screw for easy SWR tuning (see the SWR note above in &#8220;Purchasing a CB Radio&#8221;).  The Firestik website has a great <a href="http://firestik.com/Tech_Docs.htm">tech library</a> for troubleshooting and installing their antennas.  <a href="http://firestik.com">Firestik</a> also sells mounts and antenna cable.
</li>
<li><strong>104&#8243; 1/4 Wave Stainless Steel Whip (a.k.a. &#8220;The Tree Pruner&#8221;):</strong>  While the 104&#8243; (or 102&#8243; in some catalogs) whip is the closest thing to a 1/4 wave of 27MHz, it might not be the best thing for a vehicle, especially a 4&#215;4 on some rough trails!  )Hence the nickname, &#8220;Tree Pruner&#8221;.)  Usually, it&#8217;s expected that a 4&#8243; spring will be at the base of the antenna, to bring its full length to 108&#8243;.  Unless you want to be ripping leaves off trees, the 5/8 wave wire wound antenna is probably a better choice.</li>
<li><strong>Base Loaded Antenna:</strong>  A &#8220;load&#8221; (whether &#8220;wire-wound&#8221;, &#8220;base&#8221;, or &#8220;middle&#8221;) is a wire coil that effectively increases the length of an antenna while keeping the height of the antenna relatively short.  While middle loaded antennas tend to be more efficient than base loaded antennas, a middle loaded antenna can be a bit top-heavy with a proper middle load.  Base loaded antennas are usually magnetic mount, which are good if you don&#8217;t want to drill holes <em>and</em> you have a metal roof on your vehicle.  The magnetic mount &#8220;Little Wil&#8221; from <a href="http://www.wilsonantenna.com/">Wilson Antenna</a> is a good magnetic mount base loaded antenna.</li>
<li><strong>Middle Loaded Antenna:</strong>  While the middle loaded antenna might be more efficient than a base loaded antenna, you need to be careful when selecting one.  Some manufacturers market middle loaded antennas that have a small, ineffective coil.  These &#8220;cheap&#8221; antennas usually cost less than US$15, so beware!</li>
</ol>
<p>I won&#8217;t even mention through-the-window CB antennas (similar to the old cellular car phones).  These types of antennas have awful performance and are only good for looks!</p>
<p>An antenna needs a good ground, so when mounting an antenna, be sure that its mounting bracket is in contact with the vehicle&#8217;s body or frame in some way.  You can check for continuity with a multimeter.  An antenna needs a good coax cable, such as a quality RG-58 50 Ohm cable with PL-259 connectors.  RG-58 and RG-58/U has a solid center conductor.  RG-58A/U has a stranded center conductor which makes the cable a little more flexible.  When running your antenna cable, be sure not to bend it more than 90 degrees.  (RG-59 is used for co-phasing antennas, which is outside the scope of this document.)  Having a bad ground and/or bad coax cable can contribute to bad SWR!</p>
<p><strong>CB + Jeep = Channel 4</strong></p>
<p>Now that I&#8217;ve explained a little bit about CBs and antennas, you might be ready to purchase and install.  There are plenty of installation guides out on the Internet; <a href="http://www.google.com/search?hl=en&#038;q=install+cb+antenna&#038;btnG=Google+Search">Google</a> is your friend.  A couple of friends and I want to install CBs and antennas in our vehicles, so hopefully I&#8217;ll post a CB install article in a few months.  Earlier I advocated the use of CBs with Jeep Wrangler owners.  Now that you have that CB in your Jeep, where do we congregate?  Channel 4 (and 16 [4 X 4 = 16]) are sometimes used by 4&#215;4 groups to communicate.  It makes sense that as Jeep owners, we should chat on CB Channel 4, with Channel 16 as an alternate channel.  Channels 4 and 16 don&#8217;t conflict with other official (or unofficial) CB channels for the most part.  Having the channels below 23 also covers those that have a 23 Channel CB.  So, as a recommendation, let&#8217;s communicate AM (&#8220;normal&#8221;) on Channel 4 and LSB on Channel 16.</p>
<p>So, the next time you give the &#8220;Jeep Wave&#8221; and see a CB antenna hanging off the other person&#8217;s Jeep, give a shout on Channel 4.  Maybe they&#8217;re listening and for the next few miles you can swap Jeep stories.  I also propose a short Code of Conduct, to keep things a bit organized on CB.  These aren&#8217;t anything new, just probably forgotten over the past 25 years&#8230;</p>
<p><strong>A Short CB Code of Conduct</strong></p>
<ol>
<li><strong>Be polite.</strong>  Rudeness and obscenities is the other thing that drove &#8220;good CB&#8221; into radio noise.  Besides, <em>FCC Rule 13 of Part 95, Subpart D</em> prohibits &#8220;obscene, indecent or profane words, language or meaning&#8221; in CB communications.  I once read that all the good CBers went to Ham for reasons including this.  These are reasons why politeness is the number one thing on this list.</li>
<li><strong>Don&#8217;t broadcast music, whistling, and sound effects.</strong>  I&#8217;m paraphrasing <em>FCC Rule 13 of Part 95, Subpart D</em> here, anyway.</li>
<li><strong>Keep broadcasts short.</strong>  Long ramblings are definitely out!</li>
<li><strong>Don&#8217;t &#8220;Tune Up&#8221; or modify the output power of your CB transmitter.</strong> The FCC prohibits communication with any CB station more than 155.3 miles (250km) away.  See  <em>FCC Rule 13 of Part 95, Subpart D</em>.  If you want to talk with radio stations that are far away, get your Amateur Radio (Ham) license!  It is not too difficult to get your Technician Class license if you study enough.  You can read more about getting your Ham license at <a href="http://arrl.org">ARRL</a>.</li>
<li><strong>Use a &#8220;handle&#8221; for your on-air CB persona.</strong>  Remember &#8220;Crazy Cooter&#8221; from the Dukes of Hazzard?  My dad&#8217;s handle back in the early 1980s was the &#8220;Chiselin&#8217; Ginuea&#8221;&#8230; classic!</li>
<li><strong>&#8220;Break&#8230;&#8221;:</strong> Before beginning communication on a channel, first <em>listen</em>.  If there is already a conversation going on, wait for a long enough pause in the conversation before joining in (also known as asking for a &#8220;break&#8221;).  Conversely, if you don&#8217;t hear a conversation going on, start your communication.  <em>Always</em> start your communication, though, with &#8220;break&#8221;.  For example, if you&#8217;re beginning communication on channel 19, &#8220;Break one-nine, break. This is the Chiselin&#8217; Ginuea.&#8221;
</li>
<li><strong>Use 10-codes and CB jargon where possible</strong>, at least the following:
<ul>
<li><strong>&#8220;10-4&#8243;:</strong> Message received.</li>
<li><strong>&#8220;10-9&#8243;:</strong> Repeat message. Example: &#8220;I barely heard what you said. 10-9.&#8221;</li>
<li><strong>&#8220;10-20&#8243;:</strong> Location.  Example: &#8220;What&#8217;s your 10-20?&#8221; or &#8220;What&#8217;s your 20?&#8221;</li>
<li><strong>&#8220;10-27&#8243;</strong>: I am moving to channel&#8230;  Example: &#8220;10-27 16.&#8221; (I am moving to channel 16.)
	</li>
<li><strong>&#8220;73&#8243;:</strong>  Regards.</li>
<li><strong>&#8220;Eighty-eights&#8221;:</strong>  Hugs and kisses.</li>
<li><strong>&#8220;Affirmative&#8221; or &#8220;Roger&#8221; or &#8220;Copy that&#8221;:</strong> Yes, OK.</li>
<li><strong>&#8220;Back door&#8221;:</strong> Following behind a vehicle. Example: &#8220;I got your back door.&#8221;</li>
<li><strong>&#8220;Front door&#8221;:</strong> In front of a vehicle.  Example: &#8220;I have your front door so follow me at this next turn.&#8221;</li>
<li><strong>&#8220;Negatory&#8221; or &#8220;Negative&#8221;:</strong> No.</li>
<li><strong>&#8220;Stand By&#8221; or &#8220;10-23&#8243;:</strong> Please wait.</li>
<li><strong>&#8220;MAYDAY&#8221;:</strong> ONLY FOR GRAVE EMERGENCIES.  To quote <em>FCC Rule 13 of Part 95, Subpart D</em>, it is prohibitied &#8220;to transmit the word &#8220;MAYDAY&#8221; or use any other international distress signal, EXCEPT when your station is located in a ship, aircraft or other vehicle which is threatened with GRAVE AND IMMINENT danger and you are requesting IMMEDIATE assistance.&#8221;</li>
</ul>
</li>
<li>Follow the official (only Channel 9) and the unofficial, suggested CB channels:</li>
<ul>
<li><strong>Channel 4</strong>: Jeep and 4&#215;4 <em>AM</em> Communications</li>
<li><strong>Channel 7</strong>: General Help / Assistance</li>
<li><strong>Channel 9</strong>: EMERGENCY COMMUNICATIONS ONLY</li>
<li><strong>Channel 11 &#038; 14</strong>: General Communications</li>
<li><strong>Channel 16 LSB (Lower Sideband)</strong>: <em>SSB</em> Communications</li>
<li><strong>Channel 19</strong>: Highway Trucker&#8217;s Channel &#8212; good to listen to for reports of road conditions from Truckers on highways.</li>
</ul>
</ol>
<p>There are plenty of <a href="http://www.google.com/search?hl=en&#038;q=cb+10+codes&#038;btnG=Google+Search">10-codes</a> out there and lots of <a href="http://www.google.com/search?hl=en&#038;q=cb+jargon&#038;btnG=Search">CB jargon</a>.  There are some good terms out there &#8212; &#8220;warden&#8221;, &#8220;flappers&#8221;, and &#8220;rookie rig&#8221;.  Best of luck and hope to hear you on the air.</p>
<p>73!</p>
<p>For the complete list of FCC rules for Citizens Band, you can consult Title 47, Chapter 1, Subchapter D, Part 95, Subpart D, &#8220;<a href="http://ecfr.gpoaccess.gov/cgi/t/text/text-idx?c=ecfr&#038;tpl=/ecfrbrowse/Title47/47cfr95_main_02.tpl">Citizens Band (CB) Radio Service</a>&#8221; online.</p>
<p>As a side note, if you want to hear what CB was like back in the &#8220;Golden Age of CB&#8221;, check out these <a href="http://www.google.com/search?hl=en&#038;q=%22vintage+cb+recordings%3A&#038;btnG=Search">sites</a> for actual recordings.  You will probably hear all the things you aren&#8217;t supposed to do in &#8220;good CB&#8221;. <img src='http://girasoli.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://girasoli.org/?feed=rss2&amp;p=238</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>WordPress Plugin: Get Recent Post</title>
		<link>http://girasoli.org/?p=26</link>
		<comments>http://girasoli.org/?p=26#comments</comments>
		<pubDate>Thu, 01 Nov 2007 02:32:54 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://girasoli.org/?p=26</guid>
		<description><![CDATA[This is a Wordpress plugin function that returns text from one post (the most recent) for one category.]]></description>
			<content:encoded><![CDATA[<p>This is a plugin that satisfies a simple need in <a href="http://wordpress.org">WordPress</a>.  A function that returns text from one post (the most recent) for one category.  That&#8217;s it!  <img src='http://girasoli.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />    Save the <a href="http://girasoli.org/~web/scripts/wp/get-recent-post.php.txt">Get Recent Post</a> plugin to your wordpress/wp-content/plugins directory, then remove the <code>.txt</code> extension.  You can see it in action on my site&#8217;s <a href="http://girasoli.org">front page</a> sidebar, with the &#8220;Site News&#8221; category.</p>
<p>(Versions of WordPress prior to 2.3 will need to use Get Recent Post <a href="http://girasoli.org/~web/scripts/wp/get-recent-post.1.3.2.php.txt">1.3.2</a>.)</p>
<p><strong>Update</strong>: New Release!  Download version <a href="http://girasoli.org/~web/scripts/wp/get-recent-post.php.txt">2.0</a> of Get Recent Post.  This new version will <em>ONLY</em> work with WordPress 2.3.x, 2.5.x, 2.6.x, and 2.7; it is not compatible with earlier versions of WordPress.  Please use version <a href="http://girasoli.org/~web/scripts/wp/get-recent-post.1.3.2.php.txt">1.3.2</a> of this plugin for older versions of WordPress.</p>
<p><span id="more-26"></span></p>
<p><strong>Function Usage</strong></p>
<p>After activating your plugin, you can place the get_recent_post() function anywhere in your php templates.   I placed it in my sidebar.php template,  as:</p>
<p>< ?php _e(get_recent_post(2,0,0,1,0,0)); ?></p>
<p>(Make sure you remove the space between <code>< </code> and </code><code>?php</code> in my example above&#8230; WordPress puts the space in there so PHP won&#8217;t process it.)</p>
<p>The syntax of the function is:</p>
<p><code>get_recent_post(post_category_id, post_display, link_to_post, paragraph_pad, title_style, trunc_more, alt_link)</code></p>
<p>For the <code>post_category_id</code> variable, 2 is my &#8220;News&#8221; Category ID.  For the <code>post_display</code>  variable, use the following values:</p>
<p><code>0 = Display the post title and content (* default)<br />
1 = Display the post title and excerpt<br />
2 = Display only the post title<br />
3 = Display only the content<br />
4 = Display only the excerpt</code></p>
<p>For the <code>link_to_post</code> variable, use the following values:</p>
<p><code>0 = Do not link the post title to the post's permalink (* default)</code><br />
<code>1 = Link the post title to the post's permalink</code><br />
<code>2 = Link the post title to the alternate link specified in alt_link</code></p>
<p>For the <code>paragraph_pad</code> variable, use the following values:</p>
<p><code>0 - Do not pad the content with < p > tags</code><br />
<code>1 - Pad the content with < p > tags (* default)</code></p>
<p>For the <code>title_style</code> variable, use the following values:</p>
<p><code>0 - Display the post as < p >< b >title< /b >< /p >post (* default)</code><br />
<code>1 - Display the post as < b >title< /b >:post</code></p>
<p>For the <code>trunc_more</code> variable, use the following values:</p>
<p><code>0 - Do not truncate post at < ! --more-- > tag (* default)</code><br />
<code>1 - Truncate post at < ! --more-- > tag</code></p>
<p>For the <code>alt_link</code> variable (after specifying 2 in link_to_post), use the following values:</p>
<p><code>'http://www.site.org'</code><br />
Note that the URL <strong>must</strong> be surrounded by apostrophes (single quotes). Otherwise, you will get an error.  If I wanted to link the title of the most recent post in category 2 to http://www.site.org, the function call syntax would look like this:</p>
<p>< ?php _e(get_recent_post(2,0,2,1,0,0,'http://www.site.org')); ?></p>
<p><strong>Function Output</strong></p>
<p>The output of the get_recent_post() function will look like the following:</p>
<p><strong>Title</strong></p>
<p>Content</p>
<p>This plugin has been tested to work with WP 2.2.1.  To see it in action, go to my <a href="http://girasoli.org">home</a> page and scroll towards the bottom of the sidebar, under &#8220;Site News&#8221;.</p>
<p>I sometimes receive questions as to how to display more than one post.  One fellow WordPress user, <a href="http://www.virushead.net/vhrandom/">VirusHead</a>, offered this solution with WordPress&#8217;s <a href="http://codex.wordpress.org/Template_Tags/wp_get_archives">wp_get_archives</a> template tag:</p>
<blockquote><p>I just added:</p>
<p>*?php wp_get_archives(&#8216;type=postbypost&#038;limit=20&#8242;); ?*<br />
Replace * with bracket (I hope this shows up).<br />
This is set to 20 titles, but you can set whatever number you want.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://girasoli.org/?feed=rss2&amp;p=26</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing UT2004 Special Edition (DVD) in Debian Sarge</title>
		<link>http://girasoli.org/?p=228</link>
		<comments>http://girasoli.org/?p=228#comments</comments>
		<pubDate>Wed, 28 Feb 2007 02:47:38 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Linux Development]]></category>

		<guid isPermaLink="false">http://girasoli.org/?p=228</guid>
		<description><![CDATA[&#8220;I think it&#8217;s gonna be an UNREAL night!&#8221; I am an advocate for excellent games that don&#8217;t need the latest and greatest hardware to run. More specifically, a fun, networked first person shooter that can run on an Athlon with 256MB of RAM! Unreal Tournament 2004 is one of those few games. A few years [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://girasoli.org/wp-content/uploads/2007/06/ut200421005.jpg"><img src="http://girasoli.org/wp-content/uploads/2007/06/ut200421005sm.jpg" alt="UT2004 - Drunken Master" class="alignleft" /></a><em>&#8220;I think it&#8217;s gonna be an <a href="http://en.wikipedia.org/wiki/Unreal_Tournament_2004">UNREAL</a> night!&#8221;</em></p>
<p>I am an advocate for excellent games that don&#8217;t need the latest and greatest hardware to run.  More specifically, a fun, networked first person shooter that can run on an Athlon with 256MB of RAM!  Unreal Tournament 2004 is one of those few games.  A few years ago, the demigod of DOOM, Fred, gave me the Special Edition of UT2004.  This particular edition comes in a silver case with a stereo headset mic and UT2004 on a DVD.  To this day, Fred and our friends still play this game.  I wanted to install UT2004 on a Linux box &#8212; so here are my notes on doing so on Debian Sarge.</p>
<p><span id="more-228"></span></p>
<p><strong>Beginning the Install</strong></p>
<p><em>This UT2004 install is performed through a terminal session.</em></p>
<p>I have a nVidia video card installed (a MX4000 card, to be exact).  The nVidia drivers will install the OpenGL drivers for this card which UT2004 needs.  If you have a similar nVidia card, you can read some <a href="http://girasoli.org/?p=31">instructions</a> I&#8217;ve posted for X Windows.</p>
<p>Make sure the user you&#8217;ll be using has access to the sound card:<br />
As root, edit /etc/group and add the username to the end of the audio group (for example: audio:x:29:tony)</p>
<p>UT2004 uses SDL (Simple Directmedia Layer) and OpenAL (Open Audio Library) in Linux.  You can use apt-get to install these:<br />
<code>apt-get libsdl1.2debian libopenal0 </code></p>
<p><strong>Mount the UT2004 DVD</strong></p>
<p>Insert the UT2004 DVD into the DVD drive and as root, type:<br />
<code>mount -t iso9660 /dev/hdb /mnt</code><br />
Where &#8220;iso9660&#8243; is the file format of the dvd, &#8220;/dev/hdb&#8221; is the device name of your DVD drive (in this case, it&#8217;s the slave drive on the IDE0 controller) and &#8220;/mnt&#8221; is the directory the DVD will be mounted to.</p>
<p>You should see, &#8220;mount: block device /dev/hdb is write-protected, mounting read-only&#8221;</p>
<p>Now, run the installer script:<br />
<code>sh /mnt/linux-installer.sh</code></p>
<p>Choose: OK<br />
Read the license agreement and click Exit<br />
Choose Yes to agree with the license.<br />
Choose No to not read the README file<br />
Choose OK to choose the default installation path (/usr/local/games/ut2004)<br />
Choose Yes to install symbolic links.<br />
Choose OK to choose the default location for the sym links (/usr/local/bin)<br />
Have only &#8220;Base Install&#8221; selected (default) and choose OK<br />
Choose Yes to install startup menu entries<br />
Enter your CD key and choose OK<br />
UT2004 will now install</p>
<p><strong>Installation Errors</strong></p>
<p>If you get a &#8220;Failed to fully write&#8230;&#8221; error, I was able to overcome this by copying the DVD to a directory on the hard drive.  I created a directory (called /root/ut2004dvd) and copied everything with the following command:<br />
<code>cp -R /mnt/* /root/ut2004dvd</code></p>
<p>This will take a relatively long time as ~4.5GB of data will be copied.  Then, to install from this directory, you have to set an environmental variable:<br />
<code>export SETUP_CDROM=/root/ut2004dvd</code></p>
<p>And re-run the installer script from the local copy of the UT2004 DVD:<br />
<code>sh /root/ut2004dvd/linux-installer.sh</code></p>
<p><em>NOTE:</em> If you still have troubles, I found an interesting workaround using the hdparm command to set the DVD drive speed to &#8220;1&#8243; and disable DMA.  As root, type the following commands. The first command will install the hdparm program.  Here, &#8220;/dev/hdb&#8221; is my DVD-ROM device.  If the second command (which sets the DVD drive speed to &#8220;1&#8243;) fails, it is ok.</p>
<p><code>apt-get install hdparm<br />
hdparm -E 1 /dev/hdb<br />
hdparm -d0 /dev/hdb</code></p>
<p>After issuing these commands, re-run linux-installer.sh following the above directions.  (See this <a href="http://www.linuxquestions.org/questions/showthread.php?s=&#038;forumid=2&#038;threadid=272725">thread</a> on LinuxQuestions.org for more info.)</p>
<p>Delete the local copy of the UT2004 DVD after completing the install (unless you want to keep it there!)<br />
<code>rm -rf /root/ut2004dvd</code></p>
<p><strong>Patching</strong></p>
<p>Download the latest official Linux patch from <a href="http://www.ut2004.com">www.ut2004.com</a> (as of this writing, it is v3355 for Linux).  For example, I&#8217;ve created an &#8220;incoming&#8221; directory in /root/ and I used wget to download the patch to /root/incoming/.</p>
<p><em>NOTE:</em> If you&#8217;re going to install the Epic ECE Bonus Pack, you must install it before installing the v3355 patch.</p>
<p>Unbzip and untar the file:<br />
<code>tar -xvjf ut2004-lnxpatch3355.tar.bz2</code></p>
<p>A new directory, UT2004-Patch will be created.  Copy the contents to the UT2004 directory:<br />
<code>cp -r UT2004-Patch/* /usr/local/games/ut2004/</code></p>
<p>Remove the UT2004-Patch directory when finished to save on drive space (if needed):<br />
<code>rm -rf UT2004-Patch</code></p>
<p>You can now start UT2004 from a terminal session (in X Windows) with the following command:<br />
<code>ut2004</code></p>
<p>If you get the following error:</p>
<p><code>Could not load OpenGL library</code></p>
<p><code>History:</code></p>
<p><code>Exiting due to error</code></p>
<p>Create a script in your home directory called ut-start that contains the following:</p>
<p><code>export LD_PRELOAD=libGL.so.1<br />
ut2004</code></p>
<p>Then you can start the script with <code>sh ut-start</code> and you&#8217;re all set!</p>
]]></content:encoded>
			<wfw:commentRss>http://girasoli.org/?feed=rss2&amp;p=228</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tony&#8217;s Arcade has a New Home</title>
		<link>http://girasoli.org/?p=226</link>
		<comments>http://girasoli.org/?p=226#comments</comments>
		<pubDate>Wed, 27 Dec 2006 01:54:39 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://girasoli.org/?p=226</guid>
		<description><![CDATA[Tony's Arcade has a new home at http://girasoli.org/arcade/]]></description>
			<content:encoded><![CDATA[<p>Well, it&#8217;s time to give my arcade posts their own home.  This hobby of mine has definitely taken on a life of its own!  I&#8217;ve created a proper new site and migrated all the arcade posts there. Update your bookmarks to include <a href="http://girasoli.org/arcade/">http://girasoli.org/arcade/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://girasoli.org/?feed=rss2&amp;p=226</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Billboard Time Capsule</title>
		<link>http://girasoli.org/?p=160</link>
		<comments>http://girasoli.org/?p=160#comments</comments>
		<pubDate>Mon, 26 Jun 2006 17:20:14 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Tech Stories]]></category>

		<guid isPermaLink="false">http://girasoli.org/?p=160</guid>
		<description><![CDATA[A coworker of mine told me about a billboard time capsule, so to speak, that is in an adjoining building to our office. The billboard had been in a hallway that had been locked off to card key access for a long time. A few years ago, that hallway was opened up for access to [...]]]></description>
			<content:encoded><![CDATA[<div style="text-align: center"><img alt="Billboard" id="image156" src="http://girasoli.org/wp-content/uploads/2006/06/bb_all.jpg" /></div>
<p>A coworker of mine told me about a billboard time capsule, so to speak, that is in an adjoining building to our office.  The billboard had been in a hallway that had been locked off to card key access for a long time.  A few years ago, that hallway was opened up for access to a new cafe.  A short walk, down the formerly blocked dead-end hallway, around a corner, and there it was.  A pristine glass billboard, no staple or tack marks, with three bills.  The billboard looked brand new&#8230; and the building was built in 1974!  The post on the left was for a ski wax service, no doubt by a student for students.  On the right were two computer related posts&#8230;</p>
<p><span id="more-160"></span></p>
<div style="text-align: center"><img alt="Rent A Mac" id="image157" src="http://girasoli.org/wp-content/uploads/2006/06/bb_rentamac.jpg" /></div>
<p>The top post was an advertisement for renting a Macintosh computer.  It was from UConn&#8217;s Close Quarters store.  This store eventually merged with UConn&#8217;s Co-op bookstore location but used to be separate and on Rte. 195.  It was the &#8220;Campus Lifestyle&#8221; store; you could buy computers, area rugs, and dorm room items.  This was the place my parents bought me my first IBM clone, a Toshiba 8088 laptop, for my CSE classes when I was a freshman.  I remember when Close Quarters rented Macs&#8230; so this ad must be from around 1990.</p>
<p>Below the &#8220;Rent A Mac&#8221; ad is a flyer for <a href="http://girasoli.org/?attachment_id=158">computer software</a>.  When I saw the list of wares I couldn&#8217;t help but chuckle.  One could purchase Ashton Tate Multimate v4.0 for US$148.50, down from US$565.00! Not only that, but you could buy a Microsoft Serial Mouse for US$90.  A steal, no doubt.  My favorite: Microsoft Word v1.0 for&#8230; US$148.50, only by certified check or money order. If you don&#8217;t have access to a bank for check services, be prepared to pony up 495 bucks!  That&#8217;s in 1990 dollars, of course.  <img src='http://girasoli.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div style="text-align: center"><img alt="Microsoft Word v.1.0" id="image159" src="http://girasoli.org/wp-content/uploads/2006/06/bb_word1.jpg" /></div>
]]></content:encoded>
			<wfw:commentRss>http://girasoli.org/?feed=rss2&amp;p=160</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>G-NET (The Grange Hall Network)</title>
		<link>http://girasoli.org/?p=146</link>
		<comments>http://girasoli.org/?p=146#comments</comments>
		<pubDate>Thu, 15 Jun 2006 17:12:49 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Computer Mediated Communication]]></category>
		<category><![CDATA[Electronics Projects]]></category>
		<category><![CDATA[G-NET]]></category>
		<category><![CDATA[Tech Stories]]></category>

		<guid isPermaLink="false">http://girasoli.org/?p=146</guid>
		<description><![CDATA[I&#8217;ve been told I should write some &#8220;less tech, more anecdotal&#8221; posts. (Mostly by friends who are tired of reading posts like how to build a Commodore 64 RS-232 interface.) OK. So, in that particular post, I referred to a null modem network I designed called G-NET. G-NET was the answer to our frustrations with [...]]]></description>
			<content:encoded><![CDATA[<p><img alt="Grange Hall, UConn, Spring 1991" class="alignright" id="image155" src="http://girasoli.org/wp-content/uploads/2006/06/grange.jpg" />I&#8217;ve been told I should write some &#8220;less tech, more anecdotal&#8221; posts.  (Mostly by friends who are tired of reading posts like how to build a Commodore 64 RS-232 <a href="http://girasoli.org/?p=143">interface</a>.)  OK.  So, in that particular post, I referred to a null modem network I designed called G-NET.  G-NET was the answer to our frustrations with data connectivity in our dorm, Grange Hall at UConn, in 1992.  In 1989, data jacks were installed in all the dorms on campus.  Most of them, like the ones in Grange, were not active.  (As a side note, the Grange data jacks didn&#8217;t become active until sometime around 2000.  8 years too late!  Although, had I decided that being an undergrad was a career&#8230;)  These inactive data jacks taunted us by saying, &#8220;Play Modem Wars with your 2400 baud modem, fool!&#8221;  We wanted something more; something high speed&#8230; something in the 38400 bps range.  (That&#8217;s 0.038Mbps up/down for you broadband compares.)  I figured I could probably make some kind of serial null modem network, at least between two nodes.  Something that could run over telephone wire.  Something with an intercom.  Ah yes, I would create&#8230; G-NET.  What follows is the story of G-NET, schematics, and photos of the Grange Hall dwellers that participated.  (The following photos were taken with an Apple <a href="http://en.wikipedia.org/wiki/Apple_Quicktake">QuickTake</a> 100 back in December of 1992.)</p>
<p><span id="more-146"></span> <img id="image147" class="alignright" alt="Doug with the Ladies" src="http://girasoli.org/wp-content/uploads/2006/06/dwl.jpg" />I started out by making two nodes.  One for my computer on the first floor and another for Doug (pictured) on the ground floor.  Doug was Grange Hall&#8217;s other resident computer geek, which put him in demand for Y-Term mainframe access.  (Who wants to walk all the way down to the Math Science Building to do their SPSS Stats homework?)  I drew a few drafts of each node and settled on something that was expandable and used telephone wire.  (Luckily <em>Logic Design</em> class &#8212; one of the few I paid attention in &#8212; helped me out.)  <img src='http://girasoli.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  A null modem allows two computers to connect their RS-232 (or COM) ports together.  To the communication (or game) software on the computers, it thinks there are modems that have made a connection already. Affordable modems at the time could only achieve 2400 or 9600 baud.  I wanted to make something cheap (less than 20 bucks) and didn&#8217;t keep my phone line busy. With the way modems dropped connections back then, too, they were better suited for crank calling.  (It was fun to hear your friend across the hall say, &#8220;Hello?  Hello?  &#8230; YOU&#8230;!&#8221; through the small, tinny sounding piezo speaker on an internal modem.)</p>
<p><img id="image149" class="alignright" alt="Tropher" src="http://girasoli.org/wp-content/uploads/2006/06/chris2.jpg" />My friends Doug and Tropher (who was my roommate &#8211; pictured) didn&#8217;t think I could complete it.  They knew I could do it&#8230; <em>completion</em> on the other hand with Tony at the time was&#8230; well, usually incomplete.  (I had a little problem with time management and common sense back then.  Including the time I ordered a small pizza for $6.25 from Dominos on a Thursday&#8230; Thursday was $5 large pizza night.)  I vowed to complete this project.  I can&#8217;t find the original schematics today, but, I have <a href="http://girasoli.org/?attachment_id=154">drafted</a> them from memory so you can get an idea.  I ordered the parts from <a href="http://www.allelectronics.com">All Electronics</a> and I was able to finish in one weekend, much to my friends&#8217; surprise.</p>
<p>Each node acted as a null modem.  The circuitry contained a relay which would close when DTR (Data Terminal Ready) was high.  This relay allowed the node to enter the serial connection.  Only two nodes could be active at a time, of course, since null modem connections can only be point to point.  Each node had an A/B switch &#8212; one node had to be set to &#8220;A&#8221; and the other to &#8220;B&#8221;.  The nodes were connected with four-conductor telephone wire with RJ-11 plugs.  Two of the conductors were for data communication.  One conductor was for ground, and the fourth conductor was for the &#8220;party line&#8221;.  The party line was an intercom system where every node could participate.  Press the push-to-talk button and everyone who had their speaker on would hear you.  (I believe I used a <a href="http://www.radioshack.com">Radio Shack</a> &#8220;project amplified speaker&#8221; for this&#8230; similar to the amplified speakers you plug into your computer today.)  You just needed to make sure you didn&#8217;t use the intercom while data traffic was active on the line.  The intercom&#8217;s signal blasted the data lines with interference!</p>
<p><img id="image148" class="alignright" alt="Phil at the Computer" src="http://girasoli.org/wp-content/uploads/2006/06/phil.jpg" />After proving it worked, Doug and I ran the telephone wire from my room to his room at 2am.  Late at night was a good time to hopefully evade any Resident Assistants (RAs) who kept watch over each floor.  We did our best to conceal the cable.  The telephone wire ran down the hallway on top of a wiring conduit and out the window at the end of the hall.  Then, through the ivy down the side of the building and into Doug&#8217;s window.  Our friends (who were up, too, either playing setback or typing papers like Phil &#8211; pictured) thought G-NET was stupid nerdy but interesting.  They definitely wanted to use our computers to play games against each other.  Remember, back in 1992, not everyone had a computer on their desk!</p>
<p>We stood on chairs in the hallway to covertly place the G-NET wire on top of the hallway wiring conduit.  As we were mounting the wire with cellophane tape, one of the RAs approached us.  We froze, like kids caught with their hands in cookie jars. The RA asked, &#8220;What are you doing?&#8221;  Doug says matter-of-factly, &#8220;Setting up a null modem network.&#8221;  One blank look from the RA, a shrug of the shoulders, and the RA walked away.  We were in disbelief&#8230; we thought we were going to hear something regarding breaking a fire code (or something like that!) One hundred feet of telephone wire, a few connections later, and we were in business.  We were  surprised a serial link could travel 100 feet!</p>
<p>The whole intercom thing probably lasted a couple of days.  Doug got tired of hearing me yell, &#8220;C&#8217;mon let&#8217;s play a game!&#8221; He also might not have appreciated my imitation of Stimpy the Cat saying, &#8220;CHEW!&#8221; There was also the &#8220;Tropher Bird&#8221;.  That&#8217;s when my roommate, Chris, would annoyingly whistle like a bird to wake Doug up at 8am.  <em>After</em> Doug went to bed at sunrise.  The intercom worked like a charm.  The data link did its thing &#8212; we could transfer files back and forth with <a href="http://en.wikipedia.org/wiki/Zmodem">ZMODEM</a> or play modem games without tying up our phones.  Doug&#8217;s G-NET node physically moved by itself on his desk one night, too.  It made Doug and I jump.  Apparently, someone walking into Grange Hall saw this hidden beige wire in the ivy and tugged on it.</p>
<p><img alt="Grange Hall on a Snowy December Night" class="alignright" id="image150" src="http://girasoli.org/wp-content/uploads/2006/06/snow.jpg" />After building these two nodes, Chris and another resident, Nick, wanted to get in on the network.  Chris and Doug made me sign a contract that I would finish (like I said, they knew me too well&#8230;)  Well, I never built those extra nodes. (I did give their money back to them, though!) <img src='http://girasoli.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   As for the &#8220;contract&#8221;, it got lost somewhere.  Maybe in the Grange boiler room along with other &#8220;lost things&#8221; (such as Tom&#8217;s pet snake that scared the heck out of the cleaning lady).  Finals arrived, the Fall semester came to an end, and we all went home for the Winter break.  (The photo above was taken out the hallway window by my room.)  Today, students in Grange Hall have their high-speed 100Mb connections in every room.  Ah, if they only knew what we had to go through 14 years ago. May they wake up to a Tropher Bird during finals week.</p>
]]></content:encoded>
			<wfw:commentRss>http://girasoli.org/?feed=rss2&amp;p=146</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RS-232 Interface for the Commodore 64</title>
		<link>http://girasoli.org/?p=143</link>
		<comments>http://girasoli.org/?p=143#comments</comments>
		<pubDate>Sat, 10 Jun 2006 02:41:28 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Commodore 64]]></category>
		<category><![CDATA[Computer Mediated Communication]]></category>

		<guid isPermaLink="false">http://girasoli.org/?p=143</guid>
		<description><![CDATA[I&#8217;ve always been interested in computer mediated communication. When I was an undergraduate and should&#8217;ve been studying, I wrote a terminal program in PASCAL to get two XT clones to communicate to each other. This led to the creation of G-NET in 1992 (short for Grange Network, as I lived in Grange Hall at UConn). [...]]]></description>
			<content:encoded><![CDATA[<p><img id="image141" class="alignleft" alt="Picture of the VicModem" src="http://girasoli.org/wp-content/uploads/2006/06/vicmodem.jpg" />I&#8217;ve always been interested in computer mediated communication.  When I was an undergraduate and should&#8217;ve been studying, I wrote a terminal program in <a href="http://en.wikipedia.org/wiki/Pascal_programming_language">PASCAL</a> to get two <a href="http://en.wikipedia.org/wiki/XT_bus_architecture">XT</a> clones to communicate to each other.  This led to the creation of <a href="http://girasoli.org/?p=146">G-NET</a> in 1992 (short for Grange Network, as I lived in Grange Hall at UConn).  G-NET was a null modem serial network with a party-line intercom that used telephone wire.  I digress&#8230; that is a completely different <a href="http://girasoli.org/?p=146">story</a>!  At any rate, before the G-NET days I had my Commodore 64 (C64).  I always wanted my C64 to be able to communicate with the world but I couldn&#8217;t afford a modem at the time.  Not to mention monthly dialup fees! Years later, I discovered Jeff Ledger&#8217;s <a href="http://www.petscii.com/">PETSCII</a> pages.  On his website, he details how to connect your trusty C64 to Internet Commodore BBSes (and <a href="http://qlink.petscii.com/">Q-Link</a>, no less!) via a PC.  I decided I had to make an interface for my C64 to do the same.</p>
<p><span id="more-143"></span></p>
<p><strong>The MAX233 Chip and Other Components </strong></p>
<p>Jeff&#8217;s <a href="http://telbbs.petscii.com/">TELBBS</a> page lists a couple of different serial interfaces for C64 &#8211; PC connectivity.  One of the interfaces uses a MAX233 chip for RS-232 communications, which provides a high baud rate (2400 <img src='http://girasoli.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) between the C64&#8242;s User Port and the PC&#8217;s COM port.  I wanted to improve on the MAX233 schematic a bit and use a 9-pin serial connector instead of 25-pin.  I also wanted to make this interface a null modem, as I was going to connect it directly to a PC.  I found through testing (and remembering I had to do the same in the G-NET null modem days!) that I had to connect some pins together for the null modem aspect to work.  On the PC serial port side, <em>Data Carrier Detect</em> (1), <em>Data Terminal Ready</em> (4), and <em>Data Set Ready</em> (6) needed to be connected together.  The <em>Request to Send</em> (7) and <em>Clear to Send</em> (8) pins also needed to be tied together.  These pin connections make things easier on the PC side for allowing communication.  Also, the 9-pin configuration is needed as most PCs today don&#8217;t have a 25-pin COM port.  You can view and download my modified schematic <a href="http://girasoli.org/?attachment_id=153">here</a>.  (Note: Pin 2 on the C64 User Port provides the +5VDC.  You won&#8217;t need an external power supply for this interface.)  The components list is (all parts were ordered from <a href="http://www.digi-key.com">Digi-Key</a>):</p>
<ul>
<li>MAX233ACPP-ND (RS-232 IC for Serial Communications)</li>
<li>A24810-ND (20 Pin Tin IC Socket)</li>
<li>7109FE-ND (9 Pin DB9 Solder Cup Female Connector)</li>
<li>909C-ND (Gray Plastic Backshell for DB9 Connector)</li>
<li>PCC1893CT-ND (1uF 25V Ceramic Capacitor)</li>
</ul>
<p><strong>[Tony's <a href="http://girasoli.org/?attachment_id=153">C64 User Port to RS-232 Schematics</a>]</strong></p>
<p>I could&#8217;ve purchased a User Port connector (<a href="http://www.digi-key.com">Digi-Key</a> part # EDC307240-ND) but, it&#8217;s easier to recycle an old C64 User Port modem.  An old User Port modem is perfect for an interface as it has the User Port and a circuit board all in a nice enclosure.  I purchased a User Port modem (more specifically, a VICMODEM) off <a href="http://www.ebay.com">eBay</a>.  C64 modems like the VICMODEM had an RJ-22 jack which connected to your phone&#8217;s handset jack.  To connect to a BBS in the good ol&#8217; days, you would first dial the BBS with your phone. Then, you would connect the handset cord from the phone to the modem after you heard the connect tones.  I also decided I was going to keep things neat and reuse the RJ-22 connector.  The RJ-22 connector would be utilized for the PC cable with the 9-pin female connector.</p>
<p><strong>Modifying the VICMODEM </strong></p>
<p>I pried apart the VICMODEM enclosure very carefully with a flat head screwdriver.  Then, I removed the circuit board, and desoldered <em>everything</em> off.  (Well, except for the LED, switch, User Port connector and RJ-22 jack.  I figured I could use the LED and switch for future enhancements!)  That was a tedious hour of time.  Using a multimeter, I figured out which holes on the circuit board led to the pins I needed on the User Port and RJ-22 connectors.  I marked each hole and soldered in the wires.  I then used a small project circuit board and soldered a 20 pin IC socket and 1uF capacitor in place.</p>
<p>You should be able to find the &#8220;small project circuit board&#8221; at <a href="http://www.radioshack.com">Radio Shack</a> or your favorite electronics store.  I was able to find one in my parts bin in the basement, along with a 9-pin female serial connector.  Believe it or not, these two components were from the G-NET project back in 1992!  I was supposed to make more G-NET nodes for my friends in Grange Hall but&#8230; didn&#8217;t have the time to complete them.  Even after I wrote a promissory note that I would finish those nodes (my friends knew me too well&#8230;) <img src='http://girasoli.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   Anyway, I believe I ordered the circuit board at the time from <a href="http://www.allelectronics.com">All Electronics</a>.  (You can still find it there in the &#8220;Perf Boards&#8221; section, part # PC-1.)  So, in this project, G-NET lives on!</p>
<p>Following the <a href="http://girasoli.org/?attachment_id=153">schematics</a>, I soldered together the components like <a href="http://girasoli.org/?attachment_id=140">this</a>.  You can see another photo of the small circuit board <a href="http://girasoli.org/?attachment_id=145">folded in</a> so I could close the modem case.</p>
<p><strong>Making the VICMODEM to PC Cable </strong></p>
<p>For the cable going to the PC, I used a piece of CAT3 cable I had laying around.  You can use almost any wire, as long as there are three conductors for send, receive, and ground.  On the VICMODEM&#8217;s circuit board, I wired the send, receive, and ground lines (that go to the PC) on pins 1, 2, and 3 on the RJ-22 jack.  I then crimped a RJ-22 plug onto two of the wire pairs in the CAT3 cable.  (I used two conductors for send/receive on one pair, and one conductor for ground on the other pair.) You can buy RJ-22 modular crimp plugs and an RJ-22 crimper on <a href="http://www.ebay.com">eBay</a>.  Try to get a ratchet crimper if you can &#8212; it&#8217;s so much easier to crimp.</p>
<p>On the other end of the CAT3 cable, I soldered the 3 wires onto send, receive, and ground on the 9-pin female connector.  Then I soldered jumper wires to tie the appropriate pins together (following the <a href="http://girasoli.org/?attachment_id=153">schematics</a>) on the 9-pin female connector.  After <a href="http://girasoli.org/?attachment_id=152">everything</a> was soldered, I screwed the D-sub hood onto the 9-pin connector.  The interface and cable were all set!</p>
<p><strong>Testing the C64 to PC Interface</strong></p>
<p>I downloaded some C64 <a href="http://www.google.com/search?hl=en&#038;q=terminal+commodore+64+software&#038;btnG=Google+Search">Terminal software</a>, launched a terminal program on my PC, hooked everything up, and voila!  I could type back and forth between the two computers.  Very nice!  Now I can use this interface to &#8220;dial&#8221; Commodore BBSes that are <a href="http://www.petscii.com/telbbs/index.html">available</a> on the Internet.  Here&#8217;s one for the good ol&#8217; days!</p>
]]></content:encoded>
			<wfw:commentRss>http://girasoli.org/?feed=rss2&amp;p=143</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Creating a Daemon in Debian Linux</title>
		<link>http://girasoli.org/?p=120</link>
		<comments>http://girasoli.org/?p=120#comments</comments>
		<pubDate>Mon, 05 Jun 2006 20:12:36 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Linux Development]]></category>

		<guid isPermaLink="false">http://girasoli.org/?p=120</guid>
		<description><![CDATA[There have been plenty of times where I want to implement a simple daemon in Debian Linux. I know, I know&#8230; I could just install a Debian package and have the daemon created for me (if it&#8217;s included). There are times, though, where I want to compile the latest version of an application (like Asterisk). [...]]]></description>
			<content:encoded><![CDATA[<p>There have been plenty of times where I want to implement a simple daemon in Debian Linux.  I know, I know&#8230; I could just install a Debian package and have the daemon created for me (if it&#8217;s included).  There are times, though, where I want to compile the latest version of an application (like <a href="http://www.asterisk.org">Asterisk</a>).  Also, I might want to compile <a href="http://darkice.sourceforge.net">darkice</a> with <a href="http://lame.sourceforge.net">lame</a> support. (Darkice only has ogg support in the Debian Sarge package).  Preferably, I&#8217;d like to create a daemon which sets mixer levels <em>then</em> runs darkice.  I&#8217;ve found various tutorials and howto docs on the Internet but they haven&#8217;t been simplified enough.  This post will outline a straightforward way to create a daemon in Debian Linux.   In this example, I am running Debian Sarge.</p>
<p><span id="more-120"></span><strong> Creating the Init Script</strong></p>
<p>Debian has a skeleton daemon script that you can modify: /etc/init.d/skeleton.  Let&#8217;s modify this init script to adjust the mixer and run darkice as a daemon.  First, create a copy of the skeleton script and name it to something relevant to your to-be-daemonized application.  We&#8217;ll use darkice as the example.</p>
<blockquote><p><code>cp /etc/init.d/skeleton /etc/init.d/darkice</code></p></blockquote>
<p><strong>Set the Variables </strong></p>
<p>Edit /etc/init.d/darkice with your favorite Linux editor.  At the top, modify the comments section to describe the daemon, author, and version.  Below the comments section, change the DESC and NAME variables.  NAME is the executable file of the program (the NAME variable [as $NAME] is used throughout the script).  Also, set the proper path for the DAEMON variable.  For my /etc/init.d/darkice dameon, I set the variables like this:</p>
<blockquote><p><code>DESC="Darkice daemon"<br />
NAME=darkice<br />
DAEMON=/usr/local/bin/$NAME</code></p></blockquote>
<p><strong>Change the Start Case</strong></p>
<p>Under the comment, &#8220;# Function that starts the daemon/service&#8221; there is a line that begins with &#8220;start-stop-daemon &#8211;start&#8221;.  This line needs to be modified to run the executable.  For my darkice example, I changed this line to:</p>
<blockquote><p><code>start-stop-daemon --start --quiet --background --make-pidfile --pidfile $PIDFILE --exec $DAEMON -- -c /etc/darkice/darkice.mp3.cfg -v 0 &#038;> /dev/null</code></p></blockquote>
<p>Darkice takes some arguments; in this case, everything after the last &#8220;<code>--</code>&#8220;.  &#8220;<code>-c /etc/darkice/darkice.mp3.cfg</code>&#8221; is for specifying the configuration file.  &#8220;<code>-v 0</code>&#8221; turns verbosity off, and &#8220;<code>&#038;> /dev/null</code>&#8221; makes any text that&#8217;s returned by darkice to go to /dev/null so no one sees it.</p>
<p><strong>Extra Command(s) at Start</strong></p>
<p>When the dameon starts, I also want it to set some mixer settings.  In my case, I have <a href="http://www.jpj.net/~trevor/aumix.html">aumix</a> set the volume level to 75 and the record input to line.  This statement goes right above the &#8220;start-stop-daemon &#8211;start&#8221; line:</p>
<blockquote><p><code>aumix -l75 -lR</code></p></blockquote>
<p><strong>Change the Stop Case</strong></p>
<p>Under the comment, &#8220;# Function that stops the daemon/service&#8221; there are two lines:</p>
<blockquote><p><code>start-stop-daemon --stop --quiet --pidfile $PIDFILE \<br />
--name $NAME</code></p></blockquote>
<p>Replace those two lines with the following line:</p>
<blockquote><p><code>kill `cat $PIDFILE`</code></p></blockquote>
<p>This line will kill the program based on its pid (via the PIDFILE variable). As a side note, the trailing &#8220;\&#8221; on the first line only means that the statement continues on the next line.  This is useful for making a long statement look pretty.</p>
<p>After making these edits, save your daemon file and quit the editor.  Since the daemon was copied from /etc/init.d/skeleton, all the appropriate file permissions are intact.</p>
<p><strong>Install the Daemon</strong></p>
<p>The update-rc.d command creates the proper symlinks for the daemon so it will start at boot time and stop at shutdown.  For the darkice example, I ran the following command.  I specified &#8220;99&#8243; so the daemon will start last at bootup.</p>
<blockquote><p><code>update-rc.d darkice defaults 99</code></p></blockquote>
<p><strong>Testing the Daemon</strong></p>
<p>You can try starting and stopping the daemon with (in the darkice example) &#8220;/etc/init.d/darkice start&#8221; and &#8220;/etc/init.d/darkice stop&#8221;.  You can also restart your Debian box and make sure your daemon loads at boot.  One way to check is with the ps command.  A &#8220;ps -A | grep darkice&#8221; command will display any running processes that contain &#8220;darkice&#8221;.</p>
<p><strong>Removing Symlinks to the Daemon</strong></p>
<p>If you want to stop the daemon from starting at boot and stopping at shutdown, use the following command.  (This is with the darkice example.)</p>
<blockquote><p><code>update-rc.d -f darkice remove</code></p></blockquote>
<p>The &#8220;-f&#8221; switch forces the removal if the /etc/init.d/darkice daemon script still exists.</p>
<p>Thanks to the <a href="http://wiki.debianhelp.org/pmwiki.php/DebianHelpPages/DebianInitScripts">debianHELP Wiki</a> for help in creating this post.</p>
]]></content:encoded>
			<wfw:commentRss>http://girasoli.org/?feed=rss2&amp;p=120</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>ddclient and a Linksys Router</title>
		<link>http://girasoli.org/?p=119</link>
		<comments>http://girasoli.org/?p=119#comments</comments>
		<pubDate>Wed, 26 Apr 2006 02:09:27 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Linux Development]]></category>

		<guid isPermaLink="false">http://girasoli.org/?p=119</guid>
		<description><![CDATA[Honestly, where would rogue dynamic DNS servers be without a proper DDNS client to point users to? ddclient is an excellent DDNS client for Linux users who need to update their DNS name whenever their IP changes. Unfortunately, ddclient doesn&#8217;t seem to work &#8220;out of the box&#8221; when used behind a Linksys firewall. When ddclient [...]]]></description>
			<content:encoded><![CDATA[<p>Honestly, where would rogue dynamic DNS servers be without a proper DDNS client to point users to?  <a title="ddclient home" href="http://ddclient.sourceforge.net/">ddclient</a> is an excellent DDNS client for Linux users who need to update their DNS name whenever their IP changes.  Unfortunately, ddclient doesn&#8217;t seem to work &#8220;out of the box&#8221; when used behind a Linksys firewall.  When ddclient is installed in Debian (with <code>apt-get install ddclient</code>), the install script prompts for the proper values to update your DDNS name.  These values are placed into a generic /etc/ddclient.conf configuration file, but won&#8217;t update the dyndns.org DDNS service from behind a Linksys router / firewall.  After some research on the Internet and some trial and error, I was able to create a ddclient.conf that works.  What follows is an /etc/ddclient.conf file that you can modify to use on your Linux server if you&#8217;re having the same problems I had.  I&#8217;ve tested this configuration file with a BEFSR41 Linksys firewall / router.</p>
<p><span id="more-119"></span> /etc/ddclient.conf:</p>
<blockquote><p><code>pid=/var/run/ddclient.pid</code></p>
<p><code>use=linksys,    fw=192.168.1.1:80<br />
</code><code># Replace [password] with the Linksys router password</code><br />
<code>fw-login=user,  fw-password=[password]</code></p>
<p><code>login=[ddns username]</code><br />
<code>password=[ddns password]  custom=yes</code><br />
<code>server=members.dyndns.org,      \</code><br />
<code>protocol=dyndns2        \</code><code><br />
</code><code>yourddnsdomain.com</code></p></blockquote>
<p>All you have to do is type in the required fields (denoted with the &#8220;[" and "]&#8220;&#8230; don&#8217;t type the &#8220;[" and "]&#8220;, of course!), and change yourddnsdomain.com to your domain name.  For a version 2 Linksys router, use &#8220;use=linksys-ver2&#8243; and for version 3, &#8220;use=linksys-ver3&#8243;.  The &#8220;use&#8221; variable tells ddclient what URL to use for the &#8220;Status&#8221; page.  Since the Linksys router doesn&#8217;t use a user name, anything really can go after &#8220;fw-login=&#8221;. I use &#8220;user&#8221; for simplicity&#8217;s sake, even though it doesn&#8217;t matter.  If your router has a different IP address than 192.168.1.1, then change the address after &#8220;fw=&#8221;.  I&#8217;ve only tested this with dyndns.org&#8217;s service, but you might be able to use this with other DDNS services if you change the ddns server after &#8220;server=&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://girasoli.org/?feed=rss2&amp;p=119</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Daimonin and Mac OS X 10.3.9</title>
		<link>http://girasoli.org/?p=73</link>
		<comments>http://girasoli.org/?p=73#comments</comments>
		<pubDate>Sun, 08 Jan 2006 00:18:10 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Mac OS X]]></category>

		<guid isPermaLink="false">http://girasoli.org/?p=73</guid>
		<description><![CDATA[Well, Matt (of UConn dotmatt fame) has convinced us at work to jump on his Daimonin server. Daimonin is a free MMORPG client and server program that is based on the Crossfire MMORPG. I remember playing Crossfire once a few years back, but wasn&#8217;t able to devote the time needed to get deep into that [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://girasoli.org/wp-content/uploads/2006/01/aan.jpg" alt="Daimonin Screenshot" title="Daimonin Screenshot" width="235" height="168" class="alignleft size-full wp-image-265" />Well, Matt (of UConn dotmatt fame) has convinced us at work to jump on his Daimonin server.  <a href="http://www.daimonin.net">Daimonin</a> is a free MMORPG client and server program that is based on the <a href="http://crossfire.real-time.com/">Crossfire</a> MMORPG.  I remember playing Crossfire once a few years back, but wasn&#8217;t able to devote the time needed to get deep into that game.  (As is the usual case with MMORPGs!)   Daimonin has taken Crossfire to the next level in terms of graphics, sounds, and gameplay.  Best of all, it is <em>FREE!</em>  The Daimonin forums have a <a href="http://www.daimonin.net/index.php?name=PNphpBB2&#038;file=viewtopic&#038;t=570">post</a> that describes a straightforward way to install the required precompiled packages and install Daimonin on OS X 10.4.  Unfortunately, those instructions don&#8217;t work on 10.3!  I was able to figure out how to get Daimonin to work on 10.3, after compiling the libraries myself&#8230; (oh yeah, and the precompiled libraries in <a href="http://fink.sourceforge.net">fink</a> didn&#8217;t work&#8230;)  This post describes how to compile and install Daimonin and the required libraries on OS X 10.3.  </p>
<p><span id="more-73"></span>I have tested this with OS X 10.3.9.  Daimonin requires SDL with SDL_mixer and SDL_image, two libraries outside of the SDL package.  SDL_mixer requires the ogg vorbis libraries (for sound) and SDL_image requires the PNG libraries (for graphics.)  The LZO compression libraries are also required.  Be sure to install each package in the following order:</p>
<p><strong>Install GCC Compiler</strong></p>
<p>First, you&#8217;ll have to install the XCode Tools from Apple.  This contains the GCC compiler, which is needed to compile Daimonin and all the associated libraries on Mac OS X.  At the time of this writing, XCode Tools 1.5 is currently available for OS X 10.3.  To get XCode Tools, you will have to go to the <a href="http://developer.apple.com/">Apple Developer Connection</a> and register (free).  Then, go to the downloads section, and download the XCode Tools 1.5 CD.  After double clicking on the file you&#8217;ve downloaded, and mounting the XCode Tools disk image, double click on the <code>XcodeTools.mpkg</code> file.  When you get to the Installation Type part of the install, click the <strong>Customize</strong> button.   Then, select only <code>gcc 3.3</code> and <code>Developers Tools Software, Mac OS X SDK, and April 2004 Xcode Tools Extras</code> (or whichever date that refers to your version of XCode Tools.)  Installing these other options (besides GCC) will create the proper links for GCC, so that GCC can be found when compiling a program.</p>
<p>After installing XCode Tools 1.5, you will then have to download and install the <code>November 2004 gcc 3.3 Updater</code> from the <a href="http://developer.apple.com/">Apple Developer Connection</a>.  This will fix some bugs in the GCC that is in XCode Tools 1.5.</p>
<p><strong>LZO Libraries</strong></p>
<p>Download <code>lzo-1.08.tar.gz</code> from <a href="http://www.oberhumer.com/opensource/lzo/">oberhumer.com</a>.  Uncompress this file to a temporary location, then open Terminal.app and change to the directory of the uncompressed lzo files.   Then, type the following commands:</p>
<p><code>./configure --enable-shared<br />
make<br />
make test<br />
sudo make install</code></p>
<p><strong>SDL Libraries</strong></p>
<p>Download the SDL stable source code (currently 1.2.9) from the <a href="http://www.libsdl.org/download-1.2.php">Simple DirectMedia Layer</a> website.  Uncompress the file to a temporary location, then open Terminal.app and change to the directory of the uncompressed files.   Then, type the following commands:</p>
<p><code>./configure<br />
make<br />
sudo make install</code></p>
<p><strong>Ogg Vorbis Libraries</strong></p>
<p>Download libogg (currently 1.1.3) and libvorbis (currently 1.1.2) from <a href="http://www.xiph.org/downloads/">Xiph</a>.  These libraries are required for the sounds which are in .ogg format.  Uncompress these files to temporary locations, then open Terminal.app.  In each uncompressed directory, type the following commands:</p>
<p><code>./configure<br />
make<br />
sudo make install</code></p>
<p><strong>SDL Mixer Library</strong></p>
<p>Download the SDL Mixer library (currently 1.2) from the <a href="http://www.libsdl.org/projects/SDL_mixer/">SDL website</a>.  Uncompress the file to a temporary location, then in Terminal.app change to the directory of the uncompressed files.   Then, type the following commands:</p>
<p><code>./configure<br />
make<br />
sudo make install</code></p>
<p><strong>PNG Library</strong></p>
<p>Download the PNG source code (currently 1.2.8) from the <a href="http://www.libpng.org/pub/png/libpng.html">libpng website</a>.  This library is required for the graphics which are in .png format.  Uncompress the file to a temporary location, then in Terminal.app change to the directory of the uncompressed files.   Then, type the following commands:</p>
<p><code>./configure<br />
make<br />
sudo make install</code></p>
<p><strong>SDL Image Library</strong></p>
<p>Download the SDL Image library (currently 1.2) from the <a href="http://www.libsdl.org/projects/SDL_image/">SDL website</a>.  Uncompress the file to a temporary location, then in Terminal.app change to the directory of the uncompressed files.   Then, type the following commands:</p>
<p><code>./configure<br />
make<br />
sudo make install</code></p>
<p><strong>Daimonin</strong></p>
<p>Now you can finally compile and install Daimonin!   Download <a href="http://www.daimonin.net/index.php?module=htmlpages&#038;func=display&#038;pid=5">Daimonin for Linux</a> and decompress to a directory.  In Terminal.app, change to the newly created <code>daimonin</code> directory and do the following:</p>
<p><code>cd client/make/linux<br />
sudo sh ./configure --build=ppc<br />
sudo make all<br />
sudo make install<br />
</code></p>
<p>To run Daimonin, you will have to start it with a sudo command, otherwise you&#8217;ll get a &#8220;SDL Parachute&#8221; error.  Go back to the <code>daimonin</code> directory and you will find a new client directory (probably <code>client-BETA3-0.966</code>).  Change to the new client directory and start Daimonin with:</p>
<p><code>sudo ./daimonin</code></p>
<p>Alternatively, if you are connecting to a particular server, you can issue the command (with &#8220;ip_address&#8221; being the address of the Daimonin server): <code>sudo ./daimonin -server ip_address</code> </p>
<p>You could also make a bash script that you could double-click to connect to your Daimonin server.  Create a text file on your Desktop with TextEdit.  Enter the following:</p>
<p><code>#!/bin/sh<br />
sudo ./daimonin -server ip_address</code></p>
<p>Save to a file called <code>daimonin.command</code> (make sure the file&#8217;s extension is <code>.command</code> &#8212; that allows the script to run when you double click on it.)  Then, go to a Terminal window and make the file executable:</p>
<p><code>cd $HOME\Desktop<br />
chmod 755 daimonin.command</code></p>
<p>That should do it!</p>
]]></content:encoded>
			<wfw:commentRss>http://girasoli.org/?feed=rss2&amp;p=73</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C64 Drive Emulation</title>
		<link>http://girasoli.org/?p=72</link>
		<comments>http://girasoli.org/?p=72#comments</comments>
		<pubDate>Tue, 03 Jan 2006 02:42:17 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Commodore 64]]></category>

		<guid isPermaLink="false">http://girasoli.org/?p=72</guid>
		<description><![CDATA[There are a few C64 drive emulators available that allow your PC&#8217;s hard drive to be available to a Commodore 64. Usually, you can either assign .D64 disk images or a directory to a device number. I would like to set up a C64 BBS connected to the Internet, also known as a &#8220;TelBBS.&#8221; The [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://girasoli.org/albums/album34/aaf.jpg" class="alignright" alt="C64" />There are a few C64 drive emulators available that allow your PC&#8217;s hard drive to be available to a Commodore 64.  Usually, you can either assign .D64 disk images or a directory to a device number.  I would like to set up a C64 BBS connected to the Internet, also known as a &#8220;<a href="http://telbbs.petscii.com/">TelBBS</a>.&#8221;  The drive emulators utilize a few different cables to connect the C64 to the PC&#8217;s parallel port.  If I want to set up a BBS, I have to keep the C64&#8242;s user port free, as the TelBBS programs use this interface.  I have to stick with a drive emulator that uses the C64 serial (disk drive) port.  In this post, I discuss a couple of drive emulators as well as the possibility of using Linux.</p>
<p><span id="more-72"></span><strong>Running a DOS CBM Drive Emulator in Linux</strong></p>
<p><img src="http://girasoli.org/albums/album34/aae.jpg" class="alignleft" alt="XE1541" />I started out by reading about Joe Forster&#8217;s <a href="http://sta.c64.org/xcables.html">X1541-series</a> cable interfaces.  These cables connect the C64&#8242;s serial (disk drive) port to the PC&#8217;s parallel port.  I settled on the <a href="http://sta.c64.org/xe1541.html">XE1541</a>, as it works with two popular DOS drive emulators, <a href="http://www.64hdd.com/index_en.html">64HDD</a> (closed source) and <a href="http://vc1541.sourceforge.net/vc1541/news.html">VC1541</a> (open source.)  (You can either <a href="http://sta.c64.org/x1541shop.html">buy</a> the XE1541 cable or build it yourself as I did, using Joe Forster&#8217;s <a href="http://sta.c64.org/xe1541c.html">instructions</a>.)  I attempted to get both of these emulators to work under Linux with <a href="http://www.dosemu.org/">DOSEMU</a>.  DOSEMU is an excellent DOS emulator for Linux.  I was able to get DOS boot disks (64HDD prefers DOS 6.22) from <a href="http://bootdisk.com/">bootdisk.com</a>.  Based on people&#8217;s recommendations for accessing a parallel port through DOSEMU, and some of my own trial and error findings, I made the following modifications to <code>/etc/dosemu/dosemu.conf</code> in Linux.  Here they are in case you&#8217;d like to attempt the same thing:</p>
<p><code>$_cpu = "80586"<br />
# Turn on Pentium timing<br />
$_rdtsc = (on)<br />
# Set the cpu speed to 200MHz<br />
$_cpuspeed = (200)<br />
# Turn off XMS (and don't load HIMEM.SYS in your CONFIG.SYS!)<br />
$_xms = (0)<br />
# Turn on raw access to LPT1<br />
$_ports = "device /dev/lp0 fast range 0x378 0x37f"<br />
$_irqpassing = "7"</code></p>
<p>I couldn&#8217;t get VC1541 to run stable, but, I could get 64HDD to run with the following command (note the +p 200 as I had previously configured DOSEMU to run at 200MHz.)</p>
<p><code>go64hdd -code -xe +p 200</code></p>
<p><img src="http://girasoli.org/albums/album34/aaa.jpg" class="alignright"  alt="parallel port" />Unfortunately, my C64 couldn&#8217;t access the drives emulated by 64HDD.  (After performing many Google searches, it seems that I&#8217;m not the only one!)  The C64 would see the emulated drives, but hang on &#8220;SEARCHING FOR&#8230;&#8221;  I tried a couple of hints from the 64HDD documentation like connecting a 1541 drive in between the C64 and the XE1541 cable for timing purposes.  This didn&#8217;t work.  I made sure the motherboard&#8217;s parallel port was set to SPP.   I also tried installing an old parallel port card with no change.  I also stopped the print spooler in Linux, just in case it was interfering, but, no improvement.</p>
<p>Alright, at this point I was pulling my hair out, and was asking myself, &#8220;Why don&#8217;t you use <a href="http://www.hld.c64.org/64net2/">64NET/2</a>?&#8221;  It can run under Linux natively and it does basically the same thing as 64HDD and VC1541.  It doesn&#8217;t fit my needs, though &#8212; 64NET/2 uses the C64&#8242;s user port and requires a &#8220;wedge&#8221; (a program on the C64) to run.  I want the C64 to think there are drives attached to it without a stack of 1541 drives 3 feet high piled next to it.  I don&#8217;t want to load some piece special software on the C64.  There&#8217;s also <a href="http://www.zimmers.net/anonftp/pub/cbm/crossplatform/transfer/C2N232/cbmlink.html">cbmlink</a>, which can do anything and everything, it seems.  While it&#8217;s a great Linux utility for the Commodore community, it&#8217;s a bit on the complex side in what I&#8217;m looking for.</p>
<p><strong>Settling on DOS and 64HDD</strong></p>
<p><img src="http://girasoli.org/albums/album34/aab.jpg" class="alignright" alt="64HDD Setup" />So I finally gave in and admitted that I will have to run an old DOS machine to get a drive emulator to work the way I want.  64HDD has a free version (as well as a fee-based &#8220;pro&#8221; version.)  Even though it&#8217;s not open source, it has what I need.  A simple program that can use .D64 images or directories and uses the serial port on the C64.  I dug deep into the depths of my basement, and pulled out an old, cracked case 486/33 Compaq LTE Lite.  (Something I bought from a seller who called himself &#8220;Crazy Bob&#8221; at a computer show years ago.)  I loaded DOS 6.22 (from <a href="http://bootdisk.com">bootdisk.com</a>) and 64HDD, plugged in the XE1541 cable directly from the parallel port into the C64, and voila!  It worked.</p>
<p><img src="http://girasoli.org/albums/album34/aad.jpg" class="alignleft"  alt="C64 screen" />So, now I have my C64 happily loading PRG files from a 620MB hard drive.  I am glad I finally found a use for that old laptop; I believe I paid US$40 for it at the time.  My advice is to find an old 486 laptop on <a href="http://computers.listings.ebay.com/Laptops-Notebooks_W0QQfromZR4QQsacatZ51148QQsocmdZListingItemListQQssPageNameZdcpComputersTextFeat">eBay</a> for US$10 and connect your C64 to it with <a href="http://www.64hdd.com/index_en.html">64HDD</a> or <a href="http://vc1541.sourceforge.net/vc1541/news.html">VC1541</a> with a <a href="http://sta.c64.org/x1541shop.html">XE1541</a> cable.  Using a laptop will keep the power bill down and allow you to use something that doesn&#8217;t take up much space.  Hopefully in the near future, someone will create an open source Linux program that is easy to use and is versatile like 64HDD.</p>
]]></content:encoded>
			<wfw:commentRss>http://girasoli.org/?feed=rss2&amp;p=72</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reviving a Radio Shack Digital Multimeter</title>
		<link>http://girasoli.org/?p=70</link>
		<comments>http://girasoli.org/?p=70#comments</comments>
		<pubDate>Sun, 11 Dec 2005 03:19:43 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Electronics Projects]]></category>

		<guid isPermaLink="false">http://girasoli.org/?p=70</guid>
		<description><![CDATA[I have a nice Radio Shack Digital Multimeter (DMM) that I use for troubleshooting my arcade games or the various projects I&#8217;m working on. If you are looking for a decent DMM that you don&#8217;t want to spend a lot of money on because you sometimes fry them, Radio Shack is the way to go. [...]]]></description>
			<content:encoded><![CDATA[<p>I have a nice <a href="http://www.radioshack.com">Radio Shack</a> Digital Multimeter (DMM) that I use for troubleshooting my arcade games or the various projects I&#8217;m working on.  If you are looking for a decent DMM that you don&#8217;t want to spend a lot of money on because you sometimes fry them, Radio Shack is the way to go.</p>
<p>I was troubleshooting one of my <a href="http://girasoli.org/index.php?page_id=2">arcade</a> games when I accidentally had the DMM set to &#8220;continuity&#8221; when probing AC voltage.  D&#8217;oh!  The DMM would still display some numbers but not measure voltage.  Selecting the continuity function would always register &#8220;Short.&#8221;  I was lucky &#8212; I had blown a fuse in the DMM.</p>
<p><span id="more-70"></span>The newer Radio Shack DMMs sometimes use a 500mA 5x20mm ceramic fuse.  If your Radio Shack DMM has the above symptoms, first look under the battery cover.  The fuse might be there; if not, you will have to remove the whole back cover of the DMM.  Look carefully near the fuse.  Hopefully, you might find a spare fuse&#8230;  Radio Shack usually includes a spare fuse with their DMMs&#8230; replacing the blown fuse with the spare will save you a trip to Radio Shack.</p>
<p>All of this info is, of course, in the manual of your Radio Shack DMM.  If you&#8217;re lazy like me, or lost your manual, hopefully a quick Google search will bring you to this post.</p>
]]></content:encoded>
			<wfw:commentRss>http://girasoli.org/?feed=rss2&amp;p=70</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building the Cheap 915MHz Yagi Antenna</title>
		<link>http://girasoli.org/?p=67</link>
		<comments>http://girasoli.org/?p=67#comments</comments>
		<pubDate>Sun, 27 Nov 2005 05:00:05 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[G-NET]]></category>
		<category><![CDATA[Wireless]]></category>

		<guid isPermaLink="false">http://girasoli.org/?p=67</guid>
		<description><![CDATA[In a previous post, I discussed the work Doug and I did, attempting to build some cheap 915MHz yagi antennas. Based on our tests, I was able to design a more accurate 915MHz yagi. Instead of using PVC tubing for the boom, I changed the material to a 3.8cm x 1.9cm (1.5&#8243; x 0.75&#8243;) wood [...]]]></description>
			<content:encoded><![CDATA[<p><img alt="Antenna workbench" class="alignright" src="http://girasoli.org/wp-content/uploads/2005/11/aat.jpg" />In a <a href="http://girasoli.org/?p=64">previous post</a>, I discussed the work Doug and I did, attempting to build some cheap 915MHz yagi antennas.  Based on our tests, I was able to design a more accurate 915MHz yagi.  Instead of using PVC tubing for the boom, I changed the material to a 3.8cm x 1.9cm (1.5&#8243; x 0.75&#8243;) wood boom.  The wood boom was far more easier for drilling accurate holes for the elements. This yagi was relatively easy to make; the materials for two antennas were less than US$10.  In a quick test using Aironet Arlan 915MHz access points (with one of them in repeater mode,) we were able to go 250m through a forest.  In this post, I discuss how to make these directional antennas and how we tested them.</p>
<p><span id="more-67"></span>For each yagi antenna, you will need the following:</p>
<ul>
<li>(1) 80cm piece of 3.8cm x 1.9cm (1.5&#8243; x 0.75&#8243;) wood</li>
<li>1.6 meters of 6AWG (4.115mm diameter) uninsulated solid copper wire (this should give you a little extra)</li>
<li>75 Ohm RG-8 coax cable (your typical &#8220;Cable TV&#8221; cable)</li>
<li>RP-TNC connectors for RG-8 cable (I got these from <a href="http://www.sharperconcepts.net">Sharper Concepts</a>&#8230; you can get other types of connectors there as well, depending on what you need.)</li>
<li>Drill and 5/32&#8243; (4.115mm) drill bit</li>
<li>Wire cutters and wire strippers</li>
<li>Rubber mallet (for hammering out any kinks in the element wire)</li>
<li>75 Watt (at least) Soldering iron and solder</li>
<li>Epoxy, super glue, or a hot glue gun</li>
<li>Silicone sealant</li>
<li>Zip ties (tie wraps)</li>
</ul>
<p>From the <a href="http://girasoli.org/?p=64">previous post</a> on designing this ~10dBi antenna, I have posted the yagi&#8217;s dimensions below.  This yagi utilizes a folded dipole for its driven element.  A folded dipole&#8217;s impedence can be changed by size of the gap and the length of the element.  Since I didn&#8217;t want to use a balun (to keep the costs down), I had to match the driven element&#8217;s impedence to the feed cable&#8217;s impedence of 75 ohms.  A folded dipole element is folded into the shape of a &#8220;U&#8221;, with one of the legs of the &#8220;U&#8221; being half the size of the other leg.  The distance of the gap is measured from center to center of the element&#8217;s wire.  The folded dipole&#8217;s length is measured from the end of the longest leg of the &#8220;U&#8221; to the farthest point of the bend in the element.  The gap distance in the folded dipole for this antenna is 2.0cm.  Using a wood boom made it very easy to drill two holes 2cm apart for the folded dipole.  This helped in making sure the folded dipole&#8217;s gap was near 2cm.</p>
<p>The distance from the Reflector element to the last (D8) element is 53.2cm.  The SPACING column states the distance from the previous element.  The Cumulative Spacing column states the distance from the reflector to that particular element.  The LENGTH column states the length of the element.  The diameter of the elements is constant at 0.4115cm (4.115mm) or 6 gauge wire.  (The previous antenna I tried building used 8 gauge wire; I changed to 6 gauge wire as it seems to be easier to find in hardware stores.)</p>
<table border="1">
<tr>
<td><strong>ELEMENT</strong></td>
<td><strong>SPACING (cm)</strong></td>
<td><strong>Cumulative Spacing (cm)</strong></td>
<td><strong>LENGTH (cm)</strong></td>
</tr>
<tr>
<td>REFLECTOR</td>
<td>0.0</td>
<td>0.0</td>
<td>16.6</td>
</tr>
<tr>
<td>DRIVEN<br />
(Folded Dipole Fed Element)</td>
<td>4.1</td>
<td>4.1</td>
<td>16.2</td>
</tr>
<tr>
<td>D1</td>
<td>3.3</td>
<td>7.4</td>
<td>14.8</td>
</tr>
<tr>
<td>D2</td>
<td>3.8</td>
<td>11.2</td>
<td>14.2</td>
</tr>
<tr>
<td>D3</td>
<td>4.5</td>
<td>15.7</td>
<td>13.7</td>
</tr>
<tr>
<td>D4</td>
<td>5.3</td>
<td>21.0</td>
<td>13.2</td>
</tr>
<tr>
<td>D5</td>
<td>6.2</td>
<td>27.2</td>
<td>12.5</td>
</tr>
<tr>
<td>D6</td>
<td>7.3</td>
<td>34.5</td>
<td>12.1</td>
</tr>
<tr>
<td>D7</td>
<td>8.6</td>
<td>43.1</td>
<td>11.5</td>
</tr>
<tr>
<td>D8</td>
<td>10.1</td>
<td>53.2</td>
<td>11.2</td>
</tr>
</table>
<p>Again, the driven element above is sized for a 75 Ohm feed.  If you are using a 50 Ohm feed, shorten the length of the driven element to 15.8cm.  If you would like to adjust the above dimensions for a different feed impedence or a different frequency, use <a href="http://www.raibeam.com/wa7rai.html">QuickYagi</a>.  Enter in the values of the table above for a 10 element yagi with a 2cm folded dipole.  Then, you can adjust the length of the driven element to match your feed impedence.  You can also use QuickYagi&#8217;s frequency scaler to adjust the elements to match a different frequency.</p>
<p><strong>Boom</strong><br />
Creating the boom was very easy.  I sawed off a 80cm piece of the 3.8cm x 1.9cm (1.5&#8243; x 0.75&#8243;) board.  Then, I made a straight pencil line about 1cm from the top edge along the boom.  This line helped keep the element holes in a line.  Then, starting from 20cm into the boom, I marked each element.  I also marked the spot where the lower part of the folded dipole will go &#8212; 2cm below its top hole.  After all the holes were marked, I used a 4.115mm (5/32&#8243;) drill bit to drill each hole.</p>
<p><img alt="Boom" src="http://girasoli.org/wp-content/uploads/2005/11/aar.jpg" /></p>
<p><strong>Elements</strong><br />
I used 6AWG uninsulated solid copper wire as the elements.  When I purchased the wire from Home Depot, as the sales person cut a 12&#8242; piece for me, he wound the wire on a spool.  The spool put some kinks into the wire.  So, using a rubber mallet and a 2&#8243;x6&#8243; piece of wood as a table, I hammered the kinks out the best I could.  Since I am using uninsulated copper wire, I was worried that the oxidation might cause problems, but I read on <a href="http://groups.google.com/group/rec.radio.amateur.antenna">rec. radio. amateur. antenna</a> to not worry about the copper oxidation affecting signal loss.  I cut the 6AWG wire into lengths based on the LENGTH column in the table above, except for the driven element.  For each element, I carefully hammered them straight on the wood (for any pieces that still had kinks.)  For the driven  element, I cut a piece of wire double the size, then fashioned it into a folded dipole of the proper size.  I made sure the diameter of the bend was approximately 2cm and fit into the holes I had drilled for the folded dipole.</p>
<p>The elements fit snugly into the 4.115mm (5/32&#8243;) holes that I drilled and I didn&#8217;t have to tack them with the glue gun.  (If this antenna were to be permanently mounted ouside, I would definitely tack the elements.)  I pushed each element into the boom using my hands. Then I would gently tap each element with a hammer, to move the element through the boom.  I made sure that the elements were even on either side of the boom.</p>
<p><img alt="Finished boom and elements" src="http://girasoli.org/wp-content/uploads/2005/11/aas.jpg" /></p>
<p><strong>Connecting the Coax Feed</strong><br />
To connect the coax feed, I stripped the coax and zip tied the coax to the boom.  This helped hold the coax in place on the folded dipole so I could solder it.  I soldered the tip (center) of the coax to the folded end of the driven element.  Then, I soldered the ring (shield) of the coax to the long part of the driven.  You can see a <a href="http://girasoli.org/wp-content/uploads/2005/11/aah.jpg">diagram</a> of how the feed is connected to the driven element.  I tried using a 45 Watt soldering iron and it took a long time to heat up the element so the solder could stick.  The long folded dipole acts as a heat sink when soldering.  Using 6AWG wire for the elements instead of 8AWG also added to the difficulty of heating up the element enough to melt the solder.  I <em>highly</em> recommend using a 75 Watt soldering iron or better!  After I was finished soldering, I sealed up the exposed wiring with lots of glue from the glue gun (you could use silicone sealant, too.)</p>
<p><strong>Testing the Antennas</strong><br />
To test, I used two Aironet Arlan 630-900 915MHz Access Points (APs).  These APs have a reverse polarity TNC (RP-TNC) antenna connector.  If one of the APs aren&#8217;t connected to an ethernet network, it will act as a repeater and the APs will bridge.  Being able to use these small compact 915MHz network devices are much easier to handle than lugging around PCs with the <a href="http://girasoli.org/?p=65">915MHz WaveLAN</a> cards.  Another advantage of the Arlan APs are their power &#8212; they output at 600mW, more than twice the 250mW power of the NCR WaveLAN cards!  The only drawback from the increased power (compared to the WaveLAN) is the speed.  The Arlans can only have a maximum throughput of 860Kbs (kilobits per second,) compared to the WaveLAN&#8217;s maximum speed of 2000Kbs.  Power, though, is more important when distance is concerned.  (I was able to purchase the Aironet Arlan APs from <a href="http://www.dkdata.com/">DK Data Sales</a> at US$25 a piece.)  It would be better, though, to use the Arlan 640-900 bridges, though, if you want to create a point to point wireless bridge.</p>
<p>Doug and I put one of the antennas and Arlan APs on my back deck, and drove off with the other Arlan, yagi antenna, and a laptop to ping the Arlan AP at my house.  (Since there are no signal strength meters on the Arlan, we had to resort to pinging.)  The maximum distance we were able to ping the Arlan AP at my house was 0.25km or 0.16mi (832 ft.) through a thick forest of maple and oak trees.  A lot less of a distance than what we were hoping for, since we were planning on connecting my house to Doug&#8217;s house 10.5km (6.5mi) away with these antennas.</p>
<p>There are many factors, though, that might have hindered our distance.  About 0.25km farther along, there is a hill that rises about 10m relative to the elevation house.  (I used <a href="http://earth.google.com">Google Earth</a> to check elevations and measure distance between two points.) Even though the elevation of Doug&#8217;s house is about 200m below mine, there is this rocky hill between us.  We were not able to establish a connection beyond this hill.  (We even tried using CBs &#8212; yep, that&#8217;s right, Citizens Band &#8212; which operates in the 26 &#8211; 27Mhz range.  The longer wavelength should give us a better distance to see if frequency was the problem.  The CBs wouldn&#8217;t clear the rocky hill as well.)  Another factor was the height of the antenna at my house.  It was about 2m above the ground; probably not the ideal height, as the fresnel zone for a 915Mhz antenna is quite large.  The higher the antenna above the ground, the better.  There is also the possiblity that these antennas don&#8217;t have enough gain due to their design and high probability for error, since I made them by hand.</p>
<p>All in all, I am happy with these new antennas.  They definitely worked, even if they couldn&#8217;t get beyond that rocky hill.  Hopefully they will help you in creating some cheap 915MHz yagi antennas fo usage in a community wireless network.  As to linking up Doug&#8217;s and my house, well, back to the drawing board!</p>
<p><strong>Update:</strong> I finally utilized software that can plot line of sight against the terrain using <a href="http://edc.usgs.gov/geodata/">USGS data</a>.  I used <a href="http://www.globalmapper.com">Global Mapper</a> to see if there are any terrestrial obstructions between my house and Doug&#8217;s.  Sure enough, there are&#8230; not one hill, but two!  See the plot below.</p>
<div style="text-align: center"><img src="http://girasoli.org/wp-content/uploads/2005/11/tony-doug.jpg" /></div>
]]></content:encoded>
			<wfw:commentRss>http://girasoli.org/?feed=rss2&amp;p=67</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
