Striking Sparks 

Last night was the annual Striking Sparks Awardsgiven by the Sonoma County Astronomical Society (SCAS). This phenomenal program has awarded more than 230 telescopes to promising young scientists in Sonoma County California. This is the 25th year of this program that was started by Robert Ferguson, Larry McCune, and the other members of the SCAS. Bob Ferguson is gone now, but the Robert Ferguson Observatory was named in his honor.

The ceremony is simple and homey and focused on the kids. They were all beaming. We could barely constrain them as the ceremony ended and we took them out to the parking lot to have a look at the night sky. We lucked out and it was nicely clear. Orion was ideally situated and was the first target for most of them.

I left feeling warm all over despite the chill in the air. Here were six kids who weren't as shallow and stupid as most you encounter every day. Maybe there is some hope. <Curmudgeon mode off>


[ add comment ] ( 18 views ) [ 0 trackbacks ] permalink ( 3 / 1468 )
Solar Monitor Module Tests 

I finished work on the Core module, so it's time to put a few things together to see if they work as planned. Here you can see the Core module and a Bar Graph board wired together along with a speaker and the transformer. All the functions work as intended, although I decided to make a simplification of the parallel port activity detector. I had two one-shots wired in series, but I decided that was over complicated. It works just fine with just one that times out if the CS- signal stays inactive too long.

I also made a small change to adapt to the bi-color LED I had on hand. The original design assumed a three leaded type, with a common cathode. The ones in the parts drawer have two leads. The Red and Green die are back-to-back. Easy change since the '4538 one-shot has Q and Q- outputs.

I've been using LM3915's in the Bar Graph boards. Those are the logarithmic scale variant of the LM391x family. I thought it made more sense for the first modules which will be monitoring radio frequencies. Future modules will monitor things like magnetic field strength, so I may go to the LM3914, which has a linear scale.

Here's a shot of the first front panel for the Bar Graph board. I need to tweak the locations of the three holes for the trim-pots, but otherwise I'm really happy with the results. I did a layout in Visio, printed it out, and stuck it to the blank metal part with spray glue. Very carefully center punched the hole locations, and drilled away. My printer had to be set to 101% to get the most accurate output for this. Always check the printed page carefully before cutting/drilling from it.

I still need to decide how to label each panel. I want to have some text that tells me what's being monitored. I may try the decal sheets I bought from Micro-Mark. They look pretty good over simple brushed aluminum.

Next up, I'll do the rack panel work to hold all this stuff.


[ add comment ] ( 7 views ) [ 0 trackbacks ] permalink ( 3 / 1403 )
Solar Monitor Core Module 

This is the core of the Solar Monitor project. There is a schematic here. This board holds the A/D converter which takes the signals from up to 8 bar graph/amp boards to be digitized and logged by Radio Sky. It also does the power distribution and some other house keeping functions.

In the upper left is the power input. An 18V Center tapped transformer from Jameco connects to the 3 pin molex. That gets turned into +- 10 or so volts DC, which is then regulated down to +- 8VDC by a 7805/7905 regulator pair. You can just about see them mounted to the heat sink - another part scavenged from a dead PC power supply.

Just below the transformer connector is another input from a 5V/3A switching supply from Jameco that supplies the logic and LED power.

The row of smaller molex connectors in the center is for the distribution of power to each of the bar graph boards (BGBs). Next to them are the 8 RCA jacks for the signals from the BGBs. Each BGB does a precision rectification, gain, and offset of the raw audio coming into it.

Finally on the far right is the socket for the MAX186 and the connector to the host computer.

In the lower left corner there is a 74HCT132 quad nand gate that handles the alarm function. Each BGB has an option to drive an open collector alarm bus when the top-most LED is lit. This gate latches that signal and generates a beep.

Next to the '132 is a 74HCT4538 dual one-shot. It's configured to time out if there's no activity on the A/D chip select for more than a second. It has a red/green LED attached so I can tell at a glance if the computer has stopped getting data from the A/D.

In the schematic, the LEDs, Speaker, etc are shown as being on the board for clarity. Next to each one is a tag showing which pin on the 10-pin molex connector it actually goes to.

This still needs some testing, and then it's time for the mechanical work to put the card cage together.

[ add comment ] ( 15 views ) [ 0 trackbacks ] permalink ( 3 / 1583 )
Cloud Computing 

I was thinking about "Cloud Computing" today as I was driving along with the roof down. When you have been a nerd as long as I have, you begin seeing long term patterns in technology. Cloud Computing is a phase in computing that we have experienced in the past.

The earliest computers I was aware of, in the 1960's, were the big iron behemoths that took up entire buildings and consumed more power than a small town. They were tended by staffs of professionals who created the programs, ran them on the data provided by the users, and then provided results in piles of printouts. I love the scene in Apollo 13 where Gene Krantz (Ed Harris) turns to one of the Mission Control staff and tells him to fire up another computer and bring it on line to deal with the data from the crisis. Computing was centralized in the control of a few.

