Nomadness

Tales of the new direction at Nomadic Research Labs... the move to a ship named Nomadness

My Photo
Name: Steve Roberts
Location: Camano Island, Washington, United States

Monday, March 23, 2009

Shipnet Architecture

I spoke at the Microhams conference in Redmond this past weekend... my first "gig" in quite a while. It went well, I met lots of interesting and creative digital radio geeks, and even managed to catch up a bit with some tech that I'm going to be using Real Soon Now.

Making a slide presentation for the event prompted me to stabilize the Nomadness network architecture enough to be able to discuss it comfortably. A half-dozen notebook sketches of varying quality morphed into a real architecture drawing, highlighting aspects of the design that were not really clear... but that I assumed would snap into focus someday. That day arrived in the form of a deadline.

Armed with my favorite drawing tool (the exquisite OmniGraffle Pro), I turned the past year of noodling into a high-level document that clearly expresses the Nomadness Shipnet. This will eventually find its way to the website as an image map, with each device supported by a block diagram at that level and further links to monographs of schematics and software. But for now, it's a blogworthy introduction to this crazy nautical system I'm building:


Clicking the picture opens a large version in a new tab or window, which should make it easier to follow along as I describe the major features.

Internet and LAN

The upper left is the WAN/LAN zone... with the primary connection to the outside world (at least in populated areas) being an EVDO router augmented by the usual armamentarium of WiFi tools. At the moment I'm using a Top Global 6800 for this, but that will change to a Cradlepoint sometime soon. A Dynamic DNS account allows remote access to on-board servers.

The router, as in a typical home network, supports a wireless LAN for the laptops and other connected gadgets... the EyeFi SD card in my digital camera is happy here, and a friend who came aboard with an iPhone wondered aloud at seeing a hotspot in the middle of Puget Sound. This also supports the IP cameras, currently a couple of Axis 210 units with motion sensing and FTP, alarm-triggered events, and single in/out bits for sensing and remote lighting control. These will be augmented by a 4-port video server that can handle waterproof analog cameras for the brutal marine environment.

To the right of those is the Nav Station, a Mac Mini powered by a Carnetix P1900. I'm not yet sure what the display will be, but my current assumption is that this will be indoors in the pilothouse, with an "appliance chartplotter" at the outside helm. The Mac, of course, also takes care of the usual suite of productivity apps, assuming the operating position at the helm is comfy enough.

The system that will see most of the upcoming development effort is the box labeled "Linux Server," an always-on network Hub with solid-state disk. This runs the ship's database-backed web server, security/watch software, communication tools, and most of the other stuff that needs to be available on demand. The hardware selection is still not certain, but there are a few candidates; the key, given that pesky "always-on" specification, is minimal power dissipation. It doesn't have to be the fastest thing out there, just rock-solid reliable except during a lightning strike (then cheaply replaceable once toasted <sigh>).

NMEA 2000

The colorful lower-left section of the drawing is already installed and working well: the N2K network of navigation instruments and related nautical goodies. I use a Maretron backbone (and am about to add their excellent product line to my store), the Autopilot is Simrad, and the masthead is a trusty old B&G Network system interfaced to N2K via a 2-hop kluge that is still not quite stable.

All this is electrically CANbus, and talks nicely to chartplotters and the DSM250 display at the inside helm. A key requirement is a stream of all available N2K data into my database, and the current plan is to use the USB100 gateway. This is a Windows-only product, so an early to-do list item (unless a volunteer pops up!) is to see what it takes to slurp this into Linux... hopefully it will run under WINE.

Back Doors and Other Strays

The little cluster at the upper right doesn't need much attention right now; it is basically a collection of serial devices that need to interoperate with the server. Most critically, I need to be able to run a Winlink client via the overpriced (but essential) PACTOR box that, in conjunction with the Icom 802 SSB rig, will be the key link for global messaging. I was happy to hear at the conference this weekend that a Linux client exists, and now have some connection with folks who know the system well.

Ideally, proper client/server design should allow use via any of the laptops or the embedded Mac. But I'm straying into the domain of hand-waving here, as I haven't explored this part at all.

