CQC 1.4 is released

Dean Roddey

Senior Member
Charmed Quark Systems, Ltd is proud to announce the 1.4 release of CQC (the Charmed Quark Controller), its software-based control and automation system.

Charmed Quark System's automation products provide robust, flexible, and cost effective control of lighting, HVAC, security, home theater, media data, and other systems. It is available in various configurations, which will scale to meet your needs, whether large or small, open or secure, a single room or the whole home. Build your own hardware, or use our pre-built systems. Do it yourself or take advantage of our reasonable consulting and customization services, whatever fits your needs and budget.

In the remainder of this document some screen shots will be provided. These are of the interfaces created for various CQC-based automation solutions. Please note that there is nothing, visually or functionality, about these images that is intrinsic to CQC. They were created using the CQC interface designer, using arbitrary images chosen for their asethetics and the functionality provided is purely a matter of design, so they are not 'skins' providing alternate looks for a fixed set of functionality, nor are you in any way limited to a particular visual style. they are pretty significantly reduced in size and quality in order to avoid download overhead


Click here for a full sized version

What's New Overview

This section will briefly introduce the major new features in this version, some of which will be discussed in more detail later in this document.
  • Media Management. The biggest ticket item in this release is CQC's first steps into the media management world. Our driver architecture has been extended to support 'media drivers'. This allows CQC to provide browsing of media repositories and control of media renderers, and to coordinate them into a coherent media system.
  • New Action System. The 'Action' system in CQC, which is how you configure CQC to carry out tasks in response to a button press, IR signal, scheduled event, and so forth, was vastly reworked in this version. It is now far more powerful, far more flexible, and has a simpler interface.
  • Graphical Interface Features. CQC's user interface designer/viewer system has been extensively improved in this release. Interface widgets were added to support the new media management features, to allow you to view cover art, to browse media categories and cover art. One of the improvements in the item above is that actions were extended to include the interface widgets themselves, allowing you to create very dynamic interfaces without any programming. The new toolbar widget is a very convenient way to provide access to more buttons than you have physical space for. And a new simple animation widget allows you to easily represent the active states of devices under control.
  • Elk M1 Support. A new driver is available for the Elk M1 and M1 Gold automation panels. It supports both the serial and Ethernet based connections. The M1 is a very popular automation panel that is very reasonably priced.
  • Escient Fireball Support. The first media repository device supported in our new media architecture is the Escient Fireball, which is a single zone, media repository and renderer for CDs and DVDs. You can browse the Escient cover art database and control it during playback.
  • Zoom Player Support. Zoom Player is now supported as a media renderer, and is a very powerful combination with a file-based media repository and CQC providing the coordination.
  • J.River Disk Repository Support. J.River Media Center 11's disk based media repository is now supported as a CQC media repository, so you can browse the repository via category and cover art and invoke a renderer to play selected media.
  • Undo in Interface Designer. The user interface designer tool now supports Undo, which allows you to safely experiment or to recover from accidental changes.
  • Z-Wave Driver Improvements. The Z-Wave driver was vastly improved in this release, and now is very quick and very reliable. Z-Wave automation via CQC now shows what Z-Wave is capable of.
  • JPEG Support. You can now import JPEG images into CQC for use in interfaces, in addition to the already supported PNG and bitmap formats.
New Command System

One of the core functions of an automation system is to allow you to set up sequences of events that will take place when you press this button or that IR remote button or some event takes place. 1.4 introduces a new command system that is far more powerful than before, allowing you to do much more without having to use our much more powerful (and more complex) CML language. So non-programmers can create much more powerful command sequences ('actions' in CQC parlance) in a purely dialog driven way.

The new command system is much more generic and therefore it can adapt easily to different applications that use it, and it allows for various 'command targets' to be plugged into it according to the needs of the containing application. So in the interface system interface elements (widgets in CQC-speak) can be the target of commands now. So, for instance, one widget can send a text widget a command telling it to display some new text, or to an image widget telling it to show a new image, or to hide or show itself, and so forth.


Click here for a full sized version

This has introduced a lot of flexibility into the interface system, allowing you to do a form of object oriented programming, by having objects on the interface send messages back and forth. An example of its power will be seen below in the media management discussion. CQC has just begun to scratch the surface of what this new command system will be able to do in the future.

Media Management

1.4 introduces CQC's new media management architecture, which extends CQC's flexible driver system to encompass media repositories and renderers (things that provide media to browse, and things that play media.) So CQC can encorporate various media systems just as easily as it can regular devices.


