Welcome to Cockpitbuilders.com. Please login or sign up.

March 28, 2024, 03:32:29 PM

Login with username, password and session length

PROUDLY ENDORSING


Fly Elise-ng
121 Guests, 0 Users
Members
Stats
  • Total Posts: 59,639
  • Total Topics: 7,853
  • Online today: 148
  • Online ever: 582
  • (January 22, 2020, 08:44:01 AM)
Users Online
Users: 0
Guests: 121
Total: 121

COUNTDOWN TO WF2022


WORLDFLIGHT TEAM USA

Will Depart in...

Recent

Welcome

737-800 Arduino X-Plane Build

Started by kurt-olsson, September 06, 2015, 01:39:47 AM

Previous topic - Next topic

0 Members and 3 Guests are viewing this topic.

kurt-olsson

Thanks Scott and Mickc. I think i will try to head down to our local marine-shop and see if they can help me out.

Feels like the best option is the solid mounted solution.
Thanks for your input.

kurt-olsson

Quote from: Goodenough on April 30, 2016, 07:23:15 PM
I know I can't add to this post and have already asked if there were any MCP builders out there...but just wanted to say by reading your posts here on theB737 MCP I'm learning more about building your own MCP...so thanks
Perry

Yeah, this forum is the key for progress. I watched Scotts youtube-clip of the throttle conversion like 200 times before starting the work of mine.

I cant imagine what James Price and the other went through building the sim in 2002 without an existing forum for help! Hehe

navymustang

Peter - not sure if you have these numbers: Throttle lever movement is 13.5 degrees / second. So a full throttle from idle takes 4.4 seconds.
Jim
My 737-800 full-scale cockpit has been sold. Now onto my full-size military helicopter project. An AOPA member and LifeTime member of National Association of Flight Instructors. Please note that I am a self-employed professional cockpit builder that provides consulting to defense contractors and civilian schools and airlines.

kurt-olsson

Quote from: navymustang on May 01, 2016, 04:23:44 AM
Peter - not sure if you have these numbers: Throttle lever movement is 13.5 degrees / second. So a full throttle from idle takes 4.4 seconds.
Jim

Thanks, i knew it was about 4 sec but not the exact numbers. Thanks!

kurt-olsson

Opencockpit korrys installed! For anyone who is building a mcp, BUY these korrys!!! :)
Much much better finish than DIY and really easy to connect.
I doubt if i can remove the ring on these buttons without braking them so be sure to install them correct!

I got my VOR LOC switch with faulty text so i am waiting for them to send me a new one.


kurt-olsson

Update!
Put a few hours in today for a new backlight tactic, and this time it was an epic win!using acrylic to mount encoders and be able to fit the ledstrip on the front. It will stick really great on this material.

Hopefully this will be the end of the mcp build soon! :)

Bad thing is that i glued some encoders on the efis panel and cut the shafts too short so i need to buy 4 new ones...

kurt-olsson

#81
New plan for backlight!
Skip the ledstrip because its to messy and hard to mount.

I will make a thin pcb board with bulbs that will go direct into the panel.
I have drilled 3.0mm x 3,5 mm holes in the back of my mcp panel.

Came reeeeeealy close to drill through the panel once but luckily i didnt... :)

Hope the bulbs are wide-angle, because i think that is one key for good backlight.



kurt-olsson

New polyclutches...


kurt-olsson

Was on an Ryanair flight yesterday and got a chance to talk to the pilot for 5-10 minutes after we landed.

This resulted in motivation bump! Man, the cockpit of the real 737 is a beauty.

Work continues on the throttles...

Issues now.

1, dont know how the levers resistance is in the real aircraft. I need to tighten my polyclutches preeeety tight to be able to pull it back from full power to idle.

2, need an aligned dc motor shaft that supports the "end shaft" mine is made of another engine-mount and some plexi. But i need something that aligns it 100%.

3, steel ball of cables. I will bite the bullet and order some steel ball for the cables for 1,5 dollars each and the shipping is 45 dollars!!! ????
But this is so important for the feel.

fordgt40

Quote from: kurt-olsson on June 06, 2016, 09:46:47 AM

Issues now.

1, dont know how the levers resistance is in the real aircraft. I need to tighten my polyclutches preeeety tight to be able to pull it back from full power to idle.



Info here

http://www.737flightsim.com/737PushPull.html

