google-site-verification=-mHCTQNTT9W3saGFW2DijdyCG0L-5un0KemySVWMSwk
Engine controller c...
 
Notifications
Clear all

Engine controller card using Arduino


mortin
(@mortin)
Active Member
Joined: 4 years ago
Posts: 5
Topic starter  

hello.

I m an aircraft technician. I hav been working on aircraft engines for many years especialy rotax engines. I hav some old engines lying in the store. i want to make an engine controller card (can be arduino) and hook it to an old laptop of mine having some GUI running on it. Have some basic knowledge of arduino. found some stuff here on this website in video tutorials section. found it very helpful. but as i told u before being new to this field need help. how can i start and stop engine with one click from my laptop. 


Quote
mortin
(@mortin)
Active Member
Joined: 4 years ago
Posts: 5
Topic starter  

Want to add up something to my question. I m Not an expert n controller programming & user interfaces. the only thing I know is arduino basics. need help. my ECU will start/stop engine, automate throttle stick, record the sensors data for future use etc..

Posted the same on some other well known forum also.

waiting for the reply.


ReplyQuote
kaane
(@kaane)
Member Admin
Joined: 4 years ago
Posts: 10
 

Hello.

what a nice plan u have an engine controller card for Rotax. which type of engine u have is it rotax 914 or 912. i m asking it because Rotax 914 is a bit different from 912. you also haven't mentioned the software which u r already familiar with for GUI development.

If u watched our video tutorials regarding GUI development using Labview u can easily design ur this Engine controller card(or ECU what ever u call it).The only problem is u need to learn Labview. in this tutorial we tried to make a very simple GUI just to give u the basic idea. I used the same type of code for my home automation and appliances control. its up to u....

U must transmit a 6 to 8 byte frame (depending upon ur requirement) from ur GUI serially and read the serial engine data from Rotax TCU(turbo control unit). u should know the tcu serial data protocol in order to parse it and display it on GUI.

Use some toggle switches for engine start / stop. use other indicators to display engine sensors data.

throttle stick control will be a bit tricky. select a servo of appropriate torque and use it to draw the throttle wire. 

i would recommend u lecture 3 of my gui development series. u will find answer to most of ur questions .


mortin liked
ReplyQuote
mortin
(@mortin)
Active Member
Joined: 4 years ago
Posts: 5
Topic starter  

thanks for ammending lecture 3 Labview VI for me dude.

I started learning labview. its g8 i like it.

arduino; now i can send receive data serialy. i selected a  frame of 6 bytes cause i hav a lot of things to do with that.

but still stuck in arduino servo drive. How ?

Dont know anything about that.

couldn't get easy tutorial..

can u help..


ReplyQuote
kaane
(@kaane)
Member Admin
Joined: 4 years ago
Posts: 10
 

ye sure. take a look at the servo example in arduino IDE.

can u understand it.

Its very good and easy to understand.

 


ReplyQuote
mortin
(@mortin)
Active Member
Joined: 4 years ago
Posts: 5
Topic starter  

read the example, u r right its good but i m arduino starter.

can u tell me what does it mean.

val = analogRead(potpin);            // reads the value of the potentiometer (value between 0 and 1023)
  val = map(val, 0, 1023, 0, 180);     // scale it to use it with the servo (value between 0 and 180)


ReplyQuote
kaane
(@kaane)
Member Admin
Joined: 4 years ago
Posts: 10
 

val = analogRead(potpin);            // The potentio center terminal is connected to Analog pin A0, other terminals are connected to VCC & gnd Respectively. when u rotate the potentio knob it voltage at A0 will vary from 0 to 5 volts, the ADC is 10 bit number of combination can be 2^10 =1024 means 0 to 1023. for 0 volt analogRead(A0) will return 0 and for max 5 volt it will return 1023.

Now as  myservo.write(); function requires value from 0 to 180, u can not write the potentio reading directly inside the parenthesis of this function.u have to map it from 0 - 1023 to 0 -180. some servos can rotate 180 degree for those 90 to 180 or 0 to 90 range will work. u can experiment with that.

hope ur engine throttle wire wouldn't require so big deflection range.. I think 45 to 60 degree range will b enough for u.  

hope u will be able to write some code and share it with us now..

feel free to ask questions...

