Open Source in the WSN Research
CC Attribution 4.0 International:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Maye, Oliver
Experiences made with free and open source software in scientific research. This is to share experience made with open source software (OSS) in the public research with the community. After introducing some background and pinning down the author’s research area, the pros and cons for publishing OSS are discussed from the research perspective. Then, several case studies are given to show how OSS and research work may influence each other. The emphasis is on checking the original motivation and the spirit of OSS back with the reality. Finally, future potentials of research OSS are outlined. The talk concludes with summarizing the experiences wrapping up the presented results. Introduction The IHP is a publicly funded research institute in the fields of silicon–based systems, highest–frequency integrated circuits, and technologies for wireless and broadband communication... [explicated in full paper] Among two other fields of applications, the Wireless Systems department conducts research and system–level development in the area of wireless sensor networks (WSN) and middleware platforms. For many years, the author contributed to the evolution of mobile, context–aware software, recently with a focus on health care applications. Technically, the author is dedicated to software development for tiny, resource–constrained sensory devices.
 Thank you very much. Welcome everybody. I will give some just experiences that we have made with open source software in the research context and my research context is wireless and network. So I will introduce some background first that you have an idea about my perspective on software development is and then go through this agenda more or less after, as I said, introducing the background. Then I will concentrate on the question of why open source. This is the question frequently asked by the administrative staff, for example, could we do it with proprietary licenses or so why is open source necessary or why is it even possible. I will show some case studies from my work. We went this way with publishing open source and show how it is more or less successful and conclude with more or less a view on further potential. So my idea where the usage and also publishing of open source could be improved or researchers could think more on how it can be done with open source software. So let's start with some background information on the HP. The HP is a publicly funded research institute. It is a member of the so-called Leibniz Society. You may know the Fraunhofer, very popular here in Germany, or also the Helmholtz Gesellschaft. And the third one is Max Planck. And the fourth in this group is Leibniz. And as I said, HP is a member of the Leibniz Gesellschaft. It's a research institute that is focused on silicon technology, on semiconductor technology. So the question how to produce chips, how to produce semiconductor circuits. And it has three research programs for that purpose. The first one is silicon based systems. There is more the system perspective. This is more or less my program that I am involved in. Then there is this high frequency integrated circuits program, which focuses more on developing circuits and the question how they can be made even faster or smaller or less energy consuming. And the third one is the technology centric view. So how can we modify the current semiconductor technology to support these kind of circuits and systems. So the advantage of the HP, what makes it unique, is the so-called vertical approach we have for departments in the institute. Mainly these four materials, technologies, circuits and systems. So starting with the materials, the question is which kind of material can be used as a dielectric for something and what are the properties of this or the other material that delivers input to the technology department who cares about how these materials can be handled in a process such as an industrial technology feasible. Then if we can handle these technology, then it comes to the circuits department who cares about how circuits can be designed using this fast technology and it is a small footprint of technology, how can we do good circuits with that. And on top of this, there's a systems department where I work in who cares about the application. So if you have these super good circuits super fast and with low energy consumption, how can we build a system that has a certain purpose. So that purpose, quite big part of the HP is that 1000 square meter classroom, clean room, class one clean room where we can produce our own semiconductor circuits in-house. But we also offer that for that so-called multi-project wafer services. So somebody also like universities can come to us and ask and even do that, ask can you produce let's say 1000 pieces, 1000 circuits of that design and then this is possible. This is often not possible in industrial grade labs, but as we fill the gap between industry and academia, this is especially our service that we can offer, that we can a small series, pilot series production of semiconductor circuits. Another attribute, another property of the institute is that we have a staffed with modern technology equipment. So all kind of measurement instruments that are needed in this area of work. Of course, we contribute to leading conferences like the Forskorn and are continuously attending third party funds. That is a business, I think, of every research institute trying to get third party money. And by this, we try to bridge the gap between academia and industry. As I said, this is a current view of the HP. Here we see this clean room and currently four parts of the building with offices and lab space. And right now, I think in a week or so, the plans are started to extend this clean room. So it will be extended by a half. So another 500 square meter will be added there for further equipment and an upgrade of that technology service. Inside the HP, people look like this. We have here those people working with materials, so it's a very basic research. They modify the surface of materials and do some investigations there. Then here this typical picture of clean room people who are, you know, modified more or less and work, handle these wafers and have them processed. Then when the wafer comes out from the clean room, they are measured. These guys from the materials and technology department also who measure certain parameters if they are met. And then it becomes more interesting for me. These are the guys from the circuit design who care about these tiny single circuits and try to do, for example, fast communication, fast radio chips and have to test it, like in this picture, somehow. And finally, these guys from the systems department who try to build systems with that. So we have all kind of scientists in the institute. And my background personally is from the systems department where we try to build systems. And we build those wireless sensor network systems, which you may know. These are these tiny little computing devices that are often backed by some kind of microcontroller. For example, as I worked with Texas Instruments MSP430, but there are also a lot of other controllers around. So other options are possible there. These computing devices are interconnected by wireless links, often in the ISM bands like Bluetooth or Wi-Fi. Then there is some support of peripherals like storage, memory, LED buttons, some simple user interface. They are often equipped with sensors. So this is their geneveen part of what they are for. They are to do measurements of whatsoever, depending on the application. For example, these can be light sensors, temperature, environmental, like air pressure, air temperature, wind speed and so on. But also medical sensors like oxygen in the air or toxic gas concentrations in the air or physical parameters like oxygen saturation in the blood and so on. So some kind of measurements. But they also could have, depending on the application, could have actuators, not only sensors, but also actuators, mostly motors, something to move somehow. And these interconnected tiny little computing devices form a cooperative network to meet the goal of the application. That may be or major application fields are some kind of agriculture, everything around agriculture. Agriculture 4.0 is that buzzword currently. So what is precision farming, where they put these sensors around and try to measure environmental data and forecast the amount of fruit they can deserve from the field, for example, or to determine whether it has to be got some more water or whatsoever. The nutrition plays a role, this kind of questions to be clarified there. One industrial automation put these sensors in an industrial hall and try to control the manufacturing process. Also homeland security, this is not only border control, they try to detect if somebody crosses a border, but also in the in-country for so-called critical infrastructures like power plants, this kind of critical infrastructure, which you want to be safe from, to risk attacks or also informational attacks. So you want to measure if there is somebody, if there is some abnormal or atypical data traffic going in or out, this kind of question. And finally, what I did recently during the last five to eight years, also in the medical fields like home care, elder care, especially I'll come to that in the next slide. This is just a sample of wireless sensor network node that we constructed at HP. A typical dimension is 35 millimeter by 23, so very, really, very tiny. It's less than a palm and equipped with a microcontroller here, some wireless interface, Bluetooth, some storage flash memory, some power supplies so that you can attach a battery and restore it from the wall power, for example, USB interface that is quite special here, and of course an extension header so that it can plug and add on boards there. And the context where we used this wireless sensor network was, as I said, a medical one and the Project MyAir coach running through the last three years or four years. It was the project aimed at supporting people with asthma disease, breathing disease. And the idea was to correlate environmental conditions with asthmatic phases. So the infrastructure was body area network. So we put some sensors and computational devices on the body somewhere and the smartphone playing the role as some kind of base station. So the smartphone gathers all information. And for example, the smartwatch can measure the pulse and the general activity can be used for display and vibration feedback, for example, it also has a step counter in there. Then an important part was this inhaler that recorded the inhaler usage. So you assume when the people use the inhaler, then there was some kind of asthmatic attack. It controls the medication is the right amount of medication going through that appliance. Then equipped with this sensor node, it measures the environmental per perimeter, especially sulfur oxide, also free for the oxide and stick oxide. And also general activity. And the idea of the project was to combine these things to give the doctor a better basis for diagnosis and the general activity what happened outside when the patient was not with the doctor, when the patient was at home, for example. And in this context, here's also another sample where you can see probably the wireless sensor node being here. This is an apparatus with a sensor for measuring particle dust, fine-stop, particle dust coming here from the smoke of a cigarette. We have here a cigarette and then some apparatus producing smoke from that cigarette. And this is to measure and calibrate the measuring equipment here. And my main work in this context was to program these microcontroller devices, these computing devices, this part here, and also there to do the measurements, transmit the data, do some housekeeping functions and so on. So software development for embedded devices is more or less the background here. Okay, what are the arguments or other way around? If you do software development, you always have a bunch of options of tools that you can use or are free to use and you should and must decide for one or the other. So there raises the question, why should I use, for example, open source software? Well, the first one, which is always also an argument for the administration, is the question of costs. So free software, this is our experience, free software has a lower total cost of ownership. This is not only the initial license fee that you would have to pay for a proprietary license software, but this is also manifested in support and maintenance. So there's always, depending on the project, okay, there's mostly a forum where you can ask questions and from my experience, you get mostly get serious answers there. Another aspect is safe implementation, which is very important when it comes to cryptographic algorithms. And this is not an experience of myself, but of colleagues of mine who are dedicated to cryptographic aspects and security aspects and wireless sensor networks. And for them, it's very important that there are limitations that you can trust on. And our view on that is that we have security guaranteed by public review instead of some kind of obscurity or conspiracy. We have code, but we don't tell you how it's made and we assure it is safe, but you cannot have a look and test and try. This is not our understanding of security. Then I think there is a support innovation because the development cycle is shorter than with proprietary software. You have access to source code, you are authorized to customize the source code and you are authorized to distribute modifications. Another argument is availability. You can download this 24 by 7 and you don't have to unlock or reach this somewhere or activate something unlike with proprietary software. If you have ever tried to install Windows, for example, there's always this activation procedure you have to go through. And last but not least, very important, the freedom of the result. So if you use open software, all the results are first step free and you are not limited in publishing or giving away or handling it to some extent. For example, where it is not the case, freedom of the result, if you take compilers who compile code, then for the used controller from Texas Instruments MSP430, there's also a conventional compiler by TI. And they write in their contract that if you compile code with that compiler, you have to run the result on a TI processor. However, there are derivatives of the MSP430 around. So there's also an open core of MSP430 and you wouldn't be allowed to run this code on an open core. So it's not anyway the case that the result is free. But if you use open software and an open compiler like GCC, that is the case. You can use the code wherever you want. And that is important, I think. By using open software, then also the questionerized rows, you could also publish free open source software. So if you wrote a piece of software, you have to handle that somehow. And one option is you could publish this and share it with others. And that brings the classic exploitation options to mind. Typically, a research institute like ours has a bunch of dissemination options. First of them is publications. This is probably everything that you know. You are forced to produce papers and put it to conferences or even better to journals or books. There you have currently this open access scheme and well-known discussion on reviews that are done or not done with some journals. Another option for exploiting the results is to do patents. Also not very easy. Patents are made to protect your intellectual properties, but it also needs an active patent management. And to be honest, yes, it is supported to do patents. But after a patent is applied and granted, nobody cares about that patent anymore unless there are 10 years over or so or 20 years and then it's canceled. But an active patent management is a thing what universities and research institutes should do, but there are often no resources for that. And a third option is found spin-off companies. This is actually a thing that also HP did a few times ago. Two or three spin-offs are around there, but everybody knows there's some kind of administrative overhead. Suddenly, the scientist who did something good and is now confronted with the option to spin-off is away from research and has to do administrative tasks. And still it's risky and it's not done without some kind of emergency parachuting contract. So some option to come back if it fails or so. And the sheer number of that, of the publications and patents and spin-offs, that is currently the metric to measure and evaluate the performance of research, especially of public research. Just the number of papers accounted and the height of the patent stack. Of course, there are some more ingredients, right? The number of thesis there and third party funds. But actually it's that and no word about software publications. If you do software within your project, it silently disappears at the end. Everybody asks how many pieces of software you wrote and it's not going into this kind of metrics. There's also a very exciting track here at Frostconn with this research software engineers track, who exactly care about this problem. Anyway, the first option is publishing as open source software option needs to be added to that kind of metric. You know, of course, that research projects need and often have this kind of demonstrator to visualize results. And these are many kinds of software artifacts like drivers, protocols, applets, applications and even also hardware sometimes, some kinds of ASIC or custom PCB. This costs a lot of time and a lot of money and silently disappears at the end of the project. The way to handle it and my experiences, you have to convince your administration and enrich your exploitation strategy with a force option. So it's not that publishing open source substitutes or replaces a current option, but added to the bunch of current options. It's another one more option to have if other options are not drawn. So just as an alternative for doing nothing and not compete with other of these performance indicators. So let it be a distinctive attribute to complement your performance metric and also to underline your excellence and last but not least share the value that you created during the project with from the taxpayers money with the community with the public. Then if you go to your management, you will be asked why should we publish free open source and you will need some bullet points. This will be maybe of some help for you. First of all, you increase visibility because you simply have more results of your project that qualify for being published and by publishing open source, the people see that institute or university released something, they are doing something in that field. So it increases visibility. You reach out to the popular science, you even get to people that are not so strong related to research and maybe positively influence the public perception. Also publication only allows for qualified criticism and feedback. I can only give a feedback to some piece of software and know that piece of software. If I have access to it and publishing open source is a way of granting access to software. You have the chance if there is some interest that you have your own code developed further by other peoples. So typically if the project is done, you also see developing your software but if software is around and people find it helpful, they may develop it further and into other domains. Also you can push attractiveness of other outcomes or support spin-offs. What I think is important, the macro perspective. So the idea of returning to the public, what was created from taxpayers money. So your institution, your university got money from the government or from the public, from all of you. So it's reasonable to give something back. And also the idea of free software is I think best reflected by that concept of public ownership. So public ownership as free software that meets both ends. From a personal, from a very personal perspective and my personal perspective, the argument is after taking advantage from open software myself by using compilers that were made by others, it's fair to give back and contribute to other projects. And finally there's nothing to lose. Don't let the force option compete with others. It just competes with a trash can. Discussing the frequently heard counterarguments. The first one, if you give it away, then we will decrease our third party income. And to be honest, yes, that could be true theoretically if that software could have been commercialized. And that is one question to discuss with administration. Often the question if a piece of software could have been commercialized is predicted in the way to optimistic. If you try to really assess the chances of getting money for that piece of software, do not do wishful thinking, but you have to know the market and you have to know where to get money from. That's very difficult. Basically the most pieces of software or most kind of software that I encountered during my research work do not qualify for being commercialized anyway. Another argument is anything free of charge isn't worth a jot. We displace our own work. Nope, that is not true. I think I don't have to explain why. There are lots of examples where open source projects strengthen the local, regional or even national economy. Then it could be that legal reasons put some restrictions that mostly not because the EU and also national administration meanwhile enforce the publication of open source software. There are many compliant licenses available. They are even compliant with the German Urheberrecht. So if you have a close look to the license text, you will find one that goes well. And finally the last argument in that chain is always we didn't do that ever before. So yes, what can you tell there? So give it a chance. So to conclude more or less with kind of guidelines when the first publication could be indicated, check if there is a realistic chance for commercial exploit or patent. Be seriously, estimate the market-based success towards some kind of risk management. Know the market participant, the market competitors and so on. And then honestly tell if this piece of software could be commercialized. If not, then the next step is check opposing rights of third parties. If you copied the software from somewhere or the source code from somewhere or major part of the source code, then that is very difficult. But if you usually what you do is develop the software from scratch because there is nothing similar and this is quite sure way to be free of rights of third parties. Then the software itself should be self-contained, separable. It should be some kind of independent of the original application. And this is always true for all kinds of drivers, protocol implementation and these kind of helpers. A clear indicator is if it has a clear, well-documented interface and API. And finally, last but not least, it must be interesting enough for the community. And this is some kind hard to decide, but it should be reused in a similar different context than this is a clear indicator that somebody else could be interested in. Okay, I will rather skip more or less the case studies just very, very short. There are four case studies in the paper. The first one is Java virtual machine that we put running on these kind of sensor nodes, mainly Takatuka from Uni Freiburg and Darjeeling from Uni Delft, where the major part was a contribution. I added the hardware abstraction layer for the MSP430 there and both virtual machines are open source. So also the contribution is open source as well as this mobile sensor API and the Java rule engine. The aspect of free open source is their return value by contributing a technical work instead of just paying money. I could have bought these Java virtual machines. There are also JVMs around this proprietary license to be paid. Instead of paying, I contributed my own work and earned the right more or less to use these Java virtual machine. Very good option, I think. Second, which is more or less a consequence from this hardware abstraction layer is a set of libraries that I called Ocarpi. And I put this library for MSP430 peri-ferral controls as an open source project online on SourceForge. It's a driver for, as you can see there, the analog to digital converter, clock, checksum, computer, direct memory access, and so on and so on, what all these controllers have that way. And it, of course, has interdependency with other free open software, namely the GCC compiler. The Eclipse as an integrated development environment. And well, it's a project. You don't know what happens to the project, but it's a seed, you said, and it may or may not be of help for others. So you don't get an immediate return. That's true. But hey, that's by chance. That is a look on the usage statistics on SourceForge. Up to now, okay, there is no external contribution. So nobody said, hey, I want to add code there. Let me be a developer and moderate download rate from 20 to 50 downloads per annum. As you see, this is graphics, a short view on where the do-cap-go. Well, it's more or less worldwide. China, Germany, of course, USA, Spain, but also countries where you never think of, like Armenia, Brazil, Iran, or even both countries of Korea. The third one is the GCC itself, where I had the honor to contribute in a very early state there. The GCC itself, the GCC for MSP430 is not so old yet. It arose from a new project back in 2010 and then developed steadily further, has a rapid growing feature set since there. And this, I think, on one of the other slides, I have it meanwhile under the control of TI and other companies. However, with this testing, the contribution was more of a qualified feedback. So I fired some back and tested the fixes, the patches. You pay a little effort back for a tool that was so fundamental for my own work. So that was easy to go the step. And with this one, I got inspired from this GCC. I contributed some and maybe inspired other people to use it and added some value to that. The final case study, the so-called KACVANG, which is a protocol disk sector for Wireshark. If you ever worked with Wireshark, it's a tool for network analysis. And they can add protocol plug-ins or protocol disk sectors, so called disk sectors. That case, it was away from this wireless sensor network stuff. It was IEEE 1905.1, this sector for home networking. It's a protocol to help home network protocols and home network topologies being converged. And for that standard, I wrote that this sector and put it open source. Yes, suddenly you are part of the community and add that tiny colored stone to a Mosaic. You know, Wireshark is around for, I don't know, 10 years or so. So there is already a community and you are a piece of it. And as a joint effort, it can lead to a significant piece of software. And that is like this Wireshark generally looks for. And here you see some packets that were caught from the network traffic. And the Wireshark tool and the protocol plug-in allows you to pin the content of the network traffic down. Have a look at it, everything went OK. The download statistics here is a little bit better. We have a moderate download rate of 50 to 100 per annum there. And also worldwide spreading of that this sector, USA, Taiwan, Germany, France, which is quite interesting because this sector was created in the context of a project that was a joint project with a French partner. But it also went to Israel, Sweden, Vietnam, Laos and even New Caledonia, which I'm very proud of. No. Finally, we reach the end and identify some potential. So what could be done better with free open source software and research? The deployment of research related research specific open source software as well established. Its use is well accepted. Advantages are appreciated. Still, there is potential for further growth. I think only in the general IT evolution, so like information technology goes on. Legacy hardware will be replaced by things done in software. And for that new software, there will be a potential to have open source software. Also for new fields of research like artificial intelligence, optical computing, that could be fields where software as such is developing and evolving and also open source software. A little bit different is other facts with the administrative part of science. As here with my presentation software and also the operating system software on general computers, there is only a small market penetration of free open source software in this respect. There's desktop operating system, email office group where only a small amount is open source there. And especially the public sector currently depends way too much on closed source software makers. That is really a huge potential for publishing open source. We see more or less general potential. Yes, these are these many tiny software helpers, apps and drivers that were created during a project and that were reinvented too often like also memory structures. How often you rewrite buffers, cyclic buffers, stacks and this kind of so. And they disappear after the project end. It goes to the lower drawer in your office and it silently disappears. If you publish it open source, the benefit is you enrich the public software portfolio, make the amount of software to choose from larger and you speed up future research project by reusing results, reusing something anybody else did already before you. That makes it easier, which is very important, that makes it also easier to create convincing and that means colorful software demonstrators. Every final project face wants to have colorful blinking demonstrators with pipes and whistles and doing fancy stuff and that sucks a huge amount of manpower. So if you can reuse something that other people did before, then it's easier to have these kind of colorful demonstrators. The challenges to go there are mostly administrative ones. The administration of your institution or university must clearly define how open source software complements the classic exploitation strategy. You have to decide for a license text, which is not easy. You must decide if the piece of software is interesting enough and foresee more or less future development by clear design, clear software design. You have to bear in mind the big picture and define the API quite well. Finally, last but not least, I think very important is the last point, the documentation of concept and code. Give your piece of software an inviting appearance. Most of free open source software is not considered because the potential user does not understand what the software is for. So spend the effort and document at least your code and give some notes on what your thoughts were when designing that software. So some thoughts on the design. Last slide. What I wanted to tell you is that the free open source software is beneficial to scientific research. It's not only cost effective, but accelerates the creation of your demonstrators and allows reproduction of the results, which is very much important in that discussion on fake science if you put your tools online and available for others can recreate and reconstruct your results and you give a contribution to that discussion on fake science. Research is and has ever been an original force driver and still publishing open source software is a major potential. Clearly, it needs an administrative support, but also a better acknowledgement and research performance metric. That is what these RSE guys discuss, these research software engineers. And there's also some kind of technical challenge. Of course, it needs a forward looking design and well defined APIs. So the overall recommendation from my side is go for more, go for open source software projects. Thank you very much. Just a moment. The question is do really read the open source you use. So if you use some open source in your project, do you really read that that was, I don't know, I can't, I can't imagine I will read source code for eclipse. Is it really to do really this? How often do you have to change open source code? Yes. To be honest, if everything works fine, we do not check and we do not read the code anyway. That is true. It was a case with this GCC compiler where I was forced to read the source code because there was a bug in the compiler and it didn't work like the way I expected to do and it really wasn't bug. And to find that behavior, you of course have to read the source code and then you have to give feedback and claim the bug and file the bug. And then there was this kind of discussion. Yes, you are right or let me try to reproduce and then the developer said, yes, I can reproduce a bug and then it was fixed and you have to test it again. So at least for that kind of bug fixing, you are forced to read the source code. Yes. Other way around, if you probably are your question targets to the cryptographic algorithm that would be important to read the source code, to be honest, as long as the software works for me, I do not check if it is implemented correctly. Was it easy to read this code for that compiler? Was it easy to read this code for that compiler? No, it was some kind of effort. That's true. But anyway, it always depends also on the community behind that. In the case of the GCC, it was a kind of community. It was three to five really active developers. So if you ask questions or claimed a bug, then a day later or so, there was feedback, there was a response and said, yes, give me a week or so to check it. If you have projects with no active community anymore, you are lost at this stage. That's true. But that's true for commercial software anyway. Yes. Any questions? I think the second aspect for reading the code is the security aspect. That's the question, not the bugs to find or you said, if it works for me, then it's okay. Maybe you implement quite a lot of software you don't want to have on your mobile devices. It's not a problem. At least open source gives a chance to have the code reviewed. You don't have the chance if the code is closed source. Like many manufacturers do it that way. And if you publish the code and publish the source code and give access, grant access to that source code, you have a chance at code being reviewed. And at least for the popular implementations of software stacks that has been done, like has to be shows. And of course, there's no guarantee. It's also a question, where comes the money from? Is there anybody who pays for that, who pays me for reviewing other code? It's probably not. It's just the incentive is again to give something back to the community, to do some service to the community or to the public. Probably this kind of stuff, which leads to code being reviewed. Have you ever get not questions about bugs in your software from the community? Unfortunately, not as I said, there is no feedback yet. I'm concerned with how big a project must be or how many downloads you need until there is one that gives feedback. So of course, there are other open source software projects like that LibreOffice and Unix, which thousands and tens of thousands of downloads probably per day or so. And there's also a good feedback culture. Probably I'm too small. I'm just too small with these 20 or 50 or 100 downloads a year. Probably there was nobody caring about further development, for example, or extension of that giving feedback. I assume that if there was somebody that really applied that software, he was satisfied with that and didn't have any question. I don't know. We hope so. Yeah. Any further questions? No, that's not the case. So again, thank you for your talk. And thank you very much. Thank you for being here. Thank you.
 Thank you very much.  Welcome everybody.  I will give some just experiences that we have made with open source software in the  research context and my research context is wireless and network.  So I will introduce some background first that you have an idea about my perspective  on software development is and then go through this agenda more or less after, as I said,  introducing the background.  Then I will concentrate on the question of why open source.  This is the question frequently asked by the administrative staff, for example, could we  do it with proprietary licenses or so why is open source necessary or why is it even possible.  I will show some case studies from my work.  We went this way with publishing open source and show how it is more or less successful  and conclude with more or less a view on further potential.  So my idea where the usage and also publishing of open source could be improved or researchers  could think more on how it can be done with open source software.  So let's start with some background information on the HP.  The HP is a publicly funded research institute.  It is a member of the so-called Leibniz Society.  You may know the Fraunhofer, very popular here in Germany, or also the Helmholtz Gesellschaft.  And the third one is Max Planck.  And the fourth in this group is Leibniz.  And as I said, HP is a member of the Leibniz Gesellschaft.  It's a research institute that is focused on silicon technology, on semiconductor technology.  So the question how to produce chips, how to produce semiconductor circuits.  And it has three research programs for that purpose.  The first one is silicon based systems.  There is more the system perspective.  This is more or less my program that I am involved in.  Then there is this high frequency integrated circuits program, which focuses more on developing  circuits and the question how they can be made even faster or smaller or less energy  consuming.  And the third one is the technology centric view.  So how can we modify the current semiconductor technology to support these kind of circuits  and systems.  So the advantage of the HP, what makes it unique, is the so-called vertical approach  we have for departments in the institute.  Mainly these four materials, technologies, circuits and systems.  So starting with the materials, the question is which kind of material can be used as a  dielectric for something and what are the properties of this or the other material that  delivers input to the technology department who cares about how these materials can be  handled in a process such as an industrial technology feasible.  Then if we can handle these technology, then it comes to the circuits department who cares  about how circuits can be designed using this fast technology and it is a small footprint  of technology, how can we do good circuits with that.  And on top of this, there's a systems department where I work in who cares about the application.  So if you have these super good circuits super fast and with low energy consumption, how  can we build a system that has a certain purpose.  So that purpose, quite big part of the HP is that 1000 square meter classroom, clean  room, class one clean room where we can produce our own semiconductor circuits in-house.  But we also offer that for that so-called multi-project wafer services.  So somebody also like universities can come to us and ask and even do that, ask can you  produce let's say 1000 pieces, 1000 circuits of that design and then this is possible.  This is often not possible in industrial grade labs, but as we fill the gap between industry  and academia, this is especially our service that we can offer, that we can a small series,  pilot series production of semiconductor circuits.  Another attribute, another property of the institute is that we have a staffed with modern  technology equipment.  So all kind of measurement instruments that are needed in this area of work.  Of course, we contribute to leading conferences like the Forskorn and are continuously attending  third party funds.  That is a business, I think, of every research institute trying to get third party money.  And by this, we try to bridge the gap between academia and industry.  As I said, this is a current view of the HP.  Here we see this clean room and currently four parts of the building with offices and  lab space.  And right now, I think in a week or so, the plans are started to extend this clean room.  So it will be extended by a half.  So another 500 square meter will be added there for further equipment and an upgrade  of that technology service.  Inside the HP, people look like this.  We have here those people working with materials, so it's a very basic research.  They modify the surface of materials and do some investigations there.  Then here this typical picture of clean room people who are, you know, modified more or  less and work, handle these wafers and have them processed.  Then when the wafer comes out from the clean room, they are measured.  These guys from the materials and technology department also who measure certain parameters  if they are met.  And then it becomes more interesting for me.  These are the guys from the circuit design who care about these tiny single circuits  and try to do, for example, fast communication, fast radio chips and have to test it, like  in this picture, somehow.  And finally, these guys from the systems department who try to build systems with that.  So we have all kind of scientists in the institute.  And my background personally is from the systems department where we try to build systems.  And we build those wireless sensor network systems, which you may know.  These are these tiny little computing devices that are often backed by some kind of microcontroller.  For example, as I worked with Texas Instruments MSP430, but there are also a lot of other  controllers around.  So other options are possible there.  These computing devices are interconnected by wireless links, often in the ISM bands  like Bluetooth or Wi-Fi.  Then there is some support of peripherals like storage, memory, LED buttons, some simple  user interface.  They are often equipped with sensors.  So this is their geneveen part of what they are for.  They are to do measurements of whatsoever, depending on the application.  For example, these can be light sensors, temperature, environmental, like air pressure, air temperature,  wind speed and so on.  But also medical sensors like oxygen in the air or toxic gas concentrations in the air  or physical parameters like oxygen saturation in the blood and so on.  So some kind of measurements.  But they also could have, depending on the application, could have actuators, not only  sensors, but also actuators, mostly motors, something to move somehow.  And these interconnected tiny little computing devices form a cooperative network to meet  the goal of the application.  That may be or major application fields are some kind of agriculture, everything around  agriculture.  Agriculture 4.0 is that buzzword currently.  So what is precision farming, where they put these sensors around and try to measure environmental  data and forecast the amount of fruit they can deserve from the field, for example, or  to determine whether it has to be got some more water or whatsoever.  The nutrition plays a role, this kind of questions to be clarified there.  One industrial automation put these sensors in an industrial hall and try to control the  manufacturing process.  Also homeland security, this is not only border control, they try to detect if somebody crosses  a border, but also in the in-country for so-called critical infrastructures like power plants,  this kind of critical infrastructure, which you want to be safe from, to risk attacks  or also informational attacks.  So you want to measure if there is somebody, if there is some abnormal or atypical data  traffic going in or out, this kind of question.  And finally, what I did recently during the last five to eight years, also in the medical  fields like home care, elder care, especially I'll come to that in the next slide.  This is just a sample of wireless sensor network node that we constructed at HP.  A typical dimension is 35 millimeter by 23, so very, really, very tiny.  It's less than a palm and equipped with a microcontroller here, some wireless interface,  Bluetooth, some storage flash memory, some power supplies so that you can attach a battery  and restore it from the wall power, for example, USB interface that is quite special here,  and of course an extension header so that it can plug and add on boards there.  And the context where we used this wireless sensor network was, as I said, a medical one  and the Project MyAir coach running through the last three years or four years.  It was the project aimed at supporting people with asthma disease, breathing disease.  And the idea was to correlate environmental conditions with asthmatic phases.  So the infrastructure was body area network.  So we put some sensors and computational devices on the body somewhere and the smartphone  playing the role as some kind of base station.  So the smartphone gathers all information.  And for example, the smartwatch can measure the pulse and the general activity can be  used for display and vibration feedback, for example, it also has a step counter in there.  Then an important part was this inhaler that recorded the inhaler usage.  So you assume when the people use the inhaler, then there was some kind of asthmatic attack.  It controls the medication is the right amount of medication going through that appliance.  Then equipped with this sensor node, it measures the environmental per perimeter, especially  sulfur oxide, also free for the oxide and stick oxide.  And also general activity.  And the idea of the project was to combine these things to give the doctor a better basis  for diagnosis and the general activity what happened outside when the patient was not with  the doctor, when the patient was at home, for example.  And in this context, here's also another sample where you can see probably the wireless  sensor node being here.  This is an apparatus with a sensor for measuring particle dust, fine-stop, particle dust coming  here from the smoke of a cigarette.  We have here a cigarette and then some apparatus producing smoke from that cigarette.  And this is to measure and calibrate the measuring equipment here.  And my main work in this context was to program these microcontroller devices, these computing  devices, this part here, and also there to do the measurements, transmit the data, do  some housekeeping functions and so on.  So software development for embedded devices is more or less the background here.  Okay, what are the arguments or other way around?  If you do software development, you always have a bunch of options of tools that you  can use or are free to use and you should and must decide for one or the other.  So there raises the question, why should I use, for example, open source software?  Well, the first one, which is always also an argument for the administration, is the  question of costs.  So free software, this is our experience, free software has a lower total cost of ownership.  This is not only the initial license fee that you would have to pay for a proprietary license  software, but this is also manifested in support and maintenance.  So there's always, depending on the project, okay, there's mostly a forum where you can  ask questions and from my experience, you get mostly get serious answers there.  Another aspect is safe implementation, which is very important when it comes to cryptographic  algorithms.  And this is not an experience of myself, but of colleagues of mine who are dedicated to  cryptographic aspects and security aspects and wireless sensor networks.  And for them, it's very important that there are limitations that you can trust on.  And our view on that is that we have security guaranteed by public review instead of some  kind of obscurity or conspiracy.  We have code, but we don't tell you how it's made and we assure it is safe, but you cannot  have a look and test and try.  This is not our understanding of security.  Then I think there is a support innovation because the development cycle is shorter than  with proprietary software.  You have access to source code, you are authorized to customize the source code and you are authorized  to distribute modifications.  Another argument is availability.  You can download this 24 by 7 and you don't have to unlock or reach this somewhere or  activate something unlike with proprietary software.  If you have ever tried to install Windows, for example, there's always this activation  procedure you have to go through.  And last but not least, very important, the freedom of the result.  So if you use open software, all the results are first step free and you are not limited  in publishing or giving away or handling it to some extent.  For example, where it is not the case, freedom of the result, if you take compilers who compile  code, then for the used controller from Texas Instruments MSP430, there's also a conventional  compiler by TI.  And they write in their contract that if you compile code with that compiler, you have to  run the result on a TI processor.  However, there are derivatives of the MSP430 around.  So there's also an open core of MSP430 and you wouldn't be allowed to run this code on  an open core.  So it's not anyway the case that the result is free.  But if you use open software and an open compiler like GCC, that is the case.  You can use the code wherever you want.  And that is important, I think.  By using open software, then also the questionerized rows, you could also publish free open source  software.  So if you wrote a piece of software, you have to handle that somehow.  And one option is you could publish this and share it with others.  And that brings the classic exploitation options to mind.  Typically, a research institute like ours has a bunch of dissemination options.  First of them is publications.  This is probably everything that you know.  You are forced to produce papers and put it to conferences or even better to journals  or books.  There you have currently this open access scheme and well-known discussion on reviews  that are done or not done with some journals.  Another option for exploiting the results is to do patents.  Also not very easy.  Patents are made to protect your intellectual properties, but it also needs an active patent  management.  And to be honest, yes, it is supported to do patents.  But after a patent is applied and granted, nobody cares about that patent anymore unless  there are 10 years over or so or 20 years and then it's canceled.  But an active patent management is a thing what universities and research institutes  should do, but there are often no resources for that.  And a third option is found spin-off companies.  This is actually a thing that also HP did a few times ago.  Two or three spin-offs are around there, but everybody knows there's some kind of administrative  overhead.  Suddenly, the scientist who did something good and is now confronted with the option  to spin-off is away from research and has to do administrative tasks.  And still it's risky and it's not done without some kind of emergency parachuting contract.  So some option to come back if it fails or so.  And the sheer number of that, of the publications and patents and spin-offs, that is currently  the metric to measure and evaluate the performance of research, especially of public research.  Just the number of papers accounted and the height of the patent stack.  Of course, there are some more ingredients, right?  The number of thesis there and third party funds.  But actually it's that and no word about software publications.  If you do software within your project, it silently disappears at the end.  Everybody asks how many pieces of software you wrote and it's not going into this kind  of metrics.  There's also a very exciting track here at Frostconn with this research software engineers  track, who exactly care about this problem.  Anyway, the first option is publishing as open source software option needs to be added  to that kind of metric.  You know, of course, that research projects need and often have this kind of demonstrator  to visualize results.  And these are many kinds of software artifacts like drivers, protocols, applets, applications  and even also hardware sometimes, some kinds of ASIC or custom PCB.  This costs a lot of time and a lot of money and silently disappears at the end of the  project.  The way to handle it and my experiences, you have to convince your administration and enrich  your exploitation strategy with a force option.  So it's not that publishing open source substitutes or replaces a current option, but added to  the bunch of current options.  It's another one more option to have if other options are not drawn.  So just as an alternative for doing nothing and not compete with other of these performance  indicators.  So let it be a distinctive attribute to complement your performance metric and also to underline  your excellence and last but not least share the value that you created during the project  with from the taxpayers money with the community with the public.  Then if you go to your management, you will be asked why should we publish free open source  and you will need some bullet points.  This will be maybe of some help for you.  First of all, you increase visibility because you simply have more results of your project  that qualify for being published and by publishing open source, the people see that institute  or university released something, they are doing something in that field.  So it increases visibility.  You reach out to the popular science, you even get to people that are not so strong  related to research and maybe positively influence the public perception.  Also publication only allows for qualified criticism and feedback.  I can only give a feedback to some piece of software and know that piece of software.  If I have access to it and publishing open source is a way of granting access to software.  You have the chance if there is some interest that you have your own code developed further  by other peoples.  So typically if the project is done, you also see developing your software but if software  is around and people find it helpful, they may develop it further and into other domains.  Also you can push attractiveness of other outcomes or support spin-offs.  What I think is important, the macro perspective.  So the idea of returning to the public, what was created from taxpayers money.  So your institution, your university got money from the government or from the public, from  all of you.  So it's reasonable to give something back.  And also the idea of free software is I think best reflected by that concept of public ownership.  So public ownership as free software that meets both ends.  From a personal, from a very personal perspective and my personal perspective, the argument is  after taking advantage from open software myself by using compilers that were made by  others, it's fair to give back and contribute to other projects.  And finally there's nothing to lose.  Don't let the force option compete with others.  It just competes with a trash can.  Discussing the frequently heard counterarguments.  The first one, if you give it away, then we will decrease our third party income.  And to be honest, yes, that could be true theoretically if that software could have been commercialized.  And that is one question to discuss with administration.  Often the question if a piece of software could have been commercialized is predicted  in the way to optimistic.  If you try to really assess the chances of getting money for that piece of software,  do not do wishful thinking, but you have to know the market and you have to know where  to get money from.  That's very difficult.  Basically the most pieces of software or most kind of software that I encountered during  my research work do not qualify for being commercialized anyway.  Another argument is anything free of charge isn't worth a jot.  We displace our own work.  Nope, that is not true.  I think I don't have to explain why.  There are lots of examples where open source projects strengthen the local, regional or  even national economy.  Then it could be that legal reasons put some restrictions that mostly not because the EU  and also national administration meanwhile enforce the publication of open source software.  There are many compliant licenses available.  They are even compliant with the German Urheberrecht.  So if you have a close look to the license text, you will find one that goes well.  And finally the last argument in that chain is always we didn't do that ever before.  So yes, what can you tell there?  So give it a chance.  So to conclude more or less with kind of guidelines when the first publication could  be indicated, check if there is a realistic chance for commercial exploit or patent.  Be seriously, estimate the market-based success towards some kind of risk management.  Know the market participant, the market competitors and so on.  And then honestly tell if this piece of software could be commercialized.  If not, then the next step is check opposing rights of third parties.  If you copied the software from somewhere or the source code from somewhere or major  part of the source code, then that is very difficult.  But if you usually what you do is develop the software from scratch because there is  nothing similar and this is quite sure way to be free of rights of third parties.  Then the software itself should be self-contained, separable.  It should be some kind of independent of the original application.  And this is always true for all kinds of drivers, protocol implementation and these kind of  helpers.  A clear indicator is if it has a clear, well-documented interface and API.  And finally, last but not least, it must be interesting enough for the community.  And this is some kind hard to decide, but it should be reused in a similar different  context than this is a clear indicator that somebody else could be interested in.  Okay, I will rather skip more or less the case studies just very, very short.  There are four case studies in the paper.  The first one is Java virtual machine that we put running on these kind of sensor nodes,  mainly Takatuka from Uni Freiburg and Darjeeling from Uni Delft, where the major part was a  contribution.  I added the hardware abstraction layer for the MSP430 there and both virtual machines  are open source.  So also the contribution is open source as well as this mobile sensor API and the Java  rule engine.  The aspect of free open source is their return value by contributing a technical work instead  of just paying money.  I could have bought these Java virtual machines.  There are also JVMs around this proprietary license to be paid.  Instead of paying, I contributed my own work and earned the right more or less to use these  Java virtual machine.  Very good option, I think.  Second, which is more or less a consequence from this hardware abstraction layer is a  set of libraries that I called Ocarpi.  And I put this library for MSP430 peri-ferral controls as an open source project online  on SourceForge.  It's a driver for, as you can see there, the analog to digital converter, clock, checksum,  computer, direct memory access, and so on and so on, what all these controllers have  that way.  And it, of course, has interdependency with other free open software, namely the GCC  compiler.  The Eclipse as an integrated development environment.  And well, it's a project.  You don't know what happens to the project, but it's a seed, you said, and it may or may  not be of help for others.  So you don't get an immediate return.  That's true.  But hey, that's by chance.  That is a look on the usage statistics on SourceForge.  Up to now, okay, there is no external contribution.  So nobody said, hey, I want to add code there.  Let me be a developer and moderate download rate from 20 to 50 downloads per annum.  As you see, this is graphics, a short view on where the do-cap-go.  Well, it's more or less worldwide.  China, Germany, of course, USA, Spain, but also countries where you never think of, like  Armenia, Brazil, Iran, or even both countries of Korea.  The third one is the GCC itself, where I had the honor to contribute in a very early state  there.  The GCC itself, the GCC for MSP430 is not so old yet.  It arose from a new project back in 2010 and then developed steadily further, has a rapid  growing feature set since there.  And this, I think, on one of the other slides, I have it meanwhile under the control of TI  and other companies.  However, with this testing, the contribution was more of a qualified feedback.  So I fired some back and tested the fixes, the patches.  You pay a little effort back for a tool that was so fundamental for my own work.  So that was easy to go the step.  And with this one, I got inspired from this GCC.  I contributed some and maybe inspired other people to use it and added some value to that.  The final case study, the so-called KACVANG, which is a protocol disk sector for Wireshark.  If you ever worked with Wireshark, it's a tool for network analysis.  And they can add protocol plug-ins or protocol disk sectors, so called disk sectors.  That case, it was away from this wireless sensor network stuff.  It was IEEE 1905.1, this sector for home networking.  It's a protocol to help home network protocols and home network topologies being converged.  And for that standard, I wrote that this sector and put it open source.  Yes, suddenly you are part of the community and add that tiny colored stone to a Mosaic.  You know, Wireshark is around for, I don't know, 10 years or so.  So there is already a community and you are a piece of it.  And as a joint effort, it can lead to a significant piece of software.  And that is like this Wireshark generally looks for.  And here you see some packets that were caught from the network traffic.  And the Wireshark tool and the protocol plug-in allows you to pin the content of the network traffic down.  Have a look at it, everything went OK.  The download statistics here is a little bit better.  We have a moderate download rate of 50 to 100 per annum there.  And also worldwide spreading of that this sector, USA, Taiwan, Germany, France,  which is quite interesting because this sector was created in the context of a project that was a joint project with a French partner.  But it also went to Israel, Sweden, Vietnam, Laos and even New Caledonia, which I'm very proud of.  No.  Finally, we reach the end and identify some potential.  So what could be done better with free open source software and research?  The deployment of research related research specific open source software as well established.  Its use is well accepted.  Advantages are appreciated.  Still, there is potential for further growth.  I think only in the general IT evolution, so like information technology goes on.  Legacy hardware will be replaced by things done in software.  And for that new software, there will be a potential to have open source software.  Also for new fields of research like artificial intelligence, optical computing,  that could be fields where software as such is developing and evolving and also open source software.  A little bit different is other facts with the administrative part of science.  As here with my presentation software and also the operating system software on general computers,  there is only a small market penetration of free open source software in this respect.  There's desktop operating system, email office group where only a small amount is open source there.  And especially the public sector currently depends way too much on closed source software makers.  That is really a huge potential for publishing open source.  We see more or less general potential.  Yes, these are these many tiny software helpers, apps and drivers that were created during a project  and that were reinvented too often like also memory structures.  How often you rewrite buffers, cyclic buffers, stacks and this kind of so.  And they disappear after the project end.  It goes to the lower drawer in your office and it silently disappears.  If you publish it open source, the benefit is you enrich the public software portfolio,  make the amount of software to choose from larger and you speed up future research project  by reusing results, reusing something anybody else did already before you.  That makes it easier, which is very important, that makes it also easier to create convincing  and that means colorful software demonstrators.  Every final project face wants to have colorful blinking demonstrators with pipes and whistles  and doing fancy stuff and that sucks a huge amount of manpower.  So if you can reuse something that other people did before, then it's easier to have  these kind of colorful demonstrators.  The challenges to go there are mostly administrative ones.  The administration of your institution or university must clearly define how open source  software complements the classic exploitation strategy.  You have to decide for a license text, which is not easy.  You must decide if the piece of software is interesting enough and foresee more or less  future development by clear design, clear software design.  You have to bear in mind the big picture and define the API quite well.  Finally, last but not least, I think very important is the last point, the documentation  of concept and code.  Give your piece of software an inviting appearance.  Most of free open source software is not considered because the potential user does not understand  what the software is for.  So spend the effort and document at least your code and give some notes on what your  thoughts were when designing that software.  So some thoughts on the design.  Last slide.  What I wanted to tell you is that the free open source software is beneficial to scientific  research.  It's not only cost effective, but accelerates the creation of your demonstrators and allows  reproduction of the results, which is very much important in that discussion on fake  science if you put your tools online and available for others can recreate and reconstruct your  results and you give a contribution to that discussion on fake science.  Research is and has ever been an original force driver and still publishing open source  software is a major potential.  Clearly, it needs an administrative support, but also a better acknowledgement and research  performance metric.  That is what these RSE guys discuss, these research software engineers.  And there's also some kind of technical challenge.  Of course, it needs a forward looking design and well defined APIs.  So the overall recommendation from my side is go for more, go for open source software  projects.  Thank you very much.  Just a moment.  The question is do really read the open source you use.  So if you use some open source in your project, do you really read that that was, I don't  know, I can't, I can't imagine I will read source code for eclipse.  Is it really to do really this?  How often do you have to change open source code?  Yes.  To be honest, if everything works fine, we do not check and we do not read the code anyway.  That is true.  It was a case with this GCC compiler where I was forced to read the source code because  there was a bug in the compiler and it didn't work like the way I expected to do and it  really wasn't bug.  And to find that behavior, you of course have to read the source code and then you have  to give feedback and claim the bug and file the bug.  And then there was this kind of discussion.  Yes, you are right or let me try to reproduce and then the developer said, yes, I can reproduce  a bug and then it was fixed and you have to test it again.  So at least for that kind of bug fixing, you are forced to read the source code.  Yes.  Other way around, if you probably are your question targets to the cryptographic algorithm  that would be important to read the source code, to be honest, as long as the software  works for me, I do not check if it is implemented correctly.  Was it easy to read this code for that compiler?  Was it easy to read this code for that compiler?  No, it was some kind of effort.  That's true.  But anyway, it always depends also on the community behind that.  In the case of the GCC, it was a kind of community.  It was three to five really active developers.  So if you ask questions or claimed a bug, then a day later or so, there was feedback,  there was a response and said, yes, give me a week or so to check it.  If you have projects with no active community anymore, you are lost at this stage.  That's true.  But that's true for commercial software anyway.  Yes.  Any questions?  I think the second aspect for reading the code is the security aspect.  That's the question, not the bugs to find or you said, if it works for me, then it's  okay.  Maybe you implement quite a lot of software you don't want to have on your mobile devices.  It's not a problem.  At least open source gives a chance to have the code reviewed.  You don't have the chance if the code is closed source.  Like many manufacturers do it that way.  And if you publish the code and publish the source code and give access, grant access  to that source code, you have a chance at code being reviewed.  And at least for the popular implementations of software stacks that has been done, like  has to be shows.  And of course, there's no guarantee.  It's also a question, where comes the money from?  Is there anybody who pays for that, who pays me for reviewing other code?  It's probably not.  It's just the incentive is again to give something back to the community, to do some service  to the community or to the public.  Probably this kind of stuff, which leads to code being reviewed.  Have you ever get not questions about bugs in your software from the community?  Unfortunately, not as I said, there is no feedback yet.  I'm concerned with how big a project must be or how many downloads you need until there  is one that gives feedback.  So of course, there are other open source software projects like that LibreOffice and  Unix, which thousands and tens of thousands of downloads probably per day or so.  And there's also a good feedback culture.  Probably I'm too small.  I'm just too small with these 20 or 50 or 100 downloads a year.  Probably there was nobody caring about further development, for example, or extension of  that giving feedback.  I assume that if there was somebody that really applied that software, he was satisfied with  that and didn't have any question.  I don't know.  We hope so.  Yeah.  Any further questions?  No, that's not the case.  So again, thank you for your talk.  And thank you very much.  Thank you for being here.  Thank you.
