> From a users perspective I want more flexible slave devices which are > capable of making decisions themselves. > With the host (OWFS) providing a means of configuration and > supervision only. At this stage I do not care about what > hardware platform the slaves takes on however I am > more interested in the control functionality that new slaves can offer > then look at what can facilitate the functions requirements.
I think there is a lot of power in having little systems that do their thing without much intervention. There is a fine line between a device that can make simple decisions and a mesh of controllers. In my projects so far, i've wavered between a central server that has some daemon making all the decisions, vs a uC which is basically autonomous, and is itself is a 1w master able to make all sorts of decisions. I am currently leaning towards the former, but the reliability and forgetability you propose may pull me back just a bit. Most of the below comments are my internal pro/con reasoning for my stance, and not meant to be a dismissal of your proposals. > Making a “User” go into the uC and program there own code > satisfies a small portion of the users of 1wire. I would suggest > creating “functions” could be more viable to the mass’s. If one was going to package and sell such a device (i'm not interested really), there are direct USB bootloaders for the AVR stuff which makes flashing code as easy as a usb connection. (serial also) I believe Pascal even has reflashing via 1-wire working! So uploading a 'personality' is not a big deal, and for an extra $0.50 i'm sure anyone making these devices could pre-program it. If one wanted to package all the personalities in, then it would cost a small amount (extra $1-2?) for a device with more storage/eeprom space. > Timed Output Slave: > > Function : Control up to 4 outputs based upon a set of preset > time-of-day triggers. Enable up to 4 push buttons to manually control > each output. I was thinking of just such a device. I am sick of shelling out for sprinkler controller systems! I have 3 separate ones and none really offer me the programmability i want. Same for my home thermostat. Needs to be a button by the door that says 'i'll be out for 2 hours'.. None of this going to the hallway business! :) Unfortunately, most uC's that i have dealt with don't have RTC, and they are relatively expensive. I am also way too lazy to cobble one on, when i have a perfectly good computer (with a working clock) already attached via 1-wire. > Configuration: Let the user assign up to 32 trigger points each > trigger having a PIO mask to either turn ON or OFF the outputs. No need for a limit with computer control, really, and you could do much more complex decision making. > Slave hardware requirements : A uC with 4 DIO ADC for buttons and a > I2C interface to a battery backed RTC module. Manual control buttons need not be logic based (analog!), but certainly could do. Already up to 2 busses: i2c+1-wire.. > Analog Input Slave: > > Function: Provide ~4 ADC inputs with a resolution better than 8 bits! > The device will provide scaling and signal conditioning and conversion > to engineering units directly within the device. I am not to familliar with a lot of the lower-level details of ADC, but i believe a scaler almost always has to be an external hardware component (therefore out of scope?), or the uC has to have a flexible reference voltage larger than the range of the input. (in other words, scaling to < Vcc has some hardware support, but detecting higher voltages maybe not?) If it's externally scaled, then (as you suggest) just a multiplier could be applied AVRs seem to have 10bit adc, is 12 common? Just curious > Configuration: Let the user assign both scaling etc coupled with 4 > alarm level per ADC. A number of available PIO pins can be assigned > to set an output based upon alarm levels. Why stop there? any feature of the uC should be triggerable based on an alarm, eg change pwm freq, tick counter, calculate time spent in state.. easier to add the logic via computer. > Would also be great to > download a 20 point x,y characterization curve that could be applied > to the measured variable. Used for measuring level or volume in a > sphere or as in my case a tank which has not got parallel sides. Transformation is dead simple on full-strength hardware, and can use full equations if desired. > Analog Controller Slave: > > Function: Provide a controller that has the ability to compare a > scaled reading to a user defined setpoint and perform an output action > via PIO . This is straight where i am headed, and may be the most useful bit.. temperature controller for heating/cooling. However i may end up doing some zoning type stuff and have sensors/control in every room. I think that might be a bit much to calculate on a single uC, and having dedicated ones might cause the systems to oscillate. Also, there are full-featured controller programs (diy-zoning, mango, etc) that already do this sort of stuff. > PID Control , Where a DAC output is set according to the error between > Measured variable and setpoint with an output value modulated via a > PID algorithm Another great use for a uC. I think this should be implemented. DAC not necessarily the only output, but certainly a primary one. 'killer app' for smart sensors. > process. The Analog_slave I described above does fit my analog > faceplates created on my web site. I also have defined control > faceplates as well. www.rjconway.homeip.net Thus we could create a > matching GUI for each function. Some nice stuff there, very cleanly done. congrats -tmk ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ Owfs-developers mailing list Owfs-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/owfs-developers