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
  • What is this?
  • Can I use it?
  1. Welcome

Introduction

PreviousWelcomeNextSupported hardware

Last updated 1 year ago

What is this?

Dahl Design Controller (DDC) is an arduino sketch that serves as a framework for creating a joystick controller. It offers a massive bundle of featuers and unlimited freedom to customize.

As a dedicated user of , I've earlier used SimHub's arduino platform to code my controllers. In many ways, it works the same way as DDC - allowing the user to choose which kind of buttons are connected to the arduino, and then providing a set of algorithms that in the end uses the joystick library to communicate to computer. SimHub has a great variety of supported switches, however, there is a compromise due to the limited memory on these microcontrollers and all the other stuff that has to be included in the SimHub arduino sketch. DDC is 100% dedicated to switch algorithms, and can offer alot more complex solutions. To get the most out of a DDC controller in SimHub, install my .

The main benefits of using DDC:

  • Supports all kinds of switches in all kinds of wiring (including funky-switches and 2/4-bit encoders), allowing for flexible setup and the option to add a ridiculous amount of switches to a single MCU.

  • Superb software debouncing for all switches.

  • Complex switch functions and ability to change how switches work on the fly.

  • Full RGB LED integration with SimHub for Atmel 32U4 and RP2040 boards.

  • Fully customisable LED control within the firmware itself.

  • Great dual clutch support with different modes for different preferences.

  • 12 presets to quickly change several settings - set up your own presets for different cars and sims.

  • Communication with SimHub, so you'll get all relevant info from your controller avaliable as properties in the dashboard editor.

  • Full control over your own firmware.

  • Always evolving, new switch support will be added on request.

The main downsides of using DDC:

  • No support for STM32 boards.

  • A bit more to get your head around compared to using a setup UI as in FreeJoy and SimHub.

Can I use it?

DDC is for the DIY community, not a free firmware for commercial products. It is not for commercial ues.

There are hardware limitations to DDC. There are certain microcontrollers that are supported. When it comes to switches, encoders, hall sensors, potentiometers, etc., there are no limitations. If you can't find a function that makes your switch work - contact me and we'll improve on DDC together. See for more information.

SimHub
plugin
here