From 11b6d5d17d0275fbc8281b58a97278c76fd2dd77 Mon Sep 17 00:00:00 2001 From: Julian <leuckerj@gmail.com> Date: Thu, 31 Dec 2020 12:48:26 +0100 Subject: [PATCH 1/3] Update README.md --- README.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index e84b8dd..3c5ce30 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,17 @@ -# FPGA Device Manager +# Smart Home Solution +This is a Smart Home Solution initially created as part of a Bachelor's thesis. The product consists of three parts, FPGA boards that can take signals from switches and switch lamps, an I2C bridge for communication of several FPGA boards with a Raspberry Pi and finally the Raspberry Pi itself, which runs the program HomeAssistant. + +## FPGA Device Manager A GUI for managing device configurations for a Smart Home FPGA solution that was created as part of a Bachelor's thesis. This application aids you in creating a device configuration for a Smart Home FPGA and automatically generates the corresponding Verilog code. -## Installation +### Installation ``` pip install fpga-device-manager ``` -## Usage +### Usage To launch the GUI, execute: ``` python -m fpga_device_manager @@ -17,15 +20,15 @@ python -m fpga_device_manager - The generated Verilog `.v` files will have to be copied manually to the `smarthome/source/generated` folder of the Lattice Diamond project. - The generated `smarthome.ldf` file has to be copied manually to the root folder of the Lattice Diamond project. -### Command-line generation +#### Command-line generation Verilog code can be generated from the command line like this: ``` python -m fpga_device_manager.generator --output=./generated configuration.json ``` -## Valid configurations +### Valid configurations A valid configuration needs: - at least one appliance - at least one sensor -- every sensor to be associated with an appliance \ No newline at end of file +- every sensor to be associated with an appliance -- GitLab From 1abd96317e80b910c20a718140ccc6a68b51989e Mon Sep 17 00:00:00 2001 From: Hangzhi Yu <hangzhi@protonmail.com> Date: Sat, 11 Sep 2021 17:22:28 +0000 Subject: [PATCH 2/3] Update README.md --- README.md | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 3c5ce30..7e2be9b 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,50 @@ # Smart Home Solution -This is a Smart Home Solution initially created as part of a Bachelor's thesis. The product consists of three parts, FPGA boards that can take signals from switches and switch lamps, an I2C bridge for communication of several FPGA boards with a Raspberry Pi and finally the Raspberry Pi itself, which runs the program HomeAssistant. +This is a Smart Home Solution initially created as part of a Bachelor's thesis. The product consists of three parts: +- FPGA boards that can take signals from switches and other physical inputs and switch lamps and other home appliances, +- an I²C bridge for communication of several FPGA boards with a Raspberry Pi +- and finally the Raspberry Pi itself, which runs HomeAssistant. ## FPGA Device Manager -A GUI for managing device configurations for a Smart Home FPGA solution that was created as part of a Bachelor's thesis. +A GUI for managing device configurations as a part of a Smart Home FPGA solution. This application aids you in creating a device configuration for a Smart Home FPGA and automatically generates the corresponding Verilog code. -### Installation +### User installation ``` pip install fpga-device-manager ``` +### Developer installation +If you want to install a local version of the project in order to try out changes, follow these steps: + +- Clone the repository +``` +git clone git@edugit.org:fpga/fpga-device-manager-2.git +``` +- Enter the dir, create a python virtual environment and enter it +``` +cd fpga-device-manager-2 +python -m venv env +source env/bin/activate +``` +- Run the setup script and install the required dependencies +``` +python setup.py install +``` + +Now, the local dev version of fpga-device-manager-2 is installed. Every time you want to try out some changes you have made to the program, you have to run +``` +python setup.py install +``` +again; then, they become live. + ### Usage To launch the GUI, execute: ``` python -m fpga_device_manager ``` -- The generated Verilog `.v` files will have to be copied manually to the `smarthome/source/generated` folder of the Lattice Diamond project. +- The generated Verilog `.v` files will have to be copied manually to the `smarthome/source/generated` folder of the Lattice Diamond project (separate repo). - The generated `smarthome.ldf` file has to be copied manually to the root folder of the Lattice Diamond project. #### Command-line generation -- GitLab From 161049b9ea8835275ad4f202f4b7dc1255d99f43 Mon Sep 17 00:00:00 2001 From: Hangzhi Yu <hangzhi@protonmail.com> Date: Sat, 11 Sep 2021 17:37:02 +0000 Subject: [PATCH 3/3] Add readme section for banks --- README.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5a1dd60..fac4a1d 100644 --- a/README.md +++ b/README.md @@ -53,10 +53,15 @@ Verilog code can be generated from the command line like this: python -m fpga_device_manager.generator --output=./generated configuration.json ``` -### Valid configurations +#### Valid configurations A valid configuration needs: - at least one appliance - at least one sensor - every sensor to be associated with an appliance -- an I2C adress between 8 and 119 which is not dividable by 4 but by 2 +- an I2C adress + +#### Concept + +##### Banks +The pins on the used MachXO2 FPGA board are classified into so-called banks - groups of nearby pins that share the same I/O voltage. By now, these voltages and the assignment of banks to pins can only be changed manually in the JSON configuration. -- GitLab