S02E19 1h 03mSeason 2

Episode Transcription
Hello everyone and welcome to THE .NET Core podcast - the only podcast which is devoted to:
- .NET Core
- ASP.NET Core
- EF Core
- SignalR
and not forgetting The .NET Core community, itself.
I am your host, Jamie “GaProgMan” Taylor, and this is Episode 51: Creating an Iot Hand with Clifford Aguis. In this episode I interviewed Clifford about his experience in technology, a little about being a pilot, creating an IoT hand completely from scratch (from 3D printing the moving parts to writing the software for the Arduino boards and the accompanying Xamarin app), and what his hopes for the future of the project are.
One thing to note: this episode was recorded at NDC London 2020, as such the audio is a little less polished than I would have liked, and is a little rough at times but that was entirely down to my post production skills. Remember that the full transcription is available at the website, which is available at dotnetcore.show. The transcription was produced in collaboration with Productivity in Tech.
I would also like to thank both Carl Franklin and Richard Campbell for allowing me to use their recording space: The Fishbowl for this interview and the interview included in episode 48 (with Dylan Beattie).
So let’s sit back, open up a terminal, type in dotnet new podcast and let the show begin.
The following is a machine transcription, as such there may be subtle errors. If you would like to help to fix this transcription, please see this GitHub repository
Transcription
Jamie
Cliff
Jamie
Some of the listeners may know a little bit about because I’ve talked a little bit with a connection that we share - Jim Bennett - about the IoT hand that you going to show off here. But could you get basically give us a brief introduction so that people know who you are, where you’re coming from, that kind of thing?
Cliff
Jamie
Cliff
A few years after flying, it was early hour of the morning, jet-lagged somewhere in the world - I can’t remember where it was, probably New York or somewhere like that - and I was bored. There was nothing to do. There was no nothing on TV. I was literally bored, and I got my laptop out, and just started faffing around. And I was like, “you know what? I can get back into doing this software lark. It can’t be that much different from programming robots and things like this.” And I got back into it. I now do - besides flying - do freelance .NET development, mostly in Xamarin and the IoT space, but I do the odd website and the likes here and there. And that’s me.
As for handy, the hand project: that come about back in, I think it was late 2016. There was news reports of a Dad that had 3D printed an arm for his daughter. On the day I went to school to pick up my two sons and Sharon, Kaden’s mum - Kayden is who I’m building the arm for - was standing there. She was like, “Cliff, you seen the news about the Dad whose 3D printed this arm?” And I was like, “Yeah, yeah I have actually.” And she said, “could you make Kayden one? You’ve got 3D printer, haven’t you?” Sharon’s not one of these people you say “no” to, so I said, “Yeah, course I can.” ANd off I went and fired up the 3D printer, and off we go.
Give a bit of back story to Kayden: Kayden is now 15 years old - you can do the maths - he’s now 15 years old. He was born with no left forearm, so he’s got little stump from his elbow on his left side. And the middle two fingers on his right hand are missing. Just a birth defect, it’s not just him. There’s many thousands of people around the world born like this, or more commonly they have amputations due to things like meningitis and the likes.
So I went away and did some Googling, some searching, and I found the projects from these reports. The design was open source on GitHub, so I download it and had a go at printing it. And the printer I had at the time was was woefully inadequate. And so, as all good developers, I went and bought a new one. So I got a Prusa Mark 3 printer, which is awesome. I think it cost me about £850 at the time, they’re now around £600, they’re awesome printers. And started printing.
I printed out early designs, and they were OK but they were biomechanical; there’s no electronics in them. It was it worked similar to the NHS claw that Kayden already had, which is solid forearm and then basically a metal claw on the end, which he activates by moving his other shoulder. He moves his right shoulder backwards and forwards, and a bit of cable across the back of the shoulders and opens and closes the claw; which works. And he could do things but was trying to make it better.
So we 3D printed this, and it works in same guise, but it was a five-fingered hand as opposed to claw. I gave it to Kayden and said, “here Kayden, try this.” He tried it for less than five minutes and he said, “I hate it. It’s not good. It’s horrible, I’m going back to my claw”. And it, kind of, got chucked away and, well it lived in a box of broken dreams on the bench.
So yeah, that’s kind of where the project started, and it’s moved on somewhat from there.
Jamie
Cliff
Jamie
Cliff
Jamie
Like, what?
Cliff
My Prusa I3 Printer is 3 or 4 years old now, and the new Mini that they just bought out - which is a mini version of what I have - is $300. I mean it[’ll] print as good as the I3, it’s bigger brother, and it’s an awesome printer. 3D printers are, it’s basically just like an inkjet printer: it prints out a page, and it moves up the z-axis by whatever you set it to - normally 0.1 or 0.2 of a millimeter - and it prints the next sheet of paper. And it just keeps doing that with melted plastic, and eventually you end up with a 3D object. So, yeah, some prints take, as you say, 20-30 minutes. Parts of the hands, like the palm section of the hands, is about a 9-hour print, and then it takes about 20 minutes to clean up and take out all the support material [with a] pair of pliers and break it all out, which is quite therapeutic, actually.
I mean all the plastic, all the material that’s used to make the hands from the wrist upwards: it costs about £6. So the material is really, really cheap. You buy it in weight, so you by a spool which weighs a kilo, and one spool is about £25-£30 depending subtleties in the material. And yeah, that print 2.5, nearly three hands.
So you can talk, it is not a lot of money goes into 3D printing. So it brings the cost base down dramatically. And that’s one of the reasons behind the project: is the fact that, you know, the NHS will provide you with an arm and a claw, and every few months or every 6 to 8 months ago, you have to go back to the hospital and they remould your prosthetic limb because obviously you grow - that’s what Children tend to do. And then you get to a new one, and it’s too big because they make it too big. And as the saying goes. “don’t worry, you’ll grow into it.” And you grown into, and a few months later it’s now too small, he goes back and gets another one.
This, you know, the socket that we connect to Kayden is 80 pence worth of plastic, and It takes about an hour and 20 minutes to print. So when he says, “oh, this one’s a bit tight Cliff,” you click print, “yup, one minute mate. go and have a cup of tea,” and we’ll have some biscuits and tea and wait for it come out and, “there you go, there’s a new one.” So the turnaround time it quite quick.
My aim of the project was to move it on. I love IoT, .NET and Xamarin. So I started looking and think to myself, “I’m kind of invested in this project now. What to do next?” The biomechanical arm didn’t work. So I did some more searcing. There’s a team called Open Bionics that were developing open source, under the Creative Commons license, a hand which was literally the wrist upwards. Fantastic device had a lot of open source people putting into project on GitHub - it’s still there on GitHub. And yeah they had this all open source. Even the electronics, how to assemble it, and everything else.
So I took that project, looked it and started building it. But things that the motors, the electronics, the sensors, they were selling on a store, but they never had them in stock. It was never there. So, you know, I waited 3 or 4 months for the controller board, and it just “out stock,” “out of stock,” “out of stock”. [So I thought] “Fine. right well, I know how do electronics. I know how to do software. I’ll make my own.” So I searched around, found my favourite store: AdaFruit. And looked at their boards and they had a Bluetooth - it’s called BlueFruit M0 AdaFruit board - which works on the AVR processors. So I got one of those, got their motor controller board, wired it all up on my bench, and literally an hour later I was moving the motors back forwards.
Because the libraries AdaFruit put out are awesome, they’re fantastic. Literally downloaded it,
#nclude that, #include this, open(), close() and had the motors, and thus the hand, moving backwards to forwards. I was like, “Excellent. This is great.” And those boards, instead of the board from Open Bionics which was channelled £250 - when they had it in stock - those boards where I think the main microcontroller board was $26, and the motor controller board was $19. So [if] you to convert that into pounds, and it’s not a lot.Jamie
Cliff
Fun story was the fact that yeah, I accidentally blew up one the boards and turned into a smoke generating machine a before a day before giving the talk in NDC Last year. But the good thing is that these boards available on Amazon. So literally Amazon-man was at the door next day delivering me a new board and saved talk. Which is just good, but it means again that I’ve gone with a board that is around the world. You can get it here. They’re made in New York, but you can get them anywhere in the world.
And then I start thinking, “well, you know what? I fly planes around the world.” You know, I’ve made this prosthetic arm for Kayden, and you know it’s still work in progress, there’s still some bugs to iron out, some issues - mainly around connecting to him and getting viable sensor readings. The work: the natural Mechanics of the hand work brilliantly, but the actual connections to Kayden is that bit where we still playing, and trying to work out in the best way of doing it. But then it’s like you can buy a printer for £300, you can buy the spool of plastic, and buy the electronics. The most expensive part inside the hand is motors, they’re about $60-$70 each - made by Actuonix, they’re little, mini linear actuators. You can build this thing, and you could probably build the whole hand without printer for less than £5. With a printer, you talking £800-£900. So less than £1000, you can build an arm. That’s your first arm. Your next arm goes down in price. So there’s no reason why - all this is on my GitHub, it’s all open source. You can put the links in the show notes,
And the idea is: I can fly around the world, and if there’s somewhere I go to on the aircraft that I fly, that actually has a little centre that wants to print these for local Children or even adults - just size up a bit. Then, yeah, I’ll happily go along and help them, show them how to build it. It’s not difficult.
The problems had with early earlier version of the soldering - you needed to be very dexterous with a soldering iron - I’ve now managed to remove those by using different connectors and finding ways of doing it differently. And again, I’m trying to make this a simple cost-effective, as cheap as possible.
So yeah, I mean, Open bionics, hats off to them. They made an amazing design. They’ve moved on, they now have a they’ve closed their store and they don’t iterate the open-source GitHub anymore. I think is last commit was late 2017. They now have a company that are run. And for reasons known to them, they are running the company and selling these commercially. I don’t intend to do that. I intend to, whatever changes I’ve made to the hands to fit the electronics, the motors: the changes that I’ve done to iterate the design is all on GitHub. Download it, use it, don’t use it. Do a PR - if you see something I have done wrong in my coat, do a PR.
Jamie
Cliff
Jamie
Cliff
Jamie
Cliff
It’s a project, my side kind of project that I popped back to and that. But the kids you involved, my kids. The community where I live are all interest in the project. You know, it’s kind of, you know, when Kayden wears it and takes it to school people are interested.
Cliff
Jamie
Cliff
And so for him, he wanted it to look different so that people can see that is different. It’s not real. It is a biomechanical arm, and that for him was very important. Some of the things that Kayden has come back, you know, and talked about is like, “I don’t like this.” And it’s like, “okay, let’s change it. Let’s fix it. What can we do to make no different?” So, yeah, it’s all coming around like this.
And it’s little things like, you know, OpenBionics use a big - in their design - use a big, the motor is powered from 12 volts; so they use a big RC battery out of a radio-controlled car. It’s big and heavy, but you need a specialist charger to charge it. You need, you know, all the things to power up your arm. And I looked at it and thought to myself, “my board runs on 3.3 volts. So, you know, that’s quite low power,” with 12 volts of the motors. And I thought to myself, “how can I? I want to be able to do this where, actually, I’m not [using] a big battery pack,” and I had some Anker power bricks. And I thought to myself, “could I? Well, why not?”
So I did some research, and Pololu make these power boards, and they do a step-up board that steps up from, you know, 3-4-5-6 volts up to 12 volts; and it’s a stable DC output. And I was like, “will that work?” So I did some testing: it does. So I now use a normal 5-volt power brick that we all use to charge our mobile phones, and transfer up to 12 volts to power the motors, take the five volts into - it’s five volt tolerant: the board, the AdaFruit board - and power the board.
So now I’ve got - rather than a big, hefty battery - I’ve got a normal USB chargeable battery pack, which is fantastic. Downside is that when Kayden wears his arm to school and his friend’s got a flat battery, he’s “Kayden can you charge my phone.” But there’s ups and downs.
Jamie
Cliff
Jamie
Cliff
You know, you can see on the design I’ve kind of Heath Robinson just stuck in the forearm. You know, that kind of works. There’s other ideas were having about how to do it in a little compartment. But yeah, the idea is the fact that we make it with off the shelf cheap components that Amazon, eBay, Alibaba, wherever, you kind of can shop around the world and get it delivered to you.
So that got the arm working, and then obviously, I had the BlueFruit, which is a Bluetooth enabled board. And it’s like, “okay. So, right, the next step is the fact that a notice with Open Bionics hands and with other companies that produce these is that when you have something that needs to be changed: settings because you don’t use the muscles - or Kaydens’s never used those muscles in the forearm because he’s never had to. He’s now using them to tense, to trigger the action of the sensors. Because they were never used but now he’s using, they’re starting to grow in strength. So now a small movement for him is now a big sensor reading, so his sensors need to be adjusted. Things like the motors over time start to wear down so they don’t move quite as quick, quite as precisely. So you want to change the settings on those as well.
So invariably, it meant a visit back to the prosthetic department and getting, you know, tweaked and adjusted. And I thought to myself, “again, we can fix this.” I do Xamarin development, I can build a mobile app. The advantage of it being Xamarin is the fact that is, you know, again, it’s open-source, Microsoft platform. It means that I could build this app such that it uses the native layer of the device - so Android or iPhone. And the advantage of that is a fact that if some, like Kayden that has no left arm, he’s only got two fingers and a thumb on the other hand, uses the accessibility options in his iPhone quite a lot to make the buttons bigger - that sort of thing.
And it’s like, “well if I do it in Xamarin, I don’t need to worry about how he accesses the phone because Apple take that, and Xamarin just step on top of that, and I’ve got my code running on top of Xamarin, running on top of the iPhone platform,” and the same will work for Android. So the fact that I could do that, you know, the fact that I can access the Bluetooth stack from with the Xamarin meant that I built an app, put it together fairly quickly and had it sending UART commands - so basically serial commands - backwards and forwards from the hand to control the hand.
And it’s like, “well, now we can start to get somewhere.” So things like the fact that the hand has seven grips loaded the memory that it loads from the EEPROM, and those seven grips you cycle through.
So if you think that your hand can only do seven things, and you’ve got to select which one of those seven things you want to do, and if you miss it you have to go back around the circle to get back to where you started again. And invariably miss it a second time again.
Jamie
Cliff
“Yeah but now I want that one and not that one.” And it’s like, “OK. Well, what if I put that into the app?” So in the app, you can select which grip you want enabled at any one time; you go to another part of the app, and you can select the order. You know, “I want in that order, then that one and that one.”
One thing that has been suggested to me but I haven’t put in yet is having grip sets. So you can select, “well this is my set that I’m using for school,” “this is my set that I’m using at scouts,” because he’s quite active in the scouts. “This is something going to use when I’m gaming on my Xbox,” that sort of thing.
Jamie
Cliff
Jamie
Cliff
Jamie
Cliff
Jamie
Cliff
Cliff
Jamie
Cliff
Jamie
Cliff
But it’s kind of, good enough to get him through today and it’s small, lightweight battery that hew can just have a spare in his backpack.
Jamie
Cliff
So I’ve got on my bench, it’s not here at NDC, but on the bench is a demo version of this. Kayden was over last night and was having a tinker and a play to see if we can work out, kind of, some of the subtleties of it. And then within the app I’ve engaged it such that you can change the colours of the hang grips. So they’re primary colours: red, blue, yellow, green - that sort of thing - so when he’s selecting in the grip he can set the LED colour. So he will, over time, learn what he wants it to be. But there may be another child that, you know, hates red. I don’t know.
Jamie
Cliff
Jamie
Cliff
Yeah. And hopefully, as I say, fingers crossed we’ll get to a point where we can have this such that, you know, it’s open-source and everyone can get it. And then hopefully I’d love to see other people downloading and building these. If not, contact me and say, you know, “can you help build one?” I’m more than happy to help anyone.
Jamie
Cliff
The next iteration is that we’re gonna take out the AdaFruit board which is running Arduino C, which is great. It’s fantastic. It’s not the quickest in the world. It does the job, it works, but there’s things where we’re either communicating between the hand and the app, or the hand is working. It’s either-or.
I want to move across. Wilderness Labs have developed am F7 micro board, which is based on the AdaFruit Feather footprint; it’s slightly longer, but it’s the same pinout. Which means it can drop straight into the hand with very little work. And then it’ll run .NET. So I have .NET in the hand, .NET on the phone, and if this machine learning thing comes off I dare say that there’ll.NET in the cloud somewhere running on Azure.
And then we’ll have .NET everywhere. And that isn’t because I need to do it, it’s because I’m invested in this project now. I’m enjoying it and it’s fun and it’s like, “why not? Let’s try it. Let’s see what happens.”
Jamie
Cliff
At the moment - I do have some Wilderness boards - the problem we got the moment is that the Wilderness boards Bluetooth stack isn’t baked. They’re still working on that, I think it’s beta 4 which they’re releasing in - I think it’s March, is their timeline for releasing that - that way I can then start to link the phone and the hand together.
Some of the I2C - which is a serial protocol that the main controller board speaks to the motor controller board - I’ve found some issues there; reported them back to the team. And they’re aware of them, they were things that they knew about, and again, they’re things that they’re going to bug fix in the next beta release. So hopefully from March/April time, we’ll have a board that could do what I need it to do, and then I’ll bake it into Handy. Then we’ll have .NET Everywhere.
This will be awesome
Jamie
Cliff
Jamie
Cliff
Jamie
Cliff
So it is C. It’s a bit quirky in places. Anyone that’s worked with Arduino will know. But it works, it does the job. The AdaFruit board is awesome; built and made in New York by AdaFruit Industries, and they’re dirt cheap, and as I say you can get them from anywhere. All the other electronics in there are simple cables, wires, and things that this. There’s nothing expensive or difficult or challenging in the build. The circuit diagram is a simple as I can make it.
Jamie
Cliff
Jamie
Cliff
Jamie
led.On();or something?
Cliff
So that’s the plan, the future of the project. I enjoy coming and talking at conferences and meetups around the UK. You know, I’ve been to Boston (MA) and given the talk - more than a one night stop. “Come along to our meetup and have a chat.”
But yeah, it’s purely because, you know, to get some kind of ideas. Ideas like what you was talking about minute ago for machine learning: 9 o’clock in the morning. he’s going to school, therefore put in “school mode”. I never thought about that before, I’m not sure that Kayden had. But it’s an idea that actually will probably make it to, you know, to be in the app.
So yeah, that’s good.
Jamie
Cliff
So that’s like every other week, or not even that, every week you’re spending £5 on sticky tabs. Just to keep your arm going. Which, you know, is no a small amount of ongoing costs. So that was one of the early things I wanted to get rid off. Hacker Space Magazine did an article about a year ago - not even that about - about debugging Arduino, and as part of that they used a little piezoelectric sensor.
And I was like, “Debugging Arduino is a brilliant article. But actually, that sensor, what’s that? I want one of those”
Jamie
Cliff
Jamie
Cliff
They worked. The difference is they can only sense or give you a spike. So if you push it, you’ll get Spike but they’re no more output. And a piezoelectric sensor is basically, you know, the buzzer in your PC that tells you that you memory is bad, and it beeps - what’s it, four times for memory or something?
Jamie
Cliff
And that’s because the myoelectric ones you could kind of control the motion, just like you can be real hands.
Jamie
Cliff
So I’m down root somewhere in the world, I was googling away trying to find what I could find. And I found these force-sensitive resistors, which you apply a voltage and as you apply pressure you get a voltage linear to the amount of pressure you apply. Again, super cheap - I think about 4-5 pound each. And they normally come in a pack of, an even bigger pack and it’s even cheaper. So I got some of those in different sizes so that we can try the different sizes. Couldn’t wait to get back from my trip, I was like, “come on. Fly faster. I want to get home.” Got home, there was the package waiting for me, tore it open, went into my lab, and evil genius time, and hacked away and got it working. And a day or two later I had it set up so that it works almost the same as the MyoWare sensors, but they’re a fraction of the cost and they work great.
The downside then, that we’re still battling with at the moment, is where the MyoWare sensors stuck on to his skin and they were there. So no matter what arm grip we had, the sensors are always sensing. With these, we stick the sensors on the inside of the socket - where he puts his stump in to - and which means sometimes a sensor is not quite in about place. Or sometimes his arm isn’t quite right isn’t quite actuating the sensor. And again that comes back to the machine learning thing that I want to try and work out a way of detecting that that’s happening and saying, “actually, let’s turn the gain levels, and the peak thresholds and the hold dwell times down to this level because that’s the readings we’re getting today.”
Jamie
Cliff
Cliff
There’s a different motor that I’ve found recently: a linear motor, which is about half the price of the Actuonic ones I’m using, but it’s slightly bigger. So I’ve got a couple of those on order coming from the US, and hopefully, I can see if I can fit those in. Again, that reduces the cost. And, you know, if we can reduce the costs and get functionally. The advantage that one: that one also gives you not only a potentiometer reading of where it is in this position; but it’ll give you a current output. So it’ll tell you the amount of current that it’s currently drawing. Which then for readings, you can then kind of work out, “actually, I’m drawing a lot current. Has it stalled because its gripped something?” And things like this.
Jamie
Cliff
Jamie
Cliff
Like I say, Open Bionics are now got their product that they sell, which they’ve taken far beyond what I have managed to. But they’ve got a whole team, and a company behind them, and funding. But they sell these as commercial products, and then they’re not cheap. We’re talking in the many thousands. They’re not available on the NHS because they deem them…
Jamie
Cliff
Jamie
So then with the the app, because its Xamarin presumably if the user wanted to switch to Android they could just do that because it’s just cross-platform and presumably exposes the same low-level systems: the Bluetooth and all that kind of stuff. And then if you need to update the software, you can presumably download a file, open the app and go, “send this to the device.” And it just…
Cliff
But yeah, the way that the Xamarin works is your .NET Standard project: all of my code is in there. I’ve made a point of trying to prove a point to myself that I do not want to touch the Android or iOS projects. I mean, they’re there, they sit there in the solution file. But I really do not want to touch those. So other than pulling in NuGet [packages] that need to be pulled in - you know, Xamarin Essentials and the Bluetooth files that are pulled in to all three projects: .NET Standard, Android, and iOS.
I have not written any code in those two platforms. So all of my code is in the .NET Standard [project] and it all runs in there. I use Xamarin Shell to do the navigation and the layout because it does the job.
Jamie
Cliff
When the train arrived this morning, I’d seen someone on Twitter - I can’t even remember his name now, Aplhonzo I think his name is, he’s a French guy who lives in Paris and is a Xamarin MVP and the likes
Edit note: Cliff was talking about Jean-Marie Alfonsi
Cliff
So at some point in the next few days, I’m going to pull in that NuGet, remove the SyncFusion tool - sorry SyncFusion - and put in this Sharpnado. Which then means there’s no licensing issues, and it’s all open source.
Jamie
Cliff
So at the moment, to get it on to Kayden’s device - onto his iPhone. So I develop on Android. I’m an Android user, I’m not a fan of Apple. And I deploy to my Android device, when I’m happy, I deploy it to my test devices - my test iPhones - that I’ve got. And when I’m happy, I push it to AppCentre - Microsoft’s Cloud Resource.
In fact, I don’t even push it. I do a
git merge into master, and AppCentre watches my master branch, and when it sees [the merge], it does a build and it publishes out and sends an email to Kayden to say, “there’s a new update to the software,” it sends an email to me that says, “there’s an update into the software.” And I’ve got various teams in there: so there’s me as a developer, there’s a collaborative branch which Kayden is on as the test team and his mom’s on there as well, and they push of the app from AppCentre. Just by me doing a merge to master, and Microsoft take care of it.Jamie
Jamie
Cliff
Jamie
Cliff
Or the way I was doing before was sending the build to AppCentre, and then waiting for AppCentre to build, 10 minutes later for it to push down to the iPhone and, “oh, I missed that bit.” The dev-loop cycle was long enough for me to go to the gym and back kind of thing. Whereas now it’s literally Hot Restart and it just, and it just works. And you know the dev cycle is in seconds rather than minutes.
Jamie
Cliff
Jamie
Cliff
As I said earlier, I try and blog about the project, but I’ve got many, many blog posts that I have written kind of while I’m flying along. But in gaps in what I’m doing: flying the plane. But then don’t put the images in the right place or the code snippets and things like this, because you can quite easily type a document on your iPad.
But yeah, blog posts are coming out slowly on the project. And every time I write it, I go back and look at it and it’s like, “no, I’ve done that now. So I need to change it.”
Yeah, hopefully, the idea of the blog posts is that someone who wants to build one these will be able to look at the blog posts and go through, and see how I got to where I am, but also how to build it themselves. So it’ll become almost an instruction manual of how to build your arm.
Jamie
Cliff
And certainly, you go to the West Coast, like San Jose and place like this. So I’m awake have nothing to do. The gym’s not even open yet, it doesn’t until 6 a.m. So get my laptop and have a little pot of porridge out my bag and a coffee, and start coding. You know, when everyone else is wondering about and just seeing the sights that we’ve all seen hundreds of times - because we’ve been there that many times - I’ll sit in the coffee shop and code away. You know, be it working on this Handy project or client projects, doing a Xamarin project or an IoT project, I’ll sit and code away. And because all I need is my laptop, and the mobile phone to work on Xamarin, I don’t need anything else. I pack light, and off I go.
Jamie
Cliff
For IoT projects I wok on those at home; I work on the code and have very different branches of ideas I’ve had that I can’t test. But yeah, and that’s another exciting thing about the Wilderness board, is the fact that it’s .NET; which means that I should theoretically be able to write a console app around it, and test the code.
Jamie
Cliff
Jamie
Cliff
“Oh, it’s because Dad sets fire to things.”
Cliff
Jamie
Cliff
Jamie
Cliff
Jamie
Cliff
I have that working with the Arduino board at the moment. But having a test suite where you can test and build-out, just like you would do with any .NET Core project. And being able to test your code. You know, “I’ve made this change and it’s broken all of my tests. Well, the change wasn’t good” Whereas, at the moment you make the change and it breaks, and the hand doesn’t move. And it’s like, “well, now what?” Is it a software fault? Is it in Xamarin? Is it in the code in Arduino C? Or is it the fact that I’ve been bending that wire so many times that it’s now broken off? That happens every now and again, you look at the wire and it’s like, “oh it’s broken off,” then you have to go and get your soldering iron and solder it back together again.
So yeah, it’s been a fun project. I’ve certainly learned a lot from it, which I think is what everyone likes to do with their side gigs
Jamie
Cliff
Jamie
Cliff
Jamie
Cliff
Jamie
Cliff
You know, download the tooling that’s part of Visual Studio. I even use Visual Studio for programming the Arduino board.
Jamie
Cliff
Whereas Visual Studio, there’s a fantastic tool, which is free, called Visual Micro, and it’s on on the extensions and plug-ins for Visual Studio. Download that, and install that. The paid-for version just stops it popping up every 5 or 6 times [that] you open Visual Studio and gives you a message, “please buy me.” But I think even the paid for is not much - we’re talking £50. And it’s an awesome tool. So I stay in Visual Studio, and I develop the Arduino C, and I can push to the Arduino boards. And then because it’s not the Arduino IDE, I get back my F9 debugging tools, which is amazing. I can put breakpoints, and what happens is when it’s a breakpoint: where you put a breakpoint, and you rebuild and republished to the board, what it does is it puts a little
while loop in there. So when it is at a breakpoint, it waits for a command back form Visual Studio to say, “carry on.” A very clever idea. So it just sits there and the board runs.Jamie
No-Opin, and just doing nothing.Cliff
No-Oping, doing nothing. But you get the breakpoint, and then when you hover over - as you do in Visual Studio - it’s reading the memory locations, so you get all your tooling back that you know and love.Jamie
Cliff
Jamie
Cliff
Jamie
Cliff
Jamie
Cliff
Jamie
Cliff
Jamie
Cliff
Jamie
Cliff
Jamie
Cliff
Jamie
Cliff
But yeah, it’s a great project, it’s been fun, and I’ve learnt a lot. And most importantly, put smile on Kaydens Face. And when I gifted the early version of the arm for his 15th birthday, I literally pitched it up at his door. His Mum knew about it, He didn’t. And open the box, and he sees this arm. The look on his face, the smile. You know, the kind of little giggly scream that he made going, “oh this is cool. Look at how cool this is.” That was worth more than any money they could have given me for doing this. I’ve done it all off of my own back, any money that’s been put into it has come out of me funding it, so the family don’t have to own the cost. Because a lot of this has been really trial and error, and they shouldn’t bear the costs.
Jamie
Cliff
But yeah, and that will be hopefully at some point next few months we’ll get to that stage. And then people start building these themselves and have a little arm that sits on their desk and moves around for them.
Jamie
Cliff
Jamie
Well, thank you ever so much for talking with me. This is an amazing product an amazing… well, is it a product? It’s an amazing project.
Cliff
Jamie
Cliff
Jamie
Cliff
Jamie
Cliff
Jamie
The above is a machine transcription, as such there may be subtle errors. If you would like to help to fix this transcription, please see this GitHub repository
Wrapping Up
That was my interview with Clifford Aguis. Be sure to check out the show notes for a bunch of links to some of the stuff that we covered, and full transcription of the interview. The show notes, as always, can be found at dotnetcore.show, and there will be a link directly to them in your podcatcher.
And don’t forget to spread the word, leave a rating or review on your podcatcher of choice - head over to dotnetcore.show/subscribe for ways to do that - and to come back next time for more .NET Core goodness.
I will see you again real soon. See you later folks.
Useful Links
- Cliff on twitter
- Cliff’s website
- Cliff’s GitHub Repositories
- Cliffs talk from NDC London 2020
- faffing
- Heath Robinson
- Reprap Mendal
- Prusa Mini
- Open Bionics
- Open Bionics GitHub
- AdaFruit
- BlueFruit M0 AdaFruit board
- AVR processors
- Actuonix
- my GitHub
- Anker power bricks
- Pololu
- UART commands
- EEPROM
- Wilderness Labs Meadow board
- F7 micro board
- AdaFruit Feather]
- Arduino C
- GPIO
- MyoWare sensors
- Hacker Space Magazine
- Piezoelectric sensor
- Potentiometer reading
- Hero Arm
- Xamarin Essentials
- Xamarin Shell
- SyncFusion
- Jean-Marie Alfonsi
- Sharpnado
- AppCentre
- Hot Restart
- knackered
- #handy on Twitter
- Arduino IDE
- Visual Micro