Git Product home page Git Product logo

esp's Introduction

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/esp32/led erase_flash
  1. Upload firmware to ESP32:
    make -C examples/esp32/led flash
    make -C examples/esp32/led monitor

esp's People

Contributors

maximkulkin avatar renssies avatar pcsaito avatar outsiderz avatar dbsqp avatar dave1001 avatar g3ntleman avatar homeaccessorykid avatar jlusiardi avatar

Stargazers

ReD avatar Lizzus avatar  avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.