The zone of miscellany also includes the sexy Kenwood D710A, the serial feed from the retro stand-alone NAVTEX box, the data stream from the Outback power system, and some other gear. I prefer to use the Mac for all the audio stuff, however; an important subsystem involves Audacity, USB and FireWire interfaces, Garage Band, MIDI, and other musical goodness.

The Sea of Nodes

The big array of 15 boxes below the USB hierarchy is where most of the fun stuff resides... all Arduino-based, as far as I know at the moment.

Every node takes care of some logical grouping of I/O points, generally in some localized region of the boat. This minimizes cabling and keeps things clear, and some nodes are defined more by their location than any particular function (like Midship). Some are trivial, just picking up a few bits or analog sensors and turning them into variables that are periodically polled; others are responsible for actual control tasks.

A couple of them have some infrastructure responsibility. The Crossbar node is a huge array of DPDT latching reed relays driven by a long chain of SPI shift registers, and (unlike my earlier Microship crossbars) is completely signal-agnostic. Little groupings can be conjured to make anything from the serial switch in the drawing below to a sparse matrix or full-blown multiplexer, and they can handle audio, video, analog, or whatever. This physically resides in the Hub, and is making me wonder if the sexy audio mixer was such a good idea... gobbling panel real estate with non-marinized controls.

The other infrastructure node is the one that lets me get access to this whole system without having to go through the network front end:


This uses the venerable "Yaesu twins," the 290 and 790, which have the distinctive characteristic of sipping only about 50 mA on receive standby yet cranking out 25 watts on transmit. Every other robust VHF/UHF rig I have seen sucks about an amp when just sitting there, and, like the Hub, these need to be on all the time. They don't have fancy computer interfaces, but I don't need them here.

What I do need is a way to communicate with the boat from shore, using only waterproof low-power hardware (not a laptop). I always carry a Yaesu VX-6R submersible handheld rig in my pack, and like all modern amateur HTs it includes a DTMF pad for accessing telephone autopatches on most repeaters. Here, I'll just key the microphone and state my call to keep things legal, then transmit a short tone sequence that is decoded by a chip hanging on the Arduino. Depending on the command, it will then construct a serial string that is passed to a speech synthesizer... yanking the push-to-talk line on the rig until it gets the all-done signal back. "Main battery level is 72 percent."

The node is frequently updated with every variable on the ship (well over a hundred data points), and typical queries generate a summary of some subsystem, request a report on alarm conditions, or implement simple controls. One class of commands is piped to the hub, allowing a higher level of response (do I have email?), another is fun demo stuff, and yet another takes care of "back door" maintenance functions like rebooting the Hub or rerouting network connections. The hooks are even here to implement a complete remote-base operation on HF ham radio or other comm systems.

Similar functionality can be had via a vanilla packet radio link on 2 meters, or through the "Ethernet shield" on the Arduino that allows a connection via the Internet (with authentication, of course).

This is going to be a fun one. On the Winnebiko II and BEHEMOTH bicycles, speech interaction was one of the most entertaining parts (a Votrax on the former, and Audapter on the latter).

A Note on Complexity

Finally, I want to address a frequent and reasonable question (which came up during the Q&A session following my talk the other day). Even leaving out the maintenance issues with all this gizmology, is there a danger that the complicated gadgets will distract from the fundamental operation of the boat, negatively impacting seamanship?

Well, not if I do my job right. The idea in all this is not to tinker endlessly with gadgetry, but to strike a balance between the kind of stuff I find most amusing and the practical needs of maintaining an 18-ton voyaging machine. None of this should ever be in the critical path to basic sailing and primary safety; it is instead a layer of "local situational awareness" that is intended to tag reality with additional information... and otherwise stay out of my way.

A good example is the Waterworks node. This has a centrally located flow sensor along with a way to see the position of every valve on the boat, so right away I get intelligent tank level monitoring, usage summaries, and other resource management. But with all that in place, it becomes trivial to solve a huge maintenance headache:

A sealed box with an LCD and very simple user interface is next to all the plumbing stuff. Anytime I perform an action like changing a filter, replacing the UV sterilizer bulb, or cleaning a strainer, I tell the node about it by stepping through a set of choices. This then becomes a "soft event" that is time-stamped and logged in the database. Now it's easy to keep track of the total number of gallons (or weeks) that have passed since each maintenance task, providing a dynamic PM schedule that doesn't require me to remember to check things that are properly out of sight, out of mind.

