Solas is currently supported by a small suite of programs that can be found on the downloads page. The software can be unpacked and placed wherever is convenient on your system. with the exception of the SolasStyle Shell command, all the programs require MUI to operate.
For any Solas software to be able to find the Solas board, it needs to know its address. Currently, SolasControl will search the standard A1200 clockport addresses ($D80001, $D84001, $D88001 & $D8C001), as well as the /NET_CS address sometimes used by A600 and accelerator clockports ($D90001). If the Solas is connected at another address, for example on a Zorro card clockport, the address must be set manually. using the ADDRESS tooltype in the program's icon. (In the future, it may also support automatic detection of Zorro clockports.) Once SolasControl has connected successfully, it will set an environmental variable called "Solas" that contains the address. This is used by the other support programs to easily find the Solas board address.
This is the main software for controlling most of the features on Solas. It's used for configuring the LED patterns and behaviour, for importing and exporting patterns, for configuring things like temperature sensor calibration, audio sensitivity and fan response curves, as well as updating the Solas firmware. When launched, the main window will open and the program will try to connect to the Solas board.
A status bar at the bottom shows the current status - if the Solas board can't be found, it will say "Not Connected", otherwise it will show the address of the Solas board found. The Live Preview checkbox enables live preview mode, where the current pattern settings are displayed and updated immediately on the LED strip, overriding any other effects in place. Disabling this will return the LED strips to their previous activity. The Apply Current Settings button sends all current settings (all LED, fan and temperature sensor settings) to the Solas board where they will take effect immediately. The Save to Flash button will save the currently active settings on the Solas board to the on-board flash, meaning they will be active from the next reset / power up without having to use SolasControl to set them. Note that Save to Flash will save the current settings on Solas, which might not necessarily match the settings in SolasControl unless they have been applied first.
SolasControl LED Controls Tab
The LED Controls Tab allows you to customise the behaviour of the attached LED strips. At the top of the tab, three cycle gadgets choose the overall context of the other controls:
- LED Strip selects which LED strip is being customised by the rest of the controls
- Event chooses which event the current pattern is applied to:
- Idle: Pattern will be active whenever no other events are active
- Floppy Access: Pattern will be active whenever the Amiga accesses the internal floppy drive
- HDD Access: Pattern will be active whenever the Amiga accesses the internal hard drive (this effect will be triggered for approximately 1 second before returning to the previous event to avoid rapid flickering between patterns)
- PCMCIA Access: Pattern will be active whenever the PCMCIA port is accessed. Note that the A1200 requires a modification to the motherboard to enable this feature. As with the HDD activity event, this event will also remain triggered for 1 second before returning to the previous event.
- Style selects the pattern that will be applied to the selected LED strip during the selected event. A number of preprogrammed patterns are available:
- None does not apply any effect to the LEDs - if a pattern was already displayed it will remain untouched
- Kitt Scrolls a block of colour left and right at the selected speed. Size sets the number of LEDs used, the foreground colour will be faded to the background colour along the size chosen.
- Star Trek Viewer Like Kitt but starts at the centre and scrolls left and right in symmetry.
- Breathing Fades the whole strip between the foreground and background colours at the speed set. Size and direction settings have no effect.
- Solid Sets the whole strip to the foreground colour. No other options have any effect.
- Static Pattern Sets the colour pattern sent from SolasControl on the LEDs and leaves them in that pattern. None of the options have an effect.
- Scrolling Pattern As for Static pattern, but the pattern scrolls in a loop. Direction selects the direction of the scroll.
- Rainbow Cycle Fades the whole strip between red, green and blue at the speed specified. The foreground colour sets the maximum level of each of the three colours, and the background colour sets the minimum. Size and direction settings have no effect.
- Rainbow Scroll Sets a rainbow pattern on the LEDs and scrolls it at the speed and in the direction specified. The max and min colour levels are set as with Rainbow Cycle. The size setting specifies the distance between the main colour peaks, e.g. a size of 5 means red will fade to green across 5 LEDs.
- Waves Similar to Rainbow Scroll, except the pattern only fades between the foreground and background colours set.
- Chase A glow of the primary colour scrolls across, followed by a glow of the secondary colour, each leaving a trail of colour behind. Speed sets the scroll speed, size sets the length of the glow effect.
- Lightsaber Fills the strip with the primary colour at the speed specified, then remains full. Sparkles of the secondary colour are provided, and Size sets the strength of the flicker effect.
- Level Meter Reacts to audio. The LED strip is filled from one side with the foreground colour based on the sampled audio level. The background colour fills the rest of the LED strip. Speed controls the sample rate, so higher means faster response (normally maximum is best). Size controls the decay rate, with 10 being the fastest decay after a peak. Direction selects from which side the strip fills.
- Level Pulses Reacts to audio. The strip is filled with the background colour, and fades towards the foreground colour based on the sampled audio level. Speed and Size controls are similar to Level Meter. Direction has no effect.
- Level Cycle Reacts to audio. Similar to Level Pulses, but each time the audio threshold setting is exceeded, the colour is cycled one step through a rainbow cycle. Speed sets the sample speed, size sets the distance between the colour peaks, so a higher size means a larger colour change each step. Direction has no effect.
- Level Spread Reacts to audio. Similar to Level Meter, but the fill starts at the centre of the strip and fills towards both ends.
Full 24-bit RGB colour sliders are provided for adjusting the main foreground colour of the pattern and the secondary background colour. Small preview areas are provided to give a rough idea of the colour that's set, but bear in mind that the colour produced by RGB LEDs will often differ significantly to a colour shown on a display. See the descriptions of the individual styles for a description of the effects of the colour, speed and Size sliders and the direction cycle gadget.
An estimate of the peak current required from the 5V rail of the power supply to display the chosen pattern is displayed at the right of the tab. This can be used to give a rough idea of how much of a load the LEDs will put on the Amiga's PSU. Please note that this is not a real-time measurement of the actual LED strip. This is just a prediction based on measurements taken of a couple of LED strips, extrapolated to take the selected settings into account. The actual current required will vary depending on the exact LED strip used.
Send Pattern allows you to send an IFF palette file to Solas, which will then store the pattern of colours for use in the static and scrolling pattern styles. This file can be created in a paint program, or palette editor such as PaletteEd. Any number of colours can be used - if the LED strip has more LEDs than colours in the palette, the extra LEDs will be left blank. Colours beyond the number of LEDs in the strip will not be displayed.
SolasControl Fan Controls Tab
The Fan Controls tab displays the readings from the three temperature sensors, and allows control of the fan speed. All temperatures are in degrees C. The options on this tab allow detailed control over the fan behaviour.
- Fan Control selects how the fan speed is controlled:
- Manual The fan speed is set by the Fan Speed slider
- Sensor 1/2/3 The fan speed is controlled automatically to keep the selected sensor reading at or below the temperature on the Setpoint slider
- Highest The fan speed is controlled automatically, based on whichever sensor is reading the highest temperature
- Fan Speed Sets the speed for the fan when in manual mode
- Minimum Fan Speed Sets the minimum speed at which the fan should be run. Different fans will have different minimum speeds, and some might vibrate or make noise below a certain speed so this can be set to ensure the fan is kept out of this speed region. A setting around 25-40 is probably suitable for many fans. Note that 5V fans will typically have a higher minimum speed than 12V fans.
- Keep Fan On Chooses whether to keep the fan on or not when the speed is below the selected minimum speed. If this is enabled, the fan will stay running at the set minimum speed, even when a lower speed is chosen (either automatically or manually). If this option is disabled, the fan will be turned off completely when the chosen speed is lower than the minimum.
- Setpoint Sets the temperature used as a target for automatic fan control.
SolasControl Config Tab
The Config tab allows adjusting the setup of the board. Typically these settings wouldn't be used much; once they're adjusted as required, they can be saved to the flash of the Solas and left alone.
LED Strip 1 & LED Strip 2 configuration options tell Solas which LED strips are connected and how long they are. Up to 100 LEDs are supported per strip, though response times and speed of effects may be effected when using very long strips. No harm will be caused by setting them incorrectly, but it's recommended to leave strips disabled if they're not connected so speeds aren't affected. If the LED Count is set higher than the actual length of the strip, the effects will simply disappear off the end of the strip.
Temperature Sensor Configuration allows the calibration of each of the three sensor inputs. Sensor inputs 1 and 2 are intended for LM3x type sensors, which have a nice linear response. LM35 sensors use an offset value of 0, LM36 use an offset of 78. Both types use a multiplier of 0.94. Sensor 3 is intended for a thermistor, and an offset of 0 with a multiplier of 3.5 is approximately correct for the internal thermistor of a Rev. 4 060 CPU. However, other thermistors (including different revision 060 CPUs) will have significantly different responses; some experimentation will be required to find suitable values.
Fan Controller Tuning allows advanced control of how the fan speed controller reacts to temperatures in automatic modes. The P, I and D values are used to fine-tune the calculations used to determine the fan speed with the aim of minimising annoying fan noise, changes of speed and switching to and from full speed. Since every system and every fan is different, the provided values of 1.5, 1 and 2 are a good starting point, but the ideal values for your system may require some experimentation.
PID control is a classic system of control used in all aspects of engineering for generations. The full details of the system can be read about in many places so won't be covered here, but the basics are this: P is for Proportional, and represents how much the fan's response is governed directly by the temperature, i.e. the higher above the setpoint, the faster the fan. Increasing this value will increase the fan speed and response speed, but will also increase "hunting" and overshooting. I is for Integral, and represents how much of the fan's response is based on its previous effectiveness, i.e., the longer the temperature is above the setpoint and the further above it has been, the faster the fan. Increasing this value also increases the response speed and helps to get to the setpoint, but can also introduce hunting. D is for Derivative, and represents how well the system is reacting to the current situation over time, i.e. the error rate. Increasing this value will dampen any oscillations from the P and I functions, but will slow the response somewhat.
Audio Level Settings allow fine-tuning of the audio response. Offset sets the baseline level of the audio, so if you have a response from the Level Meter pattern when no audio is playing, increase this value. Range is the scale of the response, or how much of the audio response is represented by the full strip, so if you have a response that is too small, decrease this value. If even a low sound maxes out the LED response, increase this value. Threshold is the value within the Range that the level must exceed to count as a "beat" and cycle the colour in the Level Cycle LED pattern.
SolasTemps is a small commodity that reads the temperature sensors attached to Solas, as well as allowing control of the fan speed. As a commodity, it follows the standard commodity conventions, allowing it to be hidden and disabled or enabled by Exchange, start hidden and popping up with a hotkey or by running it twice. In addition, it offers alarm limits, and will warn you whenever any of the temperature sensors reach a configurable limit.
SolasTemps Main Window
SolasTemps is configured using its icon tooltypes. These can be modified using the standard Workbench Icon Information function. Supported tooltypes are:
- DONOTWAIT This tells Workbench not to wait for SolasTemps to finish when it's started from WBStartup. If you don't have this tooltype, starting SolasTemps from WBStartup will give you a warning.
- CX_POPUP This tells SolasTemps whether to open its window when it starts. If set to NO, it will run in the background and remain hidden until called with Exchange, its hotkey or by running it again. Defaults to YES.
- CX_POPKEY This tells Workbench to assign the specified hotkey for opening the SolasTemps window. Defaults to Ctrl+Alt+T.
- ADDRESS This tells SolasTemps the address of the Solas board, since it won't search for itself. Typically, the address will be set by SolasControl and saved as an env variable, but this tooltype can be used to override that setting.
- SENSOR1NAME / SENSOR2NAME / SENSOR3NAME These tell SolasTemps the name to use for displaying the temperature of sensors 1, 2 and 3. Defaults to "Temp 1", "Temp 2" and "Temp 3".
- HIDET1 / HIDET2 / HIDET3 These tell SolasTemps to ignore sensor 1, 2 or 3 and hide the display of the sensor's temperature. Defaults to disabled (i.e., show the reading).
SolasTemps allows the user to select from the various fan control modes by selecting the relevant entry from the program's menus. Manual mode allows the fan's speed to be directly controlled using the slider in the SolasTemps main window. A sensor can be selected, in which case the fan's speed will be adjusted to try and maintain the temperature setpoint chosen. The "Highest" mode is similar to the sensor modes but bases the fan speed on whichever temperature reading is the highest.
SolasEnviro is another commodity that works in a similar way to SolasTemps. However, SolasEnviro reads a BMP/BME280 module that's attached to Solas via the I²C bus. It can read and display the environmental temperature, pressure and humidity as supported by the attached module.
Like SolasTemps, SolasEnviro can be configured using its icon tooltypes. The currently supported tooltypes are DONOTWAIT, CX_POPUP, CX_POPKEY and ADDRESS. See SolasTemps above for details on the function of these tooltypes.
SolasStyle is a Shell command that applies a previously-saved LED style file to a specified event on the Solas board. This can be used to apply different presets to the LEDs in a script, for example. Suitable style files can be saved by the SolasControl software, and contain details of the pattern type, colours, speed, size and direction.