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 EEPROM?
  • Does my board have EEPROM?
  • CAT24C512
  1. 1: Project planning

EEPROM

PreviousPWM / Circuit controlNextProcessing and memory

Last updated 2 months ago

What is EEPROM?

EEPROM (Electrically Ereasable Programmable Read Only Memory) is fast read/write memory that doesnt clear on power-down. It can be used to store data like bite point, preset number, LED brightness settings, etc. When you power up the controller, the settings will be what you left them on power down. It will also allow you to adjust your presets with your controller, instead of hardcoding it in the firmware.

With EEPROM hooked up, DDC will remember which preset you last selected, and the following settings for all your presets:

  • Bite point

  • LED brightness

  • Throttle hold value

  • Brake magic value

  • DDS switch position

This will override any global values set in your But adding fixed per-preset values in the firmware will again overwrite EEPROM.

Having EEPROM also allows you to use clutch functions with automatic calibration.

Does my board have EEPROM?

  • The Atmel 32U4 (board such as Pro Micro, Leonardo, etc) natively has 1024 bytes of EEPROM available, which has built-in support from DDC. You just have to turn it on.

  • The RP2040 can use some of its flash memory as a replacement for EEPROM, set to 1024 bytes. You have to turn on this feature.

  • The Dahl Design CB1 has 65 536 bytes of EEPROM available, and EEPROM is automatically activated.

All other supported boards does not have EEPROM.

Using flash memory as EEPROM works fine for a DIY project, but this is not idea for a commercial product or any project with a custom PCB and you cant easily replace the controller board. It can't handle as many rewrites as a proper EEPROM IC (100-fold difference). For this reason, DDC also supports dedicated EEPROM chips:

CAT24C512

DDC supports adding EEPROM in the shape of a I2C device called CAT24C512. Since it runs on I2C protocol, it will need to use the SCL and SDA pin on your microcontroller. More on this in the section.

presets.
wiring