Hi Koen, thanks for your explanations! Are you aware of the FIT IoT-lab testbed?
https://www.iot-lab.info/ This should give you access to several hundred iotlab-m3 nodes which are equipped with an at86rf231. There is also one site with some tens of samr21-xpros, equipped with an at86rf233. Would be great if you keep me/us informed about your results :-). Best Peter On 26.06.2017 12:36, Koen wrote: > Hi, > > For now this is all quite proof of concept. I haven't had the time to > measure the actual power saving. > > There are still a few problems that limit the actual power saving. The > way I've implemented it now, only transmit power is limited. Before a > transmission, the radio power is configured, and almost immediately > after, the transmit power is set to full power again. This way L2 ACK > frames are always send at full power and the power scale algorithms of > nodes don't affect each other. Furthermore, if I have to believe the > datasheets, the radio's seem to also consume comparable current when in > RX-mode. For now, until I've confirmed the actual power draw of the > radio, I think the most benefits are in the reduced transmission range > and thus reduced interference between nodes. > > The other limitation is that my implementation depends on the radio > reporting the frame retries. At least the mrf24j40 and the at86rf233 > support this. I don't know about the kw2xrf. The other variants of the > at86rf2xx don't seem to support reporting the frame retries, they only > report whether at least an ACK was received or not. > > I don't have any plans of repeated tests in network topologies at the > moment, mostly because I don't have a large enough network at my > disposal. I'm still trying to get at least repeatable results from my > small setup, but random interference makes this difficult. Any proposals > for this are welcome. I'd love to have some larger tests on node > interaction here. In the future I'd like to try to have RPL minimize > power consumption as a route metric.> > The actual power scaling algorithms I've implemented are based on TCP > congestion control. TCP congestion control also has the goal of > approaching a limit where loss occurs when the limit is passed. Two > algorithm are implemented: A "Reno" style additive increase, > multiplicative decrease and a "Cubic" approach style function. As soon > as I have some results where I can actually compare both algorithm I'll > share them here. > > One of the other ideas for algorithms I've had so far was a PID kind of > control loop where a predefined ETX value is used as a setpoint. This > way a configurable amount of loss versus power saving might be achieved. > If somebody has a different proposal for an algorithm, I'd like to know. > I'm currently trying to use only ETX or other already known values > instead of a negotiating algorithm to keep the implementation compatible > with different nodes and/or operating systems. > > Regards, > Koen > > On 06/23/2017 09:03 AM, Peter Kietzmann wrote: >> Hi Koen, >> >> awesome! IMO this is interesting work and I'd like to push this forward, >> at least to use it myself at some point in time, though I can't promise >> an in-depth review so soon -> let's start polishing "later". >> >> Did you already start measurements of the actual consumption saving of a >> node? Do you plan to evaluate your approach in different network >> topologies? >> >> Cheers >> Peter >> >> On 22.06.2017 22:00, Koen Zandberg wrote: >>> Hello, >>> >>> For a small research project as a part of my study, I did some research >>> on the effectiveness of dynamic radio output scaling. The general idea >>> is that to save power, the radio has to transmit at only the power >>> required to reach the destination. For the research I wanted to build a >>> practical setup instead of a simulation as one of the research goals. >>> >>> The setup I've build works by estimating the minimum required powered >>> and using layer 2 acks (or the lack thereof) as feedback. At this point >>> I have a mostly working power scaling proof of concept implemented in >>> RIOT. For an example measurement: https://bergzand.net/misc/etx5.svg >>> which is a measurement of a number of packets. The blue dots is an ETX >>> estimation measured based on the feedback from the radio module. The Red >>> line is the power configured for that packet. As visible, power is >>> scaled down until a stable level is reached. Power keeps oscillating >>> around this level until a lot of interference is noticed, then the power >>> sweeps back up. >>> >>> The merit of this whole idea is that it should both save the node power, >>> but when implemented correctly also improve the total throughput of the >>> network. This last point because nodes transmit with less power, thus >>> causing less interference with nodes further away. >>> >>> If there is interest in having this feature merged in mainline RIOT-os, >>> I'm willing to work on this to make sure that the code quality is as >>> required. The code can be viewed and tracked at >>> https://github.com/bergzand/RIOT/tree/mwn2 >>> >>> Regards, >>> Koen >>> >>> _______________________________________________ >>> devel mailing list >>> devel@riot-os.org >>> https://lists.riot-os.org/mailman/listinfo/devel >>> > > _______________________________________________ > devel mailing list > devel@riot-os.org > https://lists.riot-os.org/mailman/listinfo/devel > -- Peter Kietzmann Hamburg University of Applied Sciences Dept. Informatik, Internet Technologies Group Berliner Tor 7, 20099 Hamburg, Germany Fon: +49-40-42875-8426 Web: http://www.haw-hamburg.de/inet _______________________________________________ devel mailing list devel@riot-os.org https://lists.riot-os.org/mailman/listinfo/devel