This file describes all the steps you need to do in order to use this tool to bridge the communication between an Universal Devices ISY994i and a USB based Insteon PLM such as the 2448A7 or 2413U.
Why would you do this? Because the 2413S (serial port version) is hard to get. I did this also because the 2448A7 isn't connected to the power line and rely on the RF capabilities of an Insteon network. This "should" mean a more reliable PLM since the power line connection is typically the thing which breaks the 2413 devices.
If you do all the steps from this guide (soldering and powering from the ISY994), you to can end up with this hybrid 😄
Any modifications or use of these instructions and software is done at your own risk. The author takes no responsibility should anything bad happen.
- Raspberry Pi Zero (Wireless)
- Power supply
- MicroSD card
- RS232 to USB converter (link to be added)
- RJ45 breakout connector (link to be added)
- CAT6 patch cable
- USB Hub for Raspberry Pi Zero (since we need 2 USB connections)
- Jumper wires
- Raspberry Pi Zero (Wireless)
- MicroSD card
- RS232 to TTL converter (link to be added)
- RJ45 crimping tools + connectors
- CAT6 cable (you can of course also sacrifice a CAT6 patch cable instead and avoid crimping)
- OTG USB adapter (to allow connection of a USB Type A connector)
- Jumper wires (if you want to power the Pi from the ISY994)
- Connect patch cable from Port A of the ISY994 to the RJ45 breakout box
- Looking at the breakout box with the screws facing you, the left most connection is 1 while the right most is 8.
- Connect a wire from 1 to TXD on the RS232 converter board
- Connect a wire from 8 to RXD on the RS232 converter board
- Connect a wire from 7 to GND on the RS232 converter board
- Connect the RS232 converter to the USB hub
- Connect the Insteon PLM to another port on the USB hub
- Connect the USB hub to the center most USB port on the Pi
Done
This will use the internal serial port of the Raspberry Pi, which is already used by the OS to show it's console. To solve this, you have to perform the steps as seen in this guide to free up the port, or things will not work properly.
- Either crimp a RJ45 connector to a piece of CAT6 cable OR cut off one end of an existing CAT6 patch cable. If you're crimping, stick to the T586B layout so that the rest of these instructions line up
- Make sure you can access striped orange (pin 1), brown (pin 8) and striped brown (pin 7) on the end of the CAT6 cable (also a good time to confim that this is correctly wired by using a multimeter and continuity mode, see - Jumper wires )
- Solder pin 1 to TXD on the RS232 side of the converter
- Solder pin 8 to RXD on the RS232 side of the converter
- Solder pin 7 to GND on the RS232 side of the converter
- Looking at the RPi board, make sure the side of the board with the chips face up with the HDMI/USB connectors pointed towards you. The layout of the GPIO strip starts with 1 at the bottom left (square pad) followed by 2 directly above it, 3 is next to 1, 4 next to 2, and so on.
- Solder RPi pin 1 to the Vcc pad on the TTL side of the converter
- Solder RPi pin 6 to the GND pad on the TTL side of the converter
- Solder RPi pin 8 to the RXD pad on the TTL side of the converter
- Solder RPi pin 10 to the TXD pad on the TTL side of the converter
- Connect the USB OTG adapter to the middle USB port of the Pi and then your USB PLM to the Type A port of the adapter
At this point, you're done, however if you want to power the RPi from the ISY994, please follow the next steps as well
- Open the ISY994 box
- Remove any existing board from the expansion slot (located directly behind the LED section)
- Looking at the board, you should have the LED section in the bottom right and the expansion slot should be pointed towards you. All the ports on the board should face the left side.
- Cut off the pin on two jump wires.
- Solder one wire to pin 4 on the RPi. This is the 5V rail
- Solder one wire to pin 9 on the RPi. This is another GND (less messy when you don't need to share with the serial port IMHO)
- Connect the 5V wire to the top right pin on the expansion slot
- Connect the GND wire to the third from the right top pin on the expansion slot.
To help show this setup, here's my prototype as it were before I made it permanent
At this point, when the ISY is powered on, it will provide 5V to the RPi and power it as well.
PLEASE NOTE! I WOULDN'T PULL A MASSIVE AMOUNT OF POWER FROM THIS SETUP
It has been tested with a Raspberry Pi Zero Wireless with a USB Insteon stick (not the wallwart, the completely wireless USB stick) and WiFi enabled without any issues, but again, your mileage may vary and I take no responsibilities if somethings breaks or burns up.
- Clone or unzip a copy of this project
- Install serial support
sudo apt install python3-serial
- Run
sudo ./install.sh
, doing so will- Create
/opt/serial-bridge
folder - Copy
bridge.py
to that folder - Install
bridge.service
to automatically start the bridging on boot - Enable and Start the bridge
- Create
Since the RPi takes a while to boot by default, you may want to look at optimizing the boot of your Raspberry Pi. This is especially important if you intend to power the Raspberry Pi from your ISY994.
I see no difference in reaction times using wireless only. In fact, since switching to this, the comms between the ISY and my insteon network has never been more reliable. I'm also hopeful that by being offgrid (from a PLM standpoint) it will stay solid much longer since the main culprit (from my understanding) with the wired ones is all the extra components that connect to 110.