[Android Q&A, Help & Troubleshooting] xarvox:
Hi all!

Im working on a project but im in way over my head..

If it were easy it wouldnt be fun... :)

First of all; im not the average joe, i have some learning difficulties, witch in essence makes it very hard for me to learn programming in general since its such a huge piece of knowledge to acquire by reading before its getting useful in practical terms.

I do however learn well by doing, so by following guides and so on makes the components much more clear to me compared to reading about them in a generalized manner.

This has been working quite well for arduino, there are numerous easily approachable guides to do pretty much anything, so i generally just have to modify and knit together two or more open-source projects in order to achieve my project goals.

But with Android and the Android Studio application, im hitting a brick wall..

The issue is mainly that the android studio guides expects a certain degree of understanding of java (i have none), and the java guides are too general in nature, and mostly oriented towards web or PC enviroments, so nothing looks similar to what the android studio is creating as a new project.

So im on the verge of giving up on learning java (ive been at this for a while now and literally not getting anywhere) but i figure i give the community a cry for help..

Now, the project is quite ludicrous, it started as a simple turn indicator controller for my recumbent bike a few years ago and im getting pretty close to finishing the version 2, with a number of additional features (high/low frontlight, brake light, trailer connector and so on).

The project 2.0 is built around a central arduino, controlling a number of pin extender (mcp230x) ic´s, to spread out the functions while simplifying the cable installation, going from 1x cat5 (for buttons) + 1x vga (for lights) to a single 4 core cable.

There will also be battery monitoring and a few hall sensors involved, for brakesensing (hydraulic brake system) as well as speed and cadence (rpm on pedals).

The initial idea was to use a tiny 0.92" super-sharp white oled display, but that turned out to be too much for the arduino to handle in a single sketch, so i ditched that idea and started thinking of using my cellphone as a bike display.

The basics are quite simple; i would build a USB-OTG Y-cable, with external power (to charge the phone from the bike battery while in use) that would allow me to connect the phone to the arduino with USB, then use available android usb -> serial libraries to simplify the workload.

The arduino is then ether connected thru its built-in usb or more likely, a usb-serial adapter (FTDI) cable, to prevent anyone from using the easily accessible usb port to write new software to the arduino.

The arduino would "publish" the bike status as a single message, say 4 times/second to a pre-defined serial interface (see above), regardless if the phone is connected or not.

The phone would then parse the bike status message into each function, right/left turn indicator on/off and so on..

Now, the android app would not need much, even if more features would be awesome, the bare minimum required by the project is a simple vehicle dash-board, with speed, distance and a few status icons (icon grayed out when function (left turn indicator for instance) is not active).

Also, a auto-on/off timer would be a neat trick, to toggle the phone display on only when needed, but turn it off when nothing has changed for say 5 seconds.

Future goals would be to have the above mentioned dashboard on top of google maps for navigation with a simple mp3 player integration (play/pause/next), but lets not get ahead of ourselves.. :)

I still dont know how to program android apps.. :P

So what would i need and where would i start?

Any hints, suggestions and ideas are more than welcome! :)

As i wrote earlier, i really "must" learn by doing, so suggesting that i "read some java" is unfortunately not so helpful, while a specific suggestion, "look up x, y and z and things get clearer" is gold!