Coding 101 70

NETCASTS YOU LOVE, FROM PEOPLE YOU TRUST. This is TWIT! Bandwidth for Coding 101 is provided by “CacheFly” at

This episode of Coding 101 is brought to you by Digital Ocean. Simple and fast cloud hosting built for developers. Deploy an SSD Cloud Server in 55 seconds. Try it free today, visit and once you sign up be sure to enter the promo code C101 in the billing section, for a $10.00 credit.

And by, BrainTree. If you’re working on a mobile app and searching for the right payments API. Checkout the Braintree V-Dot 0SDK. With one simple integration you get every way to pay. To learn more and to tryout the sandbox. Go to

Today on a wild card episode of coding 101 we’re speaking with David Gatti from NV Drones.

Fr. Robert BALLECER @padresj: Hello, and welcome to Coding 101. It’s the show where we let you into the wonderful world of the code monkey/code warrior. I’m Father Robert Ballecer, the digital (jazu?) and joining me as always is my super-duper king kame-a-me-a mega, mega super special permanent co-host, Mr. Lou Maresca.

Lou MARESCA: Thank You.

Fr. Robert: That one seemed a little forced though. I don’t know.

Lou: That was good, that was a little forced but that was good. I liked that one.

Fr. Robert: Ok, we’ll follow that one back in for perhaps cruising on your lower third. Now, Lou again we’re here for another wild card episode of Coding 101. For those of you who are maybe skipping episodes here and there. We like to put these interviews into our main programming modules to cleanse the pallet. It’s a chance for you to step away from the coding and speak to the people, who are actually doing it for a living. Lou, we’ve been doing this for a while in fact you were on episode one of Coding 101 and this is sort of a nice way to Segway between languages.

Lou: Yeah, all the speakers, all the visitors that are coming in the couple days, the next couple episodes are actually really exciting doing some exciting stuff. Especially this one is definitely some cool stuff so I’m um. It’s always good to hear from the industry and people who are really passionate about what they do. Cause it gets you passionate. It gets you interested in doing these things. I think it’s really important for us to hear from everyone.

Fr. Robert: Exactly, that’s what we wanna do. We want to infect you, with passion. That’s probably not the best slogan, but let’s go ahead and get to our guest. Last week we spoke with Peggy Fisher and one of the things that Peggy told us about was her interest in micro controllers. Specifically, in our dweeno and Lego mind storm. She thought that that combination of computer science and electrical engineering was a very nice place of sort of sweet spot to get to the new generation. The millennials, the people who are living with technology today. So our guest for today is Mr. David Gatti. He is the Co-founder of NV Drones, a very interesting company that is going into that intersection of computer science, of programming, micro controllers and of course, drones. David, thank you very much for coming on the Coding 101.

David GATTI: Hello everyone and thank you for having me on your show.

Fr. Robert: Now uh, I met you in a very strange way, I think you sent out a tweet at some point.

David: Right.

Fr. Robert: That got me interested. I looked at your website and I wrote out to my tweets. I said “This is fascinating.” It’s a way to easily make an app for your home made or your store bought drone. And then it just blossomed from there. We saw you at (?) and you showed us what you were actually working on.

David: Yeah, I mean I knew that you were passionate about drones and you do Coding 101. So I was thinking “Wells, lets send out a tweet, then see what happens.” Turns out that was the perfect thing to do.

Fr. Robert: Absolutely. So what we’re looking at doing is doing a cross over with you, because of course, we want to include you on our other DIY show KnowHow. Now we’re gonna get into that in a bit. But before we start talking about what kind of logic, what kind of coding actually goes into making an app for a drone. We want to talk a little bit about you. Where did you find your passion for creating? For either, computer science of electrical engineering?

David: Ok, I this seems to be an interesting one because I started coding because I was bored at work.

Fr. Robert: Laughs

David: So literally I was an IT guy for four years and I quickly realized that the ones that setup the infrastructure like the right way. There isn’t much to do so everything was working fine. So I started watching movies and that became pretty boring pretty quickly. Then I was playing Contra Strike for a few months and that was boring. Then I realized, well I can do better, right? So I ended up with a book about PHP and it started from there. I learned how to do simple websites. I built a website for my friend. He wanted to have a blocking platform and that was during a time where a lot of WordPress started to be popular, but not quite. At that time, it was very slow and there were a lot of issues and so I did that. Then after that I actually became a blogger for four years writing about robot technologies. Once developing the website that they coded, the first time, which was an interesting experience. When that didn’t work out those four years. I became a web developer at a company doing simple Facebook apps for other companies, then I transitioned to Android. So our company had Windows Mobile application. I don’t know if people know what Windows Mobile is but it was something before the iPhone. Mutual Fund and so I basically wrote this Windows program out for Android and that’s how I learned how to use the Android API and Java basically. From there that was it from being a developer. I did a lot of like (?) things and I learned how to use (?) for a project I had an idea of. Then I actually became a branch manager, which is weird.

