DDC
  • Welcome
    • Introduction
    • Supported hardware
  • 1: Project planning
    • Switch inputs
      • Switch table
      • Direct
      • Shift register
      • Port expander
    • Analog inputs
      • External ADC
    • RGB LED
    • Digital outputs
    • PWM / Circuit control
    • EEPROM
    • Processing and memory
  • 2. Wiring
    • Switch inputs
      • Matrix
      • Direct
      • Shift register
      • Port expander
    • Analog
      • Analog switches
      • External ADC
    • RGB LED
    • Digital outputs
    • PWM / Circuit control
    • EEPROM
  • 3. Coding
    • Essentials
      • 02_Board.ino
      • 08_Joystick
      • 10_TableAndAnalog.ino
        • Switch table
        • Analog channels
      • 30_Switches.ino
    • Peripherals
      • RGB LED
        • Firmware control
          • LED functions
          • Color
          • Brightness
          • Presets
        • SimHub control
      • Digital outputs
        • Setup
        • SimHub control
        • Firmware control
      • PWM / Circuit control
        • Setup
        • Calibrate
        • Switch control
        • Trigger control
      • Shift register
      • I2C devices
        • ADS1115
        • PCA9555
        • CAT24C512
    • Advanced
      • Analog inject
      • Conditional coding
        • Triggers
        • Editors
      • Field placement
      • Presets
        • 31_RunningPresets.ino
        • 32_Presets.ino
        • Example
    • Upload
    • Naming the controller
  • 4. Connect to SimHub
    • LED control
    • Controller settings and properties
      • How to connect?
      • How does it work?
      • How to control it?
      • Property list
  • Switch library
    • Pushbutton
    • Function switches
    • Toggle switches
    • Hat switches
    • Car control functions
      • QuickSwitch
      • BrakeMagic
      • ThrottleHold
      • Handbrake
    • Pedals & paddles
      • Brake/throttle
      • Clutch
      • Bite point & launch
      • Filtered curves
      • Shifter
    • Funky switch
      • Directional
      • Center push
    • Encoders
      • rotary2Bit
      • rotary4Bit
      • funkyRotary
      • wildEncoder
      • E18
      • rotaryPulse
      • PEC11
    • Rotary switches
      • rotaryAnalog
      • quickRotary
      • SW1
      • Editing functions
    • Multiswitch complexes
      • Hybrid rotary
      • Multifunction rotary
      • Modded encoder
      • Stacked encoder
    • Preset
    • DDS
    • RGB LED control
    • PWM / Circuit control
    • Utility
  • Fast DDC
    • Buttons and LED
    • 4 encoders, buttons and LED
    • Dual clutches, 4 encoders, buttons and LED
    • Dual clutches, 6 encoders, button matrix and LED
  • CB1
    • Ordering
      • Order together
      • Order yourself
        • 1. Open in EasyEDA
        • 2. Export files
        • 3. Edit Pick&Place
        • 4. Pin headers and jumper
        • 5. Order from JLCPCB
    • Wiring
    • Code
      • Essentials
      • Complete project
      • Settings
    • Circuit
    • Shields
      • Robin
  • Collaboration
Powered by GitBook
On this page
  1. Switch library
  2. Funky switch

Center push

PreviousDirectionalNextEncoders

Last updated 2 months ago

funkyPush()

A simple, momentary pushbutton. The button numer is the one you set in your matrix setup.

void funkyPush(int row, int column, int aCol, int bCol, int cCol, int dCol)

Fill in the row all the funky pins go to, the column for the center push button and then the columns for all the directional buttons.

funkyPush(2,1,5,2,3,4);

  • 1 button number

funkyPushL()

A simple, latching pushbutton. The button numer is the one you set in your matrix setup.

void funkyPushL(int row, int column, int aCol, int bCol, int cCol, int dCol)

Fill in the row all the funky pins go to, the column for the center push button and then the columns for all the directional buttons.

funkyPushL(2,1,5,2,3,4);

  • 1 button number

funkyPushM()

Pushbutton with two modes:

  • 0: Momentary

  • 1: Latching

Uses the button field.

void funkyPushM(int row, int column, int fieldPlacement, int aCol, int bCol, int cCol, int dCol)

Fill in the row all the funky pins go to, the column for the center push button and then the columns for all the directional buttons.

funkyPushM(2,1,3,5,2,3,4);

Here the field placement is set to 3. So you'll find the mode of this switch in the 3rd bit of the button field. Corresponding SimHub property is [DahlDesign.DDCB3].

  • modButton() if you want to change modes freely. modButton() not needed to change modes across presets.

  • 1 button number

funkyPushModButton()

Momentary pushbutton, should be assigned a button number. When held, it will change the mode of switches that are pressed/rotated.

It can also deactivate all for 20 seconds by hitting the button 3 times quickly. This is to make button mapping/calibration less of a hassle with analog injects.

void funkyPushModButton(int row, int col, int Acol, int Bcol, int Ccol, ing Dcol);

For a switch on row 2 column 5, with the directional inputs on columns 1-4 -> funkyPushModButton(2,5,1,2,3,4);

  • 1 button number

'unkyPushBite()

The bite point button can either:

  • Quickly but less accurately set the bite point by holding the clutch paddle at the desired bite point and then pressing the button.

  • Together with a supported switch set the bite point with a 0.1% accuracy.

Any switch function that requires a bite button will be highlighted orange.

Normally works as a simple pushbutton that can be used to anything in-game. In addition, when held, the controller is primed to enter bite point setting. Hold + rotate a bite point compatible rotary (a rotary using a function that includes bite point setting, these are named rotary2Bite, PEC11Bite, etc.) to enter bite point setting mode. At this point, you can release the bite button. Further presses of the button will go through the stages of setting the bite point (mode 1-3), before in the end going out of bite point setting (back to mode 0).

SimHub property -> [DahlDesign.DDCbiteSetting]

Defaults to bit 11 and 12 in the rotary field, you dont have to assign a field placement.

Also, the state of the biteButton itself as a property [DahlDesign.R15].

Modes:

  • 0: Bite point setting inactive

  • 1: Bite point setting active. Adjust with steps of +/- 10

  • 2: Bite point setting active. Adjust with steps of +/- 1

  • 3: Bite point setting active. Adjust with steps of +/- 0.1

As stated above, this button's modes are not changed by using a modButton(), but by the biteButton() itself.

void funkyPushBite(int row, int column, int aCol, int bCol, int cCol, int dCol)

Fill in the row all the funky pins go to, the column for the center push button and then the columns for all the directional buttons.

funkyPushBite(2,1,5,2,3,4);

  • 1 button number

funkyPushHybrid()

Any switch function that uses a hybrid button will be highlighted blue.

A switch dedicated to opening/closing switches with hybrid features, such as DDS functions, rotaryAnalog(), rotary2Modes(), and a few more.

Does not have a button number.

void funkyPushHybrid(int row, int column, int aCol, int bCol, int cCol, int dCol)

Fill in the row all the funky pins go to, the column for the center push button and then the columns for all the directional buttons.

funkyPushHybrid(2,1,5,2,3,4);

None

funkyPushDDButton()

A switch dedicated to swapping between the two "layers" of 12 positions if a DDS switch.

Does not have a button number.

void funkyPushDDButton(int row, int column, int aCol, int bCol, int cCol, int dCol)

Fill in the row all the funky pins go to, the column for the center push button and then the columns for all the directional buttons.

funkyPushDDButton(2,1,5,2,3,4);

None

analog injects