TINI from Mac OS X: javax.comm
I knew it wouldn’t be long before the next wrinkle presented itself. There was some frustration of the “This should work now” variety, but eventually things worked out.
I’ve adopted the Mac as my new development environment of choice (well, let’s call it my primary development environment; I just like it better than PCs or plain Linux so far), but I’m still trying to achieve parity on tool chains related to my various projects. One of those is Ifos, and right now I’d like to integrate TINI into it to achieve some embedded clienty-servery goodness.
I managed to get past the first (and lowest) barrier, which was basic Macintosh connectivity to a TINI over a serial port, and the first thing I noticed was that the firmware I was running was pretty stale:
The TINI Firmware Download page listed 1.18 as the latest, but it had been so long since I’d worked with TINI that the update process was a mystery. I found a 1-page quick-start guide for the TINI evaluation kit I was using, but it seemed to depend on a Windows-only application called MTK. No Mac tool, okay, but I could have sworn Linux was supported.
I downloaded the most recent firmware tarball and—_this is important_—set it aside until I could figure out how to install it. I then scoured the interwebs for an alternative to the MTK windersapp. JavaKit popped up right away, and even better, seemed to be somewhere in the TINI distribution. Now where was it? Dum dee dum… Well, looked like I’d have to get Java Serial Communications set up on the Mac anyway—may as well take care of that first.
I hate setting up the Java Serial Communications API. It’s deprecated or discontinued or not recommended or something; basically it just sucks to install because you have to get old binaries from “sneaky” places or use a third-party hardware interface library that can be drop-in but is really more you-shouldn’t-use-that-version-because-it’s-not-supported-anymore and using the recommended version instead requires recompiling applications that use it to import essentially-the-same-but-still-different packages (for purity’s sake). Not that I’m blaming Sun—I’m sure there’s a super good, totally not political, technically sound reason they stopped developing the pesky-but-slightly-important hardware layer (we’ve all heard how Windows 2000/XP/etc. make the serial ports practically inaccessible to normal workaday apps)—and for gosh sake not the folks at RXTX.org, who have stepped in to fill the gap with something amazing for FREE and support just about every hardware platform you care to use. All things being equal, I’d just rather not set up javax.comm, is all.
I’m sure there’s a super good, totally not political, technically sound reason they stopped developing the pesky-but-slightly-important hardware layer
But, I gave it a shot, and when it didn’t work the first time, I gave up immediately and started looking for someone to spoon-feed me the solution. Not that I don’t enjoy solving difficult problems, or fail to take satisfaction in crafting a solution for myself, I would just rather solve interesting difficult problems. My time is valuable to me now: if I have an hour a night between putting the kids to bed, making a half-hearted attempt to straighten the house in the face of guaranteed total (re)destruction the next day, and finding enough hours of sleep before the morning bus to my real job, I don’t want to spend that hour working on crap. I’m just saying.
Railroaders to the rescue
Turns out XM411.com had a thread pointing to the JMRI project (Java Model Railroad Interface), which had exactly what I was looking for. They even provided a Mac installer to do all the work. Those guys rock.
Ok, back to the great JavaKit search. Too bad the name was so generic—lots of false positives in Google. Was it on the Dallas Semiconductor FTP site? I couldn’t find it. Was it a binary on the distribution CD? I couldn’t find my original, but it didn’t seem to be in the online image. Do I want to spend my time finding this stupid tool? See previous paragraphs.
There’s no real suspense, of course. It was bundled with the firmware in the tarball. Duh. Ok, one step closer to Mac-only TINI development. Oh, and look, my hour’s up.