Click here for a full sized version

We've introduced interface elements that support the new media driver architecture, which allow you to browse categories, browse cover art, display track lists, display currently playing cover art and so forth. These widgets talk to the media drivers you associate them with, and handle all of the details behind the scenes. You just drop them on your interface and configure them to look and act the way you want them to. You can control the spacing and size of the browser's images slots so that you can position them over any background image you want and make them fit appropriately.

As mentioned above, interfaces can now send and receive commands, which is very useful in the new media widgets, and in fact they kind of drove the need for this new feature. For instance, in the interface above, the media category browser allows you to browse the categories available in the associated media repository. You can configure it to send a command to the cover art browser to start browsing that new category. The cover art browser in the above example is configured to set the text widget above it to show the name of the current category it is browsing. The list of letters across the button are just buttons that send 'first letter' commands to the cover art browser, asking it to scroll to the first item starting with that letter.

The buttons used to page back and forth through those browsers are just sending scrolling messages to them, to ask them to scroll back and forth. In this example above, when you click on a cover art item, it will start up Zoom Player, if it is not playing already, wait for the Zoom Player driver to come online, then sends the Zoom Player driver a command to start playing the title, then sends a command to the main interface (in which it is embedded) asking it to load the 'now playing' interface.

An important aspect of this new scheme is that you remain in full control of the look and feel. If we built a browser with the buttons built in, you couldn't control where they were placed or how they looked. This way, you can have them look like separate buttons as above, or you can place them over a common image so that they look like part of the thing they are controlling, as is the case in the toolbar widget at the top left. The buttons on either side of it are just buttons without any background so that they look like they are part of that visual element.

So it has the flexibility of a 'skinning' system, but is far more powerful because it can be applied far more broadly and doesn't assume any pre-existing set of functionality.


Click here for a full sized version

This example of a 'now playing' interface shows information on the currently playing media, and a track browser lists the tracks. Here again you buttons are used to send messages to the track browser to have it scroll up and down. If you press a track, in this case it is configured to send a command to the Zoom Player driver to have it start playing the new track.

All of this is completely open ended, and very flexible. None of it is hard coded in so you can create many different scenarios based on how you want your interfaces to look and work. And because it is based on a standard driver architecture, you could replace this file-based repository and Zoom Player renderer with an Escient Fireball and the interface would work exactly the same with it.

New Interface Widgets

As mentioned above there are new widgets for media related activities. But we also introduced a couple other useful ones. The 'toolbar' widget, of which you see an example in the 'black glass' interfaces here, is a scrollable list of buttons. It has no appearance of its own, you just position it over some background image as desired, and configure its button slots to fall where you want them to. This is a very useful widget because it allows you to get a lot of buttons in a small area. You can just page it back and forth to get to the others. Put the most commonly used ones to the left and the less commonly used ones to the right.

We also introduced a simple animation widget, which will cycle through up to 8 images you select, one per 500ms. It has an associated device field and will only animate if that device field is seen to have some particular state. So you can use it to show a rotating fan when the fan is on. Or you can use it to show a blinking light when the DVD player is in play more, and so forth.

We also now support nested overlays. In the sample interface in the New Command System section above, the TV 'overlay', which is a smaller interface loaded into an area of a main interface, in turn has an overlay section, and buttons to load up one of two sets of favorite channels buttons or a keypad. These overlays are very powerful tools for getting a lot of functionality into a limited amount of screen real estate.


Click here for a full sized version

New/Improved Drivers

We've added a couple major new drivers in this release. One is the Elk M1/M1 Gold automation panel. This is becoming very popular as core automation solution. CQC can bring the Elk under its larger automation umbrella and create a very nice solution, with the Elk providing the low level functionality and CQC sitting on top providing the high level control of it and other systems. This driver supports both the serial and ethernet connections, so there's a lot of flexibility in relatively placement of the controller and the panel.

We have a new driver for the Escient Fireball, which wraps it in our new media architecture. Via CQC you can browse the Escient movie and music databases, select titles to play, and provide transport control of the Escient as a player.

We also have new drivers for the J.River on-disk music repository format, via the exported XML file. And we have a new driver for Zoom Player 4.5, which has the best control interface of any of the software based players out there that we are aware of. It provides an excellent software based renderer for CQC.


Click here for a full sized version