Fr. Robert: Laughs

David: So then I started working at the company that was building mobile apps for iOS and Android using Unity. And so I never wrote a game from scratch using Unity but I accustomed with the whole process like; we need an art director, we need offsets, we need 3D objects and texture for it. We need a story. You need to code the basic app. Then you need to make animations. Then you need to put all the prettiness on top of what you build, like shaders. And which when I learned what shaders were, my brain just exploded, like ok, this is too much for me. So I was a branch manager there and then at the next company I became a marketing director. Which is also weird.

Fr. Robert: Laughs

David: That very quickly transitioned to being a developer operation manager because the last company before I withdrew. I was working at this startup that was building a controller that was in the shade of a guy. We were looking for an operation person and we weren’t able to find someone who had enough knowledge about marketing P.R. and it’s like open minded, friendly and outgoing. So after a while we decided that we needed to find a replacement for me. So I could become the developer operation person, right? Because I had the technical skills to talk with developers, explain the technology and help them out if they needed anything with coding and using the, the actual product in our games. Now I like it a lot, I like being a developer operation person because I get to still code. Do examples and basically I like to help people understand the technology at the company I was working at. So, yeah. That’s my interesting story.

Fr. Robert: You, know David. I just want you to know that I knew Windows Mobile back when it was still Windows CE. You know, before it made the jump.

David: Nice, because when I talk now to young people I say before there was Windows Mobile and they say what Windows what?

Fr. Robert: Windows Phone? You talking about Windows Phone?

David: So sometimes it’s like; and then I show them screenshots and they’re like “Oh my God, this is crazy.” This is so old.

Fr. Robert: You know, I had an HP Gernada and it was a very low power laptop running Windows CE. It had compact flash card slot and a PCMCIA card slot and I thought it was the predecessor to Ultra Books. It was super light, it was like a pound and a half. It actually ran for 12 hours on a battery. It was interesting.

David: Interesting.

Fr. Robert: Yeah.

David: I loved the idea. There was the, Sharp? The breckto?

Fr. Robert: Yes,

David: Yes, and that thing was pretty awesome. That thing was like 85 MHZ. You were able to play and do dream cab on it and it had a floppy drive I think. (laughs)

Fr. Robert: And, let me get Lou into here. Lou, one of the funniest things about this is Windows CE. When you look at what it can actually do, because you could strip it down so much and then build it up the way you want it. It’s actually, it compares very favorably to today’s smart operating systems for mobile devices.

Lou: Oh yeah, it’s the basis of a lot of the smart operating systems. In fact, you would run on like, a lot of your ATM machines now a days run it and a lot of media devices that are on planes. Like the older versions of them run on CE. So when you’re watching a tv show on the plane, some of the older systems run it yeah. It was the basis of a lot of the mobile devices.

Fr. Robert: David, I want to go back to something that you’ve been talking about is, it seems to be like your kind of fell into programming versus what we have with a lot of our other guests. They decided early on this is what I want to do. They took the courses in order to get the knowledge, they followed a very traditional path in order to get there. Yours sounded like, well this is all self-taught. In fact, (?) in the chat room is giving you kudos saying, “This is the way to go.” You learn what you need to learn and that’s what drives you and that’s when you learn that you actually have the passion for it.

David: Yeah, the funny thing is like I was always a person with a lot of ideas and I would say, I don’t want to brag or anything but, normally like, they were kind of good ideas I would say. And I always had an issue like I had a friend, he was an awesome developer. He was like, crazy insane, so every time I talked with him, “Let’s do something together, it’ll be fun or whatever.” He said, “I don’t have the time, I don’t want to do this, maybe later.” And what not right, and so it was after I had these ideas and no one could help me but me so I started learning something.

Fr. Robert: Well, that experience of learning something because you have to. Because you have a job in front of you and you have to figure out how to do it. That’s one thing, but what happens when you, as you said. Your mind gets blown by something like shaders. Where suddenly it is so ridiculously complicated and so different from what you’ve done before. That suddenly it’s no longer really a choice just to buckle down and figure it out.

David: Yeah, I mean. Not even shaders as for like when you work in 3D space when it comes to them because doing a game. Once I saw a broken nose from the developer that he was doing stuff in 3D. I’m looking at this book and it’s like, dude, this is in another language. I don’t even know what’s happening here. And he tried to explain to me what he was working on. It’s like stop, there is no point, I don’t want to know. It’s like enjoy, have fun. I have no clue what’s happening so, respect for people who do games because it is. I mean, like when you’re doing like a webpage, or even on the (?), or a difficult app it’s just coded crunch numbers to produce different numbers that you can maybe understand. To explain them in a pretty way, right? When you do 3D games, it is just something so crazy and different that you need to be very good at math at least.

