The self-description standard Modbus never had.
Open · Royalty-free · Made in India
Modbus has powered building automation, factories, and industrial plants since 1979. iBus gives every Modbus device the one thing the protocol never had: the ability to introduce itself.
For 45 years the industry has been stuck choosing between Modbus — universal but mute — and BACnet — powerful but expensive. iBus is the third option: a thin, open convention that gives a Modbus device BACnet-class discovery at zero additional cost.
iBus reserves a region of holding registers starting at HR 9000. Inside that region a device publishes its identity, its data blocks, and a descriptor for every point. Any iBus-aware scanner reads it in four ordinary FC03 transactions — no new function codes, no new transport.
Read HR 9000. If the value is 0x4275 ("Bu"), the device speaks iBus. Anything else — not iBus, fall through to plain Modbus.
HR 9001–9039 returns version, vendor, model, firmware, point count, and pointers to the manifest and point descriptor tables.
The manifest lists every data block on the device — type (HR / IR / Coil / DI), start, length, and label. One row per logical block.
The point descriptor table gives every register a name, data type, scale factor, ASHRAE unit code, and writable flag. Ready for the BMS.
Specification, reference code in C and Python, the master prompt that turns Claude into an iBus implementation assistant for your specific firmware, and the EnSmart Scanner for testing — all free, all open.
The complete protocol document. Register region layout, identity block, manifest format, point descriptor table, data type codes, ASHRAE unit alignment, and conformance criteria.
Download spec →Vendor-neutral C99 source for embedded MCUs. No malloc, no RTOS dependency. Includes a worked thermostat example and a Makefile that cross-compiles for ARM Cortex-M targets.
Download C reference →For Linux gateways, Raspberry Pi controllers, and PC simulators. Drops into any pymodbus slave through a small data-block subclass. Includes a worked integration example.
Download Python reference →Paste this into Claude with your existing firmware attached, and it acts as a specialist iBus implementation assistant — reading your code, citing spec sections, and giving surgical diffs instead of rewrites.
Download master prompt →The reference iBus client and conformance test tool. Discovers iBus devices in under 2 seconds, reads plain Modbus RTU/TCP slaves, and finds BACnet/IP devices on the same network. Free for everyone — vendors use it to validate their iBus implementation, integrators use it to commission live panels.
Every iBus-implementing vendor gets a unique 4-digit iCode that lives in the device manifest. Registration is free and the registry is publicly searchable — the same model BACnet uses for vendor IDs, built for India and the world.
| iCode | Vendor | Country | Registered | Status |
|---|---|---|---|---|
| 0001 | EnSmart Controls / EnSmart Technologies | India | 2026 | ✓ Active |
| Your company could be iCode 0002. Registration is free. | ||||
Anyone can implement iBus from the public specification. The certification mark exists so that when you see the iBus Certified logo on a device, you know it has been tested against the standard by a recognized lab.
Any vendor implementing the specification may state "iBus compatible" on their datasheet. No registration, no fee, no certification required. Just follow the spec.
The vendor's device passes conformance testing at an iBus Authorized Lab. Earns the iBus Certified logo and a permanent listing in the Certified Devices Registry.
Independent testing labs accredited by iBusNetwork. Trained on the conformance test procedure, signatory to the Lab Agreement, listed publicly. Issues certifications on behalf of the standard.
Open standards fail when one company controls the specification, when changes happen without community input, or when the funding dries up. iBus is structured to avoid all three.
No license fee. No royalty. No membership. No NDA. The iBus v1.1 specification is published under Creative Commons Attribution 4.0. The reference implementations in C and Python are released under the MIT license. You may ship them in commercial products without paying anything to anyone.
The iBus and iBusNetwork trademarks exist solely so that when you see the "iBus Certified" logo on a device, it means something. Anyone may implement the specification. Only devices that pass conformance testing at an Authorized Lab may carry the certification mark.
iBus was created by EnSmart Controls in Chennai, India. EnSmart currently administers the iCode registry, the lab accreditation program, and the specification. EnSmart also makes products that implement iBus — this conflict of interest is real and is disclosed here, openly, on the homepage.
Governance of iBus is planned to transition to an independent body as adoption grows — following the same path MQTT took from its original creator to OASIS. The transition will be announced publicly when the timing is appropriate. Until then, every change to the specification will be tracked through a public GitHub repository open to community review.
No. iBus is an application-layer convention that operates within the standard Modbus holding register address space. It does not modify, extend, or replace the Modbus protocol. All Modbus function codes, framing, and transport mechanisms remain unchanged. iBus compliance requires a working Modbus RTU or Modbus TCP implementation as its transport layer.
iBus unit code values are aligned with the Engineering Units enumeration defined in ANSI/ASHRAE Standard 135 (BACnet) to facilitate interoperability with BACnet-aware tools and gateways. iBus is not a BACnet product and is not affiliated with ASHRAE. The choice to align with ASHRAE 135 is a deliberate interoperability decision, not a claim of affiliation. iBus implementations do not require a BACnet stack.
No. The specification is free under Creative Commons Attribution 4.0. The reference C and Python libraries are MIT-licensed. You may use them in commercial products without paying any royalty. The only paid step is the optional device certification at an Authorized Lab — and that fee covers the cost of testing, not the use of the standard itself.
For an experienced firmware engineer with an existing Modbus FC03 handler: typically one weekend. The C reference implementation is approximately 400 lines of vendor-neutral code that drops in as an overlay on the existing handler. For more help, the AI Implementation Assistant master prompt walks Claude through your specific firmware code section by section.
SunSpec is a register-map convention for solar inverters and energy storage devices, also built on top of Modbus. iBus is a self-description convention for any building automation device — HVAC, electrical, controls, sensors. The two standards share a similar philosophical approach (open layer on top of Modbus) but address different device categories and use different register layouts.
The iBus and iBusNetwork trademarks are currently held by EnSmart Controls in India under Class 9. Governance is planned to transition to an independent non-profit body as adoption grows. The trademark exists to protect the integrity of the certification mark, not to restrict implementation of the specification.
Three steps: (1) Implement the specification using either the C or Python reference code, or your own implementation. (2) Validate it locally with the EnSmart Scanner conformance test mode — you can do this yourself before submitting. (3) Submit your device to an iBus Authorized Lab for formal testing. On a successful pass, the lab issues your Certificate, your iCode (if you do not already have one), and grants the iBus Certified logo license for that device model.