This is the tenth week of being an intern at Aeste Works. Continuing from last week, I found a way to separate normal USB packets and networking packets. This can be done by checking the twelfth and thirteenth byte of the payload found in the readBuffer. Protocols such as IPv4, IPv6 and ARP would always be 0x80 in the twelfth byte. Dr Shawn also advised me to have a clear separation between the USB segments and lwIP segments as I had originally mixed both in my low_level_input and low_level output functions. So instead of having the USB CDC read called within my input function , I had to code it to call the CDC read from the main application and then pass the parameters of the USB buffer and its length to the low_level_input. Next week, I would start to write the low_level_output to enable two way communication between the lwIP stack and the USB stack and hopefully would successfully ping the USB CDC ECM device. That’s all from me this week.