The following script format is associated with the release of 7.X firmware. 


Note:  Modifications to the script format in 2020/2021 have been made including the additional DMX RampX attribute, DMX duration at a 1ms resolution, a two-row header, and other optional column changes.  


 For FTH hardware associated with 6.5 and earlier firmware use the original fireTEK script - details are here:  Original fireTEK Script


7.X Firmware fireTEK Script Details

The new fireTEK script has a two-row header and up to 12 columns of data.  The following table is an example script to show the function of each data value of the script.



When used by the fireTEK system, the script is loaded as a comma-separated value file or *.csv file.  The new file consists of a 2-row header record that provides the name of the script and defines each value separated by commas in the script.  Each additional row or line is a separate record or scripted command. 


Note:  When manual converting existing files to the new format, please ensure to create the two-row header for the new format.   See also DMX RampX details below.


For simple steps to convert existing scripts to the new 7.X script format see the following article: Convert Existing Scripts to the 7.X Format  


The following is the above table in CSV format: 


##fireTEK FTQ Example,,,,,,,,,,,

Module ID,Rail,Channel,Time,Sequence,DMX Value,RampX,Duration or Rate,Position,SafetyZone,Channel Name,Sequence Name

1,1,8,5000,0,0,0,0,0,1,Meteor,Show

1,2,3,6000,1,0,0,0,1,1,Shell,Intro

1,1,117,10000,0,110,0,0,5,2,PAR,Show

1,1,117,20000,0,200,2,5000,5,2,PAR,Show

1,1,117,30000,0,255,2,2000,5,2,PAR,Show

1,1,117,47500,0,150,1,5000,5,2,PAR,Show

1,1,101,55000,0,200,3,10000,4,2,GOBO,Show

1,1,101,80000,0,50,4,6,4,2,GOBO,Show


The Header - Row One


The first line of the Header provides the Project or Script Name, which will appear on the module screen when loaded by the USB C drive.   


The Project Name must be preceded by “##” to be read by the system.



Note:  The CSV file name must be simply “script.csv”  when loaded on the FTQ module via USB thumb drive.


The Header - Row Two

The second line or row of the script provides the column or value definitions of the script.  The first eight values are recommended for a script.  The 9th, 10th, 11th, and 12th value are optional, but are all required if any of the options are used in the script. 


Minimum Required for pyrotechnic channels:    


Module ID, Rail, Channels, Time Duration


Minimum Required for DMX: 


Module ID, Rail, Channels, Time, Sequence, DMX Value, RampX, Duration


Additional Optional Columns:    


Position, SafetyZone or Caliber, Channel Name, Sequence Name




Tips for Success with the new fireTEK Script 

  • With the release of the FTQ modules and the two lines or rows in the Header, the actual event script starts at line 3 (see following section).  The previous versions of the script still used for the FTH modules only had one header line and the actual event script started at line 2.  
  • When loading the newer 2-line header script  to an FTH module, the newer fireTEK computer software, fireTEK android software, and fireTEK remote firmware released with the FTQ module will automatically adjust the script when uploading to the FTH modules. 
  • Older computer software, android software, and remote firmware released with the  prior FTH modules will not automatically adjust for the different header formats. 


Note:  When manual converting existing files to the new format, please ensure to address the 2-row header for the new format.   See also DMX RampX details below.  


For simple steps to convert existing scripts to the new 7.X script format see the following article: Convert Existing Scripts to the 7.X Format  


The Scripted Events and Data


The third line of the new script is where the encoded commands start and every row or line of the script is a timed event.


Events are either a Pyro Event or a DMX Event, both described as follows: 


Pyro Event:  A single line of script that defines a specific channel, rail, and module combination that is activated at the specific time defined in the time column.   


DMX Event:  A single line of script that defines a specific DMX channel and module (Each module is a DMX Universe), provides a DMX value and optional duration or ramping command for that channel, and specified time for that event to be activated.  



1. Module ID - [Column 1/A]

  • It encodes the Module assigned to the event
  • Valid values are from 1 to 99
  • It is used for DMX and Pyro events
  • It is required for the scripted file to be validated



2. Rail - [Column 2/B]

  • It encodes the Rail assigned to the event
  • Valid values are from 1 to 4 
  • It is used only for Pyro events and for  DMX events it should be set to 1
  • It is required for the scripted file to be validated




3. Channel - [Column 3/C]

  • It encodes the Pyro Channel or DMX Channel assigned to the event
  • Valid values for Pyro events are from 1 to 16