Fr. Robert: Right, right. Lou, let me come back to you now then. Do you see the division? Again, I’m gonna refer to this a lot as a lead developer as someone who’s actually in charge of projects. Do you sometimes get programmers who you say, you know what, I think you’ve got more of a brain for that division? Instead of business software or you do really well with math. You don’t do really well with these logic tries. Does that happen a lot in the real programming world or do people sort of come in every way?

Lou: Its tough, yeah it does happen. When people come in and we’re to be doing web apps or something, and they’re this really good at native development. You know, they’ll do bugging, low level type things. Then they’ll be forced to do like a JavaScript application. ( laughs) And that will sometimes be enough to force people to go to other divisions. But sometimes it does happen where you just see their skills being so deep in one area. You want them to take advantage of them. So you give them that recommendation, “Maybe this isn’t the best place for you. Maybe you need to shift to someplace else.” But most people, especially people on my team. I have all levels of skill and some of them, like I said will be able to do low level. Then we’ll be able to you know, jump on the web or angora mobile development type stuff because they kinda wanna get on, I wouldn’t say bandwagon. But kinda get on what the new trends are and they like to do that to make them more versatile. So it’s really dependent on the person too.

Fr. Robert: David, let me ask you this. This is a question that’s getting bounced around the chat room quite a bit. People are asking you for your favorite language. We normally save that question for the end of the episode. But, I think it works really well here, especially since you are so self-taught. Since you are so focused on problem solving. Is there a language that you default to? And why?

David: Hmm, I was thinking about this question before because you asked me to think about it. I don’t default to anything. Like, let’s say if I have an idea, I normally would like if I exclude for the MAC. I just do whatever to make it happen I’m not too particular. I hate bash for example, I don’t understand bash. It’s like uh, black magic. I don’t know why. My favorite language would be, my initial would be PHP for its simplicity. I would say, but then thinking for me at least it’s not more about the language anymore. It’s about the frameworks and the API’s that go with it and you’re using every day. Or the language more or less I like, are the ones that are similar to each other. Of course, there are languages like Java or PHP you can basically do whatever you want. I would say for me it’s way more important to have like language that does the job the right way. Please make a window pop up in a way that makes it, for me as simple as possible. I don’t want to dig in and try to figure out how to does this or that. For me, its whatever I have on hand and, yeah. I don’t know if this is an answer or not, I’m not sure.

Lou: So David, you’ve had many different jobs in many different areas even marketing. Do you think that these experiences have helped you build maybe better customer centric or user centric software from that perspective?

David: Being a developer, when I was working at this company where I did a port from a Windows Mobile app for Android and at that time I was working with another developer, which were way smarter than me. I learned a lot; how to develop, how to do it the right way, how to write beautiful code, how to make sure everything is nice and perfect. Also I learned how to manage a little bit of memory especially on Android when at that time you only had 16MB of space.

Lou: Right.

David: Which was pretty fun, (chuckles) an interesting experience. Especially when we did a lot of taking photos with the camera. We got to realize two things, like, first you realize from this side. You don’t have to go to a university, you don’t have to go somewhere to be a developer, right. You can be self-taught and still be decent and basically the interesting thing is. If he wasn’t able to solve a problem, I was able to solve it for him because I didn’t have this notion on how to solve a problem. Vice versa, when I had an issue he would come to me and say this is pretty simple this is how you solve this kind of problem. Because this is what the university taught him and he was able to do that, right. It was interesting because it was a mix of two different types of people. I will never be as good as he is because for sure, he had this mindset like he was thinking like the machine. I was more creative and I wanted a layer of extraction on top, right. And that’s why I decided that I prefer to know how to code and I prefer to manage a project and I prefer to take a big problem, cut it down to small pieces, make sure that I give that piece to the right person and I know that this guy is good at whatever and this guy is good at this thing. So I can motivate them to make something great. So, yeah.

