A USB device that updates your screen orientation programmatically
This project is the final product of my Bachelor's Thesis. I wanted to make a project that involved a little bit of everything (hardware, firmware, and native applications that needed to be installed and interact with the kernel). It is a very simple project but very complete.
They say things are more appealing with images, so here you have some! More of
them in the hardware
directory.
PCB Top | PCB Bottom | 3D Case |
---|---|---|
Very simple:
- Get a gyroscreen board or create your own equivalent board.
- Stick it on the back of your screen.
- Plug it into the computer.
- Install the drivers and configure
gyroscreen.conf
to indicate which screen and device are linked. - When you rotate that screen, the device detects the new orientation and will automatically update the OS' configuration of that screen!
And that's not all!
- It even works with multiple devices and screens.
- It uses standards, so any 3d accelerometer should be compatible, and any gyroscreen device could be used for any other general purpose.
- It (will) work on all major Operating Systems.
- It's easy installable.
- And most importantly: it's open source hardware and software!
The best way to get started is to look through the README.md
of each
directory. It's divided this way so everything is easier to find.
Note that you may not need to follow the instructions of all directories to make it work, you might be able to skip or ignore some parts of the project.
I wish I had the time (and motivation) to create a GUI to configure
gyroscreen.conf
, and thus making easier the installation process. However
it's just not worth the effort, right now.
I also wish to port the drivers to Windows and MacOS at some point in the near future, stay tuned for that!
Due to V-USB's license requirements, this project is licensed under GPLv3+.
Check the LICENSE
file for more information. Contact me if you wish to
negotiate another license.
Contributions are more than welcome, always with respect. Feel free to open issues or pull requests!
I uploaded the project to OSHWA (oshwa.org) for a
certification. The certification UID is ES000045
.