And after many trials and tribulations we got our Z-Wave driver up to full quality this time. It was initially introduced in 1.3, but it's a complex device and getting good information was very difficult, so we had to work it out ourselves. But it is now working very well, and we finally see what Z-Wave has to offer.

New Web Site

And lastly, but not leastly, we have a new web site now up, introduced with 1.4. This one is much easier to navigate, and we think it has a nice look that uses a lot of our blue company color. It also has new online 'Quick Tutorial' and 'Using CQC' sections. These will take you through, respectively, a hands on process of installing and configuring CQC and a functional level overview of the product.

These will really help you quickly evalute what the product does and how it does it, so that you can see if it works for you. The Quick Tutorial works in terms of a device simulator that comes with the product, so that you can go through a realistic configuration scenario without actually having to control any physical devices. So you can do it on the plan while traveling if you would like.


Click here for a full sized version

We know that in the past people had a hard time really getting a grasp on what the product can do, and how they might use it. Hopefully these two new sections will ameliorate that problem somewhat.

.Net Interface Viewer Beta

Our .Net Interface Viewer is in beta testing now. It works with 1.4, though it doesn't yet implement the new media features. Those are in the works now. We expect it to go 1.0 some time before the 1.5 release. This new optional feature will allow you to access CQC users interfaces, in their full two way glory, on CE.Net based devices such as PocketPCs, Smart Phones, various tablet style PCs and so forth.

The addition of the .Net Viewer and the new media browsing features will make for a very powerful combination as CQC moves forward.


Give it a Whirl

The product is available in a 30 day unencumbered form, so you can use it to it's fullest extent during that time, in order to see if it works for you. If you decide to buy, you can just license your existing installation, so that you won't have any interruption of your work done during the trial period.

If you want to try it out, go to the Learn tab of the new web site, and select the Quick Tutorial link, which will talk you through the whole process. You might want to go through the Using CQC section (also under Learn) first, but if you are hands on person you can just dive right in and come back to the Using section later.

Labor Day Sale

We are having a Labor Day Sale, starting on the 5th of Sept and running through the 19th. Any package you buy during that time will be 25% off, so if you are interested in making the move into home automation, or you are using an existing package and aren't totally satisfied with the direction it is going, this would be a good time to move and save.

Our license is a site license, and all our device drivers are part of the package. So there's just one base package and a few optional packages to choose from. You can then run the client services on any other devices in your home network that you choose.
Don't know what went wrong last night. I must have been half asleep and missed the first part of the blurb above, so it just kind of started in the middle, and didn't make much sense. Sorry about that. I've fixed it now.
BTW, we got an Ocelot in and I've got the protocol docs, so I'll be working on a driver for that on the side here over the new couple weeks, then I'll put it out there so that people can play with it and help me test and tune it, since you'll know the box better than moi. It'll be a CML driver, so you'll be able to make improvements directly if you want, and I'll be happy to incorporate those into the official driver.
I'm also working right now on the event system, which I think we are going to do as the only 1.5 major feature, and just get it out very quickly, since it's the only really significant architectural feature we are missing on the automation side. It might not be the ultimate implementation of events, but it'll be a good first cut that will serve most needs, and we'll take up another notch in the next release.
I just posted a (very solid) beta of the next 1.4 update (1.4.22), so if anyone wants to get access to it let me know. It'll probably be released mid-next week if there aren't any non-trivial issues reported, but I'll be happy to give you access to it now.