we r here to help u..

 


david and mortin liked
ReplyQuote
kaane
(@kaane)
Member Admin
Joined: 4 years ago
Posts: 10
 

one thing i will suggest u. add some header to ur frame and at the end add a checksum. u can get checksum by XORing all the bytes. on arduino side check for header & checksum & then update the fields accordingly. 

this method will help u discard invalid frames... 


mortin liked
ReplyQuote
mortin
(@mortin)
Active Member
Joined: 4 years ago
Posts: 5
Topic starter  

thanx a lot.

i will try...


ReplyQuote
david
(@david)
New Member
Joined: 4 years ago
Posts: 3
 

hello every body.

I m new to this forum. Like the discussion regarding Engine controller Unit. Want to build my own. how much expertise would be required. i dont want a "ready to upload" code but still some more guidelines,

I think i will also want to install a fuel flow meter in the fuel lines.

wow...

cant wait to get my hands dirty on this one.

 


ReplyQuote
david
(@david)
New Member
Joined: 4 years ago
Posts: 3
 
Posted by: kaane

val = analogRead(potpin);            // The potentio center terminal is connected to Analog pin A0, other terminals are connected to VCC & gnd Respectively. when u rotate the potentio knob it voltage at A0 will vary from 0 to 5 volts, the ADC is 10 bit number of combination can be 2^10 =1024 means 0 to 1023. for 0 volt analogRead(A0) will return 0 and for max 5 volt it will return 1023.

Now as  myservo.write(); function requires value from 0 to 180, u can not write the potentio reading directly inside the parenthesis of this function.u have to map it from 0 - 1023 to 0 -180. some servos can rotate 180 degree for those 90 to 180 or 0 to 90 range will work. u can experiment with that.

hope ur engine throttle wire wouldn't require so big deflection range.. I think 45 to 60 degree range will b enough for u.  

hope u will be able to write some code and share it with us now..

feel free to ask questions...

we r here to help u..

 

 


ReplyQuote
kaane
(@kaane)
Member Admin
Joined: 4 years ago
Posts: 10
 

Hello david.

welcome to the forum. 

For this project of developing a rotax914 engine controller card u need to know three things.

1. Windows based LABview programming. Not an expert level. If u can build VI with serial communication (viza tools) , can process or pharse arrays, hav some knowledge of data types like byte, integers, floating points etc. Then u r the one who can build his own computer based gui for engine controller card.

2. Arduino:  this is the 2nd requirement of our project. U need to be good in it. Ur arduino card will receive serial frame of some fixed length, store it in an array , pharse it and execute the respective commands on respective pins ie generate pwm, change state of digital IO pins etc.

3. Hardware interfacing: u need to be good in Hardware interfaces like connecting arduino to engine relays, ignition system, serial connection etc. U must be good in soldering also.

Go ahead and start ur project we are here to help u. 

Dont forget to watch my labview based gui development lecture on utube and in lectires section of this website.

 

 

 

 

 


ReplyQuote
stevokeano
(@stevokeano)
New Member
Joined: 2 years ago
Posts: 1
 

@mortin

Hi Mortin,  care to share your finding?  Were you able to parse the serial data for example?  Thanks

 

Steve


ReplyQuote
lesleytelfer
(@lesleytelfer)
New Member
Joined: 1 year ago
Posts: 2
 
  • State-of-the-art Engine Management Unit for the Rotax® 912iS aero engine
  • Dual isolated, fully independent CANaerospace network interfaces
  • Operates from the single 9-28VDC aircraft power supply
  • Mechanical dimensions 118 mm x 146 mm x 84 mm, weight 0.8 kg
  • Integrates seamlessly into the Rotax® 912iS engine wire harness
  • Minimum installation effort (3 connectors with 9 wires only)
  • Displays all engine parameters including external fuel pressure signal
  • Continuous monitoring and health checking of both ECU CANaerospace networks
  • User-configurable for metric or US units, engine or propeller RPM and display language
  • Data recording capability for the entire engine TBO
  • Integrated GPS/Galileo sensor, powerful data processing and visualization tool for recorded data
  • Software upgrades via SDHC memory card

ReplyQuote
Share:

Subscribe and receive the following...

  • Blog and News updates
  • Forum Discussions
  • Tutorial alerts