diff --git a/README.md b/README.md index b3f323d..94374b6 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ OneWireHub ========== -The OneWireHub is an Arduino compatible (and many more platforms) library to emulate OneWire-Slaves with support for various devices. The motivation is to offer a shared code base for all OneWire-Slaves. With a small overhead one µC can emulate up to 32 ICs simultaneously. +The OneWireHub is a sleek Arduino compatible (and many more platforms) library to emulate OneWire-Slaves with support for various devices. The motivation is to offer a shared code base for all OneWire-Slaves. With a small overhead one µC can emulate up to 32 ICs simultaneously. The main goal is to use modern sensors (mainly [I2C](https://github.com/orgua/iLib) or SPI interface) and transfer their measurements into one or more emulated ds2438 which have 4x16bit registers for values. This feature removes the limitations of modern house-automation-systems. Add humidity, light and other sensors easy to your home automation environment. -### Supported Slaves: +### Implemented Slaves: - **BAE0910 (0xFC) multi purpose device (ADC, Clock, GPIO, PWM, EEPROM)** - **DS1822 (0x22) Digital Thermometer, 12bit** -> use DS18B20 with different family code - **DS18B20 (0x28) Digital Thermometer, 12bit** (also known as DS1820) @@ -34,6 +34,7 @@ Note: **Bold printed devices are feature-complete and were mostly tested with a ### Features: - supports up to 32 slaves simultaneously (8 is standard setting), adjust HUB_SLAVE_LIMIT in src/OneWireHub_config.h to safe RAM & program space + - implementation-overhead for the hub is minimal and even saves resources for >1 emulated device - hot-plug: add and remove slaves as needed during operation - support for most onewire-features: MATCH ROM (0x55), SKIP ROM (0xCC), READ ROM (0x0F,0x33), RESUME COMMAND (0xA5) - **OVERDRIVE-Mode**: Master can issue OD SKIP ROM (0x13) or OD MATCH ROM (0x69) and slave stays in this mode till it sees a long reset -> OD-feature must be activated in config @@ -122,6 +123,8 @@ Note: **Bold printed devices are feature-complete and were mostly tested with a ### Plans for the future: - alarm / conditional search +- debug tool to determine timings of exotic master +- better interrupt-handling (save the state before disabling) - irq-handled hub on supported ports, split lib into onewire() and onewireIRQ() - test each example with real onewire-masters, for now it's tested with the onewire-lib and a loxone-system (ds18b20 passed) - [List of all Family-Codes](http://owfs.sourceforge.net/family.html) diff --git a/examples/debug/calibrate_by_bus_timing/calibrate_by_bus_timing.ino b/examples/debug/calibrate_by_bus_timing/calibrate_by_bus_timing.ino index 54e0e2c..c7fd700 100644 --- a/examples/debug/calibrate_by_bus_timing/calibrate_by_bus_timing.ino +++ b/examples/debug/calibrate_by_bus_timing/calibrate_by_bus_timing.ino @@ -54,7 +54,7 @@ void loop() // advanced calibration loop --> try to track and measure it with a logic analyzer - if (0) + if (false) { io_reg_t debug_bitMask = PIN_TO_BITMASK(GPIO_DEBUG_PIN); volatile io_reg_t *debug_baseReg = PIN_TO_BASEREG(GPIO_DEBUG_PIN); diff --git a/library.properties b/library.properties index ad53f74..ef7c4c8 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=OneWireHub -version=2.0.0 +version=2.1.1 author=Ingmar Splitt, orgua, MarkusLange, Shagrat2 maintainer=orgua sentence=OneWire slave device emulator with support for up to 32 simultaneous 1wire devices.