• Which the release of FS2020 we see an explosition of activity on the forun and of course we are very happy to see this. But having all questions about FS2020 in one forum becomes a bit messy. So therefore we would like to ask you all to use the following guidelines when posting your questions:

    • Tag FS2020 specific questions with the MSFS2020 tag.
    • Questions about making 3D assets can be posted in the 3D asset design forum. Either post them in the subforum of the modelling tool you use or in the general forum if they are general.
    • Questions about aircraft design can be posted in the Aircraft design forum
    • Questions about airport design can be posted in the FS2020 airport design forum. Once airport development tools have been updated for FS2020 you can post tool speciifc questions in the subforums of those tools as well of course.
    • Questions about terrain design can be posted in the FS2020 terrain design forum.
    • Questions about SimConnect can be posted in the SimConnect forum.

    Any other question that is not specific to an aspect of development or tool can be posted in the General chat forum.

    By following these guidelines we make sure that the forums remain easy to read for everybody and also that the right people can find your post to answer it.

MSFS20 MSFS and castering tail wheels.

Messages
1,126
Country
australia
Correct me if I'm wrong but MSFS doesn't really do proper castering tail wheels does it?

From what I have searched in the last day or two I haven't found any solutions for proper castering tail wheels.

For example, the MSFS default aircraft which should have castering tail wheels actually use a workaround to fake it.

Here is the [CONTACT_POINTS] code from the flight_model.cfg for the Extra E330 (asobo-aircraft-e330):

Code:
max_speed_full_steering = 10 ; Defines the speed under which the full angle of steering is available (in feet/second).
max_speed_decreasing_steering = 20 ; Defines the speed above which the angle of steering stops decreasing (in feet/second).
min_available_steering_angle_pct = 0.2 ; Defines the percentage of steering which will always be available even above max_speed_decreasing_steering (in percent over 100).
max_speed_full_steering_castering = 20 ; Defines the speed under which the full angle of steering is available for free castering wheels (in feet/second).
max_speed_decreasing_steering_castering = 40 ; Defines the speed above which the angle of steering stops decreasing for free castering wheels  (in feet/second).
min_castering_angle = 0.05236 ; Defines the minimum angle a free castering wheel can take (in radians).
max_castering_angle = 3.14159265358979 ; Defines the maximum angle a free castering wheel can take (in radians).
point.0 = 1, -14.9, 0, -1.725, 750, 0, 0.41, 90, 0.164, 2, 0.6, 0, 0, 0, 0, 0

The 90 in the point.0 limits the steering angle to 90 degrees either side. The max_speed_full_steering = 10 ft/sec and max_speed_decreasing_steering = 20 ft/sec means you only get the full 90 degree range at very low speeds and it is quickly reduced to 18 degrees by min_available_steering_angle_pct = 0.2 when you are above 20 ft/sec.

This does simulate full castering to an extent. You can still turn on the spot if you brake on one side only and once you start going faster it doesn't become an uncontrollable mess.

But it's not really castering is it?

And it also doesn't work for the aircraft I am working on. Like many vintage military aircraft the Winjeel has a free castering tail wheel which can be locked into a steerable tail wheel.

Here is an explanation of how the steering mechanism works on a T6:


The problem with the MSFS fake castering is when you apply the tail wheel lock it locks it into straight ahead position only. It no longer becomes steerable.

Now, you can make MSFS free caster by changing the steer angle of point.0 from 90 to 180. Just like you did in the FSX. You can't do this in the aircraft editor within MSFS apparently. From what I read you are limited to 90 degrees in the editor but you can change it to 180 manually (I never use the editors in game and do everything manually).

But this gives a new problem. The free castering in MSFS is makes the aircraft almost uncontrollable. Line a shopping trolley with all 4 wheels broken. For some reason whenever you stop the tail wheel gets an uncontrollable urge to move out to 90 degrees and when you start again you usually end up spinning. It requires massive amounts of differential braking and rudder movements to get it going straight again at which point it swings the other way. I imagine this is the reason Asobo use fake castering because it's uncontrollable without it.

But it does mean the tail wheel lock becomes steerable (controlled by the max_speed_full_steering, max_speed_decreasing_steering and min_available_steering_angle_pct parameters).

After many hours tinkering with the parameters I think I have come up with some settings that tames the worst of the castering tail wheel problems.

Here is what I have come up with so far:

Note the following:
1. point.0 set to 180 steering angle to activate free castering
2. The four castering parameters now become available (they do nothing if steering angle is set to 90 because that is fake castering).
3. max_speed_full_steering_castering is set to zero. If you increase this number then the aircraft will be uncontrollable until the speed exceeds the number.
4. max_speed_decreasing_steering_castering is set to 100 ft/sec. Above this speed the tail wheel will act like a steerable tail wheel. You may like to reduce this.
5. min_castering_angle is set to zero (otherwise your tail wheel will also steer one way or the other)
6. max_castering_angle = 0.018. This is the magic number. 0.018 radians is just above 1 degree. Below this and the tail wheel will act like a steerable tail wheel. Above this and it starts to become increasingly uncontrollable.