2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_0_47.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_48_95.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_96_143.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_144_719.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_720_779.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_780_1019.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_1020_1955.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_1956_2543.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_2544_5375.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_5376_7727.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_7728_9083.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_9084_9623.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_9624_9719.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_9720_10511.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_10512_10619.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_10620_10679.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_10680_11243.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_11244_12179.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_12180_12359.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_12360_12467.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_12468_12887.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_12888_12971.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_12972_13151.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_13152_14759.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_14760_15023.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_15024_16499.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_16500_17843.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_17844_18023.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_18024_18119.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_18120_18167.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_18168_18347.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_18348_19511.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_19512_22883.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_22884_24155.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_24156_24479.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_24480_24563.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_24564_24683.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_24684_24827.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_24828_31091.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_31092_31151.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_31152_31271.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_31272_31355.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_31356_36935.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_36936_39503.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_39504_43751.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_43752_47303.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_47304_49787.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_49788_49967.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_49968_51635.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_51636_51743.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_51744_51875.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_51876_53411.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_53412_54047.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_54048_54587.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_54588_56411.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_56412_58355.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_58356_59015.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_59016_59279.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_59280_60035.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_60036_60311.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_60312_62639.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_62640_64979.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_64980_66671.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_66672_68819.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_68820_72191.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_72192_73043.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_73044_73163.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_73164_75107.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_75108_77051.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_77052_77279.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_77280_77327.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_77328_77375.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_77376_77423.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_77424_77471.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_77472_77591.png 2018_-_Open_Source_in_the_WSN_Research_IORd_L_6_Sc_77592_77612.png