# Announcing SoFIS - An Open Source EFIS

### Help Support Homebuilt Aircraft & Kit Plane Forum:

#### Samuel

##### Member
Hi everyone,

Didn't joined too long ago, and have been silent since. Most of the time I'm a flying a little plane (was flying a 4 seater before, but that's a story for another day) in a small town of France.

Here is something that I've wanted to do for years and I decided that a covid lockdown was a good time to start: sam-itt/sofis.

It's an EFIS project, open source, written in C and that can run on a Raspberry Pi (starting first gen). It's far from finished but as it starts to look like something I've decided to make it public and accept code from others.

It also comes with a script that can create aviation maps from osm+openaip. You can pre-cache map tiles from an area around a given point (i.e airport), an entire state or even some countries.

You can run it using either data from FlightGear pre-recorded or live over the network, or from sensors (See Github README for details)

#### pfarber

##### Well-Known Member
So basically its a layer displayed over visuals (terrain, etc) of a second program (Flight Gear)? Most of what your code is doind it simply drawing over the output of a second program that is generating all that visual data. ie another PC is running MS flight sim and you are just adding a layer of airplane looking images. Kinda disingenuous to show that video as that is nothing close to what your code does.

Good luck, but you really should start to put in LOTS of disclaimers about 'not for navigation' etc.

Since you are only using cheap $20 IMU silicon and not a single gyro its a toy that's been done a thousand times before. Again, not for navigation and DEFINITELY not IFR. #### Samuel ##### Member So basically its a layer displayed over visuals (terrain, etc) of a second program (Flight Gear)? Most of what your code is doind it simply drawing over the output of a second program that is generating all that visual data. ie another PC is running MS flight sim and you are just adding a layer of airplane looking images. I think there is quite a misunderstanding there: SoFIS draws everything (3d code is in the fg-roam submodule). There is no second program on a second computer for the drawing. However SoFIS can be fed with *data* (latitude, longitude, temps, etc.) from another computer on the network, and render that data. The guys over at FlightGear have done a great work at putting freely available DEMs (Digital Elevation Models) into a file format with vertices and textures. SoFIS uses that data for the 3d part. Kinda disingenuous to show that video as that is nothing close to what your code does. The video show what the code does. Good luck, but you really should start to put in LOTS of disclaimers about 'not for navigation' etc. This is experimental code. Have personal responsibility and use your judgment. Since you are only using cheap$20 IMU silicon and not a single gyro its a toy that's been done a thousand times before. Again, not for navigation and DEFINITELY not IFR.
SoFIS can get data from anything. The cheap modules are just an example (as a side note UMN seems to have good results with UAV autopilots based on these). Before starting SoFIS I googled for open-source EFIS, I found:
• Kwik EFIS - Android application: not the thing I was after
• An old Sourceforge project, OpenEFIS with nothing I could use
• Various scripts in python
Nothing of those are doing what SoFIS currently does.

IFR never been the target.

Last edited:

#### Hephaestus

##### Well-Known Member
I think there is quite a misunderstanding there:
Don't worry it's not on your end. Pfarber has an issue with any post that has the word pi in it. Next he'll go on a rant about how unsuitable and unsafe the hardware is.

#### Samuel

##### Member
Well, to me when you see that these cheap units are capable of flying drones and handle quadcopters stability, that tells allot.

Are you willing to trust them with your life? That's a decision that one has to make. That's why SoFIS could be fed from any source, be it some DIY sensors or something more serious.

#### Vigilant1

##### Well-Known Member
General comment: There's a lot of potential in this initiative. Wide adoption will probably require somebody to make it user-friendly for builders/pilots who aren't keen on becoming hard-core Pi hobbiests and programmers.

All in one box, PC board soldered, files ready to load, youTube videos for handholding , standard sensors, etc.

This description (below) will be enticing to some, but put a lot of potential users off (folks interested in a result rather than the fun of mastering the process). Maybe builders uninterested in learning the details of C shouldn't attempt this project, or maybe it can serve as a good way to lure folks in if it is made simple enough.
It also comes with a script that can create aviation maps from osm+openaip. You can pre-cache map tiles from an area around a given point (i.e airport), an entire state or even some countries.

You can run it using either data from FlightGear pre-recorded or live over the network, or from sensors (See Github README for details)

#### Samuel

##### Member
Wide adoption will probably require somebody to make it user-friendly for builders/pilots who aren't keen on becoming hard-core Pi hobbiests and programmers.
Agreed. SoFIS is still in (very) early stages of development, there is currently no "release" per se, just the master branch which I try my best not to break. One of the reason that it is open-source is to have people work on the project. Working on the project doesn't mean only code, but all that packaging (files ready...), hardware (3D printing boxes, evaluating screens, boards other than the pi, etc.).

This description (below) will be enticing to some, but put a lot of potential users off (folks interested in a result rather than the fun of mastering the process). Maybe builders uninterested in learning the details of C shouldn't attempt this project, or maybe it can serve as a good way to lure folks in if it is made simple enough.
Again, 100% agreed. The only problem is that the final result is not yet here. I don't expect everybody to dive in the C code or start learning it (BTW the script is python). At the moment the target of the project is both people that want to try it out and people that have pre-existing skills in all the areas that requires tinkering. Not yet ready for the average end user, that's for sure .

#### trimtab

##### Well-Known Member
It's good to see another effort out there. It's repetitive to see criticism that shrieks to say this is an application too demanding for inexpensive hardware or middle of the road programming skills. That's pure projection of fundamental misunderstandings of the requirements of the problems and the capabilities of the equipment. Statements disparaging $20 IMU's for example are vapid. The only thing that matters is requirements, capabilities, and execution to make the two meet. Without specifics in any of the criticisms, they are reduced to useless FUD. In my case, I used an IMU for nothing more than health checks to verify that commands to the AP were rational and produced reactions that were within limits (roll and yaw rates). It did cost more than$20, but not a lot more, and this was years ago.

It's more useful to talk about specific requirements and the challenges in meeting them. For IMU's, things like slew, drift, jitter, electrical characteristics, environment, filtering, cadence, axis conflation, temp sensitivities etc. Then consider the magnetometer...similar specs. Pressure instruments? Different, but important. Find components that can meet the specs, execute.

Having been through this exercise myself and having flown my hardware (using the PI filters of the installed certified AP, but all the command was my hardware), the path to a viable EFIS hardly seems limited by low budgets or straightforward software, but by people who are determined to believe any of this is as really, really hard for anyone else as it would be for themselves.

#### wktaylor

##### Well-Known Member
There is one broad aspect to electronics for aircraft [avionics], never seems to be mentioned, in most of these threads... at least as far as I can tell.

As some may know, I work primarily on military aircraft that have to survive and fight. And I am the one-eyed man in the kingdom of the blind when it come to the following. Aircraft operate in a environment teaming in the chaotic electromagnetic energy across the entire radio and light spectrum... man-made and solar generated. It' not pretty... its messy. It can go from a low background intensity, flea-like nuisance... to scratchy/irregular/intermittent radio com/nav... to a massive dam-burst that shuts down the electrical grids across nations.

Certified equipment has to operate safely/reliably... within limits of certain categories... in this messy environment of CME, EMI/EMP, TREES, HEMP, lightning, static-electricity/corona, ionizing-radiation, electronic warfare, etc. Makes my head hurt how 'MIL' aircraft have to be hardened against most of these threats.

The one element of uncertified avionics that I'm going to mentions is 'what happens' to the equipment... and even in-line-aircraft-systems/components[switches, generators, connectors, etc]... in these environments. Does everything shut-down or fail-safely and re-initiate quickly/seamlessly?

One of the funniest cartoons I ever saw... that looking-back wasn't really... in the center of the frame was a full-motion-airline-simulator with 'cursing-symbols' coming from the cockpit... and the sim-instructor at his console outside of the cockpit was saying to his assistant... "So, we have them over the Rockies, on oxygen, at night, in a thunderstorm, an engine-out... now let's throw-in total electrical system failure." Think about it...

SO... what do You intend to do with Your low cost avionics systems? Enhance VFR dawn/day/dusk operations... or fly night-all-weather-IFR-bet-your-life-on-it? The level of trust placed on the system need to be equal to the system capability/reliability.

Just sayin...

#### trimtab

##### Well-Known Member
This is a crucial distinction. But throwing money at the problem doesn't solve anything. Sound execution and components does.

The environment in a small GA airplane is similar to a '57 Chevy, albeit with a few strong rf emitters present. Things are noisy, and I'm all to familiar with that. Having designed and installed consumer and commercial grade electronics in helicopters and aircraft large and small with public use exemptions left and right, it can be downright challenging at times to manage noisy IO. But this was entirely irrelevant to my project, which had a the sensors and the processor on a 3" x 4.5" custom board that was properly designed and executed to not care about all that.

Reliability is always an issue. And I submit that is largely the product of good execution and commercial grade components in the realm of flight control systems like an EFIS or AP.

#### Vigilant1

##### Well-Known Member
At the moment the target of the project is both people that want to try it out and people that have pre-existing skills in all the areas that requires tinkering. Not yet ready for the average end user, that's for sure .
That is super, and I'll be among those looking to benefit from the hard work (or "challenging fun," depending on perspective) you trailblazers are doing.

#### Aerowerx

##### Well-Known Member
..... It's repetitive to see criticism that shrieks to say this is an application too demanding for inexpensive hardware or middle of the road programming skills.......
Keep in mind that the thing you have in your back pocket that cell phone companies are practically giving away.... Is far more powerful than the systems on board the Apollo capsules that took man to the moon and back.

#### Yellowhammer

##### Well-Known Member
Keep in mind that the thing you have in your back pocket that cell phone companies are practically giving away.... Is far more powerful than the systems on board the Apollo capsules that took man to the moon and back.

**** Right!

#### trimtab

##### Well-Known Member
Keep in mind that the thing you have in your back pocket that cell phone companies are practically giving away.... Is far more powerful than the systems on board the Apollo capsules that took man to the moon and back.
Funny you should mention this.

The Mars rover Perseverance uses a PowerPC 750, a single core platform that has been around since 1998 or so. It runs at 233 MHz.

The Snapdragon 801 processor in my current cell phone is the same chip being used in the Mars helicopter Ingenuity about to be taken for a test drive in a week or two. In fact, a large portion of and most of the critical parts of the entire system architecture of Ingenuity is based on consumer grade components, many of which were purchased down the road from me at Spark Fun. This includes a $16.95 IMU breakout board for the primary attitude (see the derision given to "$20 IMU boards" above as being impossible for a simple AP, for example), a version of OpenCV (open source image processing) for the high speed image processing required for navigation, a $7 inclinometer, some redundancy, etc. So much for "you can't get there from here without superintelligent people and astoundingly high priced components". There was a lot of yapping about rad hard requirements in this thread as well that make consumer or commercial grade components irrelevant for simple terrestrial AP's. I say show me the bodies or the wrecks. Because Mars has almost no atmosphere to attenuate cosmic rays or other radiation, and an almost absent magnetosphere...and overall radiation exposures of up to 700 times that of a terrestrial vehicle on the surface. And you know what? It's fine. Really. The right redundancies, the right software and systems plan, etc. Once again, it's largely execution that makes the difference in meeting the mission goals. The ONLY thing that stands in the way of cheap hardware and an affordable AP's that blow anything Garmin had in the market until recently out of the water is skill, time, and interest, emphasis in the latter two because the first in the list are really not a high bar. I have also talked about my ADS-b system that cost me some hundreds of dollars to develop around an old RFOne and could be done for around$150 now using a $40 DDS and a small MCU (and the WAAS antenna to meet the letter of the requirement, even if it makes no difference at all to the actual performance requirement of the law). Or how genuinely crappy the$5k-\$7k ADS-b units were at the time I developed it. It was really pretty straightforward as well.

Aviation has a long history of failures by going cheap and simple. It also has a long history of failures by going expensive and complicated. Obviously, these things are not good metrics of how to be successful in an aviation endeavor. I admire the people that focus on the right metrics, and actually are successful.

#### 9aplus

##### Well-Known Member
...
It's an EFIS project, open source, written in C and that can run on a Raspberry Pi (starting first gen). It's far from finished but as it starts to look like something I've decided to make it public and accept code from others.
...
Nice work Samuel,
Have made one certified glass cockpit upgrade together with my Jr in 2018.
One of non supported option was the ADS B reception, because of certified source
which was prohibitive on the price side. (with no FLARM & OGN)

Therefore we left some space on the left from yoke, to put 7-8" display with RPI background
/for informative purpose only/ with intention to show ADS B, FLARM and OGN signal presence.
Unfortunately that aircraft is destroyed in storm in the mean time, but now we are building 2 seater
experimental, which can be nice platform to test with your EFIS...
Regards
Djani

Last edited:

#### wktaylor

##### Well-Known Member
TrimTab... You're the man...

Care to enlighten a dum-ole-enginerd like me how you know so much about the intimate design details of the Mars helo Ingenuity?

Were You were part of the design-team/effort? Regardless, You probably know about published research, development and test [RDT] papers available on-line. Please advise my tech curiosity is killing me.

The Mars environment is pretty hostile I'm sure there are no expectations for more than just a few test-flights over a couple of weeks... although I HOPE this design goal is conservative and the helo is more robust that that and lasts months.

BTW in-transit to Mars, it was buried deep inside the cruise-vehicle/rover/re-entry structure and in a specially-protected compartment with an EMI/radiation protective cover [under the rover]... protecting it from harshest space environment... right down to landing.

ALSO... can You explain to me why "The Mars rover "Perseverance uses a PowerPC 750, a single core platform that has been around since 1998 or so. It runs at 233 MHz." … uses such a 'clunky old processor'... when new generation processors [even those of 2016] are light years faster and far-more capable and efficient, now???

Thanks

#### Aerowerx

##### Well-Known Member
ALSO... can You explain to me why "The Mars rover "Perseverance uses a PowerPC 750, a single core platform that has been around since 1998 or so. It runs at 233 MHz." … uses such a 'clunky old processor'... when new generation processors [even those of 2016] are light years faster and far-more capable and efficient, now???

Thanks
One reason would be that it would have a history of reliable operation. It would be a lot simpler design with less chance of something going wrong.

#### raumzeit

##### Member
ALSO... can You explain to me why "The Mars rover "Perseverance uses a PowerPC 750, a single core platform that has been around since 1998 or so. It runs at 233 MHz." … uses such a 'clunky old processor'... when new generation processors [even those of 2016] are light years faster and far-more capable and efficient, now???

Thanks
Not sure on exact details, but there are chip designs that get custom-fabbed for exceptionally demanding environments - think outer space. Cosmic rays are zappers at silicon level; old process (bigger band gaps) is actually not a bad thing in that scenario, and there's some fab magic I'm not terribly up on for radiation-hardening those chips. They are always several generations behind latest consumer tech.

An interesting experiment would be bolting iPhone onto beyond-earth satellite and see how standard consumer electronics hold up outside earth's mag field etc. in interplanetary space. I know some cubesats went with Mars mission last window but not sure how off-shelf their internals were or their story since.

#### trimtab

##### Well-Known Member
Care to enlighten a dum-ole-enginerd like me how you know so much about the intimate design details of the Mars helo Ingenuity?

ALSO... can You explain to me why "The Mars rover "Perseverance uses a PowerPC 750, a single core platform that has been around since 1998 or so. It runs at 233 MHz." … uses such a 'clunky old processor'... when new generation processors [even those of 2016] are light years faster and far-more capable and efficient, now???

Thanks
The heli is partially a consumer tech demonstration project. The mission needs for the electronics are low compared to the data bottleneck. The heli is partially a consumer tech demo project common in some areas of aerospace in recent decades.

I'm not an expert in the Ingenuity. I happen to know some of the folks down the road at SparkFun, and can read reasonably well, and I've used lowly hardware on orbital systems in launches of opportunity.

None of this should be surprising to anyone. It was a mission of opportunity, and appropriate for the use of consumer tech on a time and material budget.

If you are interested in the mechnical and aero design of the copter, feel free to google for it. There are several fairly detailed PDF's available.