Fr. Robert: We’re speaking with David Gatti; he is the co-founder NV Drones. He is a programming journeyman self-taught guru really. We’ll get back to him, he’s gonna tell us about how he got into creating software for autonomous vehicles. But before we do that, let’s go ahead and thank the first sponsor of Coding 101. Now, let me ask you. When you finish coding your perfect app, your earth shattering service. The next big thing. What are you going to do with it? In the old way we would buy our own servers and we would rent our own space and kolos. We would spend up all the software, the operating system, the surrounding support services that we need to get it up and running. To stand up, to maybe sandbox it before we open it up to the public. It took a lot of time and honestly it took a lot of money. Well, we don’t have to do that anymore. We don’t live in that world where I need to buy bare iron because instead, I can just go to DigitalOcean. DigitalOcean is the place to go whether you are an experienced code warrior or just getting started. They give you flexible, reliable and affordable hosting. They provide developers with droplets. These are virtual private servers and you can customize them quickly so that they can host websites, webapps, production applications, personal projects, virtual desktops. Pretty much anything else you can think of with full root access. That’s right folks full root access, you get to decide exactly how your virtual machine, your droplet works. A DigitalOcean is both for developers, we use them here at TWiT and choose by over 400,000s of them. And for us we them to send up betas. If we want to see how a service is going to handle actual public traffic or people will probe it for weaknesses in its API. You get to deploy, configure your droplets via streamlined control panel or a simple API. That lets you choose your own OS. Ubuntu, CentOS, Dabian, Fedora, CoreOS, FreeBSD. Whatever you want, you can get in your droplet. A one click install allows you to quickly deploy apps like Django, DOC or Drupal, Lab Kit, Lab Media, WikiKno, Node .JS, WordPress, Ghost, Magneto, ownCloud, Rubion Rales and more. If you need a framework it’s just a click away. They build all they’re servers with xCore processors, dedicated ECC RAM and raid SSD and all servers can have up to 20 CPUs 64GB of RAM and 640GB of SSD storage space. In other words, you can start small and then scale it up. Now that’s one of the things I really like, they’ve got this one click management panel that lets you tell them exactly how many resources you need. So you can start small and as your traffic grows, you just have to grow it, without having to worry about the infrastructure behind it. They also give you auto backups and snapshots that you can clone, deploy and resize. And they’ve got full featured DNS management to help you manage your domains. And they even let you use dedicated IPs. They give you web console access with HTML 5, plus SSH, SFTP, KVMVNC for virtual desktops and it’s so easy to get started. You can start an SSD cloud server in as little as 55 seconds. Folks what are you waiting for? DigitalOcean has incredibly affordable and straight forward prices with no surprises when you get your bill. They start at just $5.00 per month and they also have hourly pricing available, in case you wanna go that route. It starts at less than just a penny per hour. But we’re gonna make it so that it’s easy for you to get started today. That’s right, just visit and create an account. Once you create an account and confirm your email and account information. You can go to the billing section and enter the promo code C101 for a free $10.00 credit. That’s right, you can start your first couple of hours, your first server, your first service without paying a dime. That’s plenty to get started and explore what DigitalOcean can do for you. That and once you sign up enter the code C101 in the billing section for a $10.00 credit. We thank DigitalOcean for their support, of Coding 101. We’re speaking with David Gatti from NV Drones, he explained to us how he fell from one programming challenge to the next. Learning as he went, until he got where he is today and today he is with NV Drones. David what is the philosophy behind NV Drones? Why create this company?

David:> From here it’s pretty simple because basically we created this company to bring simple tools for developers and professionals to create drone solutions. The vision is to create simple tools and this is what we’re trying to do. This is our vision and this. Every product that we are going to provide has this simplicity mind, right. Because similarity games and 3D space if you want to build a drone solution, like flying, it’s in 3D space and that’s enough of a challenge in itself as you should know. That should be done where you’re sitting and you’re solving a problem instead of trying to figure out how can I make the drone fly from point A to point B. Then we also wanted to allow people to connect different sensors to the drones so they can take advantage of the surrounding of the drone.

Fr. Robert: Now I have here, this is an Alien X450 class that we show people how to build one of our other shows that we do called KnowHow. It’s a very basic Quadcopter, it’s got four motors, four ESCs, it’s got a Flight controller. This is a Nase32 controller in here. So, it’s not super advanced but it’s also plenty powerful enough to keep this thing flying and I can hookup sensors like GPS, it’s got a Magnetometer, it’s got Accelerometers.

David: Right.

Fr. Robert: My question would be, why would I wanna go with something like NV Drones and have a special board that connects to my flight controller rather than just getting a better flight controller?

David: Right, you can fly a drone like, manual only and have fun, take some footage or make some movies or take photos or whatever. Our idea is to make the drones fly autonomously so there are no humans involved. Unless you count the code that the human has to write. This is what we do just for those people that want to make the drone do something on its own. Basically a robot.

Fr. Robert: So you’re actually allowing people to create drones in the truest sense. They are autonomous vehicles. So once you send it on its way. It can accomplish its tasks without any human interaction.

David: Yeah, the basic example is delivery service, of course they can grow lots of millions and millions of dollars. Their project, with our solution you can for example with a proto-type working you can mix. You can have some that have a service board, have GPS, have Sonar and pick up something and deliver it somewhere else. This is what you’re seeing here right now on the video. Now it’s pretty basic with the LED light blinking and it’s too bad we don’t have the sound because you would hear the motor spinning on and off. Because we are arming every two seconds, the drone. With very few lines of code, well basically its one line of code. The LED is just to show how it works on our platform.

