Friday, 15 September 2017

Wind Chime v1.5

This releases sees two new screens, Photometrics and Alignment. There are also a few bug fixes and minor improvements. The navigation menu has now been divided up into categories to make it easier to find a particular function. Find Home command will now wait up to 100s before timing out.


Photometrics



Press blank to take a dark and blank reading, press sample to take a sample reading. You can change the wavelength from the wavelength screen, see below.

There is also a USB logging function that will log each sample to a file called photometrics.csv on an USB memory stick. Makesure you insert a USB stick before turning on logging and that when you finish, you turn off logging and unmount the drive (see my earlier post about removing USB sticks).


Wavelength



The wavelength screen has been revamped, there are now 2 presets for the stray light test.


Optics Alignment


The alignment screen is similar to he 73's alignment screen and has been designed for a engineer to aligned the optics.

The CALIBRATE ENDSTOP button will find the 0nm (white band) and store it in the PCB.


See the release notes for further details

Thursday, 7 September 2017

WindChime v1.4

New Features for version 1.4 of WindChime

  • Bootloader support
  • EMC Testing

Menu highlighted to show new screens
Note that you can update to v1.4 from v1.3 from within the app using the Update screen


Bootloader


Before using the bootloader functions, ensure you are first connected to the spectro. Note also that /dev/ttyO1 is now the default setting, however the app will remember your setting.


Currently the spectro is in Bootloader mode, press JUMP

The spectro is now in Application mode

In order to use the spectro, you will need to issue the jump command to put the Spectro into application mode.

Launch Settings

WindChime will launch automatically on boot up, you can set to connect automatically and send a jump instruction.


EMC Testing




The EMC Test screen will periodically send out the current date and time. You can either send to a printer or to a file on a connected USB memory stick. Note that if you are having problems with your USB memory stick please see How to safely eject a USB memory stick.





Ejecting USB Memory Stick

This post will describe how to safely eject a USB memory stick from the Bibby Beagle Bone Black android computer.


Follow these instructions incase you are having problems reading/writing to a USB stick.


Swipe down to reveal the notification drawer

Press the settings icon

Press the Storage option

Press Unmount shared storage

Press OK

You can now safely unplug your USB memory stick

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


Advanced

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

Ready
           (Press start)
Heat
           (Heater reaches Plateau)
Settling
           (Settling time is up)
MonitorDrift
           (drift is below the specified minimum)
Next
           (Go to next setpoint and back to the Heat stage or Finished)
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.

Alternatively,
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

Home




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.



Connection




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 192.168.0.5:11000

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


Status



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

Logs




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.


Settings



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.

Update



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.


Wavelength



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.


Peltier




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.

Turret



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.


MicroVolume



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 1.1.0.0 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