Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Seccion 2

Download as pdf or txt
Download as pdf or txt
You are on page 1of 42

DIODE LASER

FIRMWARE DESIGN SPECIFICATION

May 7, 2002

CANDELA CORPORATION
530 BOSTON POST ROAD
WAYLAND, MASSACHUSETTS 01778-1883

1010-01-1060 Revision: E4 Candela Corporation PROPRIETARY Page 1 of 33


TABLE OF CONTENTS
1.0 PURPOSE................................................................................................................................................................................3
2.0 DEFINITIONS.........................................................................................................................................................................3
3.0 REFERENCES.........................................................................................................................................................................3
4.0 CONTROL SYSTEM HARDWARE.......................................................................................................................................3
4.1 HARDWARE DESCRIPTION ................................................................................................................................3
5.0 CONTROL SYSTEM FIRMWARE ........................................................................................................................................5
5.1 NAMING CONVENTIONS ....................................................................................................................................5
5.2 CONTROL SYSTEM STATES ...............................................................................................................................5
5.3 CONTROL SYSTEM PROCESSES AND PROCEDURES ...................................................................................8
5.4 SYSTEM STATUS FLAGS.....................................................................................................................................10
5.5 FAULT LONG-JUMPS ...........................................................................................................................................10
5.6 CONTROL SYSTEM FIRMWARE ARCHITECTURE .........................................................................................10
6.0 CONTROL SYSTEM PROCESS DESCRIPTIONS ...............................................................................................................10
6.1 INITIALIZATION PROCEDURE...........................................................................................................................10
6.2 WARM-UP PROCESS ............................................................................................................................................11
6.3 STANDBY PROCESS.............................................................................................................................................11
6.4 READY PROCESS..................................................................................................................................................12
6.5 ACTIVATE LASER.................................................................................................................................................12
6.6 CALIBRATE PROCESS .........................................................................................................................................13
6.7 FAULT PROCESS (INCLUDES WARNINGS)......................................................................................................15
7.0 SUPPORTING ROUTINES.....................................................................................................................................................18
7.1 MAIN CONTROL LOOP ROUTINE ......................................................................................................................18
7.2 INTERRUPT ROUTINES .......................................................................................................................................18
7.3 TEC CONTROL ROUTINES ..................................................................................................................................19
7.4 DCD CONTROL ROUTINES .................................................................................................................................20
7.5 DIGITAL & ANALOG I/O ROUTINES..................................................................................................................22
7.6 MAINTENANCE ROUTINE...................................................................................................................................23
7.7 GRAPHIC USER INTERFACE...............................................................................................................................23
APPENDIX A. DISPLAY REFRESH RATE CHARACTERISTICS.....................................................................................................30
APPENDIX B. PULSE WIDTH MODULATION WITH THE HC12....................................................................................................33

1010-01-1060 Revision: E4 Candela Corporation PROPRIETARY Page 2 of 33


1.0 PURPOSE
The purpose of this document is to describe the software architecture of the SmoothBeam laser. The firmware for this laser
will be designed to deliver, maintain, and calibrate the selected energy density settings.

The intended audience for this document include the following:


§ Marketing
§ Engineering
§ Regulatory Affairs
§ Clinical Research
§ Quality Assurance
§ Field Service
§ Manufacturing

2.0 DEFINITIONS
The following are definitions of terms and acronyms used in this document:

CPU: Central Processing Unit (Microprocessor)


RAM: Random Access Memory
ROM: Read Only Memory
CDRH: Center for Devices and Radiological Health
UI: User Interface
DCD: Dynamic Cooling Device
PCB: Printed Circuit Board
TS(DP): Touch Screen (Display Panel)(Electro-luminescent(EL) display with touch panel overlay)
A/D: Analog-to-digital Converter
D/A: Digital-to-analog Converter
I/O: Input/Output
LSB: Least significant bit
LPS: Laser Power Supply
TEC: Thermo-electric cooler
ADC: On-chip Analog-Digital Converter
SPI: Serial Peripheral Interface
SCI: Serial Communication Interface
SPM: Single Pulse Mode
MPM: Multiple Pulse Mode

3.0 REFERENCES
The following reference documents were used in the development of this specification:

§ CANDELA Firmware Standard Operating Procedure


§ SmoothBeam Requirements Specification
§ SmoothBeam Firmware Requirements Specification (FRS)

4.0 CONTROL SYSTEM HARDWARE


4.1 HARDWARE DESCRIPTION

The Laser control system consists of a CPU system controller, diode box, input/output PCB. The system controller portion of
the PCB contains an 68HC12 CPU and the firmware to operate the laser. The Laser Inputs and Outputs portion of the PCB
interfaces with the I/O ports of the CPU. In addition to the CPU, there is a four channel 12-bit A/D and a single channel 12-

1010-01-1060 Revision: E4 Candela Corporation PROPRIETARY Page 3 of 33


bit D/A. Both of these devices use an SPI type serial interface with the CPU. One of the CPU I/O ports is configured as a
seven channel 8-bit A/D which provides additional low resolution analog inputs. Figure 1 illustrates the system I/O in block
diagram form.
Display IRQ

Display
A,B,C Current FDBK
Data 8
(8-Bit Analog)

XY Drive
Touchscreen A,B,C Shunt Stat

2 XY Pos

(8-Bit Analog) Timing Fault

FootSwitch Clear Time Fault Diode


Driver
Circuit
Shunt Strobe
Ready Lamp

Buzzer Shunt Enable

RX Laser On/Off

Serial Port
Sbeam CPU
TX
68HC12

TEC ON/OFF

TEC Heat/Cool 2 HP Detect


TEC
TEC Fan
TEC Temp CalPort Status

(8-Bit Analog)

DCD Heater On/OFF SOUT


D/A Converter

DCD Valve

Head
Cryogen Detect SCLK Detector

A/D
DCD Press. CKT (8-Bit Analog) SD IN Converter

Cal Port
Pulse Sense Detector

Figure 1 CPU System Controller/Laser Inputs and Outputs Block Diagram

1010-01-1060 Revision: E4 Candela Corporation PROPRIETARY Page 4 of 33


The following user interface components are monitored/controlled by the firmware: the Touch Screen Display Panel
(TSDP), the READY lamp, the audible alarm, the diagnostic ports, the finger switch, and the footswitch. The TSDP and the
diagnostic port are described below:

4.1.1 Touch Screen Display Panel(TSDP)

The Touch Screen Display Panel is composed of a graphical electro-luminescent display with touch panel
overlay. The firmware provides a mixture of graphical icons and text to convey system setting, status, etc. to the
user. These icons allow interaction enabling the user to configure and operate the laser. The firmware monitors
the touch screen in order to obtain user input.

4.1.2 Ready Lamp

The firmware turns this lamp on whenever the system is in READY state.

4.1.3 Audible Alarm

The firmware uses an audible alarm to generate beep tones which alert the user that one of the following
conditions has occurred:
System Power Up (4 short beeps, also serves as diagnostic test)
Warm-up Complete (1 short beep)
Charging (1 short beep)
Pulsing (1 short beep)
Fault (1 long beep)

4.1.4 Maintenance Access (Diagnostic Port)

The Maintenance Terminal communication is via an RS-232 serial connection. The laser receives data at the
interrupt level. The data is moved to a holding buffer for later processing.

4.1.5 Footswitch
The user must depress the footswitch to fire a laser pulse. If the footswitch is held down, the laser will
continue to fire at a 1 Hz repetition rate (when Multi-pulse mode is selected).

5.0 CONTROL SYSTEM FIRMWARE


The control system firmware controls the laser system. The diagrams on the following pages show the SmoothBeam laser
States and Processes.

5.1 NAMING CONVENTIONS

§ All non-volatile variables will be stored in a partitioned segment of battery-backed RAM that can only be erased by
software. All variables stored in battery-backed RAM will be declared with the prefix “nv_” and will be defined in
nvram.c. All other variables residing in RAM not declared as non-volatile will be cleared at power on.

§ Icons have been used wherever possible to minimize language translation requirement with the firmware.
§ All text and graphic bitmap images displayed on the UI will be located in files suffixed “_dat.c”.
§ All other message bitmaps will be stored in the corresponding language file “[language].c”.
§ Exception: Language button bitmaps can be found in “lang_btn.c”
§ All initialization functions called for system initialization purposes will begin with the prefix “init_”
§ Any function that is called from interrupt level will be suffix preface terminated with the suffix “_int”.

5.2 CONTROL SYSTEM STATES

The SmoothBeam can be operated in any of three system states: Standby, Ready, or Fault. Temperature and
pressure will be monitored periodically and controlled by background system processes. Some faults will be

1010-01-1060 Revision: E4 Candela Corporation PROPRIETARY Page 5 of 33


continuously monitored regardless of system state. The following are brief descriptions of the characteristics
inherent to each state:
§ Standby – when in the standby state, the ability of the device to lase will be inhibited.
§ Ready – when in the ready state, the device can be enabled to lase and calibrate.
§ Fault – when non-typical system operation occurs, the fault handler will inhibit lasing and disable interrupts.

5.2.1 State Changes


The following actions are taken when entering each state:
1) Entering Standby
§ Shunt status confirmed closed
§ LPS set to zero
§ READY lamp is tuned off,
§ State is set to STANDBY.
§ Standby timeout timer set
§ Calibration timeout timer set.

2) Entering Ready State


§ First the active trigger switch is checked. If it is depressed, the Fault Handler is called which exits the
READY process, places the system in Standby and displays an error message.
§ LPS is set if a calibration is not required, otherwise LPS is set to 0.
§ READY lamp is turned on.
§ Ready state timeout counter initialized.
§ Rep rate timer initialized
§ State is set to READY
§ A two second delay is then implemented before proceeding as a safety precaution.

3) Entering Fault State


§ Shunt status confirmed closed
§ LPS set to zero
§ READY lamp is tuned off,
§ State is set to FAULT.
§ Timer interrupts are disabled

1010-01-1060 Revision: E4 Candela Corporation PROPRIETARY Page 6 of 33


SmoothBeam State Diagram

INITIAL

ROM CheckSum
System Initialized Failure
CheckSum Pass

Non-Recoverable Fault
System Requires Service
Fault Cleared FAULT

Warmup State
Timeout

WARMUP CALIBRATION ACTIVATE

Warmup Succesful Cal Complete

Warmup
Required
Calibration Not Required
& Trigger activated
Calibration Required
& trigger activated
Process = CAL Trigger Released

STANDBY User Input READY


Ready State Timeout
User Input
Figure 2: Smoothbeam Control State Diagram

1010-01-1060 Revision: E4 Candela Corporation PROPRIETARY Page 7 of 33