The new stuff in this release are:
  • Remote Serial Port Server. Though not something that you will likely use directly, this release introduces our new remote serial port server, which allows us to access serial ports on customer computers (if they let us), so that we can do remote driver development or debugging. This is a very important capability for us and has already paid off handsomely as the number of new drivers in this release testifies. The underlying architectural changes involved in this new capability also set the stage for supporting non-standard serial ports in the future, such as those on the GC-100.
  • Theta Casablanca III. A new driver is now available for the Theta Casablanca III A/V processor. The Casablanca is a high end, highly flexible processor, though the control protocol has some shortcomings.
  • Meridian 861. A new driver is now available for the Meridian 861 A/V processor. The 861 is one of Meridian's flagship digital A/V products.
  • Outlaw 990. A new driver is now available for the Outlaw 990 A/V processor. The Outlaw is a reasonably priced, high performance processor which supports two way serial control.
  • Xantech ZPR68-10 Driver. A new driver is now available for the Xantech ZPR68-10 multi-zone audio controller. This driver provides two way access to all audio zones.
  • Denon 3805 Driver. A new driver is available for the very popular and feature laden Denon 3805 A/V receiver. This driver complements our existing drivers for the 3803, 3800, and DVD player line (2910, 3900, 3910, 5900, 5910.)
  • Panasonic Plasma Driver. A number of the Panasonic commercial grade plasma displays have a simple but reasonable serial control protocol. This driver should provide basic control over the 4 and 6-series models. It will be expanded over time to provide more model-specific features.
  • Lutron GrafikEye Driver. A new driver is available for the GRX serial control interface to the Lutron GrafikEye system. This is a very widely used wired lighting control system.
  • Elk M1 Driver Improvements. The Elk M1/Gold driver has been improved substantially in this release. Particularly it now deals correctly with the Elk RP software coming up and connecting to the M1, which requires that the driver back off and not trying to talk to the Elk until the RP software disconnects.
  • UNC Path Support in Media Repositories. Disk based media repositories can now handle UNC based path names. This is important because shared drive names are not available within the service-based environment that repository drivers run in.
  • Driver Verbose Logging Control. The administrator can now put device drivers into one of a set of verbose logging modes, which lets the driver log more or less information. This will provide much better ability for us to debug driver issues in the field.
  • Generic Field Browser. As a convenience and debugging tool for administrators, we've added a new field browser window in the Admin Interface, which provides the admin with easy read/write/information access to all drivers and fields. This is also very convenient for new users who just want to quickly see if they can control devices.
Version 1.4.23 is now officially released. The bugs fixed/feature list is the same as two posts above, so I won't repeat it here. Feel free to have a go at it and see if it suits your needs, and to contact us if you have any problems or questions.
So I started playing a bit with an Ocelot driver tonight, as my current side, side, side project. I've got the grunt work stuff in place to send the 200 and 42 style messages, calc the sums/CRCs and I'm getting the current time and the ROM/PIC version info out and into driver fields.

So basically it's working in terms of talking to the device and comm protocol and all that. But, not being a user of this device, and the com protocol doc being pretty cryptic for a non-Ocelot user, I'm not terribly sure what some of this stuff means.

So, am I right in my assumption that you can have up to 128 devices of SECU 16, SECU 16I, or RLY08 on an RS-485 bus, right? And each of these is individually addressable as a number from 0 to 127?

If so, I'm going to have a little trouble testing this guy since I just have the Ocelot and nothing else. I'm guessing I should do the Get Unit Type call, and figure out what units of what types are at what serial bus addresses, and once I have that I can start polling the latched and real time values for those units.

This guy can't just take an IR string directly from me and send it live? It looks like from the protocol that it can only send stored IR. That's unfortunate since otherwise I could have opened it up to CQC's IR driver architecture and treated it like any other IR blaster device. If it can only send stored commands, then it'll have to have it's own specialized IR sending commands.
Yes; in the adnet module addressing scheme module #0 is the master and must be a controller (ie: an Ocelot or a Leopard) while modules 1 to 127 can either be expansion modules or slave controllers. The "get unit type" call gives you a list of the module types and version numbers (it can happen that a revised firmware for an existing unit type has additionnal capabilities).

You're right about the stored IR commands; it can only transmit a IR command that was previously learned and stored in the unit's flash memory. alternately, you can also import Pronto style codes into a file using the IR-Max utility and then load the codes into the unit. A SECU16IR module doesn't store any codes itself, but will have the code data sent to it over the adnet bus by the master whenever it is requested to have a IR code sent by a SECU16IR.
There is a new drop of the .Net Interface Viewer beta available on the web site. It is under the Try/Buy tab, on the Try It page. This version brings the .Net Viewer's widget set into sync with the latest CQC release, i.e. it implements the new media oriented widget, so you can now browse media from hand-held devices.

So feel free to give it a try and let us know what you think. We plan for the .Net Viewer to end its beta phase and enter it's general availability status in conjunction with the upcoming CQC 1.5 release. So it will be nice to get plenty of feedback before then.
Dean Roddey said:
Is there any way you can lend me a couple of the units so that I can have a semi-realistic testing scenario?
I don't really have what could be termed as "spare" units (and shipping them across the border could be a bit of a hassle) but if you could arrange something with ADI directly, then maybe they could help you out... Try sending an email to [email protected] and inquire about this, mentioning that you want to add support for their product. You can also mention that I suggested that you contact them, since they know me well for my having done documentation for them. I don't know what their usual policy would be for this kind of thing but you have nothing to lose by inquiring.