Fr. Robert: Now let’s, if you could go to the maker fairs video Zak. Let’s show them what the actual solution looks like. It’s a board, it’s a development kit that can be plugged into any Flight controller. I can plug this into an incredibly cheap KK2.1.5 board and all the smarts live on this.

David: Yes, and you see BPWM and PPM. These are the cords that you connect the flight controller to so if the flight controller supports those two types of signals. It’s like 90% of the flight controllers on the market will work no problem. The thing to notice is once you connect it to the flight controller basically the drone becomes invisible to you. Once you write your app and you, for example from a smaller drone you want to go to a bigger one. You can just disconnect the board, connect it to the second drone and your app will just work. Because all the sensors and everything is connected to our board. So basically we are hardware agnostic and we don’t care how big the drone is or what kind of flight controller you are using. The only thing you have to remember is setup the flight controller first and calibrate it. Once you do that, you can do anything.

Fr. Robert: Hands off, hands off, and you design that development kit so that it uses industry standard communications so I can take a GPS module that I use with my multi WI controller and I can plug it into this. I can take signal lights that I’m using with my Arduino powered controller and plug it into this.

David: Right.

Fr. Robert: And then it’s just coding, that’s all I have to worry about.

David: Yes,

Fr. Robert: If you can program an Arduino, you can program this kit.

David: Yeah, basically yeah. So, that kit is not run by me. I’m not that awesome, but for example, when it comes to Arduino. If you can run an Arduino, you can use our kit to run a drone autonomously and we’re not just supporting Arduino also JavaScript and Java. Which means you will be able to write an app running on your bike or PC and Java is for those that would like to create a smartphone app using Android.

Fr. Robert: Lets go and take a look at what the code looks like in your developer environment. If you could go ahead and bring up that first picture. This is what I believe you would see in a regular Arduino sketch.

David: Yes,

Fr. Robert: So this.

David: There is a very important thing of course you have the method of uh, the only ones. And then you have the loop, right. So the loop for those that don’t know it’s like it’s just basically running a loop. I don’t remember how many times on the Arduino board but its constantly looping, right. This code was created in a way that’s not blocking the loop. Because the example to make the LED flash uses this method which actually stops the loop for like one second or whatever you set it up to, right. So if you do it that way when you create an app for your drone where the drone will just basically stop working right. Because it’s not executing code anymore. That’s why there is this “if” statement which checks if enough time has passed. And if it did then you can make the LED flash, so this is a very important thing. Otherwise the drone would start doing crazy things.

Fr. Robert: Actually, our audience had an experience with this. We did a Steampunk Arduino clock with Mark Smith, uh Smitty Halibut. He’s an acquaintance of ours, he’s in the building space at deathcon every year. He got around this by using, he used an RTC module, a real time clock in order to sync up the software. But yeah, this works too. If you know how many cycles its gonna go that…

David: The beginning, it shows the time and then it’s the updated time to make sure that enough time has passed. So you have like, the now which is like, and the time after the “if” passed and then you get the time plus the seconds that you want to check. If that matches, then you enter the “if” statement and you run the code inside. So basically the loop is constantly running which is very important and you will be able to see how important it is in the next slide. So this is basically the same example, but what we did here is added the library at the beginning the “Drone.h”. This is first power library and then we initiate drone and we say the serial port. If you’re using an Arduino Mega you can use the serial port one or if you’re using an Arduino Uno, you have a software serial. Then you just use the two pins you use to connect to speak to, right. And for example you like pin mod, the only difference you have here is you add “drone.pinmode” and basically this is how you convert for just Arduino to make it work on our board. The difference is at the top right there you have to initialize the drone and you have to set the flight mode. Then in the “if” statement from before, we are just calling “drone.arm” right. And that’s it, that how you arm the drone. You don’t have to know how to communicate with the drone or whatever protocol to utilize and what type of commands you have to use. In which order and what not. Everything is done by our SDK so you just have this simple, simple API that you can focus on building your own app. Then when you’re ready you just call the simple API to do something. In this case its arming/disarming the drone or you can say I accept order to twenty and you can create a loop and set the drone to every like, five steps. It’s from one to one hundred, sorry from zero to one hundred. You can go, you know, five, ten, fifteen, twenty, twenty-five so the drone can slowly take off. If you’re using a sonar you can detect if the drone is flying one meter in the air so it stops going up, right. This is how basically you code and I think you can think of it like when you see those tiny robots. When they you know, drive and when they reach the wall they will change direction because they have sonar. Basically you can do the same thing with a drone and I hope that’s exciting.