kurt-olsson

Coool! Maybe i can use my weight handle for my travelbags! Thank for the link!

kurt-olsson

i pull around 3pounds now and that is no problem for my clutches to bring the levers up from idle. Maybe i can tighten it some more to be around 4 pounds when i install the correct steel cables and ball

kurt-olsson

Just ordered the steel ball for the wires. 30euro in total for 8 quantity. Pretty ok avtually.

kurt-olsson

75% of the mcp backlight done.
Dont think you can do better than this on the simworld panels.

Tried both paint the backside and drill holes in the panel but that did hardly improve anything.

kurt-olsson

Looks like MCP version 2098.45 is a keeper. Only took a year! :)
Advise: Do NOT build the MCP yourseft, do all other panels, but not the mcp. Too much frustration and the cost for this ended up on 800 euros with all rebuilds.


Ridgenj

Hi Peter, you have been too quite lately. Did you test your MCP with  x737?
Have you been able to use the avionics directly without having to use a suite?

Sent from my SM-N910T using Tapatalk


kurt-olsson

Quote from: Ridgenj on July 03, 2016, 02:09:21 AM
Hi Peter, you have been too quite lately. Did you test your MCP with  x737?
Have you been able to use the avionics directly without having to use a suite?

Sent from my SM-N910T using Tapatalk

Hello my friend! I am just about to put in an update! :)
The MCP is all done mounting and about 70% programmed (that part is easy)

Found out that arduino sketch has support for operational conditions!!! That reduced all my code by 40%. Hehe

Efis is also getting some update, still problem with some mounting but i am glad i have solved my main connection solutions by using terminals, soooo stable! :)

Also i now use aircraftbulbs with psu for backlight, so that task is also completed.

I run my mcp with the x737, works like a charm. But i think the x737 has some strange behaviour with its autopilot, but thats on the plugin side.

I am thinking about hooking the IXEG 737 up since the autopilot is the same on the 300 model.

If you want the code i can mail you.

Cheeers!


Ridgenj

Thanks Peter, once you are finished it would be nice to get the code. Keep us posted about your progress

Sent from my SM-N910T using Tapatalk


kurt-olsson

LEFT MCP Completed (without the led connected, but the code is there)

Still some more to optimiza and refactor within the code. But this is a good start. Lots of repetitave code that makes it easy to understand.

#define ENCODER_OPTIMIZE_INTERRUPTS
#include <Encoder.h>
#include <Bounce.h>
#include <LedControl.h>

LedControl LED_CONTROL_COURSE_IAS_HDG = LedControl(23,45,44,2);

//Static Text Leds on the Buttons integrated with Backligh value.
int LED_BUTTON_TEXT_N1 =     27;
int LED_BUTTON_TEXT_SPEED =  26;
int LED_BUTTON_TEXT_VNAV =   24;
int LED_BUTTON_TEXT_LVLCHG = 25;
int LED_BUTTON_TEXT_HDG =    14;
int LED_BUTTON_TEXT_APP =    15;

int LED_FLIGHT_DIRECTOR_CAPTAIN = 5;
int LED_AUTOTHROTTLE = 13;

//Engage Leds
int LED_BUTTON_ENGAGEBAR_N1 = 6;
int LED_BUTTON_ENGAGEBAR_SPEED = 39;
int LED_BUTTON_ENGAGEBAR_LVLCHG = 41;
int LED_BUTTON_ENGAGEBAR_VNAV = 43;
int LED_BUTTON_ENGAGEBAR_HEADING = 8;
int LED_BUTTON_ENGAGEBAR_VOR = 16;
int LED_BUTTON_ENGAGEBAR_APP = 10;

int LED_BACKLIGHT = 35;

long encodervalue_speed_prev = 0;    // for detecting rotary position change
long encodervalue_course1_prev = 0;    // for detecting rotary position change
long encodervalue_heading_prev = 0;    // for detecting rotary position change

Bounce SWITCH_AUTOTHROTTLE = Bounce(20,5);
Bounce SWITCH_FLIGHT_DIRECTOR_CAPTAIN = Bounce(4,5);

Bounce PUSH_BUTTON_SPEED_INTERVINE = Bounce(21,5);
Bounce PUSH_BUTTON_CO_INTERVINE = Bounce(22,5);

