I wanted to learn the basics of serial communication, so I decided to build a device that spoofed the serial communication of a Nintendo Game Boy. This project had already been worked on by others in the past, so I had some code to work with.
After some tinkering and code improvements, I completed a successful handshake and spoofed trade by bit-banging serial data through an Arduino. I would like to pick this project up in the future and create a flash drive sized device that lets users fake Pokemon trades to their old gen 1 saves.
See below for a github repository link