So it's getting fun. Despite all the absurd distractions (real estate?), this and the fundamental ship systems are now the prime focus... Spring is coming!

Now to go Tweet this and get to bed.

Cheers,
Steve

Wednesday, March 18, 2009

Son of a Sailor

This update is a bit of a divergence from my usual breed of randomness, which typically has something to do with S/V Nomadness, development facilities, technomadic gizmology, or random noodlings triggered by any of the foregoing.

I'd like to dedicate this posting to my father, Ed Roberts, who passed away in 2005. The trip to Kentucky to shut down the old family homestead was a huge 6-month project, and left me with a Wells-Cargo trailer full of artifacts along with unexpected glimpses into my dad's life, making me wonder why we didn't have far more conversations about his complex and passionate past.

I've always known that he had a sailboat before I was born, for example, but I didn't realize that it was a central fixture in his life for over a decade... beginning with the initial construction of Star #2011 (named Dabih, after the beta star in Capricornus - a rare visual double with all sorts of strange chemistry). The boat was built by Herman Lund in 1940:


This was 12 years before I came along to irrevocably shift family economic priorities, and my dad became heavily involved in the Star yacht racing scene while ramping up his engineering career at General Electric (including distinguished service to the Navy during WW2, inventing rocket launchers and nose cones using the newfangled Bakelite material). He often wore his old ISCYRA pin:


Here are some glimpses of Ed, Dabih, and the other Stars in the Lake Erie fleet...








A few years passed. I popped into the world in 1952, was put up for adoption, then arrived in the young Roberts family in early 1953. I think the picture of us below is kind of poignant, since he sold the boat shortly thereafter and moved to Louisville to design refrigerators at the new Appliance Park:


Through my childhood, my dad often raced Thistles and Penguins on the Ohio River, and a love of boats and engineering permeated my early conditioning. Yet I never saw these photos until just recently.

From the perspective of a child, parents are just part of the environment... always there, somehow absolute. It never occurred to me to probe for stories, as I would now with any random friend. This central relationship was almost taken for granted.

Only after my parents were gone, when ancient correspondence emerged from Deep Archives and bizarre historical artifacts peeked out from under decades of accumulated clutter, did I suddenly get a sense of the complexity of these lives that shaped my own.


Just a reminder, my friends. Get to know your parents while you still can.

Fair winds, Dad... and thank you.
Steve

Thursday, March 12, 2009

Front Panel Retrospective: Intel 8008

It's freezing in the harbor, and I'm on one of my too-infrequent work trips... mapping my normal project-management context-switching into a form so jarringly physical that I have to take laptop breaks. This is not healthy; the ratio of those orthogonal activities should be inverted.

Still, I'm enjoying the night aboard, and the stove is cranking at a cozy Fahrenheit 451° (according to mechanical instrumentation which is urging me to "Burn One"):


The book-length to-do list would be a nice candidate for incineration. Sometimes it seems an end unto itself.

I arrived with a touch of anxiety. Monday night, as I was trundling off to bed, I took a quick peek at the boat's webcam, remembering that I had forgotten to re-enable the motion-sensor that responds to activity in the pilothouse by emailing me, texting my cell phone, and FTP'ing frame grabs to an off-ship server. It was dark, since I haven't yet installed the remote lighting control... but my blood ran cold when I saw that the camera angle had shifted significantly downward since I snagged a screen capture Saturday for an article I'm writing.

Here's what it usually looks like:


But on this night, the black grainy scene had two distinct window shapes at the very top edge, and a correlating glint revealing the angle of that railing in front of the wood stove. Yikes.

My mind raced. It's a long way over and back... and what could I accomplish at 2 AM? There was no current activity in the salon, just the steady refresh showing subtle movement in the harbor water outside... but it clearly had moved. Did someone come in and fiddle with stuff, nudging the camera on its mount? There had been recent north winds, and I tried to imagine the boat whacking the dock hard enough to overcome camera-mount friction. Nah.

