SWAN main menu click here
I've written the SWAN software using MIT App Inventor. At present, it scans through the alphabet and selection is done by touching the screen, or depressing the smartphone whilst on a foam base (here I'm using the accelerometer to detect rate of change of orientation). Implementing the electromagnetic interface, so that letter selection is done by a commercial AAC switch, has become problematic because of speed issues.
Unfortunately App Inventor just can't do it, and neither can Tasker. For some reason Tasker only registers changes of magnetic field over second in duration, and with all the azimuth calculation App Inventor does, it's not surprising that it's way too slow.
I know that the android OS is fast enough, through Joe Desbonnet's work, and also free sensor apps such as "Magnetic Field Detector" show detection of short pulses well.
Other routes to interface switches were then considered. One solution is to have the phone's charger plugged in during use. The power lead is plugged into an external female micro USB socket. The +5V from the socket is taken to the normally closed switch, then back to a short lead terminated by a male micro USB plug, which is plugged into the phone. In this way, the supply can be interrupted, and this can be detected by the android OS. Unfortunately App Inventor doesn't yet support power monitoring, and although Tasker (the other app development software I'm experimenting with) can do this, the idea is a no-goer because most commercial AAC switches can't handle the possibly high charging current and may not have a normally closed mode. And of course, the flexibility in having SWAN independently powered would be lost.
Another method considered was to use a small piece of aluminium foil taped to the touch screen over a "button". A wire from this to the switch and then to ground could simulate a button press by direct influence on the capacitive screen. After a bit of experimentation, the idea was deemed too dodgy and doomed. Interesting though, and perhaps with the inclusion of a FET it could be made to work reliably. Here's a Hackaday post where the method is demonstrated.
Also considered for use as a switch interface were an ultrasonic transducer next to the phone's microphone, the microphone input jack socket, and the ambient light sensor. All these require more hardware than the simple coil of wire. The electromagnetic interface is the way to go.
No Room In My Brain
So, where to go from here? I'm designing the PCB for the electromagnetic interface. I'm continuing development of the functionality, with both App Inventor & Tasker, but the project really needs a software"plug-in" of some sort, to handle the speed issues. If I can't get any help in this direction, my completed software algorithm could be used by a third party software house as a template to produce some professional code. This would mean I'd have to do a modest "Kickstarter", in order to pay for it. I'll get some quotes, once my algorithm is finalised.
If I had the time, I'd learn the Android APK development environment, and the whole thing could be done in a professional manner. But it's been way too time consuming just to get to the stage I'm at - I've a modicum of expertise in App Inventor, and just learning Tasker.
It is shortage of spare time, I'm not suffering problems like Homer! -