Ifos

OpenWrt on Actiontec GT701-WG

Couldn’t put OpenWrt on my Goodwill Linksys WRT54G v8, but it turns out it will run on my old Qwest DSL modem, an Actiontec GT701-WG. OpenWrt holds a lot of promise, so it was worth it to me to try to get it working, especially since I had a good candidate target device sitting in a drawer wasting space. Since this was my first experience with OpenWrt, I hit a few rough edges on the sites—both of them: there are “old” and “new” wikis, and both have grown organically, shall we say—and deduced a lot through trial and error.

Linksys WRT54G v8: Ifos fail, wireless bridge win!

Pushing on with OpenWRT as a framework on which to build an Ifos server/master control program, I popped down to the local Goodwill to scrounge a cheap router. I new they had a pile of them, having donated a few myself. I guess a lot of people had the same idea, though, because pickings were slim—nothing but some ancient Cisco 678 ADSL modems (my old Netgear equipment had evidently found a home).

TINI disappointments

Spent some time over the weekend on an Ifos master control program targeting TINI. It’s a Java app wrapped around a tiny [sic] built-in web server and works great so far. Well, I should qualify that: it works great until I run it on the TINI. Being Java (supposably1 cross-platform), the program can be developed and tested on my Mac, where it’s spiffy and quick. On TINI, however, there are two major issues:

  • TINI supports only a subset of the Java 1.1.8 distribution. It’s a large subset, but it’s still a subset.
  • TINI is much much much slower than I expected.

jamod control of Ifos successful

I am finally able to demonstrate direct jamod control of Ifos.

Makefiles for use with GPUTILS

Now that I’ve switched to GPUTILS from MPLAB, makefiles have re-entered my life. I’ve always hated writing them, the last time being five or six years ago for BREW projects, an atavism not unlike my recent return to assembler. As I sat down to write three new ones (and they’re about as straightforward as makefiles get), all the unpleasantness came flooding back to me. Forgettable macros, single stems, arcane completion rules—I thought about documenting my innumerable complaints, but found someone had already summarized them perfectly.

Controlling Ifos using jamod

Up to now I’ve been controlling my Ifos slaves with a simple Modbus master I wrote in Ruby. In preparation for the move to TINI, though, I thought I’d better investigate Modbus master code actually capable of running there. jamod is the logical first choice, since it’s Java-based and fairly mature. TINI runs Java, and if jamod complies with the Modbus application protocol specification, everything should just work.

Super-effective development workspace

Here's my super-effective Ifos development workspace. It's a temporary solution, having no other place to put the new iMac. (I think Angie was a little dismayed that we needed another computer... Let's see, there's the office desktop, my laptop, my netbook, her laptop, her studio workstation, my workshop workstation, and now an iMac. What's the problem?)

Programming PIC from Mac OS X

My Mac OS X development tool chain for PIC is now complete. I successfully assembled my Ifos project (and by extension, my Modbus and Framework projects) on the Mac using GPUTILS, then programmed it over ICSP using pp and a K150 programmer. This was not a painless process.

Migrating to GPUTILS from MPLAB

For the projects I work on these days, switching to a Mac OS X-based development environment has been mostly painless. Eagle works, Java and Ruby are essentially cross-platform, and there’s always Unix just under the covers. It’s the hardware tools that have been difficult to migrate, mostly related to PIC assembly and programming.

On the PC, I’ve been using MPLAB for PIC code development and simulation, but that program isn’t available on the Macintosh. Luckily, GPUTILS is a stellar alternative that runs on Mac OS X. I ran into only a couple of issues in switching over.

Controlling Ifos from Mac OS X

More progress on my Mac development path migration: I can now control Ifos slaves from my iMac. This is the culmination of a few related successes, and means

  • The Mac sees and can use my USB-to-Serial cable
  • ruby-serialport is installed and working
  • My tiny Modbus master in Ruby is working
  • The Ifos slave still works (you never know with these "invention"-type thing-a-bobs)

Related, but not specifically required for basic Ifos control via Modbus/Ruby:

  • javax.comm is installed and working
Syndicate content