Monday, November 17, 2008

New PIC Programmer

My new Microchip PIC programmer arrived today. I have been meaning to get a USB powered version for awhile now since my new bench machine only has two serial ports... causing the rs-232 real estate to be rather limited. (plus I can't use my ISA serial cards in machines now that the ISA bus is pretty much obsolete ). Instead of going the expensive option, I went the cheap Chinese option and ordered a PICkit2 compatible programmer off of eBay. It took about two weeks to arrive directly from Honk Kong, but it's here and it works.

Of course after opening the package I noticed that it was missing the ZIF sockets. :(



Looking back at the auction I see that this was stated in the description in a non-descriptive Chinese kind of way. Luckily the sockets are cheap and I ordered them from a reputable supplier today.

This will allow me to start using the surplus of samples I have been ordering for free and let me explore the PIC world a little more. I have been spending a lot of time in the AVR ATmega world for the past month or so (most ATmega's don't require a programmer) so it will be cool to compare and contrast the two micro families.

Wednesday, October 22, 2008

The best electronics find I have ever had: Intergraph Logic Boards

I have always had my eye out for surplus electronics and one of the best finds I have ever had was this:


A local business was throwing away a very old Intergraph computer. This was a very large, old, and massive computer. It consisted of several cabinets of hardware, each containing circuit boards of standard TTL logic. The best part about these boards is the fact that every single chip on each of them is socketed.


This board in particular which is labeled as a "High Speed Concentrator" has over 550 74S, 74LS, and a few other miscellaneous chips socketed.


I really wish I had more information about this machine. This board labeled as "MPCB191 Bit Slice 2903 16 Bit Processor" has over 300 socketed TTL chips along with Motorola 68000 series processors.

If anyone has information about what machine this came from, please leave a comment. I am very curious about it. My only regret is that I didn't grab more boards out of the cabinet...

Sunday, October 12, 2008

Tektronix TDS-420 oscilloscope external video display

A nice feature of the Tektronix TDS series of digital storage oscilloscopes is their external video display capability. Most (if not all) Tektronix scopes in the TDS series have an external video output (including my TDS-420) for hooking up an external display.

The internal display is very nice:


Sometimes it would be nice to have a larger display at my bench level while working...

Unfortunately this external video output is in a 9-pin form, unlike the standard DB15-pin connector we are familiar with on our VGA monitors. Because Tektronix labeled the connector as 'VGA compatible', I assumed it held to the VGA standard, and would be compatible with most modern multisync monitors.


To hook up an external display to your TDS series oscilloscope, you must perform the following. Obtain a standard 15-pin VGA connector cable and remove one end, replacing it with a standard 9-pin connector (preferably a metal connector to help with shielding). Wire the new 9-pin connector to the VGA cable as listed here. The 15-pin connector is on the left with pin assignment to the 9 pin on the right:

VGA DB15-S Female DB9 Female
15-pin, 9-pin
1, 1 Red
2, 2 Green
3, 3 Blue
4, - Monitor ID bit 2
5, - N/C
6, 6 GND
7, 7 GND
8, 8 GND
9, - N/C
10, - GND
11, - Monitor ID bit 0
12, - Minitor ID bit 1
13, 4 Horizontal Sync
14, 5 Vertical Sync
15, - N/C

I tied pin 6 on my 15 pin connector to all three grounds (6,7,8) on the 9 pin connector. After assembly of the connector, I gave it a try with success!



One of my Samsung Syncmaster 151v lcds on my bench sync'd up perfectly along with several other lcd monitors I have around. With the output being 640x480 there is plenty of resolution on the display giving the external monitor a very nice picture.

Friday, September 12, 2008

Freedatasheets.com :: my semiconductor datasheet library

So I have been frustrated lately. While working on a project... I will need to look up a datasheet for component n. I commonly turn to google with a search such as '[part number] datasheet' with sometimes good and sometimes bad results. I usually end up at one of many bad datasheet archive websites that will go unnamed. By bad, I refer to sites that have broken links, incorrect datasheets for the part described, mazes of links that I must click through, annoying pop-ups, and primarily wasted time.

Because of my frustrations, last weekend I threw together a site for my own collection of datasheets. It is now available for everyone at freedatasheets.com . I have done my best to collect datasheets from large semiconductor manufacturers (STMicroelectronics, National Semiconductor, Atmel, Freescale Semiconductor, Microchip, Xilinx, Maxim, Fairchild Semiconductor to name a few) and collected ALL of there datasheets into one source. I currently have about 30,000 datasheets organized, in a database, and fully text searchable for your component database needs. I plan to keep adding to this database, their are still many component manufacturers whose datasheets I would like to obtain.

Sunday, July 13, 2008

Plant watering system

For the past few years I have been growing various cayenne and habanero peppers in planters off of my condos balcony. The only issue with this besides lack of space has been watering. Previously I have been simply filling several large containers with water and carrying it out to the plants. This is fine in the beginning of the season, but by late July and August when the plants are large and consume much more water, this has been a chore. Multiple watering trips are necessary as well with watering them both in the morning and night. For a solution, I built a simple microcontroller based system that I could automatically water the plants on a set cycle. It also has a simple rain detector that preempts any further watering for a set amount of time after it has rained.


I designed the system around a Rabbit RCM3400 core 8-bit microcontroller. Realistically this microcontroller is rather overpowered for this system, ( a pic would have worked just fine) but I wanted to begin playing with the Rabbit's cooperative multitasking functionality... and I have a few of these micros laying around. There are a couple neat features of this micro as well such as the real-time clock and built in ADC's. For functionality, the rabbit drives a serial LCD for displaying current information on the system and has 5 microswitches along with a rain sensor for input. The system drives a latching relay which then turns on a 12v solenoid based electronic valve to start the water flow to the plants.

This is final stage of prototyping. It has been working fine for the past five days so I am beginning to build it into an enclosure this week.


The system has two adjustable parameters, frequency of the watering cycle and duration of the actual watering. The five microswitches will be placed under the lcd to allow the lcd to show the functionality of the buttons. I plan on adding a more robust menu setting that will allow control for multiple plants in the future. The left two adjust the watering frequency in hours, the next two can adjust the watering duration in seconds. For my small plants, 20 seconds or so of watering is enough to saturate the soil. The final button on the right is a forced watering function that allows me to provide a 15 second burst of water without resetting the current counters.

Once timing parameters are set, the micro begins counting down to the set watering time. The display shows how many minutes are remaining to the watering cycle. When the counter hits zero, one of the outputs fires for 250ms, enough to engage a latching relay which in turn opens the solenoid valve to start the water flow. Once the set watering duration is counted down to zero, the relay is fired for another 250ms to disengage it and cut power to the solenoid valve stopping the water flow. The process then starts over.

The rain detector is just two thin strips of aluminum foil spaced closely together on my balcony railing. When rain falls and closes the connection, a pin on the micro goes high letting it know rain is detected. The watering process is then put on hold for a set amount of time until watering begins again.


Now for a water source, I tapped into the cold water supply line underneath my sink. This is my only real option as I don't have any access to outside building watering on the top floor. The water is split with a tee fitting and ran to a solenoid valve. From here I ran a line out to my plants. Through a series of different tubing lengths and tees I was able to get an even watering distrubution among all three plants. The actual water is supplied to the plants through a polypropylene tube with a series of holes drilled through them.

The system works quite well.

Future upgrades will add control for multiple plants, and a better timing interface so I can set more precise watering cycles. If I want to go all out, I will enable the rabbit's ethernet interface to pull down real weather data automatically and have the micro set the watering cycles based on that day's conditions...

Tuesday, June 17, 2008

Homemade GPS Antenna

I needed a very small, lightweight passive GPS antenna for an ET-301 USGlobalSat GPS module, but didn't have anything to use on-hand. I started some research to make one but information on this topic is very limited... so I figured a good option would be to make my own. As far as passive antennas go, there doesn't look to be very much too them. I looked at lots of pictures of antennas online and reverse engineered them as best as I could. The result was an antenna made out of a thin piece of metal that is 24mm x24mm located 2mm over a 30mm x 30mm ground plane.

Now i'm not an RF engineer, and basic antenna math fails me on this antenna design (1/4 wavelength at a gps frequency on the L1 band of ~1.5Ghz would be 50mm) which is much larger than the antenna I designed mine after... but upon power up I had GPS lock.

So it works... which really shows how sensitive modern GPS receivers are. This is really amazing since this module is sitting inside, on my bench, located about 6 feet away from the nearest window... and I made the antenna by copying antenna designs I found online. The NMEA $GPGGA string shows that there are only 4 satellites in view (which is expected since I am indoors) so I am really looking forward to testing it outside.

At some point I hope to find a good resource for GPS antenna designs to really make a proper antenna the right way, but for now it works... and I am still impressed by the sensitivity of this receiver.

Tuesday, June 10, 2008

Cooperative multitasking

Sitting down this past weekend for a large amount of time to begin a new project (details will be provided in the next post)... I discovered an amazing feature with Rabbit Semiconductors microcontrollers. Cooperative multitasking. I have actually always known about the multitasking capability of these processors, but never actually used them in any real form.

Cooperative multitasking unlike preemptive multitasking has many benefits. For one, variables can be easily shared among different tasks. This simplifies the necessary code needed immensely as you don't need to take any necessary precautions while sharing variables in a typical interrupt driven preemptive environment. Cooperative multitasking also allows many tasks to be run at once (as they only appear to... time slices are actually given to each function running just like in any modern multitasking OS). The microcontrollers also take advantage of the natural delays that occur in most code execution to provide cpu cycles to other tasks.

Playing with this multitasking environment I was able to update information on an LCD via an array of switches in real-time, without taking any time away from any other running timers or processes. It essentially allows me to run several tasks at the same time while providing data input without the necessity of any type of interrupt. This is extremely powerful.

I have nearly finished the code for the current project tonight, I hope to have the project finished by the end of the week as an update to what this project is will be given upon completion.

Sunday, June 1, 2008

Clean Bench :)

There hasn't been an update for awhile, but I have some projects in the works. This weekend I finally had time to clean my bench so there will be some updates soon...

Wednesday, April 16, 2008

The Network Part II

Update on my network...

I replaced the unreliable Dell switch with another Extreme Networks switch... this time a Summit 24e3. It has a full layer 3 license and is now configured as my default gateway. I uplinked my Summit 24e2 via a link aggregation trunk of 4 fast ethernet links for a total aggregate bandwidth capacity of 800Mbit (wire speed).

A Cisco 2514 is still my primary route to the internet and a Cicso 2621XM handles my VPN. Also newly added is a Sun Netra-T1 with a 500Mhz Sparc running Solaris 10 and Bind 9.4.2 as my primary DNS server. I just built this machine this past week to replace one of my SparcStation 5's (Still one of my favorite Sun boxes :) )

I still need to make some improvements, but it is MUCH better than it was before.


Monday, April 7, 2008

Hardware password sniffing and hacking

I recently came across a really cool piece of gear... a rack mounted SNMP network interface unit. This device is essentially a interface that allows you to monitor and control external devices of your choice via SNMP.

There is one issue... I don't have a password to console into it to configure it. Finding a default login password or a reset procedure for this device has been an impossible task. Marconi (the maker of this device) has since been dissolved into several companies making any documentation out there extremely scarce. The only things I have found are links to a manual that point to websites no longer in existence, and very vague product feature descriptions. (if anyone out there does happen to have a manual for this device, please let me know!)

I really want to get this device working, it is extremely flexible and there really isn't anything else on the market that can inexpensively and easily do the same thing.

So here is my idea. Since breaking in through the console port doesn't look feasible, and there is no hard manual reset to restore it's factory defaults, i'm not left with very many options. Opening it up, I discovered that the device contains a 16bit flash eeprom... all configuration information is stored on this device as it's the only writable memory on it. At some point while the embedded arm processor is loading it's basic embedded os/program from prom, it has to load this saved configuration from the eeprom. So I will simply sniff the data coming off of it's data bus with a logic analyzer, convert the two bytes of info into ascii and hope that everything is in clear ascii text. I can't imagine that the data on this device would be encrypted between the arm processor and flash... so this data should be easily retrievable.

Step 1: I obtained the data sheet for the AMD 16bit eeprom and wired the 16 pins off of it's data bus with interfacing leads:

The remaining leads were soldered to points on the bottom of the board.

Step 2: Wire the 16bit data bus to my logic analyzer.

Step 3: Power on the device and capture the data!

The issue I am having now is understanding the data. I have no idea how the arm processor is writing data to memory and what type of endianness it is using. ( it doesn't help that this arm processor manufacturer is no longer in business either :( ). Since arm processors can be configured as big-endian or little-endian I will have to decode the data both ways until I see some legible data. My logic analyzer can take the data seen above and convert it into ascii text, displayable on the screen. It's a slow process, but i'm making progress.

I haven't seen the password yet, but I'm still confident it's in there. There is just a lot of data to sniff through... and a large mess on my bench.

Tuesday, February 26, 2008

Listening to satellites

Satellites are cool...

I have always wanted to pull real-time images off of weather satellites. I read articles of people doing this years ago, but never had the necessary equipment necessary to do it. Receiving these images is actually pretty easy... I had some horrible looking images within a few hours of setting up my system. So now that I have the necessary equipment and with it being February along with the fact that I'm getting really sick of winter, it's a good time to finally do this.


First received image: (very noisy since my antenna sucks.)



The United States currently has three transmitting operational polar orbiting weather satellites, NOAA-15, NOAA-17, and NOAA-18. These satellites travel in a sun-synchronous orbit around the earth at an altitude of about 850km. Because they are moving so fast making revolutions of the earth approximately every 90 minutes, each one passes over regions of the US multiple times each day.

Now what's interesting is these satellites are transmitting their imagery of the earth back to us on two separate frequencies. The first is a high resolution digital signal that transmits around 1.7Ghz, but the second is a lower resolution modulated signal that is around 137Mhz! This system is called APT (automatic picture transmission) and is not encrypted. The satellites are constantly transmitting this APT signal at about two lines of imaging per second and if you are able to receive this signal, you can view real-time weather satellite imaging.

Because of the speed of the satellites, you only have about a 12 minute window to capture the satellite imagery as it flies by overhead. This is plenty of time to get some good images.

The equipment:

The only equipment you need to receive these signals is a good scanner/receiver with wide bandwidth, a good antenna for 137Mhz, and a computer/software that can decode APT data.

Most consumer scanners / receivers on the market have two problems. First, they have the 137Mhz spectrum blocked so you can't receive it, and second they don't have a wide enough bandwidth at the receiving frequency to pull in all of the information. The receiver I'm using is a Kenwood RZ-1, which is sufficient for this task.

I have been using two pieces of software, Wxtrac and WxtoImg. Both work and are freeware. WxtoImg is definitely more powerful... but to unlock all of it's features you have to pay for licensing. JTrack is a powerful satellite tracking tool that is available to use free from NASA that I use to track passing satellites.


My results:

The above image is very low quality ( again from an inadequate antenna) but it does show the entire signal received. The left portion of the images in infrared data, while the right is visible data. The bending of the image is Doppler shift caused by the speed of the satellite moving across the sky. Once I receive a stronger signal, the software will compensate and correct this. The map of north america is applied by the software, it uses the known keplers of each satellite to keep track of the satellites exact location.

Here is another pass. I really need an antenna...



Improvements to make:

The antenna! I need a good antenna with a center frequency at 137.000Mhz. There are a lot of good designs out there, the quadrafilar looks to be the most popular, but also somewhat difficult to make. I will have to do more search into the best antenna...

The winter months are also the worst time to be receiving this satellite imagery. The low contrast from the clouds and snow covered ground both being a nice bright white color combined with the low amount of sunlight we receive this time of year makes decoding image data from signals that already have a very high signal to noise ratio extremely difficult.

I'm really hoping to get some good images soon.



Thursday, February 7, 2008

Triode preamp : Part 2

As promised, here is the current schematic for my tube preamp:

I wrote an (almost) legible version. I'm still making some component changes, so this one isn't completely accurate... but very close. This drawing is for a single channel of course, for stereo operation you must duplicate the design. (Power supply can be shared among both channels).
I also resolved the issue with the lower half of the signal being 'squashed' before the top... I still have a lot to read about tube biasing ;) .


The current output of this design (as seen above) has a fairly constant output across it's frequency spectrum from 20Khz to 20 Hz, so I am pretty happy about that. A 1.5v input gives a consistent 1.5v output. I'm very close to finalizing my first design...

Sunday, February 3, 2008

Triode preamp : part 1

My recent purchase of my Harmon Kardon A300 amp has created a serious fascination with vacuum tubes. The sound of this amp is so good and the electronics behind it are so simple. I was able to find the schematic to my amp online, which was very important when I began replacing the caps in it... the labeling on them wasn't the best and it was hard to make out the values on some of them. Looking at the schematic, this amp was so simple! If you took out the electronics necessary for the turntable preamp, and removed unnecessary features such as presence, stereo reverse, and the bass and treble controls (which I always leave flat anyway), there are only a couple dozen components remaining per channel.

I decided I had to start designing my own amp. A few years ago I was fed up with the cheap 1-bit D/A converters found in most CD players and wanted to make my own with nice Burr-Brown 16BIT DACs. I would finish the output stage with a nice tube preamp. Of course I never built it, so I was due. I decided to make a simple preamp with a basic triode.

I first needed some tubes. eBay of course would be my source. The most common triodes such as ones in the 12**7 family are expensive! 12ax7s' go for some serious money, mostly because almost every vintage amp out there uses them and the sources of new old stock 12ax7s' is disappearing. The Chinese are making tubes again, but apparently they sound like ass. My solution is to buy large lots of tubes on eBay for cheap and hope for the best. Besides, there are tons of other triode tubes out there, others will be suited just fine for my purposes.

So several boxes of tubes showed up at my door about a week later showing why drinking a bottle of wine while eBaying always leads to suprises. The good news is everything I bought was only $20 and I had about 150 tubes to work with. In this lot I found a bunch of NOS 5963 triodes. Perfect.

My first design is crude, quickly made, only a single mono channel, but it works!

Yes, it's built on a piece of pine (clear pine that is!). Remember, I already admitted it was crude...

It's totally simple, there are only about 15 passive components. Ill have to upload the schematic once I have a legible version of it that is finalized. I made some component value changes during testing for level adjustments. Here is what the input(top trace) and output(bottom trace) looks like on my scope:


There is some noise in the waveforms, but ignore this as it is from my signal generator which is garbage. The left traces show a 1v peak to peak input and the output of the preamp, which looks very clean... and inverted. The right traces show what happens when the input is increased to 2 volts peak to peak, which drives the tube a little harder. The bottom trace shows the output result which is clipped, or in the case of tubes, more compressed or squashed. This is one of the most interesting properties of tubes. When their headroom is reached, they don't have a hard 'clip' like a transistor, it is a more 'squashed' effect on the waveform, which creates a more pleasing distortion.

Here is another view showing the effect on my scope with an X-Y plot:


I had to turn the scope illumination on to give my camera something to focus on, but you can see the squashed waveform on the bottom right which has the soft curves instead of a hard flat break if this was a transistor clipping.

I still have a lot to play with the circuit, I want to figure out why the bottom of the waveform is squashed a little more than the top. I'm only running the tube plates at about 60V, instead of the usual 120v. (This was a limitation of the transformer I was using for this circuit.) Overall i'm pretty impressed with the sound of it, especially with the complete design and build only taking about 5 hours. Listening to music through it definitely sounded good, and playing my Roland synth through it while overdriving the tube for distortion had some sweet results.

Friday, February 1, 2008

Harmon Kardon A300 capacitor replacement

After almost a month of listening to my new tube amp there was one slight problem I began to notice. The right channel seemed to be a little bit louder than the left. The problem seemed to get worse the more I listened to it. Or maybe I never realized it and now that I have, I listen FOR it which makes it more apparent. Either way... after a lot of checking, swapping channels of signal sources, switching speakers, etc... the right channel was louder than the left.

I figured I had three possible causes of the problem. A single or several bad/weak tubes, an out of tolerance resistor, or a bad capacitor. I started with the tubes. I swapped the 6V6GT power pentodes to see if the louder channel swapped, which it did not. I moved the 12ax7 triodes around as well, with no difference in channels. There was really nothing more i could do without a tube tester (which I find myself needing). But for now I'll assume that the tubes are ok.

Next step will be the capacitors... which I wanted to replace anyway. Lots of browsing websites of tube amp builders and repairers turned up a ridiculous amount of information about the best capacitors to use for an amp. Lots of people recommend things called "orange drops" which provide the best 'classic' sound . Whether this was the technical name of the caps or a description of what they looked like, Digi-Key turned up zero results for 'orange drops'. Now on to the more scientific approach. This site provided me good information on the linearity of different types of capacitors. After looking at this data, it looks like most capacitors would be well suited replacements with the exception of a few(ceramic disc, tantalum, etc...). I purchased high quality Panasonic polyester film capacitors for the signal paths and ordered high quality Panasonic 105 degree C. electrolytics for the power supply filtering while I was ordering parts. The original filtering capacitors were introducing a slight 60hz hum into the audio, and I know a fresh set of electrolytics for the power supply would solve this issue. I have always used these Panasonic high temperature caps for replacements in other devices... always with positive results.

Before:



After:



The results? It sounded better... for sure! The 60hz hum was definitely gone. I always use the Panasonic 105 degree C. electrolytics in all my projects, the extra price is worth it. The overall sound with the new caps in the signal path? Better... definitely. The only problem was my ears were still annoyed at the louder right channel. Time to start checking resistor values. :(

Thursday, January 17, 2008

SONY Blu-ray laser diode

A few weeks ago I came across a part of Sam Goldwassers' Laser FAQ talking about the SONY blu-ray diode that you find in SONY blu-ray DVD players and PS3's. I haven't been paying much attention to the new blu-ray format as I still think standard definition DVDs look pretty good through a good video scaler to a good HD projector... I also wanted to wait for the whole blu-ray / HD-DVD format war to end before I invest in either one. (as of right now it looks like the blu-ray format is winning). But the article I saw on the blu-ray diode really got my attention. What I didn't know about blu-ray diodes was that they actually emit visible blue light! 405nm to be exact. I had assumed them to be in the UV range (my bad assumption), but again, this way from my lack of knowledge on this new media format.

So of course I had to have one. There are a few companies out there that have been buying blu-ray format players, scrapping them for the diode and making laser pointers out of them. Then they charge ridiculous amounts of money for them, even thousands of dollars. But another good source of the blu-ray diode is the SONY ps3... more specifically a SONY replacement pickup assembly for the PS3. I found one on eBay for $50.

I received it yesterday and immediately begin tearing it apart. Here is the complete module:

Inside is a very cool array of lenses and beam-splitters:

Here is a close up of the laser diode pinout. This diode contains a 405nm blue diode, a 650nm red diode and a 780nm IR diode all in one package.

An even closer view of the assembly. The laser diode can be seen on the far right. There are some interesting optics and filters in here. Several of the filters are actually small LCD's.

The laser FAQ lists this diode to be running at safe levels around 4.5v at 30 to 40mA. Just to be safe, I limited my bench supply to 25mA before powering it up. I started the voltage at 0v and began slowly increasing. The first visible blue light was visible at about 3.2v. Brightness increased strongly up until about 4.10v, where my current limiting went into effect.

At this current which is lower than the 30mA to 40mA others had tested it at, the diode was extremely bright!


Now I just have to add a collimating lens to focus the output into a nice spot.

The lens I am using wasn't the best, it came from an old red laser diode module. I need to do a little searching to see if I can find a better lens laying around.

The final step will be to make a small power supply to run the diode off of batteries and mount everything in a small enclosure. Hopefully I will be able to finish it this weekend. More / better pictures will follow.

Wednesday, January 16, 2008

How rediculous...

So one of out at+t T1 circuits was disconnected, and I had to find out why. The following telephone call with at+t support just makes me laugh. I am typing this up after the phone conversation to the best of my memory:

(apparently the ampersand is not an allowed character in blogger... so I will use '+'s instead for a t and t)

me : could you please tell me when the last payment on this circuit was received?
at+t: the last payment was on Dec 12th for $nnnn.
me: what was the previous payment before that?
at+t: Nov 4th for $nnnn.
me: would it be possible for you to send me a list of all the payments we have made last year so I can figure out how we missed a payment?
at+t: well, this information would be on all of your invoices.
me: I understand that, but it would be easier to see a list from you with all of our received payments. this way i wouldn't have to contact our accounting department to request this information.
at+t: well, we do not offer that service.
me: ummm.. ok.
[silence]
me: well, what would i have to do to get this circuit turned back on?
at+t: i could forward you to our services department to re-activate this circuit. would you like me to do that?
me: sure.
at+t: okay, before i forward you to our services department, is there anything else i could help you with?
me: nope.
at+t: and how happy are you with your services with at+t? satisfied? or very satisfied?
me: are those my only two choices?
at+t: yes.
me: just satisfied i guess.
at+t: well, what could we do to make your experience with at+t very satisfied ?
me: you could start by providing me with a list of all our payments received for the past year.
at+t: i'm sorry, but we dont offer that service.
me: well... then i guess i will never be very satisfied with your services.

Friday, January 11, 2008

Broadcast ping

A really cool feature of the 'ping' implementation under most UNIX and Linux distributions is the ability to ping your subnets broadcast address.

[root@proxy /]# ping -b 10.70.0.255
WARNING: pinging broadcast address
PING 10.70.0.255 (10.70.0.255) 56(84) bytes of data.
64 bytes from 10.70.0.3: icmp_seq=0 ttl=64 time=0.058 ms
64 bytes from 10.70.0.10: icmp_seq=0 ttl=255 time=0.198 ms (DUP!)
64 bytes from 10.70.0.12: icmp_seq=0 ttl=64 time=0.205 ms (DUP!)
64 bytes from 10.70.0.48: icmp_seq=0 ttl=255 time=0.248 ms (DUP!)
64 bytes from 10.70.0.19: icmp_seq=0 ttl=255 time=0.254 ms (DUP!)
64 bytes from 10.70.0.16: icmp_seq=0 ttl=255 time=0.258 ms (DUP!)
64 bytes from 10.70.0.30: icmp_seq=0 ttl=255 time=0.262 ms (DUP!)
64 bytes from 10.70.0.46: icmp_seq=0 ttl=255 time=0.287 ms (DUP!)
64 bytes from 10.70.0.43: icmp_seq=0 ttl=255 time=0.292 ms (DUP!)
64 bytes from 10.70.0.35: icmp_seq=0 ttl=255 time=0.297 ms (DUP!)
64 bytes from 10.70.0.44: icmp_seq=0 ttl=255 time=0.302 ms (DUP!)
64 bytes from 10.70.0.57: icmp_seq=0 ttl=255 time=0.310 ms (DUP!)
64 bytes from 10.70.0.64: icmp_seq=0 ttl=255 time=0.336 ms (DUP!)
64 bytes from 10.70.0.253: icmp_seq=0 ttl=64 time=0.341 ms (DUP!)
64 bytes from 10.70.0.45: icmp_seq=0 ttl=255 time=0.346 ms (DUP!)
64 bytes from 10.70.0.222: icmp_seq=0 ttl=255 time=0.662 ms (DUP!)
64 bytes from 10.70.0.22: icmp_seq=0 ttl=64 time=0.669 ms (DUP!)
64 bytes from 10.70.0.229: icmp_seq=0 ttl=64 time=0.674 ms (DUP!)
64 bytes from 10.70.0.210: icmp_seq=0 ttl=64 time=0.678 ms (DUP!)
64 bytes from 10.70.0.216: icmp_seq=0 ttl=64 time=0.698 ms (DUP!)
64 bytes from 10.70.0.209: icmp_seq=0 ttl=255 time=1.42 ms (DUP!)
64 bytes from 10.70.0.40: icmp_seq=0 ttl=255 time=1.43 ms (DUP!)
64 bytes from 10.70.0.217: icmp_seq=0 ttl=60 time=1.43 ms (DUP!)
64 bytes from 10.70.0.246: icmp_seq=0 ttl=255 time=2.82 ms (DUP!)
64 bytes from 10.70.0.223: icmp_seq=0 ttl=60 time=2.85 ms (DUP!)
64 bytes from 10.70.0.252: icmp_seq=0 ttl=255 time=2.85 ms (DUP!)
64 bytes from 10.70.0.244: icmp_seq=0 ttl=60 time=4.13 ms (DUP!)
64 bytes from 10.70.0.248: icmp_seq=0 ttl=255 time=5.25 ms (DUP!)
64 bytes from 10.70.0.240: icmp_seq=0 ttl=255 time=15.4 ms (DUP!)

--- 10.70.0.255 ping statistics ---
1 packets transmitted, 1 received, +28 duplicates, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.058/1.554/15.486/2.926 ms, pipe 2

A couple interesting things about this. First, the only responding hosts are hosts that are set to reply to ICMP broadcast pings. On this network this includes my UNIX and Linux hosts routers and switches, along with a couple other random hosts such as firewalls and a few network based cameras. Now it would be nice to see all of the windows hosts as well, but as part of the windows TCP/IP stack they are set to not reply to ICMP broadcast pings. This seems unfortunate, as if Microsoft did not implement their TCP/IP stack according to RFC guidelines. But upon further research, in RFC-1122 (Requirements for Internet Hosts) This behavior is allowed:

"An ICMP Echo Request destined to an IP broadcast or
IP multicast address MAY be silently discarded."
The other interesting thing about a broadcast ping is the ordering of replies. The hosts that replied the quickest are the hosts that are the physically closest to the sending host. The hosts that took the longest to reply are the physically farthest away from the sending host. The hosts that have gigabit links, even though physically farther than others appear near the top of the list. It's just cool to see propagation delay at work...

Monday, January 7, 2008

The network

My home network is a disaster.

When it was originally set up about three years ago everything was nice, clean, labeled and organized. As of today it is a complete mess... I realized this over the weekend when I couldn't get a specific cable to link up to my switch, only to discover that the cable I was using had been pinched in my door a few too many times causing a break. I then looked at the rest of the network and realized that this is really bad.

My home networks primary purpose is an experimentation playground. Want to play with OSPF between two Cisco routers? Sure. Want to play with an 802.1q VLAN on a Cisco Catalyst talking to an Extreme Summit? Ok. Need to do some web / database development? Yep. This type of playing results in a lot of moving equipment and cables around... and the result is this:

Now everything is working and I know what's going on with everything... it just looks like a mess. A lot of equipment is off because of thermal issues... this closet doesn't have the best air circulation so heat can become an issue. I used to have a Catalyst 5000 in here which was capable of heating a good portion of my home. This was great during the winter months, but as soon as summer came around, it had to go to save myself from a ridiculous electric bill.

A couple notes on this equipment:
That is my 4th Linksys router. I have never had one last me more than 2 years before it fails. I have to reset mine about once a week... it works fine until it just stops routing packets. By best guess is just that it get's too hot? It shouldn't be an issue though, this closet doesn't get that warm and nothing else in there fails. Next time I will spend the extra money and get a good Cisco Aironet.
Also, Extreme Networks switches are awesome!

When I finally move, I will dedicate a lot more space to my systems, working on them in such a small space is not so much fun...

Wednesday, January 2, 2008

Analog pathway

I have always wanted a real tube based home audio amplifier. The idea has always intrigued me. With today's high end audio equipment and all it's clean transistor based output power capable of producing hundreds or even thousands of watts per channel, why such a fascination with an old obsolete method of amplification? I had to find out. Just the idea of having an amplifier that is 100% analog based with no DSP and no A/D and D/A conversions going on seems so cool. To hear real tube compression and microphonics instead of the usual digital harsh sound we are so accustomed to with todays electronics. To have an amplifier that only produces 12 watts per channel play just as loud as a MOSFET based amp rated hundreds of watts per channel. To amplify such low level signals by using just these mysterious glowing glass tubes, a few large coils of wire, and a handful of passive components... I have to see what they are all about.

I began my search as usual at lots of audiophile pages with owners talking about such and such amp, why it is so awesome, and how much it cost. My search then turned to eBay (my preferred method of purchasing almost anything) to find one I wanted. After looking at a bunch and reading lots of user reviews on the ones available, I decided on a Harmon Kardon A300. It was clean looking and in good shape, inexpensive, and working with all tubes intact. This was important because a set of new tubes (new old stock that is, tubes that were made 40+ years ago that were never used) could easily cost more than the amp itself. Most tubes are still manufactured by a handful of companies today (mostly Chinese), but most people seem to say that they don't sound anywhere near as good as the old Russian, UK, and US tubes made forever ago.


The A300 is a stereo amp with approximately 10-15 watts of output power per channel. It has 9 tubes, 4 6v6 outputs, two per channel in a class A push-pull configuration, 4 12ax7 tubes and 1 12au7 tube in the preamp section. Upon receiving, I hooked it up to my system, replacing my current MOSFET based amp, turned it on and hoped for the best. As for any vintage electronics, there is always a chance for disaster or death with first power on. I looked it over really well, so luckily there was no smoke and there were no sparks... after about 30 seconds I could see all of the tubes glowing so it was time for a listen.

(what's a pcb?)

Now don't get me wrong, digital based equipment sounds good, really good (with the exception of mp3's. An mp3 compared to a well mastered cd on a good system lets us forget how lossy the compression of mp3's actually are). So when I started listening to music through this amp it was amazing. Did it sound better than a non tube amp? Yes... well maybe. It sounded different. So this is the 'tube warmth' everyone talks about, I can't really explain it but it sounded good.

So the next step is to begin upgrading the amp. Replacing all the 40+ year old caps will be a good start... it will be interesting to see if it changes the sound quality at all...

In the beginning.

After much thought, I have decided to start a blog once again. I originally had one starting about in 2002 I think... mostly inspired by Jim's neverendingdoom. In it's original form, it was designed to be an electronics blog for myself to keep track of my current projects and ideas. Soon after it's creation it found itself containing random thoughts and ideas which were very not so much electronics based. After about a year or two of this, it became a webcomic (incomingninsense in case anyone remembers) followed by the base site for my photo journals for my trip to Japan. (I believe this site still exists on NS1 somewhere...) I still own the domain, as godaddy kindly reminds me every month that omg my domains are going to expire so renew now!

I have decided to use blogger this time. Previously I would always write my sites from scratch, but instead of sifting through all my old broken code... i'll just use this. I have too many other projects going on at the moment to focus my energy on.

So that's it. My projects will go here along with other thoughts that seem interesting...