Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

KIA SOUL Petrol brake module solenoid operation sequences and checks #269

Open
rg4444 opened this issue Mar 25, 2018 · 1 comment
Open

Comments

@rg4444
Copy link

rg4444 commented Mar 25, 2018

What is the logic and sequence of default braking module firmware?

  1. Booting up for the first time
    Upload of firmware successfully finished. USB wire plugged out, OSCC electricity supply switched off.
    OSCC powered up. Joystick controller set to enable mode.
    What management module should do and in what sequence?
    Like:
    ---OSCC powered up for first time
  2. Check the solenoid state:
    Master cylinder_ SMCs - should be open. If close - open up.
    Pressure fill solenoids - SLAs - should be closed. If open - close down
    Pressure spill solenoids - SLRs - should be closed. If open - close down
    (What happening if solenoids are left in wrong state? I have seen test scenario when ABS unit is powered up with open output brake lines and solenoids are open - so pump is trying to build the pressure, which flowing out from brake lines)
  3. Check for PACC pressure - if under 500 - switch on the Accumulator
    pump ('p'). When pressure reach 800 - turn accumulator power off ('[')
    ----- Enabling control
    Close master cylinder SMCs
    Waiting for brake command
    ----- Pressing brake on joystick
    Release SLA solenoids accordingly to the braking intensity
    ----- Releasing brake on joystick
    Close SLA solenoids
    Open SLR solenoids to release the pressure.
    Close SLR solenoids when pressure released to 12.
    -----Disable joystick control
    Open Master cylinder's SMCs

Please correct to the right descriptions. Thank you in advance.

And what is operational principles of relief valve?

Strange behavior noted:
After first boot up solenoids are closed, pressure is up, disconnected output lines are open.
When brakes on joystick applied for first time - pressure is released, but when brake button on joystick controller released, oil is still being pumped out, solenoids are open and pump is operating.
Is this normal?

@rg4444
Copy link
Author

rg4444 commented Apr 1, 2018

Summary of findings. Some commands are duplicated, not sure about consequences.
One time on initialization:
`1. init_arduino
2. init_communication_interfaces
2.1. init_serial
2.2. unit_CAN
3. init_globals
4. init_devices
4.1. accumulator_init
4.1.1. PIN_ACCUMULATOR_PUMP_MOTOR, set as OUTPUT
4.1.2. accumulator_turn_pump_off
4.1.2.1. PIN_ACCUMULATOR_PUMP_MOTOR, Set as LOW = 0V
4.2. master_cylinder_init
4.2.1. PIN_MASTER_CYLINDER_SOLENOID, set as OUTPUT
4.2.2. master_cylinder_open ("opened SMCs")
4.2.2.1. PIN_MASTER_CYLINDER_SOLENOID, SOLENOID_PWM_OFF = 0
4.2.2.2. DEBUG_PRINT "Master Cylinder Open"
4.3. brake_init
4.3.1. PIN_ACCUMULATOR_SOLENOID_FRONT_LEFT, LOW = 0V
4.3.2. PIN_ACCUMULATOR_SOLENOID_FRONT_RIGHT, LOW = 0V
4.3.3. PIN_RELEASE_SOLENOID_FRONT_LEFT, LOW = 0V
4.3.4. PIN_RELEASE_SOLENOID_FRONT_RIGHT, LOW = 0V
4.3.5. PIN_WHEEL_PRESSURE_CHECK_1, LOW = 0V
4.3.6. PIN_WHEEL_PRESSURE_CHECK_2, LOW = 0V
4.3.7. set_release_solenoid_duty_cycle SOLENOID_PWM_OFF
4.3.8. set_accumulator_solenoid_duty_cycle SOLENOID_PWM_OFF
4.3.9. disable_brake_lights
4.3.9.1. PIN_BRAKE_LIGHT, LOW = 0V
4.3.10. startup_check ???
4.4. accumulator_turn_pump_off
4.4.1. PIN_ACCUMULATOR_PUMP_MOTOR, Set as LOW = 0V
4.5. master_cylinder_open ("opened SMCs")
4.5.1.1. PIN_MASTER_CYLINDER_SOLENOID, SOLENOID_PWM_OFF = 0
4.5.1.2. DEBUG_PRINT "Master Cylinder Open"
4.6. set_release_solenoid_duty_cycle SOLENOID_PWM_OFF
4.7. set_accumulator_solenoid_duty_cycle SOLENOID_PWM_OFF
5. init_communication_interfaces
5.1. init_serial
5.2. DEBUG_PRINT "init Control CAN - "
5.3. Init CAN
6. start_timers
6.1. timer1_init( FAULT_CHECK_FREQUENCY_IN_HZ, check_for_faults
6.2. timer2_init( OSCC_BRAKE_REPORT_PUBLISH_FREQ_IN_HZ, publish_brake_report
7. DEBUG_PRINT: "init complete"

Continuously:

  1. check_for_incoming_message
  2. accumulator_maintain_pressure
    2.1. float pressure = accumulator_read_pressure( );
    2.2. if ( pressure <= BRAKE_ACCUMULATOR_PRESSURE_MIN_IN_DECIBARS )
    2.3. accumulator_turn_pump_on( );
    2.3.1. PIN_ACCUMULATOR_PUMP_MOTOR, HIGH = 5V
    2.4. else if ( pressure >= BRAKE_ACCUMULATOR_PRESSURE_MAX_IN_DECIBARS )
    2.5. accumulator_turn_pump_off
    2.5.1. PIN_ACCUMULATOR_PUMP_MOTOR, LOW = 0V
  3. check_for_operator_override
  4. update_brake

Brake Board initialization.docx

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant