generic way to select digital output channels
GenBoard/VerThree has an amazing number of outputs (20 big power and 12 not so power outputs, but more than 32 if logic level ones are counted). Also an amazing number of nice features.
This page explains how installers can map functions that require simple digital output to a real output
WARNING
- When changing the configuration of these variables during operation, the given (previously configured) output is left in the state as it was just at the moment of configuration change (menucommand)
- Configuring different features to same output at the same time results in stupid behaviour. The make mtt (make_conf.pl) warns about this.
Outputs like
- IAC solenoid (idle-air ) iac_sol_channel
- RPM switch ( eg. variable intake control, switchlight ) act_rpm_channel
- WOT switch ( eg. Nitrious, NOS ) act_wot_channel
- Fuel PUMP switch fuelpump_channel earlier default was P259_5 (not P259i_5 ? check yourself).
- misc1out_channel in function of several signals, can be used eg. for simple BoostController
- misc2out_channel similar as misc1out_channel
- boost_channel: actuator for precise fully mappable BoostController
GenBoard/Manual/DigitalOut/Table lists all the outputs (and connector pins) with config values.
make_conf.pl make it possible to use symbolic names for this in config.txt.
You can enter the real binary value (eg. with mtt command ) yourself of course if you look at the (make_conf.pl or firmware) code.\n
# check make_conf.pl varvaldictionary() to find the symbolic names : INJFET => 0, SPECFET => 1, I259 => 2, S259 => 6, P259 => 7, DISABLED => 15
These symbolic names must be appended with a number (normally 0..7) that selects the subchannel. eg.: S259_7
Optionally an i can be used to invert the signal: S259i_7.
Please check the examples.
To find which symbolic name is for which output pin, check the schematic on GenBoard/Manual/InitialTesting/VerThree and see GenBoard/VerThree/PinOut page.
Examples
The examples are for iac_sol_channel but same applies for similar digital outputs, like act_rpm_channel, act_wot_channel etc...\n
# disable; don't drive any output from this signal: iac_sol_channel=DISABLED_F # config.txt entry for idle valve on the P259 IDL output: iac_sol_channel=P259_4 # similar, but inverting: iac_sol_channel=P259i_4 # the SPECFET is not implemented, the meaning of the rest is trivial. Fero, you want sg. like iac_sol_channel=INJFET_6 or iac_sol_channel=INJFETi_6
the stepper can be disabled with iac_conf bit 2 (stepper_iac) = 0
and solenoid can be disabled by iac_sol_channel= DISABLED_F
Do NOT forget to set the relevant entry in h[0] if you use the INJFET output:
h[0] line's 7th element when using iac_sol_channel=INJFETi_6
You can of course switch several injFETs simultaneously.
Config.txt formatting
If you are doing this with the config.txt in hex mode. the
formatting is\n
<function>_channel = <output_number> <driver:SPECFET, I259,S259,P259>
Please notice this is backwards of the way the perl script interpets the values. The corresponding page is on GenBoard/Manual/DigitalOut/Table
Example:
Would like Fuel pump on P259 pin 6 without inverting the output \n
fuelpump_channel = 67
or Water pump on channel 5 (DRIVE_A) of the SPECFET\n
water_pump_channel = 51
Testing outputs
Search for mdh (this is a menucommand) on GenBoard/VerThree/Testing
Developer's Notes
- Finally we want to make an option for tuners to set these channel mappings the other way around: saying that XX output will be used for YY feature, instead of the current way (the output channel needs to be specified for every feature). That's basically the same, but better matches installer's thinking and makes conflicts impossible. This proposal only requires small make_conf.pl related convenience feature, firmware does not need to be changed. If you are there, merge make_conf.pl and make_tables.pl into a common formatter (does not need to be 1 perlfile of course; the config parsing is already split out), so tables and config elements can be put to any number of files the user likes (which supports, but does not require the current config.txt and tables.txt split). The decimal values should be supported in config values as well, not just tables.