32 BIT BACnet Object Utility

BACnet Object Identifier Calculator

Use this BACnet Object Identifier Calculator to encode a BACnet object type and object instance into the packed 32-bit Object Identifier, or decode an existing hexadecimal or decimal identifier into its 10-bit Object Type and 22-bit Instance Number.

✓ Object Type ✓ Instance Number ✓ 32-Bit Identifier ✓ Four Octets ✓ Encode & Decode
OID
Encode / Decode BACnet Object Identifier
● Ready
The packed Object Identifier provides a 10-bit type field, allowing values 0–1023.
22-bit instance field. 4194303 is the special wildcard / unspecified value.
BACnet Object Identifier layout: Bits 31–22 contain the 10-bit Object Type and bits 21–0 contain the 22-bit Object Instance. Instance value 4194303 (0x3FFFFF) is the special unspecified / wildcard instance value.
BACnet Object Identifier Result Encoded
32-Bit Object Identifier
Object Type
Object Instance
Hex Identifier
Decimal UInt32
4 Data Octets
Type Field Hex
Instance Hex
Instance Status
32-Bit Object Identifier Layout
Object Type — Bits 31–22
Instance — Bits 21–0
Bit-Level Calculation -
Encoded Object Identifier
-

What Is a BACnet Object Identifier Calculator?

A BACnet Object Identifier Calculator converts a BACnet object type and instance number into the compact 32-bit identifier used by BACnet application services and object properties.

Every BACnet object is identified by a combination of its object type and object instance. The type describes what kind of object it is, such as an Analog Input, Binary Output, Device or Schedule, while the instance identifies a particular object of that type.

This calculator can encode those two fields into one unsigned 32-bit value or perform the reverse operation and decode a raw identifier.

BACnet Object Identifier Bit Layout

The BACnet Object Identifier contains exactly 32 bits divided into two fields.

Bits 31–22 = Object Type 10 bits Bits 21–0 = Object Instance 22 bits

The 10-bit type field can numerically represent values from 0 through 1023, while the 22-bit instance field can represent values from 0 through 4194303.

BACnet Object Identifier Formula

To encode: Object Identifier = (Object Type << 22) | Object Instance To decode: Object Type = Object Identifier >> 22 and: Object Instance = Object Identifier & 0x3FFFFF

The mask 0x3FFFFF contains the lower 22 bits and therefore extracts the instance field.

BACnet Object Identifier Example

Suppose a BACnet Device object has instance number 1234.

Object Type: Device = 8 Instance: 1234 decimal = 0x0004D2 Shift the object type: 8 << 22 = 0x02000000 Combine with the instance: 0x02000000 | 0x000004D2 = 0x020004D2

Therefore the packed Object Identifier for Device instance 1234 is 0x020004D2.

BACnet Object Identifier Bytes

A packed BACnet Object Identifier occupies four contents octets. For hexadecimal identifier 0x020004D2, the four octets are:

20 00 04 D2

These four bytes contain both the object type and instance; the field boundary occurs after bit 22 rather than necessarily on a full byte boundary.

10-Bit BACnet Object Type Field

BACnet reserves ten bits of the Object Identifier for its object-type value. That means the packed format itself provides 1024 possible numeric type values.

Standard object types occupy assigned values while additional values can be used according to BACnet’s standard and proprietary object-type rules. The calculator therefore includes common named types and also permits direct numeric object-type entry.

22-Bit BACnet Object Instance Field

The lower 22 bits contain the object instance:

Minimum = 0 Maximum encoded 22-bit value = 4194303 Hex = 0x3FFFFF

The all-ones instance value has special wildcard or unspecified meaning in BACnet contexts, so the calculator marks it separately.

BACnet Object Instance 4194303

Decimal value 4194303 is hexadecimal 0x3FFFFF, which means all 22 instance bits are set.

BACnet uses this value as a special unspecified or wildcard instance value in relevant protocol contexts rather than treating it like an ordinary configured object instance.

When the calculator sees instance 4194303, it reports Wildcard / Unspecified so that the value is not confused with an ordinary object instance.

Common BACnet Object Types

Type Number Object Type Typical Purpose
0 Analog Input Analog measured input value
1 Analog Output Analog commandable output
2 Analog Value Internal analog value
3 Binary Input Two-state measured input
4 Binary Output Two-state output
5 Binary Value Internal binary value
8 Device Represents the BACnet device itself
17 Schedule Time-based scheduling
20 Trend Log Historical value logging
51 Network Port Network interface information

BACnet Analog Input Object Identifier Example

Analog Input has standard object type number 0. For Analog Input instance 1:

Type = 0 Instance = 1 Identifier = (0 << 22) | 1 = 0x00000001

Because the object-type value is zero, only the instance bits are visible in this simple packed example.

BACnet Device Object Identifier

The Device object has standard object type 8. A device’s object instance has special importance because BACnet devices are identified by their Device object instance across the BACnet internetwork.

For Device instance 100: Type = 8 Instance = 100 (8 << 22) = 0x02000000 Identifier = 0x02000064

How to Decode a BACnet Object Identifier

Read the 32-bit value

Enter the BACnet Object Identifier as hexadecimal or unsigned decimal.

Extract the upper 10 bits

