# CHIP controller There are currently 4 implementations of the CHIP device controller with varying support for certain CHIP features. ## Implementations ### iOS The iOS chip-tool is located in [../darwin/CHIPTool](../darwin/CHIPTool). ### Android The Android chip-tool is located in [../../examples/android/CHIPTool](../../examples/android/CHIPTool). ### POSIX CLI The POSIX CLI chip-tool is located in [../../examples/chip-tool](../../examples/chip-tool). ### Darwin CLI The POSIX CLI chip-tool is located in [../../examples/darwin-framework-tool](../../examples/chip-tool). ### Python The Python CHIP Controller library is located in [../controller/python/](../controller/python). ## Feature Overview | Onboarding | iOS | Android | CLI | Python | | ---------- | --- | ------- | --- | ------ | | Setup code | y? | n | y | y | | QR code | y | y | n | n | | NFC | y | y | n | n | | Provisioning | iOS | Android | CLI | Python | | ------------ | ------ | ------- | --- | ------ | | Soft-AP | y | n | y | y | | WiFi-BLE | y? | y | y | y | | Thread-BLE | n(\*0) | y(\*1) | n | y(\*1) | | Commands/Clusters | iOS | Android | CLI | Python | | ------------------- | --- | ------- | --- | ------ | | Echo Client | y? | y | y | y | | On/Off Client | y | y | y | y | | LevelControl Client | ? | y | y | y | | Identify Client | ? | n(\*2) | y | y | | Scene Client | n? | n(\*2) | y | y | | Group Client | n? | n(\*2) | y | y | | Binding Client | n? | n(\*2) | y | y | | Attributes/Clusters | iOS | Android | CLI | Python | | ------------------- | --- | ------- | --- | ------ | | Read | n | n(\*2) | y | y | | Write | n | n(\*2) | y | n | | | iOS | Android | CLI | Python | | ---------------- | --- | ------- | --- | ------ | | Multiple Devices | y | n | ? | y | Notes: (\*0) (\*1) Only static commissioning, not MeshCoP. (\*2) Locally a patch exists, could be upstreamed.