On the SPOT: David G. Simmons

I feel so inadequate ...

Monday Oct 30, 2006

We launched a rocket 300 feet, and then this guy comes along ... Rocketry Planet - BALLS15: Gene Nowaczyk achieves record 93,324 feet with Q20000

Now that's launching a rocket!! I'll have to see if we can get some Sun SPOTs on his next launch.

Launch data:

rocket height: 14' 8"
rocket weight @ lift off: 318 pounds at liftoff.
motor: Q20,000 ammonium perchlorate composite propellant motor
acceleration: 23G's
burn time: seven seconds
max velocity: 3,344 feet per second / Mach 3.45
sustained Mach transition: 46 seconds
accelerometer: blackSky ALTACC
time to reach record altitude of 93,324 feet: 60 seconds
landing distance from launch site: 4 miles

[You may be marching to the beat of a different drummer, but you're still in the parade.]

[1] Comments
Like this post? del.icio.us | furl | slashdot | technorati | digg

Fun with Bluetooth

Sunday Oct 29, 2006

Well, it looks like I had a bit too much time on my hands today.

Mike Davis (with whom I used to work back in my Honeycomb days) was kind enough to donate his old Jabra BT250 Headset to me a few weeks ago. I'm sure he had no idea what I planned to do to it.

It is completely unrecognizable at this point, though it still functions beautifully. I spent the day with a Dremel , my Metcal soldering iron, and an old AT&T Phone Handset. (I am sure that many of you can already see where this is going ... )

What I ended up with is a fully functional Bluetooth headset hidden inside the AT&T Handset. The buttons are a tad difficult to get to, but I did drill holes in the shell so that they are accessible (else how would I pair it with anything, right?)

Here's what it looks like, finished ...

BlueTooth Fun

Yeah, looks like a regular handset. But it works a treat! And for those of you wondering ... while I was in there I upgraded the battery from the measly 150 mAh Li+ battery to a mammoth 750 mAh Li+ battery left over from a dead Sun SPOT.

But how do I charge it you ask? Well, I wondered that too ... so I had to come up with a solution befitting the entire project ...

BlueTooth Fun

Yes, the phone-cord is now the charging cord! Just plug it in and it charges -- takes a bit longer than the stated 2 hours, since I upped the battery capacity so much -- but it charges perfectly.

Now all I need is one of those Cool Shoulder Rests so that my handset can be hands-free again. (If anyone wants to donate a black one, let me know!)

So, a couple of more pictures of the project ... phone porn? This is the handset with the mic and speaker hot-glued in

BlueTooth Fun

And this is the whole thing all taken apart on the desk, as I was testing the charging system before soldering it all together....

BlueTooth Fun

Yeah, I know. I need to get a life. But it was fun, and now I have my very own cool Bluetooth Headset!! Thanks Mike!

[(1) Avoid fried meats which angry up the blood. (2) If your stomach antagonizes you, pacify it with cool thoughts. (3) Keep the juices flowing by jangling around gently as you move. (4) Go very lightly on the vices, such as carrying on in society, as the social ramble ain't restful. (5) Avoid running at all times. (6) Don't look back, something might be gaining on you. -- S. Paige, c. 1951]

Like this post? del.icio.us | furl | slashdot | technorati | digg

Astroturf Marketing

Thursday Oct 26, 2006

Someone emailed me this little quip, and I love it. Sure does describe so much of what goes on in the world of marketing, communications, and politics.
Astroturfing is the artificial creation of a grassroots buzz for a product, service or political viewpoint. Commercially-motivated astroturfing is called "astroturf marketing." Astroturf marketing has a negative connotation, primarily because disreputable marketers have used deceptive tactics to build their buzz by taking advantage of the anonymity the Internet provides.
Astroturf marketers typically use blogs, message boards, podcasts, wikis, vlogs, chat rooms and social media Web sites like MySpace when building an artificial buzz. Deceptive astroturf marketing techniques include impersonating someone in the targeted demographic, creating an entirely fictional character (called a "meat puppet") that's meant to appear to others to be a real person.
Astroturf marketing is sometimes called green marketing.
See also: buzz marketing

[I'm shaving!! I'M SHAVING!!]

Like this post? del.icio.us | furl | slashdot | technorati | digg

Me at work ...

Monday Oct 23, 2006

Just so you know what I look like while sitting at my desk ...

philco_2

["Our journeys to the stars will be made on spaceships created by determined, hardworking scientists and engineers applying the principles of science, not aboard flying saucers piloted by little gray aliens from some other dimension." -- Robert A. Baker, "The Aliens Among Us: Hypnotic Regression Revisited", The Skeptical Inquirer, Vol. XII, No. 2]

Like this post? del.icio.us | furl | slashdot | technorati | digg

Dynamic class loading/unloading

Tuesday Oct 17, 2006

Ok, sol I'm no Java guru by any means. Not by a long shot. But I have been doing a lot of Java programming lately. A lot. And some of it is actually starting to get rather complicated. As an example ... the Sun SPOT kits (and no, they are not available yet, sorry) come with a base station. The base station is a computer-conected SPOT with no sensor board or battery, used mainly as a bridge between the laptop/desktop world (and hence the Internet) and the world of Sun SPOTs (the IEEE 802.15.4 world).

The problem I had is that I only have one base station SPOT. But I wrote the GPS SPOT and also a Remote Controlled Camera SPOT application (not blogged yet). Both of them require a base station in order to bridge the Internet/802.15.4 divide. But remember, I only have one base station.

So my first solution was just to combine the two base station applications into one. But I could see that such a solution was soon going to lose its appeal as the number of applications I needed to run grew. Also, I could not debug one application, or update one of them, without killing the other, at least temporarily. Hmmmm ... how to share the base station in a way that would allow applications to be added and deleted without affecting other applications.

I know this problem has been addressed on other areas, like application servers, but I needed to do it in a very small footprint.

And I needed to do it on Sun SPOTs.

So I began looking in to the whole thing. And it turns out that I could find very little information on how to do what I wanted to do. Writing a class loader to load classes is pretty easy. Actually unloading classes is a tad harder. Also, as I found, there are some cool flags to the VM that are not well documented, but that can show you what, exactly, and in excruciating detail, the class loader and garbage collector is doing. This is very useful information, it turns out.

-verbose:gc
Will give you fairly detailed information about what the Garbage Collector is actually doing, but I really needed information on what the ClassLoader was up to. I found these flags:

-XX:+TraceClassLoading

-XX:+TraceClassUnloading

to be hugely helpful in that regard. I could watch classes being loaded and unloaded, so I knew when I had successfully managed to completely nuke a particular class.

I now have a Base Station application that I can dynamically load and unload base station applications into -- though they are not truly 'applications' but rather just threads in an existing application -- which has proven to be hugely helpful to me in running multiple, unrelated base station applications from my one measly base station.

I tend not to post actual code here, but I can, if I get enough interest.

[There's no room in the drug world for amateurs. ]

Like this post? del.icio.us | furl | slashdot | technorati | digg

GPS Spot Part 2

Friday Oct 13, 2006

So at least one of you managed to read yesterday's entry about the GPS SPOT and then read my posting on the Sun SPOT Forums about it and ask about the 31' skew I encountered.

True enough, I found that the GPS receiver was off by 31' (minutes) in its location. At least, 31' was my estimation based on looking at a bunch of reading and then doing a lookup of my address. My new theory is that it is actually a factor of something called the 'GEOID Separation.' The GPS Unit puts out a value for this at 33. So, I surmise that my receiver data needs to be 'adjusted' by the GOID Separation value, and that my estimation of being off by 31' is actually off by 2' itself, and that if I adjust by the GEOID Separation value of 33, I will be right on.

I have not tested this, but it may be correct.

If anyone knows a lot about GPS data, and all that stuff, please feel free to let me know if I am correct, close to correct, or wildly off-base and making myself look foolish. :-)

[Millihelen, adj: The amount of beauty required to launch one ship. ]

Like this post? del.icio.us | furl | slashdot | technorati | digg

The GPS SPOT

Friday Oct 13, 2006

I've finally finished working on the Sun SPOT Installer -- an experience I don't really wish to repeat -- and have had some time to go back to working on some Sun SPOT applications. This is what I'd much rather do, really.

So I ordered a bunch of parts from Spark Fun Electronics which, if you've never been there, is a really cool site. They have a great selection of very inexpensive sensors and gadgets and gizmos. So I ordered a bunch of stuff. The GPS Unit I got was even relatively cheap. A nice SIRF III unit, I couldn't wait to get it hooked up but was a little worried about the complexity.

I had met with a potential customer that had a grad student working on hooking up GPS units to Motes, and he had been at it for a while without much success, so I was not actually all that hopeful. Ah, ye of little faith!

Turns out that this unit puts out it's data as ASCII formatted NMEA Messages. Basically, a comma-separated message containing all the GPS data. So I had to get to a UART on the Sun SPOT. Arshan provided me with a hacked sensorboard firmware that gave me access to the on-board UART through a couple of the Digital I/O Pins on the board. Never one to be intimidated by stuff I know very little about, I plunged ahead.

I got the schematic for the GPS Unit and did a temporary wiring job using jumper wires, and wrote a quick bit of software, and ... guess what? It worked the first time!!! I got NMEA messages immediately. But what did they mean?? Well, luckily, there is a Reference Manual that explained how to interpret the messages.

Turns out that the hardest part of the whole project was going to be parsing the messages. Actually hooking up the GPS unit and getting data was dead-simple and took me less than an hour to hook it up and get data off of it. I'm currently only parsing the GPGGA messages, though I have parsers for all of them built in to the unit now. After I was sure it was working properly, I constructed a proper GPS SPOT. Check it out:

DSCN0589

So that's the GPS unit hot-glued on top of a Sun SPOT (I drilled a hole in the 'Sun Roof' for the wires to go through) and it looks pretty cool!

To complete the whole thing, I had to develop a little Web 2.0 Application to show the GPS Location of the SPOT on a Google Map.

Fun.

Next I have to do on-SPOT data-logging so that the SPOT can collect where it's been, and then download that information to the server when it comes back in range. Next version, for sure.

[Talking much about oneself can also be a means to conceal oneself. -- Friedrich Nietzsche ]

[2] Comments
Like this post? del.icio.us | furl | slashdot | technorati | digg

NL-JUG JFall Conference Review [Alan Williamson]

Thursday Oct 12, 2006

NL-JUG JFall Conference Review [Alan Williamson]:
Pretty cool that Sun SPOTs are showing up at all the best Java events around the world! Angie and Simon are promoting our stuff heavily, and we appreciate it immensely! Plus they make some cool demos!! I've actually been working on a few new demos myself lately, which I will blog shortly.

[The Heineken Uncertainty Principle: You can never be sure how many beers you had last night. ]

Like this post? del.icio.us | furl | slashdot | technorati | digg