ASPEN EFD 1000 Improved version

Working on a instrument project or just finished a project? Show it to others!

Moderators: russ, Ralph

Post Reply
Message
Author
JackZ
Posts: 2267
Joined: Mon Feb 22, 2016 1:02 pm

ASPEN EFD 1000 Improved version

#1 Post by JackZ »

Hello all
I've already posted it, but here's the right place to do it, I think.
Just to let you know we are working Thierry and I on a ASPEN EFD1000 improved version, using the real ASPEN user manual, so that the functions, graphics and behavior mimic as closely as possible the real instrument. As a pilot IRL, I have the chance to fly a PA 44 equipped with an ASPEN, so this first project motivates me!

For the time being, we focus on all the functions but the NAV part (i.e the display of the current GPS flight plan on the lower part), mainly because we are lacking of some graphic primitives on AM (Corjan?) such as line(x,l1,y1,x2,y2, color, width, style) and because FSX is quite poor with the number of GPS variables published.

Up to now, we have done:
- complete resizing of the instrument to the real dimensions i.e. 1522x800, almost all the graphic resources have been redrawn from scratch
- added a photo realistic bezel as a separate gauge with inter communication variables to the main one. All buttons send their state to the main gauge and are fully animated, even the two rotating dials!
- complete and realistic startup/shutdown sequence with all the auto tests messages, failure flags and the initial splash screen. These sequences are timer based, and can be bypassed if needed, by setting some variables to 0 in the parameters section at the beginning of the code.(on the real instrument it can take up to 5/6 minutes to have the sensors adjusted!)
Upper section:
- Speed tapes variables (Vne, Vno,vs0) are fully configurable in the parameters section. We have also added the vs1(the small white tape)
- max speed and min speed range adjusted and displayed in red or dashed according to the manual.
- alt tape reworked, altitude is displayed using two lettersizes as in the real one. Negative altitudes are displayed up to -1500ft.
- captured altitude now behaves like the real one( warning 200 ft before, and cleared when +/-25 ft of the target, one sec beep tone only). MINIMUMS alt setting and display/warning are on the work.
- Horizon now behaves like the real one: the scale has been redrawn, chevrons appear at +25/-15 degrees of pitch, and part of the earth is still displayed no matter the bank/pitch to ease recovery.
- the speed and altitude tapes can be displayed/removed from the screen by a key press on the right TPS button as in the real one, and the display clipping of the bank scale adjusted accordingly
Lower section:
- The rose now displays the NSEW letters correctly with a bigger size as in the real one (cosmetic!)
- The HSI now correctly display the TO/FROM flag (was inop)
- the HSI displays a hollow center needle when out of range of more than +/- 5 degrees
- the HSI center display and info block are removed when the selected source is unavailable
- the left info block now displays the currently selected NAV source or freq and the current radial, speed and ETA
- the NAV source can be changed to VOR1/VOR2/GPS1 with a press on the center button of the bezel
- the two RMI needles can be displayed using the two lateral buttons, the chosen NAV source selected and the lower info block(freq, DME) is now displayed for each source
On the work:
- user vref speeds (vyse, Vmca and the like) displayed on the speed tape
- HSI ARC mode
- VSI vertical tape
- turn rate indicator
- failure messages displayed when source is inop or failed
- Glide and Slope indicator automatically appear when a proper ILS freq is selected

Planned for Version 2.0:
- When available, GPS flight plan is displayed in the lower part with zoom, and current route and waypoints. For this we need to draw lines between waypoints(using OpenGL primitives?)
- Real menu options (if doable)
- Failure and warning messages depending of failed sensors
We are currently working on the FSX/P3D version, XPLANE variables will be added in a second phase

Thanks to Corjan and Ralph who made the first gauge we are currently basing on.
We are facing currently some difficulties, these will be posted in another topic, any help appreciated!
We plan to release the first version soon!

Jacques
My YouTube Chanel on the A320 (Real SOPs by an Airline Pilot IRL):
https://www.youtube.com/playlist?list=P ... 0Q6SBASRqJ

User avatar
Ralph
Posts: 7924
Joined: Tue Oct 27, 2015 7:02 pm
Location: De Steeg
Contact:

Re: ASPEN EFD 1000 Improved version

#2 Post by Ralph »

