diff --git a/README.md b/README.md index 5b78cc3..528861d 100644 --- a/README.md +++ b/README.md @@ -7,11 +7,14 @@ It may operate both: Lighthub allows connecting together: * Contact sensors (switches, buttons etc) +* Analog sensors (Leak detectors, Knobs etc) * 1-Wire temperature sensors (up to 20 on single bus) -* Standard nonexpensive Relay board with TTL inputs, [like this](https://aliexpress.com/item/16-Channel-20A-Relay-Control-Module-for-Arduino-UNO-MEGA2560-R3-Raspberry-Pi/32747887693.html) to control AC powered lamps, floor heaters, boilers etc -* [Standard nonexpensive LED dimmers](https://aliexpress.com/item/30-channel-27channel-Easy-DMX-LED-controller-dmx-decoder-driver-rgb-led-controller/2015743918.html) and [AC DMX-512 dimmers](https://aliexpress.com/item/DMX302-led-DMX-triac-dimmer-brightness-controller-AC90V-240V-Output-3channels-1A-CH-High-voltage-led/32822841266.html) +* Standard nonexpensive Relay board with TTL inputs, [like this](http://ali.pub/2zlosh) to control AC powered lamps, floor heaters, boilers etc +* [Standard nonexpensive LED dimmers](http://ali.pub/2zlokp) and [AC DMX-512 dimmers](http://ali.pub/2zlont) * Modbus RTU devices (Currently, are deployed two types of Modbus devices: AC Dimmer and Ventilation set (Based on [Vacon 10 controller](http://files.danfoss.com/download/Drives/Vacon-10-Quick-Guide-DPD00714F1-UK.pdf)) -* Simple DMX wall sensor panel [like this](https://aliexpress.com/item/New-Ltech-D8-LED-rgb-RGBW-touch-panel-controller-DMX512-controller-DC12-24V-4-zones-4/32800199589.html) +* Simple DMX wall sensor panel [like this](http://ali.pub/2zlohe) + +[List of non-expensive compatible components from AliExpress here](http://ppv.alipromo.com/custom/promo.php?hash=pjagwaovaero6vkeabjpkpvy4gznbgkc&landing_id=39661) ![alt text](docs/LightHubAppDiagram.png "LightHub application diagram") @@ -30,106 +33,27 @@ Scalability of Lighthub is virtually unlimited: Setup so many controllers you ne * [Channel commands](https://github.com/anklimov/lighthub/wiki/Channel-commands) * [OpenHab integration](https://github.com/anklimov/lighthub/wiki/OpenHab--integration) -Finished portation of project to Arduino DUE and ESP8266 (ESP32 not tested). - -Compiled image has been added to [compiled/](https://github.com/anklimov/lighthub/tree/master/compiled) folder. Flash your Mega 2560 - -```bash -avrdude -v -V -patmega2560 -cwiring -b115200 -D -Uflash:w:firmware.hex:i -``` - -or flash your DUE (need to correct path and port, of course) -```bash -/Users//Library/Arduino15/packages/arduino/tools/bossac/1.6.1-arduino/bossac -i -d --port=cu.usbmodem1451 -U false -e -w -v -b firmware.bin -R -``` -Note: binary images usually not up-to-date with recent code. The preferred way, to compile and upload firmware to your controller. - -# Dependencies -(quite big number of libs required. Use git clone to have your local copy in your Arduino libs folder) -Please check updates for all dependences. - -For patched libraries, appropriate GitHub repo URL provided: - -* Arduino-Temperature-Control-Library https://github.com/anklimov/Arduino-Temperature-Control-Library -* DS2482_OneWire https://github.com/anklimov/DS2482_OneWire -* FastLED -* Wire (standard) -* Artnet https://github.com/anklimov/Artnet.git -* DmxSimple https://github.com/anklimov/DmxSimple (for AVR) or https://github.com/anklimov/ESP-Dmx (for ESP) or https://github.com/anklimov/DmxDue (for DUE) -* HTTPClient (for AVR) https://github.com/anklimov/HTTPClient or https://github.com/arduino-libraries/ArduinoHttpClient for other platforms -* aJson https://github.com/anklimov/aJson -* CmdArduino https://github.com/anklimov/CmdArduino -* EEPROM (standard for AVR) or DueFlashStorage for DUE: https://github.com/sebnil/DueFlashStorage -* ModbusMaster https://github.com/anklimov/ModbusMaster -* pubsubclient-2.6 -* DMXSerial-master (for AVR) https://github.com/anklimov/DMXSerial -* Ethernet https://github.com/anklimov/Ethernet -* SPI (standard) - -Portation from AVR Mega 2560 to SAM3X8E (Arduino DUE) done since v 0.96 and tested against Wiznet 5100 Ethernet shield and Wiznet 5500 Ethernet module # Platforms specific details: -AVR version is basic, long time in production and have all functions -*DMX-out is software (DMXSimple) on pin3 +**AVR** version (Arduino Mega) is basic, long time in production and have all functions +* DMX-out is software (DMXSimple) on pin3, can be re-defined to PIN 18 (USART1 TX) +* DMX-in - hardware +* WIZNET 5100 and 5500 Ethernets are supported +* Modbus on USART2 -**SAM3X8E**: (Tested. In production. Recomended hardware at current moment) +**SAM3X8E** (Arduino DUE): (Tested. In production. Recomended hardware at current moment) * default PWM out frequency * both, DMX-in and DMX-out are hardware USART based. Use USART1 (pins 18 and 19) for DMX-out and DMX-in +* WIZNET 5100 and 5500 Ethernets are supported +* Modbus on USART2 -**ESP8266**: (Developed but not tested in production) +**ESP8266**: (Developed, working, but not tested in production) * DMX-OUT on USART1 TX -* DMX-IN - not possible to deploy in ESP8266 +* DMX-IN - disabled - not possible to deploy in ESP8266 * Modbus - disabled. Might be configured in future on USART0 instead CLI/DEBUG -since v. 0.97: -Mega and DUE: -Need to use compiler directive -D Wiz5500 and https://github.com/anklimov/Ethernet2 library to compile with Wiznet 5500 instead 5100 - -Prefered way to compile project is using platformio toolchain, suitable for Arduino Due, and Arduino Mega2560 - -# Due compilation issue "USART0_Handler redefinition" -Please, open /variants/arduino_due_x/variant.cpp file, then add USART0_Handler method definition like this -``` -void USART0_Handler(void) __attribute__((weak)); -``` - -The normal path to find this file in platformio is: -.platformio/packages/framework-arduinosam/variants/arduino_due_x - -# Platformio command line build instructions -[First of all install platformio framework.]( http://docs.platformio.org/en/latest/installation.html) [Good tutorial for fast start in RUSSIAN.](https://geektimes.ru/post/273852/) - -In linux\OSX you can open terminal, navigate to your programming directory, then - -```bash - git clone https://github.com/anklimov/lighthub.git - cd lighthub - ``` -now prepare project files for your IDE -```bash -pio init --ide [atom|clion|codeblocks|eclipse|emacs|netbeans|qtcreator|sublimetext|vim|visualstudio|vscode] -``` -Set custom build flags. first make your own copy of template -```bash -cp build_flags_template.sh my_build_flags.sh -``` -then edit, change or comment unnecessary sections and source it -```bash -source my_build_flags.sh -``` -build and upload firmware for due|megaatmega2560|esp8266 board -```bash -pio run -e due|megaatmega2560|esp8266 -t upload -``` -Clean pio libraries folder. Try it if you have compilation problem: -```bash -rm -Rf .piolibdeps -``` -open COM-port monitor with specified baud rate -```bash -platformio device monitor -b 115200 -``` +**ESP32**, **NRF52840** : Still early development stage # Custom build flags @@ -183,4 +107,3 @@ platformio device monitor -b 115200 * SYSLOG_ENABLE disabled * WITH_PRINTEX_LIB diabled, using Streaming library -If you've using Arduino IDE to compile & flash firmware, it will use Default options above and you will not able to configure additional compilers options except edit "options.h" file