Modbus-Droid Software Projects

Goodbye Modbus Droid, Hello Mobile Modbus

I’ve been really busy with some new and exciting stuff for a while now. This year I saw my frist child, a daughter born, around that same time I shifted from being an Electrical Design Engineer, to an Engineering Supervisor at Veeco. And then, in September, I was offered a Software Engineering position at Trane in their commercial Climate Solutions division.

In all this time I haven’t had much of an opportunity to get back to my hobby project, ModbusDroid. I’ve had ideas for a while on how to improve it, and I even started working some on a fragment API (Android 3.0+ UI guidelines), but never got very far with it because of all the craziness with life this year.

So, I’ve decided it is time to get back on the wagon and start back to it – but with some caveats and a few notes.

1) In all the computer transition, and a minor server hard drive glitch, I lost the key files to the original ModBus Droid, so I currently can’t upload any updates to the Google Play store. Also, a while ago, I started working on a re-name of the project for porting the app to the BlackBerry playbook, and I’ve decided I like the somewhat more generic naming – Mobile Modbus. So for the time being, the app is going to be a brand new app, not a 2.0 of ModBus Droid. Mobile Modbus might stick as a name, it might not – I’m open to suggestions so send them my way.

2) Very early on, after I layout some rough frame-work and UI for the app, I’m going to do the development out in the open on GitHub. A lot of this is going to be re-written from scratch or heavily refactored. So, to all my friends who have been telling me that they were thinking about getting into Android development – get your github accounts set up – and follow me there. Install git on your PC, and the Android SDK, and import the old version of modbusdroid from github so you know you are set up and good to go. There has never been a better time – they even started bundling eclipse with the android SDK to make it easier to get started – and github has great GUI git clients for both windows and mac.

3) Part of this refactor is about being a better open source citizen. We make heavy use of the Modbus4J library in the app – a pretty great library that does batching (which we don’t currently use), and I made some non-trivial, but not major either, changes and additions the library. Rather than being awesome and contributing patches back to the main repository, I just dropped a rev of the source code right into the projects source and never really looked back. This time I’m going to clone the CVS and convert it to Git (done actually) and publish that to github with links back to the original project. I would contribute right back to the sourceforge page, but honestly – CVS… in 2012/2013… I hate CVS, not gonna happen any time soon. Call me lazy, but at least I’m going to make it easier to seperate out what I did vs what was from the original project. I plan on tracking it better too.

We’re also going to be using the ActionBarSherlock and SlidingMenu libraries, and I’ll make a fork of those on github if we need to change anything in them.

4) I really really want to get a few features into this 1.0 release of this app that weren’t in the original Modbus Droid. First off, I want to get Modbus RTU over TCP in there, and lay the groundwork for eventual bluetooth serial port adapters (SPP) with straight ModbusRTU. I also want at least lay in the foundations for saving some favorites in terms of configurations / IP addresses, and the possibility of giving registers names. Finally, I also want to get in something that could write out updates to a file for data logging. I’m contemplating some of the more advanced features would be in and ‘advanced mode’ in the settings or something like that to keep from cluttering the simple interface for people who just want to get in and out quickly while/after monitoring some registers. Only when the advanced mode was on would we expose some of these UI elements to enable these features. To see some of the design patterns for the new versions of android, and some neat extensions to them, check out Android Views.

So anyway, this is where I’m taking things. Hopefully over the next few weeks during the holidays I can get a few commits into github and you can all start to see where this is going. And if you are feeling adventurous, read up on Modbus, the Modbus4J library, and Android development – and feel free to jump in by forking the project on Github once it is on there (I will tweet/G+/blog about it when it is up).