It took me a while to get a setup I was satisfied with so I thought I would take a second to document the high level outline so that others could benefit.
First off, getting CCP software is a sore point that nobody on this forum or any other wants to hear about. I don’t have a better mechanism for you than to suggest you spend a few hours searching for things like “CompleteControlSetup.exe” or “URC.zip” or “CCP Setup software” until eventually you luck out and find a download link.
Having finally found it, I needed a way to run it on MacOS. For this, search up how to install Windows XP in virtual box. The high level steps are:
1- download virtual box
2- download “Windows XP Mode” from Microsoft
3- unarchive the executable; within it, find another executable that contains the disk image (this is inside sources, and needs to be renamed “.exe” so that your unarchiver will be able to extract its contents)
4- boot the disk image in virtual box and after installing add on virtual box’s host tools
This got me a working Windows XP image on Mac OS X Catalina which boots in just a few seconds.
Install active sync and CCP (it’s one installer that does both) onto your VM. To connect a remote, connect it to your Mac, click on the USB icon on virtual box, and connect it to Windows. Usually active sync will recognize it and then you’re good to go with CCP inside VirtualBox. If it doesn’t recognize it, standard windows procedures apply: try using task manager to kill active sync, and disconnect and reconnect the remote; if that fails, reboot the VM entirely and try again.
Now the part that I found the hardest: understanding a reasonable way to use CCP to actually set up the remote. In my opinion it’s as follows:
- set up rooms with base stations and remotes that correspond to your actual physical setup
- for each real device you own (receiver, TV, whatever) add a new device using the programming tab. Be very careful on these screens as there are ‘save’ buttons by various names scattered around and you have to ensure you save your work on any given screen before advancing to the next one
- once you’ve set up a device, go ahead and write it to the remote and test its buttons. The layout of the device’s screens doesn’t matter much as you’ll never really use them; think of it as a way of setting up commands that you’ll later use to write the real macros for your system
At this stage, you should have a few devices each of which can be controlled via your URC remote but you don’t have a really usable system. What you do have is a half-dozen or so pages of buttons that contain the commands you actually want to use to set up your macros, and you’ve tested all of these to make sure they work individually (or at least test the ones you want to use).
Finally you can add a new top-level “Watch” page, and set up buttons for an activity. For example, I want to be able to watch a DVD with a single button press with the system off. The macro needs to wind up something like this:
DVD player on
Receiver input -> DVD
TV input -> DVD
Jump to DVD screen
TV input -> DVD
The reasons for the redundant TV input -> DVD is that my plasma screen takes that long to boot up and accept the input command, but if it’s already on I’d rather it changed input right away; so if you’re already using the system it switches fast, and if you’re not already using the system the screen isn’t on so you’re waiting for that to happen anyway.
Each of these steps is accomplished not by programming any IR codes — the previous setup steps already automatically associated the IR codes you’ll want to use with buttons in the basic layouts for each device you set up in the first pass. Instead, use the ‘Record’ feature to record a macro that consists of you pushing buttons on the other pages. This accomplishes a few things:
(1) the buttons on the other pages target the device properly; either via the built-in IR on the remote, or via one of your RF->IR repeaters that is physically connected to the IR input on the device. You don’t want to blast the codes everywhere, and by setting up your devices one by one so that their programmed buttons talk only to that device and setting your macro via aliases, you send each command precisely where it is supposed to go and nowhere else.
(2) you enable replacing components in the system without having to reprogram the whole remote. A new receiver? No problem, replace its programming using the same button layout and your aliases should continue to work.
(3) if you like, you can rename the target button so that it means the right thing and makes your macros easier to read — for example, I have a chromecast in my system connected to the DTV/CBL input on the receiver, so renaming that button means elsewhere in my macros I can see the source is set to “Receiver Chromecast” and not have to remember how it is physically wired.
Once your activity based buttons are programmed, reorder the screens so that the activity based stuff is at the top. I then created family-proofed screens for each device that contains only the functions they are likely to need in practice (e.g. actual picture mode settings for the TV to control aspect ratio, an eject button for the DVD player, and so on). These screens, like the top level activity screen, get programmed with macros that are recordings of other button presses rather than direct IR codes.
Finally, hide almost all the pages so that you’re left with visible pages that contain only the buttons you want people pressing.
I personally don’t like the default that the power buttons apply only to the component currently onscreen. So I redid the on/off buttons to turn the entire system on and off from the watch page, and punched that through to all the pages, so that shutting off is as simple as pressing the ‘off’ button. For this reason, on every device screen I used the bottom two buttons to provide on/off buttons per component (or you could put those on a hidden page, if you know you don’t need individual control of your components).
Hope this is helpful for someone trying to get the zen of CCP.