 Hi, I'm Todd Baker, Corby Vice President of Engineering at Future Electronics. Thank you very much for attending our class today at ST's 2020 Virtual DevCon event. We're really excited about the event. We're excited about all the changes that are going on. And I think today we've got a really neat topic that's gonna help you with your next design and make you a little bit more efficient, get you to market a little bit faster with a great solution from ST and actually a number of great solutions for ST. Today, I'm gonna be talking to you about the Future Electronics Design Companion Board. This is an add-on board that we've built to work along with ST's own ST-WIN sensor tile platform which showcases their STM32L4 plus microcontroller series. Now, if you're not familiar with that microcontroller series, it's an excellent low-power Cortex-M4 design where they've really brought the power consumption down. They've added a ton of memory to the overall microcontroller itself for a lot of different applications. In addition to that, they've added, they've got their Chrome Art Mathematics Accelerator on it which is excellent for a lot of different applications and really speeding the ability of the processor to do more complex algorithms. They also on it have their own Chrome GRC graphic controller on board. So for the design in a low-power application like a wearable, you can use that microcontroller, maintain long battery life and still have a very sophisticated user interface with great graphics on it and allow the core to focus on the primary application you need it focused on, let it do the main method it might need to be doing, maybe keep it asleep so you can maintain the battery life in just a lot of those powerful aspects that can be very, very useful in many applications with a powerful microcontroller like the L4 Plus. Now, those graphics applications in low-power isn't where our companion board is really focused on though. What we really wanted to focus on with the L4 Plus was the performance capabilities of it. Even though it's a very low-power microcontroller, it's able to generate 150 drystone mips out of the Cortex-M4 plus all the math capability that it has. So with that, we wanted to see how do you get this connected very easily to the cloud? How do you get the L4 Plus to a point where it's collecting very sophisticated sensor data and do that kind of thing? And so by taking our companion board, adding it to the ST-1 sensor tile, with that you end up with a full system that now has a thermal imaging camera added on board. So a lot of impressive capabilities and ideas and applications for that these days. We've also added a CAT-1 cellular radio on board as well. And then a number of sensors like CO2 sensors, particulate matter sensors, and others. So that we're collecting a ton of data into the L4 Plus, getting it connected to the cloud, and still have a lot of horsepower left over to do many, many other things. So it's really a solution that we've built that's focused on applications for you, the design engineer. We believe it's something that you can take, use it as a launching pad for your next design. No matter what you're doing, what we've kind of designed it for today and what we'll be looking at are things like building monitoring, sophisticated air quality control systems that we've seen a lot of engineers working on these days, crowd monitoring, things along those lines. But we've also built the board to be flexible enough that you can modify it to your own application and start down that road. Do these kinds of things, easily be connected to the cloud, very, very quickly with the L4. Easily be able to select data from the sensors that we've selected for this board or whatever sensor you may need to put it on an I squared C bus or a spy bus or a UR or whatever else might be necessary there and then get your application going. In addition, because of all the memory that the L4 plus has, we believe down the road and some of the things that we'll be talking about a little bit and things that we're developing ourselves to help customers with is adding the ability to artificial intelligence and machine learning at the edge of the cloud. So you can take this little micro controller and start making decisions on the environmental data that you're getting without ever having to interface with the server, without ever having to have a human come into contact with your device, make intelligent decisions, maybe decide that you have a problem going on in the system. Maybe there's some kind of maintenance that needs to occur. Maybe we need to make a decision to send an email or a text or an alert that we have someone in the crowd that has a fever or maybe we've sent something in the air quality that's dangerous. Those kinds of things are capable with this system and we're really excited to show you all that we've got built today. So let's go ahead and get started. So as we've discussed, the future electronics companion add-on board is meant to be an add-on to the ST-WIN sensor tile for the STM32 L4 plus industrial platform. And that is an industrial platform that's already ready to go with a lot of features already built in. But what we wanted to do with that platform and by adding companion onto it was to turn it into a true industrial wireless multi-sensor edge node. So that we'd be able to easily connect up to the cloud, get customer and design embedded engineers connect to the cloud faster and be able to do a lot more sensing than what the current platform does. So let's talk about the current platform first, what's available on it and then we'll get into what companion offers in addition to it. So we take a look at the ST-WIN development kit. The sensor tile has a lot of features on it. You've already got a microphone, you've already got different environmental sensors that we'll talk about the different ones in a moment. We've got motion sensors accelerometers on board, you can communicate via USB. And then also you've got the ability to expand and add a Wi-Fi socket onto it. So there's a Wi-Fi add-on board that you can buy the ST-WIN WF-V1 that would allow you to have that connectivity. And then there's already on board an ST Bluetooth low energy module as well. So you've got a lot of features here that can really get you started. If we go into kind of the details on the exact sensors that are already there, we've got vibration sensors. We've got 3D acceleration on there from ST. We've got a five-axis IMU for magnetometer. We've got humidity sensors, temperature sensors, pressure sensors, a number of other products from ST, including also a MEMS microphone as well that's on board to me, an analog microphone, pardon me, that's there on the system. So you've got a lot of data that you can collect with the L4 already. You can then send that out over the Bluetooth radio, get an app that's available, and do a lot to have started to do that kind of control with the system. So it really is already pretty full-featured with a battery, with a case, and able to get you to a point where you can start prototyping with your own application and your own design. What our vision was to add, was to add the Campania on board to this, and you can see that the eval board already in its little case here. And so with the Campania board, what we come in and we add is we add first and foremost a cellular CAT-1 modem. So we end up with that that gives us a lot more flexibility to be connected anywhere, to not just be reliant on a phone or be reliant on a Wi-Fi module or some other network, we can connect ourselves to whatever cellular towers and range and be able to move the board anywhere that we go. We've also added a CO2 sensor. Well, big part of what we were trying to do is to have air quality control, air quality monitoring, so that CO2 sensor is on there, also a particulate matter sensor. We also entered an air quality sensor, the TVOC sensor from Censirion, which gives us a good idea if there's different aspects of the air quality, like methane and things along those lines that may be in there. There's also the grid eye. That's one of the key features of this, a very small part that gives you a 64-zone thermal imaging sensor. So you can actually take a look and be able to sense when a body is in front of you, maybe even how many bodies are in front of you and actually the temperature of those bodies to some degree, which is very interesting. And in addition to that, we added a number of ST parts that weren't on the original system. So we added a GPS radio on there so we can see the exact location of our industrial node if it's moving and where it might be. We also added an NFCE prompt. So we've got near field communication so we can easily reprogram the device. We can collect data off the device with our cell phone and transmit data very easily there with the ST25 DV04K. And then in addition with that, all those added sensors with a lot there that had to be added on, obviously we needed a lot of LDOs and ST does a great job with a lot of their power consumption or their power, not the power consumption, but the voltage regulation circuitry that we wanted to make sure that we did a lot of utilization of. So we ended up with a very full system and a lot of new features added on to the sensor tile with Campanio being added on. And Campanio, of course, being Italian for Campanio, we wanted to make sure that we represented our key relationship with ST. You can get a little better view of the Campanio board here and this is one of the renderings that we have of the board without the cellular module actually attached. So for our cellular module, we use a Nimble Link SkyLink cellular module that connects to many different cellular networks. We'll talk about that a little bit more in a moment. The board's a little bit larger than what you see in the sensor tile. So it does add a little bit of space because we wanted to be able to put a lot on there, but it adds a ton of functionality that really does help us get to what we wanted to accomplish in the system. And part of what we wanted to accomplish is get to a point where we're starting to think of things like industry 5.0 in the smart factory system architecture. Can we get to a point where we've got a node that can monitor many, many different things on something like a factory floor, monitor vibrations, monitor air flow, monitor air quality, particulate matter, and then quickly send that information up to a cloud so that decision makers can decide maybe there's something that needs to be fixed in that system and make those decisions a little bit faster than they've been able to in the past. We also thought about things along the lines of smart buildings and HVAC maintenance systems. One of the things that we found from a lot of our customers and we hear a ton from engineers is that there's a tremendous amount of cost in waiting for a machine to truly fail. And it would be very nice if they could know the machine is about to fail, roll a truck before massive failure actually occurs, and there's a tremendous amount of cost savings that occur in that preventive maintenance. So the system is built for that. So that if in an HVAC system, maybe you have one of your motors within that system that begins to have a vibration pattern that you can recognize. And when you recognize that pattern, you may know that a bearing is going out or something else is starting to fail. So before it actually fails and makes everyone else in an office building in Texas in July burn up and it caused a lot of issues for the building owner, you can roll a truck and fix the actual HVAC system before the failure ever occurs. Those kinds of designs can be very, very powerful in this day and age. So before we go into further details on the overall system and how we were gonna make that look like an industrial node, let's talk a little bit about how we actually get things up and running and bring the board up a little bit. So the first thing we wanna use is the STM32Q program, which is a free tool offered by ST makes it very easy to upload or download a binary file onto your micro controller and program, everything. Unfortunately, I don't have enough time today in this class session to walk you through all the programs that we wrote, but just suffice it to say, all that's available for anyone that would wanna use that for your designs. We've basically used free RTOS, written a little bit of application code to get everything running. And then we've compiled that and now we have a binary file. The first thing you wanna do once you have that compiled program is connect via the ST link, which is a little dongle that comes with the sensor tile. We're gonna connect to that. We see everything come up. At that point, we wanna go and find our binary file and the open file here. We've got it right here, companion project binary is our latest software. And once we see that loaded up, when you go to the download button and at that point, we get everything going, it's in progress and now our code is ready to go. So once we've actually programmed the board, now we wanna go ahead and bring everything up. We wanna start interfacing with our free RTOS terminal, start executing some of the different functions to read sensors and get to a point where we can start connecting to the cloud. And that's when I'm gonna spend some time walking through with you here. So bear with me on this. So the first thing we wanna do is bring up some kind of a serial terminal application. I like Terra Term very well. It's free, always works well. And we're gonna set that to 115K bot. Get it all plugged in. We're gonna connect it to the ST win interface. So again, we're connected to that little dongle that's tied into our USB on the sensor tile itself. And then we just need to do a reset on the board. So if we go to, there's a little black button on the ST win itself, push that button. And at this point, we should start to see everything boot up. See the free RTOS come up and at this point, we've got a command prompt. So the command prompt, we can start to see, okay, what are the different things that we can actually do on this? If we type in help here. So at that point, we've got a long list of different commands that we can execute from the command prompt to read different sensors and do different things. I'm gonna walk you through some of that right now. I'm also gonna walk you through some of the engineering behind the different components on our system and then how we're reading them, what we're gonna do with them and then we're gonna connect to the cloud and show you exactly how you can do that as well. So before we start getting started reading the different values off of our board and the companion board, let's talk about some of the actual sensors that are on the Campania system. So some of the things we've added, first and foremost, a Sincere and CO2 sensor, their SCD30, this is a really good performance to price ratio module that we've seen on the market, great for applications where you need to be moderating CO2, but also has the capability of doing relative humidity and temperature sensing as well. It's perfect for the kind of application that we sort of had in mind when we started designing Campania, just from the standpoint of, being an HVAC system, indoor air quality, quickly being able to get a good sense of where things stand on that. Small form factor on it, it's about 35 millimeters by 23 millimeters, it's not directly on our board, it sits next to our board, we've got it wired over and it's got very accurate measurement, 30 parts per million plus or minus and then it's all, one of the nice things about it is it's already calibrated, it's already linearized, you don't have to do any of that in your own code, it's done for you. The interface can be UR or for us, we're using the I squared C bus for the majority of our sensors, just for ease of design. The next sensor that we've got is another Sinserian sensor, is their VOC sensor, so the SGP 40. This one is on our board, it's a very small sensor, it's able to detect a lot of different types of gas, MOX based gas sensors for indoor air quality. So you can be able to detect if the air quality is actually diminished for some reason, is there some matter that's gotten into the air system that shouldn't be there and that you don't want to have. So something that we've seen a lot of growth and need for just for the air quality and just a great interface with I squared C, already tied in, this is a very easy sensor to integrate into your systems and get going. And then lastly, we've added a Panasonic particulate matter sensor, their SNG CJ5. And so this sensor is a little bit bigger, again sits off board, it's 37 by 37 by 12. And so I gotta say, when I first was starting this, what are the things I would use a particulate matter sensor for? Well, it's things like dust, ash and cooking situations. If you might have some kind of a smoke coming off of a cooking surface, maybe plant matter from fireplaces, furnaces, also construction materials in a construction site. If you've got a lot of drywall that possibly is flying around or in something like a demolition site, there may be a situation where there's too much particles in the air that's making it difficult for people around it to breathe and you don't want people walking into that area without some kind of a respirator on. Things along those lines are what we're seeing a lot of need for particulate matter sensors these days. It can detect any kind of particle down to something that's 0.3 micrometers in size, and then is outputting that information out to the STM3204 plus. So it's really a very, very nice system uses a laser diode internal to it to detect the different particulate matter that's there, and we'll kind of show you what it's seeing here in my home office, and hopefully everything is safe for me. So now that we've talked a little bit about the sensors that we have on the board, let's take a look at actually how we get the data out of them using our system. So first let's take a look at the CO2 sensor. So we've got it right here, the Syrian SCD-30. You can see the little bit of a heartbeat light on there, just letting you know that it is powered on, which is a nice feature on there. So in order to get that one's reading, we're going to type in CO2-READ, and then it's going to give us the information coming directly from that sensor. So nice and easy. Same thing for the VOC sensor. Take a look at that, that's just a small little sensor right there on our board. On that one we're going to have TVOC-READ. Again, we're going to get the basic data coming out of that sensor right now. And then lastly, for a particulate matter sensor right here, so a little bit larger box that gets black, my hand's probably in the way. It's going to be right there. So for that sensor, we're just going to very simply, the command that we've done for our function there, just PM-READ. And again, we're going to get the particulate matter information out of that. Fortunately, none of those are too terribly high right now, so I'm okay in here, but it does give you a good sense of some of the data. So the next sensor I want to talk to you really quickly about is the Panasonic Grid Eye Sensor. This thermal array gives you 64 different zones and a very low resolution temperature in thermal imaging camera, which is a really powerful thing we're seeing needed in a lot of new applications. From anything from room air conditioning where you want to be able to detect different temperatures across the room, people tracking, be able to sense bodies and how many bodies are in front of you, digital signage is one of the areas where we've seen that, where a digital sign will change when someone is standing in front of it, temperature detection inside microwave ovens. And then also one of the innovative things I've seen is a new way of doing human machine interface with gesture recognition. So you don't actually have to touch the machine or touch the surface, which is obviously important today, but then still be able to interact with the machine without having that touch. It's able to detect temperatures from zero degrees to 80 degrees C if you're willing to put it into high gain, a little bit more power consumption. If you go into a low gain, it's negative 20 to 100 degrees C. So very, very useful system, just have an I squared C interface, very small part in a lot of really cool applications that we're really happy to have on the Campania board. So let me show you exactly how that works. So the Panasonic Grid Eye, you can get raw data in the Territorm app and just see exactly what it's showing for each one of the zones live. That's one way to do it. It's not nearly as cool as actually using the Panasonic app. So they've got a really great Grid Eye Evaluation Kit software app completely free on their website. We've got everything on the Campania board hooked up and ready to go with it. So we just need to send the command to the Campania board for grid eye dash software. Okay, and that puts us into a mode where we're just sending out data that the software wants to see. At that point, the board will continue to run. I need to close, if I can, go and close Territorm so it's not taking up the terminal. We want to connect to our same USB port. It's using that same USB port. We're going to connect to it. And now you can see that we've got the actual different zones and you can see the temperature in each one of the zones. You can actually set this up so it shows you the exact values for the zones as my hand moves across. You can kind of see the sensor is working. And it's just a really nice way to do many, many different things. And there's so many applications for these kinds of sensors coming out these days. So one of the first wireless features that we added was to add an STM NFC radio on board. So this is a nice little dynamic NFC tag. It's their ST25 DV with an I squared C interface on board. And we find that a lot of these NFC radios are used in many things. I know we've all gotten used to, to some extent, to the paying with our phone and the tapping of things along those lines. But we're seeing it also just for fast data transfer for MCU firmware upgrades, also just parameter upgrades of a system and any kind of just really quick, small data transfer that may be required to change a system or get data out of a system very fast with something that every maintenance person is going to have a cell phone, which has been very, very convenient. We've also seen it being used for key storage, for password protection, data protection, things along those lines. So there's a lot of great features in NFC. So let me show you how that works on our system. All right, so to do an NFC read, you really need to have some kind of a tool on your cell phone. For me, I use a tool on the iPhone called NFC tools, completely free. You can get it and it'll allow you to create whatever text you might want, then you want to send. So the text that I want to send over the NFC radio is something I think we can all agree on in a world where it doesn't seem like anyone can agree on anything anymore. But what I want to say is COVID sucks. I think we can agree on that, right? So from there, I'm going to go ahead and set, put the phone into write mode. So I want to send that message to my NFC eProm. It's now ready to scan. At this point, I want to go ahead and put the actual device into the write mode so that it can see that. Sorry, I should have done that first. So the command I'm going to use for that is going to be NFC dash read dash texts. Sorry, I'm working on two screens here. It gets interesting. NFC dash read dash text. Okay, now it should be ready to look for an NFC to come nearby. So at that point, if I can get it. There we go, I found my antenna. Just took me a second to find my own antenna on my phone. And then you can see, from there, we should be able to see that the information got exchanged. Hit enter again, which should be the new thing. And there it is. Now we have the correct message that's inside the system. So before we start talking about our cloud connectivity, let's talk about some of the wireless features that we added to make that more valuable. And the first one is the STMs, GPS modules. That their Tiseo, LIV3F, GNSS modules are ones that we've now at Future Electronics have designed into a number of our systems. Makes adding GPS to an application very, very simple. Being a fully integrated device just takes a little bit of programming on the microcontroller, reading out, reading the GPS coordinates and then being able to upload this. And this makes it very simple. So in our system, we have the Tiseo module, we have an antenna. And as we've been doing the development with engineers in Montreal, Quebec, in Austin, Texas, with me being here. And then also some of our engineering team being in Mexico, it's made it very interesting for us to be able to see who's working and when because we always see the nodes come on at those times. The next one and probably the most important part, especially for the cloud connectivity is the addition of a CAT1 modem. And so we added a Nimbolink Skywire 4G radio onto this, which has been a real, very easy device to add on. It's able to work with a lot of different carriers, AT&T, Bell, Rogers, Telus, T-Mobile in the Americas. And then just add a simple antenna on a UFL port that's actually there on the board. So it makes it very, very easy. So again, this has been very simple just to send a couple of AT command sets to this, get up and going, get on the cellular network, get connected to the cloud. And that's what I want to show you how we did next. So next we want to take a look at how we actually get the Capagno board connected to the cloud. And we've got a Scripter interface and a Scripter IO server that we're running that we want to show you. And unfortunately it's a 30 minute class. There's a lot that goes on into getting that up and going. But I want to walk you through the processes of what we've done. And obviously it's all on free RTOS. And we developed a number of functions that are really just sending AT commands to the cellular radio and getting everything configured properly so that we can actually first get connected to the tower and then get connected to the cloud server. So the first thing we want to do obviously is to actually initialize the cell phone itself. So we'll go ahead and the first command that we send for the function that we called to get the right AT commands on to the Skywire radio is cell dash I-N-I-T, okay? And that's going to start getting everything configured. And that basically just initializes the cellular radio into a known state. So we know exactly where it is. And we can kind of start from scratch a little bit. Make sure that there are no issues. So one of the things, the next thing that we need to do is actually connect to a tower. So we've got a SIM card that's installed into our modem here. We use a SIM card from a company called Convergia. Convergia is a great company to look at if you're looking for CAT-1 services that absolutely can get you that low cost that you can't find from a lot of the other providers. We'd be happy to make introductions for that. So the first thing we're going to do is just see if we're online. And we may not be this first time because this cellular radio, yeah. Okay, so we're not actually attached to the tower yet. And the reason for that right now is this cellular radio's been in a number of different countries. And so we're looking for an AT&T tower. So we need to get everything set up to GPRS. So we now have the right configuration settings for that. So we'll go to cell dash is online. Hopefully this time we see a good IP address that we get. So we see this time we are in fact on attached to the tower 10.46.57.141. So we are actually on there. So now at this point we're on the cellular tower. We need to figure out how do we actually get onto the cloud. So for that we need to basically go ahead and define a node address for ourselves so we know what we're going to do. So the command that we've built for that is L's dash companion dash address. In the node we're going to go with the default one is 443 08 1, let's take that quickly I did. Okay, so now we're set. We got a message back from the server saying it's good with that node address and it's now going to see our particular companion board as this address and then multiple boards could be connected to the same cloud site. So you could have a lot of different nodes all with different addresses. So now it's a matter of let's send our payload. So let's check our payload first see if it looks good. We hit test dash body message. So this is a payload that contains all the information from our GPS radio, all of our different sensors. This is what's getting fired up to the cloud now. And now we're going to go ahead and send it with the command cells dash script dash post. Okay, and we see that that's going through waiting for the okay, we got the okay, we got our information back. And so now this data that we just sent should now be live up on the server. So let's go ahead and take a look. So we go ahead and log into our site and this is the site that we've created. You see we've got the data for the location. If we go ahead and click on the board, information for the board, we now can see that this is again, simulating kind of an HVAC system. You have the information, they're live for all of the different components, all the different sensors inside of this HVAC system for air quality, for temperature, for humidity levels, particle sensing, everything along those lines. And then we can go and actually view some live data on it and take a look at this. Right now we're not streaming continual data, but you can actually see all the information from the sensors here on our dashboard. We can see what the IR sensor is reading as well. And we've got a very, very clean, nice user interface that many people can see and utilize. So I hope this time looking at the future electronics companion board has been useful for you. Again, this platform is meant to help our customer engineers get to market faster by showing you a very easy way to get connected to the cloud. It's tough to show all the details on this in 30 minutes. There's a lot more detail that our engineers can get into with you to help you faster get to market. We'd be happy to share our board with you, happy to share our files with you, our software, our hardware, so that you can take that and convert what we've created as a launching pad for your own eventual applications. For any of your hardware needs, any of your software needs with ST Microelectronics, Future Electronics is here to help. Please feel free to reach out to us and we look forward to speaking with you soon. Take care.