Demo of Apple HomeKit accessory server library
Switch branches/tags
Nothing to show
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
components Update homekit component to latest version Aug 9, 2018
examples using only one task for all toggles May 23, 2018
.gitignore Sonoff Basic PWM example (#50) Mar 5, 2018
.gitmodules Update components to latest versions May 9, 2018
LICENSE Initial commit Dec 5, 2017
README.md Update README.md Jul 17, 2018
wifi.h.sample Initial import Dec 5, 2017

README.md

esp-homekit-demo

Demo of Apple HomeKit accessory server library.

Usage

  1. Initialize and sync all submodules (recursively):
git submodule update --init --recursive
  1. Copy wifi.h.sample -> wifi.h and edit it with correct WiFi SSID and password.

  2. Install esp-open-sdk, build it with make toolchain esptool libhal STANDALONE=n, then edit your PATH and add the generated toolchain bin directory. The path will be something like /path/to/esp-open-sdk/xtensa-lx106-elf/bin. (Despite the similar name esp-open-sdk has different maintainers - but we think it's fantastic!)

  3. Install esptool.py and make it available on your PATH. If you used esp-open-sdk then this is done already.

  4. Checkout esp-open-rtos and set SDK_PATH environment variable pointing to it.

  5. Configure settings:

    1. If you use ESP8266 with 4MB of flash (32m bit), then you're fine. If you have 1MB chip, you need to set following environment variables:
    export FLASH_SIZE=8
    export HOMEKIT_SPI_FLASH_BASE_ADDR=0x7a000
    1. If you're debugging stuff, or have troubles and want to file issue and attach log, please enable DEBUG output:
    export HOMEKIT_DEBUG=1
    1. Depending on your device, it might be required to change the flash mode:
    export FLASH_MODE=dout

    (see issue #80)

  6. Build example:

make -C examples/led all
  1. Set ESPPORT environment variable pointing to USB device your ESP8266 is attached to (assuming your device is at /dev/tty.SLAB_USBtoUART):
export ESPPORT=/dev/tty.SLAB_USBtoUART
  1. To prevent any effects from previous firmware (e.g. firmware crashing right at start), highly recommend to erase flash:
    make -C examples/led erase_flash
  1. Upload firmware to ESP:
    make -C examples/led test

or

    make -C examples/led flash
    make -C examples/led monitor

ESP32

  1. Initialize and sync all submodules (recursively):
git submodule update --init --recursive
  1. Copy wifi.h.sample -> wifi.h and edit it with correct WiFi SSID and password.

  2. Install esp-idf by following instructions on esp-idf project page. At the end you should have xtensa-esp32-elf toolchain in your path and IDF_PATH environment variable pointing to esp-idf directory.

  3. Configure project:

make -C examples/esp32/led menuconfig

There are many settings there, but at least you should configure "Serial flasher config -> Default serial port". Also, check "Components -> HomeKit" menu section.

  1. Build example:
make -C examples/esp32/led all
  1. To prevent any effects from previous firmware (e.g. firmware crashing right at start), highly recommend to erase flash:
    make -C examples/led erase_flash
  1. Upload firmware to ESP32:
    make -C examples/led flash
    make -C examples/led monitor