Lou: David, real quick, I’m not necessarily 100% with coding drones and flight controllers. How is this extra module different than coding directly for the flight controller?

David: Right, so you don’t have to know how to code for the flight controller that’s the whole point of our platform. Right now if you want to code something for a drone, you can buy a (?) which means you can change the (?) of that flight controller, but it’s more expensive. And you have to write stuff in C and you have to understand some Linux code because the code is open source. There are hundreds of flying that you have to analyze and understand. The barrier of entry for like, basically anybody that’s not experiencing this stuff it’s like, almost impossible. Another thing that’s important TGI, and they release an SDK for the platform and another has an SDK for their platform. In those cases, you only have, you’re like limited to their hardware. You cannot use their SDK on a drone that you built and vice versa. Our platform, we don’t care about that. You can connect the board to a flight controller that is controlling a TGI, you can control a 3D Robotic drone, you can build your own drone and you can buy a drone that was built by another company. As I said before, once you connect our board to the flight controller you only have to care about using our SDK. That make sense?

Fr. Robert: One of the things I really like about your approach is your letting the flight controller fly the craft. So it keeps it’s in the air, it keeps it leveled, it keeps it from falling out of the sky. What you’ve done is you’ve separated the mission computer from the flight computer. The flight computer just has to keep it from crashing and the mission computer actually gives its instructions.

David: Basically, yeah that’s it and that’s why you have to like, setup the flight controller. We are not doing it for you so you have to figure out the flight mode. Which you’re setting in your flight controller, it’s gonna be that value from zero to one hundred. So you instead you the app provided for the controller and setup everything. And once you do that basically the flight controller just makes the drone stable and not fall from the sky and everything else is done by us.

Fr. Robert: Alright, I’m gonna tease the audience a little bit here because they’ve been hearing a lot of the philosophy of the technology. Why you wanna do it this way, how it actually works. But Zach go ahead and play the autonomous flight video to show, what the NV Drones development kit actually will let them do in real life. Can you explain what we’re seeing here David?

David: Yes, basically this is, well it’d be hard to call it an SDK it is basically code put together to work on the autopilot because if you want to build an autopilot the point of the autopilot is like, I want to turn easily like, drone flight to this location in a straight line and the drone will rotate and keep speed, orientation and everything else on its own. And what we’re seeing here is the drone is going left and right on its own and you’re using the camera on the Android phone to read the tag and based on the tag, the app knows where the drone is. So it can lock in position and try to make the drone stay in the view of the camera. In this case we are also controlling the throttle so it pulls at 100% because we didn’t actually need that part. But the point of having the drone move from left to right and vice versa was for us to work on the autopilot and also to show that the java SDK actually works.

Fr. Robert: Speaking with David Gatti, the co-founder of NV Drones we’re gonna be right back. We gonna actually ask him, what kind of programming expertise, what kind of thought process logic try gets put into an autonomous flight model. But before we do that, let’s talk a moment to thank the second sponsor in this episode of, Coding 101. Now, maybe you make a successful app, maybe you make a service that many people want to use, maybe you make the next big great thing. At some point, you’re gonna have to monetize it. That’s just how the world works today. We all wanna make great things that other people use but if you don’t have any way to support it. Well, then it’s not gonna live. Now you could cook your own solution. This is what we used to do in the earlier days of the internet. You would contact credit card processor or some kind of payment service. Then you would bodge your way into the API and maybe figure out a way to integrate it with your current service or website, without making it look horrible. You could do all that and then run the risk of your code not being secure of transactions getting lost or worst case scenario someone breaking into your backend and figuring out all the personal information for your customers. Yeah, you could go through that. Or you could just use Braintree. Braintree is the best, the easiest way to get payments on your service, your website and not have the risk. Now, Braintree is code, for easy online payments. If you’re building a mobile app, if you’re building a website, if you’re searching for a simple payment solution. You need look no further, the Braintree, v. zero SDK well, they make it easy. They offer multi mobile payment types. You can start accepting PayPal, Apple Pay, bitcoin, venom, cards and more. All with a single integration that’s only ten lines long. That’s right, ten lines and you get access to everything Braintree has to offer. Braintree will give you simple secure payments. Code that you can integrate in minutes. Its secure because they take care of all the security, the tokenized security that doesn’t put you or your company at risk. Now if you’re a developer, they got you. They understand that you’ve had it with APIs that are not well documented. That’s not Braintree, you don’t have to worry about taking days to integrate your payments because Braintree gives you full documentation. You can have it up and running in minutes with just those ten lines of code. And if you have trouble they’ll actually have one of the representatives sit with you and guide you through the integration. The Braintree code supports Android, iOS and JavaScript clients. They SDKs in seven languages from .NET, JS, Java, Pearl, PHP, python and Ruby. They have elegant code with clear documentation and again I can’t stress enough, it’s just ten lines of code. Plus, they offer you a sandbox so you can test out the integration and the security before you go live. It’s really a no brainer, if you want to accept payments on the internet today and you’re not using Braintree. Well, you’re just not using the best. Braintree gives you an easy way to accept multiple payments with one integration. They give you quick knowledge developer support if you have any questions. They let you start accepting Apple Pay, PayPal, Bitcoin, venmo cards and whatever is next. Are you out of reasons yet? To not use Braintree? You should be, use their v. zero SDK set it up right now in just a couple of minutes and be done with it. For more and your first $50,000.00 in transactions fee free That’s, and we thank Braintree for their support, of Coding 101. We’re speaking with David Gatti, the co-founder of NV Drones. He just showed us a demonstration of autonomous flight of what their control is. The development board will actually do. Now David, so, we understand now how this works. You’ve got the flight controller keeping the craft in the air. Its connected to your development board. You’ve coded the development board to give instructions to the flight controller based on what it receives from its sensors. The camera at the front or from the Android phone that’s actually looking at the drone. Tell me, what kinda logic goes into here. How did you actually make this work?

