Jim, Is this going into EEPROM? I was thinking you were saying this happened each time the slave came up.
jerry Jim Kusznir wrote: > Jerry & others: > > I was thinking that a personality could be loaded into the chip via > owfs (just as a memory write, basically). While I haven't worked on > this enough to know the size, I also envision this being an infrequent > task (when you first set up a new device, or when you do a major > re-purpose of the device, connecting it to different hardware, etc). > Of course, for larger or more complicated processors, this could > always be done offline (typical microprocessor load such as USB/JTAG, > etc). I wasn't saying that all these devices need to be done via > 1-wire, or even that it is a requirement; I was just thinking of an > easy way for people to change the personality of the chip without > having to invest in a microprocessor programming environment. This > isn't strictly required, but it appeared to be fairly doable, and thus > I proposed it :) In a production environment, one might want to have > a second OW network for testing and programming the chip. > > > --Jim > > > On Fri, Feb 26, 2010 at 8:51 AM, Jerry Scharf > <sch...@lagunawayconsulting.com> wrote: >> Jim, >> >> You are closer to my view of control systems. I generally want >> susbsystems to be able to act autonomously with the brains doing the >> more complex work. So it's more like a hierarchy than a pure mesh. I >> also think about redundancy. Just because 1wire is low cost doesn't mean >> it can't be used in more demanding control systems. >> >> I have lots of sensors, but use multiple masters to help with the >> isolation and bandwidth problems. >> >> One of the big down sides for this approach is the debugging environment >> on the uC side is far poorer and harder to do. I think this is where >> people get to wanting to buy something that someone else has worked out. >> >> One question I have is about the bootstrapping. It seems like this is >> outside the scope of OWFS. I love the design you propose, but I am >> wondering if it lives next to OWFS rather than within it. Are you saying >> that we would use OWFS to do the bootstrapping at the user level? It >> seems like that could really saturate the bus for a more complex device. >> >> jerry >> >> Jim Kusznir wrote: >>> A PC is definitely more powerful, and its programming paradigms are >>> easier to address, true. However, we've played those games in our OW >>> setup, and have been going back to the "do-it-on-hardware" side. For >>> us, we have a large network of OW devices (often 50+), a PC software >>> suite written by a couple different people that needs to collect all >>> the data, and we're looking at control. Of course, timeliness is also >>> an issue. >>> >>> We found that often, we ran into OW bus saturation issues. Something >>> as simple as alarming on the 2450 not working almost took down our >>> bus, as we had to poll it. Now, not only are we wasting a lot of bus >>> bandwidth (which was delaying other devices and messing with our >>> project in a negative sense), but we were also not getting our analog >>> data as timely and precisely as we wanted. >>> >>> We're also looking at other activities, such as a OW-based >>> thermostat/heating control system. For this, we definitely want a >>> local thermostat, as if the OW system goes down, so does heat...Out >>> here, that can mean frozen / broken pipes. Combine that with people >>> living in the space who are not familiar with the innards of the >>> technology (i.e., not able to restart/diagnose the OW system), and >>> you've got a fixed requirement for local backup control. >>> >>> We're also looking at some new motion sensors (our primary OW device >>> is a motion sensor equipped with an DS2406), that would need a fair >>> bit more processing and would be producing a much "richer" data >>> format. For us, its important that 1) the device identify that it is >>> a "rev xx motion sensor" and provide the richer data in such a way as >>> to not saturate our bus. This requires local pre-processing and >>> decisions on when to "raise the alarm". >>> >>> In addition, auto-identifying systems is important for us. We have >>> several of these large-ish deployments, and often have limited time to >>> set them up. We take great lengths to try and make the system as >>> automated as possible, especially in the setup phase. To this end, we >>> use the EEPROM in the 2406's to burn in a device type ID to further >>> distinguish between the various devices we have that use 2406's. If >>> we go to a microprocessor model to replace or provide input types not >>> available in dallas chips, it would also be critical that the chip >>> identify its function to the system. That was a major headache we >>> have with the 2450 presently...We don't know how to treat its values >>> (we see we have 4 analog readouts now, but what are they? Some we >>> only have A hooked up, we don't even care about B, C, or D...Others >>> have ranges on the various pins that mean different things and in some >>> cases we have to change how we read certain pins for precision, etc). >>> To us, hard-coding this at the PC is an absolute mess of a hack that >>> we wish to avoid. >>> >>> So, for us it would be wonderful to have a microprocessor which we >>> could configure to do any preprocessing we want it to, put in some id >>> string that the OW master can read, and support "custom data types", >>> ideally including the scaling and precision type settings in the chip. >>> >>> To this end, it seems to me that a wonderful solution would be a >>> microprocessor with a "base" code (USB flashed, etc) that would have >>> its OW ID and a basic "bootloader" code in it. I could then select a >>> code function (either supplied by others or written by myself), and >>> "cat" it to the right OWFS "file" to program that personality. I've >>> spoken to some local ATMEL experts, and they say that's very doable >>> with the atmel line of chips. >>> >>> I would also like to suggest that the code is available open source. >>> I've already encountered a few other commercial projects similar to >>> the BAE which have about 70% of what we need for a project or >>> experiment. But, as the source is closed, our only option is to use >>> it as is, or pay them to develop what we want. We already have the >>> programmers on staff who are more connected with the problem and have >>> the proper environment to test, so it doesn't make sense to pay for >>> their development services. Much of what we do will be highly custom, >>> so source access is very important to us. >>> >>> That said, I think there's still a commercial market for devices >>> pre-programmed. While we're perfectly happy with buying stock >>> microcontrollers and flashing them with custom code, many people won't >>> be. While we can write our own functions and such, some people would >>> want to select from "x channel A2D" or "pwm controller", etc. Some >>> people may even want to pay someone to program custom modules for >>> their application. However, if we end up with another closed-source >>> solution where groups like us can't get the source and modify it for >>> our custom applications, I think its doing a disservice to the OW >>> community. By opening up the source, I think we'll quickly see a wide >>> variety of new applications and functionalities that were not >>> previously thought of, or exceed the resources of an individual to >>> develop and commercialize. >>> >>> So, to answer tmk's thoughts on "why not just do it in a PC", that's >>> an appropriate answer for some applications, but not all. And even if >>> you're doing it in the PC, you're probably going to need devices for >>> input or control that Dallas doesn't make. Rather than try and make >>> the "one microprocessor that does it all", I think everyone will >>> benefit from being able to configure the microprocessor with certain >>> "personalities" to do what you need it to. In essence, its the linux >>> vs windows way: make a heavyweight system that tries to be a jack of >>> all trades (but masters none), or be able to make small, >>> single-purpose devices that do exactly what is needed and nothing >>> more. My experiences to date, especially with OWFS has found great >>> power in the latter. Even if specific program logic or decisions are >>> not loaded onto the devices, having a device that does only what it >>> needs to will still improve reliability and such overall. >>> >>> --Jim >>> >>> On Fri, Feb 26, 2010 at 12:47 AM, <nufan_...@comcast.net> wrote: >>>>> 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 >>>> >>> ------------------------------------------------------------------------------ >>> 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 >> ------------------------------------------------------------------------------ >> 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 >> > > ------------------------------------------------------------------------------ > 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 ------------------------------------------------------------------------------ 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