Linkduino

  1. I'm using a bash script with curl to send updates of temperature and light readings to Pachube, it is working nicely. Cron'd to go off every minute. Curl was installed via the OPKG package management system that comes with OpenWRT and they had curl (as well as many other common utils) in their repository.
  2. LuCi is pretty great and easy to modify. I found the Lua language to be very intuitive.
  3. That's working fine for me. I had to get a binary of the 'stty' program to configure the serial port to the correct baud rate for the Arduino. Once that was done and the default serial console in OpenWRT was disabled, everything worked great. I can even tail read serial /dev/ttys0 port and cat or echo data to it which the Arduino receives fine too.
  4. LuCi runs on top of CGI so that works as well. Not sure what language you prefer to do this with, but I think the OpenWRT's team's decision to go with Lua is excellent. It is a fast language with a very small run-time executable, very good performance and still has many libraries. It is also very easy to extend and write lower-level C code to interact with it, should you ever need such advanced functionality.
    Others like Python and Perl are wayyy too heavy-weight for use in a device with as little memory as a Fon2100 and even then they need certain things stripped out of the language for them to even fit on the router. I don't even want to think about something like Ruby on there.
  5. The changes you make to the OS and firmware can be packaged as a .bin, that's fine. OpenWRT has a great toolchain to enable such custom builds. I plan on trying that out sometime but from some reading it doesn't seem to be too bad at all.
    Even better (IMO) is starting with a default OpenWRT package and then packaging your code as an OPKG package that can be added to some repository. That way it could be updated easily later without having to re-install the entire firmware when you want to add updates and new features. The opkg package management system can take care of such things very easily for you.

Also, plain old bash scripting is pretty universal, but IMO a pain to program in. I'm not a big fan of bash. I'd much rather use a higher-level language and Lua on an embedded device fits that requirement perfectly being very lightweight and still having excellent performance.