I fired off a letter to the port and went to bed, but sleep was fitful... though somewhere around 4 AM, I concocted a theory that the temporary EVDO antenna suction-cupped to the window had fallen down, hitting the camera in the process.

In the welcome light of morning, things looked fine on camera. Other than the angle, there was no evidence of tampering, equipment removal, rifling, partying, nesting, or any other nefarious activity. Then I saw it! A cheesy little plastic stand, part of the antenna, lying on the nav station desk! My theory had been correct... and when I arrived today, there was the proof:


Guess I really oughta finish that sloppy installation. Sometimes incomplete information is much worse than no information.

That big cable-filled gaposis, by the way, is where an ancient Furuno video sounder used to live. That whole panel region is being replaced by the new console, and one of the key jobs on this trip is to cut and fit a template (I have always done better with a hands-on model than with a set of drawings... I've measured that space a dozen times, but it won't feel real until I can touch it).

I spoke in the last posting about the investment in boat parts that rescued at least some money from the doomed stock portfolio; compared to the latter, that pile of shiny gizmology feels like my own little dotcom boomlet, still worth something close to what I paid for it. Even more fun, it's about to get mounted on a big hinged panel, provided with numerous blinkies, and interfaced to every corner of the boat.

I have a long history of this.


A Front Panel from 35 Years Ago

Apologies in advance, for this is maudlin nerdly retrospective Writ Large. I was chasing something on flickr a while ago, and came across a familiar sight: my first homebrew computer on display at the Computer History Museum. Of course I knew it was there, but back when I made the donation digital cameras were primitive, and I never got a good photo. Laughing Squid did, however, and I'm delighted to present it here (clickable for more detail):


This is only part of the old machine, which also included a Scanbe "Rapid Rack" card cage filled with 60-socket Augat wirewrap panels, a keyboard enclosure with integrated card reader, and more... a 6-foot rack cabinet that dominated my apartment living room when I was 22.

This was in 1973-4, predating those newfangled S-100 Altairs and IMSAIs that kicked off the personal computer phenomenon, and it flickered to life after a few months of obsessive design and fabrication with only the cryptic Intel 8008 databook for reference. In some primal male response to those first blinkies, I started my beard that day.

Microprocessors were bizarre back then, and at first I considered it a brief break from the ALU-based mini I was designing (and never finished). I still shudder at the 4-phase 600 kHz clock and some of the odd things that took place during transition boundaries... like the magical fleeting appearance of the content of a register if you tried to move it to itself ("load B with B" and the like). This sort of thing enabled a number of outboard enhancements that let me overcome the 8008's intrinsic shortcomings... in particular, a hardware hack that added a data stack in outboard TTL RAM in addition to the limited 7-level return stack in main memory, allowing me to save context on a subroutine call.

The machine had 4K of 8-bit static RAM made of 2102s... I originally dedicated a wirewrap board to a mere 2K, but wanted MORE... MORE! So one night, I folded out all the chip-select leads of another 16 expensive 1024-bit DIPs, then soldered them on top of the first batch and wired the floating selects back to the address decoder. Wowzers! A whopping 4K. I was ready to compute the world.

There were 8 interrupt channels, 64 bits each of input and output, a graphics subsystem using a pair of 8-bit multiplying DACs outputting X-Y to my Tek 7504 oscilloscope from a DMA display list, and a painfully slow math co-processor made from a Taylor-Series calculator chip with kluged BCD and 7-segment interface (mostly because I was intimidated by writing floating-point routines). I remember the night it drew a lovely (sin X)/X curve... took HOURS and I had consumed half a bottle of Jack Daniels by the time it was done, but it was a thing of beauty, I tellya what.

Over its useful life, this machine also implemented Walsh-function waveform synthesis and a top-octave synthesizer for music projects, a hardware polyphonic music keyboard interface that I published in Byte, a one-shot Hollerith card reader that allowed me to boot-load with a multi-punched image instead of wearing my fingers out with deposit-next, Friden paper tape reader and punch to handle my Cybertronics mailing list, newfangled 1200-baud cassette interface hacked out of a Bell 202 modem, and right outta the gate, a hardware driver for the marvelous Model 28 Baudot teletype that I still recall with wistful fondness. (This latter circuit was my first published magazine article... in the July 25, 1974 issue of Electronics magazine.)

