Comments (18)
Here are the answers
Is performance the same?
Performance should be similar as the underlying esp-idf is the same.
Are they both stable?
The primary code base of both can be considered as stable, but with a minor difference. esp-homekit-sdk is developed in-house and works with all stable IDF releases 4.x. esp-apple-homekit-adk is a port of Apple's ADK, and it requires a custom mbedtls branch, which in itself is not part of any stable IDF release.
Do they both support the same feature set? Are they feature complete compared to the spec?
Both are compliant with the HAP Spec R15
Do they both support IP and BLE?
esp-homekit-sdk does not support BLE at all and may not support in future as well. Apple's ADK has support for BLE, but we haven't ported it in esp-apple-homekit-adk. The port could be added in future.
Will they both be maintained (in terms of the ADK updated if Apple updates)
Yes.
Which one may become part of the IDF repository?
None of these will be part of esp-idf and will be maintained as separate projects.
What’s the difference between this SDK and the MFi compliant one?
At API level it is the same, but in the MFi compliant variant, you can enable the MFi authentication options and Apple Wi-Fi Accessory Configuration (WAC provisioning).
Which SDK is more similar to the MFi release from espressif?
Both, esp-homekit-sdk and esp-apple-homekit-adk have their corresponding MFi variants. However, esp-homekit-sdk has been the primary MFi compliant SDK from Espressif since long.
from esp-homekit-sdk.
@shahpiyushv sorry for the direct question: should you start a new project today, which one you would go for and why :)
@dguerri I may be biased because most of the code in esp-homekit-sdk is written by me, whereas esp-apple-homekit-adk is just a port of Apple's ADK, the code for which I myself do not know much :)
The APIs in both are totally different and you can check for yourself which ones you prefer. One advantage with esp-homekit-sdk is that it uses most stuff from esp-idf (like crypto, webserver, etc.) and has integrations like aws-iot, ESP RainMaker, Unified Provisioning etc. ADK on the other hand may support some additional profiles which may not be part of esp-homekit-sdk and it has also has support for BLE, which may be ported into esp-apple-homekit-adk sometime in future.
from esp-homekit-sdk.
Thanks for the answer. Can you give some guideline:
- Is performance the same?
- Are they both stable?
- Do they both support the same feature set? Are they feature complete compared to the spec?
- Do they both support IP and BLE?
- Will they both be maintained (in terms of the ADK updated if Apple updates)
- Which one may become part of the IDF repository?
from esp-homekit-sdk.
SW token auth may be cheaper since you save on the MFi chip cost. The pair setup is slightly slower though, but it should not matter much since it comes into picture just once when the accessory is being configured. Apple would be in a batter position to suggest which one to use.
from esp-homekit-sdk.
@slompf18, The esp-apple-homekit-adk is a port of Apple's ADK, whereas esp-homekit-sdk is completely home grown. You may use any SDK that you find suitable for your use case and convenient to use. Both of these are meant for hobbyists and both also have their MFi compliant counterparts if you want to build a commercials product.
from esp-homekit-sdk.
What’s the difference between this SDK and the MFi compliant one?
from esp-homekit-sdk.
Wanted to add one more question to the list: which SDK is more similar to the MFi release from espressif? I worry that I'll get comfortable with the API from this SDK only to have it change drastically when requesting the MFi SDK.
from esp-homekit-sdk.
Thanks for clarification. So I guess the ADK port is the better choice:
- Probably well tested by Apple, as it runs on many devices.
- Less effort as new features will be implemented by Apple and have "only" to be ported.
- May support BLE in the future.
The only disadvantages I see are:
- It needs a special version of IDF. Maybe this will be fixed in future when upgrading to a higher version of mbedtls.
- It does not work for ESP8266. But ESP8266 does not work for commercial products anyway.
from esp-homekit-sdk.
@shahpiyushv thanks for answering everything!
I have one last question regarding MFi authorization. I assumed it would be s/w auth, but I see in the MFi menuconfig that you can configure I2C pins for what I assume to be h/w authorization with a MFi co-processor. Is this the case? Or can you use either software auth or hardware auth?
If it's hardware auth only, could you briefly describe the process for obtaining a co-processor? Does espressif provide a co-processor distributor? We've purchased MFi co-processors from Avnet before but just want to know if we need to start planning for this in our board design. Thanks.
from esp-homekit-sdk.
@slompf18 some clarifications
Probably well tested by Apple, as it runs on many devices.
This could be true, but I am not 100% sure about this as almost all our customers have been using esp-homekit-sdk as it has been around for a longer time. Even other chip vendors have had their own custom SDKs and the ADK came later.
Less effort as new features will be implemented by Apple and have "only" to be ported.
The efforts here would be more on Espressif's side and not end users.
from esp-homekit-sdk.
@drewandre you may choose to use either SW auth or HW auth, both are supported by the SDK. MFi co-processor can be procured from the MFi portal from the distributors authorised by Apple, but of course, it isn't required if you choose the SW token authentication.
from esp-homekit-sdk.
This could be true, but I am not 100% sure about this as almost all our customers have been using esp-homekit-sdk as it has been around for a longer time. Even other chip vendors have had their own custom SDKs and the ADK came later.
I was thinking on other devices, like smart TVs, etc. There it is probably used, too.
from esp-homekit-sdk.
I was thinking on other devices, like smart TVs, etc. There it is probably used, too.
This is unlikely to be the case since HomeKit wasn't meant for such types of devices.
from esp-homekit-sdk.
@shahpiyushv sorry for the direct question: should you start a new project today, which one you would go for and why :)
from esp-homekit-sdk.
I was thinking on other devices, like smart TVs, etc. There it is probably used, too.
This is unlikely to be the case since HomeKit wasn't meant for such types of devices.
Some new Sony and LG smart TVs are accessible via HomeKit. Good chance they are using the ADK of Apple.
from esp-homekit-sdk.
Does the Demo sdk can be used for SW authentication without getting Mfi variant esp32 SDK/ADK..?
If yes, which part of the code has to look for for SW authentication?
from esp-homekit-sdk.
@yemirabalaraju , HomeKit software authentication requires the SW Tokens from Apple which only MFi Licensees are eligible to get. Moreover, the specification for that are also open only for MFi Licensees. So, to try that out, you would have to use the MFi variant of the SDK/ADK.
from esp-homekit-sdk.
Hi,
a generic question..
I have option for going by Software token Auth. or MFi hardware chip based Auth. Which approach is best, ?
Which one is more secure ? HW or SW base auth..
What is industry trend in method of Authentication process..
from esp-homekit-sdk.
Related Issues (20)
- Cannot Add Accessory (Accessory Already Added)
- Help me understand how homekit works (bridge + thermostat example) HOT 7
- ESP32 Homekit Gateway queries HOT 1
- Errors with example "lightbulb" HOT 4
- How send the led status to the iPhone? HOT 11
- How to re-send WiFi credential after reset HOT 2
- Parameters accessory: what is ".pv" param? HOT 2
- Using local switch without accessory pair HOT 3
- Unable to Add Accessory - This accessory cannot be used with HomeKit HOT 8
- Lightbuld: fast blink on reset HOT 4
- Setup Payload Generator doesn't work with Flash Download Tool HOT 2
- Associated more than one accessory HOT 2
- mbedtls inclusion error, udnefined functions HOT 1
- Unable to find components to build examples for ESP8266 HOT 2
- How to cleanly add or remove accessories ? (bridge) HOT 2
- HTTPD init error HOT 2
- ESP8266无法使用
- Accessory Not Found HOT 6
- Update examples CMakeLists.txt
- hap_platform_httpd_start failing HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from esp-homekit-sdk.