From 1b163259ec2d18cc08f4ad079d15438718811d98 Mon Sep 17 00:00:00 2001
From: jonny_ji7 <jonny@wwad.de>
Date: Sat, 4 Jun 2022 22:05:09 +0200
Subject: [PATCH] Create README.md: Instructions, Documentation

- Add brief description
- Add installation and compilation instructions
- Add links to websites and connection-plan
- Add planned features
- Add Usage section with usage description of old firmware
---
 README.md | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 88 insertions(+)
 create mode 100644 README.md

diff --git a/README.md b/README.md
new file mode 100644
index 0000000..575f5a9
--- /dev/null
+++ b/README.md
@@ -0,0 +1,88 @@
+Firmware for a homemade automated electric armchair.  
+More details about this project: https://pfusch.zone/electric-armchair
+
+
+# Installation
+### Install esp-idf
+For this project **ESP-IDF v4.4.1** is required (with other versions it might not compile)
+```bash
+#download esp-idf
+yay -S esp-idf #alternatively clone the esp-idf repository from github
+#run installation script in installed folder
+/opt/esp-idf/install.sh
+```
+### Clone this repo
+```
+git clone git@github.com:Jonny999999/armchair_fw
+```
+
+
+
+# Compilation
+### Set up environment
+```bash
+source /opt/esp-idf/export.sh
+```
+(run once in terminal)
+
+### Compile
+```bash
+idf.py build
+```
+
+### Upload
+- connect FTDI programmer to board (VCC to VCC; TX to RX; RX to TX)
+- press REST and BOOT button
+- release RESET button (keep pressing boot)
+- run flash command:
+```bash
+idf.py flash
+```
+- once "connecting...' successfully, BOOT button can be released
+
+### Monitor
+- connect FTDI programmer to board (VCC to VCC; TX to RX; RX to TX)
+- press REST and BOOT button
+- release RESET button (keep pressing boot)
+- run monitor command:
+```bash
+idf.py monitor
+```
+- once connected release BOOT button
+- press RESET button once for restart
+
+
+
+# Hardware setup
+## pcb
+Used pcb developed in this project: https://pfusch.zone/project-work-2020
+
+## connection plan
+A diagram which shows what components are connected to which terminals of the pcb exists here:  
+[connection-plan.drawio.pdf](connection-plan.drawio.pdf)
+
+
+
+# Planned Features
+- More sensors:
+  - Accelerometer
+  - Lidar sensor
+  - GPS receiver
+- Anti slip regulation
+- Self driving algorithm
+- Lights
+
+
+
+# Usage
+## Switch functions
+**previous functions - not implemented yet**
+| Count | Action |
+| --- | ---|
+| 1 | define joystick center |
+| 2 | toggle motors |
+| 3 | toggle log-level (WARN, DEBUG, INFO) |
+| 4 | define max duty |
+| 5 | toggle mode MQTT/JOYSTICK |
+| 6 | toggle mode SHAKE/JOYSTICK |
+| 7 | toggle testing-mode (dry-run) |