cRIO-9951 Module Development Kit (MDK) Overview


With this module development kit, third parties such as system integrators, NI Alliance Partners, and individual users can create the custom C Series modules they need to complete their systems. Custom modules have the same mechanical and electrical requirements as NI modules except for the software interface presented to the end user.


Figure 1. Module Development Kit (MDK)


Mechanical Overview

Inside the shell of a C Series module is a PCB that hosts the components for conditioning and capturing signals as well as communicating the data to the CompactRIO controller. With the MDK, you can create a custom PCB with your own specific circuitry for conditioning and capturing various types of I/O. Figure 2 shows an example of a C Series module PCB.

Figure 2. C Series Module PCB


NI follows strict guidelines when creating C Series modules to meet many different types of certification standards. When developing your custom PCB, design within the specifications and guidelines according to your requirements and the standards to which you wish to conform. Table 1 includes specifications and guidelines to follow when designing your PCB.


PCB dimensions 2.889 in. x 2.600 in. x 0.062 in.
Connector from PCB to CompactRIO controllers Female, high-density, 15-position D-SUB
Maximum component height on primary side 0.530 in.
Maximum component height on secondary side 0.104 in.
Maximum I/O connector width 2.889 in.
Maximum pin length 0.166 in. from the top of the PCB for through hole parts
Maximum backshell height above PCB 0.670 in.
Maximum backshell height below PCB 0.150 in.
Maximum power dissipation 1.5 W
Standard C Series module ambient temperature range -40 to 70 °C
Suggested maximum component temperature rating 100 °C (assuming 30 °C temperature rise within module)

Table 1. MDK Mechanical Specifications and Guidelines


NI offers a variety of C Series module enclosures for different connector options. NI also offers an enclosure with no I/O connector cutouts so that you can create your own custom connector option. You can find example layout templates in Ultiboard as well as mechanical templates stored in standard computer automated design tool formats.

Figure 3. C Series Module Enclosure


Electrical Overview

C Series modules connect to the CompactRIO controller through a 15-pin D-SUB connector. The communication, power, and ground signals in this connection are available for your custom design. An ID EEPROM is required to store identification information. You also can use the EEPROM for module-specific calibration data. The I/O circuitry implements the primary functionality of the module.

The module interface supports two modes of communication between the CompactRIO controller and individual modules: ID mode and operation mode. ID mode is required and used to access the ID EEPROM on the module. As noted, the ID EEPROM contains information about the module, such as the vendor ID, product ID, and serial number. NI requires that you use a default vendor ID as described in the module development kit user manual if you do not plan to resell your module per the NATIONAL INSTRUMENTS AGREEMENT (NI cRIO MODULE DEVELOPMENT KIT) license. You will obtain a vendor ID after purchase.

Operation mode is used to communicate with the I/O circuitry on the module. It can be used to initiate, communicate, and retrieve data. Although most modules support Operation mode, it is not a requirement. You may create a module that does not require any communication with the system and only provides an external interface through its front panel. The module interface defines 11 signal lines. Two of these signals have predefined, fixed functionality. The definition of the remaining nine signals changes depending on the selected communication mode.

The communication requirements for most modules designate that one of the two general templates be provided within the module development kit: SPI or parallel. Use the SPI template to implement a serial interface to the I/O circuitry and for EEPROM communication. Use the parallel template for simple, direct access to your I/O circuitry. The two general templates cannot meet the requirements of some modules. For example, a custom module may require two independent serial interfaces across the module interface. In this case, you can implement your own arbitrary interface with the user template. In the user template, you can use the I/O lines as general-purpose user lines.

C Series I/O modules feature stringent power and ground requirements to ensure an electrically robust system. These include traditional specifications such as power consumption from the module interface and controller power supply characteristics. Additional specifications include in-rush current for hot insertion and overall power dissipation. All C Series modules must support hot insertion, which is the ability to insert a module into a CompactRIO controller while it is powered on. To prevent the disruption of other modules in the chassis during hot insertion, the module must meet the in-rush current specification. If the in-rush current for the module is greater than the specification, the voltage supplied to the other modules in the chassis may fall below the minimum power required by the modules and cause a fault in the system. The in-rush current charge transfer must not exceed the specified limit before the current falls below the peak allowable power consumption. 


Power-on Inputs tri-stated until module is configured
Sleep mode Inputs tri-stated
Signal rate 40 MHz max
Driver slew rate 0.2 V/ns min, 1 V/ns max pull-ups
All signals (except sleep) 1.5 kΩ min
ID_Select* 3.3 kΩ max
Sleep 10 kΩ min
Latch-up current <20 mA per line, powered off
ESD protection 2 kV

Table 2. MDK I/O Signals

Software Overview

After you develop the hardware and program the module EEPROM, you must create driver VIs for the module. A driver VI is used to define the functionality of a C Series module. For example, if you developed an input module, you can create a driver VI that commands the module to return a result. You can place this driver VI as a subVI in the FPGA VI of an application to acquire a value. The complexity of the module determines the functionality of the driver VI.

Figure 4. Example Driver VI

C Series module users interact with standard modules using high-level I/O functions, which hide the details of the physical interface to the module. These I/O functions, provided by NI-RIO software, support four basic I/O types: analog input, analog output, digital input, and digital output. The user selects the I/O function from the palette, places it on the diagram, and selects the particular I/O resource from a dialog box. Users configure I/O functions by selecting I/O resources from different modules and adding multiple I/O resources to a single function. NI-RIO software hides much of the complexity from the user by generating module-specific logic for the particular I/O function configuration when the user compiles the FPGA VI. This logic performs all of the functionality and communication necessary to implement the high-level functionality specified by the I/O function.

As a custom module developer, you must develop driver VIs that abstract the LabVIEW FPGA Module programmer from the complexities of the module-specific logic. To simplify programming, you can create driver VIs using the LabVIEW FPGA Module and the CompactRIO-generic plug-in. With the CompactRIO-generic plug-in, you can access the signals in the module interface with the Digital Input and Digital Output I/O functions. The driver VIs that you create with the CompactRIO-generic plug-in are slot-specific. You must create a driver VI for each slot in which you use the custom module. The slot information is contained in the CompactRIO-generic I/O function that is inside the driver VI. You can set the configuration information for an I/O function through its dialog box. You cannot set it programmatically. The user manual provides example template drivers for your use and modification.



As a component of the module development kit suite, NI requires you to send two modules to NI for power certification testing to the CompactRIO electrical specification. Testing by NI does not include any electromagnetic certifications (EMC), safety certification testing, or verification or quality testing of firmware, driver-level software, and application-level software. Testing at NI facilities includes in-rush current, power consumption, power dissipation, and interface signal levels. NI also recommends that you provide a design analysis of the environmental testing you have performed or are planning to perform. The goal of the testing is to verify that your custom C Series module meets integration specifications by testing the inputs to the 15-pin D-SUB of the module. All testing performed is nondestructive, and modules will be returned upon completion.

To schedule certification, email    

The module development kit base is for internal-only distribution or for use by designers packaging a custom CompactRIO or Single-Board RIO value added reseller (VAR) system. The base kit does not include support or certification testing. NI recommends that you purchase certification testing to the CompactRIO electrical specification to ensure your custom module operates properly within a CompactRIO controller. If you plan to market or resell a custom module, purchase the suite instead.