Transcript
            
            
              This transcript was autogenerated. To make changes, submit a PR.
            
            
            
            
              Today.
            
            
            
              I will share with you some insights about IoT and mobile, in particular, how to make
            
            
            
              them work together and get the best out of them to debug and develop application.
            
            
            
              So my talk is called unveiling the vital link between IoT and mobile.
            
            
            
              The power of telemetry.
            
            
            
              And just before starting, I invite you to use the chat and drop a message about
            
            
            
              if you are using telemetry, which one and how telemetry solve your issue.
            
            
            
              So I'm curious to see telemetry in action also for you.
            
            
            
              But just before starting.
            
            
            
              Let me take a just second to introduce myself.
            
            
            
              Ciao.
            
            
            
              Hi, I'm Matteo.
            
            
            
              I'm a senior mobile engineer.
            
            
            
              I start back in days when the first, beta of IUS was release, to the public.
            
            
            
              So as you can imagine, a bit of time ago and for many years, more than 15 so far.
            
            
            
              I work in developing by application, for iOS sometimes also for Android and
            
            
            
              lately back more since 2019 in Flutter or mobile devices as companion app of
            
            
            
              IoT project and with my team, I also work in developing some, internal tools,
            
            
            
              for example, one related to telemetry.
            
            
            
              To help our daily job and make stuff working.
            
            
            
              easier, not only for us as developer, but also for our friend of the QA department.
            
            
            
              Last but not least, let me say I'm an happy and enthusiastic
            
            
            
              open source contributor.
            
            
            
              So probably you will find some of my library or awesome collection of links.
            
            
            
              One is for sure awesome, swift.
            
            
            
              Another is related with awesome BLE.
            
            
            
              I'm also the mobile lead of a team.
            
            
            
              In intent and intent is a company with more than 10 years of experience, in
            
            
            
              building as you imagine application companion app or connected device.
            
            
            
              So let's say an expertise perfectly fit our aim, our customer, some
            
            
            
              of them are, aura Bosh, and we are working every day with new.
            
            
            
              exception startup, and we're helping them to start their journey from the
            
            
            
              project to the real product on the market.
            
            
            
              So let's start speaking about telemetry now.
            
            
            
              Telemetry It is a way to collect data, but in a very specific way.
            
            
            
              Automated, and this is a key word that I want to underline.
            
            
            
              Automation is very important.
            
            
            
              The collection of the data should not be human driven.
            
            
            
              And later we'll see why telemetry is a way to collect a constant.
            
            
            
              Stream of data that allow you to see what happened back in the days in the second
            
            
            
              in the minutes and basically add the whole history of what happened is such important
            
            
            
              because as you can imagine, allow you to have a full reply of what happened and
            
            
            
              this one is very useful because it can happen that you are not Transcribed At
            
            
            
              your desk in that let me share an example, a very high level example, totally, let's
            
            
            
              say from a different context, but to have an idea what telemetry is and how it
            
            
            
              works, I share with you one of my passion that is, building, applying custom drone.
            
            
            
              Building a custom drone is not such a trivial, let's say operation.
            
            
            
              And this one already help you to understand that a telemetry tool is useful
            
            
            
              in many different stage of a product.
            
            
            
              For a drone is useful when you start to find how to build that already.
            
            
            
              Then when you start to assemble and put the first screw And then when you
            
            
            
              start to do the, let's say, first very fly, and then when you start to enjoy
            
            
            
              flying with that, why is such important?
            
            
            
              As you can imagine, a drone has inside the board that keeps,
            
            
            
              let's say, the brain of the drone.
            
            
            
              A drone is composed by many components.
            
            
            
              motors, at least four propeller, antenna, GPS, and battery, and
            
            
            
              everything has to work smoothly.
            
            
            
              Otherwise, instead of having a beautiful drone fly, we have, let's say
            
            
            
              Or in the worst scenario, we have basically something splashed on the floor.
            
            
            
              according to that, we don't want to do that and we want
            
            
            
              to have fun with our drone.
            
            
            
              We need to use some specific tool and drone have many open source
            
            
            
              firmware that you can flash.
            
            
            
              And this firmware grants you access to many information in real time.
            
            
            
              www.
            
            
            
              Flydreamers.
            
            
            
              com when you build that, you can use steel, for example, let's say you
            
            
            
              art to install the firmware, but as you can imagine, meantime, you fly.
            
            
            
              there's no way to do that.
            
            
            
              So you need data in real time in a different manner.
            
            
            
              And here telemetry comes to help.
            
            
            
              Telemetry is able to tell you if the speed of each of the engine from
            
            
            
              this one, you can understand if the propeller are working the proper way.
            
            
            
              If the batteries in the proper, let's say temperature and how many millivolts
            
            
            
              you have still, because if for the first fly is important to understand that
            
            
            
              everything works as expected for the next slide is important to understand that.
            
            
            
              you have battery enough, the battery is in the proper position, balance, the
            
            
            
              engine are not overheating, and you can collect many of this information, your
            
            
            
              position through the GPS, the audio and video feed from the camera, the propeller
            
            
            
              speed, the battery consumption, and if you put together this one, you have
            
            
            
              the full information of your flight.
            
            
            
              You can listen, if you can come back first of all.
            
            
            
              That is not such a trivial stuff because you can even go too far, too high, and
            
            
            
              the battery is not able to last that long, so there is not, let's say, return
            
            
            
              home, and this one can be problematic.
            
            
            
              You need to know the GPS position because if anything happens and the
            
            
            
              drone falls down, You have to find that another, not such a trivial stuff.
            
            
            
              So let me say drawn is a perfect example of starting from zero to
            
            
            
              reach the final product, how much a simple stuff like telemetry.
            
            
            
              So a full automated feed of data coming from a device in this case, helped you
            
            
            
              to, a different stage, achieve the goal.
            
            
            
              One information more.
            
            
            
              Is, as you can imagine that we have different kind of connection, and
            
            
            
              in this part, we need to, let's say in our particular scenario.
            
            
            
              So considering that we have a mobile phone, we are speaking
            
            
            
              about indirect way of connection.
            
            
            
              Let's play a reversal.
            
            
            
              A peripheral that has a standalone connection, internet connection, can be,
            
            
            
              I don't know, Wi Fi rather than NB IoT, and a SIM on that is pretty standalone.
            
            
            
              But you can apply telemetry over there too for sure.
            
            
            
              in a context like BLE, so we have two options.
            
            
            
              Or we have physical gateway.
            
            
            
              or you need to ask your phone to act as a gateway.
            
            
            
              So the phone is able to, gather all the information as a kind of, let's say,
            
            
            
              transparent proxy and bring them to, to a tool where you collect all the data.
            
            
            
              Okay, sounds good, I think.
            
            
            
              And I think already I catch some of your possible, let's say, doubt.
            
            
            
              So what's the difference between telemetry and logging?
            
            
            
              Good question.
            
            
            
              it's pretty simple.
            
            
            
              And we come back to the very, very beginning slide.
            
            
            
              Automation is the key.
            
            
            
              in this scenario, logging means that there's a developer that is entitled to
            
            
            
              develop some code and drop locks inside that to double check what's going on.
            
            
            
              This one, by definition, can be error prone, can even be that I did the best
            
            
            
              job ever, but I forgot one condition.
            
            
            
              And when you're debugging in, say, special condition, and we'll see this
            
            
            
              later, and this one can be problematic.
            
            
            
              So telemetry helps a lot because as I mentioned can be considered as a
            
            
            
              transparent proxy that grab the data and keep them and store them even
            
            
            
              locally in the beginning the phone if the phone has no connection but later
            
            
            
              is able to sync To an external system.
            
            
            
              And with this external system, you can have, chronologically
            
            
            
              all the what happened and double check how to make it work.
            
            
            
              Why I was saying that is important and can be risky use logic because
            
            
            
              if you are debugging in special condition, so not next to your desk,
            
            
            
              if you figure out that they forgot to drop a lock, you can It's tricky.
            
            
            
              If you forgot that I dropped the log and the application is being used
            
            
            
              to climb a mountain or to swim or go underwater or drive a fast car.
            
            
            
              I don't know if you'll have time to issue a new version of the app to be
            
            
            
              used to debug and catch what's missing.
            
            
            
              a tool that grants me full access to the data.
            
            
            
              makes my life easier and calmer at the same time.
            
            
            
              So I don't have to think about, Oh, I put all the log in the proper place.
            
            
            
              Oh, I hope so.
            
            
            
              Let's hope that the guy doesn't have to climb 50 million times this hill.
            
            
            
              So it doesn't work like this.
            
            
            
              So logging is very important.
            
            
            
              What's inside telemetry?
            
            
            
              The proper answer probably would be, and should be, everything.
            
            
            
              I tried to put down some of the log in the proper place.
            
            
            
              I thought that usually are used.
            
            
            
              So for sure, the connection status is useful.
            
            
            
              More to know if you are connected or not.
            
            
            
              There are SSI.
            
            
            
              So how much is the signal strength of BLE?
            
            
            
              The battery level of the peripheral or the battery levels if the peripheral has
            
            
            
              multiple battery or What do you call it?
            
            
            
              Peripheral.
            
            
            
              Because even this one is another condition.
            
            
            
              The full flow of the command sent, received, error, codes, for example,
            
            
            
              the firmware version of the device.
            
            
            
              So pack all together.
            
            
            
              This one is very important.
            
            
            
              So give you an idea of what's going on.
            
            
            
              And allow you to create a kind of, let's say, digital twin
            
            
            
              reply, the full experience.
            
            
            
              And this one is very useful later when you sit back to your office desk and you
            
            
            
              need to the back so you can go check all the data step by step understand what's
            
            
            
              the status of the peripheral understand what's the mobile phone send and try
            
            
            
              to figure out where is the income.
            
            
            
              I want to share with you an example telemetry and let's
            
            
            
              call that telemetry in action.
            
            
            
              So have a beautiful daily tracker.
            
            
            
              It works in the swimming pool and for sure is not an extreme place, that's for sure.
            
            
            
              You need some, pay some attention if you don't want to make your laptop
            
            
            
              fly in the water and start to figure out, how much it's, let's say.
            
            
            
              water, how much is waterproof.
            
            
            
              and also, it's a high humidity environment.
            
            
            
              So there are some precautions that are neat.
            
            
            
              And let's say that this device, for example, is used by a trainer.
            
            
            
              So a person that is standing still and waiting the person that is swimming to
            
            
            
              come back and, let's say, start a new lap.
            
            
            
              So this is the scenario.
            
            
            
              I decided to split that in three part.
            
            
            
              So first of all, behavioral debugging, old school, totally old school approach.
            
            
            
              The trainer is checking the phone.
            
            
            
              The person is coming.
            
            
            
              Noted.
            
            
            
              This one is the behavioral debug.
            
            
            
              We stop over there.
            
            
            
              Okay.
            
            
            
              nothing more, nothing less.
            
            
            
              Log debugging.
            
            
            
              Let's say that we bring our laptop, we keep connected to the phone or the tablet.
            
            
            
              And what we can see, I put some logs here and there, battery updated.
            
            
            
              Beautiful.
            
            
            
              Peripheral disk analytics.
            
            
            
              Interesting.
            
            
            
              But I don't have a clear idea what's going on.
            
            
            
              Telemetry.
            
            
            
              So in this case, instead, me as a developer, I'm in the office.
            
            
            
              and I'm looking at the flow of data coming and I see that
            
            
            
              there is a GAN notification.
            
            
            
              Good.
            
            
            
              This one brings some information like the firmware version.
            
            
            
              Perfect.
            
            
            
              But also show me that the battery drops suddenly to five percent.
            
            
            
              very low level.
            
            
            
              and then disconnect.
            
            
            
              Totally different scenario from, verify disconnect and, I don't have the data.
            
            
            
              Behavior UI debugging.
            
            
            
              In this way, I'm in the office, I can sit, I can try to replicate
            
            
            
              the situation and understand
            
            
            
              that the sync for sure is intermittent.
            
            
            
              So this is the issue.
            
            
            
              But the other stuff is that with the telemetry I was able
            
            
            
              to understand that the battery.
            
            
            
              After a specific command start to fall down so much that make
            
            
            
              the disconnection in place.
            
            
            
              The result, as you can imagine, is a, the developer doesn't have to
            
            
            
              start swimming or learn swimming.
            
            
            
              It's not trivial stuff, but as you can imagine, I am able to debug
            
            
            
              that in hour or even less and staying, for example, in the office.
            
            
            
              and much faster.
            
            
            
              So this kind of stuff allow me to have a, let's say really a digital
            
            
            
              clone, the device that is in the swim in the time, have the full flow of
            
            
            
              data and they can instruct with the framework team and the QA team, the
            
            
            
              device to replicate the same data and figure out what's triggering that.
            
            
            
              And then I can understand, for example, that is not a software demo bot.
            
            
            
              Issue, but it's more a firmware implementation that generate the issue,
            
            
            
              maybe, and try to address the bug, how a tool like this works, a tool
            
            
            
              like this works in a way, basically on any device, because user is built
            
            
            
              on top of the native implementation.
            
            
            
              So in the case of iOS, yes, it's objective C and in Android.
            
            
            
              No, it's not in Java, but it's a very low level.
            
            
            
              So Flutter and React Native will not have issue with that.
            
            
            
              You just import them and that's it.
            
            
            
              So you can start to collect the data.
            
            
            
              The data can be taken, stored locally, maybe the device, I'm climbing a mountain.
            
            
            
              There is no internet at the moment.
            
            
            
              So I can store the whole flow of data.
            
            
            
              in a local database.
            
            
            
              And then as soon as I have internet started syncing with a system that
            
            
            
              allow me later to browse that.
            
            
            
              And later I can browse this data remote.
            
            
            
              So in any place, if I'm in the office, if I'm in a special area dedicated for
            
            
            
              testing, and many people can check that the QA department, me as a developer,
            
            
            
              my colleague, I can share snippet information to the firmware team, and
            
            
            
              they can look into that and debug.
            
            
            
              So debugging without telemetry, if you ask me, no.
            
            
            
              it's an alley that allows me to have less to do.
            
            
            
              I don't have to remember to cover many stuff in terms of logs.
            
            
            
              So I don't have to make my code, let's say, full of flux and to catch all
            
            
            
              the possible, let's say, nuances, edge cases, and much more calm, QA team is
            
            
            
              much more happy because they have all the flow of data can even be even too
            
            
            
              much, let's say, but we can filter them.
            
            
            
              So better to collect the data, most of them, and then try to understand
            
            
            
              on top that what's going on.
            
            
            
              We can repeat the scenario as many times we want because now we have
            
            
            
              the data, we know the flow, we know the steps, and we don't know
            
            
            
              only the steps from a behavioral standpoint or a recorded screen, we
            
            
            
              know what's going on under the hood.
            
            
            
              So we can have some instruments other that help us to feed the digital twin
            
            
            
              and see how to make it work can be a digital twin hardware or software.
            
            
            
              for listening.
            
            
            
              As a simulator, and this one help us to, shrink a lot, the development.
            
            
            
              So why using telemetry?
            
            
            
              Save money.
            
            
            
              So if I have a prototype and I want to jump on the market, if it can help,
            
            
            
              the firmware team, the hardware team.
            
            
            
              giving insights real time on what's going on, fine tuning and implementation,
            
            
            
              catch the bug at the earliest stage and find the solution much easier,
            
            
            
              faster without repeating many time.
            
            
            
              Let's say, outdoor test.
            
            
            
              For sure.
            
            
            
              I'm already saving time and strictly connected to save time.
            
            
            
              I can.
            
            
            
              save money so I can cut the cost of debugging and testing.
            
            
            
              Last but not least, I will have much happier customer and the return
            
            
            
              rate risk to perform way better.
            
            
            
              So be less, let's say, huge than expected.
            
            
            
              So if I have a good stable product, I don't have to worry
            
            
            
              about the product come back.
            
            
            
              So this one.
            
            
            
              These are very other important stuff related to the word iot
            
            
            
              of iot in particular on BLE.
            
            
            
              If you don't believe me, you can check many on the comments of BLE, related
            
            
            
              application that doesn't have a fledge, let's say overview before the launch.
            
            
            
              And you can see in the comment of the application.
            
            
            
              So that's it.
            
            
            
              I hope I was able to share with you an idea of what the limiter is, in
            
            
            
              particular in the scenario of BLE.
            
            
            
              So how to use a device like a smartphone to collect data and help improve
            
            
            
              the way you are working every day.
            
            
            
              And make your own say go to market in case you are the owner
            
            
            
              of the product much easier.
            
            
            
              If you want, I'm here.
            
            
            
              Let's discuss together, telemetry and let's explore also your needs.
            
            
            
              So if you have any need.
            
            
            
              for your IOT device, your IOT project, and you want to discuss how to improve,
            
            
            
              for example, the reliability of the BLE connection, you are facing an issue with
            
            
            
              connection stability, reconnection, etc.
            
            
            
              For sure, I think we can help you.
            
            
            
              we have the knowledge we have the tool.
            
            
            
              So feel free to reach me out on LinkedIn.
            
            
            
              You can find me as Teoclipa or you can drop me an email at grow at winstinton.
            
            
            
              com.
            
            
            
              And yeah, thank you for your time and hope we will see and meet each other and can
            
            
            
              help you with your beautiful IoT project.
            
            
            
              Ciao.