When a free lunch becomes realityFollow article
In 2016 KUNBUS GmbH started its Revolution Pi project. They introduced the open-source and community concepts into the world of industrial controllers (“PLC”s). Their “RevPi” is based on the Raspberry Pi “compute module” (just search for RevPi on DesignSpark to find articles like this one).
In January 2017 a member of the RevPi community, Sven Sager, published his open-source Python library RevPiModIO which allows easy access to the RevPi process image (see this series of articles). He invested over a thousand hours but yet offers his software suite for free. I wanted to know more about this man and his visions.
Vdh: How did you get to know the Revolution Pi project?
Sven: I was already working with the Raspberry Pi and Linux. But with my hardware projects, I was in doubt if the Raspi would be the right choice for an industrial environment. What’s about CE and other approvals required in a professional automation project? Then I came over a magazine article about the RevPi saying that this would be a professional industrial grade component that even comes with standard PLC in- and outputs and all the approvals required for automation. By that time, one of my tasks at work was administering S7 PLCs from Siemens. As a fan of open-source concepts, I was pretty much frustrated by their “closed” product approach. I was thrilled by the open-source concept of the RevPi project, and I was crazy about getting this cool stuff.
Vdh: That was in January 2017 when you received your very first RevPi. And it was also the first time we two “virtually met” in the RevPi forum. What do forums and communities mean to you?
Sven: I’ve grown up with forums. But when “social media” became viral, forums were no longer “hip”. When I sent an email with some questions to the KUNBUS team, they asked me to write down these questions in the forum so that everyone would be able to discuss and read the answers. I was glad to finally find such a forum again where you can have serious professional chats. Exchanging your questions and ideas with a large group of engineers makes so much sense: A community gives you a chance that several people will answer with their very own vocabulary. They kind of inject new ideas for problem solutions. A forum can be very inspiring. But the company behind it needs to be open-minded. And it can be especially successful if the company itself joins in with their engineers.
Vdh: What are your experiences with other companies’ forums?
Sven: I have often had the feeling, especially with the big companies, that you are treated like a daft user when you post beginner’s questions. By that time, I was a beginner like we all are with new topics. The only alternative was buying expensive support tickets, getting no real chat with experts. At least that was my impression during that time – it might have slightly changed during the last years. I think big companies are slowly learning their lessons.
Vdh: So you would favour a forum with tons of beginners’ questions against a professional support team?
Sven: We all have been, and we are all beginners. I absolutely have no problem with others asking so-called “easy” questions. If they are easy to answer, why not just write some lines and help others? A company might not be able to offer help for free. So there is nothing wrong with paid support. But wouldn’t it be great to have a symbiosis of both? If the paid support team has found an answer to a question, why can’t they just copy the question and the answer into the open public forum? Sharing the results of paid support would be fantastic for all users. Such a symbiosis would enhance the crowd knowledge and advance all of us. That is fun instead of frustrating.
Vdh: So the forum gets you quicker to a successful solution?
Sven: Yes, of course. Imagine the working hours of a worldwide forum: It is a 24/7 thing—no reduction to eight hours of business time.
Vdh: So contributing to the community seems to be very important to you. It was not long after you started working with the RevPi that you published your open-source “RevPiModIO” for it. What were your aims when you started this project?
Sven: When I started working with Linux, I have benefited a lot from communities. There was a growing desire not just to take but also to give. Posting bugs to the FreeNAS community was the first step. But it always was my dream to write software, a library, or anything else, which would be like a part of me and which I could bring in. As a Python fan, I was happy to use this language with the RevPi. But when I was using it in an automation project, I had the feeling that it was way too complicated and too slow to access the process image of this PLC. With Python, you had to do lots of bits and bytes juggling to access the process image by using memory offset calculations. You already have this fantastic graphical setup tool called PiCtory, where you can give symbolic names to process values. So my idea was to directly use these symbolic names in Python to read and write process values. That was the trigger to write the RevPiModIO library. At first thought, I wanted to make life easier for me. But then it felt logical to allow other users too, to access process values reliably and performant by using just a simple line of code. Calculating offsets and extracting bits from bytes is not the most straightforward job for an IT engineer.
Vdh: The first occasion we met face to face was on the KUNBUS booth at the Hannover Fair. But we soon met again on the first “RevPi Day” in Bremen, where you did show your sorting automat based on a RevPi PLC and also lectured about RevPiModIO. How important are such “physical” come-together occasions of the community?
Sven: It makes lots of sense. Among the 50 or 60 people on the first RevPi Day, I met people who never had participated in forum discussions, and I heard about things that had never been discussed in the forum. Maybe some of them could not write in the forum due to their companies’ secrecy policies. Talking face to face, they might be more open to sharing their experiences. At least I got much input from RevPiModIO users. I’m convinced: People at user meetings are much more open than in online forums.
Vdh: I’ve got to know you as a Python expert. So what was your way to this language? What is your educational background?
Sven: I’ve worked at a company for machinery and plant engineering. Although this is an automation specialist, my primary task was IT administration and network solutions for special-purpose machines: Remote maintenance, gateways, and this kind of stuff – but no controllers. My professional background is called “IT system electronics technician”. I never learned programming during my professional education. I taught myself Basic on an Amiga 500 and later Linux and Python.
Vdh: So your way was directly from Basic to Python?
Sven No, no. After Amiga-Basic I’ve worked with .NET, a little C++, VB on Server2000, and then Linux, Bash, and Python.
Vdh: Why do you love Python? This language has become the most popular programming language during the last years. What makes it so attractive?
Sven: You always have real platform independence: Mac, Linux, Windows – 99.9% of your code is running without changes. The syntax forces you to write well-structured programs and an object-oriented style. The number of available code bits and libraries is close to infinite. Working without the annoying toolchain (editor, compiler, and linker), makes my work so efficient. I can run program lines on the console for a quick test. This is extremely helpful if you are still learning the language syntax.
Vdh: Today, your RevPiModIO is much more like a complete tool suite than just a library for process image access. I have used it in several projects, some of them published on DesignSpark. And your tools have saved me many hours in my projects. KUNBUS has integrated your tools in their RevPi image, which is a considerable accolade for you. You have published all this work for free use on GitHub. How many hours do you have invested in this project?
Sven: I never counted them. So I can’t say. But whenever I had free time, I invested it in the project. I also took an extra one week vacation to get things ready in time. I would estimate it must have been way over a thousand hours.
Vdh: And you never got paid for this work? Not a single Penny? If I multiply this time by an hourly wage of an engineer – wow that would be lots of Euros.
Sven: Well, about a year ago, I have put a “donation” button on my web page. There was just one user, but he donated 50 Euros, which was really cool of him. And KUNBUS at least gave me some hardware for free. So I did not have to pay for having the systems to test the project’s tools.
Vdh: So, what other kinds of personal benefits do you have from investing so much time?
Sven: It is much more fun to advance your skills in programming by using them in a real project. I’ve learned so much while trying to optimise the performance of my code. I also learned all about professional testing by using Coverage as a tool. Man, I gained so much knowledge through this project – and all by having fun. And I also have become a part of an amazing professional network of engineers which has broadened my horizons and trained my communication skills. The spirit of a community is “giving and taking”. If you are willing to give, you always get back.
Vdh: Let’s talk about the future: If you could start again, would you prefer to make things different, maybe to earn some money with the project? What are your wishes for the future of the project?
Sven: I would love to write better documentation. I would love to get more feedback and ideas from the community, from people who use my tools. Money is not an essential issue for this project, and it hopefully will never be.
Vdh: You have written the complete code as a solo-fighter. Could you imagine to get help from others, to continue this project as teamwork?
Sven: Having it on GitHub is already the first step to let others contribute code. I’ve already received the first commit from someone. If others would help with documentation and also with setting up a better web page: That would be something I would appreciate very much. People helping to make the software suite more popular are very welcome.
Vdh: If our readers would like to help, how should they get in contact?
Sven: I’m on Twitter, and they can also go on my webpage to find the contact data. Just write me an email.
Vdh: If a fairy came and asks you to tell your wish for a perfect company you would like to work for, what would you answer?
Sven: A company producing its products or projects but yet loving open source and community. A company using Python. A company with a boss being open-minded for new ideas. And I love the slogan you had created when you worked for KUNBUS: “Don’t just claim it – do it”. I am more the working guy and not so much the discussing one.
And if she could make a second wish come true: I would love to see more open-source hard- and software, PLCs like the RevPi, to be used in schools and universities. Students should learn that open source gets more and more important in the automation industry.
Vdh: Thank you so much for this interview and much more for your awesome open-source project. Thanks for all the time it has saved me and others. And may the fairy make your wishes come true, and your perfect employer will contact you soon.
All the best for your future!