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...