Bare Conductive meets Massimo Banzi
A day with Massimo Banzi at Maker Faire Rome 2016
After 4 years of participating at Maker Faire Rome, we can admit that this was one of the best years because we finally interviewed Massimo Banzi, the co-founder of the Arduino project.
We asked him about ESLOV, new projects, and Maker Faire Rome. So, take a seat and enjoy the interview.
Bare Conductive: Hi Massimo! Thanks so much for taking the time to talk with us!
Massimo Banzi: It’s a pleasure – I love what you guys are doing!
BC: We’re very excited to see the new ESLOV IoT Invention Kit, which recently hit Kickstarter. What inspired you and the team to develop the kit?
MB: When I started working on Arduino, which was almost 15 years ago, the objective was to make microcontroller programming easy for people who didn’t have a background in technology. I think we succeeded by widening the audience for electronics as a creative medium and learning about microcontrollers. But this only increased the size of the audience maybe ten times – it didn’t increase it a hundred times, and certainly not a million times. Also, this was still only for a set of people who are really motivated to go through the process of learning about programming.
So the idea [of ESLOV] is that we have the challenge of IoT, which can bring a lot of benefits, but building this kind of devices is still something for people who know the software, know hardware, know cloud computing etc. We know that one of the biggest successes in the Arduino methodology is that if you give people success early on in their path to learning about or build something that early success will give them the confidence to continue and work on more complex challenges. The problem is that if somebody encounters difficulty at the beginning, they might give up. We wanted to create a tool that will allow anybody with no background in hardware or software to create a working, functioning IoT device that can add something to their lives.
So maybe they see a problem or opportunity – they can prototype something in ten minutes, put it online, maybe use a mobile phone to control the thing. But really this is not going to cover all of the use cases. Maybe it is going to cover only 10 or 20% of the use cases, but this will allow people to solve problems and encourage them to take things to the next level. In ESLOV, there is a mechanism where you can click a button in the graphical programming environment and get Arduino code that implements the device that you just visually designed. This allows you to continue the development in Arduino, so you can slowly transition to a more sophisticated set of skills. So I think that’s what I was trying to do.
BC: It is possible to program ESLOV using a graphic editor, which looks like a really easy way to get started. How important do you think it is for people programming devices like ESLOV to transition from a graphical environment to more traditional textual programming languages? Is this necessarily even relevant anymore?
MB: Throughout the history of computer science, people have been building visual development environments – at least since the sixties. The issue is that none of these has been incredibly successful because they are only very good at covering a certain set of use cases. Musicians and artists use Max/MSP and they do beautiful projects, people who build installations might use VVVV and they produce beautiful installations, but it stops at some point as these visual languages have a limit – Scratch too. Scratch, in a way, is not really a visual programming language. You take some lines of programming and you create visual blocks – but they are still lines of code, masquerading as blocks. So there is still a lot of work to be done, mostly in the design of the visual interface, to create a real visual programming environment.
I think that in the future there will be a combination of both approaches. Professional developers will continue with text-based programming for a long time. I think that what is happening right now in Arduino is probably an illustration of this – with visual programming you can take it to a certain point and then so can say “OK, now give me the code” and you can start hacking it textually. A lot of the Arduino programming that people do is composing other people’s libraries and Arduino’s libraries. You’re sort of scripting the hardware using high-level blocks that other people have worked on and debugged. I think that a lot of professional developers are going in that direction too – microcontroller companies are giving you high-level, properly debugged and functioning building blocks and then users compose those different blocks.
One of the advantages that Arduino offers right now is that you can start with an 8-bit microcontroller and you can take the same code that you wrote for that and run it all the way up on the Samsung Artik platform which is an 8 core monster that is capable of machine learning! Also, I think that one of the tricks is to design something that doesn’t aim to solve all of the problems but to capture some use cases well. People will stretch this beyond those use cases. But if you try to solve all of the problems, aiming to be generic and aimed at every application you will end up with something that is essentially flavourless. Without any flavour or personality, that tool becomes hard to grasp.
BC: Arduino has developed so much over the last 15 years, and its community of users has also evolved over that period. What are today’s Arduino users asking for in terms of new features?
MB: That’s a very good question – the answer is interesting because there is a tension inside the community. The people who are most vocal about features are the people who have a background in hardware or software and they often ask us to add to Arduino features that are part of classic software development environments. But some of these are the features that made those environments difficult to understand! But since these people were trained in these difficult, old-style environments they want us to go that way. But we were successful because we went the other way. In a way, it’s similar to politics. The majority of the people who you are working for don’t talk directly to you and let you know what they think. The people who talk to you, the more vocal ones, is not necessarily the largest set of your potential constituents or customers. In a way, you have to incorporate the needs of what you believe to be your key audience and also go through the requests you get and say to some “that’s nice, but it’s not the way we want to go” and to others “that’s good, we should do that”. Sometimes you have to deal with the backlash from this tension – you might see comments on the developer’s mailing list saying “I really want this particular syntax – only a moron wouldn’t put this in Arduino”. In Silicon Valley (the TV show) the main character breaks up with his girlfriend because she is using spaces and he is using tabs! These can be big contentious issues.
The difference is that the Arduino core audience is people who are using Arduino to build something. They don’t really care if it’s Python, C++, Java, whatever – they want to build something and they will use the tool that will get them there. Some other people are more in love with the programming in itself, which is more a philosophical debate on the use code – and less a means to an end. “My people” are the ones who build stuff – I teach interaction design, and my students build stuff with Arduino. At the moment they are also using the Raspberry Pi because it solves their problem in a particular situation, some of them have used the Particle Photon because they felt it was easier to use the WiFi with that. They will switch to whatever makes their lives simple.
BC: The Arduino Create platform was launched earlier this year. Are you seeing different kinds of projects or different users here? Do you think that one day this might replace the standard Arduino IDE?
MB: This is another dilemma we have at Arduino – how do you keep moving with the platform? With the downloadable IDE it’s a standard – it has millions of downloads, lots of people use it – but there’s also an interest in online development environments because using web technologies we can create really nice pipelines, great user journeys. You can see a tutorial on our Project Hub and click on it and it can put the relevant code into your IDE. You can edit it and turn the code into your own program and then go to the Arduino Cloud and see your device running. Perhaps then you might think “OK, this now really a new tutorial” and push that back into the system. So you create this loop (Massimo draws an infinity sign in the air, referencing the Arduino logo) and the IDE is just one module in a bigger flow where you might jump to another website where you design a PCB and send it for manufacturing, you then you come back and go to a website where you do some 3D modelling, store that in the Arduino sketch and then send the files to a 3D printing service. The idea is that Arduino Create becomes a glue between all of the different parts of a project and a container for those things – and this is much easier for us to do with web technologies.
On the other hand, in education, there is this problem where some schools don’t have Internet connections. It’s strange – people often hear this and think of villages in Africa – no, no, no, no, no! We’re talking about Italy – the eighth richest country in the world, which doesn’t have Internet connection in all of its schools. Some schools do have a connection, but the students cannot use it. Here, the cloud IDE wouldn’t work, so they need a downloadable IDE. To answer your question – you need both the cloud and downloadable IDE. The cloud version simply enables a bunch of integration processes. The use of web technologies has another advantage – the current IDE is written in Java, so it would be a bit of a nightmare to put this into the cloud. But you can take our online IDE and run it as a desktop application with Node Webkit – we have this already as a prototype. In the future, it may be possible to have one IDE that runs in the cloud, on the desktop and even on the device. In fact, the Arduino Create IDE started life as an IDE for the Arduino Tre, which we never released. That was a Linux machine, and the idea was to point your browser at the IP address of the board and the development environment would show up, so you could write code on the device itself.
BC: We’re very happy (and I am sure that your community is too) that the difficulties that Arduino.cc and Arduino.org have been through over the past couple of years are now resolved. What do you think you have learned through this process that others would benefit from?
MB: Yes – I have learned a lot, but I am not able to tell you about it right now because we are still in the process of settling our differences. We have an agreement – both parties will talk about this, but in due time.
BC: What’s your favourite thing you’ve seen so far at Maker Faire Rome?
MB: Nothing! I don’t get to see the Maker Faire sadly. By being one of the curators, one of the people who started this thing, I basically don’t get to see anything. I do see the projects coming in, though, and this afternoon we are awarding the R.O.M.E. (Rome Outstanding Maker of Europe) prize – a group of makers will receive €100k as a prize to help turn their project into a company.
One of those projects, for example, is an incubator for children. For me, that’s maybe not a sexy project – you know, the shiny LED stuff you see – but on the other hand it’s very important that as makers we try to find cheaper alternatives to very expensive technologies. I do understand why an incubator is expensive – I totally get it – but there are some contexts where people are happy to have a less sophisticated product that can be maintained locally and where the cost is low enough that they can afford to make it themselves. I don’t think that the same solutions always apply globally – different contexts demand different solutions. I wish there was time for me to see the whole Maker Faire though!
Editor’s note: The prize was eventually awarded to Talking Hands, a glove that translates sign language into words.