I still have the original file of 35-year-old hand-drawn schematics made with logic templates and lots of obsessive passion... I really should scan them.


I sure do miss front panels. This one got a lot of use, and my early "screen saver" was a 555 (associated with the black knob) that allowed variable-speed single-stepping and a corresponding hypnotic blinking of the address and data bus LEDs.

I remember one debugging night when address bit 14 appeared to be always on. I popped off the wire at the driver chip (a 7404) and it was still on, so obviously there was a short to ground between there and the LED pin (the other side went to a pullup to +5). So I casually removed the wire.

The light was still on... with only one wire connected. I poured myself a drink and stared at it for a long time.

It turned out that on my hobbyist budget, I had acquired a batch of surplus LEDs that failed some parametric test along the way... and this one had been dipped crooked in the plastic. The cathode metal was thus flush with the outside of the body, and made contact with my aluminum front panel (forever being known as the infamous "field-effect LED").

Ahhh, memories. <creak> <sigh>

In a masturbatory paroxysm of gratuitous acronymism, my friends and I dubbed the machine BEHEMOTH... for "Badly Engineered Heap of Electrical, Mechanical, Optical, and Thermal Hardware." Fifteen years later, a much larger BEHEMOTH would roll out of the lab, this one the "Big Electronic Human-Energized Machine... Only Too Heavy." (It now resides in the Computer History Museum as well; here are three recent photos from the phrenologist photo pool: overall, console, seat.)

I think should coin a matching acronym for this new nautical contraption, just to keep things confusing in the spirit of Monty Python's Aussie philosophers.

Well, enough reminiscing; I have some new projects to work on. Hopefully I'll be looking back at these in another 35 years, wondering aloud, before nodding off in my geeked-out wheelchair, how I managed to sail with only a terabyte of disk on that old boat...

Tuesday, March 03, 2009

Mini Macs, Escape Velocity, and the Crash

Hoo-boy, this is a crazy time. Whether on the cusp of TEOTWAWKI, the transition to an initial cap in the word depression, or just a bloody dust-up in the sleight-of-handoff of dictatorial powers, there is a sense of contextual discontinuity that makes it hard to maintain steady project focus. Of course, I'm perfectly capable of gallivanting off in multiple divergent paths even without a broken economy to blame, but there is an added air of urgency now.

I never thought I'd say this after observing the staggering amount of money that I rescued from stocks and put into nautical toys in 2007-8, but I now consider my boat (and even the electronics) as a great investment. At least that stuff loses value linearly, and can be used in the meantime. I'm almost glad my father is not around to see what happened to his treasured GE stock, which has plunged from a stable, boring $36 at the time of his death in 2005 to around $6 at this writing. He would not have understood my selling it, especially to buy electronic toys that are famously bad long-term investments... but if he could see today's stock price he would be bewildered.

Of course, I had no idea it would plunge; I was just smugly making the move to contrarian investments after reading Crash Proof. But even non-dollar-denominated international dividend-paying commodities have been halved in this paradoxical flight to treasuries, so I'm screwed anyway. What's left of my "portfolio" is too painful to contemplate; like many people, I have a pile of unopened statements on my desk that I can't even bring myself to file.

The lesson here is that we should be investing in ourselves, our own tools and consumables, and of course anything that gets us out of debt. Nothing makes sense anymore except simple reality: solar panels, tanks of fuel, parts, voyaging stores, facilities, food production, water resources, and tools. Forget complex financial instruments and other things you can't control.

Return on investment (ROI) does not have to be purely economic in these waning days of the empire when "dollar-value" is a vaporous term. I wince when I look at the money spent on a nautical toy that is sucking insurance/tax/moorage while immobilized at a distant dock... but when I take a longer view, I see that "payback" takes a broader form: increased self-sufficiency and flexibility in making choices. In practical terms, this might mean seeing the boat as alternative housing, being able to use it as a relocation vector during a move, or (in the paranoid worst-case) as a bug-out vehicle. Cost-benefit value is not necessarily numeric.