Good that you guys have the courage :) Let us know what your questions are and we'll see what we can do to help.

JackZ
Posts: 2267
Joined: Mon Feb 22, 2016 1:02 pm

Re: ASPEN EFD 1000 Improved version

#3 Post by JackZ »

Glad you offered Ralph, cause this one is driving me crazy:
I really can't figure how you managed to generate the drum roll alt display routine.

We need to handle negative alt values(this can happen when Baro setting is low) up to -1500ft as in the real instrument, but trying to modify this portion of your code for this is really difficult because ...the way you handle alts is.... Indecipherable, at least for me!

I tried to fix the odd behavior with negative altitudes using tests for negative values, but I understand that drum roll values are generated "on the fly" each time, so multiple tests put the gauge to its knees and the whole instrument is unusable.

Very frustrating!
Jacques
My YouTube Chanel on the A320 (Real SOPs by an Airline Pilot IRL):
https://www.youtube.com/playlist?list=P ... 0Q6SBASRqJ

flyatr
Posts: 300
Joined: Tue Dec 01, 2015 8:53 am

Re: ASPEN EFD 1000 Improved version

#4 Post by flyatr »

That's really tricky and it took me a long time, too. Maybe you'd like to take a look at my ATR altimeter. The ATR displays a "NEG" flag for negative altitudes. I have used more lines than necessary but like this I was able to figure this out.

I think it's important to distinguish between the value that is shown when the drum is stationary and that when it's turning over to a new value. Here's an excerpt:

Code: Select all

-- Altimeter drum display setup
---------------------------------------------
function alt_10000_value_callback(i)
  return -i % 10
end
alt_10000_running_txt_id = running_txt_add_ver(90,62,3,22,43,alt_10000_value_callback,font_alt)
viewport_rect(alt_10000_running_txt_id, 85,96, 30, 51)
 
function alt_1000_value_callback(i)
  return -i % 10
end 
alt_1000_running_txt_id = running_txt_add_ver(121,62,3,22,43,alt_1000_value_callback,font_alt)
viewport_rect(alt_1000_running_txt_id, 116,96, 30, 51)

function alt_100_value_callback(i)
  return -i % 10
end
alt_100_running_txt_id = running_txt_add_ver(173,62,3,22,43,alt_100_value_callback,font_alt)
viewport_rect(alt_100_running_txt_id, 168, 96, 30, 51)

function alt_10_value_callback(i)
	value = (4- (i%5)) * 20 + 20	-- interval of 20 feet - this is special for the ATR
	if value == 100 then
		value = 0
	end
	return string.format("%02d", value) 
end
alt_10_running_txt_id = running_txt_add_ver(197,62,3,52,43,alt_10_value_callback,font_alt)
viewport_rect(alt_10_running_txt_id, 192,96, 60,51)


function new_fsx_data(fsx_altitude, fsx_baro, fsx_baro_metric, fsx_battery, fsx_ap_altitude)
 		
  -- determine altimeter drum values
  ----------------------------------
  drum_10_moving = (altitude / 20) + 20
  drum_100_stationary = math.floor(altitude / 100) 
  drum_100_moving = drum_100_stationary + drum_10_moving % 1
  drum_1000_stationary = math.floor(altitude / 1000)
  drum_1000_moving = drum_1000_stationary + drum_100_moving + 1
  drum_10000_stationary = math.floor(altitude / 10000)
  drum_10000_moving = drum_10000_stationary + drum_1000_moving + 1 
  
  -- move the drums
  ------------------------------
  running_txt_move_carot(alt_10_running_txt_id, drum_10_moving * -1)   -- this one is always moving

  if (altitude % 100) > 80 then	-- this defines the moment when this drum starts moving 
	running_txt_move_carot(alt_100_running_txt_id, drum_100_moving * -1)  
  else 
	running_txt_move_carot(alt_100_running_txt_id, drum_100_stationary * -1)
  end
 
  if (altitude % 1000) > 980 then
	running_txt_move_carot(alt_1000_running_txt_id, drum_1000_moving * -1)
  else 
	running_txt_move_carot(alt_1000_running_txt_id, drum_1000_stationary * -1)
  end
  
  value=0
  if (altitude % 10000) > 9980 then
	 value=drum_10000_moving * -1 
  else 
	value= drum_10000_stationary * -1
  end
  running_txt_move_carot(alt_10000_running_txt_id,value)

