Example of a manually wired Semitone Diamond mainboard.
Standby screen with dimmed backlight. The LCD's brightness can be configured for 3 different situations (standby, on, button event). Two icons indicate radio clock reception and active timers.
Channel details screen. You can configure DMX input for this channel, and enable or disable loading resp. saving of fade delay and brightness level. Also, you see a slider icon that indicates the current brightness or cold state. And of course you can edit fade delay and brightness level itself.
Channel details screen in edit mode. You can modify values by using the up/down buttons (or turning the wheel) or directly entering them via the remote control. The dotted slider icon indicates that this channel is cold (no output or pre-heating).
Scene screen. Load and store light situations as scenes. You are also informed whether the currently selected scene is either the fade target or even present (as indicated by the check-mark here) and how many fade delays and brightness levels will be affected when loading or saving this scene and whether loading this scene will issue standby mode (optional).
Real-time channel monitor. Displays the current level of each of the 20 channels with graphical sliders. You can also select and edit channels via the normal buttons here. You can configure the RT monitor to use the first character of each channel name instead of the single digit. Only active channels are displayed.
Setup menu system with the clock setup. There are many other setup items in the head menu.
You can setup preheating to be active when DMX data is being received, or when the dimmer is in operational mode.
Setup menu system. The remote data interface selection. You can choose between DMX with a baud rate of 250 kbps (original) or a legacy rate of 9600 bps.
Timer settings. You can set the global timer flag (check-mark), each weekday independently, the hour and minute of activation, and the function to execute (on, off, or any scene).
Channel name editor. You can assign a name of up to 16 characters to each channel. This name will be shown for convenience in the channel details screen (see above).
Scene name editor. You can assign a name of up to 16 characters to each scene. This name will be shown the scene screen (see above) and and as an overlay info message everytime a scene is loaded with the one-touch feature.
Channel output stage setup: Each channel can independently be driven by a TRIAC, IGBT, relay or an electronic ballast with analogue input.
Remote control setup: Each used button of the RC5/RC6 compatible IR remote can be configured. You can even mix remote control systems (e.g. for TV and VCR).
Python demo control application on Windows Mobile.
The Semitone Diamond is a very powerful Atmel AVR® based 20-channel stand-alone lighting controller (“dimmer”) with very minimal hardware effort. The LCD screenshots should give you a first impression of what the user interface of the Semitone Diamond looks like.
- 20×2 industry standard character LCD (Hitachi HD44780 or compatible controller)
- infrared (IR) remote control receiver
- push-buttons to be mounted on the case
- rotary encoder for comfortable adjustment of values (such as brightness)
- LEDs for standby, menu, and online modes
- industry standard USITT DMX512 interface (RS485, 250 kbps)
- DMX512 frame compatible interface at 9600 bps (e.g., for connection to standard PC UART)
Current firmware features
- multitasking real-time operating system (Diamond RTOS)
- 20 independent channels with nearly 10 bits resolution: 0.0 % to 100.0 % (1001 linearised levels)
- detailed channel view, scene view or real-time channel monitor view
- independent fade durations for each channel (from 0 m 00.0 s until 99 m 59.9 s)
- independent output driver mode for each channel:
- TRIAC (in both pulsed and static mode),
- IGBT/MOSFET forward,
- IGBT/MOSFET reverse,
- electronic ballast (0-10 V or 1-10 V DC),
- relay (on or off state)
- autodetection of 50 Hz and 60 Hz mains system
- display of hot/cold state in channel view
- (optional) lamp preheating when operational or online
- (optional) symmetrical load of the mains
- (optional) flashing of selected channel as feedback
- individual blacking out of channels, optionally in a three-stage mode (0 % 100 % restore)
- multi-lingual LCD user interface (English, German, Italian, Dutch – more contributions wanted)
- structured multi-level configuration menu
- DMX512 interface support provides industry standard connectivity
- three configurable backlight situations
- global standby mode
- 20 scenes memory (one-touch loading via remote control) and default scene selection
- (optional) triggering standby mode by loading a scene
- 21 timers (one or more weekdays, hour, minute) based on real time clock, load scene or switch on or off
Unreleased development version
The current development version of the Diamond RTOS requires a larger LCD and supports DCF77 radio clock reception as well as a new compact UART protocol (for controlling the Diamond via Bluetooth, USB, or RS 232). Check out the development version from the EngDR.
It will take some time until this incomplete development version will be officially released. Until then, if you're about to build a new Diamond, please refer to the new requirements (for example, get a 2 × 40 character LCD) and use the latest development version from the EngDR. The trunk version runs stable, it's just not complete (e.g., the new UART control protocol implementation and some string translations still need some work).
Dimming is done using the most common technique - phase angle control. Depending on each of the output driver stages which actually switch the lamps, this can be done in forward mode (TRIAC and IGBT/MOSFET) or reverse mode (IGBT/MOSFET only). Also, a relay mode is provided, offering simple on/off states at a fixed brightness threshold (50 %). Since version 0.4.0, the Diamond can also control electronic ballasts with analogue interface (0-10V).
Each channel can be setup in 0.1 % steps, allowing nearly 10 bit resolution. Since phase angle control is by nature strongly non-linear, a linearization (based on arccos) is done by the OS.
Both 50 Hz and 60 Hz systems are supported by the controller. A dynamic interrupt scheduler enables the system to control all 20 channels within the multitasking environment.
All brightness changes are done by fading. Whether you are loading a scene or toggling standby mode; the controller fades each channel from one brightness to the other. Fade durations can be adjusted independently for each channel. The Semitone Diamond offers fade durations from 0 seconds (change immediately) until 99 minutes and 59.9 seconds.
Input abstraction layer
All key-presses are internally represented using an input abstraction layer. This way all input devices (IR, push-buttons, rotary encoder) act the same way in any situation.
Buttons which can be mounted on the case offer local access to all functions, except the one-touch scene load feature (anyway, scenes can be loaded using some more key-presses from within the scene view).
A rotary encoder acts like the up/down buttons, allowing to change parameters, such as channel brightness, fade delay, etc.
The remote control input provides a very comfortable human interface, especially for standalone applications. This is also the most flexible one, as it also allows access to the one-touch scene load feature.
Currently the firmware supports only RC5 and RC6 as input signal. This is a very widely used infrared remote control standard, introduced by Philips. Most Philips end-user devices use this standard, and all universal remote controls should support it. If you don't already have one, you should be able to get such a remote control for a few bucks.
The button layout of your remote control is fully customizable. Within the setup menu system you can edit all recognized RC5 and RC6 codes. This is very useful for universal remote controls, where the button layout may not fit your favorite feature mapping.
The firmware provides a real time clock with software calibration. Up to 10 timers can be setup to load a scene of switch operational mode on or off at any minute of the day, on one or more days of the week.
Up to 10 scenes can be stored. Each scene can be named (16 characters). Each channel can be toggled to be referenced or ignored in scene load/store actions. The fade durations can currently not be saved independently for each scene, because there is not enough space in the EEPROM for this.
Apart from within the scene view, scenes can optionally also be loaded with a one-touch feature. That is, in any situation, except when in edit mode, scenes can be loaded by just pressing the corresponding number (0..9) on the IR remote control.
The channel monitor displays a slider for each active channel. This gives an overview of the current light setup. This is especially useful when being controlled remotely over DMX.
To improve lamp life and to ensure linearity when dimming the channels up from off-state, the firmware can optionally preheat all lamps when in operational mode or online mode.
To reduce mains disturbances, the dimming system can optionally be configured to allow symmetrical load of the mains only. That means that the load at the positive and negative mains semiwave is always equal. You should generally keep this feature enabled.
Nearly all settings of the setup menu system can be stored in a non-volatile storage (an EEPROM). Strings are immediately stored there, most other settings are held in RAM, and stored on demand using a setup menu entry.
Also, previous settings can be restored, default settings can be loaded, or the EEPROM can be regenerated to “factory” defaults.
This is the industry standard for lighting systems, used at theaters and concerts.
It's based on RS 485 at 250 kbps. For very easy interfacing it is also possible to enable a DMX compatible interface at 9600 bps. The Semitone Diamond can decode this protocol and set channel brightness values for all channels starting at a configurable base address. Optionally, some features of the controller can be controlled over additional control channels (currently this applies to the operational mode, which can be controlled over the 21st DMX channel).
Each channel can be setup to accept or drop incoming DMX data.
The LCD offers an enhanced user interface for standalone purposes. The firmware offers a setup menu system where all relevant data can be edited. The user interface supports multiple languages, selectable at runtime.
There are three configurable backlight brightness stages. This enables you to have the backlight dimmed down in standby mode.
If you're about to build a new Diamond, please use a 20 × 4 character display, as this is the required size for the latest development version of the Diamond RTOS. This version has not yet been released, but is available from the EngDR.
On May 1st 2006, the 3rd anniversary of the project, version 1.0.0 of the firmware was released. Meanwhile, also version 1.0.0 of the official schematics was released. Since those releases, the Diamond model can definitely be considered stable.
As the latest development version of the Diamond RTOS has a lot of feature enhancements, all users are encouraged to use this version, available from the EngDR. Please note that this version requires a 20 × 4 character display. Users of older versions are encouraged to upgrade to this LCD size for improved user interface experience. Development versions of PCB layouts are also available in the hardware section of the EngDR SVN repository.
Official releases can be found in the Releases section, including the firmware (Diamond RTOS) source code and all hardware schematics. Alternatively, you may want to just grab the latest releases from the Engbedded Download Server.
Development on official PCB layouts for the Diamond model is in progress. Please check back soon.