 Or just maybe just the beginning I can begin directly Okay, okay, then I think it's a time. Great. We'll start with our next speaker. I Sheldon will be talking about I open Wi-Fi and Thank you very much. Thank you. Thank you everybody. I know you are tired or sleepy It's a long afternoon or long weekend. So my presentation will be in a different way You don't need to ask question. I Will ask question for for you to myself In this way, I try to attract you from beginning to the end First question very basic What is open Wi-Fi? It's not the Wi-Fi that give you open access all over the world I know there is such a project also called open Wi-Fi Unfortunately, unfortunately, this is not The answer is that open Wi-Fi in our project it represents The open source I triple E 802.11 or Wi-Fi cheap design Before this project, I think Many people only have one choice use some commercial Wi-Fi chip but after this project you have one more choice open source Wi-Fi chip But in this phase is not a real Wi-Fi chip yet. It's running in the IPGA You must as you must know that IPGA is Our IPGA verification is a very important step Before you tape up tape out a real Wi-Fi chip, right? You use IPGA to verify Your IC design is correct So current phase is IPGA design You can just the Google open Wi-Fi you will find our github repository Currently, I think is in the top three or top four item in the Google search engine Well, maybe depends on your browser or how or your most frequent Most frequent searching word in your browser, but in my browser is the third one Okay, why we say it's a Chip design or Wi-Fi chip Because it's not like it works not like the USRP or gonna radio stuff It's really work like a commercial Wi-Fi chip You may know or you may not the commercial Wi-Fi chip actually offer you two things The first one the silicon right the chip itself The second thing is the driver most of most of time. I guess we use the Linux driver Then that's it right you insert the dango The driver is auto loaded or you install it. That's how commercial Wi-Fi chip works Our design also works exactly in the same way We offer you the chip design, which is IPGA currently We also offer you the open source Wi-Fi driver Which works below the Linux native Mac 802 11 Wi-Fi from framework this framework is used for almost all the commercial soft Mac architecture Wi-Fi chip We also offer you a very tiny tool users based tool to communicate with our driver and IPGA So that's the basic architecture as you can see same as commercial chip Actually, if you go to our demo you can use your cell phone to connect our The chip the Linux run over the chip and there's host APD There's a web server you can access it just like you access commercial Wi-Fi router nice Okay, next question. I guess in your mind is that It's the open Wi-Fi chip Better than commercial Wi-Fi chip, right? That's the quite direct question Why should I use your chip? Is your chip better? The Answer is no and I remind you this is not a joke Disappointed right Well as you may know the those commercial Wi-Fi chip They support quite new standard right a C a X and they support many Attendance right advanced the MIMO processing. I mean MIMO or high-order MIMO And they also support very high bandwidth. That means very high throughput, right? 20 markers 40 markers until 160 markers, right? Those chip are quite advanced Unfortunately our chip in this phase is not as advanced as theirs currently our chip works only in 1111 a 11 g and 11 n mode In all the all the frequency below a six gigahertz that means you can set it in into a 2.4 gigahertz or 5 gigahertz 11 agn and Currently it only support 20 markers Which means the highest the throughput is around 50 or 60 mega PPS right the theoretical peak data rate of the physical physical layer So It's a technology Maybe many years ago the industry has achieved right we rebuilt the Wi-Fi chip chip again by ourselves Well, I would say maybe so far we identify at least one point maybe it's Attractive or a little bit better than commercial Wi-Fi chip The point is that our design currently is based on the system on chip the silencs zinc IPGA With the ARM processor embedded in that case Our full Wi-Fi stack. I mean including the from the Linux application to the baseband In the same chip as you can see the red circle Those Linux operating system user space kernel driver and IPGA not the front end All these things in the same chip So we have one well not so big advantage is that if you ping our Note right because it's Linux you can ping it. It has an IP address Your Ico speed your all the ping roundtrip latency is Lower than the commercial chip I Think when you do the ping over commercial chip your roundtrip ping latency is always I guess around One millisecond in our design You can have around point six or point seven millisecond Because it is the SOC system on chip, right? So that's why we also need to offer you the Wi-Fi driver you cannot use use any other commercial Wi-Fi driver Because the commercial Wi-Fi driver always works over the USB bus or PCIe bus, right? But in this chip, there's no I mean the interface between our Wi-Fi chip Which is IPGA and SDR driver here the interface is not USB or PCIe It is the silencs on chip bus, which is the AXI stream or AXI memory mapped DMA controller so that's why we have to develop The Linux driver for this quite special on chip low latency high throughput link For our Wi-Fi design Okay, if open Wi-Fi is worth why should I use open Wi-Fi? Well, this is the key part. I try to answer the question to convince you Okay But this time I remind you this is a joke So why you should use the open Wi-Fi design Well, very direct usage of this design is for education, right? It's quite obvious If you are a researcher or a professor in the university, you try to teach your students How exactly a Wi-Fi chip run if you buy a commercial Wi-Fi chip That has the black box silicon You don't know what is inside. How can you teach students? Know how knowledge of Wi-Fi chip run So with this design you have the full stack, right? Open full stack from the user program in Linux to the Athena. I mean in the IPGA We also there's also logic to control the front end and Athena as the Athena selection TX, Gain, RX, AGC stuff Everything works just like those module in a commercial chip Okay, for the secondary usage, right? There could be many You may have ideas to improve Wi-Fi chip or customize the Wi-Fi chip for your Special application if you run a business, maybe you have some special customer in the aviation industry Or railway industry, right? They have very special requirements to your Wi-Fi communication system And you may try the commercial Wi-Fi chip at first Maybe it's perfect for your application. Then you forget to open Wi-Fi If commercial chip is not good enough, you try to tailor or customize the commercial chip, right? You go to the big commercial company The first question You get will be how many PCS you will buy from our company per year, right? If you say a thousand chips, then I think you don't have any chance You should try our design, tailored, customized for your special application and If you are using some full Mac Wi-Fi chip, not the soft Mac Which means that the Wi-Fi chip is very complicated all the Mac layer, link adaptation Everything advanced control is in the chip. In that case, you don't have full control of the chip from the driver Maybe you have you if you want some special functionality You need to reverse engineering a little bit the chip firmware in the chip, right? That's the most of the Wi-Fi security researcher or Wi-Fi researcher currently do Do the reverse engineering of the firmware of the Wi-Fi chip But with this design you have the transparent design the fully controlled functionality And okay, you want to modify Wi-Fi chip is not possible. You want to see How your new component work with Wi-Fi how your new component will improve performance of Wi-Fi network such as you make a new PA, right? High power amplifier for long range. You make new LNA. You make new antenna or beam antenna Make new algorithm You can test your component your idea or your algorithm On the face over the open Wi-Fi design Actually Before the project was announced last Christmas We already had some seed user in the all car project Which is a horizon 2020 European project and they are using the open Wi-Fi board in our testbed They are doing some amazing thing That I cannot tell here you will know at the end of the project Because we have NDA I think So any other related work? I have to answer this question, right? Because otherwise I cannot Say my project very proudly that we are the like first blah blah blah Yes, there are we are specifically precisely speaking we are not the First one strictly speaking many researchers in the community has tried the Wi-Fi implementation Such as the okay the first row is our implementation the second row is from VARP Which is originated from rest University a long time ago. I think some of you use that IPGA design But it's the pure IPGA. There's no Linux no native Linux framework, right? And national instruments live view they have the whole IPGA Wi-Fi application Wi-Fi design based on usrp right with the x 300 C area where big IPGA inside If you have budget, yes, you can use national instruments and Also this work actually this work is also quite good They also design IPGA Wi-Fi implementation and they also support my more But they use the PC as the running the Linux They set up the USB between the IPGA board and PC Compared to them. I think our unique point is the SOC our Linux and the Wi-Fi is on the same chip and Microsoft okay long time ago Microsoft has achieved software real-time processing of the Wi-Fi protocol You should check that paper. That's a quite amazing result a long time ago But one little thing I should remind you that Their implementation actually cannot achieve a fully real-time operation of the acknowledgement Because Wi-Fi need you make acknowledgement in 10 microsecond, right? That means when you receive packet you need to do lots of processing and generate acknowledgement in 10 microsecond in the Microsoft Implementation they can only generate the acknowledgement for long Received packet not for short received packet because if the packet incoming is too short They don't have enough processing time to generate acknowledgement, but for long Package long incoming package the Microsoft solution. Yeah, they can generate the 10 microsecond reply in in time Okay, this one from glue radio. I guess the author I met the author I know the author a long time ago many people already use this GR 802 11. This is quite good project for for you do experiments over When you only need to transmit or need Monitor right if you don't need the real-time interaction with commercial chip This is quite good starting project for the Wi-Fi research based on glue radio. I won't go deep You can check the slides later find out all the links Only try to emphasize our unique point is that Our design is based on system on chip. You have very low latency between your Wi-Fi card and computer Which is also in the same chip So is open Wi-Fi hardware expensive? That's very important question We care this a lot because it matters for the community Actually, if you don't have hardware, right, you don't have budget you can try the Open Wi-Fi in our testbed actually the same testbed as the previous speaker the the iLib T in iMac facility We have installed open Wi-Fi board several boards there. You can try it remotely if you have budget, right? You can use this quite small Supply radio board system on module. I think built by an analog device zinc IPGA and Analog device front-end on the same module We have ported design on it We will port the design to more and more boards and recently there are quite cheap board I would say built by Chinese companies called an H 7020 which is with that has the same IPGA as as the Z board. We are working on the Z board Currently the progress is Significent, but still some issue we need to solve. I believe that board is possible and Currently, maybe that board or 7020 is the minimum IPGA we can use for this project Okay, let's try to push you If you are not sure should I use it or not? Actually, you are not obliged to use it Just try to do some advertisement although it's forbidden here. Yeah, I know So well just like the first version of Linux, right at the beginning. I don't think Linux Target is to a beat IBM Unix a beat HP Unix, right? at the beginning is just a mimic work of the Minix which is used to teach students the operating system right in the university That's just the first mimic work of the from Linus because she's not satisfied with the Minix license condition if I remember correctly, so He make the Linux first version by his own in his dorm and then release it So what happens next right in the past many years you have seen So we hope a more and more people can just try to open Wi-Fi project Not just compare our design to the commercial Wi-Fi chip That will help us a lot Yeah, talk is cheap show me the code. Yeah, you can find our code on the github Thank you Maybe Well, this is a normal presentation I will ask you a question Actually, we have observed this phenomenon a long time ago the community in the CPU domain, right? Computer science domain the open source Activity there is quite a lot. They are quite active risk 5 arm Intel CPU right Linux many open source project even open source firmware right open source BIOS On the other side in the connection domain Wi-Fi connection cellular chip Wi-Fi chip Bluetooth chip all the connection chip for the Radio link This domain is quite close almost all the connections silicon up black box I don't know why so I asked this question Meanwhile, I try to do something in this domain To do this open source Wi-Fi chip So Talk is cheap show me the code I have to show you something not the real code But I try to explain a little bit about the whole project the building blocks, right? At the bottom, this is the our front end in the black. This is the AD 9361 There were two 2RX 2TX ADC DAC, right? And fortunately, they have the AGC module inside front end So our baseband only need to read the real-time AGC game to assist to assist our IPGA to calculate real RSSI That's the front end, which is not built by us. Okay On top of the front end the blue one is the IPGA building blocks at the beginning We thought okay Wi-Fi implementation Maybe we implement the OFDM transmitter or FDM receiver hook it with Linux, then that's it. We down we celebrate Finally, we realize no It's way more more complicated than your imagination way more more things than just the physical air signal processing You see the physical air is over here open ORFDM RX Open ORFDM TX these two physical air block they take IQ sample or take packet, right? Then generate packet or generate IQ sample Then huge things are out of the physical air This branch is for the Receiver path. We have a DDC attendance election fit IQ to the physical air then Take the packet to the Linux Meanwhile Not all the packet will go to Linux if you check the Linux Mac 8.0 to 11 framework They tell you what should you do in the Wi-Fi chip? They you should do a Packet filter Linux otherwise the workload of Linux is too much Here we also need to do the handle all the DMA stuff Rx DMA from IPGA to Linux We set up a ring buffer DMA actually keep keep running in the background in the driver We check the DMA status. That's why we know what the state was the latest the packet In the central is all the CSMA low Mac layer in IPGA You need lots of functionality. You can check the standards. They define everything very clearly You need CCA right detect channel is busy or not two methods based on our SSI our SSI has to be precise Right, otherwise, you have one answer based on preamble, which is from the OFDM receiver status Okay, you output channel status to the CSMA CA engine in this engine You do the random back off right according to your condition window, etc. All the parameters in the standard You also need to do the virtual carrier sensing virtual carrier sensing means that You monitor all the package in the channel ongoing in those package There's a field called the duration the duration tells you that Transaction or that interaction will occupy the channel for how long for how many microseconds? That's for the virtual carrier sensing you to get that information you have to Pass the all the package incoming pass the duration field not only actually you you also need to pack Mac address meant everything fit to the CSMA and packet theater also need this pass result and You generate the act cts reply in real-time do retransmission in IPGA because Linux give you a packet meanwhile Linux will tell you for this packet You should try this as MCS for how many times try that MCS for how many times IPGA? You need to do that Linux wait for your result work hard So wait for the act right when you send the packet your IPGA need to wait for the act Otherwise, you cannot tell me tell Linux that this transmission is successful or not. This is TX pass which do the reverse processing as the Rx Okay above IPGA those are driver modules ad driver communicate with the front end directly to do the channel tuning right TX RX stuff and TX interface driver configured this part the DMA driver right the silence DMA driver we use we we modify silence DMA driver tailored for the for the case and TX RX driver DMA driver Basically those driver configure the IPGA registers functional register to control the behavior of your IPGA design Above the driver. Okay. That's the fortunate thing Linux define everything Mac 802 11 framework Linux define whole bunch of APIs they need You don't need to implement them all but you need to implement necessary subset right To support ad hoc mode AP mode station mode or monitor mode different mode need different combination of those Linux APIs Okay, basically that's the whole design of the open Wi-Fi questions Okay, the question is when we do virtual carrier sensing if the packet comes from Linux, what should we do right? Okay, okay for the TX pass actually there there are two cues Actually, Linux ask the chief With better has at least the focus, but currently we implement to is still just a work So all the packet comes from Linux. They cannot go outside Immediately right first into the queue and CSMA engine will decide when is the right timing for next packet to go Outside different queue could have different priority or different purpose such as for beacon for data Something but there is a lot of like flexibility If the the sensing module believe there's a chance for us to transmit, right? Then we can select one queue one packet from one queue to transmit Maybe that yeah CSI information right Currently you can capture the CSI in IPGA But I think we will do that because one benefit of software development radio is that we can have deep access to the physical layer Please oh, please Okay, thank you. Okay you Yes, yes, their front end actually is quite complicated. I believe there are firmware. There are lots of digital processing Yeah, but Our sock. Oh, I know that the latest generation with high speed ADC DAC, right? Maybe we will try it later Next priority next for a priority, I think We still need to test the design with many commercial device compatibility issue for instance currently it works with laptop iPhone, but we do identify Okay, we do know that for instance the OnePlus Android phone always has issue with our design So maybe it's related to the different chip have different signal quality. We still need to be back We try to make it more stable and compatible to Somehow there's this funny algorithm from the organizer of this