Howdy,
For those interested, I thought I'd report back on the maxbotix front end controller that I was writting about.
As of today, it's 95% done. It has the following reporting modes:
- Polled (no reports unless asked)
- Periodic (reports every N seconds)
- Triggered (reports anytime a sensor changes >= N inches)
- Inclusive Range (reports transitions in/out of range as well as readings in that range
- Exclusive Range (similar to inclusive, but inverted)
As for what the unit sends to the computer/controller, you can enable/disable each type of report
- Value Change report (send in periodic mode, triggered mode when the change is
sufficiant or in the range modes when there are changes inside the range).
Example: $91020C -- sensor 02 reports a change to 12 (hex C) inches
- Range Change reports (range modes only. Sends a report that tells you when
an object enters the range or exits the range and which direction it entered
or exited from (i.e. did it come into range from the low side or high side of
the range).
Example: $920911 -- Sensor 09 reports that an object has come into range
from the high end of the range (first 1 in 11 is "in range" vs 0 for out of range,
second "1" is "via high limit" vs "0" for "via low limit" -- so the possible values
of the last bytes are 00, 01, 10 and 11
- Simplified Range Change Reports (range modes only. Sends a constant text message for entering and exiting a range (no details on how it got in/out, just that it is in or out). Good for direct text matches for controllers that can't parse the serial reports.
Example: $920510 - Sensor 05 has come into range
Example: $920600 - Sensor 06 has gone out of range
Unlike normal range change reports, the last digit is always 0, allowing simple text matching to determine transitions in/out of range.
The range change reports occur only when transitioning in/out of range, so you'll not get repeats once an object is in range.
You can monitor from 1 to 12 sensors. While the ability to aggragate multiple sensors on the same serial port is nice, I expect that, for myself, I'll be using it most of the time with a single sensor somewhere. The front end processing (event reporting vs flood of constant reports) is where I see most of the value.
The front end can communicate with the host computer/controller at 9600 or 19200 baud. Response time to changes in a sensor is virtually immediate (typically, 1/100th a second).
As with the RGBLED and Sprinkler project, I'll be all materials (source code, compiled firmware, Java API, documentation, xPL gateway, schematics and PC Board CAD files) available for non-commercial use at no cost.
If you have any soldering experience, you should be able to build one from parts. For a single sensor controller, it requires only 8 parts -- a PIC 16F88/87 chip, a MAX232 chip and 6 capacitors (4 for the MAX232 chip, the other two as power supply filtering caps). If you want to monitor >1 sensor, add an additional diode in for each sensor (including the first -- so 3 diodes if monitoring 3 sensors) and a single pull down resistor (only one is needed, but only if you are using >1 sensor). Wirewrapping this in a perf/vero board should take about 20 minutes.
If anyone is interested in testing this out in the next few days (beta testers), pleae let me know. You'll need the ability to wire up the parts and the ability to program and PIC 16F87 or 16F88 chip. You'll be using the direct serial protocol (no java API or xPL gateway yet). The protocol is documented, pretty fully explained and text based.
All that is left before release (besides testing) is:
1) Final touch up of firmware
2) Writting Java API
3) Writing xPL Gateway
4) Writing GUI test app (maybe)
5) Packaging
I'll post a message here when it's all ready to go.
Also, Frank had asked if I would producing PC boards to simplify construction. I have the design for one, but I'm not sure I'm going to need enough to justify the expense. However, I figure that if there is interest in about 50 of the boards, it would be a break even case. So if you think you might want some please let me know how many. This isn't a binding contract, but please be reasonably sure you'd want to do this before saying so (I don't want to wind up sitting on a bunch of boards).
I'll make pre-programmed PICs available for those without programmers and if the PC board thing comes out, I'll also make optional kits (assembled and unassembled) available.
Gerry