Note:  fireTEK supports both 16 channel per tail and 12 channel per rail module configurations

  • Valid values for DMX events are from 101 to 200
  • To separate DMX channels from Pyro Channels, DMX Channels are identified in the fireTEK script starting with 101 for DMX Channel 1.  For example, a DMX device set to Channel 17 will be scripted as DMX Channel 117 in the fireTEK Script

Note: DMX Device Channel + 100 = fireTEK DMX Script Channel

  • It is required for the scripted file to be validated



4. Time - [Column 4/D]

  • It encodes the event time, also referred to as ignition time or firing time for each event
  • The maximum duration of the script is 24 hours or 86,400,0000ms

Some Examples:

  • 0.25 seconds is 250ms
  • 12 seconds is 12000ms
  • 1 minute is 60000ms
  • 1 minute and 12.25 seconds is 72250ms
  • 2 minutes is 120000ms
  • The time resolution is 1ms
  • The time is in Millisecond format Valid values can be from 1 to 8,640,000  (24 hours)
  • It is required for the scripted file to be validated



5. Sequence - [Column 5/E]

  • It encodes Sequence ID
  • Sequences are groups of events that are unique to each assigned sequence number.  The individual sequences are subscripts within the main script that can be triggered individually and will fire to their unique timing. 
  • The main script that begins when the system goes into PLAY is defined by sequence 0. 
  • Scripts 1 to 99 can be triggered by separate actions from the Controller, Computer, Android, or firing module. 
  • Valid values are from 0 to 99
  • It is used for Pyro and DMX events
  • The default value is 0
  • It is required for for sequences and required if using DMX columns or optional columns 9, 10, 11, or 12. 



6. DMX Value (required for DMX) - [Column 6/F]

  • It encodes DMX value of a channel
  • If it is used for DMX events it can have a value from 0 to 255
  • It is normally used for DMX events
  • The default value is 0, even with fireTEK pyro events
  • It is required for the DMX scripted file to be validated and required if using optional columns 9, 10, 11, or 12.



7. RampX (required for DMX) - [Column 7/G]

  • It encodes DMX function for either gradual ramping or instant changing of the DMX value of a channel
  • DMX ramping functions allow the fireTEK module to gradually increase or decrease the DMX values at a specified rate which is useful for dimming curves or moving heads. 
  • It is normally used for DMX events
  • The default value is 0, even with pyro events
  • It is required for the DMX scripted file to be validated and required if using optional columns 9, 10, 11, or 12.
  • The RampX is used in conjunction with Duration (Column 8/H)
  • It can have a value from 0 to 4.  


Note: RampX options are further defined under Duration or Ramp column description


RampX = 0:  Ignored (default)

RampX and Duration are ignored.  This is the default for pyro events and on/off DMX commands.

  

The specified channel is instantly changed to the DMX value (Column 6/F) of this event and will remain at the set value until a following event changes the DMX value for the channel. 


RampX = 1:  Step change for a Duration then set to 0 (closed)

The specified channel is instantly changed to the DMX value (Column 6/F) of this event for the Duration specified (Column 8/H) for this event and then set to 0 (closed).


RampX = 2:  Momentary step change from an existing value for a Duration

The specified channel is instantly changed to the DMX value (Column 6/F) of this event for the Duration specified (Column 8/H) for this event and then set back to the DMX value existing prior to the start of this event.


RampX = 3:  Continuous Ramp change during a Duration

The specified channel gradually and continuously changes until the DMX value (Column 6/F) of this event is reached at the end of the Duration specified (Column 8/H) of this event and will remain at the set value until a following event changes the DMX value for the channel. 


RampX = 4:  Continuous Ramp change at a specified Rate

The specified channel gradually and continuously changes at the specified Rate (Column 8/H) until the DMX value (Column 6/F) of this event is reached and will remain at the set value until a following event changes the DMX value for the channel. 



Note:  DMX Ramp X Column has been added with the FTQ module between DMX Values and Duration.  This is a change to the prior DMX script format.  Additionally the DMX resolution for duration has changed from tenths of a second to milliseconds..  Please make sure to account for this when updating existing scripts.  


For simple steps to convert existing scripts to the new 7.X script format see the following article: Convert Existing Scripts to the 7.X Format  


8. Duration or Rate (required for DMX) - [Column 8/H]

  • It is normally used for DMX events
  • The default value is 0, even with pyro events
  • It is required for the DMX scripted file to be validated and required if using optional columns 9, 10, 11, or 12.
  • It encodes Duration or Rate of the DMX Value based on RampX Options (Column 7/G) as follows:


Duration when RampX = 0:  Duration is ignored - default to 0.  


Row 5 example:  At 10 seconds into the script, DMX Channel 17 will be set to DMX Value 207and remain at 207until changed by another event.




Duration when RampX = 1:  Duration in milliseconds for this event before the DMX Values is set to 0.  


Note:  This is a change to the prior DMX script format.  The DMX resolution for duration has changed from tenths of a second to milliseconds..  Please make sure to account for this when updating existing scripts.  


Row 8 example:  At 47.5 seconds into the script, DMX Channel 17 will be set to DMX Value 150 and remain at 150 for 5 seconds and then set to 0 (closed)  



Duration when RampX = 2:  Duration in milliseconds for this event before the DMX value is set back to the DMX values set prior to this event


Row 6 example:  At 20 seconds into the script, DMX Channel 17 will be set to DMX Value 200 and remain at 200 for 5 seconds and then set back to 110  


Row 7 example:  At 30 seconds into the script, DMX Channel 17 will be set to DMX Value 255 and remain at 255 for 2 seconds and then set back to 110   


Note:  The initial or prior DMX values may not be the preceding event - it is based on the preceding DMX values commanded by the firing module.



Duration when RampX = 3:  Duration in milliseconds of the transition to the DMX value specified for this event.


Row 9 example:  At 55 seconds into the script, DMX Channel 1 (initially closed at a value of 0) will gradually transition to a DMX value 200 in 10 seconds.  At 65 seconds it will be set to 200 and will remain at the set value until a following event changes the DMX value for the channel. 


Note: In this example the DMX value needed to increase by 200 units in 10 seconds.  (200 units / 10 sec = 20 units/sec). 



Rate when RampX = 4:  Rate or speed in DMX Values per second of the ramp or transition to the DMX value specified for this event.   


Row 10 example:  At 80 seconds into the script, DMX Channel 1 (set to 200 from the prior event) will continuously change at a rate of 6 units per second until a DMX value of 50 is achieved and will remain at the set value of 50 until a following event changes the DMX value for the channel. 


In this example the DMX value needed to decrease by 150 units at a rate of 6 units per second.   (150 units * 1 sec / 6 units = 25 seconds)  




9. Position (optional) - [Column 9/I]

  • This is an optional column which encodes an event position
  • Valid values are 0 to 255
  • The default value is 0
  • It can be used to disable events based on specific positions
    • When the value is set to 0, the Position is not identified in the script and this value cannot be used to disable channels. 
  • The script can be validated without this column
    • A value is required to use columns 9, 10, 11, and/or 12.  The default value is 0.



10. SafetyZones or Caliber (optional) - [Column 10/J]

  • It is an optional column which encodes a SafetyZone or Caliber of the pyro product
  • Valid values are 0 to 255
  • The default value is 0
  • It can be used to disable events based on SafetyZones or caliber
    • When the value is set to 0, the SafetyZone or caliber is not identified in the script and this value cannot be used to disable channels. 
  • The script can be validated without this column
    • A value is required to use columns 9, 10, 11, and/or 12.  The default value is 0.



11. Channel Name (optional) - [Column 11/K]

  • It is an optional field which encodes the channel name of the event such as the product identification or name associated to the event
  • Only pyro events will be displayed on the Module Screen in the Channel Status Display




  • This helps the user to see details of the next event during the show or to disable specific effects
  • The default value is 0
  • When the value is set to 0, the Channel Name is not identified in the script and this value cannot be used to disable channels
  • It has a limit of 21 alphanumeric characters
    • Spaces and some special characters are accepted.  The following are not accepted characters:  #   #\   ,  !
  • The script can be validated without this column
    • A value is required to use columns 9, 10, 11, and/or 12.  The default value is 0.


12. Sequence Name (optional) - [Column 12/ L]

  • It is an optional field which encodes a name to the assigned Sequence(Column 5/E) for this event
  • It has a limit of 21 alphanumeric characters
    • Spaces and some special characters are accepted.  The following are not accepted characters:  #   #\   ,  !
  • The default value is 0
  • When the value is set to 0, the Sequence Name is not identified
  • The script can be validated without this column
    • A value is required to use columns 9, 10, 11, and/or 12.  The default value is 0.