 So yes, thank you very much for having us. I'm with the MicroPython team, and there has been some talks about MicroPython already in this event, which is really great, or CircuitPython. So mostly of them are in the maker sector, or maybe in education. So I would like to talk a little bit about how MicroPython is already used in industrial applications, where we are involved directly, or we know that it's used. So first of all, I give an overview. So is there someone who has never heard of MicroPython before? Yeah, so perfect. So I introduce a little bit how, what we did, and where we are now. Then I go and show you a real product that works with MicroPython, which I generally was allowed to bring here. And I want to share a little bit how we think MicroPython can generate an advantage for companies if they use it in the product development. And I'm happy to answer some questions afterwards about the talk, or about MicroPython in general, if you're interested. So let's just go into it. What is MicroPython? It aims to be a lean and efficient rewrite of Python, so it's rewritten completely from scratch. It has a compiler, a virtual machine, a runtime system, a garbage collector. So you can compile to byte code or native machine code. It supports an inline assembler. And all the compilation happens on the chip, which means you don't have to install anything on your PC. Everything is interpreted on the controller. So you can, you're all Python programmers, so you're very familiar with the Rappel. So you can use this like if you're doing normal Python. MicroPython is not completely compared with Python, but we aim to be as much the same as it is possible. So this seems all like a lot of work, which it was. The creator of MicroPython, Damian George, had the idea in 2013 because he wanted an interpreted language to easy control his hardware devices. And he would really like to have it done with Python. So he thought maybe there would be other people interested in this, so I run a Kickstarter. And I always wanted to run a Kickstarter because everybody is doing it. So he collected about 100,000 pounds for this initial idea, so the community was very into it. MicroPython was kind of wanted. So with these first initial 100,000 pounds, the first batch of MicroPython pieboards was created, which you see down to the left, so the first 3,000 pieces of these. And since then, we have really come a long way. There has happened a lot. MicroPython is an open source project on GitHub, so everybody is more than welcome to contribute. We have about 6,500 stars and ranking in the top 100 of the CC++ projects. So yeah, it's kind of famous. And so in the UK, there was the BBC MicroBit project, where in 2016 all the 11 to 12 year olds got a BBC MicroBit to where MicroPython can run for teaching. There are already other companies using MicroPython to ship their development boards. You might have heard about CircuitPython from Adafruit, and there are more companies like Pycom or OpenMV who do machine vision. Then very exciting for us, like a really big milestone is that there's the first MicroPython O'Reilly book coming, like it's already out. Also last year, programming with MicroPython, and we are ready to launch the second generation of Pyvots, which I will go into more detail later in the talk. So when I talk to people about, so Christine, what do you do for a living? And these are embedded programmers. They say, oh yes, Python for microcontrollers. Last time when I checked, Python was an interpreted language. So this is slow, it eats up a lot of resources and it's not very energy efficient. Yeah, well, they are right, but let me just say MicroPython is fast enough for most tasks, and if you look at the development time when you do a redesign of a product or have the first idea of a product, it's really, really fast. So the benefits of scripting languages, you all know them. It's easy to learn them. With MicroPython on your first initial board, you get an easy working prototype very quick. So even if you just have to show it off to a customer to get the first proof of concept, you can have this ready in a couple of weeks, except then maybe you do it with C. So the time to market might get reduced through this. What all these development boards and IoT things are about is that it's easy extensible by a user, so you really wanna tweak it your way. So it's easy to do this with a scripting language instead of maybe with plain C what's traditional in the embedded market. So luckily there are some people who use MicroPython in the product development, so there's one company that came across MicroPython when they were searching for a lightweight Python implementation but they didn't wanna have a full Linux system on their device. So they were firstly going with an embedded Linux system, but they wanted to get rid of all the blown shell scripts that they have to use on the device. And this company, so they made a bold decision at the time because MicroPython was very young. And two years later they actually are now 500 nanompares with an active ripple, so this is quite impressive because they are able to do real-time image processing now. Yeah, so this is one story. I'm going to tell you a little bit more about the different projects I'm aware of. So there's one project that is still working project, they are approaching us and they're looking into it and they're very excited and we are very excited too. Then there are prototypes of redesigns from existing products when the actual products reach the end of life and people looking into it, maybe we can do this in a more efficient way and we're using MicroPython and they are really new products, like we have a new idea and we are approaching us. So, and the device I brought here has a successful certification and it's already in production, so these devices are running in the field 24 seven, like with high reliability. So I really wanna say that there are real products out there working in the field, yeah. So when we talk about MicroPython, it's definitely worth, like, he is the creator of MicroPython, so it's George Robotics. And as he is a background in theoretical physics and he approached it designed by a more academic and research-orientated point of view instead of just simply, I wanna fix this problem and we think that this is the reason why MicroPython is so successful. So the first company I want to talk about is AquaPower Technologies, it's a UK company. They are based in the Lake District and they create innovative machines to generate power for marine environments. So if you have a look, they have really, really cool, huge hardware which they put into the sea, it's really amazing. And they are looking into their product called the AquaBoy and currently it's logging and collecting data from an external meter, how the waves are flowing and actually now it's using MATLAB but they wanted to have it on their device, on their embedded hardware. So they were approaching us, so MicroPython team, would this be able to do? And we were saying yes and we are very excited about implementing this in the next couple of weeks. So this is still working progress while it's coming up. Then there is a US company called Travis T. Consulting, he's using MicroPython for his product development to make them even more rapid because he's a mechanical, electrical and software design engineer and what he said is like the constant battle of finding components and tools which are easy to use, I still have a professional level desk kind of a gap so MicroPython kind of filled this for me. Yes, so he says, as you can see on the left side, this is an adapter board which has the same microcontroller as our Pyboard reference board and he designs his own little boards and plugs it or solders it on his extension boards. Unfortunately, I'm not allowed to save what final product this will be but this is also used in a real product in the end, yeah. And he said it's so easy to that he don't really need a debugger because he already has the running microcontroller and he don't have to care about this so he can really focus on his, how can I connect this sensor or how can I get the UR working or something like this. And then there's a company which the prototype I brought here, they are doing manufacturing of monitoring the traffic on highways, mainly on highways, yeah. So this is a German company based in Hamburg and Dresden. In the market, they are quite small but they are quite aggressive and they have the only working solution that has a real certification, like the high end certification in the market, sorry, yeah. So on the left side, you see a traffic monitoring and classification system because there are two problems. You have a lot of vehicles and they all need to be categorized in some way because if you wanna have new roads, you need to bring reliable data on, is there really so much traffic? Well, I sometimes just have to go to the Autobahn which is near to me and I can see it that there's too much traffic but yes, you have to have the reliable data and then there's another problem. There are a lot of overloaded vehicles and you will not always see them as easily as like in the picture here. So they have this system that's called way in motion. So it's basically, you have the road and there are three lines of sensors which can measure the way of the truck. So when you have your raised overload truck coming from the left to the right, it gets categorized in how much does it actually allow it to weigh and it's connected to a charge amplifier and they collect the data in the traffic monitoring system. So this WIM DSP32, I brought with me one of these and actually I couldn't bring the street and the sensors implemented underneath so but this would be really fun like driving with a truck here. So I brought this here with the simulators they use in the lab because of course it has to be tested in the first place before you actually go to the track and spend a lot of money for the drivers and yeah. So let's see if I can show you. So the device is all already running and it's probably a two, so there's an implemented OLED display which is only for like visualization because most of the time this is switched off because no one is actually there and looks at it but it's really convenient to see that so there are two lines connected and you get somewhere you get the number of the line, the way of the truck and the categorized vehicle like they categorized the different kind of vehicles in numbers and so this is all running, so very nice but if we stop this, you can see actually that there's a pie board, some people have used with the pie board that there's actually a pie board running on this device like literally not a pie board, it's the microcontroller chip but it's running MicroPython. So I hope this gets a little bit like this is a real world project, sorry. So how MicroPython made the difference? Obviously it was very obvious because the controller that has to be used was in the beginning was actually an F4 which is running on the pie board as well and then they improved it to an F7 because they have to do the 32A2D channels all in real time in line, so they need to realize the fast real time response and what was really easy to implement for example when you have these displays or other things like the peripherals of the things that's on the device which is not really like a core implement but to get them connected and put this all together was really easy with MicroPython. So it's the amazing software, isn't it? Like this super great implementation of Damian George. Yes it is but let's just say it's also a combination of hardware and software and how easy it is to plug something in. So what you can see over here is our new board which is like half the size of the normal pie board and the idea was to have, you probably know this ESP32 chips which you can buy everywhere but you still have to solder them. So we really wanna have something that you can with a micro USB connector already plug into your laptop and program it and which you can really really easy put on an adapter board and get ready to start programming so you can really focus on what's your actual problem to solve and not to program. First get the micro controller running so that you can test it separately which means you don't have to worry about if the actual micro controller is working. So yeah, the new Pie Board D it's called it has more functionality than our Pie Board 1.0 it's only 2.4 grams, it's more power so it's with a better efficiency. It runs an M7 with 260 megahertz and 256 K RAM so it's really low power consumption and it's ready to use models but still in the size of these ESP32 models you might know. So there's a Wi-Fi and a Bluetooth chip enabled which already ready to use and I wanted to show off a little bit of the data compared so the Pie Board 1.1 which is the original Pie Board runs at 168 megahertz which is comparable to 120 megahertz on the new Pie Board so when you have them idle it consumes about 80 milliamps and if they run they are at 55 milliamps so this is quite comparable but the new Board can have up to 260 megahertz which is about 1.75 times faster than the normal Pie like the first Pie Board and there you have a power consumption from 34 milliamps and it runs at 112 milliamps. Light sleep is 500 microamps and deep sleep with real-time clock enabled is 10 milliamps and what are quite good numbers is the downloading data to the Pie Board which is 100 milliamps around 800 kilobyte per second and the upload is 1 megabyte per second at about 140 milliamps. So and then of course there are things micro-Pyton is not so good at or cannot do it also. If you have really small microcontrollers it's best you use just traditional C. It's still a dynamic type language so you really really have to get your memory fragmented like your memory in order with the garbage collection so if you generate too many objects so you have to keep that in mind and if you are going with really really large projects you might prefer an embedded Linux system. So to sum up what are the pros and cons about this? Well productivity went up to traceability because you have a huge community looking standing behind that in the open source which they really dig out the problems and this is great because you rely on that. The testability went fast because you might have already the running board which you just have to plug in to your adapter board. It's really easy to port to a controller that has more power for example and the licensing was an advantage because the MIT license allows you to use the code but you can really close what might be like which generates your profit in the end and there's quite good support from the team. Well, not so good might be that there are increased hardware resources but all the upcoming microcontrollers show that we shouldn't really have a problem with that but sometimes it might be too expensive and there might be some lack of developer skills regarding the scripting languages because today you usually have secret programmers in the embedded world so this might be something which needs to be more approached because they do what they're used to but they might not see the advantage right away. So I hope you enjoyed the talk. You can find more information on micropython.org and our forum or if you wanna support the micropython project you can buy something pick something up from the store obviously or you can write me an email if you have some feedback so I hope you enjoyed the talk and I'm happy to have some questions. Thank you Christine, that was really informative. Does anyone have any questions? All right, quite a few. We'll start here. The examples you gave were mostly around development, trial, small scale applications. Can you see micropython being used for larger scale, higher budget, more critical uses? Yes, of course. What sort of thing? Well I think there we have the problem micropython is still quite young with the five years so there's no, so what happens in 10 years because this might be the problem why the bigger companies are still holding a little bit back maybe. So these are all bold, small companies who see an advantage in this but yeah I to be honest well the work with the ESA if some of you have heard of this I see them in satellites obviously at some point, yeah, absolutely. Hi, thank you very much and I want to know for someone who has been doubling with Arduino and now needs something a little bit more beefy something a little bit bigger to work what sort of platform you suggest to go? I've seen that there is this ESP32 that is promising but I wonder, well, saying that there are lots of those around so which is that you would suggest for someone who wants to explore a bit of the embedded words with those newer platform? Well yes, you might have seen the official micropython has ports for the ESP8266 and ESP32 so they are cool chips but they are not, well if you want to explore and don't want to spend a lot of money go with them but if you really want to put this one in a real application I would not recommend it right now I'm not saying that they won't be there at some point but they still have too many hardware bugs but if you want to explore sure there might good start with them cheap start but obviously you should buy a pie button promoting. Hello, can you describe the different sleep modes and what kind of uses they have? The different sleep modes? Yeah. So yeah, when you look into the IoT section you might have devices which are 99.9% on deep sleep and you just send data to somewhere in the 0.5 or 0.1% so with the light sleep you can wake up your microcontroller with an interrupt and with a deep sleep you have the real time clock which needs to be very accurate to wake it up again. So these are just very first measurements so be patient I had more or we should be having more very soon but yeah like also like when you have the Wi-Fi enabled and disabled and yeah. Any other questions? Hi, can you tell me whether MicroPython is sort of true real time or does it run on a real time operating system does it come with an operating system which operating system do you recommend using it with and can it be deterministic real time in terms of the interrupts if you're trying to build a controller deterministic real time in the sense that it could respond quick within a guaranteed time period in the way that microcontrollers traditionally do. Yes, so I didn't quite get the question with the operating system. Well, how does MicroPython work with which operating system do you use or is it an operating system as well? Well, it's a kind of operating system for your microcontroller. But you don't really need an RTOS or anything in between on your microcontroller so you just need to flash the firmware on the microcontroller or do you mean the PC where you interact with your device like how I plugged it in and showed you. Just the microcontroller just wondered whether so MicroPython is all you need on the microcontroller. Yes, so there's no RTOS or other layer in between so you can flesh it right on it then. That's great. And it works with interrupts and would you say that it was what we used to call deterministic real time which kind of means that it responds to an interrupt within it. Oh great, fantastic. Thank you. You mentioned that you can use MicroPython with BBC Micro bit. Yes. Can you use it with Arduino or Raspberry Pi? There is a Raspberry Pi bare metal part with Arduino I'm not sure to be honest. I don't think so. But it runs on the BBC Micro bit whereas I know you are a teacher. Are you using the BBC Micro bit? No. I think we can do one last question on that side maybe. Anyone? Just asking because we've seen some examples of it being used like with all the data science tools. How easy is it for someone like me which I'm mostly in the data science and a small little bit in the development side for me to just start using it in a real time use for example or connecting it to a sensor array for any of that use? Well I would say it's really easy. So if you want to try this there are some documentation on our website you just need to have a board. You can buy one that is already MicroPython fleshed on it or you can flesh it yourself just see what they are available. So connecting a sensor like an I2C or something it's really easy to set up. If you're just like dipping your feet into something like for the very first time so no worries about that should be very easy straightforward. Okay, lovely. That concludes our session. We have a coffee break from 11 to 1120 and then we continue from there. Thank you Christine. Thanks.