LipSync V3.0

A project log for LipSync

An assistive tech which allows quadriplegics to use touchscreen mobile devices using a mouth-operated joystick with sip and puff controls

makers-making-changeMakers Making Change 09/02/2021 at 20:580 Comments

Over the past few months, we've been working on improving the LipSync firmware and incorporating a number of other smaller changes. We've made a number of changes and incorporated feedback from preliminary testing with a small group of LipSync users and we're now ready to share this update with the community in an open Beta.

You can find the updated files on Github here.

Here are a few of the big changes:
1. Reduced cursor drift

2. Application Programming Interface

3. Additional Mounting Options

1. Reduced cursor drift.

The force sensitive resistors (FSRs) that make up the joystick are notoriously finicky and the reported values shift over time which can cause the cursor to move unexpectedly. We've added some code to better differentiate purposeful movement from this sensor drift so the cursor should only move when you want it to.

2. Application Programming Interface (API)

We've added an API so that majority of settings can now be changed through a serial interface rather than requiring a change to the code. We've had preliminary success with a proof of concept Android App and ultimately this should allow a user to change many of the LipSync settings independently. For now, the API can be accessed by manually sending serial commands to the LipSync. The addition of the API also has the added benefit of being able to access real-time sensor values so we can diagnose problems and perform a variety of testing that wasn't possible before.

3. Additional Mounting Options

We normally refer to the top of the LipSync as the portion with the LED and the mounting connection on the bottom. Moving the mouthpiece towards the top moves the cursor up on the screen. This provides an intuitive mapping (i.e., a match) between the motion of the mouthpiece and the motion of the cursor if both the LipSync and the screen are mounted with their tops up (i.e., 0 Degrees). In some cases, it is more convenient to mount the LipSync in a different orientation (e.g. upside down, 180 degrees). 

Previously, mounting the LipSync in a different orientation would cause a confusing mapping between mouthpiece motion and cursor motion since the code continued to treat movement towards the top of the LipSync as up. It was possible to manually change the code to correct the mapping, but this requires someone with the skill to do so and access to a computer.

Now, the mounting orientation can be changed by changing a single entry in the code, or using the API. This will make it much easier to use and change between different mounting orientations, which will provide additional mounting options.

Let us know if you test out the updated code and have any feedback. You can reach out here or on our forum