Bounce BUTTON_N1 = Bounce(7,5);
Bounce BUTTON_SPEED = Bounce(38,5);
Bounce BUTTON_VNAV = Bounce(42,5);
Bounce BUTTON_LVLCHG = Bounce(40,5);
Bounce BUTTON_HDG = Bounce(9,5);
Bounce BUTTON_APP = Bounce(11,5);


//SE TILL ATT INTE DE LÖDA SLADDARNA ÄR NÄRA VARANDRA, DÅ KOMMER SMÅ STRÖMÖVERFÖRINGAR SKE!
Encoder ENCODER_COURSE_1 = Encoder(1, 0);       //INTERRUPT
Encoder ENCODER_IAS = Encoder(3, 2);       // INTERRUPT
Encoder ENCODER_HDG = Encoder(18, 19);  //INTERUUPTS

FlightSimFloat XPF_MCP_IAS;
FlightSimFloat XPF_MCP_COURSE_1;
FlightSimFloat XPF_MCP_HDG;

FlightSimInteger XPI_MCP_SWITCH_FDA;
FlightSimInteger XPI_MCP_SWITCH_AUTOTHROTTLE;

FlightSimInteger XPI_MCP_BUTTON_IAS;
FlightSimInteger XPI_MCP_BUTTON_N1;

FlightSimInteger XPI_MCP_LED_SPEED;
FlightSimInteger XPI_MCP_LED_N1;
FlightSimInteger XPI_MCP_LED_FDA;
FlightSimInteger XPI_MCP_LED_LVLCHG;
FlightSimInteger XPI_MCP_LED_VNAV;
FlightSimInteger XPI_MCP_LED_HDG;
FlightSimInteger XPI_MCP_LED_APP;


void setup() {

  Serial.begin(9600);
  SetButtonStaticLeds();
  SetButtonEngageLeds();
  SetButtons();
  SetLedDisplayPins();
  SetXPlaneRef();

   LED_CONTROL_COURSE_IAS_HDG = LedControl(23,45,44,2);
   //Shut off all the digits in the beginning.
   for(int index=0; index < LED_CONTROL_COURSE_IAS_HDG.getDeviceCount();index++) {
      LED_CONTROL_COURSE_IAS_HDG.shutdown(index,false);
  } 
   //Set the custom Intensity, for every Digit the intensity drops.
  LED_CONTROL_COURSE_IAS_HDG.setIntensity(0,3);   
  LED_CONTROL_COURSE_IAS_HDG.setIntensity(1,3);   

}


