src.nth.io/

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md39
1 files changed, 39 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..90348ae
--- /dev/null
+++ b/README.md
@@ -0,0 +1,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
+```