I was recently asked if we could get a customer with an old PRO2 upgraded to VC4, probably to support new hardware they wanted to install. Looking at the existing system, there were a couple devices that needed a hardware controller: DSP and lighting control over RS-232, cable TV control over IR, and a Cresnet button panel for basic room functions. I told them we’d need to keep the PRO2 for all the connectivity, but maybe we could get it to talk to a new program running on VC4?
First thing I needed to do was update my VC4 installation to support SIMPL programs. I downloaded the latest software from Crestron and unpacked it:
Updating from 2.7000 to 4.0000 seems like a big jump…
I just accepted all the default port numbers:
Reboot to make sure all services start up correctly. I refreshed the VC4 settings page to make sure everything was still communicating. OK, time to grab a PRO2 for testing!
The 2-series are workhorses. As long as the power supply hasn’t died, these things run great. Probably the easiest way to use one just for its physical ports though is to put it into slaved mode. You do this by adding a master IP table entry:
PRO2> ADDM DB 172.20.10.88
After a reboot, the PRO2 won’t accept new programs. We can check the IP table status though:
EslavePRO2> IPTABLE IP Table: CIP_ID Type Status DevID Port IP Address/SiteName M DB EMstr ONLINE 41794 172.20.10.88
172.20.10.88 is the IP address of my VC4 server. PRO2 says it’s connected (since I already loaded a program to the VC4). Let’s look at that program next.
VC4 Programs in SIMPL
Create a new SIMPL program, but for the Control Processor select “Ethernet-Only 4-series”:
In the program configuration (BBQ mode), you’ll see there is only Slot-1 : Ethernet Devices available. Expand it and scroll down to IP-ID : DB and double-click to add our remote PRO2:
Switch to program (bug mode), and we’ll create a very simple program to test that our remote processing works:
This program looks for a contact closure on IO pin 1 then it closes each relay in sequence, spaced 1/2 a second apart. When IO pin 1 opens, each relay opens again 1/2 a second apart. But remember: this program will be running on the VC4, and the VC4 will tell the PRO2 what to do with its ports. To test this, I loaded the program to VC4 and shorted IO pin 1 to ground on the PRO2. The sequence starts. If I unplug the LAN cable and try this again, nothing happens (because VC4 can’t instruct the PRO2 what to do).
From the PRO2 side, everything looks good. It says it’s online with the VC4:
But when I look at the VC4 side, it says the PRO2 is offline:
It’s definitely working though, so I’m not sure why it says OFFLINE.
I also expected to have to associate the PRO2 to the correct room on VC4 since there’s nowhere to enter a Room ID in the PRO2 IP Table. But I didn’t have to do that. I expected the PRO2 to show up as an unclaimed device:
I can’t get VC4 debugging to work with SIMPL programs. I think I’ve followed Crestron’s instructions pretty closely, but I just can’t seem to get that one piece to work. So I’d probably opt for developing and testing my code on a real processor (like an RMC4) then porting it over to VC4 once it was ready.
I’m not going to give up on debugging on VC4, but it’s not very high on my list of things to do right now.
There’s also no reason you have to put the PRO2 into slaved mode, it can happily accept a connection from VC4 using an Ethernet Intersystem Communication (EISC) symbol. I originally went this route when testing because I wanted to simulate things happening on the PRO2 side, and to do that, you need a program running to connect to. This would let you handle some device processing on the PRO2 and only pass what you need back-and-forth with VC4. This does complicate programming a little because now you have to manage two programs, and tracking a bug down might involve looking in both places.
Thanks for reading! I hope this post encourages you to save some of those old 2-series processors from the landfill since you can still use them for physical connections.