void loop() {

  FlightSim.update();

  long enc_course1 = ENCODER_COURSE_1.read();
  if (enc_course1 != encodervalue_course1_prev) {
    XPF_MCP_COURSE_1 = XPF_MCP_COURSE_1 + (enc_course1 - encodervalue_course1_prev);
    encodervalue_course1_prev = enc_course1;
   
  }
 
  long enc_speed = ENCODER_IAS.read();
  if (enc_speed != encodervalue_speed_prev) {
    XPF_MCP_IAS = XPF_MCP_IAS + (enc_speed - encodervalue_speed_prev);
    encodervalue_speed_prev = enc_speed;
  }
 
  long enc_heading = ENCODER_HDG.read();
  if (enc_heading != encodervalue_heading_prev) {
    XPF_MCP_HDG = XPF_MCP_HDG + (enc_heading - encodervalue_heading_prev);
    encodervalue_heading_prev = enc_heading;
  }

  UpdateButtons();
  DrawButtonStaticLeds();

  if (SWITCH_AUTOTHROTTLE.risingEdge()) {
    Serial.print("Rising A/T\n");
    XPI_MCP_SWITCH_AUTOTHROTTLE = 0;
    digitalWrite(LED_AUTOTHROTTLE,LOW);
  }

  if (SWITCH_AUTOTHROTTLE.fallingEdge()) {
    Serial.print("Falling A/T\n");
    XPI_MCP_SWITCH_AUTOTHROTTLE = 1;
    digitalWrite(LED_AUTOTHROTTLE,HIGH);
  }

   if (PUSH_BUTTON_CO_INTERVINE.risingEdge()) {
    Serial.print("Rising COInt\n");
   }
   
  if (PUSH_BUTTON_CO_INTERVINE.fallingEdge()) {
    Serial.print("Falling COInt\n");
  }

  if (BUTTON_N1.risingEdge()) {
    Serial.print("Rising BUTTON_N1\n");
   }
   
  if (BUTTON_N1.fallingEdge()) {
    Serial.print("Falling BUTTON_N1\n");
    XPI_MCP_BUTTON_N1 = (XPI_MCP_BUTTON_N1 == 0 ? 1: 0);
  }

  if (BUTTON_SPEED.risingEdge()) {
    Serial.print("Rising Speed_Button\n");
  }
 
  if (BUTTON_SPEED.fallingEdge()) {
    Serial.print("Falling Speed_Button\n");
    XPI_MCP_BUTTON_IAS = (XPI_MCP_BUTTON_IAS == 0 ? 1 : 0);
  }

   if (PUSH_BUTTON_SPEED_INTERVINE.risingEdge()) {
    Serial.print("Rising SpeedIntervine\n");
  }
  if (PUSH_BUTTON_SPEED_INTERVINE.fallingEdge()) {
    Serial.print("Falling SpeedIntervine\n");
  }
   if (BUTTON_VNAV.risingEdge()) {
    Serial.print("Rising VNAV_Button\n");
  }
  if (BUTTON_VNAV.fallingEdge()) {
    Serial.print("Falling VNAV_Button\n");
  }

    if (BUTTON_LVLCHG.risingEdge()) {
    Serial.print("Rising LVLCHG_Button\n");
  }
  if (BUTTON_LVLCHG.fallingEdge()) {
    Serial.print("Falling LVLCHG_Button\n");
  }

   if (BUTTON_HDG.risingEdge()) {
    Serial.print("Rising HDG_Button\n");
  }
  if (BUTTON_HDG.fallingEdge()) {
    Serial.print("Falling HDG_Button\n");
  }

   if (SWITCH_FLIGHT_DIRECTOR_CAPTAIN.risingEdge()) {
    Serial.print("Rising Flight_Director_Captain\n");
      XPI_MCP_SWITCH_FDA = 1;
   }
   if (SWITCH_FLIGHT_DIRECTOR_CAPTAIN.fallingEdge()) {
    Serial.print("Falling Flight_Director_Captain\n");
    XPI_MCP_SWITCH_FDA = 0;
   }

    if (BUTTON_APP.risingEdge()) {
    Serial.print("Rising APP_Button\n");
   }
   if (BUTTON_APP.fallingEdge()) {
    Serial.print("Falling APP_Button\n");
   }

}

void SetXPlaneRef() {
  XPF_MCP_IAS = XPlaneRef("sim/cockpit2/autopilot/airspeed_dial_kts_mach");
  XPF_MCP_IAS.onChange(Update_MCP_Speed_LedDisplay);
  XPF_MCP_COURSE_1 = XPlaneRef("x737/systems/MCP/OBS1_value");
  XPF_MCP_COURSE_1.onChange(Update_MCP_Course1_LedDisplay);

  XPF_MCP_HDG =  XPlaneRef("sim/cockpit2/autopilot/heading_dial_deg_mag_pilot");

 
  XPI_MCP_SWITCH_FDA = XPlaneRef("x737/systems/afds/fdA_status");
  XPI_MCP_SWITCH_AUTOTHROTTLE = XPlaneRef("x737/systems/athr/athr_armed");
  XPI_MCP_BUTTON_IAS = XPlaneRef("x737/systems/athr/MCPSPD_mode");
  XPI_MCP_BUTTON_N1 = XPlaneRef("x737/systems/athr/N1_mode");

  XPI_MCP_LED_SPEED = XPlaneRef("x737/systems/MCP/LED_MCPSPD_on");
  XPI_MCP_LED_SPEED.onChange(Update_MCP_LED_SPEED);
  XPI_MCP_LED_N1 = XPlaneRef("x737/systems/MCP/LED_N1_on");
  XPI_MCP_LED_N1.onChange(Update_MCP_LED_N1);

  XPI_MCP_LED_FDA = XPlaneRef("x737/systems/MCP/LED_FDA_MA_on");
  XPI_MCP_LED_FDA.onChange(Update_MCP_LED_FDA);

  XPI_MCP_LED_LVLCHG = XPlaneRef("x737/systems/MCP/LED_LVLCHG_on");
  XPI_MCP_LED_LVLCHG.onChange(Update_MCP_LED_LVLCHG);

  XPI_MCP_LED_VNAV = XPlaneRef("x737/systems/MCP/LED_VNAV_on");
  XPI_MCP_LED_VNAV.onChange(Update_MCP_LED_VNAV);

  XPI_MCP_LED_HDG = XPlaneRef("x737/systems/MCP/LED_HDG_on");
  XPI_MCP_LED_HDG.onChange(Update_MCP_LED_HDG);

  XPI_MCP_LED_APP = XPlaneRef("x737/systems/MCP/LED_APP_on");
  XPI_MCP_LED_APP.onChange(Update_MCP_LED_APP);

}

