Skip to content

AramVartanyan/esp-homekit-demo

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

For Mac OSX High Sierra users

  1. First of all you will have to install Git
  2. Install Xcode, Macports and Homebrew
  3. Execute all commands from here:

https://gist.github.com/xuhdev/8b1b16fb802f6870729038ce3789568f

  1. If you continue to face errors you may have to do also:
   sudo port install git gsed gawk binutils gperf grep gettext py-serial wget libtool autoconf automake
    
   brew install help2man
    
   sudo easy_install pip
    
   pip install --user  pyserial
  1. You may have to make a case-sensitive volume. Execute the following:
   sudo hdiutil create ~/Documents/case-sensitive.dmg -volname "case-sensitive" -size 10g -fs "Case-sensitive HFS+"
    
   sudo hdiutil mount ~/Documents/case-sensitive.dmg
    
   cd /Volumes/case-sensitive
  1. When you compile the compiller succesfully then you will have to follow the instruction above. Do not forget to install the components:
   cd /Users/.../.../esp-homekit-demo-master/components

   git clone --recursive https://github.com/pcsaito/WS2812FX-rtos.git

   git clone --recursive https://github.com/maximkulkin/esp-cjson.git

   git clone --recursive https://github.com/maximkulkin/esp-homekit.git

   git clone --recursive https://github.com/maximkulkin/esp-http-parser.git

   git clone --recursive https://github.com/maximkulkin/esp-wifi-config.git

   git clone --recursive https://github.com/maximkulkin/esp-wolfssl.git

Change the components directory names to:

cJSON; homekit; http-parser; wifi_config; wolfssl; WS2812FX

  1. For the example compilation you will have to make the esp-open-rtos available on your PATH. Example:
   export PATH="${PATH}:/Volumes/case-sensitive/esp-open-sdk/xtensa-lx106-elf/bin"
   export SDK_PATH=/Volumes/case-sensitive/esp-open-rtos

Than compile the example:

   cd /Users/.../.../esp-homekit-demo-master/
   make -C examples/led_dim all
  1. If you are using the 4MB USB ESP-8266 D1 mInI module you will find it at something like /dev/tty.wchusbserialfa140 (You will also need to install the Wemos drivers - CH341SER.) Chek where it is with:
   ls /dev/tty*

Than you are ready to flash:

   export ESPPORT=/dev/tty.wchusbserialfa140
   make -C examples/led_dim erase_flash
   make -C examples/led_dim flash
   make -C examples/led_dim monitor
  1. Enjoy

Releases

No releases published

Packages

No packages published