Code:
gear_locked_on_ground = 0 ; Defines whether or not the landing gear handle is locked to down when the plane is on the ground.
gear_locked_above_speed = -1 ; Defines the speed at which the landing gear handle becomes locked in the up position. (-1 = Disabled)
locked_tailwheel_max_range = 0.3 ; radians
allow_stopped_steering = 1;
max_speed_full_steering = 20 ; Defines the speed under which the full angle of steering is available (in feet/second).
max_speed_decreasing_steering = 70 ; Defines the speed above which the angle of steering stops decreasing (in feet/second).
min_available_steering_angle_pct = 0.5 ; Defines the percentage of steering which will always be available even above max_speed_decreasing_steering (in percent over 100).
max_speed_full_steering_castering = 0 ; Defines the speed under which the full angle of steering is available for free castering wheels (in feet/second).
max_speed_decreasing_steering_castering = 100 ; Defines the speed above which the angle of steering stops decreasing for free castering wheels  (in feet/second).
min_castering_angle = 0 ; Defines the minimum angle a free castering wheel can take (in radians).
max_castering_angle = 0.018 ; Defines the maximum angle a free castering wheel can take (in radians).

point.0=  1,-18.61, 0.00, -1.60, 1400, 0, 0.406, 180.0, 0.15, 2.5, 0.80, 0.0, 0.0, 0 ,200 ,200, 1
point.1=  1, 1.53, -5.00, -5.55, 2000, 1, 0.785,  0.0, 0.35, 2.5, 0.70, 0.0, 0.0, 2 ,200 ,200, 1
point.2=  1, 1.53,  5.00, -5.55, 2000, 2, 0.785,  0.0, 0.35, 2.5, 0.70, 0.0, 0.0, 3 ,200 ,200, 1

This still isn't perfect but it is the best that I can get MSFS to be if I want to simulate a castering tail wheel with steerable tail wheel lock. It's still easy to make the aircraft uncontrollable with castering active. I find a squirt of power to get the plane moving and then dropping the power back gets the airplane rolling with the minimum of random steering. Once the plane is rolling it steers quite well (a little too well perhaps but I'll take that over having to fight the plane to get going in a straight line).

The other issue is turning. Engaging the brake on one side and trying to turn the plane will rotate the tail wheel 90 degrees but as the rate of turn increases the tail wheel steering angle will reduce. Again, not perfect but it's such an outlier of a situation that I can live with it.

If you are making an aircraft with a free castering tail wheel you'd probably be better off using the MSFS fake castering method. It works well enough and does produce any control issues.

Likewise, if you are modeling a vintage aircraft with a steerable locking tail wheel you may choose to use the fake castering method or simply make the tail wheel fully steerable.

The only reason I have spent time on this is because I wanted the fully castering tail wheel with steerable locking.
 
Excellent "essay" and it reminds me of the many tests I did myself trying to create more realistic behaviours for a couple of taildraggers with free castering tail wheels in MFS.

Thank you, and I'll surely give your suggestions a try !

P.S.: EDITED the default Extra 330, but there's something weird with it's supposedly free-castering tailwheel? While taxiing and using the above parameters it appears to have a soft link to the rudder only, and if I try to use differential braking, while the aircraft deflects the tail and performs an arc / turn, the tailwheel remains visually fixed and aligned with the longitudinal axis of the aircraft...
 
Last edited:
I've spent some more time on this castoring problem. To get around the issue of the free castoring wheel going to 90 degrees when you are stopped (which makes it near impossible to get moving again) I have written some code that forces the tail wheel lock on when the centre wheel rpm is very low.

Code:
                (A:CENTER WHEEL RPM,rpm) 0.5 > (A:CENTER WHEEL RPM,rpm) 30 < (A:RUDDER POSITION,percent) -5 > (A:RUDDER POSITION,percent) 5 < & & &
                if{
                    (L:winjeel_tail_shadow_lock,number) 0 ==
                    if{
                        1 (>L:winjeel_tail_shadow_lock,number)
                        (A:TAILWHEEL LOCK ON,bool) (>L:Winjeel_Tail_WheelLock,number)
                    }
                    (A:TAILWHEEL LOCK ON,bool) 0 == if{ (>K:TOGGLE_TAILWHEEL_LOCK) }
                
                }
                els{
                    (L:winjeel_tail_shadow_lock,number) 1 ==
                    if{
                        0 (>L:winjeel_tail_shadow_lock,number)
                        (L:Winjeel_Tail_WheelLock,number) (A:TAILWHEEL LOCK ON,bool) !=
                        if{
                            (>K:TOGGLE_TAILWHEEL_LOCK)
                        }
                    }
                }

The code checks the speed of the tail wheel and the rudder position (you may not want the wheel lock on if you have full rudder and you're trying to turn). It then saves the previous tail lock position and switches the tail wheel lock on. In the els condition it resets the tail wheel lock back to the previous setting.
 
Hello Guys, especially,

Anthony31,​

where do I have to insert your Custom Code from above to make it work ?

I would appreciate an answer

Kind regards
Xpilot050900
 
Back
Top