We knew that we both wanted to do a hardware focused project for this hackathon. When doing research on the Dragonboard, we discovered that a library existed for Arduino that would allow us to output analog video to a TV. From there, we though of a ways to make different peripherals for a computer from arduinos to construct a basic computer that could run Linux from Arduinos with the Dragonboard at its core. After digging even further, we found that Arduino recently released the Yun Rev 2. Unlike the Dragonboard, this board had no support for a keyboard or video/audio output. From here, we decided that we were going to use the Arduino peripherals we had thought of to expand the functionality of the Yun, creating an Arduino-based "PC".
This project proved to be a challenge from both a hardware and software perspective. Designing a system with multiple microcontrollers posed many different challenges. The first of which was, how would they all communicate? We decided on using the I2C protocol, as Arduino libraries exist for easier implementation, along with the fact that every component of our PC could communicate over the same data line. We used the Yun as the master and decided to make our graphics card(an arduino mega) and the planned keyboard controller(an arduino uno) the slaves. In this configuration, the keyboard controller would send data to the Yun, which would parse it into commands for the Linux command line, and the Yun would then send these constructed messages, along with the return values of the commands, to the graphics card for display. The graphics card also proved to be a challenge to implement. Although the circuit to interface with the TV was fairly simple, the library had not been updated since 2010, thus needing lots of work to make functional again. While this posed our biggest software challenge, implementing a keyboard was our greatest hardware challenge. We were able to map all of the keys on the keyboard to their proper inputs and outputs, but interfacing with the Flexible Flat Circuit connector on it proved to be too much of a challenge for us. In addition to testing with breadboards, we also prototyped a PCB for each of the microcontrollers in our system. In the end, we were able to produce a functional graphics card and motherboard that were able to communicate over I2C and display Serial data to a TV. In addition to this, we explored some of the other capabilities of the Yun, such as its ability to be connected to remotely when a user was on the same wireless network as the microprocessor. This allows us to send data to the yun for display on its graphics card from anywhere within range of the wifi network.

Built With

  • arduino
  • custom-pcb
  • embedded-system
  • i2c
  • tvout-library
  • wifi
Share this project:

Updates