Shift the identifier right by 22 bits to recover the object-type number.

Extract the lower 22 bits

Apply mask 0x3FFFFF to recover the object instance.

Identify the object type

The calculator maps standard numeric values to commonly recognized BACnet object names.

Check wildcard status

Instance 4194303 is identified as the special unspecified/wildcard value.

Example: Decode 0x020004D2

Identifier: 0x020004D2 Object Type: 0x020004D2 >> 22 = 8 = Device Instance: 0x020004D2 & 0x3FFFFF = 0x0004D2 = 1234 Result: Device,1234

Object Identifier vs Object Name

Object Identifier

A structured numeric value consisting of Object Type and Object Instance. It is compact and is directly used in BACnet protocol operations.

Object Name

A human-readable character string that can describe an object in a form meaningful to operators and engineering software.

The Object Identifier should not be confused with the object’s Object_Name property.

Object Type vs Object Instance

Object Type

Identifies the category of BACnet object, such as Analog Input, Device, Schedule or Trend Log.

Object Instance

Distinguishes one particular object from other objects of the same object type.

Together these fields form the BACnet Object Identifier.

Can Two BACnet Objects Have the Same Instance?

Objects of different object types can use the same numerical instance because the complete identifier includes both object type and instance.

For example: Analog Input,1 Binary Input,1 Analog Value,1 are different Object Identifiers because their object-type fields differ.

Within the applicable BACnet object namespace, the type-and-instance combination identifies the individual object.

BACnet Object Identifier Decimal vs Hex

A BACnet Object Identifier is fundamentally a 32-bit value. Engineering tools may display that value as unsigned decimal or hexadecimal.

These are the same packed value: Hex: Decimal: 536872146

Hexadecimal is often easier for bit-level inspection because the packed field can be compared directly with protocol bytes.

BACnet Object Identifier ASN.1 Encoding

When an Object Identifier is encoded as a BACnet application value, the Object Identifier itself is represented using four contents octets. Application-tag encoding may additionally include the BACnet tag information outside those four contents bytes.

This calculator focuses on the 32-bit Object Identifier value and its four contents octets. It does not add a BACnet application tag byte automatically.

Common BACnet Object Identifier Mistakes

Assuming 16 + 16 Bits

The identifier is not split evenly. Object Type uses 10 bits and Instance uses 22 bits.

Shifting by the Wrong Amount

The object type must be shifted left by exactly 22 bits.

Using 0xFFFF as Instance Mask

The instance field requires the 22-bit mask 0x3FFFFF.

Treating 4194303 as Ordinary

The all-ones instance has special unspecified/wildcard meaning.

Confusing Object Type with Property ID

Object type identifies the object class. A property identifier identifies a property of that object.

Adding Application Tag to Raw Identifier

The four identifier contents octets and an application tag are separate encoding concepts.

BACnet Object Identifier Calculator FAQs

What is a BACnet Object Identifier?
It is a 32-bit value that combines a BACnet Object Type with an Object Instance number.
How many bits are in a BACnet Object Identifier?
A BACnet Object Identifier contains 32 bits total.
How many bits does BACnet Object Type use?
Object Type occupies the upper 10 bits of the identifier.
How many bits does BACnet Object Instance use?
Object Instance occupies the lower 22 bits.
What is the BACnet Object Identifier formula?
Shift the Object Type left by 22 bits and OR the result with the 22-bit Object Instance.
How do I decode a BACnet Object Identifier?
Shift the 32-bit identifier right by 22 bits for the Object Type, then mask with 0x3FFFFF to obtain the Object Instance.
What is BACnet Device object type?
The standard numeric Object Type for Device is 8.
What is BACnet Analog Input object type?
Analog Input uses Object Type 0.
What is BACnet Schedule object type?
Schedule uses standard Object Type 17.
What is BACnet Trend Log object type?
Trend Log uses standard Object Type 20.
What is the maximum BACnet Object Instance field value?
The 22-bit field can encode 4194303 decimal, or hexadecimal 0x3FFFFF. That value has special unspecified/wildcard meaning.
Is BACnet instance 4194303 a normal object instance?
It is the all-ones 22-bit value and is used as the special unspecified or wildcard instance value in BACnet contexts.
What is Device 1234 as a BACnet Object Identifier?
Device has type 8. Encoding type 8 with instance 1234 produces hexadecimal Object Identifier 0x020004D2.
How many bytes is a BACnet Object Identifier?
The packed Object Identifier occupies four data octets.
Is an Object Identifier the same as Object Name?
No. Object Identifier is the structured type-and-instance identifier. Object_Name is a character-string property.
Can different BACnet object types use the same instance number?
Yes. The complete object identity includes both Object Type and Object Instance.
What mask extracts a BACnet object instance?
The 22-bit mask is hexadecimal 0x3FFFFF.
Can this calculator decode proprietary numeric object types?
Yes. Decoder mode extracts the complete 10-bit numeric object type even when the calculator does not have a standard name for that value.

Encode and Decode BACnet Object Identifiers

Enter a BACnet Object Type and Instance to generate the packed 32-bit identifier, hexadecimal and decimal values, four data octets and bit layout, or decode an existing Object Identifier back into its BACnet fields.

Scroll to Top