VC4 and SIMPL

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?

Software Upgrade

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!

2-Series

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).

Weirdness

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:

Debugging

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.

Another Option

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.

9 thoughts on “VC4 and SIMPL

  1. I was just in a meeting and thought – it would be great to use an old Pro2 to hook up to VC-4. Crestron does not support – but you just proved it works! Thanks for the great post.

    Liked by 1 person

    1. Thank you, Greg! That is true, I don’t think Crestron would support this if you called in with a problem, but it might get you by until hardware processors start shipping.

      Like

  2. Thanks for the great post – your blog is very helpful! Have you had a chance to go back to debugging a SIMPL program on VC-4 yet? I’m having the same problem, where it doesn’t work even though I too have followed Crestron’s instructions…

    Liked by 1 person

    1. Thank you, Rebecca! I did setup a new VC4 server on “bare metal” to see if I’d have better luck that way, but it looks like it was still blocking connections from Debugger. I’d like to give it another shot, just need to find a little time to play around with it again. If you have any success, please let me know!

      Like

      1. Hi Kiel, I did get it figured out in the end! I’m running VC-4 in a Hyper-V VM for local testing, and I had to give it access to 2 virtual processors instead of 1 (the default setting) before debugging would work.

        Liked by 1 person

      2. Oh, that’s great to hear! I’ll definitely bookmark that link for future – thanks 🙂

        Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s