Search This Blog

Monday, 9 March 2026

Setting fine pitch stop on prop

Need to set the fine pitch stop on the prop as part of the installation process.

Basic process:

  1. Tie plane down.  
  2. Warm engine, run up to full power
  3. Note RPM
  4. Set prop to manual.  Adjust to get 100 RPM less than prop setting for takeoff.
  5. Adjust fine pitch stop cam.
  6. Repeat until correct.


Engine ran great.  One small adjustment and was good to go.

Final Assembly after Final Inspection, and Next Steps

Getting exciting now.  I would be more excited if I wasn't so tired.

The biggest thing after inspection was to get the interior reassembled.  Some pieces havent been installed in years... like the forward tunnel covers.  They were quite dusty.

Floorboards bolted in, and CARPET installed!  I didnt realize that the carpet had to go in before the seat tubs.  Now I do.  Anti chaff tape on all contact areas.  Seat tubs and seats installed.  Center seat belt components installed.

Rear control cable covers installed.  Rear seat back installed.  Cargo floor installed.  ELT armed and bulkhead A cover installed.

Right wingtip installed (removed for inspection).  All inspection covers installed.  2 were missing.  One found, and had some spares of the smaller covers.  That one needs paint.

Installed the gear leg fairings and silpruf'ed them on.

Next steps / what's left...

  1. I have a fuel weep out of the collector to the fuel filters. Need new copper gaskets.  Going to get them tomorrow.
  2. Training!  Need a check out by a commercial pilot in type.  I have a contact, need a good weather day or two.
  3. Test plan.  I have the EAA test cards.  Need to review.
  4. Polishing... the polishing is ongoing, but it is not going to stop the first flight.

Final Inspection

Well after weeks of work, the big day finally arrived.  Final inspection!

I talked to my inspector the night before to verify something, and learned I needed a bunch of copies of multiple items at the ready.  So caught that in time.

The doors were back in the paint shop to fix the clear coat.  Arrived at 6:30 to get the hinges back on and get them installed.

The inspection itself was pretty much what I expected.  He went through:

  • All control systems.  All stops, all pulleys, all cotter pins.  Checked proper operation.
  • Checked all trim tabs for correct operation
  • Checked for all required placards
  • Checked that all speed markings (V speeds) were correctly setup.
  • Checked weight and balance
  • Checked maintenance schedule
  • Checked fuel flow test report
  • Checked all required log book entries
  • Ran engine.  Checked for any leaks.  Checked operation of all engine instruments.
The above is a partial list.  Was 3 hours overall.

And I passed.  The next day he hand delivered my Special Certificate of Airworthiness and Operating Conditions.

That was pretty awesome.

Now its onto reassembly.

All the little details...

So many things to finish.  

Final inspection schedule for somewhere between March 3 and 5.

I havent posted much because I have been so busy...

Log books are done.  Engine, Prop, Airframe and Journey logs.  POH is written.  Checklists are written. Maintenance manual is written.

Fuel flow test report is done and written.

TC's application for special cert of airworthiness.  Done.  All 3 copies.

Header tank has been removed, new bungs added, refinished, and reinstalled.

New level sensors for header tank obtained and installed.  New monitor board, indicators, and software complete.

Interior placards done.  Exterior placards waiting on polishing to be finished.

Paint touch ups done.

Tanks calibrated.

Fuel system leak found and dealt with.

Park brake valve leak found and dealt with.

Dealing with slightly sticky fuel tank sensors in main and auxes.  Checked against SB, does not apply.  Removed one sensor and checked.

Complete inspection on all control systems complete.

Deflection of all control surfaces verified.

Electrical system diagrams complete and printed.

All required paperwork done.

Went through checklist multiple times.

All exterior placards installed.




Gear Leg Fairings

So I started down this path years ago.  

First I tried to make aluminum gear leg fairings, and was not happy with them.  Made 1, never finished it.  I did not like how the two rode inside each other.

Then I thought about using the foam and fiberglass method.  The benefit to this is you can add a step.

When I had Langair make my extended gear legs, I asked them to machine a ridge into the gear leg for a step.  More on that later.

Then a member of the forum came up with a method to 3D print gear leg fairings.  I know (well knew) nothing about 3D printing and modelling, so I avoided this.  If I did not have the ridge on my legs for the step I could have just used the other members design.  Good old 'rule of 3's'.  Change one thing, need to change at least 3 more...

For months and months I have been thinking about and asking others what modeling software to use.  They all have their pros and cons... for now I am using OnShape.  It's free, with a catch.  Everything you model is public.  That is fine with me for now.

