ginkage / FlippAirMouse

Air Mouse for Flipper

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

"Buy Me A Coffee" paypal

BMI Air Mouse

Brief

"You can turn anything into an air mouse if you're brave enough"

— Piper, a.k.a. Pez

Naturally, the quote above applies to Flipper as well.

What?

The app allows you to turn your Flipper into a USB or Bluetooth air mouse (you do need an extra module, see the Hardware section below)...

Using it is really simple:

  • Connect the Flipper via a USB cable and pick USB, or pick Bluetooth and pair it with your PC;
  • Hold the Flipper in your hand with the buttons pointing towards the screen;
  • Wave your Flipper like you don't care to move the cursor;
  • Up button for Left mouse click;
  • Down button for Right mouse click;
  • Center button for Middle mouse click;
  • Left and Right buttons for scrolling;
  • Use calibration menu option if you notice significant drift (place your Flipper onto a level surface, make sure it doesn't move, run this option, wait 2 seconds, done).

See early prototype in action.

How?

  • Clone this repository with git clone --recurse-submodules to include the driver implementations.
  • Build the project using ufbt

Hardware

The custom module is using Bosch BMI160 accelerometer/gyroscope chip connected via I2C.

Note: in fact, some other IMU chips are also supported. It's detected via the first found I2C Address.

Chip Expected I2C Address
BMI160 0x69
LSM6DS3 0x6A
LSM6DSO 0x6B

Take a look into the schematic folder for Gerber, BOM and CPL files, so you can order directly from JLCPCB.

Original idea:

What I thought it would look like

Expectation:

What EDA though it would look like

Reality:

What it looks like

Software

The code is based on the original Bosch driver and an orientation tracking implementation from the Google Cardboard project

License

TL;DR: Use the code however you want, give credit where it's due, no warranty of any kind is provided.

About

Air Mouse for Flipper

License:Apache License 2.0


Languages

Language:C++ 74.6%Language:C 25.4%Language:Shell 0.0%