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

Directional

funkyButton()

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

void funkyButton(int row, int column, int pCol, int Col1, int Col2, int Col3)

Fill in the row all the funky pins go to, the column of the one you're making the switch function for, the column of the center push buttons and the other 3 columns for the other 3 directional pushes:

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

  • 1 button number

funkyButtonL()

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

void funkyButtonL(int row, int column, int pCol, int Col1, int Col2, int Col3)

Fill in the row all the funky pins go to, the column of the one you're making the switch function for, the column of the center push buttons and the other 3 columns for the other 3 directional pushes:

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

  • 1 button number

funkyButtonM()

Pushbutton with two modes:

  • 0: Momentary

  • 1: Latching

Uses the button field.

void funkyButtonM(int row, int column, int fieldPlacement, int pCol, int Col1, int Col2, int Col3)

Fill in the row all the funky pins go to, the column of the one you're making the switch function for, the field placement, the column of the center push buttons and the other 3 columns for the other 3 directional pushes:

funkyButtonL(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

funkyButtonHybrid()

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 funkyButtonHybrid(int row, int column, int pCol, int Col1, int Col2, int Col3)

Fill in the row all the funky pins go to, the column of the one you're making the switch function for, the column of the center push buttons and the other 3 columns for the other 3 directional pushes:

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

None

funkyButtonDDButton()

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

Does not have a button number.

void funkyButtonDDButton(int row, int column, int pCol, int Col1, int Col2, int Col3)

Fill in the row all the funky pins go to, the column of the one you're making the switch function for, the column of the center push buttons and the other 3 columns for the other 3 directional pushes:

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

None

PreviousFunky switchNextCenter push

Last updated 2 years ago