Android Question General advice on an EFIS project.


New Member

I'm dealing with a project to make an Electronic Fligth Instrument (EFIS) that will use an Androit tablet as a display device. It will comunicate by Bluetooth with an custom electronic system wich will make all the sensoring and data procesing wich will pass to the tablet all the data to being displayed.

I've been reading the B4A main tutorials and practicing so even when I'm newbie to the Android programing I have some background to undertake this project. It will have only one activity wich will be the display. General shape of those displays (that I want to replicate) are as follows:


So, something similiar to this is what I want to make. And I'm wondering wich kind of objects will be the most adecuate to make the 3 kind of graphical data representation (Horizon, Sliding scales and other data). I guess that for the horizon I could use a bitmap ploting wich I will change it's position and rotation, but don't know wich objects/methods will be the most adecuate. Suppose that could be similar for the sliding scales. In the atached .zip there's a small video showing how sliding scales and horizon move.

I'll be glad if you can give me advice of which objects/methods/functions/libraries and general gidelines I should follow for undertake this project in the best way.

Thank you very much.


    341.4 KB · Views: 108


B4X founder
Staff member
Licensed User
Longtime User
1. Make sure not to rely on such instrument. It will never meet the needed safety requirements.

2. Don't use activities. Only B4XPages.

3. I would have used B4XCanvas to draw all of this.

4. Use a timer to update it every x milliseconds. Don't try to react to events.

5. B4XCanvas will be fast enough to reach at least 30fps, in release mode.
Upvote 0


New Member
Thank you!

Of course I'll always keep in mind shuch safety consideration. It's intended to use in the experimental aviation realm.
I already thought to use a timer to do the periodic update of the display as well as the reading of the incoming data.
Upvote 0


Licensed User
Longtime User
I agree with Erel.
I would do everything with B4XCanvas.
I am sure that there is no existing library to display this kind of data.
You may need several layers, one for each type of data.
As oparra suggests, you may have a look the xGauges b4xlibrary as an inspiration.
You can unzip the xGauges.b4xlib file to extract the code of the xGauges.bas class code.
Upvote 0