What it does

Fluxnote uses raw magnetic field strength data to detect rare-earth magnets within a specified boundary. It manipulates the Magnetometer API as implemented in Chrome 63 to calculate the polar coordinates of the magnet relative to a smartphone. Coupling this functionality with a magnetized stylus allowed for the creation of a completely paperless note-taking system.

How we built it

While we knew that mobile phones had basic 3-axis magnetometers that could measure magnetic flux density in three dimensions, we needed to find a way to exploit this data and translate raw flux density into the actual position of the magnet in 3D space. We first approached this problem by taking measurements of magnetic field strength at varying coordinates and making observations.

bfield

After calibrating for the earth's magnetic field by averaging sensor values over a period of time and subtracting this value for future readings, the B-field (originating at a nearby magnet) at any point can be defined as:

test

where B_y and B_x are the B-field measurements along the top and side of the phone, respectively. Then, the angle of the magnet from the axis perpendicular to the phone can be defined as

angle

The distance of the magnet to the phone is proportional to the inverse cubed root of the magnitude of B-field.

d

Knowing magnitude and direction, we can solve for the x and y components of the position. Finally, we detect whether the pen is "writing" on the table with the following inequality.

meme

This gives us a decent estimate for the position in 3 dimensions of the magnet, and we can use this to draw things!

What's next for fluxnote

In the end, this is just a demonstration of what the underlying technology we have built has to offer. Using magnetometer data, we can build a variety of magnet-based accessibility tools, peripherals, controllers, and interfaces. In essence, Fluxnote explores lesser-known technology that can offer a cheaper, more accessible alternative to today's 3D motion tracking systems.

Share this project:
×

Updates