--- /dev/null
+# NibeGW Hardware and Compiling hints
+
+
+## RS-485 Modules
+
+For settting up a NibeGW you need a RS485 module.
+While ProDiNo already have RS-485 support included, you need a separate module for Arduino Uno.
+Most cheap modules out there are compatible with 5V voltage and therefore compatible with Arduino based hardware.
+Mostly you will get one of two commonly used designs:
+
+* Modules based on Max1348 chip, which has 2 pins on the Arduino side (RXD, TXD) + VCC + GND
+* Modules based on Max485 chip, which has 4 pins on the Arduino side (RO, RE, DE, DI) + VCC + GND
+
+Both types of modules work fine with NibeGW.
+The difference between the two is, that the Max485 chip needs to be switched between RX mode and TX mode manually while the Max1348 chip do this automatically.
+That is why you need an extra "direction pin" on the Arduino to switch the module with Max485 chip between the two modes.
+
+#### Wiring diagram for Max1348 based modules:
+
+```
+ TX RX 5V GND Arduino
+ | | | |
+ | | | |
+ | | | |
+ RX TX VCC GND Max1348 based module
+```
+
+#### Wiring diagram for Max485 (PIN2 is used as direction pin here):
+
+```
+ TX RX PIN2 5V GND Arduino
+ | | | | |
+ | | | | |
+ | | |---| | |
+ DI RO DE RE VCC GND Max485 bases module
+```
+
+
+## Ethernet Shield W5100
+
+This Ethernet shield is based on Wiznet W5100 Ethernet Chip.
+It is supported by the Arduino Ehternet Library.
+No special configuration is needed, NibeGW supports this shield out of the box.
+
+ProDiNo already have Ethernet included, so there's no need for a separate Ethernet Shield.
+Also the ProDiNo Ethernet is supported by NibeGW out of the box.
+
+
+## Arduino Uno
+
+Arduino Uno has only one serial port which is shared with USB.
+So make sure to disconnect all hardware (ethernet shield, RS485 module, etc.) while uploading the compiled sketch to the Arduino.
+Furthermore do not use the USB port while Arduino is communicating with the Nibe heatpump.
+
+For compiling NibeGW, you have to make the following changes to the code:
+
+#### Config.h:
+
+Comment out support for all special boards:
+
+```
+//#define PRODINO_BOARD
+//#define PRODINO_BOARD_ESP32
+//#define TRANSPORT_ETH_ENC28J6A0
+//#define ENABLE_DYNAMIC_CONFIG
+```
+
+Comment out debugging on the serial console:
+
+```
+//#define ENABLE_SERIAL_DEBUG
+```
+
+Adjust the settings for your ethernet connection, target ip and ports and modbus module to simulate.
+Leave the serial configuration untouched - it is fine for Arduino Uno.
+
+#### NibeGW.h:
+
+Enable support for HARDWARE_SERIAL:
+
+```
+//#define HARDWARE_SERIAL_WITH_PINS
+#define HARDWARE_SERIAL
+```
+
+## ProDiNo ESP32 Ethernet v1
+
+Todo
+
+
+## ProDiNo Ethernet V2
+
+Todo
+
+
+## Debugging
+
+Debugging messages are available by connecting to port 23 to your NibeGW via telnet. Enable debugging in Config.h:
+
+```
+#define ENABLE_DEBUG
+#define VERBOSE_LEVEL 5
+#define ENABLE_REMOTE_DEBUG // Remote debug is available in telnet port 23
+```
+
+You can connect to NibeGW with any telnet client. You can also set some options via telnet. With 'h' you get a menue with all available options:
+
+```
+Arduino NibeGW
+Commands:
+ E -> exit
+ i -> info
+ 1 -> set verbose level to 1
+ 2 -> set verbose level to 2
+ 3 -> set verbose level to 3
+ 4 -> set verbose level to 4
+ 5 -> set verbose level to 5
+```
+
+On the target IP you can see the receiving udp messages with netcat (if you changed the default target port 9999, you also have to adjust it here):
+
+```
+nc -lu 9999 | hexdump -C
+```
+