end

JackZ
Posts: 2267
Joined: Mon Feb 22, 2016 1:02 pm

Re: ASPEN EFD 1000 Improved version

#5 Post by JackZ »

Thanks for the tip, I will try it!

A few pics of the state of my current work.
The bezel is a separate gauge superimposed (real photo).
Still working on the alt scale.

Tons of more work to do:
Arc rose mode, GS and LOC deviation scale in the upper part , Minimums, vertical speed scale, etc...

Not to mention GPS display, but for this we will have to wait for the map_rotate function scheduled in the 2.20 version.
Have to figure out also how to emulate the real behaviour of the two dials, i.e changing the HDG, Minimums and baro setting with a repetitive keypress, and also resetting the heading bug if dial is pressed more than 3 seconds.
Timer involved!
Another concern is the overall speed of the gauge, it starts to be terribly slow...
Jacques
Attachments
EFD 1000_4.PNG
EFD 1000_3.PNG
EFD 1000_2.PNG
EFD 1000_1.PNG
My YouTube Chanel on the A320 (Real SOPs by an Airline Pilot IRL):
https://www.youtube.com/playlist?list=P ... 0Q6SBASRqJ

bauerpilot
Posts: 23
Joined: Sat Feb 13, 2016 11:49 am

Re: ASPEN EFD 1000 Improved version

#6 Post by bauerpilot »

Hi,
I'm working on the Aspen PFD and MFD as well.
The PFD is working quiet well and I integrated alredy dimming, arc-modus, vertical speed scale, minimums and the real behavior of the two dials.
The MFD is still in an early stage.
I suggest to share our folders for improved results.

Marc

JackZ
Posts: 2267
Joined: Mon Feb 22, 2016 1:02 pm

Re: ASPEN EFD 1000 Improved version

#7 Post by JackZ »

Good idea Marc to share our work, with pleasure!

I work with the real ASPEN user manual in order to emulate the maximum of functions(apart the FPL functions, since it's not yet implemented in AM), and I have the chance to have the real instrument on the PA 44 I fly ( took a lot of pics and even a video of the startup sequence) so I suggest I send the manual to you (it's annotated) along with my code.
I appreciate your offer, especially because, due to familial reasons, I had to put the work on this gauge on the shelf for now.

I suggest we share our emails by mp, the folder is quite large.
As I said before, my main concern is with the speed of the gauge, it starts getting really slow on my I7 laptop.

Jacques
My YouTube Chanel on the A320 (Real SOPs by an Airline Pilot IRL):
https://www.youtube.com/playlist?list=P ... 0Q6SBASRqJ

User avatar
Ralph
Posts: 7924
Joined: Tue Oct 27, 2015 7:02 pm
Location: De Steeg
Contact:

Re: ASPEN EFD 1000 Improved version

#8 Post by Ralph »

You can check if Air Manager is running GPU accelerated, on your laptop it might run on the CPU. Help -> Graphics information. Also, if you use txt_style, it's better not to, that also has quite an impact on the CPU.

JackZ
Posts: 2267
Joined: Mon Feb 22, 2016 1:02 pm

Re: ASPEN EFD 1000 Improved version

#9 Post by JackZ »

Thanks Ralph, will check this. Just in case the CPU only option is confirmed, is there an option to force the use of the GPU by AM?
I have a GeForce GTX 350 onboard of the laptop, so it's not so bad?

@Marc: did you received my MP?

Jacques
My YouTube Chanel on the A320 (Real SOPs by an Airline Pilot IRL):
https://www.youtube.com/playlist?list=P ... 0Q6SBASRqJ

User avatar
Ralph
Posts: 7924
Joined: Tue Oct 27, 2015 7:02 pm
Location: De Steeg
Contact:

Re: ASPEN EFD 1000 Improved version

#10 Post by Ralph »

Not very powerful, but it should be enough for this. The problem is that it's not really about the GPU, it's more about Java supporting the GPU, so there's no way to force it. Other than making sure you have the latest version of Java and the latest GPU drivers, there's nothing you can do. With version 2.2.0 this is history, because it's running in OpenGL.

Post Reply