David: So, we have this notion of a ground station which means, a ground station could be an Arduino board, it can be a PC or it can be a smartphone, right. We are using XP for wireless communication so you need one XP connected to the ground station and the another XP connected to the tower board, the extender. So with an XP 900MHZ you get six miles of range in a straight line and the latency is around two milliseconds round trip and that’s why we choose the (?) because that’s like you get a lot of range and the connection is very solid. That’s it, that’s how we communicate wirelessly with the drone and we can do stuff like autonomously and of course all the data from the sensors are sent back to the ground station. Which is basically your app so you can take all that data and create what is the next step for the drone to take. So that is the logic here.

Fr. Robert: You know, one of the amazing things of this emerging field and it really is an emerging field. We haven’t seen even a fraction of you’re gonna see with autonomous vehicles. Is they can take a solution like the NV Drones development kit and they could scale it up. This could as easily be controlling a forty-foot-long Quad copter, a forty-foot-long mutli rooter craft as it is that small two fifty class Quad copter. That’s kind of mind boggling because the logic stays the same even as you get bigger or smaller.

David: Exactly, and that’s the beauty of the system. We are truly like, hardware agnostic and that’s the cool part. But yeah, you can make a prototype with a lightning drone and, you know, work it from there. For example, when I was testing out the first sonar system. I’d build a prototype with an app using Arduino and I was just logging the values for the throttle making the drones stay like one meter in the air, right. Once I was comfortable that the data was correct and I am sending the right commands. I would just add the library, I’d replace all the Arduino methods with like, the name of the object that I just created. Basically after that you can test it out on something that is actually real. In your office or your back yard and once you’re ready. You can just switch to your final design and take it from there.

Fr. Robert: Now David, we are starting to run out of time so I have to shift into that part of that wild card episodes. Where were start to extract your knowledge and give it to our audience, because they wanna know the secrets of those people who have succeeded, in this wonderful world of programming. One of the questions that was bouncing around from JJthe4884, he’s one of our regular chatters. He wanted to know, first you already told us what languages you like, but also, what resources would you suggest for someone who would want to get into this field? Let’s say they’re starting off programming, they’re not exactly sure where they’re passions lye. But they kinda like the fact that you’re combining software and hardware. What advice would you want to give to somebody like that?

David: I would start with YouTube, there are a lot of people out there that are actually pretty good at teaching others and conveying ideas. I for example had a friend showing me how to write an app for MAC and iOS. But once I caught the basic idea how everything works I found a very good channel on YouTube where the guy was explaining things in a way that I was able to understand, and I took it from there. Also, I’m a very visual person, I don’t like tutorials that are written. I need to see what the person is actually doing because most of the time they will like miss something. Or they won’t mention something for them that is obvious and as for you, as a newbie, it’s not. So I would start with videos because you are making sure that when you finish a tutorial everything should work. Because if you use text based tutorials you may have missed something, maybe the person explained something incorrectly. Then you’re lost and frustrated and you don’t want to do it anymore. So I would go with videos.

Fr. Robert: Good call, good call, what about people who specifically want to start playing with embedded processors. Things like microprocessors, in fact at Maker Fair, where I did a. By the way, if you haven’t seen the maker fair segment that we did with NV Drones. Go to KnowHow, I believe its episode one hundred and forty-four or forty-three. Watch it to see exactly what they’re talking about, so you can see. It’s kind of like the spirit of the maker. But on the other side of the fairgrounds David, they had at the Atmail Pavilion and they had twelve different partners who were using these microprocessors in different ways. And it’s fascinating people they all come out of the same programming language, they all come out of the same hardware. If they wanted to start that and let’s say they wanted to get your dev kit. What would they do?

