src.nth.io/

summaryrefslogtreecommitdiff
path: root/README.md
blob: 90348ae51495dee1ba4f125250c8d11fe25eb345 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# ESP HomeKit Intercom

## Overview

An ESP32 HomeKit implementation of a [Lobby Door Intercom](https://wrt.nth.io/luke/siri-controlled-1970s-intercom-door)
with a solenoid door lock control and a voltage-based doorbell "buzzer".

This is a reimplementation of the [original based on a RaspberryPi Zero W and HAP-NodeJS](https://github.com/lukehoersten/homekit-door).

The impetus for this ESP32 implementation was [Espressif's HAP SDK](https://github.com/espressif/esp-homekit-sdk) which
is much better than the official [Apple "ADK"](https://github.com/espressif/esp-apple-homekit-adk).

## Electronics

The input voltage for the doorbell has a 23VDC and a 52VAC component and the same circuit is shared with all the units
in a teir. I haven't yet determined exactly how the buzzer indexes to the AC/DC voltage change but it's pulled
high. When the buzzer is triggered, the ADC measures a voltage drop of about 20%. I'm assuming this is the DC component
only measured by the ADC.

## Partition Sizing

When flashing, the following error may occur:

```
E (703) esp_image: Image length 1435760 doesn't fit in partition length 1048576
E (703) boot: Factory app partition is not bootable
E (705) boot: No bootable app partitions in the partition table
```

The fix is [documented](https://github.com/micropython/micropython-esp32/issues/235) as the following:

`esp-idf/components/partition_table/partitions_singleapp.csv`
```
# Name,   Type, SubType, Offset,  Size, Flags
# Note: if you have increased the bootloader size, make sure to update the offsets to avoid overlap
nvs,      data, nvs,     ,        0x6000,
phy_init, data, phy,     ,        0x1000,
factory,  app,  factory, ,        0x180000, # Change from 1M to 0x180000
```