Hey, what is this everybody and welcome to show and tell it's me lady. It would be mr. Lady Ada the og hosts sometimes we have people from the fruit Come host for us, but now you're stuck with us. Let's check in with people around the maker community What are they printing? What are they soldering? What are they coding? Yeah, what are they long catting? it's also your sneak peek of Some of the things that we do here at data for right before show and tell Yeah, one of our weekly meetings and we kind of go over all of our projects is our own little version of show and tell But we'd like to show our work as we work on things. So you get a sneak peek Of what's ahead. All right maker. Melissa. What are you working on this week? I have been working on going through and updating the blink of display i o So that's more up to date with the circuit pythons display You know because there's there's originally written on circuit pythons four was that and there's been quite a few changes up to eight and so one of the things I've added is Added support for the monochrome and the grayscale displays So this is one of the grayscale ones and so I'm just going to run a little demo here and There it goes displaying hello world. It actually doesn't look flickery like that in Real life, but apparently with the camera it does Um, anyway, so it's actually working really well before it was kind of looking like a bunch of garbled stuff because it wasn't supporting grayscale at that point So any it wouldn't support anything under eight. That's perfect Okay. Well, yeah, the oh legs the passive So there's a lot of the flicker shows up on camera not in real life But it looks really good and excited to get display I have support, but I want to see that the most impressive technological feat you have there is the sticker identifying that as a two gigabyte memory Raspberry Pi That's because there's like three different varieties. So I'm able to the two's in the eights in the lead before it's unable Okay, cool. All right. Thank you so much Melissa Thanks All right jp, which you got cooking this week. Hey, I've got some uh legos and synthesizers and color sensing cooking. Uh, so this was a um, this is kind of a prototype I built and a little testing station for this idea that uh, Lamore had of revisiting a project j silver did back at the mit media lab Uh, which was a color sensing glove uh that could sense the colors on some legos and then play midi So we're going to try to combine this all in one as a synthesizer Rather than midi-ing out to something else But the first thing I had to do is take a color sensor and characterize some different blocks to find out Which ones work well and are different enough from from the uh, from the other ones So that's why I built this kind of little sliding Rig thing here and you can you can hear it in action. So here it's noticing A lime green one.  Um So this is kind of interesting. So some of the things I'm finding out is for example This lime green block looks a lot more green to that color sensor than this pure green one. This one is uh, just Way closer to blue than than this one. So this one's actually a a better one to To test on so I've got some some rigorous uh, lego block color testing going on right now And I'll also be trying out some different sensors. We have a couple of different color sensors And I'm gonna see which ones work best for for this. This one is a pretty accurate one But a little bit slow It takes about 300 milliseconds for it to read all nine of the color channels that I can read or eight I can't remember how many it is So this is this is my uh, my little rig that I'm working with here And I'll be showing this and some other stuff on the show tomorrow So stop on by and and uh, and come and see where this is headed All right, looks good. I saw in the lego news that they were thinking of doing recycled Bottles as their Substance for legos, but it turns out that's not uh eco-friendly. Yeah Yeah, but the math on like oh like let's try to figure out the you know Because everyone wants to figure out like what what's the least wasteful thing? Yeah turns out recycled Plastic bottles fix some energy article. Yeah, it's like it's more energy to do it. So it'll be interesting to see what what lego does. Yeah I think they use Whatever form of petroleum Yeah, these are abs for the for the typical breath. Yeah I don't have philosophy that like, you know This is a philosophy not a lot of people maybe agree with this, but I think Designing something well That lasts a long time and is designed is not a fad is more important. Yeah, like you know, I made We have a joke you know a joke that um My friend had a kid and uh, they didn't want to tell the mother unless this happened They didn't want to tell the mother-in-law because it was like early. They didn't want to tell the the mother-in-law So by coincidence the mother-in-law emailed or called one day. I said, oh, you know I'm gonna throw out some of the step we're cleaning at a house and we found this gigantic box of legos Gee, I was gonna just toss them out and the sun said no, don't throw them out. Keep them I'm gonna pick them up next time. I'm there. She said are you gonna have a kid? The repairability of things and that's what we strive for like publishing the source code publishing plans and then make something repairable Yeah, um that you you actually own is the way to go Um for sustainability often. It's just it's hard to come up with a material Um that's of this planet that still doesn't require Something Wooden lego blocks. Yeah. Yeah. Okay. All right. Well jp. Thank you for continuing to be a champion of uh reuse and reuse Yeah for all sorts of things. Absolutely. All right. Let's go to I should get kind of for recycling on the media lab project Yeah Let's go to scott with some interesting amazing displays with circuit python Hello I'm glad I realized I was in show and tell because I was writing an up on issue and I was like, oh, wait, I should pay attention um So what we've got here is uh, this is a prototype Uh qualia board here and you can see I've started to try and label my stuff as well um All my esp boards. I've started adding labels for uh, what the module is because those are You know, they're kind of you can read them, but they're not like pleasant to read Um, so I've been trying to label those with my my goodwill label maker Um, but uh, thanks to jeff for doing the hard work on the rgb matrix stuff I was able to get this round display working and uh, I have this like display ruler I call it where it's like got some of these different colors and um different Measurements for a display. I have a rectangular vision and with the round one. I wanted to make one that um That measures out the round display so you can Um, see that it's like this is 480 pixels round Um, so the this is the 400 line and then the 500 line is off the screen Um, and then this color bar here is like super useful for knowing that your your colors are in the right order um, and it was also super useful when I was doing the uh, seven color E-paper support where it like tries to pick, you know, the most appropriate color Um, so I found these like display ruler bitmaps really helpful. Um, and so I made a round one To test this display that jeff added support for Okay, well now that we're you know, we you helped uh review the pr and we merged in support for dock locks Uh, what you know, what project do you think would be cool to make with some of these funky weird displays and high resolution images and touchscreens? um Well, the thing I think I'm most excited about is actually not a display, but the uh chip that I pointed you to that does rgb to hgmi Oh, oh, they're not out yet, man. You're dropping all the secrets um, but uh, yeah, you know like I've had this long long quest for hgmi because you know We have so many screens that take an hgmi and uh, and that's another way that we could get there and I'm I'm pretty excited about it So, okay. Yeah, the other thing I need about hgmi is it makes us recording demos and what's going on the screen a lot easier too so I'm looking yeah, and um, one thing I've been thinking we could do with high speed usb. We could actually like Pretend to be a webcam with the slayio output would be neat too Yeah, um, and then you can capture it straight from the device as well. Yeah All right. Well, thanks so uh, Scott. Thank you both. All right Speaking of jeffler jeffler, what you got going on? Hello if you want to go to my down cam. I'll show you Uh, first of all, I found this blast from the past just in my drawer. So, uh Looking at the date on it. It's like the people who are in middle school today Raspberry pi computers have always been in their world and that's pretty wild. They're now grandparents and Yeah, but uh, the more spoiled where I was going to show Which is long So, uh, we got this display working just today it has some quirks There are 80 pixels over here to the left of the display that go nowhere So we had to support the circuit python for that That's like really picky about the timing, but we're doing it now. So that's great The other thing i'm going to show you is you've talked about kind of the tearing as you load different images circuit python Looks weird while it's loading an image. So i'm just going to restart the code here. Hopefully Um, let's just hit the reset button And um, this is booting up the display booting up circuit python But it kind of goes a little bit chunky, but also a little bit irregular, which is weird I think this has to do with, um The stuff This microcontroller has a cache and when it writes to the ps ram it goes in the cache first And only when you flush the cache is it guaranteed to be seen by the display peripheral Otherwise it might see it or it might not depending on the details of the cache So it's interesting that it looks like that and it looks a little weird But once it's done it's it shows and is stable BMPs are also weird because um, you know, they they draw from the bottom. Uh, like there's all BMPs are very funky in a lot of ways Yeah, there's funny stuff. Anyway, the last display, which I hope to get in tomorrow is this slightly smaller um Version of the same thing, but you've promised me it's not it's not crazy. It'll be just fine this one Yeah, the the that bar display with the long cat is the weirdest display because You have to initialize it over spi. It's got this weird, you know, it's 900 It's it's vertical. So it's 900 pixels tall And the memory inside is 400, but it's really only displaying 320 pixels wide So there's like it's you know, and I even emailed the company. I was like, why did you do that? And they're like, yeah, we don't really know and I'm like, okay Uh, you know, maybe it's like leftover there might be some like mathematical reason why they did it um So it's definitely that the weirdest you started with the easiest square display then did the round displays that scott showed and then the long display But um, you know, you're gonna take off for a bit. So this was a great, uh finish Yeah Is that actually how long the long cat is This is not how long long cat is So I did a little research into this because I was all new to long cat But the original long cat is shorter than this. Yeah, if you look, um, this is like japanese lettering And right here is a weird anomaly. So they've doubled the middle part of long cat And then I had to stretch it by about 10 to make it be the size of the screen So this is a lie. The long cat is a lie. Oh, no Well, you fooled me. Um, what a beautiful long cat. I have a slightly shorter long cat for the Well, this one this long cat won't be quite as big Yes, though the proportion and there, you know, I have a display that's eight Inches and it's you know, the same like there's that display but eight inches tall. So that'll be the longest cat Yeah, I think I think what I want to do with this display. This looks like a kind of digital desk clock Yeah display. So put some nice big letters on it that blinking colon Um, yeah, that's what I want to do.  Uh, we might oh, yeah, we give you some nixie styled bitmaps. That would be fun. Yeah All the stuff you're gonna miss out Thanks so much, Jeff. Excellent. All right, and um, this is one of those times where, you know, we have these memes burned in our head From a while ago and we finally can put them like the long cat meme was made for these displays and it was made for, you know Folks to be like, oh, yeah I remember that and like long display. Oh long displays. I could put this one on there And now it's really easy with circuit python I can drag and drop an image because before it was like couldn't really do stuff like this So good work. This will be a lot of fun for a lot of people. Yes. And as a drop in hints There will absolutely be pi portals for each one of these. Yeah. Yeah. I mean, that's like we're gonna have a different permutation of pi portal we can do round displays now We can do we can do a lot of stuff now. It's just been really hard Until recently the hardware is finally there and available and now the we want to make something easy Um, you know my my little gripe my little rants that I've had is like there's you can buy stuff from aliexpress Um, you can get stuff from even like wave share, but it doesn't You don't maybe you get a demo that works, but that's it Maybe if you're lucky and there's just a lot of stuff speaking to be waste A lot of folks buy stuff. They put it in a drawer and then they never really use it because it's like, oh The only thing that worked was a demo so we want to make sure whatever we release you can actually use and do And people aren't just like hey like I got the demo working But nothing else like we saw that we waited we saw this feedback across like everywhere for any unique display We want to make sure that doesn't Um become the experience for anyone not to dunk on any particular thing. I get it like here's a cheap display It's getting but there's a lot that goes into it to make them work All right. All right. Thank you No way what you got going on this week Hey folks, uh this week. We wrapped up the Guitar the synth guitar. It's a circuit python project using the synth i o module um Collabbed with lis to do the code for it and i3d printed designed the sg inspired uh guitar body So we got a speaker inside the headstock and we got some neokies and a fun Uh strum bar which is inspired by the guitar hero game controller so we can do some fun 8-bit kind of sounds We got the accelerometer controlling the filter so we can do a low pass and a high pass It's polyphonic so I can play different uh different notes together Then we have a couple of rotary encoders that can change um the octaves and um The lfo rate so kind of like a trump trump tremolo effect I like the chiptune sound effect. Yeah, this is the uh the sawtooth It's been a lot of fun. We had um pager made one too So he had his uh his kids play around with it and they they helped us kind of Do a little bit of a video demo on it. So it was really fun for them to uh to play with it It's gonna look more good than 3d printing. It looks like a fit like not that inevitably finished product But it really looks like a finished good Thank you. Uh, yeah, the filaments are those kind of glitter infused filaments So it gets to the really nice kind of shiny. Um, yeah, you look to it And uh, you get that um that kind of texture on the pei powder coated beds that are flexible So they're they're really nice. You can get some really good prints these days at the filament All right. Well a great collaboration. Um, you get synthio from jeff lara lis We have the interface code. Y'all did the 3d printing Um big teamwork effort Yeah, thank you. Um, check out the uh learn guide. It's live now and hopefully folks can uh can build their own Hey Yeah All righty next up. Let's go to flying things and then we're going to go to stop flying things Oops, I don't know. I don't really saw Can you hear me?  I don't know why it is Uh, yeah, like it's also going It's fine All right But I have An upgrade to my costume Yeah, you were on before and was looking great. Oh Hello So I have I have wireless pos now There's no wires, but oh It's harder for But Oh, that's cool So you can select yeah color mode blinking and other eye patterns. Oh, that's cool. That's a nice effect. It looks like Oh, that's cool. All right, and then on this one Oh, I know you got music It's all synthesizer How fun is that using this synth IO? Oh, cool Well, hot off the press with that too. Wow, you're integrating like the newest and best into the flying squirrel technology And I also have an air guitar Oh Keeping with the theme of a circuit 5-pound powered guitar. Oh, yeah, look at that That's a really good idea because it's hard to play an instrument in a costume Yeah, so if you did air guitar, you'd actually be able to play the instrument It is not working Now we got we got the gist of it. Yeah, we we know it works. Yeah, you know live demos are tough I hope you cut down a little bit Okay, well look excellent work Keep coming back with any updates and more. That looks fantastic. So cute. Yeah, good work I love the little paw pads. Those are great little paws This is great. The toe beans Yeah, so by the way, we don't set out to make circuit python and synth IO and all the things for that particular project Like that's not when we start off with but that's the destination you get when you release things out It's open source and have tutorials and guides and make it easy You get all this. Yeah, you get all this stuff because people can make things with the things that you make Uh, that's really cool. Okay, gist of play us out. What do you got going on? Hello I've been on here a few times making a little remote control for my board game timer And so I got a new one And so this time I it is a um, it's a reverse tft It's a reverse tft esp 32 With ggp's accelerometer in the back. Okay, and I've also tacked on a little piece of buzzer on there so I can play a little tunes And I programmed it so that the screen will rotate whenever it always follows around There we go. Oh, yeah, and I had to write some code so that the text and the icons So I've got icons here showing what the different buttons will do. Oh nice And so when I rotate it the icons will follow around We you know rotate around so they always facing the right way And I can even um resize the text and reposition the text depending on the orientation of the board So that's kind of nice And of course the buttons will do different things. So I have my um Game timer here That's how I'm gonna do all of this come on go, but let's see here the success there I go to the next player. Yeah Wow Wow, you got that's pretty intense to sync to synchronize. That's hard to do That's hard So my previous remotes have been not using bluetooth which is done immediate But here it goes by mqtt. So this device writes to mqtt broker Which the app reads from Yeah Game state topic and then it's got a command topic. So this one writes commands And then the app writes the game space So that allows me to do using wi-fi boards instead of bluetooth boards Yes We don't have bluetooth support yet and uh circuit python. What's coming maybe working on it And also it means that um, there's no um There's no uh, uh pairing step involved either. So that's yeah, that's right And you see here that this red color here is kind of a darker red. So then I make the text white Yeah, I'll to see here But now we've got a white text on the dark background and if I go to the next player Which has a light background the text goes Yeah, it's like gamma color matching is tough, but it looks yeah, it looks really good And I see if I can get it to swim in here the thing that was the most challenging was to get the Half transparent icons To match the background of you know any color background So I have to write some code so that I have an alpha opacity layer Yeah, so every time I change the background I then recalculate the palette of the bitmap so that I can get You know fake half transparency. It's not true transparency, but it will look transparent against a solid color Um So I've written up all that code as well. I believe it on github and I've wrote it A guide for how to build this. Oh, yeah, and if I shake it It does Oh And if I turn it face down It pauses the game Turn it back up again, it's I love using that as a gesture I love just the simple gestures it works really well I do like you to shaking to undo If people are getting used to this idea of like you you move the device Turn upside down to pause. It's a good idea I I used that for some of the other remotes and people really do use it like it's a natural Yeah, I'm gonna face down if you want to pause it Um, yeah, when you get used to that and you pick up something and you think it's supposed to do that And you're like, oh wait, it doesn't Um, a friend of mine saw this and said he wanted 3d print me a hourglass. Yeah So that's gonna be uh, you know a few weeks or a month or something like that Yeah, you could do looking with an led matrix and do it because it looks like sand. Yeah, you can do it that way too We we got plans so but I'll come back for that But yeah, so this is uh, I can post the link to the guide. That's the link in discord Especially the code around how to do the half transparent opacity for Uh icons and the moving them around and rotating them and text depending on the rotation. It's kind of useful Okay, outstanding. All right. Thank you so much. Excellent demo. Thank you All right. All right. That's our show for tonight. Um, you know one cool thing about nqtt. We have um a video about it Where it has a little bit of history It was used in like facebook messenger and before that it was like atnt's oil pipeline management thing because you needed to have Um, the ability to have a connection that may or may not be reliable There's cool things like dead man dead man switch where like if you don't get yes, um, Something after a period of time. It's called the last will. Yeah last will. Yeah All sorts of neat stuff with these protocols. Um, and we have that with adafruit.io and you can use that with um wi-fi Which is pretty much the the best use of it because not everyone's gonna have blue tooth stuff Anyway, so you can use it disconnected. Yes from far away too Because you're not you're not relying on your pan your personal area network. Oh my pan. Yeah that land my land Yeah, nice land. Yeah. All right. Cool. All right wrapped up already Thanks so much everybody. Thanks for making this our favorite half an hour of the week every single week We do show until every wednesday 7 30 p.m. Eastern time Come share your electronics or hardware can be absolutely anything that you may build can be retro stuff that you want to uh, have a Blast from the past all those things are welcome. Thank you so much everybody. We'll see you on ask an engineer in just a few minutes Bye