David: So the board they don’t have access to and that’s the point, you don’t need to know how the board works. You just need to send API codes and we take it from there. How to start working with micro controllers and CPUs itself I would say, that’s a tough one. Because actually that’s the whole problem like you have to write everything in C and the level of. So choose for example, optmode(?) it’s like easier to start. But in the previous company that I worked for we used this guy shaped controller that was using Bluetooth. An electronic engineer there was actually using SD chips, way smaller, way cheaper but basically naked. There is no code there is nothing, of course SD will provide something. But if you want something very specific you have to write everything for yourself from scratch. And, I must say, that’s a tough one to start. I would say start with Arduino get used to like how to stitch the front electronics together, then design your own electronic board so you can combine all the different parts into one part. Learn how electronics work, what a resistor, a transistor, what is a compositor and all those thing. Then take it from there.

Fr. Robert: Lou, David spoke about frameworks, how he thought frameworks were actually more important even than languages that you choose. An interesting development on your side is that Microsoft is actually releasing a new module for Visual Studio to ease the programming of Arduino devices.

Lou: That’s right, yeah, it’s a plugin for Visual Studio that you can actually build, sketch code that you write is fully compatible with the Arduino IDE and the Atmail Studio and it actually supports other versions as well intel Edison and Galileo platforms. It lets you code and bug and write examples and do all that stuff right from Visual Studio. So it’s actually very powerful especially if you’re already used to the Visual Studio kind of development environment. So, and there’s multiple different ways, you can actually do it over USB or Wi-Fi to debug so it’s very similar to being able to use the Arduino IDE. But again you get the kinda power of Visual Studio.

Fr. Robert: David, again thank you for being here. It’s been a pleasure, it’s been an honor to have you speak again about the intersection of electronic engineering and computer science. Could you please, take your time and tell people where they can find NV Drones, tell them where they can find your solutions, tell them where they can find your work. So that they can maybe get their own developing kit and be ready for when you come back.

David: Yeah, so we have a developer website which is at we are excepting right now pre-orders for our boards so if you want to be one of the first to receive it. You can just go right now and pre-order your board and you can also see a get started guide and you can check the communication for Arduino to see what type of methods you are going to get from us. Once we are ready and we have something solid, we for sure will show you on Coding 101 how to make something.

Fr. Robert: Fantastic, that David Gatti, the co-founder of NV Drones and an all-around journeyman for programming and computers. We thank you for being on Coding 101.

Lou: Thanks David.

David: Thank you very much.

Fr. Robert: Now I’m afraid we’ve reached the end of our episode here. We of course want to thank our, oh gosh Lou, you’re going to have to help me. What was it, super-duper king ka me ha me ha mega, mega permanent co-host, kung fu hero co-host.

Lou: laughs

Fr. Robert: Lou Maresca, Lou, where can people find you when they wanna start searching for you around the net?

Lou: Well you can always find me on Twitter, @LouMM and of course on my work from Microsoft

Fr. Robert: Thank you very much, now folks remember you can always find all of our episodes on our show page. Just go to or coding101, it all goes to the same place. You’ll be able to find not just our back episodes, so that you can download modules if say you wanna learn say RubianRails or if you wanna learn C# or you wanna learn about PHP. We’ve got those modules from the past, but you’ll also find a little bit of a dropdown so you can automatically get Coding 101 downloaded into your device of choice. Audio, Video, High Definition Video, PC, MAC, iOS, Android. It doesn’t matter, we’ve got a version for you. Because well, we love you. Also because we love you, you can find this show mostly live every Monday at 2:30 PM Pacific time. Just go to and we will have some form of chat room at with which you can interact with the host as we go along. Finally, don’t forget that we can be found on my Twitter page. Just go to When you go there you’ll find future topics for Coding 101, for KnowHow, for Before You Buy, for This Week in Enterprise Tech and even for New Screen Savers. That’s right folks, we wanna give you the information you need in order to find out what’s going on, here at TWiT tv. Lastly I want to thank everyone who makes this show possible of course to Lou, my fantastic co-host, Lisa and Leo who let me continue doing this show and to my marvelous TD, Zach. That’s right Eskimo Zach. I don’t think he has a camera on himself but he does have a mic. Zach can you please tell folks where they can find you. If they want to see what else, you do.

Zachary: What else I do is on Twitter, and you can follow me @eskimozach. That Zach with an H. Thank you Padre.

Fr. Robert: Thanks for watching, I’m Fr. Robert Ballecer the digital jesuit. This has been Coding 101. End of line!

All Transcripts posts