With all that in mind, I am continuing the exploration of alternative home-base facilities. The observation so far is that waterfront property (with on-site moorage, not just a pretty view) is almost unavailable and prohibitively expensive in any case, both in terms of acquisition cost and ongoing taxes that are about double compared to equivalent inland real estate. That trades off directly with the cost of moorage, so it's not necessarily a deal-breaker, but the TANSTAAFL principle holds here just as it does everywhere.

On the other side of the equation, we're also trying to get this place on the market... or at least see if the whole exchange is feasible. I just posted about the lab-for-sale over yonder at the long-dormant Microship blog, so I won't go into detail here. But please do read Sky's excellent posting on the same topic... she has a wonderful way of expressing the essence of something that I see from a more geeky and pragmatic perspective, and the combination makes for a deeper view than either alone.

A Nascent Emporium of Geek Goodies

All this talk about financial stuff is a reminder that nickel-generation has been on the back burner for too long. The Nomadic Research Labs online store is now alive and slowly getting populated with products, and it appears that an early focus will be on sensors and other "boat interface" goodies... dovetailing nicely with my Arduino development projects and the corresponding Boat Hacking book. So far, I've just been adding items that are already in stock here, holding off on actually purchasing products for resale, but now that I've clawed my way up to the knee of the store learning curve, I think it's time.

I am excited about one recent addition, though. I have contemplated publishing a monograph on this subject for years: the collection of "trade secrets" that have made my adventures possible... the art of working with sponsors, media, and volunteers to get an insanely ambitious project off the ground and keep it moving on its own momentum. I actually started writing this when I was doing the Inside Microship book for O'Reilly, but it fell by the wayside when I got caught up in editorial musical chairs (my particular curse, it seems; that also happened 25 years ago with the Computing Across America book, and I'm still suffering for it).

Anyway, this 28-page PDF has a very specific audience: those who are attempting to "reach escape velocity" with a massive feat of engineering. It is not about hardware or software technical methods; it is about the meta-hack of developing enough support and buzz to get your project to take on a life of its own. Large corporations can do this with brute-force methods (unlimited money and people), but individuals face daunting hurdles when competing for mindshare and resources. Without the ability to leverage larger forces as a sort of "martial art," it is exceedingly difficult for a lone geek to escape the gravity well.

There is an outline over at the Reaching Escape Velocity product info page.



Shipnet Progress

The Arduino node development is still moving forward, though it is competing for wetware-cycles with the redneck bow thruster, strut-channel solar array mounting, waterworks, facilities quest, e-commerce baby steps, and eBaying at the moon. I've started playing with the network side of things, which is where it gets fun (seeing sensors in a live web page), and the parts have arrived for the two key infrastructure nodes that handle audio/video crossbar switching and remote access via speech/DTMF.

I'm still not entirely sure what the hub will be; I'm very intrigued by the low-power Linux boxes from Aleutia, though my comfort zone is the Macintosh, especially now that the long-awaited "refresh" of the Mac Mini product line has finally arrived:



I'll wait to see how the community responds since I'm comfortably developing in an iMac and there is no rush (other than macroeconomic factors, as noted above), but I'm heartened to see a 13-watt quoted steady-state power versus about 20 for the previous version... though not much else changed. The ship needs a decent dual-head nav system anyway (I pulled back from the NavNet3D precipice for a few reasons last year, and have grown fond of MacENC), so even with twice the heat of a small Linux box, this might make sense. Besides, it would put the Shipnet browser at the helm, integrate all my music and productivity apps, and be a much more gentle learning curve. Still, the Aleutia is a little gem, and very tempting. Maybe both; the Mac for user interface and the Aleutia as the always-on server that owns the 15 nodes...

I've started to find that I need a daily rhythm in all this; without observable forward progress, I feel vaporous, lost in context-switching overhead and wall-staring. Even design work doesn't satisfy... I need hands-on activity, whether it involves sticking parts together or making something dance.

Time to go do just that!

(Blog-geek news: I finally got RSS working... something changed at blogger, then I had to uncover the path problem that made the microship blog work, but not this one. So! It took a few years, but we finally have a feed: http://nomadness.com/blog/atom.xml and http://nomadness.com/blog/rss.xml both seem to work; please let me know if you have any difficulty.)

(Amphibian pedal/solar/sail micro-trimaran-geek news: the Microship seeks a technomadling!)