Trying to control older lighting system over RS-232 with simple ASCII commands?


I’ve got a Lightolier lighting system with a Brilliance II control panel in the basement. The panel will accept (and reply with) simple ASCII commands over RS-232. I have the protocol documentation, and I can control the lights using an old windows XP machine via RS-232 and Lightoliers “demo” program.

I would very much like to make the system controllable with SmartThings.
One solution that I thought might work would be to use the SmartThings Shield and an Arduino to feed it simple ASCII commands based off of “virtual lighting devices”(?). I have no idea how to do this though; I’m not a programmer, is there a project that already exists that does something similar? Can someone point me in the right direction?

Any input or advice is much appreciated.

Ambitious! :sunglasses: Most of the Arduino experts hang out in the following thread, you might ask there and see what they think.

@tgauchat might also have some ideas.

1 Like
  • Search for “EventGhost” here on the Community Forum as an “easy” way to use your PC.
  • Or use an Arduino with a Thing Shield and very cheap RS-232 chip: I have one hooked up to my Epson Projector to send it ON, OFF, and MODE commands.

Thanks @JDRoberts and @tgauchat

For the epson projector, what “sketch” do you upload to the Arduino to do this? What Device Handler would I use in SmartThings? Where would the ACSII commands go, in the sketch?

It’s all custom but relatively simple. “ST_Anything” might work for you, but custom isn’t hard for such a simple project.

I need to update GitHub with the Sketch (gosh darnit, I’ve been lazy about sharing it! I will really try to upload it soon…).

At the moment, the only thing uploaded is the Device Type Handler that handles all the Projector related functions (screen up and down, project on/off and brightness mode).

Keep in mind… The Thing Shield send/receives entirely arbitrary ASCII text string commands. Thus, for an RS-232 “bridge”, so to speak, you might want to write a “nice” sketch that just relays the exact strings from SmartThings, then you will “never” have to update the Sketch. Everything will be in the DTH.

And you can write custom SmartApps to interact with the DTH, or have the DTH emulate a Switch or other type of Device Capability.


This is 98% of what your want, already done for you. Just change the RS-232 commands to match your old lighting system and you’ll be there. I did not write it, but I helped the guy who did with getting started on the Arduino/ThingShield code. He made the Arduino code very simple - just a passthrough device between ST and the RS-232 shield. Note: You’ll want to use an Arduino MEGA 2560 along with my “SmartThings” ThingShield library (which is needed to support the extra HW UARTs on the MEGA 2560 for serial comms.)


Thank you! @ogiewon @tgauchat


Just FYI:

The Mega is a great deal (i.e., super cheap) these days, as you can never have too much RAM or hardware serial I/O.

But it is quite possible to run a single RS-232 (and even piggy back debug output) on a single HW serial of an Uno or similar.

My Projector project is running Thing Shield, RS-232 i/o, low RF i/o (for screen remote control), and a 12v signal out detection from the projector all on an Uno, hand-coded simple sketch.

1 Like

This is awesome. Though I have little to no coding experience.

I’m not asking someone to do this for me (though that would be great). I want to confirm that I have this conceptually correct.

For Bruce’s project, all of the protocol specific code is in the Lutron Gateway SmartApp? As far as I can tell its using only 6 of the commands from the radioRA protocol:
3 control commands: SSL (set switch level), BP (button press), and SDL (set dimmer level).
and 3 feedback commands: LZC (local zone change), ZMP (zone map), LMP (LED map).

RadioRA protocol documentation:
Brilliance II protocol documentation:

The existing project should be fundamentally adaptable to the Lightolier system, right?
Is there anything I should watch out for?

Thanks, this community is really great.

@bravenel @ogiewon @tgauchat

Although not directly mentioned it appears this requires the ThingShield, which is no longer available correct? I also want to make this work for my home.

Yes it requires the ThingShield.
I got it successfully working with the Lightolier Brilliance II. I’m happy to send you my modified project files.

I’ve heard people mention workarounds to get the equivalent of a ThingShield, but I haven’t looked into that.

Best of luck.

1 Like


I also have a Brilliance 2 Philips Lightolier system in my home. Unfortunately, I don’t have the ascii protocols for controlling the unit. Can you please share the documentation you have? I would really appreciate it. I am trying to build a raspberry pi interface. Thanks!

Wow, that was a long delay for me to get back to this project! So what’s the workaround for the thingshield? I’d really like to figure out how to get rid of the rest of my crappy prodigy system that’s never worked well.

Should get you the pdf file on what you want. You can also just attach an rs232 terminal, and watch the commands flow through the terminal and just duplicate the ones you want (press the actual keypad).

I’d really like to get both an astronmical clock for my exterior lights and some controlled lighting for my theater going.

1 Like

The workaround for the now elusive ThingShield is to use LAN connectivity (either via Cat5 or WiFi) using my set of “SmartThings…” Arduino libraries. I designed these to mimic the old ThingShield functionality to help user migrate away from the ThingShield, but in a familiar way.

Inside my ST_Anything GitHub repository, you will find a set of Arduino Library folders that all begin with “SmartThings…” You will need all of these added to you local Arduino\libraries\ folder. Then you will need to modify Bruce’s code to use the new LAN connectivity instead. I think I may have helped another user with these modifications fairly recently, but I can’t seem to find the example.

Lot more info regarding the entire ST_Anything library is available at