1-Wire HUB
At the end of 2000 I started writing my own weather station / HVAC software in VB5 and thought that it would be a good idea to include support for the DS2409 microlan coupler chip, this way I would be able to have a large 1-wire network with branches to each room for DS1820 temperature sensors as well as a WS-1 weather station on the roof.
If I didn't include support for the DS2409 then I would be risking my 1-wire network grinding to a halt due to the many reflections caused by the unbalanced cabling system. A reflection is when the the signal sent down a cable comes back up the cable, this would happen on 10Base2 ethernet if it wasn't terminated with a 50 ohm load at each end of the cable, this has the effect of giving you a balanced impedance transmission line, with the impedance between inner and outer core being virtual equal along the length of the cable.
The HUB was designed around the DS2409 microlan coupler chip, this is basically a software controlled switch that has two switchable 1-wire outputs (main and aux) these outputs can be controlled using three basic commands, Smart on Main, Smart on Aux and All Lines Off. The DS2409 also has the added benefit in that it supplies +5v to each segment, so that when a segment is inactive i.e. not switched on, the devices connected to that output still get +5v so that they don't loose their settings i.e. a counter. This is why the DS2406/7 cannot be used.
Dallas Semiconductor were very kind to send me a couple of DS2409's for the development of my prototype (shown below), I set about designing a prototype printed circuit board using a very old piece of software called Lintrack which I later developed and etched using my own etch tank.
At this time I had been a member of the 1-wire weather station forum for about 6 months and somehow word got out that I had designed a HUB for use on the 1-wire system, the response was massive, it seemed that nearly everyone who had a 1-wire weather station wanted one of these and I immediately set about designing Version 2 of the 1-Wire HUB. For this I used OrCad, firstly drawing a schematic so that everyone could see what it was all about and secondly the actual Professional double sided circuit board.
Several modifications were made, due to the wishes of group members, such as a header was placed on each branch so that additional components such as DS1820 temperature sensors could be placed inside the HUB casing, also for flexibility I added the option to remove the +5v regulated power to the RJ45 sockets and the above mentioned headers.
1-Wire Hub Topology Diagram in PDF format. download
The prototype case and circuit board.
The final version.
RJ45 sockets were used primarily because I can get the plugs for free :) !!, it also has the added benefit that CAT5 patch leads can be used with all 4 pairs being used in the plug, if people still wanted to use the RJ11 plugs then this was still possible as the RJ11 plugs actually fit the RJ45 socket.
The pinouts are as follows,
RJ45
1&2 +5v regulated
3 Unregulated Supply from Hub's DC input
4 1-Wire DATA
5 1-Wire GND
6 Unregulated Supply from Hub's DC input
7&8 Common GND
RJ11
1 +5v Regulated
2 Unregulated Supply from Hub's DC input
3 1-Wire DATA
4 1-Wire GND
5 Unregulated Supply from Hub's DC input
6 Common GND
Voltages on RJ45 pins 1,2,3 & 6 and RJ11 pins 1,2 & 5 are all configurable using the onboard jumpers.
The next step was to get the authors of the software that most people used in the group to add support for the 1-wire hub, this only took a little pursuation :) . If you are interested in this project then before you go any further consider this, your SOFTWARE must support the DS2409 so that your software can see the devices that you want to address on the remote branches. If your SOFTWARE does not support the DS2409 then this HUB will not function as you would like it to, i.e. The HUB is not an automatic device but is solely controlled by the software used with it.
OWW for RISC OS and Linux (Freeware)
Brian Lane's Digitemp for Linux, Windows and DOS
Paul Alfille's 1-Wire File System for Linux