There are 7.8 billion people on Earth, and looking through their portfolios is a great deal of work. When it came to showcasing our portfolio, we wanted to give you guys a pass. We wanted to build something that could automatically run through our portfolio with no user input.

What it does

The Portfoliator is a hardware hack that uses a Raspberry Pi 4 to emulate a keyboard. All you do is connect the pi to your computer, and press the button. With that, you are presented with a live demo of who we are, what we've built, and a quick run through of the top projects we've built together (music included).

How we built it

We used a raspberry pi 4 to emulate a keyboard, and GPIO pins to interface with the push buttons. To type and send key combinations, we wrote a few helper functions in python that wrote to /dev/hidg0 (on writing the write data to this file, the pi outputs the corresponding keys to the attached computer).

Challenges we ran into

  • For some reason, after the pi was connected to the computer for some time, all keyboard inputs to the computer would fail. We later realized that this was because the pi disabled the other input devices because it was constantly pressing the start key. (We fixed this by sending a null byte array to /dev/hidg0)
  • Originally, we planned to use an Arduino Uno, but upon flashing HoodLoader2 (a custom bootloader that allows you to use a Uno as a Human Interface Device), we accidentally corrupted the firmware. To fix this, we ordered a ISP (In-circuit Serial Programmer), but for the remainder hackathon the Uno was unusable. Thus, we used the pi 4 instead.

What we learned and accomplishments that we're proud of

  • We learnt how to emulate a keyboard using a Raspberry Pi - this was enormously fun.
  • We also learnt to setup a reverse ssh tunnel from the pi so that all of us could connect to it (We worked on this project remotely)

What's next for Portfoliator

With the raspberry pi 4 emulating a keyboard, the possibilities are limitless. We plan to support Microsoft Powerpoint, Google Docs, and maybe even use Machine Learning and Artificial Intelligence to automatically showcase anyone's portfolio, not just ours.

Built With

Share this project: