Tuesday, 11 July 2017

Thor Burn In Program

Version 1.18.00 of Thor has a new program, Burn In, which will try to remove any moisture from the dual sensing probe. It does this by heating to various set point temperatures and waiting until the difference between the safety and block temperatures (drift) is below a certain threshold.

Starting Up

To access the burn in program, scroll the side bar to the bottom and select Burn In

Setting Up

Minimum Drift is the allowed temperature difference between the safety and block temperatures for the burn in program to continue to the next setpoint.

Time Out is the time allowed at one particular set point before the burn in program will give up waiting for the drift to come below the Minimum Drift.

Settling Time when the set point has been reached the program will wait a further amount of time before monitoring the drift

Set Points  Select which temperatures to test, 150, 200, 250, 300, 350, 400°C

Press start to start the program, once started you will not be able to change the settings.

Screen Shot

First ensure you have a USB memory stick inserted into the SMP50.

Press the menu key and press Screen Shot, this will capture an image of the screen and save it to the USB stick

This is useful for sending error reports or anomalous behaviour.

Report and Logs

The report screen shows the temperatures before and after the drift monitoring stage, and the time taken to complete the stage.

More useful is the log file, here temperatures and state are recorded every second. Insert a USB stick, and from the menu press Copy log file to USB.

Example of log output

14:25:00 250.0,250,25.0,Settling,Plateau
14:25:01 250.0,250,25.0,MonitorDrift,Plateau
14:25:02 250.0,250,25.0,Next,Plateau

Format for each row
Time block temperature °C, safety temperature °C, ambient temperature °C, burn in program state, heater state


The block temperature is accurate to 0.1°C, the safety 1°C, so expect the drift to flit about by 1°C.

The SMP50 firmware will go into an error state if the drift becomes greater than 15°C for several seconds. The burn in program will detect this error, cool for 10 seconds, clear the error and go back to the previous set point to try again.

The burn in program moves thru the following states

           (Press start)
           (Heater reaches Plateau)
           (Settling time is up)
           (drift is below the specified minimum)
           (Go to next setpoint and back to the Heat stage or Finished)

TimedOut state will occur if the time taken for the MonitorDrift stage goes over the specified Time Out setting

Error state will occur if the SMP50 reports an error, the Burn in program will cool and go back to the previous set point and resume the program from there.

Trouble Shooting

Stuck at a setpoint

The SMP50 may be stuck at at set point with a drift that does not decrease and will eventually Time Out.
1)Try a larger minimum drift value to allow the MonitorDrift stage to pass
2)Uncheck the set point

The idea here is to force the SMP50 to heat to a higher temperature, if the drift becomes too large the SMP50 will go into a error state which the Burn In program will detect, clear and return to the previous set point.

3) increase (at least double) the Settling and Time Out times to see if probe just needs more time

Drift is getting worse

The SMP40 kit I tested the program is nearly 10 years old. The Burn In program just made the drift worse, I suspect this is due to a faulty probe. However if the drift is becoming worse on new SMP50 units, stop using the burn in program. The solution to the problem will have to be rethought.

Wednesday, 5 July 2017

Guide to WindChime v1.3

This post is a guide to the features in WindChime v1.3.0


When you launch WindChime you will see the home screen which shows a title and version number. There is nothing much to do here, conveniently the nav bar  on the left will be open for you to select a more useful screen. If the nav bar is not open, press the hamburger icon in the top left corner.


Before you can use WindChime you will need to connect to a Spectrophotometer. WindChime can connect over TCP/IP or Serial Port. If you are connecting to Breezy (a simulator) enter the IP address shown in Breezy's connection screen, eg

For USB serial connectrion ,try /dev/ttyUSB0 or /dev/ttyUSB1
For direct serial connection, try /dev/ttyO0 or /dev/ttyO1 depending on which UART you are connected


Shows the status of the WindChime service and details about the connected Spectrophotometer


The WindChime service will log all communications to the Spectrophotometer. A new log file will be created each day. Select the log file on the left, WindChime will load the last 30 or so lines of the log file, as log files can be huge and display the text on the right.

Logs are sorted by latest date first, so the current log will be the first in the list.

Insert a USB stick and press COPY to copy the selected log file to the USB. Press DELETE to delete the selected log file. Press the menu button and select DELETE ALL to delete all log files.


The WindChime service will start automatically on boot up, check the boxes here to automatically connect and find home on start up, otherwise you will have to do it manually.


This screen allows you to conveniently update the WindChime app and service

Copy the latest version of WindChime to a USB stick and name the file windchime.apk, plug in the USB stick and press Update and then follow the on screen instructions.


This screen allows you to set the wavelength of the instrument. If the spectrophotometer has not been initialized, you will need to press the FIND HOME button first.

Lamp Output

This program will scan from 198nm to 1000nm and take a ADC reading at each wavelength and plot it in the chart. Press the menu button for options to copy the data to a USB stick, or send a screen shot to the USB stick.

This screen is useful for checking the accuracy of a unit with a Xenon lamp fitted, as the peaks in a Xenon lamp will be at well defined positions*. Pinch zoom the chart to zoom into a peak to see if it is at the expected wavelength.

*The lamp manufacturer may provide you with the necessary data, if the lamp is the same one as used in the UV Diode Array, you will have this data already.

Continuous Readout

This program will repeatedly take a light ADC reading every 500ms, its similar to a kinetics run.
The chart plots ADC value against time and will roll after 120 readings have been taken.

This screen is useful when adjusting the optics to maximize brightness.

Sipper Pump

If a Sipper Pump accessory is fitted use this screen to test out the motor.


If a Peltier accessory is fitted use this screen to set the temperature (20 to 50°C). The current temperature will be updated every 500ms.


If a turret / Eight cell accessory has been fitted use this screen to select its position. Note if the accessory has not been initialized, press FIND VANE first.


If a MicroVolume accessory has been fitted use this screen to set up and move the position of MicroVolume.

Monday, 5 June 2017

Wind Chime and Breezy Setup

Breezy is a PC application that simulates a spectrophotometer. Wind Chime is a library, service and tools app that provides the communications to a spectrophotometer.

The Wind Chime Service runs in its own process, the Breeze app will bind to the service and send commands to the service, the service will sends these commands on to the spectrophotometer and will send back any responses to the client.

The Wind Chime library, is a shared library used by the service and your app. The library is already included in BreezeUI, see /breeze/libs/windchimelibrary.jar. Perform a SVN update if you do not see it.

The Wind Chime Tools app, is used to configure the service's connection to the spectro and perform any initialization on the spectro, eg the 73 Series of spectros do the following when you first power them on:

  • Power On Start Test 
  • Find the zero order light
  • Find the gratings home position
  • Initialize any connected accessories

Getting Started

Here we will connect Breezy to Wind Chime via a TCP/IP socket.

First run breezy and connect to a socket:

Second, install the WindChime APK and open the Wind Chime tools app. The app uses a navigation drawer.

Go to connection, enter the IP address and Port, press connect

Go to Status, here you can check on the service's status, notice that the spectro is not yet initialized

Go to Wavelength screen and press find home. to initialize the spectro. Eventually POST and accessory initialization will be added.

On Breezy go to the Log tab and check you are seeing the comms messages

Back to Wind Chime, you can set the tools app to automatically connect and find home, via the settings screen. The app will automatically run on boot up.

Setting up BreezeUI

The various measurements, such as Photometrics, can be done either with a dummy class or one that binds to the Wind Chime service. To hook up the Breeze app to the service, edit bibby.jenway.breeze.MainModel

Comment out the line
this.spectrophotometer = new DummySpectro(2000L);

and uncomment this line
this.spectrophotometer = new ServiceSpectro(appContext);

Run Breeze and perform a photometrics measurement

Keep an eye on the Breezy log screen to see the messages that are been sent back and forth.

That's it. Note that the current version of Wind Chime is 1.2.0, Breezy were used for this post.

Tuesday, 23 June 2015

Thor Calibration

Version 1.05 of Thor now supports Factory Calibration, this is  similar to the calibration procedure used for the SMP40's during production.

The calibration uses the F200 Precision Thermometer from ASL. The thermometer is connected to the Beagle computer using a cable made up of  1 USB to Serial converter and 1 Female to Female null modem cable, similar to the cable used for the Hurricane calibration.

You will need to set the connection device on the Thor settings screen , if you are using the USB-Serial converter, select ttyUSB0 as shown below:

Open the navigation side panel and select Calibration:

If you get an error, check you cable and connection setting. Also ensure that the F200 probe is inserted correctly, you're on channel 1, using Celsius.

Press start to begin the calibration which is fully automated and will take about 1 hour. When the calibration has finished the results screen will be shown allowing you to fill out a melting point calibration certificate.

Thor stores the calibration results on disk, the Auto Melt and Video Recorder screens display the calibrated temperature. The Heater Control screen uses the raw temperature from the SMP electronics.

Getting Good Calibration

The F200 probes are quite long with a lot of metal exposed to the air, this makes the probe less accurate and less precise due to stem losses. The probe will measure lower block temperatures and repeatability will be affected by the ambient air temperature.

To counter the stem losses you need to lag the probe with fibre glass wool, you may find some ceramic tubes with the F200 kit that can help to lag the probe. Also remove the white ceramic block as this exposes the part of the probe immediately above the block.

With good lagging, you should get repeatable calibration results that are within 0.1°C accuracy from 60 to 200°C.

Technical Details

The calibration is split into to stages Calibration and Verification. Both stages take take measurements at the following set points 60, 100 and 200°C.

When each set point is reached, the program will wait for 5 minutes to allow the temperature of the F200 probe to settle. After that 10 readings are taken over a minute and averaged.

The calibration will work out a quadratic equation to perfectly match the F200 and SMP50 temperatures.

During the verification stage, the calibrated SMP50 temperature will be used* and shown in the calibration results screen.

*The display will show the raw temperature from the SMP50, but the verification program will be using the calibrated temperature.

User Calibration

The SMP40 has 3 temperature calibrations and the SMP50 will be no different. The first calibration is an electronic resistance calibration and is performed on the heater PCB by the supplier.

The second calibration is the factory calibration performed by the production staff. The third calibration is an User Calibration. The user cal adjusts the temperatures after they've been adjusted by the factory calibration.

Thor does not support User Calibrations but the underlying software framework makes it easy to set the user calibration, see TemperatureControl.java

Wednesday, 17 June 2015

Auto Melt

Thor v1.04 now has the functionality to carry out a fully automated melting point measurement.

Follow the steps below to perform your own AutoMelt.

Check Camera Settings

Make sure that the auto exposure and auto white balance are manual/off. Remember to press the 'Send to Camera' button to send your new settings to the camera.

Also make sure your image is nice and bright.

See here for more details

Check Regions of Interest Settings

Make sure the regions of interest rectangles are similar to above, remember to press SAVE button to store the settings.

See here for more details:

Open Automelt

Press the Thor icon to open the navigation panel. On the navigation panel press Auto Melt.

Melt Settings

Salicylic acid melts around 160°C, best go 5°C either side, so set the start to 155°C and the end to 165°C. This means the measurement will begin at 155 and stop at 165°C.

If you check the 'Check to automatically stop when melted' box, there is no need to specify the end temperature as the software will automatically stop for you.

Press 'Start Melt'

Heat Stage

The heater will automatically begin to heat to your start temperature.

Press stop to stop the heater.

Plateau Temperature

The heater will settle around your start temperature for several minutes

Measurement Stage

The heater begins to ramp, video recording and image analysis begins.

Note if any tube is 'Undetected' check your region of interest settings (and remember to press SAVE!)


The image algorithm will know when the chemical begins to melt due to changes in the light levels inside each of the region of interest rectangles.


When liquid the image inside the region of interest rectangle is dark, the software will still continue analyzing for a few more minutes to be sure.


The AutoMelt algorithm has detected the chemical has now stopped melting, if you had checked the  'Check to automatically stop when melted' on the melting settings screen, the melting point measurement would now have stopped. If you didn't check the box, the melt will continue until the end temperature is reached.

Press STOP to end the melt early


Video stops recording, heater stops and cooling fan starts

Note down the measured temperatures in your note book. The temperatures represent the Clear Point where all solid matter has turned into liquid.

Video Playback

Review your video and visually check the Clear Point of each tube against those recorded in your note book. The AutoMelt algorithm is good to +/-0.1°C

Wednesday, 10 June 2015

Region of Interest

As of  Thor v1.04 there is a new Region Of Settings (ROI) screen. The region of interest is the area around a capillary tube in the image returned from the camera. Since there are 3 capillary tubes to measure there will need to be three ROI areas to set.

The precise position of the capillary tubes in relation of the camera is different for each melting point apparatus and so the ROI for each capillary tube will need to be manually set by the user before you can perform an automatic melting point.

You can access the ROI settings screen from the settings screen:

Wait a few seconds for the camera image to arrive

Above you can see the 3 tubes (white), a red, green and blue rectangle. Each rectangle can be moved by dragging the squares in the corners.

The idea is to drag the rectangles so that they hug their corresponding tubes:

When you are satisfied with each ROI setting, press the SAVE button. If you need to reset the ROI positions preset the reset button

Monday, 8 June 2015

Manual Melt Using Thor

Version 1.03 of Thor now includes video recording and playback, there is enough functionality to perform a melt.

1. Build Your Test Rig

Here I'm using a Chipsee Android computer, an SMP40, a USB camera and Salicylic Acid as my test chemical.

Take extra caution due to the chemicals, heat and electricity! Do not leave the test rig unattended.

2. Set up the Camera

Click here to find out how to turn off the auto-exposure and set the gain so that the image is bright.

This is what your image should look like

3. Set up the Heater

Salicyclic Acid melts at 158°C, so you need to set the heater to start ramping from 153°C

The heater will quickly heat to 153°C and then spend a few minutes settling, once settle the Plateau temperature is reached and you can then press the Ramp button to start raising the temperature at 1°C per minute.

4. Start Recording

Press the record button to start recording the video stream, the video streams a 640x480 image at 4 frames per second. Videos are stored in the Movies folder on the device.

5. Watch the Melt

The melt has finished when all the chemical solid has melted into its own liquid (the Clear Point).
Press Stop button, to stop recording and finish writing the video file.

6. Turn Off the Heater

Press Stop button to start cooling, the fan will blow until the temperature of the block is below 50°C

7. Watch Your Video

Go to the videos screen and choose your newly created video

Press on a file to play the video

Pause the video and use the seek bar to manually determine the Clear Point (when all solid has melted into liquid).

8. Copy to PC

You can grab you videos off the Android device and copy them onto your PC, use a Mini USB B cable to connect to the Beagle computer.

Your videos are stored in the Movies folder, note you may need to power off/on you device to refresh the files.

The video is stored as an AVI file, suitable for most media applications.