 Well, actually, you need to wait one minute. Yes, I'm trying to set up the screen. I have some problems. That's not good. I'm giving you a cleaning don't do it. Why I can't have a mirror? I'm sorry. I'm sorry. Do you have an output? Yes, but it doesn't work. Nothing works. Did it detect your HDMI? It's not here. It finds the projector. I don't know. I don't know. Laptop. Can you do it again? Laptop. You don't have this laptop. Yes, I have them. Do you want to get Martin's laptop? Yeah, probably. Hey, Martin. Let me try with that one. You can try to use your laptop. All right. Just one of them as well. Thank you. Here's your laptop. What? Take my laptop. Here's your laptop. No. It's a very small laptop. Here you go. Thank you. Thank you. Thank you. Thank you. Thank you. Can I have your mic? Hey, I have a projector. He's got my projector. Give me my laptop. It's a very small laptop. VDA. He's got my projector. VDA to HDMI. VDA to HDMI. Very small. Very small. Thank you. I need your presentation somehow. Awesome. They hack themselves. I just leave this here for future things. I just leave this here for future things. I need to find out more papers. Oh, not that. It does not have... I keep thinking. Oh, it does not have a fucking stupid... Don't worry, we're still running. I think Andrew actually won for his PhD, to be honest. Ah, let's try that again. Blue. Okay. Guy in blue? That one? Yeah. Perfect. Yeah, it's not my road so... Okay. Okay. Okay, sorry for the delay. I'm Nestoras. I'm going to present today GR Shopee, a handy hardware interface module for GNU radio. It's a work that... it's a project we've developed with George Valdakis. They are, first, for SDR Maker Space, which is a collaboration between Libre Space Foundation and European Space Agency. So, let's talk about why we wanted to develop a GR Shopee. The reasons were that, as we all probably know in this room, there are various SDR devices, and we want an easy way to configure them within GNU radio. One approach is having a generic block-like Osmocom source that provides one, but we believe it's not so easy for an experienced user to configure its device correctly. That is mostly because it's a static block. It may report elements that aren't in the RF chain of the hardware device we are using, so we wanted to improve that. So, let's talk about Shopee's DR for start. Shopee's DR is an open-source C++ project to interface with SDR hardware devices. What it actually provides, it's a C++ interface, which Shopee's DR modules that are the implementation of that interface can provide direct support for hardware devices. That way it's really simple to create a new SDR module for a new device and configure any new device. Another cool feature that Shopee provides, it's the Shopee remote that allows us to use an SDR device like it's a local network peripheral. We can have it on a different machine and get the data from the stream through the local network or the networking generator. So, here starts our work, which is Shopee, which is an out-of-stream module for GNU radio. It provides a source and sync block that actually wraps the Shopee's DR functions that the API provides. Really simple till here. What we do differently from Osmo-com is that we try to have dynamic parameters in our XML blocks, so it's easier for the users to configure the devices correctly. What I mean here, when I say that the devices are posted, I mean it from the the Shopee point of view. That means that someone has changed the XML file accordingly to understand when the device, for example, a Pluto is on the block to generate the correct fields. So here is just a list of the fields that the DR Shopee provides. It's pretty straightforward. We choose a device, we can pass some arguments, stuff like that. We have our corrections, pretty basic stuff, I believe. So, let's see a little bit our blocks. Here, for example, we have a source block and we have decided to work with a device that uses the imaginary driver that's called Forstheim 2019. So, to do that, we have Shopee's DR module installed, but from our point of view, this is an unsupported driver. So, we see here the general tab that has some basic information and on the RF Option tab we have all the fields that we mentioned before. Okay, so we have here the corrections, we have antennas, gain values and stuff like that. Those fields, because Forstheim 2019 driver is unsupported doesn't mean that the device supports all of them. What will usually happen if you try to, for example, try to have a frequency correction and the device does not support it, is that you're going to see a message that what you're trying to do is not allowed and the device still works like expected. So, when we see Shopee with a different kind of driver, for example here we have an Air Spy, which is a supported device from our Shopee blogs. The general fields are the same but if you look closely here, you can see that we don't have the correction fields anymore because Air Spy doesn't support those corrections and we now generate a new field that has a specific gain name, so it's easier to configure them. And also, for example, it changes that value to auto so the automatic gain would be true and we wouldn't see any of those fields and the device would use the automatic gain control. One problem with this approach is that we actually were hiding a field and we're hiding more fields every time. That is a problem that doesn't actually come from us. We didn't like that but GNU Radio didn't allow us to do something more fancy, unfortunately. But it works pretty well. So, another reason we believe that is a really good out of the module is because we think it expandable and montable easily. We have one XML file for the sync block and one XML file for the source block and those files, if you see the formatting, it's pretty much, we have generated all the fields, for example the PGA gains or the mix gain or whatever and what we do is if you see that the device driver is something we support show the field or hide the field, so if you open the XML files you could understand very easily what you have to add to support a new device, for example. Also as the main block in the C++ implementation is a wrapper for Shopee API it's also pretty simple to add new function calls from the Shopee SDR API. Also, as I mentioned before because the Shopee modules are independent than the Shopee SDR API main code they can build separately, we don't need to rebuild everything over and over again so it's pretty simple to create a new module to support a new device that is not even released right now, for example and we believe that is very important. So to conclude this talk we believe that you should use Shopee, because Shopee is the R0 best API it's easily maintainable it's a pretty inactive project we have some talk for example we wanted a new feature and we talked with the guy that contributes to the Shopee API Also, the Shopee is a really handy way to configure all of the devices it's really simple for an experienced user I want to mess around with what my device supports what is that gain, I have one which one should I put in those fields what values do I have to put there and also because we have that kind of abstraction that we just wrap the API function calls it's pretty easy to maintain because we don't have to mess with the main code we have to add new devices in the XML file if anyone is there so we don't say that everything is perfect with the Shopee one problem is that not all modules are exactly the same for example when I was adding the arguments field some modules were reading them only when they are making the device another were reading them also when they set up the stream so we had some problems there the XML file it may be pretty easy to add a new device but it's not so easy if you want to add a new game for example you can mess up some stuff also it's pretty messy with the Chita and the spaces that you must use for the Python to generate it correctly so that is all from me thank you any questions yes that's a good question we have some preliminary measurements