Then comes which 3D printer.... read lots of reviews, and finally decided on the Bambu Labs H2D (with AMS).  They had a Black Friday sale...

So now I have to learn how to model and print.  I gotta say this has been a fun journey.

The H2D is a BEAST of a machine.  I love it.  Works awesome.

OnShape is extremely powerful and fairly easy to use and learn.  There are tonnes of how to videos.

So I started off by printing a portion of the existing design from the other member of the forum.



Genius design.  Great job BS!

So I need to make mine a bit bigger.  I've modeled the first 9" of the fairing, as the gear leg is a consistent diameter that far down.

(Add OnShape pic here)

I had a bard time splitting the part in two.  The double curves got bisected, but I then learned that you can add parts together using the boolean feature.  That solved that problem.

Learning how to create screw holes... so far am failing.  Can't figure out how to locate the point on the curved surface.  I will get there... will just take some time.

So I took dimensions of the gear leg all the way down.  Next challenge is to determine the best method to narrow the fairing as it goes down.  The extrude function has a 'draft' feature.  Need to figure out the draft angle and I will try that.

I am used to AutoCAD 2D modelling (am passable at that... not great, but can make something look reasonable).  I am used to being able to specify exact distances.  You can do that with OnShape, but its not easy.  You freehand draw the feature, then add a dimension to it, then you can adjust the dimension.  Frustrating - but I am grateful to have a tool that I can use and learn.

First part of my design below.  Already seeing some problems now that it is printed.





It fits together perfectly... too perfectly.  There is zero slop.  Will be prone to crack.  This piece took 10 hours to print using PolyMaker PETG.  But the quality is outstanding.  Super impressed.  And I am getting the hang of OnShape.  Next step is to test fit and see what I need to change / learn.  Very excited by this entire process.


Test fit.  Fits very well... almost too well.  The two circles that hold the front together are just too tight.  They will snap together, but getting them apart is very difficult.

Version 2... redid the S curve that locks the two sides together... much better now.  Added the intersection between the fuselage and fairing.  Much better now, but could be a bit better.


The new model is about 80% done.  I am having a problem getting the loft as the S channel narrows to fully intersect as a surface.  Almost there.  Then have to add the screw holes, and lastly the internal donut for the step.  But its basically together.



