Welcome to opendnp3, a portable, rigorously-tested, Apache-licensed implementation of the DNP3 protocol (aka IEEE-1815).

Support options

If you need dedicated commercial support, custom integration services, or compliance/security testing contact Automatak.

If the library does not contain a feature that you need for your device or application, please consider sponsoring the addition.

About DNP3

DNP3 (IEEE-1815, latest revision 2012) is am open, standardized SCADA protocol with a large feature set. This guide (or the opendnp3 project in general) cannot teach you everything about DNP3. To successfully use opendnp3 or develop a product based on it, you will almost certainly need a copy of the specification. The opendnp3 project recommends that your organization joins to obtain a copy.

Forget everything you know about Modbus. DNP3 is event-oriented. The master doesn't have to constantly scan the outstation for every single point. Instead it requests changes in one of two modes:

Understanding how DNP3 is event-oriented is the single most important concept to grasp. There are many other subtleties and complexities to discover as you implement DNP3 software, but always keep this in mind.