By the time I got my hands on a computer, around 1973 or '74, it was a PDP-8E from Digital Equipment Corporation (DEC, bought by Compaq, bought by HP). Computers had been scaled down in size and price so that individuals could have access to them. Computing was localized in the hands of the users.

At Worcester Polytechnic Institute (WPI) I had experience with some in-between type systems. They had an IBM360 clone that ran programs from punched cards. I punched the cards, and held all the data, but they ran the programs for me. We also had a relatively large DEC System 10 with time sharing. There were terminals all over campus. The machine was multi-tasking many users. We were sharing one large machine.

In fact, WPI had the best computers in Worcester available to students, so there was a deal to allow students from the other schools to use it too. They called it the Worcester Area College Computation Center, or WACCC. Pronounced "whack". You can imagine the ensuing bad/colorful puns.

Fast forward to the Personal Computer "revolution" (forgetting machines like the PDP8 and LSI-11) and now we have a computer per person. Again. There were still large supercomputer installations, but generally the emphasis was on localized computing.

So now, all of those personal computers are interconnected by the internet. Google, among others, are proposing that we no longer run software on our own computers, but instead run a copy living on a server somewhere. We store our photos and music on a remote server. Computing got centralized again.

One of the large server farms will have some major failure, and we will realize that maybe we should have retained more local control. The best answer is some balance of the two, as always.

I skipped a couple of interesting little blips in there like the diskless computers that Sun made, intended to upload everything from a big host computer. We called them "pizza boxes" because that's exactly what they looked like. Minus the grease stains, usually.


[ 1 comment ] ( 42 views ) [ 0 trackbacks ] permalink ( 3 / 1578 )
Solar Tracking VHF Antenna Part 2 

Figuring out how to make the antenna track the sun was fun and interesting. I started out with a book called "Sundials: Their Theory and Construction" by Albert E. Waugh (ISBN: 0-486-22947-5). It takes you through the basics of how the sun appears to move through the sky. Remember that it's the Earth that's rotating... In the appendix of the book are several helpful tables of data. I ended up using some of that data in the PIC firmware.

The key to all of this is something called The Equation of Time (EOT), which describes how the position of the sun at noon varies throughout the year. From that equation, one can calculate the Solar Azimuth Angle and the Solar Elevation Angle.

The problem is that both require calculations of sin, cos, tan, and their inverse functions. I'm trying to do this in a relative small PIC processor. The only way to get there is to figure out how much precision I really need.

One Aside: I know I could run some planetarium software on my PC and just send standardized messages to the antenna driver to move it. That would be fine if I was willing to always have the application running on my desktop. I like to build stuff that requires less direct control by my PC. In this case, I want the antenna system to track the sun by itself, with higher level status and control to/from the PC.

Anyway, the half power beamwidth of the HD-6000 at 108 MHz is about 70 degrees, so that gives a fair amount of leeway in Azimuth. I don't have any data for the vertical beamwidth, but I decided that 5 degree steps in each direction should be fine. I worked from there and decided that I needed to move the antenna every 20 minutes to keep it reasonably well aimed at the sun.

To do all of this with integer math, I decided to scale the trig functions by 1000: 0-0.999 becomes a three digit integer from 0-999. To conserve memory, I have one table that converts integer angles from 0 to 90 degrees into the sin times 1000: sin(45) = 707. From this one table, I calculate the sin of any angle by inverting the angle and/or result. I use similar tricks to get the cos of any angle. The tricky bit is figuring out when you need to divide by 1000 to stay in scale.

Here's how it ends up working in the software.

Get the time from the RS-485 port. See my Precise Time and Frequency Page for details of where that comes from. Convert it from UTC to Local Mean Solar Time(LMST) which corrects for the difference between solar time and my exact longitude, and adjust it for today's equation of time. The EOT correction is done every morning at 2:30 AM.

Every 20 minutes, calculate a new position for the antenna:
Look up today's solar declination angle
Calculate the hour angle from the LMST
Calculate the Solar Elevation using the trig functions
Calculate the Solar Azimuth using the trig functions
If the sun is above the horizon, move both motors.

I have one place where I need to fudge to make up for the limitations of the integer math. When the hour angle is zero, right at noon LMST, the azimuth equation really needs more digits of precision to avoid bad results. I just check for the angle = zero and set the azimuth to zero. Much simpler than dealing with bigger variables throughout.

The code uses about half the available ROM and RAM. That leaves room for future improvements, but I'm really sure I couldn't have fit the floating point and trig routines from the C compiler.

It's working well, and most of the tweaks I've made have more to do with finding home and dealing with the limit sensors.

Drop me a line if you want to see the actual code.



[ add comment ] ( 11 views ) [ 0 trackbacks ] permalink ( 3 / 1636 )

<<First <Back | 1 | 2 | 3 | 4 | 5 | 6 | Next> Last>>