So I finally plowed through and finished the model - only to realize I forgot the pins that interlock the top and bottom pieces respectively.  Print underway without the pins, but that will allow me to check the rest of the fit.  20 hour print for all 6 pieces (3 tops, 3 bottoms.




Very interesting journey to get to this point.  I am tempted to start over again (again) now that I am more fluent.  OnShape is so powerful, but you have to think like OnShape.  You can do so much with it... but you have to know how to accomplish a task.  Google Gemini (free version) has been my saviour.  I can ask it how to do something in detail, and it gives me step my step instructions.  You also have to think like the printer... and how it is actually going to make the piece.  Example... the pins and sockets.... easy enough to create... but the printer cannot print well a hollow with a flat interior end.  So I rounded them.  Hoping that will work.

First full size test print (without the pins and sockets) for general fitment.



Bit to snug in the middle around the donut for the leg step, and slightly to snug at the bottom as well.  Hoping that will be an easy fix to both.

Fixed.  Printed a test piece out where it was tight (around the ridge for the gear step).  Has a little bit of play, which was the intent.


Deciding on when or not to print a full test piece of the latest design, or just go for it.  Probably a full test piece.

Nope... printing a test piece with new settings and new filament.

  • Using Polymaker ASA filament.
  • Changed layer height to .15 mm
  • Changed wall setting to outer, then inner
  • Slowed outer wall print speed to 50mm/sec
  • Slowed inner wall print speed to 200mm/sec
  • Changed to 3 wall loops
  • Sparse infill density to 8%
  • Sparse infill pattern to adaptive
8.5 hours print time for 4 pieces.

I am getting some stepping on the ellipse.  I need to figure out how to smooth that out.  You can see it in the onshape model.

Progress!
  • Changed the export settings from onshape and have almost completely eliminated the stepping.
  • Printed test pieces with ASA.  Significantly lighter.
  • Printing the starboard gear leg in its entirety in one shot.  30 hours.  Reduced layer height from .2mm to .15mm.
  • Ordered some TPU.  That should make it a bit 'bendy' but printing it 9" tall will be a challenge.
First leg printed out of ASA installed.  30 hour print.  Weights 1 lb, 4 oz (565 grams).




Both gear leg fairings in place (temporarily).  Still needs to be silicon'ed in place.


I redid the fairings out of TPU-95A.  They have been primed and painted.  Installed today.













Header Tank... changes

I foolishly used two Beelite ultrasonic level sensors on my header tank.  When I started running the engine - or more specifically the fuel pumps - the top sensor would alarm due to the return line being too close to the sensor.  This is my fault.

When the lower sensor failed, it was time to change them out.

I used two Madison sensors (which ironically is the same as beelite is now using in their 'new' sensor).

My panel was made to fit the old Beelite sensor, but I am NOT buying anything from them again.  So I am going to create my own unit for displaying the fuel level.

Employing a Arduino Nano Every board.  I've done some basic Arduino programming before, but not for 15 years.  Figured I would give ChatGPT a try.  OMG... WOW.  I did not expect that level of detail... now to see if the code it spit out works.

Removed the tank... had 3 new bungs welded in.  The first two are for the two new Madison magnetic sensors (sourced from Amazon... $27 each).  And since I was at it, move the return line from the center of the tank to the forward corner.

WOW.  One day and its up and running / burning in.  Going to let it run on the bench for a couple days and see if there are any problems.  ChatGPT sure made this simpler.

As soon as I told it this was going in an aircraft it hardened the code and added a bunch more watchdog timers.  I already had some of this included, but it added more.  There was some minor glitches in the code, and I explained what it was doing or not doing, it fixed it.  Unreal.

Code below:
/*
  Aircraft Header Tank Advisory Indicator
  Arduino Nano Every (ATmega4809)
  Industrial / Aviation Version
*/

#include <avr/io.h>
#include <avr/wdt.h>

// ================= PIN DEFINITIONS =================
const uint8_t level1Pin = 2;
const uint8_t level2Pin = 3;

const uint8_t green1Pin = 5;
const uint8_t red1Pin   = 6;

const uint8_t green2Pin = 9;
const uint8_t red2Pin   = 10;

// ================= TIMING =================
const unsigned long debounceTime      = 3000;
const unsigned long redFlashInterval  = 250;
const unsigned long heartbeatInterval = 10000;
const unsigned long heartbeatPulse    = 100;
const unsigned long startupDuration   = 1000;

// ================= STATE =================
bool level1State = false;
bool level2State = false;

bool lastReading1 = false;
bool lastReading2 = false;

unsigned long lastDebounce1 = 0;
unsigned long lastDebounce2 = 0;

unsigned long lastRedFlash = 0;
bool redFlashState = false;

unsigned long lastHeartbeat = 0;
bool heartbeatActive = false;
unsigned long heartbeatStart = 0;

unsigned long startupStart;
bool startupActive = true;

// ===================================================
// WATCHDOG
// ===================================================
void enableWatchdog()
{
  RSTCTRL.RSTFR = RSTCTRL_WDRF_bm;
  CCP = CCP_IOREG_gc;
  WDT.CTRLA = WDT_PERIOD_8KCLK_gc;   // ~8 seconds
}

void resetWatchdog()
{
  __asm__ __volatile__("wdr");
}

// ===================================================

void setup()
{
  // Safe startup state
  digitalWrite(green1Pin, LOW);
  digitalWrite(red1Pin, LOW);
  digitalWrite(green2Pin, LOW);
  digitalWrite(red2Pin, LOW);

  pinMode(green1Pin, OUTPUT);
  pinMode(red1Pin, OUTPUT);
  pinMode(green2Pin, OUTPUT);
  pinMode(red2Pin, OUTPUT);

  pinMode(level1Pin, INPUT_PULLUP);
  pinMode(level2Pin, INPUT_PULLUP);

  Serial.begin(115200);
  delay(200);

  logResetCause();

  startupStart = millis();
  enableWatchdog();
}

// ===================================================

void loop()
{
  unsigned long now = millis();

  if (startupActive)
  {
    handleStartup(now);
    resetWatchdog();
    return;
  }

  handleDebounce(level1Pin, level1State, lastReading1, lastDebounce1, 1);
  handleDebounce(level2Pin, level2State, lastReading2, lastDebounce2, 2);

  handleRedFlash(now);
  handleHeartbeat(now);

  updateOutputs();

  resetWatchdog();
}

// ===================================================

void handleDebounce(uint8_t pin, bool &state,
                    bool &lastReading,
                    unsigned long &lastDebounce,
                    uint8_t channel)
{
  bool reading = (digitalRead(pin) == LOW);

  if (reading != lastReading)
    lastDebounce = millis();

  if ((millis() - lastDebounce) >= debounceTime)
  {
    if (state != reading)
    {
      state = reading;

      Serial.print("Level ");
      Serial.print(channel);
      Serial.print(": ");
      Serial.println(state ? "FLUID PRESENT" : "NO FLUID");
    }
  }

  lastReading = reading;
}

// ===================================================

void handleRedFlash(unsigned long now)
{
  if (now - lastRedFlash >= redFlashInterval)
  {
    lastRedFlash = now;
    redFlashState = !redFlashState;
  }
}

// ===================================================

void handleHeartbeat(unsigned long now)
{
  if (now - lastHeartbeat >= heartbeatInterval)
  {
    heartbeatActive = true;
    heartbeatStart = now;
    lastHeartbeat = now;
    Serial.println("Heartbeat OK");
  }

  if (heartbeatActive &&
      (now - heartbeatStart > heartbeatPulse))
  {
    heartbeatActive = false;
  }
}

// ===================================================
// *** FIXED OUTPUT LOGIC ***
void updateOutputs()
{
  // LEVEL 1
  bool green1 = level1State;
  bool red1   = (!level1State) ? redFlashState : LOW;

  // LEVEL 2
  bool green2 = level2State;
  bool red2   = (!level2State) ? redFlashState : LOW;

  // Heartbeat overlays green LEDs
  if (heartbeatActive)
  {
    green1 = !green1;
    green2 = !green2;
  }

  digitalWrite(green1Pin, green1);
  digitalWrite(red1Pin, red1);

  digitalWrite(green2Pin, green2);
  digitalWrite(red2Pin, red2);
}

// ===================================================

void handleStartup(unsigned long now)
{
  if (now - startupStart >= startupDuration)
  {
    startupActive = false;
    Serial.println("Startup Complete");
    return;
  }

  if ((now / 250) % 2 == 0)
  {
    digitalWrite(green1Pin, HIGH);
    digitalWrite(green2Pin, HIGH);
    digitalWrite(red1Pin, LOW);
    digitalWrite(red2Pin, LOW);
  }
  else
  {
    digitalWrite(green1Pin, LOW);
    digitalWrite(green2Pin, LOW);
    digitalWrite(red1Pin, HIGH);
    digitalWrite(red2Pin, HIGH);
  }
}

// ===================================================

void logResetCause()
{
  uint8_t flags = RSTCTRL.RSTFR;

  Serial.println("---- RESET DETECTED ----");

  if (flags & RSTCTRL_PORF_bm) Serial.println("Power-On Reset");
  if (flags & RSTCTRL_BORF_bm) Serial.println("Brown-Out Reset");
  if (flags & RSTCTRL_EXTRF_bm) Serial.println("External Reset");
  if (flags & RSTCTRL_WDRF_bm) Serial.println("Watchdog Reset");
  if (flags & RSTCTRL_SWRF_bm) Serial.println("Software Reset");

  Serial.println("------------------------");

  RSTCTRL.RSTFR = flags;
}

I tested everything and it worked great.  Then tested it while running the engine at full power.  Still great.  This was a worthwhile change.

Header tank after welding... refinishing before installation.







Wednesday, 11 February 2026

Progress update... final stages

Well, progress has been steady.

Magnetometer and compass calibrated.  Magnetometer had to go back to Dynon, and they just sent me a new one.  I had standard AN bolts fastening the magnetometer, which are now replaced with brass.

The header tank sensors I used are... well... garbage.  Not going to live with that, so the tank is out and new sensors ordered.  Tank removed.  Parts arrive today (2/11), hoping to get the new bungs welded in tomorrow.  Have to create a circuit for the display.  Actually looking forward to that.  

Aircraft is at the paint shop for touch ups and polishing.  I still have access, but its on the other side of the field... lots of trips back and forth for tools.

Had a fuel leak around the pump assemblies.  Fixed.

Another brake leak on the park brake valve.  Fixed.  Need to top up the reservoir.

Prop settings updated for UL520T.  Was set for UL520IS.

Started log books / maintenance schedule / out of phase tasks.  Draft of prop log / maintenance schedule, etc complete and reviewed by peers.  Minor changes recommended.

Things left to do:

  1. Finish log books
  2. Print W&B
  3. Lower aft strut fairing fasteners
  4. Set fine pitch stop on prop.
  5. Aft belly inspection panel
  6. Document all control surface deflections.
After that, its time to get flying again and get my training plan ironed out.

Nice photo shoot on Sunday.