void UpdateButtons() {
  SWITCH_AUTOTHROTTLE.update();
  SWITCH_FLIGHT_DIRECTOR_CAPTAIN.update();

  PUSH_BUTTON_SPEED_INTERVINE.update();
  PUSH_BUTTON_CO_INTERVINE.update();
 
  BUTTON_N1.update();
  BUTTON_SPEED.update();
  BUTTON_VNAV.update();
  BUTTON_LVLCHG.update();
  BUTTON_HDG.update();
  BUTTON_APP.update();
}

void SetLedDisplayPins() {
  pinMode(44, OUTPUT);
  pinMode(13,OUTPUT);
  pinMode(5,OUTPUT);
  pinMode(39,OUTPUT);
 
}



void SetButtonStaticLeds() {
  pinMode(LED_BUTTON_TEXT_N1,OUTPUT);
  pinMode(LED_BUTTON_TEXT_SPEED,OUTPUT);
  pinMode(LED_BUTTON_TEXT_VNAV,OUTPUT);
  pinMode(LED_BUTTON_TEXT_LVLCHG,OUTPUT);
  pinMode(LED_BUTTON_TEXT_HDG,OUTPUT);
  pinMode(LED_FLIGHT_DIRECTOR_CAPTAIN,OUTPUT);
  pinMode(LED_BUTTON_TEXT_APP,OUTPUT);
  pinMode(LED_BUTTON_TEXT_LVLCHG,OUTPUT);
}

void SetButtonEngageLeds() {
  pinMode(LED_BUTTON_ENGAGEBAR_N1,OUTPUT);
  pinMode(LED_BUTTON_ENGAGEBAR_SPEED,OUTPUT);
  pinMode(LED_BUTTON_ENGAGEBAR_LVLCHG,OUTPUT);
  pinMode(LED_BUTTON_ENGAGEBAR_VNAV,OUTPUT);
  pinMode(LED_BUTTON_ENGAGEBAR_HEADING,OUTPUT);
  pinMode(LED_BUTTON_ENGAGEBAR_VOR,OUTPUT);
  pinMode(LED_BUTTON_ENGAGEBAR_APP,OUTPUT);
}

void SetButtons() {
pinMode(22, INPUT_PULLUP);
pinMode(21, INPUT_PULLUP);
pinMode(20, INPUT_PULLUP);
pinMode(19, INPUT_PULLUP);
pinMode(18, INPUT_PULLUP);
pinMode(4,  INPUT_PULLUP);
pinMode(5,  INPUT_PULLUP);
pinMode(11, INPUT_PULLUP);
pinMode(12, INPUT_PULLUP);
pinMode(7,  INPUT_PULLUP);
pinMode(42, INPUT_PULLUP);
}

void DrawButtonStaticLeds() {
  analogWrite(LED_BUTTON_TEXT_N1,LED_BACKLIGHT);
  analogWrite(LED_BUTTON_TEXT_SPEED,LED_BACKLIGHT);
  analogWrite(LED_BUTTON_TEXT_VNAV,LED_BACKLIGHT);
  analogWrite(LED_BUTTON_TEXT_LVLCHG,LED_BACKLIGHT);
  analogWrite(LED_BUTTON_TEXT_HDG,LED_BACKLIGHT);
  analogWrite(LED_BUTTON_TEXT_APP,LED_BACKLIGHT);

}