OK, so hi, everyone. Again, my name is Ola Ben-Harr. I lead the developer relations team at Google for payments in Google Wallet. But I also have a broader role where I represent Google, including Google Wallet, but also Android and Chrome on the Open Wallet Foundation, which Google recently joined. Google has a long-standing history of supporting open ecosystems. I truly believe that I think especially for a topic like wallets in general, digital identities, it's very important that we work together as an industry, together with governments and nonprofit organizations to build solutions that are truly secure, comprehensive into our parable, to make it meaningful for everyone. Because I think this is something that's going to impact us all. And first of all, we're also consumers. And I think we're all playing a role in how this ecosystem is going to look like in a couple of years from now. So today, I'm very happy to announce a code contribution. So we decided to contribute the Identity Credential Library, which is used by many commercial wallets, including Google Wallet. It is actually a set of libraries and wallets in sample apps for a wallet and a mobile verifier for real-world identity. We have the maintainer, actually. David Zutin couldn't be here with us, but he recorded a video to talk more about the library, to give you an idea of what it is and what you can do if you're working on digital wallets or digital identities. So Thorsen, I think you have the video and we can play it now. And then I'll say a few words at the end. So first of all, thanks a lot for your contribution. Absolutely. And I had the pleasure to talk to David last week and he's really passionate about what he does. And yeah, then let's watch the presentation. Hi, I'm David Sofen. I work for Google in the Android Platform Security team on hardware back security. The past five years have been working on real-world identity, specifically MDoc MDL in the ISO SE 17 Working Group 10 Working Group, where we published ISO 1813.5 for MDL and mobile driving licenses. So that end at Google, I worked on creating a library and integrating MDLs and MDoc into Android. And I'm going to do a presentation about that. We'll just bring up the window. So here it is, status and roadmap. So first of all, everything in this presentation is just current ideas and thinking. There's a lot that already is released. There are also some things we haven't. So don't depend on anything until it's released. So what is it? The Identical Library is a library, a set of libraries, actually, and example apps for real-world identity. The initial focus was MDL and MDoc, according to ISO 1813.5, and also related standards like 1813.7, the 2322 series, and even things that are MDocs, like verifiable credentials. It's been hosted at GitHub for a while, I think, 2019 or 2020. And it's available under the Apache 2 license, like most other Android code. It's all written in mostly Java with slowly converting sensor codlin. The library implements on-device provisioning, storage, perception, verification of MDL and MDocs. And an emphasis that implements the on-device parts, things like provisioning, as we'll see in the next slide, involves the issuer, obviously. So we don't do anything for the network protocol or user-proofing. It's not really standardized yet. There's some early steps. But for now, our library just does whatever you need to interface with the device. The library uses hardware-backed key-store and remote attestation, which is important because it gives you strong guarantees that the private key material never leaves the device, which is important for anti-cloning. So you can't just steal someone's MDL. You would need the key, which is an hardware-backed key-store. The library itself is quite production quality. I've been to all but one of the MDL test students, organized by the working group, Ternisal Group. It's used in several production wallets, many of them certified by UL, and Google and Google Wallet, which is created by a team, not my team, but I work closely with them. The library has strong focus on testability. So there's a bunch of unit tests and also manual tests for Vincent Andixi to unit test. It's actually not restricted to Android. It's separated into two libraries. We call them identity and identity Android. And it's also, later versions are not dependent on MDL. The MDL and MDoc are split out into separate. Separate things and the call can be reused for the credential formats. So let's first look at the overview of the ecosystem in where you will use it. It's called the three-party model, where you have a holder that carries a credential around. That's just by carrying a plastic car. You have the issuer of the credential. That could be the DMV, in my case, the Commonwealth of Massachusetts, registered motor vehicles. And there's a verifier that the holder wishes to present the credential to. That could be the TSA. It could be an alcohol store or a bank or someone. So the library implements the in-person presentation protocol, including all the Bluetooth QR code and NFC bits. It implements, it does not implement the issuance protocol. It only implements out of a device site you need to implement it. We don't implement server retrieval, which is an option in 1813.5. But it's not very good for privacy, so our library does not currently support it. The library itself is used inside the Wallet app. The Wallet app is part of the OS. The OS is part of the device. And to do things securely, you need to do things outside. There are OS, you need to use secure hardware. In our case, Android Keystone. So this is kind of the concept of where the library is used on the holder side. It's also used on the verifier side, in the m.reader app, to implement the other part of the transaction in the device retrieval protocol, which is part of 1813.5. It can also be used on the issuance side. We don't do that, we're not an issuer, obviously. But all the primitives in the library can be used there, because I mean, it's not Android specific. So let's dive into actually what the library is about. So at its core, it's essentially a credential store, where you can have one or more credentials. So you could have a mobile driving license, you could have a vaccination document, vehicle registration, and so on. A credential is basically namespace data, coding term docker, generate property back, if it's a set of claims. So the type, the data type for credential, it's pretty abstract. It's useful for MDOTs, it's also useful for other kind of credentials. We identify a credential by a key pair. We call it credential key, where the private part is on the device, the public key can be sent to a third party. Another party could be the issuer. And we use hardware backed at stations, so whenever you convey the key pair, the other part that examines that station has a high degree of certainty that the private part of the key is in a secure area and it cannot leave the device. So that gives them a baseline of trust that the credential or whatever you use the key for cannot be cloned, which is very important. A credential also has a number of authentication keys. In 1813 part five parlance, the code device key, these are the keys used to actually make the attestation at presentation time. So that's what you sign the data with. And the reason we support more than one is to implement the concept of not leaving any traces. So if you use the same key over and over again, the relying party could track your footsteps around. So essentially, we think of authentication keys as simple use. And the idea is when you get your credential from the issuer, you get 10 or 20 of them at a time and you refresh when they run out. Maybe they're time limited, maybe they only valid for 30 days. But talk about other problems like revocation. So that's the general architecture. And to do this, we defined a couple of abstractions for how can we store data? How can we do, how do we minus the secure area where the key material is implemented? And so we have some abstract interfaces and of course some concrete implementations of them. For the secure area, we have an implementation based on a member key store, which is an API that's been around for a long time in Android, probably a decade or so. That gives you hardware back key support with remote ad station. We have an implementation of storage, which uses encrypted, which stores the data at rest encrypted. And the sense of race nicely with Android so in order to use a key, you can require biometric authentication. The user puts in the system end code, such as to protect the key material, make sure only the device owner can actually present a credential. We also have implementations of these in software that's using the Bouncercast library. The whole point of doing this is just so we can run it outside Android. Mainly so we can run unit tests and also to prove that the abstractions work. So in addition to that, we have a big, a lot of mDoc support, and that's lit up into two bits. We have all the generic mDoc code, which basically handles all of the data. It can pass and generate the device request, CBO data structures document request. It can deal with the mobile security object or the MSL, can generate and pass those. The Android specific parts of it do mostly with presentation, the presentment phase. So we do QR and NFC engagement to start the transaction. And then data transport is then over BLE, Wi-Fi aware and NFC. And in addition to that, we also have helper classes to do the whole verification and presentation ping-pong. All of this implements the ISO standard 1813.5. And it's been through different test events. It's well-tested. There are no explicit Android dependencies. As mentioned, you can see all the Android specific bits. It's in its own library. So you can use all of this on the verification side. For example, if you accept mBLs at a website where you can use device response parser, then it will work. There are no explicit mDoc dependencies. You can use the credential, credential store abstraction for other credential formats. For example, SD-Geard is like, I like to call it the JSON version of mobile security object. It matched very well to that. The subtractions for the secure area, we like Android Keystone quite a bit. It's very versatile. It's very robust production quality. But if a wallet app wants to include and use its own secure area, for example, some kind of external device, maybe a cloud back thing, where the key is stored, or maybe they have a secure element with a java card applet that's certified, they can do that. They can just implement the secure interface, which is part of the app, and then all the rest of the code will use that. That's quite nice. Finally, one philosophy is that we don't just want to give people a library, and then your developer is like, oh, how do I actually do this? So batteries include it. We have production quality, both wallet and reader apps that use this, and we keep them up to date. I'll talk a little bit about those. So the wallet app, when you build it, and anyone can check out this code from GitHub, build it, and run it on your Android phone in five minutes. So it's ready to use. When you start the wallet app on a fresh install, it looks like this. So you add a new document, and in this case, we have different document types. So this is an MDL. We support three other doc types, which are also MDUX, vehicle registration, EU, PID, and vaccination document. So you select your document type, your card off, what name the document has, which secure area to use. In this case, it's Android KeyStore. Whether you want user authentication in order to present it. How many authentication keys you want? In this case, 10. How to do the MDUX authentication? There's both MDUX ECGSA and MDUX MAC authentication, which elect to curve cryptography, curves to use, and so forth. So it really supports a lot of different options. This is not because this is good UI, it's moment for developers and testing. So if you go to a test event, and the reader you're interacting with has problems with, say, ED25519 keys, you can create a credential with that and you can test and figure out what it is. So that's really the attempt that these applications showcase the whole library, and it's useful also for testing that the library works as intended. So once you create a credential, you can actually insert your own data, and in my case, put your own portrait image in, and this is what I did here. And then you're ready to go. There's your driving license you can see in this screenshot. There are actually two documents. So that's the holdout. Once you have a document, it says NFC-TAT with your MDUX reader, and you can just have it against an MDUX reader and it'll start the transaction. We'll have a video in a little bit but before that, let's talk about the verifier, the MDUX reader app we have. So it allows you to specify what documents you want to request. So we have MDL for US Transportation, which is the default one, which basically just asks the user for five or six data elements, the same you would need to show if you go through the TSA, for example. You can also request some of the other document types that I mentioned. Mobile vehicle registration, vaccination, EU, personal ID. And you can also request multiple documents. That's the request MDL plus my card and the test with linkage. That means that it requests a data element in both of them that should have the same value. In this case, it's the driving license number. So it's a pretty flexible application. If the MDL M documents acting with does not have NFC, you can scan the QR code. Like this, it's using the camera and you can see the wallet app in the camera area showing a QR code. And once you receive the data, it shows a response with a lot of green check marks. It's probably not the best UI, but again, the audience here is probably not end users. It's developers and people deploying real-world identity. There's a bug here. That's by showing a red cross that the document signing key is not recognized. That should be a green thing, but this is what it is. When you create demos, sometimes there are bugs, which we face. You can find issues at GitHub. So the next slide is showing what the MDL presentation looks like. So we'll just roll the video and I'll narrate. We have to be varied from the reader on the left and the older on the right. So the reader selects what you pressed. And now, the product is sent to a lot of sites to not send stamina in. Not send data. Now the user is able to find the result release, the device signing, send over through to the button to the given name. So that's pretty much it. If you see the MDL demonstration and MDL presentation in the past, maybe this wasn't very exciting, but this is what the apps do right now. And I think they do it well. So let's go to the next slide. Slide where it's just talking about what we're kind of to work on in the future with this library. So right now we're focusing on integrating it with an integrating the apps with all of the internet presentations. That is presentation of your credential not to another device, as you saw just before in the video in person. We want to present them to other applications on the same phone or to websites. To that end Apple actually proposed the mobile document request API I think last year back in 2022. And we've been working with them quite extensively and also other browser vendors to what is now the identity credential WICD which is web incubation group in W3C and so we're working with people stakeholders in the W3C to have a forum to work on this which is going to start up real soon now. I've been working with Android and Chrome teams to add native rich APIs which this browser based API can use and also so we can convey credentials to other Android apps hoping to share a lot more about that in ISO and other standardization groups in the near future. We will continue to be active in standards groups so I'm personally very active in ISO a lot of work is going to happen in W3C go to unsolvable events and so forth. Another thing we're working on is an open-source javacart to facilitate M.dot presentations when your phone is out of battery but the phone has enough battery to still power the NFC chip and there's already some phones for transit hotel payment that is to also do it for identity this is to inspire enough confidence in digital identity so people can use it even if the phone is out of battery which might be quite important that's an interesting privacy issues with that because you can't consent to a request because there's no screen the phone is almost out of battery so it will probably only work if you have read authentication some authentication of the gridline party hope to have some more information about that in the near future we're also working on supporting other credential formats than M.dot in the library itself and finally we want to add support for other kinds of secure areas than just Android Keystone and I think that was about it so thank you very much for coming to my talk I hope this was useful if you use the library just feel free to file issues on GitHub send me email and move forward to hearing from you thank you so for those of you that are interested to learn more about the library you can find it today at this link that Torsten just presented as I said we decided to contribute the code also to the open wallet foundation so soon it will be moving under the open wallet project also I think if you have any questions David is part of the technical advisory council of the open wallet foundation which is an open forum anyone can join so you're very welcome to join these meetings as well or as David mentioned just file issues on GitHub thanks everyone thank you very much and