5.3 CONTROL SYSTEM PROCESSES AND PROCEDURES
The SmoothBeam Control System Firmware is comprised of the following processes and procedures. These are further
described in Section 6.

1 Init - Procedures initialize system hardware at power-up


2 Warm-up - Initialized heating of DCD canister to bring pressure within operable range.
3 Standby - Maintains system in Standby state.
4 Ready - Maintains system in the Ready state.
5 Activate - Allows pulsing of the laser.
6 Cal - Calibrates the laser to the fluence set by the user.
7 Fault handler - Procedure which processes and displays any faults or warnings that occur

Additionally the following supporting routines are used. These are described in Section 7 and throughout the text:
1 Main Control Loop - Provides cyclical execution of system firmware.
2 RTI Interrupt Routine - Synchronizes to system timer to provide precise timing.
3 GUI Routines - Polls touch panel, displays text and graphics.
4 TEC Control Routine - Controls temperature of TE coolers.
5 DCD Control Routine - Controls DCD pressure.
6 Fault Check Routine - Checks for periodic faults.
7 Calibration Routine - Calibrates laser to set fluence.
8 Pulse Routine - Pulses the laser once, and dispenses set amount of cryogen.
9 Analysis Routine - Ensures that energy is within desired range.
10 Digital & Analog I/O Routines - Set and convert software value to tangible physical values
11 Maintenance Routine - Provides control of system hardware.

1010-01-1060 Revision: E4 Candela Corporation PROPRIETARY Page 8 of 33


INITIAL

TEC is within 2
degrees of setpoint DCD reaches 107 p.s.i.
(if connected)
WARMUP STANDBY
Any STANDBY
fault

Any WARMUP fault CALIBRATION


CANCEL button
Any press
keypress
fault cleared
CALIBRATE
button press

No pulsing
3 minutes

Any CALIBRATION Fault


STANDBY
FAULT Cal Pulse button press
Complete READY
CALIBRATE button press
ACTIVATE Calibration
Pulse Needed

Redundant foot
switches pressed Triggered pressed Calibration
with cal required complete

Trigger switches released


Any Ready fault prior to end of pulse.
CALIBRATE
button press

Pulse
Complete
READY

Figure 3: Smoothbeam Process Diagram

1010-01-1060 Revision: E4 Candela Corporation PROPRIETARY Page 9 of 33


5.4 SYSTEM STATUS FLAGS

There are 2 primary status flags used to monitor the status of the system. These flags are used by the processes to
allow process synchronization. The State and Process flags are updated at the entrance to each process.

§ STATE Flag indicates the system state.


{Standby, Ready, Fault} only one active

§ PROCESS Flag indicates the process that is executing.


{ Warm-up, Cal, Standby, Ready, Activate } only one active

5.5 FAULT LONG-JUMPS

The software uses 2 library routines known as Setjmp and Longjmp. These routines are used to simplify the exit
from the Fault Handler routine. The Setjmp gets executed at the beginning of the main control loop. This saves a
pointer into the current stack location. If a Fault occurs at any level of subroutines down in the system, the Fault is
processed and instead of returning to the original subroutine that had the fault, CPU processes Longjmps to the
start of the main loop. When the Longjmp occurs, it cleans up the stack to the way it was on the first entry. There is
no need to deal with the routines that caused the fault, and program control continues from the beginning of the
main control loop without stack growth problems.

5.6 CONTROL SYSTEM FIRMWARE ARCHITECTURE

The architecture of the firmware is structured as foreground/background.

5.6.1 Foreground Level


The processes depicted in Figure 3 will all operate at the foreground level.

5.6.2 Background
The background functions have priority of system operation unless otherwise specified by system code.
§ Real Time Interrupt service routine, rti_int(), is periodic with a 1ms rate. It updates the software timer
variables, reads the CPU’s digital inputs, and maintains the watchdog timer.
§ Serial port I/O service routine, serial_int(), supports the RS-232 communication between the laser
firmware and the diagnostic maintenance mode software.
§ The IRQ input to the HC12 allows an external device to cause a software interrupt. The IRQ service
routine, wrset_int(), sets a timer to synchronize CPU-Display data write transfers.
§ Cryogen valve detection interrupt routine, valve_check_int(), is a timer based interrupt which occurs
prior to cryogen valve closing. This interrupt checks the status of the cryogen valve circuit to determine
proper valve function.
§ Post pulse energy detection interrupt routine, post_pulse_int(), monitors the head detector unit after a sub
pulse has concluded to ensure laser emission has ended.
§ Output Timers 5,6 are used for output compare duty_set(). PortT of the HC12 allows Output Compare
functionality in conjunction with timer synchronization. This allows pins configured as output pins on
Port T to turn on and off according to the set values of internal timers. This concept is implemented to set
duty cycles for control of DCD and TEC heaters.

6.0 CONTROL SYSTEM PROCESS DESCRIPTIONS


An in depth description of each process and procedure within the control system firmware are presented in this section.

6.1 INITIALIZATION PROCEDURE

1) The Initialization procedure is only executed on system startup or reset. This procedure initializes interrupts,
sets all the hardware (outputs) to a known state, initializes the CPU on-chip peripherals (SPI, SCI,ADC), and
initializes the TSDP.

1010-01-1060 Revision: E4 Candela Corporation PROPRIETARY Page 10 of 33


2) Displays logo, software part number and the revision number are then displayed.

3) The audible alarm is sounded (4 short beeps) as a diagnostic test of the alarm. Ready lamp is also tested.

4) The firmware performs a ROM checksum test each time the laser is powered up. The checksum for the ROM
is calculated and compared against the checksum value stored in the ROM. If the checksum test fails, the
appropriate fault code is displayed and the firmware cycles in an endless loop.

5) A test for reasonable data values is made on the battery-backed RAM. The following tests are made:
§ If the software revision string variables matches
§ the non-volatile data is checked to ensure all values are within reasonable limits.
§ Values that are out of bounds are set to default values.
§ If not(I.E. a new version of software installed),
§ firmware copies the ROM software revision string into the RAM string
§ sets the selected non-volatile data to default values specified in ROM.

6) If BBRAM is cleared or TS parameters do not exist, the system will enter Touch Screen Calibration mode.

7) Next the display is updated with the upper and lower command bars as well as the main menu

8) Volatile variables and flags are initialized.

9) State is set to Standby, Process set to Warm-up.

6.2 WARM-UP PROCESS

The Warm-up Process executes a small state machine cycling through the states shown below in numerical order.
User input via the TSDP is disabled during this process.

1) BEGIN
§ The warm-up message box which contains a bar graph is displayed.
§ Initial percent completion value for the warm-up cycle is calculated and displayed.
§ Next the TE coolers and DCD heater are set to begin cooling/heating, and the warm-up state is set to
WARMING.

2) WARMING
§ Software calculates the progress of the warm-up based on the DCD systems.
§ The bar graph is updated based on whichever parameter has the longer warm-up time(is further from
setpoint).
§ The warmup state is changed to AT TEMP when:
§ TEC operating temperature is ±2 ºC of the set point is reached,
And
§ DCD pressure is greater than DCD warm-up temperature.

3) AT TEMP
§ Warm-up required flag is reset.
§ Warm-up state machine is set to DONE
§ System control is returned to the stand-by process of Stand-by state
§ Warm-up screen is cleared and a main menu is drawn.

6.3 STANDBY PROCESS

Standby Process Overview

1010-01-1060 Revision: E4 Candela Corporation PROPRIETARY Page 11 of 33


The Standby Process is simply a dummy process to be entered while system is inactive, i.e. not in Warmup
process, of the STANDBY state. The process maintains a few flags and ensures the system remains inactive. The
following actions are taken while in the standby process:
§ If calibration timeout cal required flag set.
§ Ensures laser driver is not enabled.
§ Ensures normal menu is being displayed

6.4 READY PROCESS

Ready Process Overview


The READY Process is entered when the system is inactive in the READY state. The following procedures
are performed when the system is in the Ready process:
§ The Ready State timeout is checked to determine if the laser has not been used in the last three minutes.
This is a safety measure to prevent accidental use of device.
§ Diode current can be set or changed if required by the system.
§ Ensures the shunt are closed .

While in the Ready process the firmware checks if the following conditions have been met to proceed to the
Activate process:
§ Ready State Timeout = false,
§ Repetition Rate Timer expired = true,
§ Active Trigger Switch = depressed,
§ Calibration Required = false,
§ If footswitch is depressed then go to the Cal process.

6.5 ACTIVATE LASER

Activate Overview
The activation process encompasses enabling the laser, pulsing the laser, acquiring , and analyzing data obtained
from the laser when a valid trigger signal has been received. Control is returned to the Ready process when a valid
trigger signal is no longer detected. The activate process is comprised of a number of functions to perform these
tasks.

Enabling the Laser


The Smoothbeam incorporates shunt circuitry in the hardware to act as an electronic beam shutter. Enabling the
laser driver “opens“ the shunts allowing laser emission and disabling the laser “closes” the shunts. When a valid
trigger signal is detected and a change of shunt status is verified by software, the shunts will have been enabled.
Smoothbeam has two pulse modes controllable by a Toggle button on the option screen. In single pulse mode the
laser is enabled before and disabled after each pulse. Multiple Pulse Mode (MPM) enables the laser when the FS
is engaged and disables the lasers when it is released.

Pulse Overview
The pulse routine, fire_pulse(), is called only from the activate and calibration processes both accessible in the
ready state. The laser operator is required to depress the footswitch in order to pulse the laser.

The pulse of the Smoothbeam consists of four 52.5 ms sub-pulses for a combined 210 ms of laser on time. These
sub pulses will be interspersed with sprays of cryogen when:
§ The laser is not in ablation mode (DCD setting is greater than 0).
§ The hand piece is not in the cal port.

Throughout the pulse sequence, data is obtained from the energy detectors. The head detector is read on all laser
pulses. The cal port detector is only read upon detection of the hand piece in the cal port. Three readings are
taken during each sub pulse as shown in Figure 4. The first is taken after time T1 and the remainder are take after
the interval T2. Each reading consists of 3 samples of both the head detector and cal port detector (when
applicable).

1010-01-1060 Revision: E4 Candela Corporation PROPRIETARY Page 12 of 33


A fourth head detector reading is taken after each sub-pulse has concluded. The fourth is a preventative reading to
ensure lasing has terminated. If energy above an acceptable limit is detected by this reading, a pulse fault will be
flagged.

The fourth sub pulse incorporates a current check. Feedback current from the three strings of the diode box are fed
into the A/D of the CPU. These values are used to determine proper laser operation.

Readings 1-3 Reading 4


T1

T2

Figure 4: Smoothbeam Pulse Sequence

Pulse Analysis
After a successful pulse the data acquired during the pulse is compiled and analyzed regardless of process. This
data is used to determine if the laser is operating within system specifications. The following occurs when a pulse
is analyzed:
§ Generated and delivered energies are calculated using the average readings of all four sub-pulses from the
applicable detectors.
§ If the process is not calibration, a head detector energy check ensures energy is within ±10% of the
calculated head lock-in value.
§ If the hand piece is detected in the cal port, the transmission is checked.
§ Current data from the 3 strings obtained on the last sub-pulse of the pulse sequence is processed.

6.6 CALIBRATE PROCESS

The calibration process is initiated when:


§ System is in Standby OR Ready and the CALIBRATION command button is pressed.
§ System in Ready, a calibration is required, and the active trigger switch has been depressed.

Calibration Overview
The calibration routine seeks to set the LPS current so that the laser delivers the desired energy selected by the
user within a tolerance range. The calibration is performed using the following concepts:
§ The laser must determine the energies it is capable of producing(delivered energy) and system responses
due to changes in current. (Diode Slope Calculation)
§ Once the system responses are known, the laser must attempt to output the desired energy. To do so, each
energy setting must have a baseline current from where it will attempt to achieve the proper output energy.
§ If the desired delivered energy can not be obtained with the initial input it will be necessary to adjust the
LPS using the known system responses.(Adjust Current)
§ Once the desired energy has been measured within range for 2 consecutive pulses, the current used to
obtain this energy is stored in a table. If the desired energy is not measured, the process is repeated.

Calibration Required Conditions


A number of condition exist which will require the system to calibrate when attempting to pulse after entering
the READY state. The following is a list and explanation of all conditions which will require a system calibration.
1. System Power-Up: On all system power-ups, an initial calibration is automatically required.

2. Pressing the Calibrate Button: The calibrate button automatically puts the laser in the READY state and
sets the calibration required flag, before entering the calibration process.

1010-01-1060 Revision: E4 Candela Corporation PROPRIETARY Page 13 of 33


3. Changing Fluence: By selecting the fluence parameter and pressing either the up or down buttons will set
the calibration required flag.

4. Exiting Maintenance: A calibration will always be required when exiting from maintenance mode or
disconnecting from a maintenance terminal.

5. Hand piece Connector: When the system is not in the READY state and the HP connector is removed
one can assume that the delivery system has come off and a new delivery system has been attached.

6. Calibration Timeout: The rationale behind the calibration timeout is that the parameters which govern
system action can change if the system is not used within specified time. The calibration timer is set when
the system enters standby. If the timer expires while still in standby, the system will require a calibration.

7. Fault Conditions: A number of faults only occur when the output energy characteristics of a system
change. These changes require the system to re-calibrate. The following are a list of faults requiring a
recalibration.
§ Current Fault
§ Calibration Fault
§ TEC Fault
§ HP Fault
§ Energy Out of Range
§ Transmission
§ Post Pulse Energy Detection.

Calibration Initialization
The following steps will be taken to initiate the calibration process. If the hand piece is not inserted in the
CAL PORT when the calibration process is initiated, the operator will be instructed to place the HP in the CAL
PORT. A message displaying “INSERT HANDPIECE INTO CAL PORT” will appear.

When the hand piece has been inserted into the CAL PORT, the operator will be prompted to engage the
trigger to continue. A message displaying “DEPRESS FOOTSWITCH” will appear.
Once the trigger has been activated, the “CALIBRATING” message will be displayed.

Slope Calculation
The correlation between the output energy and input current for the diode lasers being used is fairly linear.
Therefore, the response of the laser over the entire range of operation can be categorized using two slopes. The
two slopes used correspond to the lower and upper portions of the current range and are later utilized to adjust
laser current.

Window Calculation
A calibration is deemed successful when the laser is able to achieve energies within a specific energy range.
The bounds of this window are defined by ±2.5% of the desired energy set on the front panel of the device.

Calibration Process
The calibration process is quite simple. A table exists with currents corresponding to each available output
energy of the laser. Given a calibration has not occurred at a particular energy, a default current value is placed in
the table. When a calibration is initiated the LPS is set to this value.

A calibration attempt consists of two calibration pulses. If the desired energy cannot be achieved within these
two pulses, the software will seek to adjust the current using the last energy obtained. The following equation,
Equation 1, is used to make the adjustment:
(desired energy - last acquired energy)
current adjustment =
calibration slope
Equation 1 – Calibration Current Adjustment

A regular calibration will consist of 3 calibration attempts and 2 current adjustments. If the desired energy
cannot be achieved, the slope will be calculated again and the laser will begin a second iteration of the regular

1010-01-1060 Revision: E4 Candela Corporation PROPRIETARY Page 14 of 33


calibration process. If the laser cannot achieve the desired energy after two full calibration attempts, calibration
will cease and a calibration fault will be indicated to the user.

A successful calibration occurs when the cal port detects two pulses with energies falling inside of the
window. When a successful calibration occurs, a head lock-in value is calculated. All subsequent pulses are
measured against this value to ensure the energy generated by the laser stays within a ±10% range at the head
detector. The head lock-in value is calculated using the mean of the 2 head detector values where the laser
calibrates.
 desired fluence 
head lock - in =   * averaged head (@calibration)
 deliveredfluence(calibrated) 
Equation 2 – Calibration Head Lock-in value

6.7 FAULT PROCESS (INCLUDES WARNINGS)

The Fault Process handles all fault and warning conditions. Warnings are considered problems that occur due to
system errors/malfunctions that can be easily corrected by the operator. Faults indicate system operating outside of
acceptable parameters due to system misuse or malfunction. Persistent faulting will likely require a service call to
correct.

When a fault or warning is detected, the fault process will revert the laser to the Standby State and display the
corresponding message window on the TSDP. The REPLACE CANISTER and the PURGE REQUIRED warning
conditions are displayed with unique message screens. The REPLACE CANISTER message screen includes an OK
command button. Depressing this button clears the fault and removes the message screen. The PURGE REQUIRED
message screen includes a PURGE command button. Depressing this button discharges cryogen from the DCD canister
in order to clear vapor bubbles in the cryogen line. This screen will clear when the bubble is no longer detected.

Faults are displayed with separate message windows displaying the numeric fault code and an OK command
button. If more than one fault exists, the firmware will continuously cycles through each fault and flashes the
corresponding numeric fault code within the fault message window. Depressing the OK command button will clear the
fault(s).

Fault will registered in all cases but no action will be taken when in maintenance mode. When in maintenance
mode, the ignore faults flag disables fault handling. In this case no action is taken by the fault handler and program
control is returned to the point when the fault was detected.
There are three tables that are used in the fault process to log fault occurrences, determine processed faults, and
determine which process must occur after fault is cleared.

§ The Fault Attributes table contains attributes associated with that fault or warning indicating the required system
actions for particular faults. The attributes are warm-up required, and calibration required.

§ The Fault Status table contains flags indicating a fault has been processed. The cyclic operation of the main
control loop results in repeated calls to the fault handler for certain faults. Once a fault has been processed the fault
handler will ignore subsequent occurrences of the same fault until that fault is cleared.

§ The Fault Log contains a event counter for each fault. When a fault is encountered the corresponding counter is
incremented. The counter stops incrementing when 255 event (faults) have been logged. The Fault Log is stored in
non-volatile RAM. The data will be available for inspection via the diagnostic port with a lap-top computer
running the Maintenance Mode Software.

6.7.1 FAULT CHECKING

The check_faults() routine periodically checks for a number of fault conditions. The remaining faults are
checked through out the various routines in the firmware. The point at which each fault is checked in the program
execution is given in Warning and Fault Descriptions below. Whenever a fault is detected in the firmware, the
Fault Handler is called.

1010-01-1060 Revision: E4 Candela Corporation PROPRIETARY Page 15 of 33


6.7.2 FAULT HANDER ROUTINE

The first time a fault is encountered, the fault_handler() routine generates a beep tone to alert the user. It then
sets the fault status flag in the fault_status[ ] table to indicate that the fault has been acknowledged/processed. Next
the fault counter in the nv_fault_log[ ] table is incremented to record the occurrence of the corresponding fault
(max. Count = 255 per fault). Then the fault attributes in the fault_attributes[] table are checked, and the
corresponding system actions are taken (I.E. turn off DCD heater, set cal_required flag, etc.). The system is then
placed in the Standby state, and the fault message box displayed. Finally, the system state is set to Fault, and
program control is returned to the beginning of the main process loop using a longjump operation.

Once a fault has been processed the fault handler will ignore subsequent occurrences of the same fault. Program
control is returned to the calling routine only for faults that have already been processed.
The REPLACE CANISTER and the PURGE REQUIRED warning messages are treated as special cases. None of
the fault tables are used. The beep tone is generated and the unique message boxes are displayed. Program control
is returned to the beginning of the main process loop using a longjump operation.

6.7.3 INTERRUPT CLEANUP


Several Maskable interrupts are used throughout the software to for detection purposes. Some of these
interrupts are required for normal system operation, others are not. Those which are not are typically the time
based interrupt used for check during the pulse routine. Given a fault occurs before time has expired on either of
these interrupts, it is necessary to “clean-up” any remaining non-critical interrupts. This can be accomplished by
clearing all register and timers that will lead to an interrupt.

6.7.4 FAULT DISPLAY


This routine executes periodically within the main control loop when process is set to Fault. It updates the
fault codes displayed in the fault message box in a round-robin fashion.

6.7.5 WARNING DESCRIPTIONS.

REPLACE CANISTER: A replace canister warning will appear when a systems DCD remaining count has
reached 0. Until the can is replaced and the DCD count is refreshed, the replace canister warning will appear
once every 60 seconds.

PURGE REQUIRED: When the DCD is enabled and bubbles are detected in any of the cryogen pulses, a purge
required message will occur. The system will require purging of the cryogen line until bubbles are no longer
detected. Once bubbles are no longer detected while purging, the system will continue.

6.7.6 FAULT DESCRIPTIONS

FAULT 2 (ROM Checksum): Occurs after system power up, when the ROM checksum calculated by the
firmware does not equal the checksum value programmed into the ROM. When this condition occurs, the
software displays the error and denies use of the laser.

FAULT 3 (Shunt Fault): The Smoothbeam implements an electronic laser interlock, the shunt, which must be
enabled in order for the laser to operate. The shunts are checked when the laser is enabled to ensure they have
changed state, during the pulse routine to ensure they are “open”, and periodically in the main loop when not
lasing to ensure they are “closed”. A shunt fault occurs when any of the three shunt status lines returning to the
CPU are in the incorrect state during one of these checks.

FAULT 4 (Current Fault): The current applied to the three diode strings is fed back into three of the onboard A/D
channels of the CPU. This current is measured on the fourth sub-pulse of each pulse sequence and the values
obtained are processed and validated in the pulse analysis portion of the Activate Process. When any of the three
measured currents deviate from the set current by more than ±30%, a current fault is flagged.

FAULT 6 (Calibration Fault) If during the calibration procedure, the laser necessitated more than 2 slope
calculations to calibrate a calibration fault will be flagged. Or if the head lock in value calculated at the
conclusion of a calibration is greater than the Maximum Head Fluence (6.08J), a fault will be flagged.

1010-01-1060 Revision: E4 Candela Corporation PROPRIETARY Page 16 of 33


FAULT 7 (TEC Over/Under Temperature Fault): A TEC over/under fault will occur when the measured
temperature of the diode box falls outside of the established range. An over temperature fault will occur when the
diode box temperature exceeds 30ºC. An under temperature fault will occur when the diode box temperature falls
below 15ºC. These faults ensure the laser is not operated in a condition where it could deliver more energy than
expected or damage itself.

FAULT 8 (DCD Over/Under Pressure Fault): This fault occurs when the DCD system pressure is outside of
normal operating conditions. When the pressure is above 125 psi, the DCD heater duty cycle is set to 0. When
the pressure is below 105 psi and the laser is in ready, an under pressure fault will occur. When either fault
occurs, the system will return to warm-up process and will not exit until the system reaches normal operating
conditions.

FAULT 9 (DCD Warm-up Timeout): DCD is required for all warm-ups. A fault occurs when the system is
warming up and does not reach the required DCD operating pressure at the end of the 45 minute time period. The
DCD duty cycle is set to 0.

FAULT 10 (Hand piece Fault): The system has the ability to determine if either of two hand piece configurations
are valid. The system also has the ability to determine if a valid system is connected at all. If a hand piece is not
recognized when the laser is in the READY state the system will fault.

FAULT 12 (Energy Out of Range): This fault occurs when the system has just fired a pulse in the Ready State and
the active process is READY and the measured Head energy is +-10% from the Head Lock-in value.

FAULT 13 (Trigger switch Fault): While in the Ready state, the firmware will continuously check for the two
trigger switches to be in the same state. This check is performed to ensure trigger switch redundancy. If the
triggers are not in the same state for 25 iterations of the check a fault will occur.

FAULT 15 (Transmission Fault): A transmission fault occurs when the calculated transmission falls below 65%
or exceeds 120% anytime the handpiece is in the CAL Port.

FAULT 16 (Cryogen Delivery Fault): The cryogen verification circuit is a hardware feedback input to the CPU
that is used to determine if the cryogen has been driven correctly allowing the cryogen valve to open. If the
circuit is not driven correctly when this input is checked this fault will be flagged.

FAULT 17 (Pulse Fault): Previously mention in section 6.6, a fourth reading is performed on all sub pulses to
ensure the laser emission has terminated at the end of each sub pulse in a pulse sequence. When an unacceptable
energy reading is detected at the conclusion of a sub-pulse, the pulse fault is flagged.

1010-01-1060 Revision: E4 Candela Corporation PROPRIETARY Page 17 of 33


7.0 SUPPORTING ROUTINES
7.1 MAIN CONTROL LOOP ROUTINE

The Main Control Loop executes a number of periodic routines and delegates control to the selected state.

7.2 INTERRUPT ROUTINES

The firmware utilizes the CPU’s non-maskable COP watchdog reset as well as maskable interrupts: Real Time
Interrupt, SCI 1 (Serial Communication Interface #1), IRQ interrupt, and the interrupts on timer channels 1 and 2.
Highest priority is given to the Real Time Interrupt, all other interrupts follow in priorities assigned in Interrupt Vector
Map, Table 17 of the MC68HC12 technical summary p.49.

7.2.1 Serial Interrupt (MAINTENANCE MODE)


The serial port I/O service routine, serial_int(), supports RS-232 communication between the laser firmware
and maintenance mode software allowing two way communication between laser and maintenance terminal. This
interrupt allows the CPU to communicate at a minimum of 9600 baud.

An internal flag is set when data is shifted into the serial buffer. Data in the buffer is read into RAM at this time.
Initialization of the devices baud rate ensures both data received and data transmitted will occur at the designated
baud rate to limit software overhead.

7.2.2 Real Time Interrupt (RTI)


The Real Time Interrupt service routine, rti_int(), is a periodic interrupt which executes once every
millisecond. It updates the software timer variables, reads the CPU’s digital inputs, and maintains the watchdog
timer. Timer variables can be designated with 1ms, 10ms and 1s update rates. Depending on the application, the
timer may be incremented or decremented by the routine.

A LIFO, last in first out, input buffer (table), input_buf[], is maintained by the routine. It is updated in a every
10ms with the current state of the hardware inputs (digital) from the Laser I/O PCB. The input buffer is used by the
get_input() routine to determine the state of an individual input.

The COP Watchdog Timer is also maintained by this routine. The routine decrements the Foreground Timer
once a millisecond. The Foreground Timer is reinitialized at various points in the firmware during the execution of
the main control loop. Provided that the Foreground Timer has not expired (reached zero), the COP Watchdog
Timer is reset every 10ms by the routine and normal execution continues. In the event that the main control loop
running in the foreground should hang or stop operating correctly, the Real Time interrupt routine would allow the
COP Watchdog Timer to expire. This would result in a non-maskable CPU reset.

7.2.3 Display Update Interrupt


This system implements a PLANAR EL320.240.36 with the EPSON SED 1335 display controller. However,
“The SED133X(5) controllers have a memory arbitration conflict problem with virtually all version of the product. This
conflict occur when the display controller is actively writing to the display and a data write occurs on the host port.”1
This memory arbitration problem manifests itself in the form of noise when data writes occur to the display.
Using the concepts discussed in the Planar document, the decision was made to use the IRQ maskable interrupt of
the CPU in conjunction with a feedback line from the display driver.

The LP data line of the SED 1335 generates a pulse when it is possible to write to the system without causing
any noise. This signal is inverted and fed in to the active low ~IRQ which is triggered on the falling edge of the
signal. Because this interrupt is maskable, it can be enabled when the CPU needs to update the display and
disabled when screen data is not being updated to avoid a high interrupt service density.

Before data is to be written to the display, the interrupt is enabled. Upon execution of the interrupt, a timer is
set with the amount of writable time for the CPU to write data to the display controller. While the timer has not

1
“Interfacing the EL320.240.63 with the SED1335 Controller: Application Note 121-01”, p. 8, Planar System, Inc., 1998

1010-01-1060 Revision: E4 Candela Corporation PROPRIETARY Page 18 of 33


expired, data can be written. Once the timer has stopped, another pulse is required from the controller chip to
enable writing.

The following three Equation 3 - Equation 5 are required to calculate the amount of writtable time.

 FOSC 
 − 1
F *[ L / F] 
[ TC / R] = Refresh
9
Equation 3 – Display Line Length Calculation

[ TC / R] * 9 + 1
Time Required to display line =
f OSC
Equation 4 – Line Display Time

[ C / R] * 9 + 1
Time required to display data =
f OSC
Equation 5 – Data Display Time

For a complete list of write times for various refresh rate frequencies please refer to Appendix A.

7.2.4 Valve Check Interrupt


The Smoothbeam employs a cryogen delivery check used to verify the hand piece valve has opened.
Incorporated into the hardware is a return line from the hand piece that completes the current sense circuitry when
the valve opens. This line is fed back as an input to the CPU. Each treatment pulse is interspersed with 5 cryogen
sprays. Due to the various spray lengths of each dcd setting, the cryogen verification check is to be performed
1ms prior to the end of each DCD spray.
The cryogen valve check is interrupt driven so that it can be performed while
1. Cryogen is spraying,
2. DCD bubble check is being performed.
3. When DCD valve is open regardless of DCD spray duration.
The interrupt is timer based scheduled to occur 1 ms prior to the closing of the hand piece valve. The timer is
initialized when each cryogen spray begins. When the interrupt does occur, the status of the cryogen verification
input pin will be checked 10 times during the interrupt to filter any noise on the line. Because the cryogen spray
length are to short to obtain a reliable input with the get_input function, the input is read directly from the internal
register. If cryogen delivery is not verified, the system will flag a fault to occur, when the system exits the
interrupt routine.

7.2.5 Post-Pulse Interrupt


The post-pulse interrupt routine is implemented to ensure laser emission terminates completely and/or drops
off below an acceptable level when a sub-pulse has concluded. This timer based interrupt is scheduled to occur 2
ms after a sub-pulse has concluded. When DCD is enabled, all sub-pulses are immediately followed by a DCD
spray. An interrupt driven routine allows the check to occur at the same time after each sub-pulse regardless of
DCD spray setting or timing.
The head detector is used to determine if laser emission has terminated or has fallen below a previously
calculated value = 50% of the head lock-in energy at the set fluence. If energy above the acceptable limit is
detected after two sub-pulses in a pulse sequence, a flag is indicated to cause a fault.

7.3 TEC CONTROL ROUTINES

1010-01-1060 Revision: E4 Candela Corporation PROPRIETARY Page 19 of 33


The TE coolers of the Smoothbeam are used to heat and cool the diode box to maintain constant diode operation
temperature of 23ºC. The TE cooler temperature regulation system also includes a fan and baffling to maximize
cooling of the diode box heat sink. It is important for the diode box to stay at ~23.0ºC for the following reasons:
§ Maintain consistency in the energy output vs. current profile.
§ To operate the diode box in low-stress conditions.
As mentioned in Section 5.6.2, control of the TEC is deemed to be more of a background function, due to the
control method of the heaters. TEC temperature is measured and a new control signal is generated twice each second.
TEC temperature control is accomplished using a pulse width modulated (PWM) control signal to the coolers via the
Port T of the CPU. (See Appendix B for more detail). This control method allows more precise control of energy
introduced or removed from the diode box.

TEC Temperature Heater/Cooler State Fan System Status


Range Duty Cycle State
Temp < 10.0°C 0% OFF TEC Ctrl will be disabled until temperature is within spec.
10.0°C < Temp < 15.0°C Automatic OFF TEC will fault at 15.0ºC
15.0°C < Temp < 23.0°C Automatic OFF TEC heating, only if process = warmup, operation normal
23.0°C < Temp < 30.0°C Automatic ON TEC cooling, operation normal
30.0°C < Temp < 35°C Automatic ON TEC will fault at 30.0ºC
Temp > 35.0°C 0% ON TEC Ctrl will be disabled until temperature is within spec.
Table 1: TE Temperature Control

7.3.1 TEC PI calculation


A PI (proportion-integral) algorithm is used to determine the correct control signal to maintain diode box
temperature. This particular PWM system requires a timer to be set to allow the execution of:
§ a calculated duty cycle when TEC control is enabled
§ a set duty cycle when TEC control is disabled .
The duty cycle is calculated by the PI algorithm which requires system variables and set constants as inputs.

Timer Calculation
The timer calculation = (known period of Timer 7, TS) * TEC duty cycle.

Duty Cycle Calculation


The duty cycle is calculated using the error of the TEC temperature from the operating temperature setpoint.
error = TempSetpo int − Temp DiodeBox
PControlSignal = error * Pgain
error sum = ∫ error
I ControlSignal = error sum * I Gain
If the device is in the warm-up phase, the TE duty cycle is calculated using the following equation:
Duty Cycle = PControlSignal + I ControlSignal
Otherwise the duty cycle is calculated using the following equation:
(
Duty Cycle = − PControlSignal + I ControlSignal )
The resulting duty cycle is bound by 0 and 100 because duty cycles cannot be generated outside of these bounds.
If the calculated duty cycle exceeds the bounds, the control signal will be set equal to the exceeded bound. Refer
to Table 1 to determine TEC in heating or cooling mode.

7.4 DCD CONTROL ROUTINES


DCD control is very similar to that of the TE coolers, controlled by a PWM signal to the canister heater. The main
difference between the two are the active controls. The TE coolers can be cooled and heated to regulate the
temperature, however, the DCD canister can only be heated to control pressure. Cooling the canister, and subsequently
lowering pressure, can only be achieved by convection cooling.

1010-01-1060 Revision: E4 Candela Corporation PROPRIETARY Page 20 of 33


DCD PressureRange Heater System Status
State
Press < 25PSI 0.0% no canister installed
25 > Press < 104 PSI 100% canister installed
104< Press < 125PSI Automatic canister installed
Press > 125PSI 0.0 % canister over pressure
Press < 105 PSI Automatic DCD Under pressure
and state = Ready
Table 2: DCD Pressure Control
DCD is set to operate at 110.0 psi with an acceptable operating ranges from 105.0 psi to 125.0 psi. If pressure
fails to stay within the acceptable range a DCD over/under pressure fault is indicated by the software.

7.4.1 DCD PI calculation

Timer Calculation
The timer calculation = (known period of Timer 7, TS) * DCD duty cycle.

Duty Cycle Calculation


The duty cycle is calculation is the same as that of the TEC simply using different coefficients, PGain and IGain,
and a different DCD pressure setpoint.

7.4.2 DCD Pulse Count Calculation


The DCD has a number of pulse settings. A DCD burst is comprised of a number of small cryogen sub-pulses
with pulse lengths varying with the pulse setting. The inability to accurately measure the amount of cryogen
deposited with each sub-pulses requires calculating the per/pulse deposition rate for each DCD pulse setting. This
deposition rate is the average volume of cryogen displaced for a number of pulses. The deposition rate used in
software is this volume converted to grams.

DCD Deposition Rates


(mg/spray)
4mm 6mm
55.8 66.9
69.8 83.6
83.7 100.4
97.7 117.1
114.9 133.8
141.2 167.3
165.1 200.7
192.7 234.2
234.1 284.4

Table 3DCD Dep Rates

The number of remaining DCD pulses is displayed on the main menu GUI is calculated using the deposition
rate and the known weight of a full can of cryogen.
DCDFullCan = Weight FullCan − Re serve _ Weight
-- Equation 6
925.0 g = 1000.0 g − 75.0 g
where the RESERVE_WEIGHT is the weight of liquid cryogen remaining in a canister that can no longer output
cryogen.

1010-01-1060 Revision: E4 Candela Corporation PROPRIETARY Page 21 of 33


Dividing the canister weight by the amount of cryogen deposited per pulse yields the number of remaining DCD
pulses.

Remaining DCD Pulses


Time 4mm 6mm
20ms 16577 13826
25ms 13252 11064
30ms 11051 9213
35ms 9467 7899
40ms 8050 6913
50ms 6550 5528
60ms 5602 4608
70ms 4800 3949
85ms 3951 3252

Table 4-DCD available pulses

7.5 DIGITAL & ANALOG I/O ROUTINES

The A/D ports of the CPU, a four channel 12-bit A/D, and a single channel 12-bit D/A provide the necessary
hardware to measure and generate external analog signals. The 12-bit A/D and the 12-bit D/A devices interface with
the CPU via an SPI type serial interface. PORTAD of the CPU can be configured as an eight channel 8-bit A/D which
provides additional low resolution(8bit) analog inputs. The firmware routines used for the various types of I/O are
described below:

7.5.1 Digital Input Routine

The digital input routine, get_input(), returns the value of individual hardware inputs (digital) from the Laser
I/O PCB. The routine “debounces” the input by performing a logical AND on the last three input samples from
input table, input_buf[]. This table is maintained by the Real Time Interrupt routine. Is updated in a circular
fashion every 10ms with the current input sample. Updating each input allows software to keep an updated record
of the input_status word used by the Maintenance Mode software to indicate the state the system inputs. The state
of each input monitored in maintenance mode is mapped to a bit of the input_status word.

7.5.2 Digital Output Routine

The digital output routine, set_out(), sets the value of individual hardware outputs (digital) for the outputs of
the cpu. The routine also updates the output_status word used by the Maintenance Mode software to indicate the
state of the system outputs. The state of each output controlled in maintenance mode is mapped to a status bit
within the output_status word.

7.5.3 8-bit Analog Input Routine

The 8-bit analog input routine, convert_8bit(), reads the value of individual inputs to the CPU’s analog
converter (Port AD). The desired channel is passed to the routine as an input parameter. The routine writes a
conversion command to the ATDCTL5 CPU register to start the conversion. It then polls on a conversion “done”
flag bit in the ADTSTAT CPU register. When the flag is set, the conversion data is read for the data register. The
routine returns the 8-bit data as an unsigned character data type to the calling routine.

7.5.4 12-bit Analog-Digital Acquire Routine

The 12-bit A/D is used to acquire inputs from the head and cal port detectors. The 12-bit analog input routine,
take_reading(), reads the value of individual inputs of the 12-bit A/D. The desired channel is passed to the routine
as an input parameter. The routine writes a conversion command byte followed by two dummy bytes the SPDR
CPU register. The transmit “done” byte is polled after each byte write. When the flag is set, the SPODR register is
read. The lower 7 LSBs of conversion data are read from the SPODR after the first dummy byte. The upper 5

1010-01-1060 Revision: E4 Candela Corporation PROPRIETARY Page 22 of 33


LSBs of conversion data are read from the SPODR after the second dummy byte. The routine returns the 12-bit
result as an unsigned integer type to the calling routine.

7.5.5 12-bit Digital-Analog Output Routine

The 12-bit analog input routine, set_current(), sets the output current used to drive the diode strings. The
desired output current is passed to the routine as an input parameter. The firmware sets the Chip Select line for the
device low. The routine then writes a conversion command byte followed by two dummy bytes the SPDR CPU
register. The transmit “done” byte is polled after each byte write. When the flag is set, the SPODR register is read.
The data read is ignored. The Chip select line is set high and the output of the D/A changes to the new value. The
routine returns to the calling function.

7.6 MAINTENANCE ROUTINE

The firmware will provide service access via an RS-232 serial port. The maintenance routine serves several purposes.
It can be used externally to control laser systems and set laser variables, monitor internal parameters, and it can also be
used for data acquisition purposes. Service personnel will communicate with the laser using a PC based computer and
proprietary software connected to the laser serial port. The firmware shall allow unabated access to key functions of
the laser for the purposes of troubleshooting and repair. This mode cannot be accessed by the user.

7.7 GRAPHIC USER INTERFACE

The user interface is used to view and change system operating parameters. The user interface consists of a
foreground menu, two sub-menus, message boxes, and a laser variable screen. The pre-defined characteristics of these
objects are stored in data structures within the software.

7.7.1 GUI Overview

Foreground Menu
The foreground menu can be seen in Figure 5 split in two as Foreground Areas 1 and 2.
§ The foreground menu and its corresponding buttons are always present
§ The foreground menu can contain up to 6 buttons
§ Foreground displays system operating state in user-selected language.

Submenu
Available Submenus: Main menu, Option Menu, Laser Variable Menu
§ All submenus appear in the Submenu Area.
§ Sub-menus may contain up to 9 buttons
§ All Messages and bitmaps also appear in the Submenu Area.
§ Message boxes contain information and up to 3 buttons for the user to act upon.
§ Foreground menu buttons are not available during message display.

1010-01-1060 Revision: E4 Candela Corporation PROPRIETARY Page 23 of 33


Foreground
Area

Submenu
Area

Figure 5: Smoothbeam Graphical User Interface

Buttons Decriptions
The button images used in the menus are composed of 3 graphic layers superimposed upon each others.
The 3 layers allows the GUI interface to produce various graphic effects. These effects provide visual
feedback to the user to simulate the actuation of a real button. Audible feedback is also utilized in the form of
a short chirping sound when a button is activated.

There are two types of buttons.


1) MOMENTARY:
When a MOMENTARY button is pressed it is redrawn to simulate a depressed button. When it is
released, it returns to its normal state.

2) GROUP:
When a GROUP button is pressed it is redrawn to simulate a depressed button and the information within
the button face is inverted. Other buttons contained in the predefined group are drawn as released and not
inverted.

3) TOGGLE:
Toggle buttons allow the selection of one state of binary state variable used to control a laser function.
The buttons couple the logic state of the button with an ICON. When pressed, the state and ICON of the
button will change.

Buttons can have various behaviors associated with them.


1) NORMAL:
The buttons function will be activated upon detection. The button must be released and pressed again
before its function can be reactivated.

2) LONG:
Requires user to press and hold the button for a predetermined time before it will be activated.

3) AUTO-REPEAT:
Once the buttons function is activated it will be repeated at a predetermined repetition rate until the user
releases it.

4) EXTENDED:

1010-01-1060 Revision: E4 Candela Corporation PROPRIETARY Page 24 of 33


Is different than a long, but operates on the same concept. If an extended button is pressed continuously
for 3 seconds it will vector to one function via the used of a flag. If it is released before the extended
period is complete, another function will be vectored to.

The service_gui() routine controls all the primary periodic functions of the GUI including button scan and
detection, calling button redraw routines, updating and monitoring parameters displayed within the buttons,
and vectoring to functions associated with button presses.

7.7.2 TS Calibration
The TS Calibration routine allows the calibration of software parameters to increase the accuracy of the
mapping of the TS overlay with the display. The routine is entered automatically when the laser is powered on if
no TS calibration parameters exist in BBRAM or if the parameters stored in BBRAM are out of range. The
routine is also accessible from a button located on the laser variable menu.
The TS is calibrated and verified by a series of touches to the TS within specified regions designated by boxes
drawn on the display. The size and location of the calibration boxes and the tolerances of the verification boxes
are all pre-defined.

% displacement
(x+)

% displacement(y+) P2

P1
% displacement(y-)

% displacement
(x-)

Figure 6: TS Calibration

The calibration requires 2 touches in order to determine the calibration values to proceed with the
pixel_value calculation. The user will be instructed to touch the center of a box, with a small blunt-tipped
object. This box will then disappear and the user will be instructed to touch the center of another box
appearing in the opposite corner of the screen.
The position where the boxes will be displayed will be determined by a %displacement value for both the
x and y axes of the LCD. The %displacement is a percentage distance from the center of the screen in both the
x and y directions.
With the data acquired from the 2 points of the TS calibration, we can calculate the calibration values that
will be used later for determining all pixel_valuesxy

It is possible to calibrate the touch screen incorrectly, by not touching within the calibration boxes or a
faulty touch screen. In order to determine the correct values have been calculated a calibration verification
section has been created. Two verification boxes will be drawn following the completion of the ts_calibration
phase. The verification boxes will be drawn at predetermined positions on the screen. The following
conditions must be met in order for a calibration to be verified:
§ A touch of a verification box will be sampled X number of times.

1010-01-1060 Revision: E4 Candela Corporation PROPRIETARY Page 25 of 33


§ For each sample obtained, the pixel_value will be calculated in both x and y directions. The
calculated value must be within the bounds of the center of the validation box ± a window value. The
window value = percent of Max_x or Max_y
§ To successfully verify the TS calibration, for all samples taken in both x and y axes, a percentage of
these values must be within the bounds of the window.

In order for a verification to be successful, both verification boxes must be properly verified. If a touch
screen verification process cannot prove a touch screen calibration successful, default values will be loaded
and used to allow laser use.

1010-01-1060 Revision: E4 Candela Corporation PROPRIETARY Page 26 of 33


7.7.3 GUI Foreground Layout
Foreground Layout
The following describes Command Buttons displayed on the upper portion of the foreground menu.

BUTTON TYPE (GROUP#) BEHAVIOR


STANDBY GROUP (1) NORMAL
READY GROUP (1) NORMAL
CAL MOMENTARY NORMAL
NEXT MOMENTARY EXTENDED
Table 5: Foreground Buttons
STANDBY - Allows the user to put the laser into the STANDBY State.
READY - Allows the user to put the laser into the READY State.

The following describes Command Buttons displayed on the lower portion of the foreground menu.

CAL - Allows the user to initiate a calibration procedure.


NEXT - Allows the user to enter Option menu from Main Menu. If the option menu is the current menu
and the extended feature is used, Laser Variable screen will show up.

The bottom foreground menu is removed and replaced by a message when the laser is pulsing. The laser
displays “LASING” as an additional indicator given the audible signal were to fail. When lasing ceases or a
fault is indicated, the standard foreground menu is updated.

7.7.4 GUI Submenu Layout

Main Submenu
The following describes Command Buttons displayed on the main submenu.
BUTTON TYPE (GROUP#) BEHAVIOR
FLUENCE GROUP (1) NORMAL
DCD SPRAY GROUP (1) NORMAL
UP ARROW MOMENTARY AUTO-REPEAT
DOWN ARROW MOMENTARY AUTO-REPEAT
EXTENDED
PULSE COUNT MOMENTARY LONG
DCD CANISTER MOMENTARY LONG
Table 6: Main menu Buttons
FLUENCE - Allows the user to view/select the fluence value.
DCD Spray - Allows the user to view/select the spray duration value. Set duration to zero
to disable DCD.
UP ARROW - Allows the user to increment the selected parameter..
DOWN ARROW - Allows the user to decrement the selected parameter
DCD CANISTER - Allows the user to view/reset the Canister Count.
PULSE COUNT - Allows the user to view/reset the Pulse Count.

1010-01-1060 Revision: E4 Candela Corporation PROPRIETARY Page 27 of 33


The following laser operating parameters are adjusted via the TSDP:
1) FLUENCE J/cm2 (energy density)
FLUENCE parameter shall continue to increment or decrement within the specified limits:
HANDPIECE MINIMUM MAX IMUM CONDITIONS
FLUENCE FLUENCE
4mm 8 20 DCD Setting > 0
8 25 DCD Setting = 0
(Ablation Mode)
6mm 4 14 DCD Setting > 0
DCD Setting = 0
(Ablation Mode)-
Table 7: Fluence Settings
2) DCD SPRAY SETTING
The DCD spray setting can be set from selected values of 0 to 85ms. The available settings are:
0,20,25,30,35,40,50,60,70,85. When the DCD spray setting is 20ms, an extended hold of the down button
allows the user to enter ablation mode (DCD setting 0). A message will appear with a verification button
allowing the DCD to be shut off.

3) PULSE COUNT
The firmware displays the number of treatment laser pulses delivered. When the laser is turned on, the
value is reset to 0. The user can also manually reset this value at any time when the system is on by
pressing the command button.

4) CANISTER COUNT
The firmware displays the number of DCD pulses remaining in the canister. This value is calculated
based on the remaining canister volume and the present value of the SPRAY parameter. The firmware
stores the canister volume value in battery backed RAM. This value can also be reset to the maximum
canister value at any time. This action will initiate a warm-up.

Option Submenu
The following describes Command Buttons displayed on the Option submenu.
BUTTON TYPE (GROUP#) BEHAVIOR
PULSE MODE TOGGLE NORMAL
PURGE MOMENTARY LONG
LANGUAGE UP MOMERTARY REPEAT
LANGUAGE LABEL N.A. -----------
LANGUAGE DOWN MOMENTARY REPEAT
Table 8: Option Menu Buttons

PULSE MODE SELECT - Allows selection of Pulse Modes: SPM, MPM.


PURGE - Allows the user to pulse a DCD test pulse sequence.
LANGUAGE UP ARROW - Increments the operation language to the next available language.
LANGUAGE DOWN ARROW - Decrements the operation language to the next available language.
LANGUAGE LABEL - Displays language name in that language.

Laser Variable Menu


Laser variable mode is entered by an extended press to the NEXT button when the Option menu is active. The
laser variable menu allows the user to monitor critical system parameters without having to enter maintenance
mode. The following variables are displayed in a grid in the submenu area:

BUTTON TYPE (GROUP#) BEHAVIOR


TS CALIBRATION MOMENTARY NORMAL
Table 9: Laser Variable Menu Buttons

1010-01-1060 Revision: E4 Candela Corporation PROPRIETARY Page 28 of 33


TS CALIBRATION - Enters the TS calibration routine.

Laser Revision
Set Fluence (J/cm2) LPS Current (A)
Last Head Detector Reading ( J ) Last Cal Detector Reading ( J ) Transmission ( % )

DCD Pressure (PSI) TEC Temperature ( C )

Diode Pulses
System Pulses
Table 10: Laser Variable Mode Display Output
Messages
All message buttons are MOMENTARY type with NORMAL behavior. These buttons appear when a message
replaces the displayed submenu. The buttons exist to clear a message or to verify acknowledgment of the message
displayed.

1010-01-1060 Revision: E4 Candela Corporation PROPRIETARY Page 29 of 33


APPENDIX A. DISPLAY REFRESH RATE CHARACTERISTICS
[TC/R], a register value of SED 1335 is used to determine the refresh rate of the display. This following table, Table 11,
is based on the desired refresh rate of the display and determines:
§ [TC/R]
§ Time Required to service each line of the screen at respective refresh rate.
§ Amount of writable time by the HC12 to the display at each refresh rate.
For these calculations the following is assumed:
§ Display chip oscillator frequency, fOSC = 10.0 MHz
§ [C/R] register value = 40
§ L/F = 240

It is important to note that refresh rated below 45Hz will appear to be dim and may appear to flicker.

Display Refresh Line Write Time Writtable Time Access Ratio


Rate (Hz) [TC/R] (µs) (µs) (%)
40 115 103.6 67.70 65.34
41 112 100.9 65.06 64.48
42 110 99.1 63.04 63.61
43 107 96.4 60.49 62.74
44 105 94.6 58.54 61.88
45 102 91.9 56.07 61.01
46 100 90.1 54.19 60.15
47 98 88.3 52.34 59.28
48 96 86.5 50.53 58.41
49 94 84.7 48.74 57.55
50 92 82.9 46.99 56.68
51 90 81.1 45.26 55.81
52 88 79.3 43.57 54.95
53 87 78.4 42.40 54.08
54 85 76.6 40.76 53.21
55 84 75.7 39.63 52.35
56 82 73.9 38.04 51.48
57 81 73 36.95 50.62
58 79 71.2 35.42 49.75
59 78 70.3 34.36 48.88
60 77 69.4 33.32 48.02
61 75 67.6 31.87 47.15
62 74 66.7 30.87 46.28
63 73 65.8 29.88 45.42
64 72 64.9 28.91 44.55
65 71 64 27.96 43.68
66 70 63.1 27.02 42.82
67 68 61.3 25.72 41.95
68 67 60.4 24.82 41.08
69 66 59.5 23.93 40.22
70 66 59.5 23.41 39.35
71 65 58.6 22.55 38.49
72 64 57.7 21.71 37.62
73 63 56.8 20.88 36.75

1010-01-1060 Revision: E4 Candela Corporation PROPRIETARY Page 30 of 33


74 62 55.9 20.06 35.89
75 61 55 19.26 35.02
76 60 54.1 18.48 34.15
77 60 54.1 18.01 33.29
78 59 53.2 17.25 32.42
79 58 52.3 16.50 31.55
80 57 51.4 15.77 30.69
81 57 51.4 15.33 29.82
82 56 50.5 14.62 28.96
83 55 49.6 13.93 28.09
84 55 49.6 13.50 27.22
85 54 48.7 12.84 26.36
86 53 47.8 12.18 25.49
87 53 47.8 11.77 24.62
88 52 46.9 11.14 23.76
89 51 46 10.53 22.89
90 51 46 10.13 22.02
91 50 45.1 9.54 21.16
92 50 45.1 9.15 20.29
93 49 44.2 8.59 19.42
94 49 44.2 8.20 18.56
95 48 43.3 7.66 17.69
96 48 43.3 7.29 16.83
97 47 42.4 6.77 15.96
98 47 42.4 6.40 15.09
99 46 41.5 5.90 14.23
100 46 41.5 5.54 13.36
101 45 40.6 5.07 12.49
102 45 40.6 4.72 11.63
103 44 39.7 4.27 10.76
104 44 39.7 3.93 9.89
Table 11: Display Writtable Time with Refresh Rates

1010-01-1060 Revision: E4 Candela Corporation PROPRIETARY Page 31 of 33


Writtable Time vs Refresh Rate

200.00

180.00

160.00

140.00
Writtable Time (us)

120.00

100.00 Access Ratio

80.00

60.00

40.00

20.00

0.00
0 20 40 60 80 100 120
Refresh Rate (Hz)

Graph 1: Display Writtable Time vs. Display Refresh Rate

1010-01-1060 Revision: E4 Candela Corporation PROPRIETARY Page 32 of 33


APPENDIX B. PULSE WIDTH MODULATION WITH THE HC12
Pulse width modulation (PWM)allows control of the output power of a system with only on and off states. This is
accomplished by creating a duty cycle: manipulating the percentages of system on-off time with respect to a standard
period, TS. A pulse width modulated system can easily be created using the output compare capabilities and the timer
capabilities of the 68HC12.
This is accomplished using the timer registers of the HC12 in conjunction with I/O lines of PORTT. For this
application it is necessary to enable the output compare capabilities of the HC12 with selected I/O lines of PortT. The
architecture of the HC12 allows synchronization of the state changes of all selected lines on PortT with a successful output
compare of channel 7 timer. These actions are independent of the output compare actions selected to occur with the pins
and their respective timers.
Timer channel 7 is set up so that a successful output compare will occur when the timer overflows, i.e. 16-bit count
equals 0. This will be considered the beginning of a standard period, TS. At this point, all selected output pins will be set to
a high state, timer 7 event of Figure 7. Each I/O line being used for PWM will have an associated timer. When a successful
output compare occurs for the respective timer, one of the following actions will occur:
§ Toggle of output line.
§ Line set Low.
§ Line set High.
§ No action.
To accomplish what we are trying to do requires the inputs being pulled low state when the second timer expires, Timer
events 5 & 6 of Figure 7. The set duty cycle will remain unchanged until the timers are changed or output compare is
deactivated.
Timer 7 Event

TS

Timer 6 Event
TC7

1
Timer 5 Event
TC6

TC5

% Time
0% 50% 100%

Figure 7: Output Compare Events


The following internal registers are used to initiate PWM.
§ TIOS – allows corresponding pin on PortT to be set as Output compare.
§ OC7M –allows corresponding pins to be changed on a channel 7 output compare
§ OC7D – if set up, bits take the value assigned to them in this register when a channel 7 output compare occurs.
§ TCTL1 & TCTL2 – set action to occur when output compare occurs on timer associated with pin.
§ TCNT – 16-bit System timer.
§ TCx – When TCNT = TCx an output compare will be “successful” and channel will perform action specified
by TCTLx.

The values TCx’s should be set to are determined by the percentage results generated by a separate calculation.

1010-01-1060 Revision: E4 Candela Corporation PROPRIETARY Page 33 of 33


DIODE LASER

FIRMWARE REQUIREMENTS SPECIFICATION

May 7, 2002

CANDELA CORPORATION
530 BOSTON POST ROAD
WAYLAND, MASSACHUSETTS 01778-1883

1010-06-1060 Revision: E4 Candela Corporation PROPRIETARY Page 1 of 9


1.0 PURPOSE........................................................................................................................................................................................... 3

2.0 DEFINITIONS ................................................................................................................................................................................... 3

3.0 REFERENCES................................................................................................................................................................................... 3

4.0 PRODUCT DESCRIPTION ............................................................................................................................................................. 3


4.1 PRODUCT CONCEPT................................................................................................................................................................. 3
4.2 CONTROL SYSTEM FIRMWARE............................................................................................................................................ 4
4.3 CONSTRAINTS.......................................................................................................................................................................... 4
4.4 ASSUMPTIONS AND DEPENDANCIES ................................................................................................................................. 4
5.0 DETAILED REQUIREMENTS ....................................................................................................................................................... 5
5.1 SYSTEM STATES ....................................................................................................................................................................... 5
5.1.1 System Initialization ........................................................................................................................................................... 6
5.1.2 STANDBY State ............................................................................................................................................................... 6
5.1.3 READY State...................................................................................................................................................................... 6
5.1.4 FAULT State ..................................................................................................................................................................... 7
5.2 USER INTERFACE ........................................................................................................................................................................... 7
5.2.1 Inputs ................................................................................................................................................................................. 7
5.3 OUTPUTS DISPLAYED .................................................................................................................................................................... 8
5.4 DCD CONTROL............................................................................................................................................................................. 8
5.5 MONITOR SYSTEM SAFETY COMPONENTS .................................................................................................................................... 8
5.6 MAINTENANCE MODE................................................................................................................................................................... 8
5.6.2 Windows Maintenance Mode (Win Maint) ....................................................................................................................... 8
6.0 FAULTS AND WARNINGS ........................................................................................................................................................... 9

1010-06-1060 Revision: E4 Candela Corporation PROPRIETARY Page 2 of 9


1.0 PURPOSE

The purpose of this document is to define the requirements of the Smoothbeam. The firmware for this laser will be designed to deliver
and calibrate the selected fluence settings, control system functions, and provide user interface functions. The firmware will be used
to control internal parameters to monitor and maintain proper operation characteristics.

The intended audience for this document include the following:


• Marketing
• Engineering
• Regulatory Affairs
• Clinical Research
• Quality Assurance
• Field Service
• Manufacturing

2.0 DEFINITIONS

The following are definitions of terms and acronyms used in this document:
CDRH: Center for Devices and Radiological Health
DCD Dynamic Cooling Device
TEC: Thermoelectric Cooler
ROM: Read Only Memory
RAM: Random Access Memory
LPS: Laser Power Supply
UI: User Interface

3.0 REFERENCES

The following reference document was used in the development of this requirement:
• CANDELA Firmware Standard Operating Procedure
• Smoothbeam Engineering Design Specification

4.0 PRODUCT DESCRIPTION

4.1 PRODUCT CONCEPT

The Smoothbeam laser is a 1450nm diode based medical laser, controlled by an embedded processor for general
dermatological use. The system is comprised of a laser power supply LPS, laser diode box, associated optics, energy
detectors, a display with touch screen interface, and control electronics. The user interface UI consists of a control panel
located on the exterior of the laser. Allowing the selection of system operating parameters. These and other instruction sets
are processed and performed by the 68HC12 microprocessor.

The laser system utilizes Dynamic Cooling Device(DCD) to balance the effects of lasing. Short bursts of cryogen spray are
delivered in conjunction with the laser pulse to achieve this joint effect. The cryogen is delivered via a hose to a nozzle
located inside of the delivery system. The optical delivery system will focus a 4mm circular beam onto the skin via an optical
fiber.

The laser has the ability to calibrate the output energy of the delivery system to the fluence level selected by the operator.
Once the energy has been calibrated, the laser can deliver a single pulse burst or deliver continuous pulse bursts at rate of one
pulse per second. The pulse sequence consists of a fixed 210 ms laser on time interspersed with cryogen spray of variable
lengths, resulting in a laser/DCD pulse of 225 – 310 ms in duration. The output energy is controlled by the laser power
source and monitored by both the calport and head detectors.

1010-06-1060 Revision: E4 Candela Corporation PROPRIETARY Page 3 of 9


4.2 CONTROL SYSTEM FIRMWARE

The System Firmware seeks to accomplish the following tasks:

§ Initialization at power-on of all hardware into a known safe initial state.


§ Verification of memory (see section 5.1).
§ Control all System States & sub-processes (see section 5.2):
§ STANDBY
§ WARMUP
§ READY
§ CALIBRATE
§ ACTIVATE
§ FAULT

§ Maintain a User Interface(UI) via a control panel located on the laser exterior. The UI will allow the operator to select
the user adjustable parameters of the system. The interface will also be used to convey faults, warnings, and system
status to the user (see section 5.3).

§ Calibration, monitoring, and delivery of laser energy (see section 5.2.4) .

§ Control of DCD pressure and TEC temperature critical to system operation (see sections 5.4, 5.5).

§ Control and monitoring of system safety interlock components (see section 5.5).

§ Interface with a maintenance mode for service and in-house personnel that allows control of the laser components to
determine a system operating states (see section 5.6).

§ Handle all controllable conditions where the system is not operating within “normal” parameters.

4.3 CONSTRAINTS

The following constraints shall be imposed on the firmware design:

§ The firmware prevents laser output while the trigger switch is not being depressed.
§ A hardware interlock prevents laser operation if the remote CDRH interlock is not inserted.
§ The firmware program shall be written in the C language, using assembly language only where absolutely necessary, to
allow for easier firmware maintenance.
§ The microprocessor is a Motorola MC68HC12 family component.
§ The firmware program will be compiled, assembled, and linked using Cosmic Software’s C Cross Compiler for Motorola
MC68HC12.
§ The firmware program will be programmed into an EPROM with a 256 Kbytes maximum amount of program memory
(ROM).
§ The ROM (supplies on a removable circuit board) will be programmed at CANDELA and installed by Candela or the
user.
§ The maximum amount of external memory (RAM) available shall be 32 Kbytes (non-volatile). This external memory
will be partitioned to hold non-volatile variables, temporary variables, and stack information in separated regions of
memory.
§ Battery backed system parameters and calibration data used by the firmware shall be stored in the non-volatile sector
of RAM.

4.4 ASSUMPTIONS AND DEPENDANCIES

The following assumptions shall be used in designing the firmware:

§ A laser output pulse can be triggered only by depressing the trigger switch which will be a pneumatic footswitch.
§ Only one type of optical fiber will be available.
§ The operator will not use the system in an manner inconsistent with intended use and will comply with directions
displayed by the UI and the instruction manual.

1010-06-1060 Revision: E4 Candela Corporation PROPRIETARY Page 4 of 9


5.0 DETAILED REQUIREMENTS

5.1 SYSTEM STATES


The laser system shall have 3 States: STANDBY, READY, & FAULT.

• After system power on and initialization the laser will enter into a STANDBY state.
• A detailed state chart describing the interaction of the three states and state sub-processes is provided in figure1.
§ System control and monitoring will take place periodically regardless of system state.

SmoothBeam State Diagram

INITIAL

ROM CheckSum
System Initialized Failure
CheckSum Pass

Non-Recoverable Fault
System Requires Service
Fault Cleared FAULT

Warmup State
Timeout

WARMUP CALIBRATION ACTIVATE

Warmup Succesful Cal Complete

Warmup
Required
Calibration Not Required
& Trigger activated
Calibration Required
&Trigger activated
Process = CAL Trigger Released

STANDBY User Input READY


Ready State Timeout
User Input
Figure 1: Smoothbeam State Diagram

1010-06-1060 Revision: E4 Candela Corporation PROPRIETARY Page 5 of 9


5.1.1 System Initialization

When power to the system is turned on, the firmware shall execute the following:
§ System Power On Initialization
§ Power is applied to the system resetting all system hardware to a known non-lasing state via the firmware.
§ System Diagnostics:
§ Checksum verification of all ROM is performed. If the calculated value does not = value in memory, a fault will
be indicated.
§ RAM Validity Tests:
§ Check that the software version has not changed from previously stored value. This is used as an
indication that memory was corrupted or the firmware has been changed. If it has, all non-volatile data
except System Total Pulse count and the canister weight are cleared or set to a default value.
§ Check that critical variables are within bounds. If not, then set to save default values.
§ Check that TS value exist and are in range, if not cal TS calibration routine
§ Set initial system state to STANDBY

5.1.2 STANDBY State


The firmware shall perform as follows when entering the STANDBY state:
§ Set the laser to the STANDBY state.
§ Indicate the system state as “STANDBY” via the UI.
§ Activate the LPS interlock preventing accidental laser emission.
§ Ensure laser is disabled, and lasing is off.
§ Allow interface to change user settings.

Standby Sub-processes
1. The firmware shall perform the following while the STANDBY process is executing:
§ Set calibration flag requiring calibration if either calibration timer has expired
§ Maintain system screen.

2. The firmware shall perform the following while the WARMUP process is executing:
§ The warm-up process is a mini-state machine which executes instructions sets dependant upon the warm-up
state.
§ The cryogen pressure will be periodically monitored. As pressure increases the warm-up status percentage bar
will increase accordingly.
§ Warm-up will complete when both TEC temperature and DCD Pressure have come within the proper range.
§ Upon completion of WARMUP the unit reverts to the STANDBY process.

5.1.3 READY State

The firmware shall perform as follows when in the READY state:


§ Set the laser to the READY state
§ Indicate the system state as “READY” via the UI.
§ As a safety precaution, delay two seconds after the laser has entered the READY state before setting the LPS.
§ LPS only set if calibration is not required.
§ As a safety precaution, if the laser is in the READY and laser output has not be generated within the last 2 minutes, the
system will return to the STANDBY State automatically (READY state timeout).
§ Trigger source will be monitored.
§ When a valid trigger source is detected the ACTIVATE or CALIBRATION process will be executed dependant
upon the status of the cal required flag.
§ If the laser is enabled, it will be disabled when either of the following conditions:
§ Laser exits ACTIVATE process in Single Pulse Mode.
§ Laser is in multi-pulse mode and the footswitches are no longer engaged.

Ready Sub-processes
1. The firmware shall perform the following while the CALIBRATION process is executing:
§ Initialize calibration variables and prompts the user to place the hand piece in the CAL PORT if not already
inserted. Followed by prompt to depress the footswitch.

1010-06-1060 Revision: E4 Candela Corporation PROPRIETARY Page 6 of 9


§ LPS current is set to the last current used at selected fluence, laser is enabled.
§ Laser pulses into calport when footswitch is depressed and automatically adjusts current to achieve ±2.5% of
desired fluence.
§ If the hand piece is removed, pulsing will cease immediately and the user will be prompted to place the hand
piece back into the CAL PORT.
§ When the laser has been calibrated to produce the desired fluence, pulsing ceases and user is prompted to
remove the handpiece from the calport and release the trigger.

2. The firmware shall perform the following while the ACTIVATE process is executing:
§ Laser shunts are opened:
§ Before each pulse in Single Pulse Mode.
§ Before a pulse sequence in Multi-Pulse Mode.
§ If trigger is still activated, the lasing/DCD sequence begins, otherwise the pulsed flag will not be set.
§ Enables laser emission for a set time period and verifies that emission has ended when the time period expires.
§ Deliver pulses at a rate of up to 1Hz when the trigger switch is continuously depressed.
§ Update system and treatment counters as necessary.

5.1.4 FAULT State

1. The firmware shall perform as follows when in the FAULT state:


§ Set the laser to the fault state.
§ Informs user of fault condition via UI.
§ Takes appropriate action to return the laser to a non-lasing state so that the fault condition does not result in
personal injury or damage to the laser.
§ Laser and Cryogen emission stop immediately upon completing a pulse if the fault is not a cryogen fault.
§ System disallows further emission until the user corrects the problem (if possible) and clears the fault via the UI.
§ When a fault condition is cleared the system reverts to the STANDBY state.
§ If the system is in maintenance mode, faults will be ignored, and the system will continue running.
§ Section 6.0 outlines the possible fault conditions.

5.2 User Interface


5.2.1 Inputs
The firmware shall acquire operator input by monitoring the control panel for button presses.

The following buttons will be on the control panel:


STANDBY: Places the unit in STANDBY state.
READY: Places the unit in READY state.
FLUENCE SELECT: Used to adjust the fluence -
4mm delivery system = 8 to 25 J/cm2 in 1 Joule increments.
6mm delivery system = 4 to 14 J/cm2 in 1 Joule increments
DCD SPRAY SELECT: Used to adjust the DCD spray parameters.
UP/DOWN : Used to adjust variable parameters.
CALIBRATE: Causes the system to begin energy calibration.
PULSE COUNT: Displays pulses counted and resets the treatment pulse counter.
NEXT SCREEN: Allows access to options menu and laser variable mode.
DCD COUNT: Resets the DCD counter (# of pulses of cryogen available).
PURGE: Opens the DCD delivery valve to purge the cryogen line.
PULSE MODE SELECT: Toggles laser between single pulse and multi-pulse mode.
TS CALIBRATION: Will enter TS calibration routine.
FAULT OK: Will acknowledge user awareness of system fault conditions

1010-06-1060 Revision: E4 Candela Corporation PROPRIETARY Page 7 of 9


5.3 Outputs Displayed
The following information will be provided via the control panel:
§ Fluence setting.
§ Status (READY or STANDBY).
§ DCD spray pattern selection.
§ DCD canister count (if external DCD unit connected).
§ Number of treatment pulses.
§ Laser Pulse Mode

5.4 DCD Control


§ Firmware will control an electrical heater to achieve and maintain a consistent cryogen pressure of 110 p.s.i.
§ Cryogen will be dispensed as needed during pulse or purge by controlling an electronic valve in the cryogen delivery
system.
§ When cryogen valve is active firmware will monitor cryogen air bubble content and fault when bubble content is
excessive.
§ Purging of cryogen delivery system will be activated at prompt of operator.
§ Will verify cryogen delivery.

5.5 Monitor System Safety Components


§ Firmware will monitor:
§ diode box internal system temperature and will control the TE coolers as necessary to keep internal heat sink temperature
at 23° Celsius.
§ To maintain proper diode temperature, the TE cooler will be controlled by a PID algorithm to allow accurate heating
and cooling of TEC unit as required.
§ The TE coolers will only be put into heating mode when the system is in the warm-up process.
§ CAL PORT switches to insure hand piece is in CAL PORT when needed.
§ Hand piece detect circuit.

5.6 Maintenance Mode


5.6.1 Laser Variable Mode
§ The firmware will allow viewing of critical system parameters in Laser Variable Mode. The Laser Variable mode is
accessed from the option menu by holding down the next screen button for an extended period of time. The purpose of
Laser Variable Mode is to allow over the phone system diagnostics with service personnel. No critical parameters can
be changed in this mode by the user.

5.6.2 Windows Maintenance Mode (Win Maint)


§ The firmware will provide service access via an RS-232 serial port. Service personnel will communicate with the laser
using a PC based computer running proprietary software. The interface will be through serial connection of the PC and
laser units. The firmware shall allow unabated access to key functions and variables of the laser for the purposes of
repair and troubleshooting. This mode cannot be accessed by the user.

1010-06-1060 Revision: E4 Candela Corporation PROPRIETARY Page 8 of 9


6.0 FAULTS AND WARNINGS
WARNING MESSAGE DISPLAYED DETERMINATION CRITERIA
REPLACE CANISTER The DCD pressure is below 105psi. This warning only occurs when the system in the
Ready state and the DCD is on. Press the OK command button to clear warning message.
Message will appear once every minute until DCD canister count is returned to full count.

PURGE REQUIRED There are bubbles in the cryogen tubing. This usually occurs when a canister is empty or
when a new canister has been installed. Press the PURGE command button to clear
bubbles.

FAULT FAULT MESSAGE DISPLAYED DETERMINATION CRITERIA


NUMBER
F2 ROM CHECKSUM Check Sum Calculation at startup does not match checksum value in memory
location.

F3 SHUNT FAULT
Shunt Status hardware indicates shunts are not in correct state.

F4 CURRENT FAULT
Diode current not within 30% of set current during laser pulsing.

F6 CALIBRATION FAULT Occurs when laser cannot achieve energy after 2 full calibration attempts. Or
head detector lock-in values is greater than 6.08 J.

F7 TEC TEMPATURE OUT OF RANGE If TEC temperature is less than minimum value or greater than maximum value
while in ready.

F8 DCD OVER/UNDER PRESSURE


DCD Pressure has fallen below minimum value & dcd remaining does not = 0.
DCD pressure has risen above maximum permitted value.

F9 DCD WARMUP TIMEOUT DCD fails to come out of warm-up in given time period DCD warm-up time
period.

F10 HP FAULT Hand piece is not connected. Fault indicates malfunction of hand piece circuitry
or cabling.

F12 ENERGY OUT OF RANGE Head energy is not within +-10% of set calibration energy. Energy measured
when treating.

F13 TRIGGER MALFUNCTION


While in ready state, one footswitch is high while the other has been released.

F15 TRANSMISSION FAULT Transmission is < 65% or > 120%.

F16 CRYOGEN DELIVERY FAULT


CPU fails to detect cryogen delivery circuit when pulsing and delivering cryogen
or purging.

F17 POST-PULSE ENERGY FAULT The HD detector measured > 50% of the expected Head Energy after the pulse
was completed. It should be 0.

1010-06-1060 Revision: E4 Candela Corporation PROPRIETARY Page 9 of 9

You might also like