void Update_MCP_Course1_LedDisplay(float value) {
 
  int course1_value = value;
  String course1_string = String(course1_value);

  if (course1_string.length() == 1) {
    LED_CONTROL_COURSE_IAS_HDG.setDigit(0,6,0,false);
    LED_CONTROL_COURSE_IAS_HDG.setDigit(0,5,0,false);
    LED_CONTROL_COURSE_IAS_HDG.setChar(0,4,course1_string[0],false);
  }
  else if (course1_string.length() == 2) {
    LED_CONTROL_COURSE_IAS_HDG.setDigit(0,6,0,false);
    LED_CONTROL_COURSE_IAS_HDG.setChar(0,5,course1_string[0],false);
    LED_CONTROL_COURSE_IAS_HDG.setChar(0,4,course1_string[1],false);
  }
  else if (course1_string.length() == 3) {
    LED_CONTROL_COURSE_IAS_HDG.setChar(0,6,course1_string[0],false);
    LED_CONTROL_COURSE_IAS_HDG.setChar(0,5,course1_string[1],false);
    LED_CONTROL_COURSE_IAS_HDG.setChar(0,4,course1_string[2],false);
  }
}

void Update_MCP_Speed_LedDisplay(float value) {

  /*lc1.setChar(1,1,'0',false);
  lc1.setChar(1,2,'1',false);
  lc1.setChar(1,3,'2',false);
  lc1.setChar(1,4,'A',false);*/
   
  //if (ALPHA VALUE) {
    LED_CONTROL_COURSE_IAS_HDG.setChar(1,4,'8',false);
  //}
  int speed_value = value;
  String speed_string = String(speed_value);
  LED_CONTROL_COURSE_IAS_HDG.setChar(1,3,speed_string[0],false);
  LED_CONTROL_COURSE_IAS_HDG.setChar(1,2,speed_string[1],false);
  LED_CONTROL_COURSE_IAS_HDG.setChar(1,1,speed_string[2],false);
}

void Update_MCP_LED_SPEED(long value) {
  digitalWrite(LED_BUTTON_ENGAGEBAR_SPEED, value == 0 ? LOW : HIGH);
}

void Update_MCP_LED_N1(long value) {
  digitalWrite(LED_BUTTON_ENGAGEBAR_N1, value == 0 ? LOW : HIGH);
}

void Update_MCP_LED_FDA(long value) {
  digitalWrite(LED_FLIGHT_DIRECTOR_CAPTAIN, XPI_MCP_LED_FDA == 0 ? LOW : HIGH);
}

void Update_MCP_LED_LVLCHG(long value) {
   digitalWrite(LED_BUTTON_ENGAGEBAR_LVLCHG, value == 0 ? LOW : HIGH);
}

void Update_MCP_LED_VNAV(long value) {
  digitalWrite(LED_BUTTON_ENGAGEBAR_VNAV, value == 0 ? LOW : HIGH);
}
void Update_MCP_LED_HDG(long value) {
   digitalWrite(LED_BUTTON_ENGAGEBAR_HEADING, value == 0 ? LOW : HIGH);
}

void Update_MCP_LED_APP(long value) {
  digitalWrite(LED_BUTTON_ENGAGEBAR_APP, value == 0 ? LOW : HIGH);
}








kurt-olsson

Actually, now i recommend a mcp build. Supernice finish, total control of code and hardware and platform independant.

I am superproud of this one! Hehe


Ridgenj

#95
The backlight looks superb.
I think I have an OEM switch for the A/T from Microswitch


Sent from my SM-N910T using Tapatalk


kurt-olsson

Quote from: Ridgenj on July 04, 2016, 11:51:05 AM
The backlight looks superb.
I think I have an OEM switch for the A/T from Microswitch


Sent from my SM-N910T using Tapatalk

Ooouh, that means i have to remove the knobs and the buttons to be able to remove the current switch =) hehe

I am thinking of looking after a solenoid switch, of all the magnetic switches the A/T is the most important.
My wallet is kind of busted right now, but if its still available i might give you an offer =)

Ridgenj

Peter, send me a PM in the next days, let me grab my toybox.

Sent from my SM-N910T using Tapatalk


kurt-olsson

This cable is 2mm, boeing original is like 2,3 and i ordered also 3mm, but that was too thick to fit the steel ball.

I tried smashing it on with a hammer on my 2mm cable. I thought it was a failure because it twisted the cable, but it actually worked really nice because twisted it locks in better.

Now i have to figure out how to use steelwire around the balls??? Its really tight so i dont know how to wrap it around... Hm...

kurt-olsson

Final setup of left throttle including cable. Polyclutches rules! So easy to test the tension between push/pulls.

If anyone have an idea of how to attach steelwire on the steelball let me know! :)

Like the Website ?
Support Cockpitbuilders.com and Click Below to Donate