Demand Peripherals     Robotics and Automation Made Easy

Contributing Code

dpdaemon: Dpdaemon is the user-space daemon that provides an intuitive API for devices and services connected to your automation system. It can control the peripherals in a DPI Baseboard, some USB devices, and can even has a "peripheral" for client connection to an Internet Relay Chat server.

The core of dpdaemon and all of the DPI plug-in modules ("user space drivers") are released under the GNU Public License Version 2. We welcome new plug-in modules and bug fixes and will pull them into the dpdaemon git repository after a little testing.

The contributor retains copyright and full attribution is always given. Note that plug-in modules are used as shared-object files and are not statically linked to the dpdaemon server. This means you can release them under a license other than GPLV2 if you wish. Please contact for more information.


DPCore Verilog Peripherals: Demand Peripherals is what Wikipedia calls a "single-vendor commercial open source" company. As such we must retain copyright for our Verilog code and we can not accept Verilog code sent to us without a contract.

While bug reports and feature requests are the best way to help you do have a couple of choices if you want to add your Verilog code to our code base. We suggest you donate patches or minor pieces of code directly to Demand Peripherals. A form for this is available here.

Since Demand Peripherals charges for commercial licenses it seems entirely fair that we should pay for contributed Verilog peripherals. The contributed code has to be complete and tested and at least six instances of the peripheral must fit in a DPCore built for a Spartan 3E-100. The standard payment for peripherals meeting these requirements is two thousand dollars, to be paid on the first use of the peripheral in a commercial license issued within two years of the contribution. The contract for paid contributed code is available here.

Please see the forums for ideas on peripherals we would like to acquire.


Interface Cards: The DPI interface card set includes both FPGA daughter cards as well as utility and accessory cards such as the power management cards.

Contributed design can use Eagle or KiCad, retain full copyright of the contributor, and do not need to be licensed under the Creative Commons license that Demand Peripherals uses. We may ask that you send a working prototype of the card for our testing. We typically send the card back after testing is complete.

Please see for forums for new card ideas.


FPGA Defined Peripherals
User Interface
FPGA Configuration
FPGA Buttons & LEDs
Host Tx/Rx Interface
AVR Interface
Stereo Audio Amplifier
Text LCD and Keypad
Quad WS2812 Interface
Quad Slide Pot
IR Recv/Xmit
6 Digit LCD
RC Decoder
Keyfob RF Decoder
Rotary Encoder Interface
Quad Touch Interface
Motion Control
Dual DC Motor Controller
Dual Quadrature Decoder
Quad 13 Bit Servo
Bipolar Stepper Controller
Unipolar Stepper Controller
Simple Input / Output
Quad Binary Output
Quad Binary Input
Octal Input/Output
32 Channel Binary Output
32 Channel Binary Input
Quad Serial Output
Octal Serial Output
Octal 12-bit ADC
Quad Ping))) Interface
Pololu QTR Interface
Octal SRF04 Interface
Generic I2C
Generic SPI
Octal 8-Bit DAC
Quad Digital Potentiometer
Quad PWM Output
Quad PWM Input
Quad Event Counter
Real Time Clock
Dual Pulse Generator

Interface Cards
Control Cards
User Interface
Stereo Audio Amplifier
IR Recv/xmit
Six Digit LCD Display
Keyfob RF Receiver
Rotary Encoder
Quad Switch Card
Text LCD / keypad
Quad Slide Pot
Quad Touch Interface
Motion Control
Dual 7-amp H-bridge
Quad Open Drain Driver
Quad 10 Amp Relay Card
Input / Output
Octal 8-Bit DAC
Quad Digital Potentiometer
Octal 12-bit ADC
Octal SRF04
I2C Prototyping
SPI Prototyping
USB 2.0 Hub
Real Time Clock
Octal Input/Output
32 Channel Input
32 Channel Output
Power Distribution Card
15 Amp Power Distribution
5 Volt Switching Regulator
ATX Power Break-Out Card
Disk Drive Power Break-Out
MP43 Aluminum Mounting Plate
WW4 Large Prototyping Card
WW2 Prototyping Card
WW1 Small Prototyping Card
SMP SMD Prototyping Card