Copyrights & Disclaimers

BPM Microsystems. BP-3000 series. BP-4000 series. BPWin software version 6.0.0 (this number is subject to change as new software updates are available every six weeks).

©2016 by:

BPM Microsystems

5373 West Sam Houston Pkwy N, Suite 250

Houston, Texas 77041 USA

Phone: 800-225-2102 (US Only)

713-688-4600

Fax: 713-688-0920

www.bpmmicro.com

All rights reserved. No part of this manual may be reproduced, stored in a retrieval system, or transcribed, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior written permission of BPM Microsystems.

Concurrent Programming System®, Flashstream®, and Vector Engine Co-Processor & Design® are registered trademarks of BPM Microsystems.

Microsoft is a registered trademark, and Windows, Visual C++, C#, Visual Basic, and JScript are registered trademarks of the Microsoft Corporation in the United States and/or other countries.

Actel™ and ProASIC™ are trademarks of the Actel Corporation.

Any other company names, products or materials mentioned herein may be the trademarks, registered trademarks, or copyrights of their respective owners.

The information in this manual is subject to change without notice and, except in the warranty, does not represent a commitment on the part of BPM Microsystems. BPM Microsystems believes the information in this manual to be correct at the time of publication; however, BPM Microsystems cannot be held liable for any mistakes in this manual and reserves the right to make changes to the product in order to make improvements.

Any mention of third-party products is for reference only, and does not constitute a recommendation or endorsement of these products.

How Can We Make This Manual Better For You? E-Mail Your Suggestion

Copyright © 2015 BPM Microsystems


manual format

Safety Signs in this Manual

WARNING

A Warning sign glyph indicates a potentially hazardous situation which, if not avoided, may result in death or serious injury.

Important Notice

An Important Notice sign glyph is used to notify about important information to ensure proper operation or to minimize property damage.

Helpful Information

  • A Help icon [image] found in the upper right-hand corner of dialog boxes in BPWin have specific help information associated with them. To get information, click a field in the dialog and then press <F1> on your keyboard or click on the icon and then click on the field.

  • Click on bold or underlined words to see additional information.

  • Some page titles in the manual can be left-clicked to show links to topics.

  • Notes are set off by the bold word "Note:" or "Notes:" in blue text.

  • Examples are set off by the bold word "Example:" in blue text.

Referencing Dialogs

  • <Bold> – actual keystrokes on the keyboard, for example, <Esc>.

  • Bold – important text found within a paragraph or statement, drop-down menus, and options found within the software, i.e. YES, or JobMaster > Configure.

  • Italics – software fields and section names, for example, Operator mode.


Release Notes

BPWin 6.0.2 Tuesday May 15 2017

BP-3000/4000 Series™ Autohandler

  • Diagnostics on 9th Generation APS sites no longer prompts the user to press the nonexistent push button to skip the LED tests.

  • 9th Generation site socket actuation fixes and optimizations.

  • Restored the buzzer sound and red light tower indicator feature when a TS1500 tray is cycled. This option can be found in the Tray settings and is named "Alert on Tray Cycle".

  • Fixed support for SOIC devices.

Device Programming

  • Fixed a problem where diagnostics fails on a site that has sockets after running on a site without sockets.

  • Fixed a problem on the BP-2900 where some algorithms would fail that used programmer VCC relay numbers higher than 255.

  • Optimized 9th Generation site detection and system initialization.

  • All JobMaster Integrity Check failures no longer allow the job session to continue under any circumstances, regardless of whether BPWin is in Supervisor or Operator mode.

  • To prevent escapes, the JobMaster Configuration setting named "Report Data Pattern Changes As" has been removed and BPWin now reports all data pattern changes as a JobMaster Integrity Check failure which does not allow the job session to continue.

  • Fixed a problem on 9th Generation programmers where program counter values were not accurate.

  • Fixed a problem where some MSP430F5* algorithms on 9th Generation programmers failed to run gang operations.

  • Enhanced 9th Generation site diagnostics to test for hardwired connections on FVE daughter cards.

  • Fixed a problem where BPWin would display the "New Version Available" nag message at the wrong time.

  • Fixed a problem where selecting File/Configure on a 7th Generation programmer with no socket module installed would display an "Invalid bitset<N> position" error.

  • Updated the 9th Generation programmer configuration power supply check to include the full tolerance range of the power supply brick specifications.

BPWin 6.0.1 Wednesday April 5 2017

BP-3000/4000 Series™ Autohandler

  • Critical Notification

All users of BPWin 6.0.0 and BPWin 6.1.0BETA must install BPWin 6.0.1 Point Release due to a critical issue where there is a potential for the laser marking system to cycle the laser shuttle but not fire the laser, resulting in unmarked parts in the output.

Users of BPWin 6.0.0 and BPWin 6.1.0BETA must uninstall these versions through Windows Control Panel, and then install BPWin 6.0.1 Point Release.

BPWin 6.0 Friday March 24

BP-3000/4000 Series™ Autohandler

  • Support for Keyence Laser V1

  • Fixes to error messaging for updated CSP Z-Teach

  • Laser presenter sensors are now monitored to detect faulty sensors

  • Adjustments to EST handling

  • Job summary will now indicate whether an EST operation was skipped due to the job being aborted

Device Programming

  • Support for 9th generation programmers: BP-1900, BP-2900, BP-3900, and BP-4900.

BPWin v5.61.2 February 16, 2017

BP-3000/4000 Series™ Autohandler

  • An Empty Socket Test failure will pause the job session.

BPWin v5.61.1 February 8, 2017

BP-3000/4000 Series™ Autohandler

  • Resolved issue loading a job master file containing spaces in the laser settings text field.

  • Resolved issue with laser power and speed settings when loading a job master file in Operator mode.

  • Resolved issue making changes to laser settings while in simulation mode.

BPWin v5.61.0 January 12, 2017

Algorithm Update Release

  • No Feature Changes

BPWin v5.60.1 January 6, 2017

BP-3000/4000 Series™ Autohandler

  • Support for the Keyence laser.

  • Empty Socket Test monitoring validation failure is recorded in the job summary report as bold text.
  • Executive summary report includes the reason the job session is ended.

BPWin v5.60.0 November 22, 2016

BP-3000/4000 Series™ Autohandler

  • Enhanced pocket recognition to use the tape media's pocket hole to detect the pocket. This enhancement is only for tape media supporting the Winbond W25Q80DVBYIG device.

  • Pick-and-Place Motion Diagnostics records motion data to *.csv file.

  • Added Empty Socket Test monitoring before every device operation.

  • The pick and/or place overdrive can be set on a per station basis.

Device Programming

  • Resolved an issue where COM serialization numbers were not incrementing.

BPWin v5.58.0 August 23, 2016

BP-3000/4000 Series™ Autohandler

    • Support for Hoover-Davis Tape Feeder

BPWin v5.57.1 July 22, 2016

BP-3000/4000 Series™ Autohandler

  • Resolved an issue where an untaught programming site was incorrectly displayed as already taught at the Pick-and-Place home position.

Device Programming

  • Corrected the supported device list.

BPWin v5.57.0 July 12, 2016

Algorithm Update Release

  • No Feature Changes

BPWin v5.56.4 June 27, 2016

Device Programming

  • Corrected an error on the reject station that would cause BPWin to crash.

BPWin v5.56.3 June 10, 2016

Device Programming

  • Corrected the supported device list.

  • Corrected text displayed during installation

BPWin v5.56.2 June 7, 2016

BP-3000/4000 Series™ Autohandler

    • When intermittent daughter card goes missing during job, prevent all further device operations on that daughter card.

Device Programming

    • SHA1 checksum method error has been corrected.

    • Missing vertical scroll elevator has been corrected.

BPWin v5.56.1 May26, 2016

Device Programming

    • Corrected the supported device list.

BPWin v5.56.0 May 23, 2016

BP-3000/4000 Series™ Autohandler

    • Fixed crash when double clicking the "Enable Downward Vision Camera" checkbox within the Pick-and-Place Position Tool wizard.

    • Added 3D vision inspection licensing support.

    • Fixed hang when loading certain problematic teach files.

    • Corrected the definition of End Job Now and Emergency Abort under Chapter 5 Ending a Job.

    • Fixed broken links under the Calibration heading in the help document.

BPWin v5.55.0 April 12, 2016

Algorithm Update Release

    • No Feature Changes

BPWin v5.54.1 March 17, 2016

BP-3000/4000 Series™ Autohandler

    • Resolved a problem that would allow unprogrammed devices to be passed with a label following a mispick operation.

BPWin v5.54.0 February 26, 2016

BP-3000/4000 Series™ Autohandler

    • Added 3D vision inspection licensing support.

BPWin v5.53.1 January 26, 2016

Device Programming

    • Serialization log file is now updated immediately as serialization events occur, instead of every second.

BPWin v5.53.0 January 12, 2016

Algorithm Update Release

    • No Feature Changes

BPWin v5.52.2 January 8, 2016

BP-3000/4000 Series" Autohandler

    • Fixed BPWin becoming unresponsive when performing an upward vision center location teach.

BPWin v5.52.1 December 28, 2015

BP-3000/4000 Series" Autohandler

    • Corrected "failed to re-init" error.

    • Corrected a problem for systems using older firmware that would not allow the autohandler to initialize.

BPWin v5.52.0 November 17, 2015

BP-3000/4000 Series™ Autohandler

    • BPWin will retry X and/or Y axis motion time-outs up to 3 times before presenting a notification to the operator.

    • Fixed broken autohandler MRU list access.

    • Fixed issue seen by hybrid MK2 when attempting to teach or run a job session.

    • Fixed hang on MK2 when reteaching and pocket recognition is enabled.

    • Added feature to MK2 automated programming system to check if an obstruction is detected after placing a component. This will help reduce the risk of a blank device escaping to the output media.

    • Fixed crash that could occur when the job session ended.

    • Camera's transport layer dll is updated with latest version.

    • Fixed crash when BPWin is closed right after the Job Summary report is dismissed with serialization enabled.

    • Improved the camera to nozzle offset calibration.

BPWin v5.51.0 October 6, 2015

Algorithm Update Release

Device Programming

    • Jobmaster saves checksum method SHA256

BPWin v5.50.0 August 25, 2015

    • No Feature Changes

BPWin v5.49.0 July 7, 2015

Algorithm Update Release

    • No Feature Changes

BPWin v5.48.0 May 19, 2015

BP-3000/4000 Series™ Autohandler

    • Added a utility to the package teach wizard that will test the pocket recognition settings.

    • Resolved an issue with serial numbers being allowed for lasing when serialization was unset.

    • Added a calibration procedure for the 4000 Series Gen 1 laser presenter.

    • User now has the ability to specify a send address in the email notifications dialog.

    • Added feature to capture an image of the pocket from which the Pick-and-Place failed to pick a device.

    • Added a utility to the package teach wizard that will test the upward vision component settings.

    • Fixed 4000 series APS issue in which the Pick-and-Place would not when performing a camera to nozzle offset calibration.

Device Programming

    • Added support for loading data pattern files of type TI format.

    • Added handler serial number to the status bar on the main graphical user interface.

    • MD5-128 has been added as a data pattern checksum option.

BPWin v5.47.0 April 7, 2015

Algorithm Update Release

    • No Feature Changes

BPWin v5.46.1 March 13, 2015

BP-3000/4000 Series™ Autohandler

    • Idle time in executive report had incorrect event names.

    • Teaching a tray failed with Runtime Errror.

    • Added a field for Send Address in Email Notification.

    • MK2 temporary images are no longer saved unless enabled via Verbose Logging.

BPWin v5.46.0 February 24, 2015

BP-3000/4000 Series™ Autohandler

    • Fixed an issue with virtual reel advancement where notifications were not dismissing correctly.

    • Changed the Adjust Nozzle Position dialog and renamed to Position Tool Wizard.

    • Fixed an issue with the "Test Lase" option where the laser presenter would not lase specifiers on the same line.

    • Fixed issue where teach folders were being created in the wrong default directory.

    • Updated station pocket teaching interface to use highlighting to indicate the next station to be taught.

    • Fixed issue where the ID Pro would not stamp after retrying failures.

    • Fixed intermittent crash during a job session.

    • Updated JobMaster File (.bp) re-linking feature when loading an Automated Workflow File (.abp) to allow supervisors to give operators the option to select a job file in the current directory of the workflow.

    • Added First Pass Yield statistic to the autohandler.

    • Added an executive summary report to the end of the JSR for the autohandler.

Device Programming

    • Fixed an issue with serialization where the settings were being cleared after a failed job.

    • Added programmer support for Windows 8 and Windows 8.1.

    • Fixed bug where JobMaster Integrity Check would fail when using a NAND device after previously selecting a non-NAND device.

    • Added feature in the JobMaster Configuration dialog to allow for verifying data pattern checksums before loading job files.

    • Each job now creates its own directory to hold all blackbox log files associated with the job. The parent directory of these new "Job Logs" directories can be specified in the Tools/Options window.

BPWin v5.45.0 January 13, 2015

Algorithm Update Release

    • No Feature Changes

BPWin v5.44.1 November 20, 2014

    • Fixed an error that would occur while installing the USB driver during BPWin installations on 64-bit systems.

BPWin v5.44.0 November 18, 2014

BP-3000/4000 Series™ Autohandler

    • Fixed pocket recognition handling when vision centering to the tape loader is disabled.

    • Improved the DPH statistics presented in the job summary.

    • Fixed issue on 3000 series APS that could potentially bend the Pick-and-Place bellows after a motion error occurs.

BPWin v5.43.0 October 7, 2014

BP-3000/4000 Series™ Autohandler

    • Fixed media to media transfer job session.

    • Fixed pocket recognition handling when vision centering to the tape loader is disabled.

    • Fixed the programmer teach automated extraction.

BPWin v5.42.1 September 12, 2014

BP-3000/4000 Series™ Autohandler

    • Added a feature to the laser marker where the user can specify an interval to lase devices (i.e. every 3rd device) the first and last device will always be lased if the feature is enabled. When the setting is 0, only the first and last device will be lased.

BPWin v5.42 September 2, 2014

BP-3000/4000 Series™ Autohandler

    • Added support for 3800 MK2.

    • Resolved an issue that prevented the Real Time Job Summary option from working correctly on Automated Programming Systems.

BPWin v5.41.0 July 8, 2014

Algorithm Update Release

    • No Feature Changes

BPWin v5.40.1 June 26, 2014

Device Programming

    • Fixed an issue with serialization introduced in 5.40 when the device supports prebroadcast.

    • Removed JobMaster popup prompting to save job after it's been modified.

BP-3000/4000 Series™ Autohandler

    • The operator is now given a choice to continue or abort the job session when a fatal motor error is detected.

BPWin v5.40.0 May 28, 2014

Device Programming

    • No longer erroneously reporting that the buffer update packet failed to send to the site while running complex serialization on 8th generation programmers.

    • Added functionality to prompt the user to save an unsaved job if it had been modified and they are performing an operation which will close it.

    • Fixed bug with switching between operator/supervisor modes under Windows Account-based Security as a restricted user in Windows Vista or later

    • Fixed an issue with simple serialization where serial numbers were not being properly retried

    • Fixed crash if last selected programmer used a parallel-port.

    • Added support to print socket serial numbers using the Label Printer feature.

    • Fixed bug where selecting a device after a job has been loaded would not clear the job note history from the previously loaded job.

    • Added "Use Real Time Job Summary" feature.

    • Fixed issue that could cause BPWin to crash at startup when MicroSemi programmers are in use.

    • Fixed issue that could cause a USB timeout error during broadcast when using the 32GB or 64GB memory sticks on 8th generation programmer sites.

BP-3000/4000 Series™ Autohandler

    • Added Registry Value to control permissions for selecting the Handler Type in the Configure dialog when using JobMaster Window Account-Based Security.

    • Added a permission for disabling Pin 1 Orientation selection when using WABS.

    • A message will now appear if a fatal autohandler error is detected.

    • Various CPK testing improvements

    • Added the Mispick Site Disable feature and its registry value.

    • Added a modal dialog to improve usability when the reject tray is full and there is a vision centering failure.

    • Fixed a bug where a teach would not continue if a motor limit switch was triggered.

    • Added ISO8601 2-digit year number and ISO8601 2-digit week number to the available laser text format specifiers.

    • Updated the Job Summary to include EST Executions PASSED and EST Executions FAILED in the site statistics.

    • Resolved an issue where the PnP would jump to Socket A after an error learning the other sockets on that same site.

    • Resolved an issue where complex serialization on an APS would cause BPWin to hang after broadcast.

BPWin v5.39.0 April 8, 2014

Algorithm Update Release

    • No Feature Changes

BPWin v5.38.2 May 1, 2014

BP-3000/4000 Series™ Autohandler

    • APS: Resolved an issue where complex serialization on an APS would cause BPWin to hang after broadcast.

BPWin v5.38.1 March 13, 2014

BP-3000/4000 Series™ Autohandler

    • Corrected XY Drift test so that an invalid motion request error does not occur.

BPWin v5.38.0 February 18, 2014

Device Programming

    • If no Socket Module exists for a device, a link to request a quote will now appear in the Socket Module field in the Device Info dialog.

    • Fixed gang issue with serial flash devices where slave sockets sometimes fail verify.

BP-3000/4000 Series™ Autohandler

    • Resolved an issue with the laser marking text "%e" specifier.

BPWin v5.37.0 January 14, 2014

Algorithm Update Release

    • No Feature Changes

BPWin v5.36.1 December 16, 2013

Device Programming

    • Resolved a gang issue with serial flash devices where slave sockets sometimes fail verify.

BPWin v5.36.0 November 19, 2013

Device Programming

    • Added support for custom, operator-specified tags to Label Printing and added support for those tags, along with the printer command file path, to JobMaster.

    • Fixed bug where the "Use loaded Data Pattern File path as Default Job Save Path" checkbox in the JobMaster Configure dialog was not functioning correctly.

    • Added Torque Specification field to Socket Module Info dialog.

BP-3000/4000 Series™ Autohandler

    • Resolved an issue where BPWin would erroneously report that the wrong daughter card is installed.

    • Resolved an issue where a "boost::assert" runtime error would be displayed when switching from "Autohandler" to "Manual" mode via the File/Configure dialog when no APS hardware was detected.

    • The "Number of devices per virtual reel" field of the tape loader settings property page is now saved as a ABP job file setting.

    • Added %e to the list of format specifiers that can be present in the laser text marker field.

BPWin v5.35.0 October 15, 2013

Algorithm Update Release

    • No Feature Changes

BPWin v5.34.0 August 6, 2013

Device Programming

    • Fixed issue where the Tools/Power Supply command would produce an error after changing the master site in the File/Configure dialog.

    • BPWin can now load encrypted Data Pattern files.

    • Fixed bug where switching the currently selected set and bank when Sets and Banks single mode is enabled would not result in a recomputation of the checksum when using 8- or 16-bit device checksums.

    • Fixed issue where NAND memory test does not run correctly on 8th gen programmers with certain types of memory.

BP-3000/4000 Series™ Autohandler

    • BPWin now performs a check to ensure that the master site has a socket module installed before allowing a job session to begin.

    • Added new programmer setting to execute an empty socket test after a specified number of device operation(s).

    • Resolved an issue where the "Finish" button would not be enabled during teach when selecting a compatible pin 1 configuration for rectangular PLCC devices.

BPWin v5.33.0 July 16, 2013

Algorithm Update Release

    • No Feature Changes

BPWin v5.32.1 May 28, 2013

Device Programming

    • Resolved an issue where loading binary data patterns greater than 2,147,483,647 bytes and then saving JobMaster files would result in an error.

BPWin v5.32.0 May 14, 2013

BP-3000/4000 Series™ Autohandler

    • Added the socket location of the device operation as an item that can be lased onto devices.

    • You can now specify the End of Reel Advance value as a distance or a pocket count via the Tape Options Wizard.

    • Added option to pause the job session or not pause the job session when the end of a virtual reel is detected.

Device Programming

    • Added ability to switch the endianness of range of data in the Data Pattern Editor.

    • Issue a warning when attempting to load a Data Pattern File that contains addresses outside the address range specified by the user in the Data Pattern Load Dialog.

    • Added the ability to print and save the Job Setup Report.

    • Fixed minor issue with the Image Format Tool that would prevent an image from being generated without restarting the tool after an invalid input filename was specified.

    • Added support for CRC on the fly for eMMC devices on 8th generation programmers. BPWin can now load the original Data Pattern for eMMC devices directly without needing to pre-format the Data Pattern with the Image Format Tool.

    • Pins that fail continuity check are now reported even in concurrent mode operations.

    • Improved continuity test.

    • Improved 8th gen programmer reset logic.

    • Resolved an issue where BPWin would issue a "Hardware Timeout" error message when operating on some Microchip PIC devices.

    • Resolved an issue where BPWin would issue an "Assert 'yes' failed!" error message when operating on some devices with Auto Range enabled.

    • Resolved an issue where attempting to program certain PLDs would cause BPWin to display a "bad numeric conversion: positive overflow" error message.

BPWin v5.31.0 April 16, 2013

Algorithm Update Release

    • No Feature Changes

BPWin v5.30.1 February 22, 2013

BP-3000/4000 Series™ Autohandler

    • Corrected the order of tray pocket teach dialogs.

    • Corrected square device rotation issue when a station is taught with a pin 1 orientation selection of front right corner.

Device Programming

    • Corrected a bug where BPWin would not use the value entered into the "Enter Quantity" dialog until the next job session.

    • Corrected hang after entering concurrent mode when performing complex serialization. Autohandler systems are unaffected by this change.

BPWin v5.30 February 5, 2013

BP-3000/4000 Series™ Autohandler

    • Resolved an issue where disabling a socket, opening the teach dialog, re-enabling the socket, then resuming the job session would cause an error message to be displayed and the job session to be terminated.

    • Revised the station teach session wizard flow to give a more unified user experience. Revised the Adjust Nozzle Position dialog to include a visual aide when teaching the pocket(s).

Device Programming

    • Added socket module and socket card device insertion information for each programmer site to the "Session Statistics" pane that appears during concurrent device operations.

    • Changed "Set Default Configuration" in the Tools menu to set "Auto Continuity" as the default continuity state for all devices that support continuity. Autohandler systems are unaffected by this change.

    • Resolved an issue with Simple Serialization where if there is any problem reading the serialization data file (including if it is empty, corrupt, or does not exist) and "Resume from last serial number in data file" is enabled then a serial number of 1 would be used at the beginning of the job session instead of what was entered in the serialization dialog or what is stored in the .bp file.

BPWin v5.28.1 November 30, 2012

Device Programming

    • Resolved an issue where loading .bp files that have serialization enabled and were created in BPWin versions 5.18 through 5.24 would cause erroneous JobMaster Integrity Check failures.

BPWin v5.28.0 November 6, 2012

BP-3000/4000 Series™ Autohandler

    • To help address issues with pick performance when using the smallest devices and nozzles, nozzle obstruction detection can now be adjusted in the Package Parameters dialog.

    • Fixed issue in which the Pick-and-Place would not populate a site after it has been taught during a job session

    • Fixed the "unexpected result" issue that occurs when the interlock is opened during the first device operation.

Device Programming

    • Fixed a bug where BPWin will incorrectly warn that the currently loaded Data Pattern size does not exactly match the size of the device. This happens only for devices that map the device-specific configuration options to the middle of the Data Pattern (not at the end).

    • Fixed bug with Programmer Diagnostics on 6th and 7th gen programmers where socket module failures were incorrectly being reported as fine IPP failures.

    • Fixed bug where the device name appearing in the Device Autoselection Dialog would sometimes be corrupted.

    • Added an option to use the currently loaded data pattern file's path as the default path when saving job files.

BPWin v5.26.1 August 15, 2012

Device Programming

    • Fixed issue where the device-specific configuration options would not appear in the Device Settings dialog for some devices.

    • Changed simple serialization configuration so that it will default to resume from the last serial number when loading a .bp file created in a version of BPWin prior to 5.26.

BPWin v5.26.0 August 7, 2012

BP-3000/4000 Series™ Autohandler

    • Resolved an issue where a job session will not continue but cannot be terminated when an alignment failure occurs and the reject station is unavailable.

    • Added ability to specify "All Programmer Sites" to the "Programmers" section of the Workflow Configuration window in demo mode. This facilitates saving .abp files with "All Programmer Sites" specified using a computer that does not have a programmer connected.

    • Resolved an issue where the programmer status box colors in the APS view remained red while retrying a failed operation.

Device Programming

    • Updated the Tools/Options menu to use the new property-page style.

    • Removed the "Error Beep" option and replaced it with an option to beep at the end of each device operation in the "Device Operation" section.

    • Converted the JobMaster/Configure dialog to use the new property page style.

    • Migrated the settings in the Device Range, Sets & Banks, Byte Order, Test Vectors, and Device/Configure dialogs to the new "Device Settings" property page accessible via the "Device" pull-down menu and the "Device Config" button in the main GUI

    • Fixed bug that would cause an error message to appear when attempting to edit Data Patterns larger than 32GB

    • Fixed a bug where jobs created prior to BPWin 5.16 that used devices that force verify during program would produce a JobMaster Integrity Failure during execution.

    • Fixed a bug where loading JobMaster files using STAPL devices would incorrectly warn that the programmer platform used to save the job did not match the platform used to load the job.

    • Added the ability to perform memory test during Programmer Diagnostics when using 8th generation programmers.

    • Removed "Number Format" drop down list from the "Self Test Configuration" dialog and replaced with standard Decimal/Hexadecimal radio button controls.

    • Added "Skip blank checking empty Data Pattern regions" option that can be enabled when Auto Range is in use to improve verify performance by skipping blank check of unused areas of the device.

BPWin v5.25.0 July 10, 2012

Algorithm Update Release

    • No Feature Changes

BPWin v5.24.2 May 25, 2012

BP-3000/4000 Series™ Autohandler

    • Fixed a bug that aborted the job session because of an unexpected response from a programmer site.

BPWin v5.24.1 May 17, 2012

General

    • Fixed issue where the parallel port programmer is not detected or the APS serial peripherals are not enumerated.

Device Programming

    • Fixed bug that would cause erroneous Gnd Trans Failure errors in concurrent mode when using FVE2 socket modules.

BPWin v5.24.0 May 10, 2012

BP-3000/4000 Series™ Autohandler

    • Added the ability for supervisors to choose whether or not operators are given the option to select another JobMaster File (.bp) when loading an Automated Workflow File (.abp) that is linked to a JobMaster File that does not exist.

    • The laser marker system replaces the deprecated Prolase NT lasing software with Prolase 7 Server.

    • Changed access to the laser presenter station, tray station, programmer station, tape loader station, tube stacker feeder/loader station, Pick-and-Place, and APS system settings and diagnostics via the Autohandler menu.

    • Can access the laser presenter settings from the Autohandler menu, the Workflow Configuration dialog, and the APS view.

    • BPWin now supports the Scanlab Rtc5 controller which is used to control the laser tube and the scanhead of the laser presenter.

    • If your automated programming system has a laser, you will need to update the Scanlab RTC3 device driver. See document D05168DC.

Device Programming

    • Adding warning when a JobMaster File is loaded that was created with a different programming platform than what is currently selected.

    • Fixed a bug where loading a job saved with an embedded Data Pattern that was originally loaded into BPWin from an external file that is no longer accessible could cause an MFC COleException error if the job was loaded in a timezone with a GMT offset less than that in which it was saved.

    • In order to correctly conform to the latest JEDEC specification, BPWin has been updated to no longer include the E-Field as part of the checksum (C-Field). All JEDEC files generated by legacy compilers that incorrectly include the E-Field in the checksum will need to be resaved using standards-conforming compilers.

    • Fixed a bug where selecting a Big Endian byte order for the currently selected device, and then switching to a device that does not support byte order, could result in the wrong byte order setting being used for some devices.

    • Fixed a bug where running a job session with serialization enabled, would not temporarily disable serialization in concurrent mode while using commands that are incompatible with serialization such as Erase, Secure, etc.

    • Fixed a bug where BPWin could incorrectly report that a JobMaster File created in a different timezone was created with a different BPWin version.

    • Improved overcurrent detection capabilities of 8th generation programmers.

    • Added 2 methods to the BPWin API to retrieve the Data Pattern checksum (GetDataPatternChecksum) and a comma-delimited list of the currently selected device operation options (GetSelectedDeviceOperationOptions).

    • Implemented device short circuit test improvements.

BPWin v5.23.0 April 10, 2012

Algorithm Update Release

    • No Feature Changes

BPWin v5.22.2 February 24, 2012

BP-3000/4000 Series™ Autohandler

    • Fixed a bug that aborted the job session because of an unexpected response from a programmer site.

Device Programming

    • Updated the order of fields in the "Overall Statistics" section of the Job Summary Report to display "Successful Devices" at the very top of the section.

BPWin v5.22.1 February 14, 2012

BP-3000/4000 Series™ Autohandler

    • Fixed deadlock that occurs when an auxiliary source media is included in the workflow.

BPWin v5.22.0 February 7, 2012

BP-3000/4000 Series™ Autohandler

    • Improved when the nozzle will home during a job session by exercising the feature after the interlock is closed and the session resumed.

    • Empty Socket Test will now be performed on all sites if, during a job session, the interlock is detected open.

    • Fixed a bug where the programmer sites for 4X automated systems using a 3x3 site configuration might not be drawn in the correct position in Programmer View when only some of 9 sites are enabled.

    • The Tape Loader "End of reel advance" setting is no longer stored in saved workflows (.abp files) nor is it found in the Autohandler Options dialog. Instead, the setting is specified when teaching the Tape Loader.

    • Improved autohandler job summary statistics by adding specific reject statistics under the Reject Failures field. Replaced operation failure retry rejected with the operation failure retry efficiency field.

    • When calibrating the laser, the Pick-and-Place head will now automatically move out of the way to allow access.

    • In addition to allowing for fine control of the X and Y axis positions when teaching a station, the "Adjust Nozzle Position" window now also allows such control of the Z-axis with the inclusion of a new "Fine Motion Step Size" slider for that axis.

Device Programming

    • Fixed a bug with BlackBox log archiving where occasionally new log files would not get created with the appropriate HTML header. Log Visualization potentially reports an error when loading this malformed file.

    • Added the ability to enable/disable continuity test for some STAPL algorithms.

    • The Device-Specific Configuration Options Dialog now displays rich context help text that may contain tables, formatting, and colors to describe each configuration option. Note that not all devices utilize rich formatting of the help text.

    • Fixed a bug that prevented jobs saved with devices that did not support custom Bad Block Markers in NAND Options from running in newer versions of BPWin that added custom Bad Block Marker offset support for the same devices.

    • Added support for custom Bad Block Marker Offsets for selected devices on 6th and 7th generation programmer technology.

    • Fixed a bug where vector test would report as passed incorrectly for certain legacy algorithms that support package remapping.

    • Added ability to graph programmer elapsed times using Log Visualization.

    • Added feature to remember the last used folder path for the Serialization data file, log file, and program file. When clicking the browse button for these three fields, the initial folder displayed will be whatever was previously used. Note that all three fields share the same folder history.

BPWin v5.21.0 January 10, 2012

Algorithm Update Release

    • No Feature Changes

BPWin v5.20.0 November 16, 2011

BP-3000/4000 Series™ Autohandler

    • Resolved an issue where the "Autohandler/View Workflow Setup Report" menu item would be available even when a workflow (.abp file) is not open.

    • Fixed bug that prevented users from setting up an Autohandler Workflow using the Workflow Configuration dialog while not connected to a Autohandler system.

    • Fixed a bug where the socket pressure plates for 8th gen automated sites would not open fully when performing socket maintenance during a Job Session.

    • During the teach process, the Pick-and-Place will now automatically move out of the way of the station whenever you are prompted to place devices into or remove devices from the station. If the station is being taught for the first time, a new window will appear that will allow you to move the Pick-and-Place out of the way to any corner of the Automated Programming System.

    • The coordinate systems used in the Laser Marker Configure and Calibrate Laser windows have been updated so that they now match coordinate systems used by the rest of the system.

Device Programming

    • To reduce clutter in the BlackBox log file, collapsible sections have been introduced that group certain pieces of related information together. These sections are collapsed by default, and can be expanded or collapsed by clicking the title of each section. Each section title is bolded and underlined so it can be identified easily. To quickly expand or collapse all sections in the log file, the "Expand/Collapse all sections" button at the top of the log file can be used to view or hide the additional log details.

    • The default programmer model used while in DEMO mode is now session persistent. When starting BPWin, the demo mode programmer model will be set to the last-used programmer model.

    • Resolved an issue where the filenames for the Job Summary Report, when configured to be automatically saved, were not being generated correctly.

    • Fixed bug where the default buffer value would not be used correctly to initialize the Data Pattern when using some devices that support Device-Specific Configuration Options.

    • In the Log Visualization dialog, added the ability to view the log entries in the context of the original log file.

    • Log Visualization now supports visualizing multiple log files simultaneously instead of just one log file at a time.

BPWin v5.19.0 October 4, 2011

Algorithm Update Release

    • No Feature Changes

BPWin v5.18.3 October 10, 2011

Device Programming

    • Resolved an issue where auto-saved job summary report filenames were being saved incorrectly when the device name used for the job session contains a slash ('/').

    • Fixed bug with NAND ECC Generation that prevented access to the ECC and BERT controls in the NAND Options dialog.

BPWin v5.18.2 September 6, 2011

Device Programming

    • Fixed a bug where the selected secure option always reverts to the first selection, overriding the user selection in the GUI.

BPWin v5.18.1 September 1, 2011

BP-3000/4000 Series™ Autohandler

    • Fixed a bug where the Programmer Site Status Boxes in Programmer View would not update correctly while running on an Automated Handler.

    • Resolved an issue where teaching site numbers greater than 9 would result in an error.

Device Programming

    • Fixed a bug where the "Technology Adapter" test that is part of Programmer Diagnostics would incorrectly be reported as failed even though it passed. This bug affects all programmers except Flashstream and 8th Gen. Note that the final system self test status was not affected by this bug.

    • Fixed bug where some jobs that use Device-Specific Configuration options would fail JobMaster Integrity Check due to a Data Pattern checksum discrepancy.

    • Fixed bug where the default buffer value would not be used correctly to initialize the Data Pattern when using some devices that support Device-Specific Configuration Options.

    • Resolved a serialization log file issue where it was not using the new format introduced in BPWin v5.16.

    • Fixed a bug with reading devices larger than 5GB. Note that Program & Verify operations are unaffected by this bug. Only Compare/Read had this issue.

BPWin v5.18.0 August 9, 2011

BP-3000/4000 Series™ Autohandler

    • When a job session resumes from being paused for any reason, the nozzle will now home and nozzle runout will be measured and verified.

    • Resolved an issue where the front panel buttons on the TS1500 would be unresponsive after a teach session.

    • Improved Autohandler View in the main GUI to zoom in on the stations configured in the workflow as much as possible while still accommodating all stations in the view.

    • Improved BPWin response after accepting a workflow configuration change.

    • Resolved an issue where BPWin would not issue an email notification when a device is found in a socket before the first device operation in a job session.

Device Programming

    • Implemented finer grained permissions when using Windows Account-Based JobMaster Security to control access to the action button on each Device Operation Tab in the main GUI (Program button, Verify button, etc) individually. Customers currently using Windows Account-Based JobMaster Security will need to enable access to the new permissions in the registry to allow operators to continue using this JobMaster security model.

    • Users can also now control access to the Data Pattern load, edit, and save operations when using Windows Account-Based JobMaster Security.

    • Added verification of calibration procedure for the 2800F and 2800 series of programmers. Contact BPM Technical Support to obtain the socket card required to run this verification procedure.

    • Added feature to "User Options" dialog called "Prompt for Device Quantity at Start of Job Session" that will prompt the user to enter a device quantity at the beginning of a Job Session.

    • BPWin can now be configured to run Programmer Diagnostics before every job session.

    • In concurrent mode on manual programmers, once a socket goes into the idle state after a device operation is complete, the device operation result will be shown in the top-right corner of the site status box in the main BPWin GUI. This allows you to open the socket after the operation and still be able to view the operation result.

    • When running diagnostics on BP-2800F and BP-2800 programmers the output now includes a date/time stamp of when the diagnostics session was initiated.

    • Resolved an issue where menu command "Tools/Set Default Configuration..." was not resetting the previously entered JobMaster Job Note.

    • Resolved an issue where loading a JobMaster (.bp) file with a Default Buffer Value that was different than the current Default Buffer Value could cause the "Device Checksum" to be incorrect on certain devices. This would in turn cause a JobMaster Integrity Check failure. "Data Pattern Checksum" is not affected.

    • Resolved an issue where IEEE1532 Data Pattern File types were not being auto-detected.

    • Resolved an issue where running a Compare operation on certain devices would correctly report Compare failure address locations, but would indicate that the final operation was a success despite the presence of one or more compare errors.

    • Resolved an issue where certain very rare data patterns in Qualcomm (*.mbn) partition files would cause the file not to be imported correctly via NAND Options.

    • The overall time required to reset the attached programmer sites via File/Configure and at the start of a Job Session has been reduced.

    • Resolved an issue where the "View Job Setup Report..." menu item in the JobMaster menu was available when no JobMaster File is loaded.

    • Resolved an issue where device selection "BP Microsystems Mechanical Benchmark" will not run using slave sites after having previously aborted a Self Test session.

    • Updated BPWinLauncher icons for both JobMaster (.bp) and Automated Workflow Configuration (.abp) Files.

    • Resolved an issue where .bp files created with an older version of BPWin would fail JobMaster Integrity Check.

    • Resolved an issue where logging of programmer site results in the Black Box Log was not correct when using 1-UP socket modules.

    • Added option to Specify Bit Error Rate Tolerance Per Subpage for a NAND device under Nand > Options.

    • Added option to select an Error Correcting Code (ECC) Scheme in conjunction with a Bad Block Management Scheme if available.

    • Added option to Generate a Data Pattern with embedded Error Correcting Code (ECC) if available for the corresponding Bad Block Management Scheme.

BPWin v5.17.0 July 5, 2011

Algorithm Update Release

    • No Feature Changes

BPWin v5.16.3 June 28, 2011

Device Programming

    • Resolved an issue on 8th Gen sites that could cause serialization data to get written to incorrect addresses when using 8-bit devices and odd serialization addresses.

BPWin v5.16.2 June 16, 2011

Device Programming

    • Resolved an issue where slave sites without socket modules would be reported as being unregistered.

BPWin v5.16.1 June 6, 2011

BP-3000/4000 Series™ Autohandler

    • Resolved an issue where BPWin was allowing certain invalid workflow configurations.

    • Resolved an issue where, towards the end of some types of media, the media was being reloaded at incorrect intervals.

Device Programming

    • Resolved an issue where certain required device operations were not being performed despite being forced selected in the BPWin GUI.

    • Resolved an issue where the selected secure option always reverts to the first selection, overriding the user selection in the GUI.

    • Resolved an issue where certain error code numbers were displaying the incorrect description text.

BPWin v5.16.0 May 10, 2011

BP-3000/4000 Series™ Autohandler

    • The Interlock Open Notification window has been improved to allow termination of any current operation and any and all mechanical motion currently occurring in the system.

    • Along with the Pick-and-Place nozzle runout verification, the nozzle will now be checked to ensure that it is of an appropriate size for the selected package.

    • The Workflow Settings dialog has been replaced with the new Workflow Configuration dialog featuring:

      • Drag and drop of media into a media category

      • Adding up to 2 source media stations and/or 2 destination media stations

      • Adding more than 2 reject media stations

      • Changing the priority of the source and destination media stations

      • Filtering media names enumerated in the media list

    • The Workflow Settings dialog related permissions have been replaced with the new Workflow Configuration dialog related permissions. You will have to manually select permissions for each media category.

    • Access to the Laser Marker Configure dialog and the 2D Vision Inspection Configuration dialog is now inside the Autohandler Options dialog.

    • A reject media station can be set to get populated with devices having a specific class of device failure.

    • If an error occurs during initialization of the system, BPWin will now proceed with the remaining portions of the initialization process and allow access to features that do not depend on the failed portions.

    • Resolved an issue where Automated JobMaster files would not be loaded correctly from the command line under certain conditions.

Device Programming

    • New icons for BPWin.exe, JobMaster (.bp) files, and Automated Workflow Configuration (.abp) files.

    • Fixed bug where the Data Pattern would appear non-empty when installing some devices that have Device Specific Configuration Options.

    • Fixed a bug where the session progress bar would not be updated correctly on engineering programmers.

    • Fixed a bug where the device pass/fail/remaining statistics were not being written correctly to the log file for engineering programmers.

    • Added Serialization-related events to the Log Visualization Tool.

    • Fixed bug where the checksum of certain POF devices would change after reselecting the device.

    • Updated Socket Module Insertion Counter dialog to utilize a property grid to more efficiently display the socket odometer information.

    • For programmer sites that utilize a socket interposer board (2800 and 2800F) to interface with socket cards, added the ability to track the number of socket cards inserted into each interposer board connector as well as the number of times each socket card has been plugged into an interposer board. This helps indicates the level of wear on the connectors. Once the connectors on the interposer board have worn out, the interposer board needs to be replaced.

    • Fixed bug where programmer diagnostics might fail incorrectly when using gang socket modules that have more than 240 pins.

    • Added JobMaster Configuration option to set the default configuration and unload the job after a Job Session completes successfully.

    • Modified the behavior of "Set Default Configuration" to NOT reset the User Mode to "Novice." The User Mode will remain unchanged during the Default Configuration operation.

    • Fixed bug where the pause button would not get enabled on both the Programmer and Autohandler views when running a Job Session on an Autohandler.

    • Fixed bug where loading a JobMaster File with an embedded Data Pattern would not show load progress when the JobMaster File is loaded from the Most Recently Used JobMaster Files menu.

    • Disabled "View Job Setup Report..." menu item in JobMaster menu when no JobMaster File is loaded.

    • Fixed bug where certain required device operations were not being performed despite being forced selected in the BPWin GUI.

    • BPWin will now automatically end a Job Session when all programmer sites have been disabled due to fatal errors.

    • Removed support for the Buffer Offset option.

    • The window that is displayed when the stop button is clicked during a job session has been modified to simplify the labels that explain the available options and to emphasize which of the options a user should prefer.

    • New feature: "Serialization Schemas", allows you to specify schemas (replaceable tokens) in certain fields of the serialization configuration. At the beginning of the job session BPWin replaces the schemas in those fields with values specified by the operator. This allows aspects of the serialization configuration to be dynamically modified at the beginning of the job session instead of only existing as static configuration information at job creation.

CJobMonitor

    • Added new events NotifyMediaFull and NotifyDevicePlacedInOutput.

BPWin v5.15.0 April 5, 2011

Algorithm Update Release

    • No Feature Changes

BPWin v5.14.2 March 25, 2011

Device Programming

    • Resolved an issue that would cause the "First Block Must Be Good" setting for each NAND Partition in NAND Options to not get saved to the JobMaster File correctly. All JobMaster Files saved with BPWin 5.14 or BPWin 5.14.1 that have the "First Block Must Be Good" setting in one or more partitions set to "Yes" will need to be resaved using BPWin 5.14.2.

    • JobMaster files that were created with BPWin versions prior to 5.14 will load correctly in BPWin 5.14 or BPWin 5.14.1, however when BPWin 5.14 or BPWin 5.14.1 are used to save the JobMaster File again, the information will not be saved correctly.

BPWin v5.14.1 February 15, 2011

BP-3000/4000 Series™ Autohandler

    • Resolved an issue where the job session would terminate after successfully teaching a station at the start of a job session.

BPWin v5.14.0 February 8, 2011

BP-3000/4000 Series™ Autohandler

    • Resolved an issue where dragging and dropping a Workflow (.abp) file onto BPWin would not update the session configuration correctly.

    • Preserve fine motion step size in the "Adjust Nozzle Position" dialog when enabling and disabling Z-axis control to prevent unnecessary PC access when controlling the Pick-and-Place head using a gamepad controller.

    • You can now cancel an All Programmer Sites teach session while teaching a socket.

    • The Automated Extraction destination is no longer limited to tray stations.

    • The Automated Extraction session selection is no longer in the Select Location to Teach dialog. It is now an option that can be selected or bypassed after the All Programmer Sites teach session finishes.

    • Added the feature to define a full virtual tape reel on a tape loader station. This is useful to notify the operator when a virtual tape reel is full during a single job session.

    • Renamed the Autohandler Option field "Advance at end of job" to "End of reel advance". Advances the tape at the end of a job session and when the virtual tape reel is full.

    • Added feature to retry a device operation when ID check fails.

    • Optimized Empty Socket Test (EST) during a job session by performing the EST after all pick failure notifications for a programmer site have been dismissed by clicking the Discard button.

    • Pick-and-Place Motion Diagnostics reports can now be set to be automatically saved from within the Pick-and-Place Motion Diagnostics window.

    • Added the ability to print labels during a job session when the system has detected that a destination needs to be reloaded.

Device Programming

    • USB driver is now digitally signed to prevent Windows from displaying a warning during BPWin installation.

    • Added link to the Device Selector Dialog to request support for a new device.

    • When using a JobMaster file with a linked Data Pattern File, the user is prompted to save changes made to the Data Pattern via the editor automatically back to the file on disk when the JobMaster file is saved. Resolved an issue where under some circumstances, only parts of this file would get saved in this scenario.

    • Implemented enhancement of Job Protection to allow a job creator to specify which additional device operations should be denied the end user of a locked JobMaster file.

    • When loading a BlackBox Log file using the Log Visualization feature, the user will be prompted if the log file was created with a version of BPWin that does not support Log Visualization or of the log file does not contain any Log Visualization data.

    • Added full native support for 64-bit versions of Windows.

    • Removed support for Windows 2000.

CJobControl

    • Added SetMasterSite method.

BPWin v5.13.0 January 4, 2011

Algorithm Update Release

    • No Feature Changes

BPWin v5.12.0 November 9, 2010

BP-3000/4000 Series™ Autohandler

    • Added ability to teach a multi-lane station that has a single lane.

    • Added native USB gamepad support for controlling the Pick-and-Place when using the Adjust Nozzle Position dialog. Gamepad button functionality can be customized using the GamePad Configuration dialog. Also supports inverting the X- and Y-axis to allow controlling the Pick-and-Place from the rear of the autohandler.

    • When a device is found in a socket at the start of a job session, BPWin will now present the option of either retrying the operation or aborting the job session.

    • The pick retry and pick overdrive values are not applied when picking from the label presenter. This helps prevent the Pick-and-Place nozzle from overdriving the label on to the base of the label presenter and causing the label to stick to the base. Note that you may have to reteach the label presenter if pick failures persist on the label presenter.

    • BPWin is now capable of lasing vector images using the Laser Project file feature.

Device Programming

    • Resolved an issue where a change to a Data Pattern File linked to a JobMaster File can result in a JobMaster Integrity Check failure even when Data Pattern changes are configured to be reported as "Log".

    • Fixed "Auto Range" bug that could prevent serializing initially blank regions of the Data Pattern.

    • When using a Flashstream programmer, the concurrent mode GUI in BPWin is now updated in real-time to reflect device operation failures, instead of being updated at the end of each concurrent mode device operation.

    • Fixed a bug that would prevent device operation progress bars from resetting in the presence of certain types of errors during the first device operation.

    • Fixed Buffer Editor bug that manifests when using fuse devices whose size is not byte aligned. When using byte view in the Buffer Editor, the last byte of the Data Pattern would not be displayed.

    • In novice mode when the user attempts to stop the job session during the first device operation, BPWin will warn the user before continuing.

    • Fixed a bug where the keyboard could be used to attempt to pause the job in manual mode, causing an exception.

    • Added option to automatically erase programmer memory at the end of a Job Session. This option is supported on programmers that use non-volatile memory.

    • Added text to the Self Test Configuration dialog to warn the user to remove any installed devices prior to running self test.

    • Socket modules listed in the "Socket Module Info" dialog now link to a request for quotation form on the BPM website. This pre-populated form can be used to request socket module quotes and lead times.

BPWin v5.11.0 September 28, 2010

Algorithm Update Release

    • No Feature Changes

BPWin v5.10.2 August 31, 2010

BP-3000/4000 Series™ Autohandler

    • Destination media station could be set incorrectly when loading a Workflow Settings File.

BPWin v5.10.1 August 18, 2010

Device Programming

    • Resolved an issue where the "Name" item in the Job Summary Dialog would not display the full path to the JobMaster file.

BPWin v5.10.0 August 10, 2010

BP-3000/4000 Series™ Autohandler

    • Added E-mail Notifications to the Autohandler that allow sending multiple users an e-mail when certain system events occur. Each user can be configured to receive an e-mail based on different events. Events include Pick/Place Errors, Station Errors, Empty Socket Test Errors, Max Site Failures, Media Events, Interlock Open, Fatal Errors, All Stations Idle, Job Session Started, and Job Session Complete. The Job Summary Report can also be optionally sent as an e-mail attachment with the Job Session Complete event.

    • Resolved an issue that would allow the Pick-and-Place to start moving while the interlock notification remained visible.

    • Resolved an issue where the Laser Test would not prompt to teach an untaught laser.

    • Added information to the Laser Marker section that will help enter text orientation settings.

Device Programming

    • Label printing at the end of the job session is now supported. This includes barcodes and RFID tags. A default label design is provided, or you can design your own. The label content can be any mixture of fixed text, dynamic text, graphics, or barcodes with real-time encoding of dynamic data.

    • NAND Flash devices will now display the bad block count and distribution for all devices in the job session to the Output Window and log file.

    • Resolved an issue that can manifest during a concurrent mode operation using FX4 sockets. A failure of the device in socket A would sometimes result in the devices in sockets B & C failing as well when using certain socket modules.

    • Incorporated new Log Visualization feature that is a Black Box Log analysis tool accessible via the BPWin Tools menu that can be used to graphically view the contents of a HTML Black Box log file created with BPWin versions 5.10 and greater. With this tool a user can identify important system events, errors, and other metrics that are embedded in the log file without needing to open the actual log file to perform manual text searches.

    • Support for user-defined NAND Flash Bad Block Markers has been added to NAND Options for Flashstream-based programmers. This is useful for applications that utilize different locations for the markers than what is specified by the semiconductor manufacturer, and will allow reprogramming of devices that were originally programmed as such. Preexisting algorithms will need to be updated to support this feature. If this option is disabled in an algorithm where you would like to have it available, please contact technical support. This option can only be enabled on the Flashstream platform.

    • Job sessions that are configured to use Legacy Complex Serialization that result in "last serial number exceeded" errors are now handled more gracefully.

    • The "New Version Available" reminder dialog that appears when launching an outdated version of BPWin is now suppressed when BPWin is launched via the BPWinLauncher tool.

    • Resolved an issue where installing a device that requires a JEDEC, IEEE1532DATA, or POF Data Pattern File will report an invalid incompatibility error when the Data Pattern is empty.

    • Resolved an issue where unpopulated sockets on gang programmers would participate in device operations in concurrent mode even though continuity check confirmed that no device was present in the socket.

    • Resolved an issue where the "Secure" operation type was not consistent between the different operation tabs in the main GUI.

CJobControl

    • Job parameters "DeviceOptions.RangeStart" and "DeviceOptions.RangeStop" are no longer supported. Instead use new job parameter "DeviceOptions.RangeStartStop" to set both.

BPWin v5.9.0 June 29, 2010

Algorithm Update Release

    • No Feature Changes

BPWin v5.8.2 June 25, 2010

Device Programming

    • Resolved an issue where the Default Buffer Value set in the Data Pattern Dialog is ignored when using devices with Data Pattern-mapped configuration options.

BPWin v5.8.1 May 24, 2010

BP-3000/4000 Series™ Autohandler

    • Resolved an issue that disables sites and eventually terminates the job session after updating marker settings during a job session.

    • Resolved an issue where the Z-axis home process would fail.

Device Programming

    • Resolved an issue where unpopulated sockets on gang programmers would participate in device operations in concurrent mode even though continuity check confirmed that no device was present in the socket.

    • Resolved an issue where registry permissions were not being set correctly on Windows systems using languages other than English.

    • Resolved an issue where some older device algorithms would result in device configuration option errors at the end of a job session.

BPWin v5.8.0 May 11, 2010

BP-3000/4000 Series™ Autohandler

    • Added representation of all untaught stations to the autohandler view. This provides an easy way to determine whether any stations need to be taught before the job session is run. Right-click on the stations to teach them.

    • Added a "Most-Recently-Used" File list to the Autohandler menu to allow quick access to the 5 most recently used Autohandler Workflow (*.abp) files.

    • Improved the recovery process and prompts displayed when homing of the Z-axis fails.

    • Added user configurable status box colors based on the result of a programmer operation or the state of the device.

      • The operation result color will follow the device as it moves through the system. This is particularly useful on reject trays, because it makes it very easy to distinguish between different types of programming errors. The status box colors can be changed by choosing Tools->Status Box Colors.

      • Added a "corner" indicator for alignment errors. This instantly shows which rejected devices were rejected because of alignment problems. Since this indication is only on the corner of the device, the remainder of the device shows the operation result, so an operator can easily distinguish between a device which had an alignment error as it came out of a source versus a device which had an alignment error after it finished programming.

      • The actual result of a programming operation (for example "Cannot erase") will appear on the tooltips in the Autohandler View.

    • When the red light has turned on during a job session, or when the Pause or Stop buttons are clicked, the X-axis and Y-axis are now automatically moved to their home positions. This gives the operator easy access to the inside of the automated programming system.

    • Added an option called "Identify" to easily determine at what physical location a station is taught. To use this option, right click on any pocket on the Autohandler View and the autohandler will move the Downward Vision Camera (4000 series) or the Nozzle Pointer (3000 series) to that location.
      This could be valuable to verify that an old teach file is still valid or to help reload tape media to the correct position.

    • Added a feature to disable and re-enable all sockets on a site during a job session. This feature is useful to remove sockets during a job session for maintenance such as cleaning the socket's contacts.

    • Resolved an issue where Z-axis motion in the Pick-and-Place Motion Diagnostics could appear to drift when no drift was actually happening.

    • More accurate performance statistics are now generated in the Pick-and-Place Motion Diagnostics, and the Motion Diagnostic Report is now more informative.

    • The Pick-and-Place Motion Diagnostics have been enhanced with an automated Z-axis encoder drift test.

    • Improved the "Maximum number of site failures" feature to close the site's sockets when all of the sockets of the site become disabled. This feature is useful to remove sockets during a job session for maintenance such as cleaning the socket's contacts.

    • The pause button will now blink yellow to indicate that the job session is paused.

Device Programming

    • Added a "Most-Recently-Used" File list to the JobMaster menu to allow quick access to the 5 most recently used JobMaster (*.bp) files.

    • Resolved an issue where a user in operator mode could load a Data Pattern File without having permission by dragging the file onto the BPWin application.

    • Resolved an issue where a user in operator mode could load a JobMaster (*.bp) file while in Autohandler mode without having permission by dragging the file onto the BPWin application.

    • Added the ability for certain algorithms to allow operation exclusively in concurrent mode. This feature allows these algorithms to perform error checking on the entire data stream prior to transmitting and/or programming a partial data pattern into the device. As a result, data errors are identified before partial programming has occurred which may potentially damage certain very sensitive devices. These algorithms will also prevent device damage due to any programmer communication errors that may occur while performing I/O with the device since all I/O is guaranteed to be complete prior to starting the device operation.

    • Added user configurable status box colors based on the result of a programmer operation or the state of the programmer. For example, if Continuity errors were changed to blue, any device with that error code will appear blue in the status boxes during concurrent mode. The status box colors can be changed by choosing Tools->Status Box Colors.

    • Allow the use of default values for device-specific configuration options that are mapped to the Data Pattern.

    • Configuration options that are modified as a result of loading a Data Pattern File, modifying the Data Pattern, or installing a device are displayed in the Output Window.

    • For COM Serialization, BPWin can now be configured to send arbitrary user-specified data to the External Serialization Server (ESS) at the beginning of the Job Session.

    • Added "Set default configuration for this device" checkbox to the Device Selection Dialog to allow the user to preserve device-related settings (serialization settings, device config options, NAND options, etc) when switching devices. WARNING: If the selected device is significantly different than the currently installed device, unchecking this checkbox could lead to unexpected behavior and corrupted device content.

    • The Job Summary Report now enumerates all device specific configuration options in the "Device" section for devices that support them.

    • Resolved an issue where BPWin crashes and does not close gracefully when certain types of errors are detected at application startup.

    • Resolved an issue where non-GANG sockets would produce a programming algorithm error (Error 10) when using automated handlers and 6x programmers or when using 7x programmers and a first device failure occurs.

    • Now including running totals of system-wide device pass/fail/remaining statistics during a concurrent job session in the black box log file.

    • When using a non-automated programmer, pressing the STOP button now results in a dialog appearing giving you the option of terminating gracefully or immediately when in concurrent mode. Terminating gracefully will allow any current operations in progress to complete before aborting the job. Terminating immediately will instantly abort the job session.
      Clicking the STOP button again after "Terminate Gracefully" was selected will pop-up the same termination options. Selecting "Terminate Gracefully" again will have no effect, however selecting "Terminate Immediately" will instantly end the job.
      In Novice Mode, the user is warned when attempting to terminate the job immediately, and not gracefully.

    • Resolved an issue where loading a job that was saved with a POF Data Pattern could sometimes result in the Data Pattern File name appearing as "<User Input>*"

    • The Black Box log file is now in HTML format making it easier to view and allows embedding the Job Summary Report and other HTML content directly into the log file as-is without converting to text.

    • Resolved an issue where BPWin could only be run by the Windows administrator user that installed it because other administrators would lose read and write access to certain BPWin registry keys under HKEY_LOCAL_MACHINE.

    • Resolved an issue where Restricted Windows User Accounts would not be able to read some registry keys under HKEY_LOCAL_MACHINE.

Helix

    • The Job Summary Report will now output to the Black Box Log file at the end of each job session.

    • In BPWin, Autosave Job Summary is now supported.

BPWin v5.7.0 March 30, 2010

Algorithm Update Release

    • No Feature Changes

BPWin v5.6.1 February 19, 2010

BP-3000/4000 Series™ Autohandler

    • An issue was resolved where device operations on BP-3600 and BP-4600 systems would produce a programming algorithm error (Error 10). This same issue was also occurring on BP-37x0 and BP-47x0 systems when using non-gang socket modules and the first device operation failed for other reasons.

    • Quantity of devices per tube was not being updated during the middle of a job session.

BPWin v5.6.0 February 9, 2010

BP-3000/4000 Series™ Autohandler

    • Improved the interlock open notification by allowing the operator to abort the detection of the interlock state. For example, if the interlock is continuously detected open during the initialization of the Pick-and-Place, the operator will be able to abort the detection of the interlock state and gracefully exit BPWin.

    • Added performance statistics to the Pick-and-Place Motion Diagnostics. These will run in tandem with any motion diagnostic to provide statistics on the speed and accuracy of movements. Also, added a Motion Diagnostics Report to more easily view and save the results of the diagnostics.

    • Updated the 3000/4000 APS troubleshooting section.

    • The empty socket test is no longer a configurable option under the Autohandler Options dialog. The empty socket test will automatically be executed after a pick failure occurs and at the end of a job session. This is the result of discussing the various problem scenarios with several customers. This new approach will continue to guard against the same process escapes as the prior scheme, but without the performance (DPH) hit incurred by excessive socket actuation cycling.

    • Added Ctrl+Tab accelerator to quickly switch between the Programmer View and the Autohandler View.

    • Added Tooltips to the Autohandler View to show information about a station or a particular pocket on a station.

    • Added Context Menu support for when the operator right-clicks on a station on the Autohandler View. The operator can right-click on any station to teach that station or right-click on any programmer socket to enable/disable that socket during a job session.

    • Resolved an issue in which the TS1500 would not cycle a tray to continue with the job session while a socket pick failure notification remains presented.

    • The stop button, pause button, and progress bar now appear in the Programmer View as well as in the Autohandler View.

    • Peripherals that are visually represented in the Autohandler view will now "blink" (repeatedly change colors) when the peripheral presents a notification.

    • Resolved an issue where right-clicking an idle socket in Programmer View causes a "Win32 exception" error message to be displayed.

    • Resolved an issue where some 3000 series Autohandlers would not be able to complete the "Measure X-axis and Y-axis encoder drift" test in the "Pick-and-Place Motion Diagnostics".

    • Resolved an issue where an error message would be displayed when BPWin was closed while displaying the Autohandler View.

    • A descriptive progress bar is now displayed while the W-axis is being homed. Previously during this inconspicuous process BPWin would be unresponsive.

    • Resolved an issue where the "Empty Pocket Found" dialog would not automatically close when the autohandler finds populated pockets to pick from on tray input media.

    • Resolved an issue where a primary destination reload dialog could get presented when there were exactly enough devices to fill both the primary and alternate destination tray.

Device Programming

    • To help prevent users from accidentally loading a JobMaster (.bp) file as a Data Pattern, a check is now performed when a user attempts to do this. The user is given the option to continue loading the file as a Data Pattern or load it as a JobMaster file.

    • Resolved an issue where BPWin may become unresponsive when the user attempts to access the blackbox.log file during a job session.

    • BPWin will now detect and report an error when the user makes an invalid change to the socket and/or socket module configurations during a concurrent job session.

    • Resolved an issue where some "Binary" data pattern files were being wrongly detected as "ASCIIHEX".

    • Resolved an issue where the BPWinLauncher would issue a cryptic error message and abort when using it to launch BPWin with a JobMaster File that contained an embedded and compressed data pattern.

    • Resolved an issue where selecting certain devices causes BPWin to display "Syntax Error: Invalid definition" errors in the output window.

    • Resolved an issue where certain toolbar buttons and menu items in BPWin would erroneously remain enabled for a short period after a job session has been started.

    • Resolved an issue where the "Device Select Dialog" would not be displayed after loading a POF data pattern file that specifies a device that cannot be selected in BPWin.

BPWin v5.5.0 January 12, 2010

Algorithm Update Release

    • No Feature Changes

BPWin v5.4.2 December 18, 2009

BP-3000/4000 Series™ Autohandler

    • Resolved the following issues:

      • Quantity of devices per tube was not being updated during the middle of a job session.

      • The TS1500 did not process trays correctly in that it did not begin at row 1, column 1 after the first initial tray.

      • Incorrect successful device count using tubes.

BPWin v5.4.1 November 20, 2009

BP-3000/4000 Series™ Autohandler

    • Resolved the following issues:

      • The tapeloader would advance when the operator told it not to or after dismissing an empty pocket dialog.

      • The Programmer View would not be cleared under certain situations.

      • The "Vision centering failures" value displayed in the Job Summary would be incorrect.

      • A "All sites on the autohandler have become disabled and the job session cannot continue" message would be displayed inappropriately.

      • The Autohandler would not continue with the job session when a "maximum number of site failures" value was reached for a programming site under a some conditions.

Device Programming

    • Resolved an issue where programming NAND flash devices using non-FX4/FX2 style socket modules can result in a "Win32 Exception" error.

BPWin v5.4.0 November 10, 2009

General

    • BPWin now handles being closed by the user more gracefully while one of its exposed COM objects is in use by a separate application.

    • Resolved an issue where BPWin would not install to the correct default folder on some systems.

    • Resolved an issue where pressing the ALT-key immediately after BPWin is started results in the File menu becoming highlighted.

BP-3000/4000 Series™ Autohandler

    • Added new BPWin graphical user interface feature called "Autohandler View" which shows the system as the autohandler itself perceives it, with each peripheral shown at its taught location along with every individual device in the system. Color-coding is used to display real-time state changes for devices, peripherals, and programmer sockets.
      Expect to see many features added to the Autohandler View in upcoming releases!

    • Reduced pop-up message clutter by adding a dockable Notification Pane that manages all system notifications during an Automated job session. Instead of displaying all notifications simultaneously (reload messages, pick failures, etc), only the currently selected item in the notification pane is displayed at a time. Once the notification is handled, the next one will automatically be displayed. The pane can be used to select which notification you wish to address by clicking on the desired notification in the list. By default, the pane will appear when multiple notifications are received, and will hide automatically when all notifications have been handled.

    • The Continuity Failure Retry feature is now also supported by gang socket modules.

    • Removed inclusion of pick errors from the "Devices Failed" statistic displayed during a job session and from the "Failed Devices" statistic in the Job Summary Report. These statistics will only include actual device operation failures and Pick-and-Place vision centering failures.

    • The Pick-and-Place Motion Diagnostics have been enhanced with an automated X-axis and Y-axis encoder drift test.

    • Resolved an issue where Devices Per Hour (DPH) could decrease when teaching immediately before a job session is run.

    • Enhanced Pick-And-Place System Initialization by displaying a window that indicates initialization progress and allows the operator to abort it.

    • Updated the light tower reference table to include the light tower color when the Pause or Stop button is clicked.

    • Added detection for when a label does not affix to a device when "picking" from a programmer. Previously, this could result in leaving a device in the programmer which could lead to double stacking and, worst case, unprogrammed devices in the destination media. With the new detection logic, the operator is presented with a notification so that they can take the appropriate action.

    • Resolved an issue where a registry error could occur while running a job session with Serialization enabled.

Device Programming

    • The job progress statistics displayed during a concurrent job session have been moved from the main interface to a dockable property window that opens automatically at the beginning of a concurrent job session. This "Session Statistics" property pane provides even more real-time job progress statistics and can be positioned at any desired location or closed if desired. It also features a Description Area at the bottom of the window that provides a helpful description of the selected session statistic. In addition to the statistics previously displayed in the main interface, the "Session Statistics" pane displays:

      • Operation Efficiency - Ratio of Actual Devices per Hour (DPH) to Potential DPH.

      • Elapsed Time - The total time the job has been running.

      • Programmer Statistics - Detailed pass/fail statistics for each programmer which was previously only available after the job completes as part of the Job Summary Report.

      • Dead Time - The total time the system was paused during the job (Autohandler mode only).

    • Cumulative site statistics are now logged after each concurrent mode operation.

    • The data contents of modern MCUs that only have code at the bottom and top of a very large address range (ie. 4GB) can now be read and saved efficiently to Motorola S-files without needing to save the entire data pattern. This results in much smaller Data Pattern files.

    • Resolved an issue where the serial number displayed in the site boxes while running a job session with Serialization enabled would overlap with the displayed site yield.

    • Resolved an issue where loading certain binary Data Pattern files into BPWin would cause BPWin to stop responding.

    • Programmer Diagnostics now logs all power supply rail values to the blackbox.log file, even when the rail is within tolerance.

BPWin v5.3.0 October 6, 2009

Algorithm Update Release

    • No Feature Changes

BPWin v5.2.2 September 8, 2009

BP-3000/4000 Series™ Autohandler

    • Resolved an issue where a device would not be handled correctly when a recoverable mispick occurred.
      This can occur due to shifting media, particularly when using tape as input. If the device is slightly angled in the pocket, the nozzle will extend but there is enough of a vacuum leak that a seal does not occur. However, when the nozzle is raised, the device pops onto the nozzle and a vacuum seal is established. The Pick-and-Place should log the anomaly but treat the device as a successful pick.

BPWin v5.2.1 August 25, 2009

BP-3000/4000 Series™ Autohandler

    • Resolved an issue with using the tape feeder peripheral as input where the job session would not complete if a pick-and-place or programming error occurred after Devices Remaining had reached zero.

BPWin v5.2.0 August 11, 2009

BP-3000/4000 Series™ Autohandler

    • Removed unnecessary dialog from Tape Feeder and Label Presenter teach. The functionality that previously existed in the Nozzle Pickup Offset dialog is now handled by the Auto Learn Z-axis checkbox in the Adjust Nozzle Position Dialog. Instead of having to adjust the pickup offset for the Tape Feeder after the Z-axis position was already determined, the operator can set the exact Z-axis position that the Pick-and-Place will pick from. Also, the removed dialog was previously needed to help reduce the number of pick failures that resulted from shifting media, but since Pick Retries were introduced, shifting media is much less likely to cause a pick failure.

    • The thickness of the label is now added to the alignment offset when any labeled devices are passed by the Laser Align Camera, resulting in a reduction of alignment retries. The thickness value can now be entered by the operator during the teaching of a Label Presenter.

    • Resolved an issue where a "boost::bad_format_string" error message can occur when the APS is initializing and BPWin is running on a computer for the first time.

    • Resolved an issue where BPWin incorrectly reports that a "3610/3600" is connected if no parallel port communication is established and no prior handler serial number is stored in the registry.

    • The process of teaching the Laser Marking Nozzles has been improved by providing better visual feedback and allowing multiple nozzles to be taught during the same teach session.

    • The peripherals that can be specified as the destination for the Automated Extraction of Target Devices now also include the Shuttle and the TS1500 Tray Stacker.

    • Resolved several issues where the operator was given the wrong instructions when teaching involved DIP packages.

    • Resolved an issue where the Camera to Nozzle Offset Calibration was allowing the operator to issue the command to "Measure" when there was no socket module in the master site.

    • Resolved an issue where the ENTER and ESC keyboard keys can become unresponsive while using the Tray Pocket Teach window.

    • Resolved an issue where socket open/close operations could not be performed if no device was currently selected.

Device Programming

    • Added support for new 16GB (128Gb) memory SIMM for Flashstream programmers.

    • Improved Flashstream broadcast time by a factor of 6.5x for both 4GB and 16GB memory SIMMs resulting in transfer bandwidth of 180 Mb/s. Broadcast 1GB of data in ~45 seconds.

    • Improved Flashstream memory data usage by adding error correction support that can correct a single bit error in every 256 bytes of data. This will alleviate Memory Integrity Check failures experienced by a few of our customers when using certain data patterns. Note that the hardware Memory Integrity Check still exists as a redundant check.

    • COM Serialization now has an "ESS Test" feature, allowing you to test your ESS without the use of a programmer.

    • COM Serialization can now be configured to use Microsoft's DCOM technology to access an ESS deployed on a remote computer.

    • Added option to use the Job ID as the file name for the automatically-saved Job Summary Report.

    • Resolved an issue with Motorola S-Record files with very large gaps in addressing. These data pattern files will now load without error and without allocating excessive buffer memory.

    • The behavior of the NAND Options \ "Capture Bad Blocks during Read & Compare" has been enhanced. When this option is enabled, devices will not be failed due to an excessive number of bad blocks or block zero being bad during the Read and Compare operations.

    • Resolved an issue where certain types of External Serialization Programs (ESP) could cause the High File Address setting to be cleared.

    • Added an "Enhanced Device Security Options" feature that can be utilized by certain devices to allow specifying a large number of special security options.

    • Resolved an issue where the wrong device was selected as a result of loading certain POF data pattern files.

    • Resolved an issue where BPWin would terminate when switching programmers models while "BP Microsystems Diagnostics" is selected.

    • Serialization Log Files can now be used with Engineering programmers.

    • Resolved an issue where the combo list boxes in the Device Command Tabs would not display their complete contents in Windows 2000.

BPWin v5.1.0 July 7, 2009

Algorithm Update Release

    • No Feature Changes

BPWin v5.0.2 June 5, 2009

BP-3000/4000 Series™ Autohandler

    • Resolved a GUI issue that was preventing some users from teaching.

BPWin v5.0.1 May 18, 2009

BP-3000/4000 Series™ Autohandler

    • Resolved an issue where devices could be rotated to the wrong orientation when using tray stations where the Pin 1 orientation is taught towards the front of the autohandler.

Helix

    • Resolved an issue with the Helix system failing to launch when a message prompt was issued during BPWin startup.

General

    • Resolved an issue with a missing DLL when installing onto Windows 2000 systems.

BPWin v5.0.0 May 12, 2009

BP-3000/4000 Series™ Autohandler

    • The Pick-and-Place Motion diagnostic now offers a W-axis test that can detect and notify the user if there has been a loss of motor counts during the test. This can reduce troubleshooting time if a defective motor or motor driver is suspect. This test requires a diagnostic nozzle tip which can be purchased from BPM.

    • Added the convenience of drag-and-drop loading of an Autohandler file (.abp) while in the main BPWin window. Dragging and dropping a file with an extension other than a JobMaster/Autohandler file extension will open the dialog to load the file as a data pattern.

    • Tube location teaching improvements. Added a tube location teaching wizard that guides a user through the teaching process. Tube peripherals can now be mounted on any side of the autohandler which is useful if there are physical space constraints in the workspace area, currently this feature applies to the BP-4000 Series. Note that tube locations that are taught with a fastened orientation other than the back side of the automated programming system cannot be used in previous versions of BPWin.

    • Added support for user selectable system of units, U.S. Customary or International System of Units (SI), to be displayed on all dialogs. SI users will no longer have to spend time converting to U.S. Customary values for input fields.

    • Full support of horizontal tray traversal during a job. Trays can be oriented vertically or horizontally, then when teaching a tray, select to traverse vertically or horizontally. Note that tray locations that are taught with a horizontal traversal cannot be used in previous versions of BPWin.

    • Added an autohandler toolbar with commonly used commands. The toolbar can be hidden, floating or docked on the main BPWin window.

    • Site status box improvements. Site box background color for "Active" now matches the socket's LED status color on the programmer during a job run. For FX4 socket modules, individual site status information, including yield, is now displayed in real-time while hovering over a site status box.

    • Other minor GUI improvements.

    • Fixed an issue where the TS-1500 tray setting would not be saved the second time the station was taught.

    • Corrected an issue where the button to open the date/time format specifier menu was enabled in the Laser Configure dialog while in Operator mode.

    • Fixed an issue where the autohandler could lose track of a device if a pick error occurred during a specific sequence of events causing double stacking of devices in a socket on a programmer site.

    • Fixed an issue where aspects of the "Laser Marker Configure" and "Laser Configure" dialogs were able to be manipulated in JobMaster Operator mode.

Device Programming

    • The following models are no longer supported in this version, BP-1400 and BP-2200.

    • Compression of data patterns stored inside of JobMaster files (.bp) has been added. In most cases, this will significantly reduce the size of .bp files. Data pattern compression is enabled by default, but can be disabled in JobMaster/Configure.

    • COM Serialization is now enabled by default when using Complex Serialization. You may still opt to use Legacy Complex Serialization. Existing JobMaster jobs are unaffected by this change.

    • Added the convenience of drag-and-drop loading of a JobMaster file while in the main BPWin window. Dragging and dropping a file with an extension other than a JobMaster/Autohandler file extension will open the dialog to load the file as a data pattern.

    • User's locale format will be reflected in dates and times displayed in BPWin. Jobs made prior to v5.0.0 will not fail JobMaster Integrity Check because of this change.

    • A progress indicator will be shown while loading and saving JobMaster files using an embedded data pattern.

    • BlackBox file archiving default limits have increased and can be set by editing the size of the BlackBox log folder (default is 1GB) and the maximum file size (default is 10MB) in the registry keys.

    • Added the option to move the caret to a relative address while in the buffer editor.

    • Output window improvements. The re-sizable window can be docked to the main BPWin window and replaces the Status bar. Hiding or floating the window is still available. The contents of the window can be selected and copied to the clipboard or cleared at any time.

    • Added a toolbar with commonly used commands. The toolbar can be hidden, floating or docked on the main BPWin window.

    • Site status box improvements including the site box background color for "Active" now matches the socket's LED status color on the programmer during a job run.

    • Other minor GUI improvements.

    • Fixed an issue where an error message was displayed when loading a job that selected a device from a distinct set of devices.

    • Fixed an issue where if a device operation offered "Secure" then "Test Twice", the "Test Twice" operation would be performed if not selected.

    • Corrected a GUI issue where the modified Data Pattern indicator (*) would not appear next to the file name if an invert was performed on the buffer contents.

BPWin v4.83.0 April 7, 2009

Algorithm Update Release

    • No Feature Changes

BPWin v4.82.1 February 24, 2009

Device Programming

    • An issue was resolved when attempting to update a JobMaster file. This would occur after loading the JobMaster file and being prompted to update the JobMaster file because of a device algorithm change in BPWin v4.82.0.

Back To Top

BPWin v4.82.0 February 10, 2009

BP-3000/4000 Series™ Autohandler

    • A Pause button has been added to the BPWin main screen to allow for the following actions during a job session:

      • Changing the quantity of the job

      • Editing laser marker settings

      • Perform Pick-and-Place, input/output, and sensor diagnostics

Allowing these actions during the job helps eliminate the need to cancel the job. Additionally, this will minimize the number of job statistics records for jobs needing modifications. Reteaching a peripheral location is now done using the Pause button instead of the Stop button.

    • Improved upon the "Specify First Pocket on Input Tray" setting. It has been renamed to "Specify Next Pocket on Reload and Mispicks".

      • Allows users to set not only the initial pick location, but also the initial place location.

      • When using "Specify Next Pocket on Reload and Mispicks" and a pick error occurs, the Pick-and-Place may continue searching the tray for a device while the "Pick Failure" dialog is displayed. If a device is found, the dialog will automatically disappear. If the operator selects the next pocket on the dialog then the Pick-and-Place will immediately go to that pocket.

      • This can be used for any tray station, including the TS1500, shuttles and reject stations.

    • Added the ability to re-enable a disabled site if it has reached the "Maximum number of site failures" during a job run. The job can continue while a socket is being cleaned or replaced. After installing the socket and re-enabling the site, the job can be resumed preserving the job statistics.

    • In BPWin Help, added instructions for calibrating the laser marker nozzles.

    • Fixed an issue where an Autohandler file made prior to BPWin v4.78.1 would load with a laser power of half the original saved value.

Device Programming

  • Device operation combo box selections now persist through any of the device command tabs resulting in less manual maintenance of the same combo box selections under different tabs. For example, if "Verify Once" is selected under the "Verify" tab, when the "Program" tab is selected, the "Verify Once" selection will also be the selection in the "Program" tab. Use of JobMaster files made prior to v4.82.0 will be compatible with these changes.

  • Viewing and selecting available device operations has been made easier. Use of JobMaster files made prior to v4.82.0 will be compatible with these changes.

    • Device operations, "Continuity", "ID Check", "Erase", "Blank Check", "Encrypt" and "Decrypt", have been moved into their own combo boxes so all unique types of operations available can be easily viewed on the BPWin main window in the respective device command tabs.

    • Device operations, "Sum" and "Compare", previously located in the "Verify" tab are now in their own respective tabs. The "Compare" tab will be visible but the command will not be executable when a locked JobMaster file is loaded.

  • Other GUI improvements on the BPWin main screen include graphical execute start and stop buttons, job completion progress bar, and some Windows XP style enhancements.

  • BPWin now provides support for a new form of serialization called "COM Serialization", which uses a COM object that is implemented and deployed by you and is referred to as the External Serialization Server (ESS) to provide the data pattern modifications to BPWin in binary. There are no more file formats for you to develop logic to generate, and for BPWin to subsequently parse, as well as file access issues to deal with.

COM Serialization can be used to modify data pattern addresses that are up to 64-bits wide and facilitates being notified of the results of a device operation in real-time.

An ESS can be implemented using a free Software Development Kit (SDK) from the BPM Microsystems' web site that includes guides, libraries, and source code examples for Microsoft Visual C++ and Windows Script Components (.wsc files that use JScript and VBScript). Also, a formal description of the requirements of an ESS is included in the SDK documentation; the information in the description can be used to implement an ESS using any development tool that supports COM, including C, C#, Visual Basic, etc.

Legacy Complex Serialization is still available. Jobs using legacy Complex Serialization can still be made. JobMaster files with legacy Complex Serialization made prior to v4.82.0 can still be loaded and ran using legacy Complex Serialization.

  • Added feature when running a job quantity greater than one on a BP-2800F to always check for sufficient broadcast memory capacity after fully analyzing the data pattern prior to performing a master device operation. This will save time, particularly when large data patterns are used, by notifying the user of insufficient memory sooner rather than at the time of broadcasting.

  • Added an option, "Update Quantity After Aborted Session" allowing the job quantity to be updated to the number of remaining devices on an aborted job. Having BPWin update the job quantity can help save time and reduce quantity errors when resuming a job that has been aborted.

  • The Job Summary Report's Data Pattern section now includes the checksum method and type, the default buffer value and the file type loaded.

  • An issue with the BP-1410 and BP-1610 programmers was resolved where in some circumstances, a "Program" or "Verify" failure would cause subsequent devices to fail "Program" or "Verify".

  • An issue with POF data pattern files parsed by BPWin displaying an incorrect checksum has been resolved.

  • An issue using Complex Serialization where a "T06" code in certain ESP files would be recognized but the job would not get aborted by BPWin has been resolved.

  • A JIC issue was resolved where some devices supporting "special operations" would fail JIC.

  • An issue preventing loading of JobMaster files containing non-ANSI characters in the file or path name was resolved.

BPWin v4.81.0 January 6, 2009

Algorithm Update Release

    • No Feature Changes

Back To Top

BPWin v4.80.0 November 11, 2008

BP-3000/4000 Series™ Autohandler

    • Improved Devices Per Hour (DPH) when using tape loader for media to media transfer.

    • Added an "Auto Calculate Alignment Tolerance" option for use during Vision Centering of devices. The tolerance is based on the narrowest package dimension and common manufacturing variances. The choice to enter this value manually still exists.

    • "Pick-and-Place Settings" changes:

      • "Drop distance" has been replaced with "place overdrive". Any configurations from prior software versions using "drop distance" will be converted to use "place overdrive".

      • "Pickup offset" has been renamed "pick overdrive".

      • Added ability of "pick retries" where the Pick-and-Place will search downward for the device in increments of 10 mils before it reports a pick error. This will reduce the number of pick errors on non-uniform (warped) media where the Z-axis pickup distance varies from device to device.

  • Added the ability to manually teach the X, Y, and W-axes and/or the Z-axis when auto-teaching is not desirable. This can be the case for small packages during X and Y-axis auto-learning when puff-off causes a device to shift in a tray pocket or when the nozzle vacuum lifts the device during Z-axis auto-learning.

    • BPWinLauncher now supports loading Automated JobMaster (.abp) files using the original version of BPWin used to save it.

    • The wizard to teach a tray has improved:

      • Added a dialog with graphics that easily lets you choose any of the four tray corners for the first pocket location.

      • Dialogs with animated graphics that guides you through teaching the second and third pocket locations.

      • If, on a 4000 Series Autohandler, the first pocket location is not viewable with the downward camera, a nearby pocket that can be seen with the camera can be used. BPWin will interpolate that location to derive the first pocket location.

    • Added a "Pick-and-Place Motion" diagnostic to provide an easy interface for exercising the axes of the Pick-and-Place separately or concurrently.

    • Added "I/O and Sensors" diagnostic to check functionality of the I/O operations and sensors.

    • Additional real-time job statistics are available, including "Potential DPH", "Actual DPH", "Time Remaining" and "Yield".

    • Adjusted the vision centering W-axis velocity while measuring a device on a 4000 Series Automated Programming System. This will minimize the number of alignment rejects.

Device Programming

    • Added a "Job Protection" feature that allows you to "lock" a JobMaster job by specifying a password when saving it. This feature allows for Intellectual Property protection in that an embedded data pattern cannot be viewed or edited by anyone that does not have the "Job Lock" password. Additionally, programming-related parameters, except for Serialization options, cannot be modified without the password. A protected job will remain locked and secure on any PC, with any programmer or user.

    • The device commands, "Secure" and "Vector Test" now appear as individually selectable options instead of being combined into a single option selection. For example, instead of "Secure & Test Twice" appearing in the same drop-down list box, each will appear in its own respective drop-down list box.

    • For devices that support multiple Secure types, the type of security selected will be consistent across the "Program", "Verify" and "Secure" tabs. The ability to disable "Secure" separately in the "Program" and "Verify" tabs still exists. When loading JobMaster jobs created prior to v4.80, the security option will be set according to the "Program" tab if "Secure" is enabled there, otherwise the security option selected in the "Secure" tab will be used.

    • JobMaster Integrity Check has been upgraded to detect incompatibilities between the current job settings and the device. You will now receive Job Integrity failures after you run a job more than once in the same BPWin session if the original job settings are not 100% compatible with the device. Note that previous versions of BPWin would simply correct the incompatible settings and continue with the job.

    • Additional real-time job statistics are available, including "Potential DPH", "Actual DPH" and "Yield" in concurrent mode.

    • A Job Summary Report will be displayed whenever a JobMaster job is loaded, regardless of the quantity. When a job file is not loaded, the display of the summary is the same as it always has been (that is, only shown if the quantity is larger than 1).

    • Added to the Job Summary Report's "Overall Statistics" section, "Potential DPH" and "Operation Efficiency".

    • HKLM Registry key added to allow you to change the maximum number of BlackBox Log files that are archived before overwriting the oldest logs.

    • Digit grouping capabilities have been added to the User Options dialog that utilize the PC's current regional settings to display numbers more clearly.

BPWin v4.79.0 September 30, 2008

Algorithm Update Release

    • No Feature Changes

BPWin v4.78.1 September 8, 2008

BP-3000/4000 Series™ Autohandler

    • Resolved a "Galil Buffer Overflow" error message affecting some systems during initialization.

    • Resolved an issue resulting in an "unexpected internal error" and terminated job session that sometimes occurred following a pick error from a programmer socket that had just failed continuity test or a device operation.

Device Programming

    • An issue was corrected with JobMaster Integrity Check improperly reporting "manual change" failures when using .bp files created in 4.76 Beta and 4.78 Beta versions. Only jobs created in these particular Beta versions were affected.

Back To Top

BPWin v4.78.0 August 19, 2008

BP-3000/4000 Series™ Autohandler

    • Feature added that allows partial trays as inputs by using the "Specify first pocket on input tray" option. This can be set at the start of a job session, during a "reload tray" prompt, or during an "empty pocket detected" prompt.

    • Job Summary Report Statistics now categorizes failure details to either Device Operation or Autohandler.

    • BP-4000 supports a 9-Site configuration.

    • Axis time-out error messages added for both the 3000 and 4000 series to help aid in troubleshooting.

    • TM-50 and TM-330 tape loader error message has been enhanced to show which of the 4 sensors are reporting an error.

    • Fixed bug where BPWin could lock up after executing the Empty Socket Test.

    • Fixed bug where invalid error message appeared when teaching the Camera To Nozzle Offset.

    • Fixed Light Tower's red light error during device programming when using the Component Express tube loader.

Device Programming

  • MMC and SD Flash Memory devices can now be supported in BPWin on the 2800F. Algorithms for these devices will contain an "Image Format" tool in the Device menu. This tool must be used to pre-format your binary data pattern image so that it will be compatible with the 2800F's Vector Engine hardware for high-speed program/verify of SD and MMC devices.

  • The core BPWin software is now capable of supporting devices and data pattern files up 8Eb (exabits) in size. The full memory capacity of the 2800F can now be used. This allows support of 32Gb NAND Flash, both managed and raw using NAND Options, on the 2800F.

    • The operation range will now show up in the Device Options for NAND Flash devices that support NAND Options.

    • Serialization is still limited to 32-bit addresses. A future version of BPWin will allow serializing addresses over the 4GB barrier.

    • A pop-up progress indicator will be displayed during CSUM calculations. For small data patterns, it may be too fast to be seen. For large data patterns, this will be helpful since it could take several minutes to compute a multi-gigabyte data pattern on a slow PC. Note that you may not abort a CSUM calculation like you can other types of lengthy operations.

  • New Buffer Editor Features

  • View the buffer as Bytes or Device Words (1-, 8-, 16-, and 32-bit). The Device Words view takes byte order into account so you can see the data exactly as it will be programmed into the device.

  • User selected data is highlighted. When using buffer utilities, starting and ending ranges will be auto-filled with selected data.

  • Enhanced buffer utilities, which includes Goto, Copy, Fill, Invert, and Search. The Fill utility now allows filling with multi-byte data according to the current buffer view. The Search utility has been improved to allow iterative searches without having to re-open the Search dialog after each pattern match or adjust the starting search address.

  • Modernized GUI. The line the that contains the cursor is highlighted. The active data word is highlighted in both the Hex and ASCII windows. Buffer addresses may grow arbitrarily large and will only be displayed with as many digits as needed to accommodate the current buffer size.

  • The "Verify Data Pattern Checksum" option has been removed from JobMaster Configuration and replaced with a CRC-32 integrity check that is always enabled. This calculation is automatically performed during the JobMaster Integrity Check.

  • Data patterns that are not stored in the JobMaster File can now be changed after the job is saved, without causing errors during JobMaster Integrity Check. You can control this feature via the "Report Data Pattern Changes As" option in JobMaster Configuration.

  • Auto Continuity behavior has been improved for the 2800F Flashstream programming system - The operation will begin only when PRESENT socket cards have passed continuity. If a card for only Socket A is present, continuity must pass only for that one socket, and not the remaining three. It is now also possible to use the Auto Continuity feature when using multiple sites concurrently, each with a different number of socket cards present. Each site will start the device operation once all of the site's populated sockets has passed continuity.

  • The number of Serialization Log files archived can be user-defined through a registry entry.

  • Support for Socket Card Serial Numbers - All Socket Cards now feature a manufacturer-assigned serial number.

  • Socket Card Maintenance Intervals have been added to each Socket Card. This allows you to specify a certain number of insertions (for each socket independently) after which BPWin will issue a warning or optionally abort the job in Operator mode. The "Number of Insertions Since Last Reset" is used to determine when the warning/error should be issued.

    • This allows you monitor the age of your sockets and perform periodic maintenance on them as needed. This feature can be controlled and enabled for each socket (including pre-existing sockets) by using the "Socket Module Counter" dialog. Specifying a maintenance interval of 0 for a particular socket (default setting) will disable the feature for that socket.

  • BPWin self test site data dump information now includes the Socket Module serial number and the serial number for each Socket Card.

  • Job Summary Report additions:

    • Added "Workstation" and "User" name to the Job section.

    • "Algorithm Revision" has been added to the Device section.

    • "Last Serial Number" and "Last Assigned Serial Number" has been added to the Serialization section. These reflect the Last Serial number entered in the Serialization dialog and the last serial number used for the job.

    • "Operation Time" has been added to the Statistics section which shows the minimum, maximum, and average elapsed site times.

    • Socket Card serial numbers will be included in the Socket Module Insertion Counters section.

  • Fixed bug introduced in BPWin v4.76.0 concerning Job Integrity Check failure on jobs made in v4.75.0 or lower that use Simple Serialization. The simple serialization address was not loaded properly from the job, resulting in a JobMaster Integrity Check failure. This has been resolved and these jobs should now load properly.

  • Programmer name for 1410/84 shows the correct name instead of 'B' on the Job Summary Report.

CJobControl and CJobMonitor

    • Example C++ client code using CJobControl and CJobMonitor objects is available.

BPWin v4.77.0 July 08, 2008

Algorithm Update Release

  • No feature changes.

Back To Top

BPWin v4.76.0 May 20, 2008

BP-3000/4000 Series™ Autohandler

    • Added an automated removal of target devices option during an all programmer sites teach. This will eliminate the need to manually remove devices from sites after teaching and reduces the overall teach process time, particularly when performing an all sites teach.

    • Eject Shuttles option added which will eject all trays from attached shuttles.

    • Autohandler Options | Maximum Site Failures value is preserved after BPWin is closed. The next time BPWin is launched, this value will be retrieved from the last BPWin session.

    • New package teach will have the Centering Algorithm default type as "CyberAlgo1" instead of "None".

    • Enhanced tray reload logic for Primary and Alternate trays. BPWin can now have an empty Primary tray at startup. Also, if there are not enough devices in the Primary and Alternate tray sources to fill the Primary, the Alternate source will allow user to reload a blank tray using the Alternate tray.

    • Restored accessibility to .abp workflow settings without the requirement of BPWin being connected to an autohandler.

Device Programming

    • Support for MLC NAND Flash devices on the BP-2800F has been added to BPWin. NAND Options now has a Bit Error Rate Tolerance field which works in conjunction with specialized hardware in the Vector Engine Co-Processor to achieve patent-pending high-speed programming of MLC NAND Flash. Device algorithms for MLC NAND can now be supplied in this version of BPWin -- submit your MLC device requests today!

    • Windows Account-Based security model is now supported. Permissions to BPWin features may be selectively granted or denied to specific operators by using standard user management tools already included with Windows. The Shared-Password security model still exists as an option.

    • Large Binary Data Pattern support. A Stream-From-Disk Data Pattern model has been implemented to support binary Data Patterns larger than 1 GB. Users may now load and manipulate arbitrarily large binary Data Patterns, beyond the extent of the installed RAM.

    • Several buffer performance enhancements have been made. Depending on hard disk performance loading and saving binary Data Pattern files less than 1GB is about 4-5x faster, and Auto Range analysis is about 2x faster.

    • Ability to add HTML or CSS code to the Job Notes. Add text that attracts a user's attention or add clickable links to the Job Report.

    • JobMaster loading and saving time has decreased.

    • Checksum calculation times have been decreased.

    • Device Compare operation time has decreased.

    • CRC-32 has been added as a data pattern checksum option.

    • The Buffer Editor has been modified to allow editing and viewing buffer up to 2GB. In the future this editor will be re-done to accommodate larger sizes, but for now 2GB (0x7FFFFFFF) is the limit.

    • The Device Range dialog now can support addresses up to 7FFF FFFF FFFF FFFF as both the low and high address.

    • The buffer offset in the Buffer Offset dialog can be as low as -7FFF FFFF FFFF FFFF depending on the starting device address specified and as high as 7FFF FFFF FFFF FFFF.

    • Added support for Motorola S-Record files which contain out of order addressing.

    • Device | Select Device... now has the last 10 unique devices most recently used in a drop-down list in the "Look for" text field.

    • Run Memory Test checkbox value in Tools | Programmer Diagnostics is preserved when closing BPWin. The next time BPWin is launched, this option will be enabled\disabled based on the previous BPWin session.

    • Socket Module LED test added to Flashstream Diagnostics.

    • Site Number Assignment tool menu item is disabled in Operator mode.

    • Novice mode issues a notification dialog to continue when there has been a request to stop programming or other device operations. Device operations will stop when the user clicks "Yes" in this dialog.

    • Removed Buffer Offset option in Device Config. when a STAPL file has been loaded.

    • An issue was resolved with Complex Serialization data over 65,535 contiguous bytes causing an exception when used to retry a previously failed operation.

    • Fixed bug where Serialization Data and Log file names entered in the Serialization dialog without a file extension, were not automatically appended with a ".dat" or ".log" extension by BPWin.

    • Fixed problem where for certain devices and conditions, the programmer could incorrectly report a Data Skipped error.

    • Fixed bug where some jobs which contained devices that use UFields would incorrectly trigger a Job Integrity Check failure.

BPWin Help

    • Pages that had bulleted links to topics, located near the top of the page, now have a drop-down menu with topic links when the page title is left-clicked.

BPWin v4.75.0 April 08, 2008

Algorithm Update Release

  • No feature changes.

Back To Top

BPWin v4.74.1 March 6, 2008

Device Programming

    • An issue was corrected with Job Master Integrity Check improperly reporting "manual change" failures in .bp files created in 4.74.0 in some locales outside of the US. Customers experiencing this issue must use 4.74.1 to re-create any jobs that were saved in 4.74.0.

BPWin v4.74.0 February 19, 2008

BP-3000/4000 Series™ Autohandler

  • Automated handler peripheral pdf manuals are externally linked in the BPWin Help manual under Chapter 7, Peripherals.

  • Added support for "Low Profile" and custom trays on the TS-1500™.

  • For media with multiple target teach locations, such as trays and FX4™ socket modules, BPWin now retains the pin 1 orientation for subsequent target teaches after pin 1 has been indicated for the first target teach.

  • The number of rows and columns for trays are retained if a re-teach is required.

  • Added ability to advance the Tape Loader at the end of the job via BPWin.

  • When using a Tape Feeder, an error message is displayed on the first pick error.

  • More options are available when teaching all programmer sockets that can significantly reduce teach times:

    • Only one target device is required to teach all sockets on the programmer site.

    • Quickly validate and adjust previously taught sockets using one target device.

  • Improved alignment re-try for VSOPs.

  • Increased speed of alignment operations by reducing number of rotations.

  • Improved nozzle alignment by minimizing effect of nozzle runout.

  • Created new diagnostic to test the image quality of the CyberOptics®Laser Align Camera.

  • The quality of the laser mark can be configured without opening the Prolase software.

  • "Laser Configure" dialog layout improvements.

  • Autohandler axis specified when a motor time-out error occurs.

  • Light tower on autohandler now turns red when the autohandler has stopped due to a pick error.

  • BPWin now allows user to enable or disable the BP-4000 downward vision camera when teaching all peripherals.

  • The last folder path will be displayed first when browsing to select an autohandler workflow file.

Device Programming

  • The "Continuity and ID Check" setting has been changed to be consistent across all operation tabs. Changes made to this setting will now apply to all operation tabs, rather than each tab retaining a unique setting. When loading job files created in previous BPWin versions, the "Continuity and ID Check" settings for the tab that was active when the job was created will be applied to all operation tabs.

  • Added NAND Flash operation option to allow custom Bad Block Markers in the data pattern.

  • Added NAND Flash partition table import capability that supports Qualcomm®and CSV formats.

  • The Auto Range feature is now enabled by default for most Flash device algorithms. Auto Range can now be combined with a user-specified range for algorithms that support it. Existing JobMaster™ jobs will not be affected by this change. You are encouraged to review the range settings for your Flash memory jobs -- you might be able to get a significant performance boost by using this feature!

  • Power supply status information is now available for the BP-2800F™ model.

  • "Site License Expiration" date has been added to the programmer diagnostics output.

  • Serialization log file now contains entries when Quantity = 1 on a concurrent programmer.

  • Complex Serialization's data file is created by the External Serialization Program. The data file is closed during device programming.

  • The "Job ID" option has been moved to the "JobMaster | Configure..." dialog.

  • All supported Socket Modules will now appear in the "Device Information" report.

  • Added scroll bar to the "Select Device" dialog to view long device names.

  • The "Device Configure" button will display a pop-up menu instead of a dialog when clicked.

  • Added option to cancel a data pattern load-in-progress. This can be accomplished via the ESC key. Saving a data pattern now has a progress indicator and can be canceled as well.

  • Concurrent manual programmers will display the overall job start and stop time in the Job Summary Report.

  • Socket Module, Job Load, and the Job Summary Report now use an HTML format. You may directly cut/paste, save, and print this content. The Job Summary Report now has an HTML file extension and the index number included in the file name.

  • The power supply log time stamp format has been changed to:

YYYY-MM-DD hh:mm:ss +\- Local time and UTC difference, for example, "2008-02-19 11:24:59 -0500".

  • "Data Pattern File" dialog layout improvements.

  • "Serialization" dialog layout improvements.

  • Technical support links added in "Help | Technical Support".

  • No longer will get an exception error when selecting the "Special Operations" tab on some devices.

CJobControl

    • Methods SetJobParameter, LoadPatternFile, BeginJob, LoadBpFile, SaveBpFile, LoadAbpFile, SaveAbpFile, and SetDefaultConfiguration now return an HRESULT indicating one of the following preconditions were not met:

      • A job is not running.

      • A programmer is connected.

      • The connected programmer has the CJobControl feature enabled.

    • Method Abort now returns an HRESULT indicating one of the same preconditions as above were not met except for "A job is not running".

CJobMonitor

  • New events:

      • NotifySerializationAssignment - reports the serial number of the device under test.

      • NotifyConfigurationUpdate - raised when BPWin detects a change in system information.

      • NotifyBpWinShutDown - allows client code to synchronize with the lifetime of the BPWin application.

    • Method GetSystemInfo now returns an HRESULT indicating one of the following preconditions were not met:

      • A job is not running.

      • A programmer is connected.

      • The connected programmer has the CJobMonitor feature enabled.

Back To Top

  • Microsoft is a registered trademark, and Windows, Visual C++, C#, Visual Basic, and JScript are registered trademarks of the Microsoft Corporation in the United States and/or other countries.

  • Any other company names or products mentioned herein may be the trademarks or registered trademarks of their respective owners.

Copyright © 2016 BPM Microsystems


BP3000/4000 APS

BPM Microsystems

BP-3000/4000 Series Autohandlers


Commissioning/Decommissioning

Note that the Commissioning Procedure will be shown, but the Decommissioning procedure will be identical, but in the reverse order.

  • Verify there is no shipping damage when inspecting the crate. Utilize the shipping safety devices installed on the side of the crate.

  • Remove all the panels from crate using a cordless drill.

  • Note the Center of Mass and lifting points for the APS.

  • After the panels have been removed, remove the shrink wrap from the machine.

  • Lift the APS on the shipping crate base using a forklift, and remove the rubber shipping damper feet by unscrewing the bolts from underneath the base.

  • Be very careful and do not allow personnel to be directly under the APS while removing the bolts as this is a safety hazard.

  • Once the bolts are removed, place the APS on the ground, and using a forklift, carefully lift the APS off the shipping container base and install the standard feet.

  • While still on the forklift, remove the machine from the base, and set on level ground where the APS is to be installed. Adjust the height of APS by using a wrench to turn the standard feet and level the height. Refer to Center of Mass and Lift Point diagrams.

  • Make sure to allow the necessary clearance around the machine as indicated.

  • Remove all of the zip-ties used to secure the X belt, the Z-Theta assembly, and the key set. Verify no shipping damage has occurred, and the head assembly moves freely.

  • Install monitor arm assembly.

  • Connect all cabling on the rear of the APS.

  • Connect the main air supply line as indicated.


3x4x Safety

I. BP- 3000 / 4000 Autohandler

Safety and operating precautions

Read all safety material and become familiar with all of the hardware, switches and controls before operating the machine.

Safety Signs in this Manual

WARNING

A Warning sign glyph indicates a potentially hazardous situation which, if not avoided, may result in death or serious injury.

Important Notice

An Important Notice sign glyph is used to notify about important information to ensure proper operation or to minimize property damage.

Hazards and Cautions on the 3800MK2

Indicates Electrical Hazards: Enclosures contain electrical equipment that can give rise to a risk of electric shock.

Indicates Mechanical Hazards: Hand pinch/Moving parts mechanical hazard exists.

Emergency Stop Button

One of the most important features of the BP-3000/4000 is the red Emergency Stop Button (E-Stop). Ideally, you should never need to use it, but if anything (a hand, a tool, etc.) is inside the autohandler while the head is moving, it is the quickest way to stop everything and minimize potential injury and damage to the object or the unit. Once pushed, the button remains locked (pushed down) and will not retract unless pressed and rotated clockwise (the direction indicated by the arrows) simultaneously.

E-Stop Location on the BP-3000 series

On the front of the machine on the upper-left and upper-right side.

E-Stop Locations on the BP-4000 series

On the upper-right of the machine frame, front and back – for quick and easy access. The Main power, Auxiliary power, and Programmer power switches are also turned off when the E-Stop button is pushed. You will need to switch these back on after the E-Stop button is retracted.

Autohandler Cover Safety Interlocks

The access cover (door) on the autohandler has an electrical/mechanical interlock as a means of security. When connection is broken at the interlock, the head automatically ceases all motion and remains in place. Unless the door is closed, the motor power is disabled. Other functions, such as the computer, are not affected.

Precautions for Operation and Maintenance

  • Never put your hands or a tool inside the enclosure without opening the access cover (door). The door has a safety interlock switch, that disables the motors, when opened. The head moves with great speed and force. A collision can cause injury to the operator or to the Pick-and-Place head.

  • Loose or frayed clothing, dangling ties, finger rings, etc., must not be worn around moving machinery where they can get caught.

  • The autohandler shall not be repaired or adjusted while in operation.

  • Proper installation and removal of the pressure plates is required to prevent damage to the T-post components.

  • Be sure the pressure plates are securely fastened to the posts.

  • When using FX2/FX4 and FVE4 type cards, a minimum of 2 cards, installed in the first and last positions of the socket module is required. This ensures even pressure being applied on the pressure plates during operation.

  • You can move the head by hand to clear an area you want to reach. Make sure the Z-rod (nozzle) is in the up position to avoid collisions! To move the head in the left or right, hold it by the gantry frame. To move it in toward or away from you, hold the metal shield at the front of the Pick-and-Place Head (gantry) to pull or push the head. When you close the door, the head will return to its original position, so make sure you leave nothing in its way.

Units Equipped with Laser Marking

The laser shipped with the autohandler is classified as a Class I Laser Unit incorporating different classes of laser products. Although these laser products can and may be harmful, BPM Microsystems has carefully established protective housing and safety interlocks that prevent access to radiation from these lasers.

  • Avoid exposure to the laser beam. To ensure that possible exposure to laser radiation is avoided, the covers of the BP-3000/BP-4000 autohandler and Laser should not be removed under any circumstances unless done by an authorized technician or representative of the BPM Microsystems staff.

  • As with any laser, direct and constant contact should be avoided. Exposure to the Laser may be harmful to the skin and eyes. The Laser Containment Unit contains visible and invisible laser radiation; therefore, access to the Laser Containment Unit is unauthorized and should not be attempted by any person except an authorized technician or representative of the BPM Microsystems staff. Performance of procedures other than those specified herein may result in hazardous radiation exposure.

  • Disposal of this product should be handled according to all national laws and regulations.


Intro and Features

I. BP- 3000 / 4000 Autohandler - ch 1

Introduction

The BP-3000/4000 series are the first autohandler systems to incorporate self-teaching and non-stop operation. It is designed to be the most convenient way to program all varieties of surface mount devices.

The BP-4000 series meets the rigorous demands of today’s programming centers with state-of-the-art performance and field-proven technology. It is the first autohandler system capable of programming fine pitch (20 mil or 0.5 mm) FPS and SOP surface-mount devices, including Flash memories, anti-fuse FPGAs, PLDs, and microcontrollers. Below is a quick tour of the BP-3000/BP-4000 system.

World Class Performance

The BP-3000 series has 4 high-speed universal programmers and the BP-4000 series has 11 high-speed universal programmers that operate independently and concurrently. Component leads are touched only once by the system with the programmer pin contactor, which reduces any possibility of damage during the centering and marking operations, and increases the outgoing quality level of programmed devices.

The pick-and-place system moves devices and places them accurately in less than one second. When blank devices are removed from their protective tubes or trays, they must be aligned exactly before they can be placed into the programming sockets. Failing to accurately align the device will result in damage to the part’s leads. The corner leads are especially vulnerable to being bent by the socket’s bumpers. Bent leads will not only cause programming failures, but also soldering defects when the programmed device is used in a circuit. The BP-3000/4000 series' vision-centering and closed-loop positioning systems deliver the accuracy essential to achieve good programming and handling yield. Tape Scales, which act as high-tech rulers, guarantee extreme accuracy in placement.

Vision Centering for Components

The BP-3000/4000’s vision centering system, using the CyberOptics Laser Align Camera, allows the machine to accurately place components in programming sockets without touching the leads. The system’s leading-edge optical technology precisely measures and aligns components “on the fly”. Since this camera is mounted to the head, the entire centering operation can be performed during the travel time from the input tray or tube to the programming socket. The system performs the entire pick/align/place operation in approximately one second.

Pick-and-Place Teaching Aids

  • BP-3000 Series Laser Pointer

This series is equipped with a downward laser pointer mounted on the traveling head.

  • BP-4000 Series Downward Vision

This series is equipped with a downward-looking video camera mounted on the traveling head allows easy and accurate teaching. A glance at the video monitor’s crosshair will let you see exactly where the head is located.

For extremely accurate and repeatable placement, precision Tape Scales optically read by the traveling head, guide the X/Y positioning of the head. Since the scales are mounted directly over the nozzle, downward vision is combined with high-accuracy scales, which eliminate any source of error in the motors, bearings, and belts.

Software Programmable Features for Quick Changeovers

All components centering and positioning is done in the software and not the hardware, so changing the machine from one job to another is a simple process. Snap on the socket modules and pressure plates, slide on the appropriate vacuum nozzle, swap out the component feeder tops, and load the software.

High Performance Automated Socket Modules

Each BP-3000/4000 socket module provides support for a particular package size. Sockets are opened and closed by individual precision activators on each programming site to provide true independence between sites.

Components Feeder

The system can operate a variety of input and output options utilizing tubes, trays, or tape. The versatility of the system allows the user to load components from one storage medium and place them into another.

Component Marking

  • Laser Marking

An optional laser marker provides an economical way to mark devices. The laser marking system requires very little maintenance with minimal consumable supplies for marking. The size of the mark and label contents is programmable in the software. Laser marking is the preferred method for fine pitch devices because it cannot introduce coplanarity defects. We provide for two different types of lasers, CO2 and YAG, which can be used with our product line.

  • Label Presenter

Labels can placed on components.

Programmer Sites

Inside the unit, each programmer site is numbered. Socket modules are also numbered to match each site. It is important to place the matching socket module in each site. If a socket module is incorrectly placed, the programmer will prompt you to teach the new socket module found on the site.

Pressure Plates

The pressure plates are designed to work with a particular set of sockets since socket modules vary in size and shape depending on the devices for programming. The plates are not usually numbered. As long as the pressure plates are the right type, with the proper-sized aperture, it does not matter on which site they are mounted. It is imperative that the pressure plates are securely fastened to the posts.

Gantry, Z-Spline, & Laser Alignment

The entire head assembly, on the gantry, is generically known as the Pick-and-Place unit. The Pick-and-Place is made up of the Z-Spline assembly, Y-arm, CyberOptics Laser Align Camera (used for vision centering), and uses a vacuum nozzle (located on the Z-Spline assembly) to move devices through the system. The laser alignment system ensures precise positioning of parts.

Support and Training

BPM Microsystems supports the BP-3000/4000 with a direct factory hotline and a worldwide network of field service locations. There are multiple sites in the United States and numerous locations throughout Europe and Asia. Training is available to teach customers how to operate, configure or service the unit.

Back To Top


Hardware and Software Installation

Pressure Plates

Laser Presenter Security Key

Software Installation

I. BP- 3000 / 4000 Autohandler - ch 2

BP- 3000 / 4000 hardware and software Installation

Initial installation of the BP-3000/4000 automated programmer is carried out by a BPM Microsystems Field Service Engineer upon delivery of the unit.

Any questions, concerns, or problems regarding the installation, or stemming from, should be directed to the on-site service engineer or technical support.

Pressure Plate

Each programmer site requires a pressure plate to be installed over the socket module. The plate applies or removes pressure to the socket(s) which opens or closes the socket respectively.

  • Proper pressure plate installation and removal is required to prevent damage to the T-Post components and Pick-and-Place head.

Installing

  1. Insure the T-posts are parallel to the socket module frame as indicated.

  2. Place pressure plate on top of the T-posts as indicated. Be sure the T-post guide pin (circled) can be seen in the pressure plate slot.

  3. At one end of the pressure plate, grasp the sides with both hands, push down and simultaneously push in the direction indicated.

  4. Repeat the previous step at the other end of the pressure plate.

Back To Top

Removing

  1. At one end of the pressure plate, grasp the sides with both hands, push down and simultaneously push in the direction indicated.

  2. Repeat the previous step at the other end of the pressure plate.

Software Installation

The BPWin software is installed on the system prior to shipping; however, for future downloads, see Install Software from Our Website and for software upgrades, see Upgrade in BPWin Device Programming, for more details. When installing a newer version of BPWin over an older version, the older version will automatically be uninstalled as part of the installation process. Using a command line installation, more than one version of BPWin can be installed, see Install Software from the Command Line for more information.

  • To attain optimum Devices Per Hour (DPH), adjust any real-time virus scanning software settings to ignore .log files and/or the C:\BP directory.

Back To Top


Mixed Socket Module Types

Socket modules, in-site stepper motors, and components that are attached to the handler (such as the Cyber Optic camera lens) can be damaged by improperly installing and removing socket modules and pressure plates. This danger can be minimized by performing such installation procedures as infrequently as possible. One way to accomplish this is by physically installing your required mixture of socket module and pressure plate types in the system once, then running separate job sessions that are each configured to use one set of the same type of socket modules.

To utilize this technique, proceed to install a mixture of socket module types on the system, perform the appropriate teach sessions, then setup and run the required job sessions. BPWin will display warnings that the socket module types do not match, however you should find that the warnings contain a check box labeled "Do not show this message again". This warning is displayed merely to ensure that a mixture of socket modules types were not installed in the system due to operator error. The warning can be dismissed and you can proceed to teach and run job sessions with a mixture of socket module types.


Unit Power Up

Powering Up

Software Startup

Powering Down

I. BP- 3000 / 4000 Autohandler - ch 2

Powering Up and powering down

Powering Up

The BP-3000/4000 will initially be installed and started up by a BPM Microsystems’ Field Service Engineer. However, for your information, we have included the process should the need arise to perform a power up in the future.

BP-3000 Series

  1. Turn ON main power with Main rocker switch at the back of the machine. This is usually left on and only needs to be turned off for machine maintenance.

  2. Turn ON the CPU with the rocker switch located behind the panel on the left side of the machine.

  3. Start BPWin software.

BP-4000 Series

  1. Turn ON the main power by turning Main Disconnect switch to 1. This is usually left on and only needs to be turned off for machine maintenance.

  2. Turn ON system power by pushing green side of Power ON rocker switch.

  3. Turn ON motors by depressing Motor ON rocker switch.

  4. Turn ON programmers with Programmer Power toggle switch.

  5. Turn ON peripherals with Auxiliary Power toggle switch.

  6. Depending on the type of source used:

  • Turn ON vacuum with Vacuum Switch toggle switch when using a compressed air supply.

  • Turn ON vacuum with House Vacuum toggle switch when using an external vacuum source. Do not turn House Vacuum on unless there is an external vacuum source attached.

  7. Start BPWin software.

Software Startup

To run the software, double-click on the BPWin icon found on the desktop or select Start > Programs > BP Microsystems > BPWin from the Windows Start menu.

The BPWin software will reveal the BPWin Main screen upon startup.

See Software Startup under BPWin Device Programming for more information about the BPWin Main Screen and the BlackBox Log file.

Powering Down

The only time a complete power down is necessary is for maintenance, repair, or an emergency situation. Otherwise, the BP-3000/4000 series autohandlers can be left on for long periods of time.

To power down the BP-3000/4000, close the BPWin program. Select Start > Shutdown from the toolbar of your computer. You can then safely turn off the power and air in the reverse sequence of powering up.


Calibration

Packages

Peripherals

Programming Sites

I. BP- 3000 / 4000 Autohandler - ch 3

using teach

All input, output, reject locations, programmer sites and pick-and-place settings must be taught before setting up the autohandler workflow settings. Before teaching I/O locations, for example, tray or tube, they must be named and a package selected in the Autohandler Workflow Settings dialog, to open this dialog, select Autohandler > Workflow Settings.... Teaching can be initiated by right-clicking on a station on the Autohandler View or navigating to Autohandler > Teach and using the Select Location to Teach dialog.:

    • Do not change programmer site socket modules, connect a station peripheral, or disconnect a station peripheral while the "Select Location to Teach" dialog is presented because this can result in undefined behavior.

Calibration

  • Downward Camera To Nozzle Offset Calibration

Packages

  • Teaching Package Dimensions

  • Pick-and-Place Settings for Packages

  • Vision Centering for Packages

  • Teaching Very Small Outline Package (VSOP) Locations

The automated teach process for a peripheral or programmer site's socket involves teaching the X-axis, Y-axis and Z-axis positions. To assist in teaching these positions, a device is required to be present on the peripheral or programmer site's socket as part of the automated teach process. The system must first learn the Z-axis position before it automatically learns the X-axis and the Y-axis positions. For automatic Z-axis position learning, the autohandler uses the Pick-and-Place nozzle vacuum system to determine if the Pick-and-Place nozzle is touching the top of the device. Therefore it is important to roughly move the Pick-and-Place over the device so that the Pick-and-Place nozzle tip will be within the package's surface area when the nozzle touches the top of the device.

The use of VSOPs makes teaching more challenging on automated programming systems because the rough positioning of the Pick-and-Place nozzle over the device becomes more critical due to the small surface area of the VSOP device. For example, on a 3000 series automated programming system the laser pointer's beam becomes restricted by the very small nozzle tip used for VSOP. With the head's Z-axis in the home position during teaching, the laser pointer may not be bright enough to be spotted on the device to roughly position the Pick-and-Place nozzle over the device. On the 4000 Series Gen 1 automated programming system, sockets 'C' and 'D' on the FX4 socket module for sites 4, 8 and 11 cannot be accessed using the downward vision camera to roughly position the Pick-and-Place nozzle over the device. On the 3000 Series Gen 2 automated programming system, sockets 'C' and 'D' on the FX4 socket module for site 4 cannot be accessed using the downward vision camera to roughly position the Pick-and-Place nozzle over the device.

Therefore, to help roughly position the Pick-and-Place nozzle over the VSOP device, a Z-axis Control feature exists in the Adjust Nozzle Position: dialog. The feature allows you to move the Pick-and-Place nozzle down slowly toward the VSOP device while still providing the ability to move the X-axis and Y-axis. The lowered Pick-and-Place nozzle is used as a visual guide to help roughly position the Pick-and-Place nozzle over the VSOP device.

    • It is extremely important to understand that damage to the Pick-and-Place nozzle could occur if care is not taken while moving the X-axis and Y-axis when the Pick-and-Place nozzle is lowered.

Peripherals

  • Label Presenter Locations

  • Laser Nozzles

  • Tape Locations includes teaching tape feeder and tape loader locations.

  • Teaching a Tray includes teaching a reject location.

  • Tube Locations includes teaching the tube reject location.

Naming Conventions for Peripherals

The location names must be valid for the BPWin software to recognize them. You can find a description of them in the Workflow Configuration section. When teaching, the names specified there must be first and in all caps and they can be followed by spaces, dashes, commas, slashes, etc.

  • To determine whether a peripheral is taught at the correct location, check the Autohandler View to see if it looks like the peripheral is in the correct area. Also, right click on a pocket and choose "Identify" to move the autohandler to the location that the autohandler calculated for that pocket

Programming Sites

  • Teaching Programming Sites includes teaching one site, all programmer sites and sites with FX-4 type socket modules.

Back To Top


Adjust Nozzle Position

I. BP- 3000 / 4000 Autohandler - ch 3

position tool wizard

The automated teach process for a station peripheral or programmer site's socket involves teaching the X, Y, W and Z-axis positions. To assist in teaching these positions, a target device is required to be present on the station peripheral or programmer site's socket as part of the automated teach process. The system must first learn the Z-axis position before it automatically learns the X, Y, and W-axis positions.

For automatic Z-axis position learning, the automated programming system uses the Pick-and-Place nozzle vacuum system to determine if the Pick-and-Place nozzle is touching the top of the target device. Therefore it is important to roughly move the Pick-and-Place over the target device so that the Pick-and-Place nozzle tip will be within the package's surface area when the nozzle touches the top of the target device. Once the Z-axis position is learned, the automated programming system will then automatically learn the X, Y, and W-axis positions by picking up the target device, measure it using the vision centering system, then place it back into the station peripheral or programmer site's socket. This sequence of events to learn the X-axis, the Y-axis, and the W-axis positions will be performed 3 times to complete the automated teach process.

The Position Tool Wizard view is part of the automated teach process and will be presented before the X, Y, W and Z-axis positions are learned. In this view you will use the axis controls to roughly move the Pick-and-Place over the target device.

Configure Gamepad

Any USB gamepad may be used to control the Pick-and-Place while the Position Tool Wizard dialog is open. The behavior of all gamepad buttons can be defined by using the Gamepad Configuration dialog accessible via the "Configure Gamepad..." button in the Position Tool Wizard dialog.

  • The gamepad may be used to move the Pick-and-Place to the rear, front, left, and right as well as enable coarse motion, enable/disable Z-axis control, move the Z-axis up and down, and toggle the vacuum on and off.

  • By default, using the directional buttons will result in fine motion. To enable coarse motion, press the gamepad button assigned to enable coarse motion while moving the Pick-and-Place.

  • The "Invert X- and Y- axes" option can be used to easily control the autohandler from the rear of the system without performing button re-assignments.

  • The "Gamepad properties..." button will open the Windows Control Panel Game Controllers dialog to allow you custom control of your gamepad as well as determine the button mapping of your gamepad.

  • Only a single gamepad may be plugged into the PC at the same time for BPWin to properly detect and use it.

X-axis and Y-axis Control

The X- and Y-axis control feature allows you to move the Pick-and-Place in the X or Y direction. The X-axis represents motion toward the left or right when facing the front of the automated programming system. The Y-axis represents motion toward the rear or front when facing the front of the automated programming system.

  • X-axis Motion

Continuous coarse motion buttons - Moves the Pick-and-Place to the left or right of the automated programming system. Motion will continue until the button is released. To use the keyboard for this type of motion, hold the Shift-Left Arrow or Shift-Right Arrow. Motion will continue until these keys are released.

Continuous fine motion or step motion buttons - Moves the Pick-and-Place to the left or right. Motion will continue until the button is released for continuous fine motion. To use the keyboard for this type of motion, hold the Ctrl-Left Arrow or Ctrl-Right Arrow. Motion will continue until these keys are released.

  • Y-axis Motion

Continuous coarse motion buttons - Moves the Pick-and-Place toward the rear or front of the automated programming system. Motion will continue until the button is released. To use the keyboard for this type of motion, hold the Shift-Up Arrow or Shift-Down Arrow. Motion will continue until these keys are released.

Continuous fine motion or step motion buttons - Moves the Pick-and-Place toward the rear or front. Motion will continue until the button is released for continuous fine motion. To use the keyboard for this type of motion, hold the Ctrl-Up Arrow or Ctrl-Down Arrow. Motion will continue until these keys are released.

  • Fine Motion Step Size

This slider affects the action taken by the single arrow buttons for both the X and Y-axis. Adjust this slider to select either continuous fine motion or step motion. When the Z-axis Control is enabled, the step motion selection ranges from 0.10 mm to 1.0 mm.

To manually teach the X, Y, and W-axis positions:

    1. Move the Pick-and-Place over the center of the peripheral station's target location using the X- and Y-axis motion buttons in X-axis and Y-axis Control.

    2. Adjust the step size of the Fine Motion Step Size slider to move the Pick-and-Place accurately over the center of the station peripheral's target location.

    3. If necessary, manually move the nozzle closer to the target device by using the -Z motion button in Z-axis Control.

    4. The X- and Y-axis positions will be recorded when OK is clicked.

Back To Top

Z-axis Control

The Z-axis control feature allows you to move the Pick-and-Place nozzle down slowly toward the target device while still providing the ability to move the X and Y-axis. The lowered Pick-and-Place nozzle can be used as a visual guide to help roughly position the Pick-and-Place nozzle over the target device or can be used to manually teach the position of the Z-axis instead of allowing the Pick-and-Place system to auto-learn the position of the Z-axis.

An example in which it is desirable to manually teach the position of the Z-axis would be teaching a target location with a very small device, such as VSOPs. Very small devices are prone to being "lifted" by the vacuum of the Pick-and-Place nozzle. This lifting can cause the very small device to become oriented in such a way that a mis-pick may occur during the automated learning of the Z-axis.

  • Damage to the Pick-and-Place nozzle if caution is not exercised when using this feature.

Position Tool Wizard Dialog with Z-Axis Control

When the Z-axis control is enabled:

    • The X and Y-axis double arrow buttons (coarse motion) are disabled. This is done to prevent accidental "coarse" motion when the Pick-and-Place nozzle is lowered.

    • The X and Y-axis single arrow buttons (fine motion) will remain enabled but X and Y-axis motion will be restricted to stepping motion from 0.10 to 1.0 mm steps. This is done to prevent accidental "fine" continuous motion when the Pick-and-Place nozzle is lowered.

    • The message located above the X-axis and Y-axis Control will be updated to include a warning about damaging the Pick-and-Place nozzle.

    • The "Fine Motion Step Size" slider here behaves the same for control of the Z-axis as the "Fine Motion Step Size" slider for the X and Y-axis. See the description of "Fine Motion Step Size" above for the X and Y-axis.

To use as a visual guide for teaching the X and Y-axis positions:

    1. Select Enable.

    2. While watching the nozzle, use the '-Z' motion button or Page Down to move the nozzle closer to, but not touching, the target device. The X and Y-axis positions can now be adjusted with more precision.

    3. To use "Auto Learn" for the Z position, leave Enable checked.

    4. Select the Auto Learn Z-axis checkbox.

    5. Click OK. The Pick-and-Place will return to the Z home position and start auto-learning the Z position.

To manually teach the Z-axis position:

      1. Un-check Auto Learn Z-axis.

      2. Select Enable.

      3. While watching the nozzle, use the '-Z' motion button or Page Down to move the nozzle closer to the target device without compressing the spring in the nozzle.

      4. Click Vacuum to engage and disengage the Pick-and-Place nozzle vacuum. Move the nozzle up/down with the motion buttons as required to obtain the desired position. The position of the Z-axis is correct when there is no gap between the target device. A gap is present when, while watching the device, you can see the device being picked up and dropped when toggling the vacuum.

      5. Un-check Enable to record the current position of the Z-axis as the taught position or click OK the Pick-and-Place nozzle will automatically retract to its home position.

Note: The Pick and Place Overdrive settings will still be used with a manually taught Z position.

Auto Learn X, Y, and W-Axis

Using the vision centering system for auto-learning the X, Y, and W-axis positions for a location is the default action of the teach process. However, there are circumstances in which it is difficult to auto-learn the X, Y, and W-axis positions using vision centering, so manually teaching the positions of these axes is required. The "Auto Learn" option will automatically be disabled when it can not be used.

Manual teaching is required for the following:

  • the laser presenter

  • a label presenter

  • when the package's vision centering is disabled

  • when the Pick-and-Place nozzle puff-off causes small devices to shift out of position, making it difficult for the Auto Learn to learn. An example of this phenomenon would be teaching the reject location for a small device on a tray platform which is flat.

Note: Un-checking this option will not affect the selection of the package's vision centering option during a job session.

To Auto Learn the X, Y, and W-axis positions:

    1. Select the Pin 1 Orientation of the target device.

    2. Move the nozzle over the target device.

    3. Check the Auto Learn X, Y, and W-Axis checkbox.

    4. The X, Y, and W-axis positions will be auto-learned and recorded when OK is clicked.

Auto Learn Z-axis

The default action of the teach process, when learning the Z-axis position, is to automate the learning of this axis position using the Pick-and-Place vacuum system. However, manually teaching the position of the Z-axis can be useful when it is difficult to auto learn the Z-axis position using the Pick-and-Place vacuum system.

To Auto Learn the Z-axis position:

    1. Check the Auto Learn Z-axis checkbox.

    2. The Z-axis position will be auto-learned and recorded when OK is clicked.

Back To Top


Downward Camera To Nozzle Calibration

4000 Series Gen 1

The 4000 Series Gen 1 has a downward Vision Camera used to help locate devices when teaching. The Vision Camera is mounted away from the Pick-and-Place Nozzle. This offset distance must be added to the device's location so that the Pick-and-Place Nozzle is moved over the device when picking the device during a teach operation. The Vision Camera to Pick-and-Place Nozzle offset default value used by the system when teaching works well with package length and width dimensions that are greater than 130 mils (3.302mm). As package dimensions decrease, the accuracy of the Vision Camera to Pick-and-Place Nozzle offset value becomes critical otherwise the Pick-and-Place Nozzle will fail to pick up the device during teaching.

You are able to enter the offset values manually or you can use the Measure button to measure the offset value. The offset values entered for the X-axis and Y-axis must be negative because of the orientation of the Vision Camera relative to the Pick-and-Place Nozzle.

Measure

The measure operation uses the center of the Master Site's socket as a reference for the Vision Camera's crosshairs. The operation requires that the Master Site is enabled, the socket is installed, and the location of the socket has been taught. When the Master Site is taught, the center of the Pick-and-Place Nozzle will be positioned close to the center of the socket. The Pick-and-Place Nozzle will not be positioned exactly on the center of the socket because of the tolerances between the device dimensions and the socket dimensions.

The user will position the Vision Camera's crosshairs over the center of the socket. The application will then take the difference between the Vision Camera's crosshairs taught location and the location of the Master Sites's taught location as the offset value.

  1. Be sure Master Site has been taught and the socket is installed.

  2. Select the Teach menu option via Autohandler->Teach... to display the Select Location to Teach dialog.

  3. Click on Camera To Nozzle Offset Calibration to display the Camera-Nozzle Offset dialog.

  4. Click on the Measure button.

  5. The Pick-and-Place will position the Vision Camera over the Master Site socket using the offset settings from the Camera-Nozzle Offset dialog.

  6. The Adjust Nozzle Position... dialog will be presented to help center the Vision Camera crosshairs over the center of the Master Site socket.

Note: For a TSOP32 socket module, the center of the socket is represented by a hole. This can vary depending on the type of socket installed on the Master Site.

  7. Set the Fine Motion Step Size to 0.10 mm as shown: .

  8. Use the single arrow to make fine adjustments to the Pick-and-Place until the Vision Camera crosshairs is centered over the socket module's hole.

  9. Click the OK button to accept the location.

  10. The Camera-Nozzle Offset dialog will get updated with new offset values.

  11. Click the OK button to accept and save the new offset values.

3000 Series Gen 2

The 3000 Series Gen 2 has a downward vision camera used to help locate devices when teaching. The vision camera is mounted away from the Pick-and-Place Nozzle. This offset distance must be added to the device's location so that the Pick-and-Place Nozzle is moved over the device when picking the device during a teach operation. The calibration process will accurately measure this offset distance and then save the measured distance to the file system so that it can be retrieved when teaching. This process should be done once or when hardware, such as the downward vision camera or the Pick-and-Place subassembly, has been changed or mechanically adjusted.

Procedure

  1. Select the Teach menu option via Autohandler->Teach... to display the Select Location to Teach dialog.

  2. Select the option named Camera To Nozzle Offset Calibration.

  3. Click on the Teach button to start the calibration process.

  4. The Pick-and-Place will move over the upward vision camera fiducial to learn the center of the downward vision camera.

  5. When the center is learned, you will be presented with the notification to install the reticle (Part# D06135PD).

  6. Open the interlock.

  7. Move the Pick-and-Place out of the way of the upward vision camera.

  8. Install the reticle onto the upward vision camera assembly.

    • Important: Make sure that the reticle is mounted flush with the assembly.

  9. Close the interlock.

  10. Click on the OK button to dismiss the notification and continue with the calibration process.

  11. The Pick-and-Place will move over the reticle to learn the center of the reticle.

  12. When the calibration is successfully finished, you will be presented with the notification indicating that the calibration was successful.

  13. Dismiss the notification by clicking on the OK button.

  14. You will be prompted with a notification to remove the reticle.

  15. Open the interlock.

  16. Remove the reticle.

    • Important: Failing to remove the reticle may cause damage to the reticle, upward vision camera assembly, or Pick-and-Place subassembly.

  17. Close the interlock.

Back To Top


Teaching Label Presenter Location

To place the "L" nearest pin 1 on the device, click on the lower or upper left radio button in Fig. B. The label will be turned 180 degrees.

To place the "3" nearest pin 1 on the device, click on the lower or upper right radio button in Fig. B. The label will not be turned.

To place the "L" nearest pin 1, click on the lower or upper right radio button in Fig. B. The label will not be turned.

To place the "3" nearest pin 1, click on the lower or upper left radio button in Fig. B. The label will be turned 180 degrees.

To place the "L" nearest pin 1, click on the upper left or right radio button in Fig. A. The label will be turned 90 degrees.

To place the "3" nearest pin 1, click on the lower left or right radio button in Fig. A. The label will be turned -90 degrees.

To place the "L" nearest pin 1 on the device with horizontal placement, click on the upper left radio button. The label will not be turned.

To place the "3" nearest pin 1 on the device with horizontal placement, click on the lower right radio button. The label will be turned 180 degrees.

To place the "L" nearest pin 1 on the device with vertical placement, click on the lower left radio button. The label will be turned 90 degrees.

To place the "L" nearest pin 1 on the device with vertical placement, click on the upper left radio button. The label will not be turned.

To place the "3" nearest pin 1 on the device with horizontal placement, click on the lower left radio button. The label will be turned 90 degrees.

I. BP- 3000 / 4000 Autohandler - ch 3

Teaching the Label Presenter Location

Teaching the label presenter location is more challenging because it requires that the X-axis, Y-axis, and Z-axis is manually taught. Because a label is too thin to measure with the CyberOptics vision centering system, you will have to manually locate the center of the label using the laser pointer on a 3000 series autohandler or the downward vision camera on a 4000 series autohandler.

It is important to understand that accuracy of the Z-axis teach location will affect the performance of the pick operation on the label. If the Z-axis teach location is too high then the Pick-and-Place nozzle will fail to pick the label. If the Z-axis teach location is too low, then the Pick-and-Place nozzle will overdrive the label causing the label stick to the label presenter's base again resulting in a pick failure. Therefore it is preferable to manually teach the Z-axis location using the Z-axis control described in To manually teach the Z-axis position. This will allow you to precisely position the Pick-and-Place nozzle on top of the label and then record the position as the learned Z-axis location.

Note: Using the Auto Learn Z-axis feature to learn the Z-axis location will learn the location too high and introduce pick failures when picking a label. This is because labels are prone to be "lifted" by the vacuum of the Pick-and-Place nozzle.

  1. Make the appropriate entries in the Autohandler Workflow Settings dialog to teach.

  2. Select Autohandler > Teach... from the pull-down menu. The Select Location to Teach dialog appears on the screen.

  3. Select the LABELPRESENTER name.

  4. Click the Teach button.

  5. Select the Pin 1 radio button from Figure A or B to designate the orientation of pin 1 on the label to properly orient the label to the device. Orienting the Label using Label Presenter provides more information on determining the selection.

  6. Use the directional arrow buttons to position the Pick-and-Place nozzle over the center of the label.

  7. Teach the Z-axis location using the Z-axis control described in To manually teach the Z-axis position.

  8. Click OK.

Note: Marking a center point on the label to teach will aid in label placement accuracy.

Label Thickness

When a label is attached to the device, the device becomes slightly thicker. This can cause alignment problems with the Laser Align Camera. Entering the label thickness will allow the software to adjust the alignment offset.

Label Orientation

This section provides helpful information in setting up the Label Presenter settings for proper label orientation on the device.

The key to correctly orienting the label is to remember that BPWin will match the pin 1 designation on the label to the pin 1 designation of the site. Whatever edge or corner of the label to be placed near pin 1 is the radio button to be selected.

Examples:

The examples provided below show what radio button to select for different label placements. The orientation of the devices and labels pictured below is how it would appear standing at the front of the handler. Screenshots are from the Nozzle Adjust Position: LABELPRESENTER dialog. These examples can be adapted to your unique set-up.

TSOP and Label A

TSOP and Label B

TSOP and Label C

TQFP and Label A

TQFP and Label C

Back To Top


Laser Marker System

Configuring and Testing the Laser Marking Parameters

Using a Laser Project File

Lase Serial Number and Date Feature

-Specifier Chart

Device Lase Test

Advanced Laser Configuration

Calibrating Laser Nozzles

Teaching Laser Nozzles

Here the labels <LINE1>, <Line2>, and <Line3> were replaced by the corresponding text from Line 1, Line 2, and Line 3 from the Laser Configure dialog.

Laser Presenter Diagnostics for BP-3000 Series

I. BP- 3000 / 4000 Autohandler - ch 4

Laser Presenter Station

The optional laser marker can print up to three lines of 15 characters each on programmed devices and operates as an integrated part of the BP-3000/4000 system.

Note: The Prolase 7 Server security dongle must be installed in order to laser mark.

Settings

The Laser Presenter Settings property page contains all the laser marking information, including laser settings, text settings and erase/ablate settings. The Laser Presenter Settings property page can be accessed via the Autohandler->Laser Presenter->Settings... menu option, right clicking on the laser presenter station in the APS view then selecting the Settings... context menu option, or right clicking on the laser presenter media in the Workflow Configuration dialog then selecting the Settings... context menu option.

Note: A laser presenter must be selected into the workflow in order to enable access the Laser Presenter Settings property page.

Text Lase Settings

  • Power - Enter the percentage of full power of the laser. Generally, a value of 25 is used for plastic packages and 70 for ceramic packages.

  • Speed - Enter a value to set the speed of the laser as it marks a device. Normally set at 4.

  • Text - Enter the text. The laser can mark up to three lines of characters with a maximum of 15 characters per line. The three lines are completely independent of each other so you could have lines running at different angles with different sized characters. If applicable, click on the arrow button to add a date/time format specifier to the text line.

Note: Users that do not have the Lase Serial Number and Date feature, but want to use a '%' sign in the text line will have to use "%%" in the line in order for a '%' to be lased.

  • X - Enter the starting coordinates from the center of the device. The resolution is 0.001" (25.4 µm), and the upper left of the device is +X and -Y.

  • Y - Enter the starting coordinates entered from the center of the device. The resolution is 0.001", and the upper left of the device is +X and -Y.

  • Angle - Enter a value where 0 degrees will mark from left to right, 90 degrees will mark top to bottom, etc.

  • Size - Enter the height of the characters with a resolution of 0.001". The smallest legible character is about 0.015" (381 µm).

Project File

A Prolase project file (i.e. .laz file) can be used for laser marking devices. The user can first create or modify a Prolase project using the Prolase software, save the project file, and then select the project file from BPWin's Laser Presenter Settings property page after which it will be used for laser marking. This allows for the easy use of all of Prolase's features in constructing laser marking templates consisting of graphics, text, or a combination of the two as well as make the positioning of the laser mark itself much easier and faster. Graphics can be created via Prolase's graphic tools or can be imported from a vector image file. Supported vector image types are the Enhanced metafile(.emf), the HP graphics language plot file (.plt), or the Windows metafile(.wmf). Raster images are not supported. You can convert a raster image to a vector image by using an image conversion software tool. Inkscape is a free third-party conversion software tool available for download.
The Project File settings (i.e. Checkbox setting and project file path) will be saved to the autohandler workflow (*.abp) file.

Note:

  • It is possible to have Prolase and BPWin up and running at the same time. To do this you must first start Prolase and then start BPWin. If performed in the reverse order you will receive an error message. Changing the sentinel driver setting will allow both applications to run regardless of the launch order.

  • The use of the Prolase software requires the presence of a USB key which may be obtained by purchasing a license for Prolase. The Prolase RTC2 software (PRONT.exe) can be found in the same directory as BPWin. Laser project files must be made with this version of Prolase.

Basic Walkthrough of the Feature

  1. Start BPWin and setup a job using laser marking.

  2. Open the Laser Presenter Settings property page via the Autohandler->Laser Presenter->Settings... menu option.

  3. In the Laser Presenter Settings property page under Project File check the Use project file check box. Speed, Power, all of the Erase controls and all of the Text controls except for the 3 edit boxes, which permit the three lines of text to be edited, will be disabled. All of the necessary settings will be obtained directly from the selected project file.

  4. Browse to and select the desired *.laz file. Note that *.laz files have an interdependency on several other Prolase file types one of the most notable being the Materials (*.mat) file which specifies the speed of the laser marking head and power of the laser for each pass. For more information on Prolase file types and the *.laz file in general, please refer to the Prolase manual which may be downloaded from American Laserware, Inc.

  5. Enter any desired text for Line 1, Line 2, Line 3. See Laser Presenter Settings property page example.
    If specified, these three lines of text will be used in place of the following three corresponding context insensitive labels which may be present in a *.laz file:

LAZ File Label | Corresponding line of text from the Laser Presenter Settings property page that the LAZ File label will be replaced with:
<Line1> | Line 1 edit box contents
<Line2> | Line 2 edit box contents
<Line3> | Line 3 edit box contents

Note that the labels <Line1>, <Line2> and <Line3> may each be used multiple times or not at all in a LAZ file. When used multiple times each instance of the label will be replaced by the corresponding line of text from the Laser Presenter Settings property page. Example of 3TextGraphic.LAZ using label.

  6. The laser mark placed on the actual device during a Test Laser operation or regular job run. See example result.

Erase

  • Erase before Text Lase Settings - Select this option to ablate any pre-existing marks on the device before the laser marks any configuration entered above. The fields in the Erase section become active. Fill in the speed, power, X and Y fields.

  • Power - Enter the percentage of full power of the laser. Generally, a value of 25 is used for plastic packages and 70 for ceramic packages.

  • Speed - Enter a value to set the speed of the laser as it marks a device. Normally set at 4.

  • Default - Select this option to fill in the width and height fields with the selected package parameters less 0.020" (508 µm).

  • X - Enter the starting coordinates from the center of the device. The resolution is 0.001" (25.4 µm), and the upper left of the device is +X and -Y.

  • Y - Enter the starting coordinates entered from the center of the device. The resolution is 0.001", and the upper left of the device is +X and -Y.

  • Height - Enter the height of the area to ablate with a resolution of 0.001".

  • Width - Enter the width of the area to ablate with a resolution of 0.001".

  • Angle - Enter a value where 0 degrees will mark from left to right, 90 degrees will mark top to bottom, etc.

Advanced Setting

The lasing marking system can be configured without having to open the Prolase software.

  • Field - Enter the maximum size of the marking field for the laser marking system. This field is used to correctly scale the mark on the target so that, for example, a 1 inch square defined in the application will mark a 1 inch square on the target.

Note: The Field Parameters section will be disabled if the user does not have write access to the following registry key on a 3000 Series automated programming system:

    • HKEY_LOCAL_MACHINE\SOFTWARE\
      BP Microsystems\BPWin\AutoHandler\Peripherals\LaserPresenter\ProlaseEngine\FieldParameters\3xAps or the following registry key on a 4000 Series automated programming system:

    • HKEY_LOCAL_MACHINE\SOFTWARE\
      BP Microsystems\BPWin\AutoHandler\Peripherals\LaserPresenter\ProlaseEngine\FieldParameters\4xAps

  • Start segment TC - Enter a time constant value in microseconds to minimize the effects at the beginning of line segments. Increase the value to reduce hot spots (dark point) at the beginning of lased marks. Note that if the value is too large, then the lased mark may decrease in size. For example, if the letter 'D' is lased the start of the letter 'D' will have a gap.

  • Poly TC - Enter a time constant value in milliseconds to delay the start of the next line segment mark. If the value is too large, the points where 2 line segments connect will be very dark (hot spot). If the value is too small, the connecting point of 2 line segments will be rounded.

  • End segment TC - Enter a time constant value in milliseconds to minimize the effects at the end of line segments. For example, an incorrect setting when lasing the letter 'A' will result in either an incomplete 'A' or a hot spot at the end of the letter. Adjust this value in increments of 0.5ms at a time until the letter lased is complete.

  • Pos TC - Enter a time constant value in milliseconds to reduce marking tails on small line segments. Very high values will eliminate the marking tails but will unnecessarily slow down marking.

  • Distance TC - Enter a time constant value in milliseconds to reduce marking tails on long line segments. Very high values will eliminate the marking tails but will unnecessarily slow down marking.

  • Pos res - Enter a value in galvo steps that limits the velocity of the galvo. A value of 1 will cause the galvo to move at its slowest velocity. If a value is too high, then the galvo may 'ring' for long periods of time at the destination points.

Note: The Delays settings will be disabled if the user does not have write access to the following registry key:

      • HKEY_LOCAL_MACHINE\SOFTWARE\BP Microsystems\BPWin\AutoHandler\Peripherals\LaserPresenter\ProlaseEngine\Delays

Laser Test

This allows for testing the laser mark on a device using the current settings. The autohandler takes the device from the input location to the Laser. The device will be marked and then placed at the location specified in the dialog. If necessary, the marking data can be adjusted and re-tested until the mark is correct.

Note: Place a piece of tape or stick-on label on the test device to enable multiple tests to be performed on the same device when testing laser marks.

  • Source Media - Select a Source media from which the device will be retrieved.

  • Destination Media - Select a Destination media to place the device after the test lase has completed.

  • Nozzle 1 - Select this option to test the lase on Laser Presenter nozzle 1.

  • Nozzle 2 - Select this option to test the lase on Laser Presenter nozzle 2.

  • Test Lase - Select this option to start testing the selected lase settings.

Lase Serial Number, Date, and/or Socket Location Feature (optional)

This feature allows for real-time information to be lased on devices using format specifiers.

Note: Users that have upgraded to 4.62 or later and have a '%', "%D", "%d" or "%S" in a text line from an .abp file made with a previous version will need to make a one-time modification to the line in the new format and then save the updated file.

  • A serial number format specifier can be specified with "%s". When lasing a serial number using "%s" using Simple serialization, the sequential serial number will be lased. In Complex serialization, the serial number handle (number for the "T01:" code) will be lased. To lase the actual serial number, the serial number handle will need to reflect the actual serial number.

  • Date or time format specifiers can be arranged in any order and includes a wide selection. A pop-up menu of common specifiers is available in the Laser Configure dialog. Clicking on a specifier in the menu will add it to the text line. A list of all available specifiers can be found in the Date/Time Format Specifier Chart.

  • A socket location specifier can be specified with "%l". When lasing using "%l", the Site/Socket location (example: "2A") that the device was operated on will be lased.

Example: If the week number is 12, the year is 2007.

Entered on the text line: BPM%U%y

Lased on the device: BPM1207

Text Orientation

This section provides helpful information in setting up the text settings for proper orientation of the marked text on the device. The orientation of the text is relative to the calibrated center of the laser marker's nozzle. Therefore if the calibrated center of the laser marker's nozzle is incorrect or if the nozzle's X-axis and/or Y-axis learned teach location is incorrect then you will have a difficult time orienting the marked text on the device. Make sure that both the calibrated center of the laser marker's nozzle is accurate and that the nozzle's X-axis and Y-axis learned teach location is accurate before making adjustments to the text orientation.

The origin of the text to mark, X = 0 and Y = 0, is located at the bottom left of the text as illustrated here:

The examples that follow will illustrate how text will be oriented relative to the calibrated center of the laser marker's nozzle with different X, Y, and angle settings.

Example 1

X = 0

Y= 0

Angle = 0

Example 2

X = 0

Y= -0.1

Angle = 0

Note that the text moved up relative to the calibrated center of the laser presenter's nozzle because the value for Y is negative. Therefore for positive values of Y, the text will move down from the calibrated center of the laser presenter's nozzle.

Example 3

X = -0.1

Y= 0

Angle = 0

Note that the text moved left relative to the calibrated center of the laser presenter's nozzle because the value for X is positive. Therefore for negative values of X, the text will move right from the calibrated center of the laser presenter's nozzle.

Example 4

X = 0

Y= 0

Angle = 90

Example 5

X = 0

Y= -0.1

Angle = 90

Note that the text moved up relative to the calibrated center of the laser presenter's nozzle because the value for Y is negative. Therefore for positive values of Y, the text will move down from the calibrated center of the laser presenter's nozzle.

Example 6

X = 0.1

Y = 0

Angle = 90

Note that the text moved left relative to the calibrated center of the laser presenter's nozzle because the value for X is positive. Therefore for negative values of X, the text will move right from the calibrated center of the laser presenter's nozzle.

Example 7

X = 0

Y= 0

Angle = -90

Example 8

X = 0

Y= -0.1

Angle = -90

Note that the text moved up relative to the calibrated center of the laser presenter's nozzle because the value of Y is negative. Therefore for negative values of Y, the text will move down from the calibrated center of the laser presenter's nozzle.

Example 9

X = 0.1

Y= 0

Angle = -90

Note that the text moved left relative to the calibrated center of the laser presenter's nozzle because the value of X is positive. Therefore for negative values of X, the text will move right from the calibrated center of the laser presenter's nozzle.

Example 10

X = 0

Y= 0

Angle = 180

Example 11

X = 0

Y= -0.1

Angle = 180

Note that the text moved up relative to the calibrated center of the laser presenter's nozzle because the value of Y is negative. Therefore for positive values of Y, the text will move down from the calibrated center of the laser presenter's nozzle.

Example 12

X = 0.1

Y = 0

Angle = 180

Note that the text moved left relative to the calibrated center of the laser presenter's nozzle because the value of X is positive. Therefore for negative values of X, the text will move right from the calibrated center of the laser presenter's nozzle.

Calibrating Laser Nozzles

BPWin retains offset values, from the origin of the laser marking head system, which represents the center of each laser marker nozzle. In the event that a modification of the autohandler causes these coordinates to no longer be correct, for example, replacing/adjusting the marking head system, the carriage assembly on the 4000 Series or the laser box rotary mechanism on the 3000 Series, the coordinates can be updated through the Calibrate Laser dialog. Each nozzle used for laser marking can be calibrated to the laser marker to insure the correct marking locations on each device. The Calibrate Laser dialog can be accessed by right clicking on the laser presenter station in the APS view then selecting the Calibrate Nozzles... context menu option, or right clicking on the laser presenter media in the Workflow Configuration dialog then selecting the Calibrate Nozzles... context menu option.

Note: A laser presenter must be selected into the workflow in order to enable access the Calibrate Laser dialog.

(example illustration)

  • Offset X and Offset Y - The value in inches from the origin of the laser marking head system.

  • Angle - The offset angle in degrees from the origin of the laser marking head system.

  • Mark - Prompts user to place target onto marker nozzle and then a calibration mark will be lased onto the target.

  • Power - The percentage of full power of the laser for lasing on the paper. This value will be lower than the value for lasing on devices.

  • Reload - Load the saved calibration offset values from the file.

  • Save - Saves the current calibration offset values to the file.

  • Cancel - Closes the dialog without saving the current calibration offset values.

Note:

  • On the 3000 Series - The two laser marker nozzles are mounted on a rotary mechanism in the laser box assembly near the origin of the laser marking head system, so the X and Y coordinate values should be near 0 inches. The angle is measured from the origin of the laser marking head system.

  • On the 4000 Series - The two laser marker nozzles are stationary and the origin of the laser marking head system is set up to be between the 2 nozzles. The offset values are determined from this origin. The nozzles are about 1 inch (2.54cm) away from the origin. When viewing the nozzles from the front of the autohandler, the left nozzle will be about -1" from the origin (X offset) and the right nozzle will be +1" from the origin. The X coordinates for the nozzles are measured from the origin of the laser marking head system. The angle is rotated about the laser marking head system origin, when the angle is changed, the X and Y coordinates may need to be changed too.

Steps to calibrate a laser marker nozzle:

  1. Insure the laser marker nozzle tip to be used is installed.

  2. Add a laser presenter to the workflow.

  3. In the APS view, right click on the laser presenter and select the Calibrate Nozzles... context menu to open the Calibrate Laser dialog.

  4. Enter a Power of 10.

  5. Click the corresponding Mark button to initiate the calibration lasing for the marker nozzle.

  6. When prompted to place a target on the nozzle. The target will be a piece of paper approximately 1" x 1" (2.54cm x 2.54cm). Open the autohandler interlock and place the paper over the marking nozzle. The vacuum will keep the paper on the nozzle. Press the paper onto the nozzle with enough pressure so that there is an imprint of the nozzle on the paper.

  7. Close the autohandler interlock.

  8. Select "Continue".

  9. The paper will get marked with a '+' sign and the nozzle number by the laser.

  10. Remove the paper. The '+' sign should be in the center of the nozzle imprint.

  11. If necessary, adjust the X, Y, and angle offsets until the '+' is in the center of the nozzle imprint.

  12. Save the offset values by clicking on the Save button on the Calibrate Laser dialog.

Diagnostics

Laser Presenter Control...

Opens the Laser Presenter Diagnostics dialog to run diagnostics tests on the laser by testing the sequence operations and discrete operations.

Z Teach Range Calibration (4000 Series Gen 1 only)

Laser presenter nozzle tips are required to be installed onto the laser presenter's nozzle chuck sleeves located in the carriage assembly. The nozzle chuck sleeve is much shorter than the height of the nozzle tip. Failing to install the nozzle tip onto the chuck sleeve during a teach will learn the Z-axis of the device incorrectly which will cause damage to the device when running a job session. The calibration process will learn the maximum travel for the Z-axis during a teach. This will help prevent teaching the nozzle chuck sleeve instead of the nozzle tip. The calibration process will need to be performed when the laser presenter hardware is installed initially, replaced, or adjusted.

Calibration Steps

  1. Ensure you have the CPICNOZTESTJIG tool available

  2. Ensure that the laser presenter station is present in the workflow

  3. Teach the laser presenter station

  4. When presented with the Teach Options Wizard,

    select the Calibrate Z Teach Range checkbox.
    Note: If the calibration has not been previously performed, the checkbox will be automatically selected and greyed out.

  5. Click on the Next button to present the Laser Z Teach Range Calibration Selection Wizard

  6. Click on the Yes button to continue

  7. Move the Pick-and-Place away from the laser presenter then click on the Next button to present the Laser Z Teach Range Calibration Wizard

  8. Open the interlock then install the CPICNOZTESTJIG tool onto any of the laser presenter chuck sleeves

  9. Click the Next button to present the Pick-and-Place Position Tool dialog

  10. Move the crosshairs over the CPICNOZTESTJIG tool then click the OK button to learn the Z-axis of the tool

  11. After the Z-axis is learned successfully, open the interlock and remove the CPICNOZTESTJIG tool and then install the nozzle tip


Nozzle Runout

I. BP- 3000 / 4000 Autohandler - ch 3

Pick-and-Place Nozzle Runout

The Pick-and-Place nozzle runout is defined as half of the horizontal variation measured from the perspective of the CyberOptics Laser Align Camera as illustrated below.

The CyberOptics Laser Align Camera captures images of the Pick-and-Place nozzle while the Pick-and-Place nozzle is rotated 360 degrees. This measured Pick-and-Place nozzle runout is reported in mils. After the horizontal variation is measured, the Pick-and-Place nozzle is adjusted for best alignment with the CyberOptics Laser Align Camera by rotating the Pick-and-Place nozzle so that it is positioned in the center of the horizontal variation.

The Pick-and-Place nozzle runout affects the performance of a device pick, device measurement, and device placement operations. For example, a large Pick-and-Place nozzle runout can cause the CyberOptics Laser Align Camera to incorrectly measure a device as illustrated below.

Because the measured center of the device is incorrect, the accuracy of device placement will be compromised. This large Pick-and-Place nozzle runout can also affect the pick performance of a device by creating a vacuum leak between the Pick-and-Place nozzle and the contact surface of the device. This vacuum leak will produce mis-picks or will reduce the DPH because a vacuum seal between the Pick-and-Place nozzle and the contact surface of the device will be delayed until the Pick-and-Place nozzle is retracted. This pick performance problem becomes more apparent when using very small packages due to the small contact surface of the package. Therefore it is recommended that the Pick-and-Place nozzle have a measured runout close to zero for optimal device pick, device measurement, and device placement performance during a job session or a station teach session.

Before a job session or a station teach session, BPWin will verify that the measured runout is within a recommended maximum runout for the selected package. If the measured runout exceeds the recommended maximum runout for the selected package, you will be presented with the option to continue using the Pick-and-Place nozzle with the large measured runout or cancel the current operation to correct the problem. Note that the recommended maximum runout is defined as a runout that can be tolerated by the Pick-and-Place subsystem but will result in suboptimal performance.

BPWin will also verify that the nozzle is of an appropriate size for the selected package.


Package Parameters

3000 Series Gen 1 and 4000 Series Gen 1

Device Package Dimensions

The CyberOptics laser alignment camera is the heart of the vision centering system and you will need to specify the dimensions of your device. A library of package types comes with the BPWin software. The settings for a package can be edited. The dimensions of the device are stored under a package type name for future jobs.

Using Auto Measure

If the interlock(s) are opened during the auto measure process, the process will be aborted to avoid discrepancies when measuring the component. The following illustrates using the auto measure utility on a BP-4000 series Autohandler to measure a TSOP48 package.

  1. Open the Select Location to Teach dialog and select the package.

  2. Click the Teach button to display the package teach dialog.

  3. Click on the Auto Measure button to start the utility. You will be presented with the Position Tool Wizard to help assist in learning the location of the device. Use the arrows to position the nozzle as close to the center of the device then click the OK button to auto-learn the location of the device.

  4. After the location has been taught, you will be presented with a Package Auto Measure Utility dialog. The stages after teaching the device location can be lengthy depending on the thickness of the device. An Abort button is provided to allow you to terminate the entire process and place the device back in its original orientation.

  5. After the process is completed the package settings will have been updated. You will see a completion notification dialog.

  6. Click the OK button to complete the process and review the changes in the package type dialog put in by the utility.

Note: If the longest length is within 1% of the narrowest length, then the utility will consider the package to be square and will set both lengths equal to the narrowest length.

More information about this feature can be found in the Automated Package Measure Utility section.

Manually Editing

The contents in the Select Location to Teach dialog are imported from what was entered in the Autohandler Workflow Settings dialog.

  1. Select the package type (ex: TSOP32) you specified on the Autohandler Workflow Settings dialog and click on the Teach button. The package teach dialog appears on the screen.

  2. Populate the following the fields in the Device Package Dimensions section according to the manufacturer's data or specification sheets:

    • Device thickness, including any leads - enter the thickness of the device with the inclusion of any leads. Cyberoptic laser align sensor requires this information to align the device properly.

    • Device narrowest length, including any leads - enter the narrowest length of the device with the inclusion of any leads.

    • Device longest length, including any leads - enter the longest length of the device with the inclusion of any leads.

    • Equal Lengths - select the checkbox to designate if the narrowest and longest lengths should be equal.

Pin Numbering Style

Choose how pin 1 is determined on the package. The style selected here will show how pin 1 is oriented on the package in the Adjust Nozzle Position dialog when an input or output location is selected for teaching.

  • SOIC, TSOP, µBGA - Select this option to represent an SOIC, TSOP, or uBGA package style. This type of package style will display the pin one location at a corner of the package in the Adjust Nozzle Position dialog and it will also display the "'reverse" pin one location in the same dialog.

  • PLCC (centered pin 1) - Select this option to represent a PLCC package style. This type of package style will have pin one located at a center of the package.

  • QFP (corner pin 1) - Select this option to represent a QFP package style. This type of package style will have pin one located at a corner of the package.

  • DIP - Select this option to represent a DIP package style. This type of package style will have pin one located at a corner of the package. If this package's diagonal maxima exceeds 1055 mils (2.6797 mm) and vision centering is enabled then a warning message to disable vision centering, as illustrated in Figure A, will be presented when the OK button is selected.

    Figure A

Figure A

VSP Nozzle Obstruction Detection

Note: This section is available only on 4000-series APSs when the package dimensions meet the criteria for Very Small Package (VSP).

By measuring the change in vacuum to detect an obstruction the PnP can know when to begin raising the nozzle with the device attached when performing a pick operation. On the smallest devices pick errors may occur because this change is smaller than with larger devices. To account for this you can adjust the value used to determine when the nozzle has been obstructed. You should only adjust this value if you notice an unusual number of pick errors with VSP devices during a job session.

To adjust this value, follow these steps:

  1. Ensure the nozzle is currently unobstructed with no device attached.

  2. Click the "Vacuum" button. This will turn on the vacuum and enable the adjustment slider and the obstruction indicator.

  3. Place a device on the nozzle. Obstruction detection is indicated below the slider.

  4. Using the slider, adjust the value as appropriate. Decreasing the adjustment percentage will cause the system to use a value that's closer to the unobstructed value while increasing the percentage will use a value that is further.

Note that variation in vacuum pressure may cause the system to read values that never change the behavior of the obstruction indicator. The indicator is present only as a guideline and ultimately the adjustment value should be determined based on the performance of pick operations during a job session.

The adjustment percentage value is saved along with all other package parameters for future jobs.

3000 Series Gen 2

The upward vision camera system is the heart of the vision centering system and you will need to specify the package settings, camera settings, and Pick-and-Place settings to vision center the devices accurately and repeatably. The package settings include package dimensions, contact count, contact dimensions, etc. These settings can be retrieved from the manufacturer's data or specification sheets. A library of package types comes with the BPWin software. The settings for a package can be edited. The dimensions of the device are stored under a package type name for future jobs.

Device Package Settings

  • Part - This contains the part name from the parts library that will be associated with this package teach.

  • Parts Library... - Click this button to open the parts library and select a part from the library to associate with this package teach.

  • Device thickness, including any leads - enter the thickness of the device with the inclusion of any leads. The vision centering system requires this information to position the device over the upward vision camera system to accurately measure the contacts of the device.

Pick-and-Place Settings

Nozzle Vacuum Settings

  • Puff-off delay - This delay is in milliseconds. The Pick-and-Place nozzle is not retracted for the specified delay period after the device is placed into a pocket and the vacuum has been disengaged.

  • Default Delay - Click this button to set the default of 20 ms into the Puff-off delay field.

  • Puff-off engaged - Adjust the slider to specify the duration of air pressure to apply, as a percentage, to the Pick-and-Place nozzle after vacuum has been disengaged. A value of zero disables this feature. Care must be used when selecting a duration for VSP. A high value can cause a VSP to get blown out of its pocket. A low value can cause a VSP to remain on the Pick-and-Place nozzle after vacuum has been disengaged.

  • Nozzle Obstruction Threshold

    • Vacuum - Click this button to engage or disengage vacuum. Disengaging vacuum will apply the duration of air pressure specified in the Puff-off engaged field.

    • Threshold - Adjust the slider to specify the value in which an obstruction will be detected. It is good practice to install the correct Pick-and-Place nozzle tip for the package when adjusting the slider. Click the Vacuum button to engage the vacuum then adjust the slider until no obstruction is detected then move the slider up by 0.05 volts. The "No Obstruction Detected" LED will light up when no obstruction is detected.

Upward Vision Component Settings

  • Lighting - Select the lighting that will be used when vision centering a device during a job session or teach session. The lighting affects the quality of the image. Excessive vision centering rejects could indicate an incorrect lighting selection.

  • Exposure - Enter the camera exposure in micro seconds that will be used when vision centering a device during a job session or teach session. Valid entries are from 30us to 8000us. The camera exposure affects the quality of the image. Excessive vision centering rejects could indicate an incorrect setting.

  • Contact scoring threshold - Adjust the slider to specify how many device contacts will be used to vision center the device, as a percentage of the total contacts on the device. Lowering this setting will help reduce vision centering rejects due to contact defects.

  • Contact Preview - This button will present the Contact Preview Utility to test the exposure, lighting, and contact scoring threshold settings.

Pocket Recognition Settings

  • Enable pocket recognition on tape loaders - Select this option to enable pocket recognition on the tape loader station. Pocket recognition uses the downward vision camera system to help place devices accurately into the tape loader station's pocket.

  • Pause when pocket not recognized - Select this option to pause the job session if the pocket is not recognized on the tape loader station. This will allow you to correct the cause of the problem and then retry the operation or abort the job session. If this option is not selected then the Pick-and-Place will place the device into the pocket without pocket recognition and continue with the job session.

  • Enable Pocket Hole Detection (Winbond W25Q80DVBYIG Only) - Select this option to enable the detection of the tape media pocket's hole. This feature is used to help assist detecting the tape media's pocket when the gap between pockets is the same size as the pocket.

Note: This option is only valid for the Winbond W25Q80DVBYIG device tape media. Pocket recognition may fail to locate the pocket if enabled for tape media other than for the Winbond W25Q80DVBYIG device tape media.

  • Downward Vision Component Settings

    • Lighting - Select the lighting that will be used for pocket recognition during a job session. The lighting affects the quality of the image. Excessive pocket recognition failures could indicate an incorrect lighting selection.

    • Exposure - Enter the camera exposure in micro seconds that will be used for pocket recognition during a job session. Valid entries are from 30us to 8000us. The camera exposure affects the quality of the image. Excessive pocket recognition failures could indicate an incorrect setting.

  • Test Utility - This button will present the Pocket Recognition Test Utility to test the exposure, lighting, pocket width and pocket height settings. This button is enabled when pocket recognition is enable, the tape loader pocket is taught, and the tape loader has been calibrated.

Pocket Recognition Test Utility

The utility is used to test the exposure, lighting, pocket width, and pocket height required by the pocket recognition to detect the carrier tape pocket. The utility has controls to move the Pick-and-Place, pocket recognition settings, and two tabs to display images. The Downward Camera View tab shows the real-time image of the pocket. The Pocket Recognition Result tab will show the result of the pocket recognition after the Test button is clicked.

  • Tape loader - This combo box contains a list of the tape loader stations that are in the workflow. Select the tape loader station that will be used to test pocket recognition.

  • Move To Pocket - Click on this button to move the Pick-and-Place over the tape loader's pocket.

  • Pocket height - Enter the height of the carrier tape's pocket in millimeters. The height is defined as the vertical distance of the pocket when viewed from the front of the automated programming system and looking down onto the carrier tape.

Note: The carrier tape packaging has pocket dimensions specified as A0(pocket width) and B0(pocket height) when viewing the carrier tape length-wise. If the tape loader is mounted in the front of the automated programming system then enter the A0 value. If the tape loader is mounted on the left side of the Automated Programming System then enter the B0 value.

  • Pocket width - Enter the width of the carrier tape's pocket in millimeters. The width is defined as the horizontal distance of the pocket when viewed from the front of the automated programming system and looking down onto the carrier tape.

Note: The carrier tape packaging has pocket dimensions specified as A0(pocket width) and B0(pocket height) when viewing the carrier tape length-wise. If the tape loader is mounted in the front of the automated programming system then enter the B0 value. If the tape loader is mounted on the left side of the Automated Programming System then enter the A0 value.

  • Enable Pocket Hole Detection (Winbond W25Q80DVBYIG Only) - Select this option to enable the detection of the tape media pocket's hole. This feature is used to help assist detecting the tape media's pocket when the gap between pockets is the same size as the pocket.

Note: This option is only valid for the Winbond W25Q80DVBYIG device tape media. Pocket recognition may fail to locate the pocket if enabled for tape media other than for the Winbond W25Q80DVBYIG device tape media.

  • Exposure - Enter the camera exposure in micro seconds that will be used for pocket recognition. Valid entries are from 30us to 8000us. The camera exposure affects the quality of the image. Excessive pocket recognition failures could indicate an incorrect lighting selection.

  • Bright field light - Select this option to enable the bright field lights on the light ring.

  • Dark field light - Select this option to enable the dark field lights on the light ring.

  • Test - Click this button to start pocket recognition using the selected exposure, lighting, pocket width, and pocket height settings.

Contact Preview Utility

The utility is used to test the exposure, lighting, and contact scoring threshold required to vision center devices. The utility has controls to move the Pick-and-Place, adjust the exposure, adjust the lighting, adjust the contact scoring threshold, and to select the pin 1 orientation of the device under test. The result of the vision centering will be displayed after the Detect Contacts button is clicked. If the vision centering fails, you will be presented with a message stating the cause of the failure. If the vision centering passes, an image of the device will be shown and the detected contacts will be identified with a yellow marker as illustrated in the example below. This utility will help you select the settings that will give the best vision centering results. After the settings are dialed in to give the best vision centering results you can click the OK button to update the package teach settings. Clicking the Cancel button will discard the selected settings.

  • Pick Device... - Select this button to pick a device to vision center using the selected settings.

  • Return Device - Select this button to return the device to its originating location.

  • Exposure - Enter the camera exposure in micro seconds that will be used for pocket recognition. Valid entries are from 30us to 8000us. The camera exposure affects the quality of the image. Excessive pocket recognition failures could indicate an incorrect lighting selection.

  • Bright field light - Select this option to enable the bright field lights on the light ring.

  • Dark field light - Select this option to enable the dark field lights on the light ring.

  • Contact scoring threshold - Adjust the slider to specify how many device contacts will be used to vision center the device, as a percentage of the total contacts on the device. Lowering this setting will help reduce vision centering rejects due to contact defects.

  • Pin 1 Orientation - The list will contain the entries 0, 90, 180, and 270 in degrees. 0 degrees represents the pin 1 orientation facing toward the front of the automated programming system. 90 degrees represents the pin 1 orientation facing toward the right of the automated programming system. 180 degrees represents the pin 1 orientation facing toward the back of the automated programming system. 270 degrees represents the pin 1 orientation facing toward the left of the automated programming system. The pin 1 orientation selected will represent the actual orientation of the device in the peripheral that when facing the front of the automated programming system and looking down on the device. Selecting an incorrect pin 1 orientation will cause the vision centering to fail.

  • Detect Contacts - Click this button to start vision centering of the device using the selected exposure, lighting, and contact scoring threshold.

Back To Top


Nozzle And Vision Centering

I. BP- 3000 / 4000 Autohandler - ch 3

Nozzle and Vision Centering Options

Pick-and-Place Settings

  • Pick Overdrive - Enter the downward distance in mils that the Pick-and-Place should add to the learned Z position when placing a device. The recommended value is generally less than or equal to 20 mils (508 µm) for nearly all devices including Very Small Outline Packages (VSOPs).

The pick overdrive value is dependent on the device's taught Z location. VSOPs, which are lighter, most often need a higher pick overdrive in the range of 0-20 mils since they are prone to being "lifted" during teach. The pick overdrive is a way to compensate for this effect. The larger and heavier devices will more than likely need a pick (overdrive) closer to 0 mils.

  • Pick Retries - Enter the number of times the nozzle should attempt to pick the device before reporting a pick error. After each failed pick, the nozzle will move down 10 mils (254 µm) and attempt to pick again. It will not raise back up to the home position before moving down 10 mils.

Pick retries should only be necessary on media where the device pockets vary in Z-axis location, for example on a warped tray. If pick retries are occurring when they are unneeded, they will have a negative influence on DPH. If pick retries are occurring on every device, then the pick overdrive should be adjusted. The default value is 3.

The total number of pick retries cannot exceed 100 mils (2.54 mm) below the learned Z-axis location. As the pick overdrive increases, the maximum number of pick retries decreases. This is to insure that the nozzle is does not compress beyond its limit of 100 mils.

  • Place Overdrive - Enter the downward distance in mils (thousands of an inch) that the Pick-and-Place should add to the learned Z position when placing a device. The recommended value is 0 mils.

This value is dependent on the device's taught Z location and should be kept to a minimum. The value should be closer to 0 mils, if possible. Increasing this value can compensate for puff-off effects. Decreasing the value will pull the nozzle away from the peripheral causing the Pick-and-Place to drop the device instead of placing it.

Note: Prior to BPWin 4.80, users defined "drop distance", which is the distance that a device drops into its destination after vacuum is shut off. "Place overdrive" is the opposite of drop distance. If a device's drop distance needs to be increased, the place overdrive should be decreased. Any configurations from prior software versions using "drop distance" will be converted to use "place overdrive".

Vision Centering

  • Enable Vision Centering - Select this option to allow the autohandler to use the CyberOptics Laser Align camera to measure the device "on the fly" and make any necessary adjustments in order to place the device accurately in the targeted peripheral or programmer site.

  • Auto Calculate Alignment Tolerance - Select this option to auto-calculate the alignment tolerance value based on the narrowest package dimension and common manufacturing variances. Selecting this option will disable the "Alignment tolerance" field.

  • Alignment offset - Enter the measurement to determine where on the body of the device the laser alignment measurements will be taken by the CyberOptics sensor.

A value of about 70% the thickness of the device is preferred. A digital caliper can be used to take physical measurements of the device in order to calculate the "theoretical" alignment offset. For components with leads, the alignment offset needs to see the "bending of the leads". Keep in mind that the bellows in the pick rod compresses once the device is picked up, which changes the "theoretical" alignment offset. Trial and error in increments of 5 mils (127 µm) in both directions from the "theoretical" value should be tried to optimize this value.

  • Alignment tolerance - If "auto-calculate" is not selected, enter the alignment tolerance value manually as a percentage. The alignment tolerance should be kept below 10% as a general rule when manually entering the value.

Increasing the tolerance to make a device pass vision centering can be a sign that the Pick-and-Place nozzle runout is too high, the alignment camera to Pick-and-Place nozzle is not coplanar, or some parameters, including device narrowest length and device longest length, are not entered correctly (make sure these values were not accidentally swapped). The more accurate the narrowest and longest length measurements are, the lower the alignment tolerance can be in order to detect damaged devices more effectively.

Back To Top


Teaching Sites

One at a Time

All Programmer Sites

-Full Socket Teach

-Fast Socket Teach

-Full Teach Primary/ Fast Teach Secondary Option

-Full Teach Every Socket Option

-Fast Validate and Adjust Option

-Automated Extraction of Target Devices

Site with a FX-4 Socket Module

Type your drop-down text here.

Type your drop-down text here.

Type your drop-down text here.

Type your drop-down text here.

Type your drop-down text here.

Type your drop-down text here.

Type your drop-down text here.

Type your drop-down text here.

I. BP- 3000 / 4000 Autohandler - ch 3

Teaching programmer Sites

Socket Teaches

There are 2 types of socket teaches that will be explained below to help you decide which teach method option to choose.

Full Socket Teach

A full automated teach process of a programmer site's socket involves requesting that a target device is manually inserted into the socket whose coordinates will be learned, selecting the pin 1 orientation via the Pin 1 Orientation Selection wizard, presenting the Station Pocket(s) Teach wizard for the programmer to roughly position the Pick-and-Place over the target device, then clicking on the Teach Pocket button to begin the automated teach process.

The automated teach process involves learning the X-axis, Y-axis, Z-axis and W-axis positions using a target device. The autohandler must first learn the Z-axis position before it automatically learns the X-axis, Y-axis and the W-axis positions.

For automatic Z-axis position learning, the autohandler moves the Z-axis very slowly toward the device and uses the Pick-and-Place nozzle vacuum system to determine if the nozzle is touching the top of the device. Once the Z-axis position is learned, the autohandler will pick up the device from the socket, measure it using the Laser Align Camera, and then place the device back into the socket. This sequence of events will be performed 3 times to complete the automated teach process.

Fast Socket Teach

A fast automated teach process of a programmer site's socket differs from the Full Socket Teach in that the user is not required to manually insert a target device, specify pin 1 orientation, nor roughly position the Pick-and-Place over the device. These actions will be done automatically by the autohandler, reducing job setup time considerably.

The rough positioning and orientation will be automatically derived from the site's Primary socket or an existing teach location for the socket itself. The device required to automatically learn the X-axis, Y-axis, Z-axis and W-axis positions will be supplied by a socket that has just completed the automated teach process.

For automatic Z-axis position learning, the autohandler will quickly move the Z-axis within 75% of the expected Z-axis position. Then the autohandler will move the Z-axis very slowly toward the device and use the Pick-and-Place nozzle vacuum system to determine if the nozzle is touching the top of the device. Once the Z-axis position is learned, the autohandler will pick up the device from the socket, measure it using the Laser Align Camera, and then place the device back into the socket. This sequence of events will be performed 3 times to complete the automated teach process.

Note: A successful Fast Socket Teach is just as accurate as a Full Socket Teach. However, the success of this teach method depends on the tolerance between adjacent sockets and if the socket can tolerate slight target device placement deviation. You should abandon this teach method if teach failures occur due to misplacements or bent pins and instead use the "Full Teach Every Socket" option to teach all of the sockets.

One Programmer Site

The automated teach process for a programmer site with multiple sockets has the ability to contiguously teach its sockets. This helps to speed up teaching a programmer site.

The Pocket Selection Wizard is used to select one or more sockets on a programmer site to teach and to select the teach method option to execute on the selected sockets. There are 3 teach method options to choose from when configuring a programmer site for teaching.

Full Teach Primary/ Fast Teach Secondary Option (gang socket modules only)

This option is enabled when multiple sockets are selected. This teach method will speed up the teach process of the selected sockets and is a good choice when teaching multiple untaught sockets. The speed up is obtained by using one target device and taking advantage of the Fast Socket Teach. This teach method will start by requesting a target device to be manually inserted into the Primary socket of the programmer site. The programmer site's Primary socket will be taught using the Full Socket Teach Method described above. After the Primary socket's teach has completed, the learned information will then be applied to the Secondary sockets. The Secondary sockets will be automatically taught using the Fast Socket Teach described above.

Note: This teach option is not ideal for VSOPs (for example, SOT-23) because the tolerances between adjacent sockets are too large.

  1. Make the appropriate entries in the Autohandler Workflow Settings dialog to teach.

  2. Select Autohandler > Teach... from the pull-down menu. The Select Location to Teach dialog appears on the screen.

  3. Select a programmer site from the list and click the Teach... button.

  4. The programmer site socket will be opened.

  5. The Programmer Pocket Selection Wizard will appear.

  6. Select multiple sockets to teach.

    • Note: It is important to understand that all sockets on the programmer site must be taught in order to continue with a job session therefore an untaught socket will automatically be selected to teach and its corresponding checkbox will be disabled.

  7. Select the teach option named Full teach primary / Fast teach secondary.

  8. Click the Next button to continue with the teach session.

  9. The Pin 1 Orientation Selection Wizard will be presented.

  10. Select the Pin 1 radio from the rectangle designated "Fig. A" or "Fig. B" in the dialog to specify the orientation of pin 1 then click the Next button to continue with the teach session.

  11. The Station Pocket(s) Teach wizard will be presented.

  12. Follow the instructions located on the top of the wizard then click on the Next button to continue with the teach session.

  13. The Station Pocket(s) Teach wizard will then expand and include controls that can be used to roughly position the Pick-and-Place over the target device.

  14. Use the directional arrow buttons to roughly position the Pick-and-Place nozzle over the center of the device.

  15. Click the Teach Pocket button to start the automated teach process on the Primary socket using the Full Socket Teach.

    • Note: When the location of the socket is being learned, the Cancel button on the Station Pocket(s) Teach wizard will remain enabled. You can abort the teach process of the next socket by clicking on the Cancel button. The current teach process will continue until it finishes and a message will appear.

  16. After the Primary socket has completed teaching, the autohandler will continue the teach on the Secondary sockets using the Fast Socket Teach.

  17. When the teach session finishes, the Pick-and-Place will automatically move out of the way and then you will be notified to remove the target device from the station.

  18. Open the interlock and remove the target device from the station.

  19. Close the interlock then click the OK button to dismiss the notification.

  20. The programmer socket will be closed and the teach session for the programmer station will conclude.

Full Teach Every Socket Option

This option is enabled when one or more sockets are selected. This teach method is slow because it requires a target device to be manually inserted into each socket and will use the Full Socket Teach for each socket. Therefore you will not need to be concerned about socket module tolerances or device placement deviation.

  1. Make the appropriate entries in the Autohandler Workflow Settings dialog to teach.

  2. Select Autohandler > Teach... from the pull-down menu. The Select Location to Teach dialog appears on the screen.

  3. Select a programmer site from the list and click the Teach... button.

  4. The programmer site socket will be opened.

  5. The Programmer Pocket Selection Wizard dialog will appear.

  6. Select one or more sockets to teach.

    • Note: It is important to understand that all sockets on the programmer site must be taught in order to continue with a job session therefore an untaught socket will automatically be selected to teach and its corresponding checkbox will be disabled.

  7. Select the teach option named Full teach every socket.

  8. Click the Next button to continue with the teach session.

  9. The Pin 1 Orientation Selection Wizard will be presented.

  10. Select the Pin 1 radio from the rectangle designated "Fig. A" or "Fig. B" in the dialog to specify the orientation of pin 1 then click the Next button to continue with the teach session.

  11. The Station Pocket(s) Teach wizard will be presented.

  12. Follow the instructions located on the top of the wizard then click on the Next button to continue with the teach session.

  13. The Station Pocket(s) Teach wizard will then expand and include controls that can be used to roughly position the Pick-and-Place over the target device.

  14. Use the directional arrow buttons to roughly position the Pick-and-Place nozzle over the center of the device.

  15. Click the Teach Pocket button to start the automated teach process on the Primary socket using the Full Socket Teach.

    • Note: When the location of the socket is being learned, the Cancel button on the Station Pocket(s) Teach wizard will remain enabled. You can abort the teach process of the next socket by clicking on the Cancel button. The current teach process will continue until it finishes and a message will appear.

  16. After the Primary socket has completed teaching repeat items 14 through 15 for the remaining selected sockets.

  17. When the teach session finishes, the Pick-and-Place will automatically move out of the way and then you will be notified to remove the target device from the station.

  18. Open the interlock and remove the target device from the station.

  19. Close the interlock then click the OK button to dismiss the notification.

  20. The programmer socket will be closed and the teach session for the programmer station will conclude.

Fast Validate and Adjust Option

This option is enabled when all sockets on the programmer site have been previously taught and one or more sockets are selected. This teach method is used to quickly validate and adjust previously taught locations of all sockets. This teach method requires just one target device to perform the fully automated teach process on all selected sockets and will use the Fast Socket Teach for each socket.

  1. Make the appropriate entries in the Autohandler Workflow Settings dialog to teach.

  2. Select Autohandler > Teach... from the pull-down menu. The Select Location to Teach dialogappears on the screen.

  3. Select a programmer site from the list that has been previously taught and click the Teach... button.

  4. The programmer site socket will be opened.

  5. The Programmer Pocket Selection Wizard will appear.

  6. Select one or more sockets to teach.

    • Note: It is important to understand that all sockets on the programmer site must be taught in order to continue with a job session therefore an untaught socket will automatically be selected to teach and its corresponding checkbox will be disabled.

    • Note: If any socket is untaught, the option to fast validate and adjust will not be enabled.

  7. Select the teach option named Fast validate and adjust.

  8. Click the Next button to continue with the teach session.

  9. The Pin 1 Orientation Selection Wizard will be presented.

  10. Select the Pin 1 radio from the rectangle designated "Fig. A" or "Fig. B" in the dialog to specify the orientation of pin 1 then click the Next button to continue with the teach session.

  11. The Station Pocket(s) Teach wizard will be presented.

  12. Follow the instructions located on the top of the wizard then click on the Next button to continue with the teach session.

  13. The Station Pocket(s) Teach wizard will then expand and will immediately begin the teach on the Primary socket using the Fast Socket Teach.

  14. After the Primary socket has completed teaching, the autohandler will continue the teach on the Secondary sockets using the Fast Socket Teach.

  15. When the teach session finishes, the Pick-and-Place will automatically move out of the way and then you will be notified to remove the target device from the station.

  16. Open the interlock and remove the target device from the station.

  17. Close the interlock then click the OK button to dismiss the notification.

  18. The programmer socket will be closed and the teach session for the programmer station will conclude.

Note: If you are using an FX-4 socket module you will be unable to use the camera to teach programmer sites 4, 8, and 11 because the camera cannot access those locations. You must move the nozzle manually to the center of the device to teach the programmer site.

All Programmer Sites

The automated teach process for programmer sites has the ability to contiguously teach all of the programmer sites. You will not need to individually select each programmer site and execute the automated teach process. This helps to speed up teaching all of the programmer sites.

There are 3 teach method_options to choose from when teaching all of the programmer sites. These teach method options are enabled when the All Programmer Sites is selected as a candidate to teach from the list. Choosing any other candidate from the list will disable these teach method options.

Full Teach Primary/ Fast Teach Secondary Option (gang socket modules only)

This option is enabled when the system detects multiple sockets on the programmer sites otherwise it is disabled.

This teach method will speed up the teach process of all sockets and is a good choice when the autohandler has many sockets installed. The speed up is obtained by using one target device per programmer site and taking advantage of the Fast Socket Teach.

This teach method will start by requesting target devices to be manually inserted into the Primary socket of each programmer site. The automated teach process will then start with the first programmer site number. The programmer site's Primary socket will be taught using the Full Socket Teach Method described above. After the Primary socket's teach has completed, the learned information will then be applied to the Secondary sockets. The Secondary sockets will be automatically taught using the Fast Socket Teach described above. This sequence of events will be iterated for the remaining programmer sites.

Note: This teach option is not ideal for VSOPs (for example, SOT-23) because the tolerances between adjacent sockets are too large.

  1. Make the appropriate entries in the Autohandler Workflow Settings dialog to teach.

  2. Select Autohandler > Teach... from the pull-down menu. The Select Location to Teach dialogappears on the screen.

  3. Select All Programmer Sites from the list.

  4. Select the Full Teach Primary/ Fast Teach Secondary option from the All Programmer Sites Options group and click the Teach button.

  5. All of the sockets will be opened.

  6. You will be required to place a target device into the Primary socket. If the socket has ever been taught before then the Pick and Place will automatically move away from the socket to allow you to do so. If you are teaching the socket for the first time a window will appear that contains buttons for moving the Pick and Place to either side of the automated programming system, whichever is furthest from the socket.

  7. A warning message will appear.

  8. Place a device on the Primary socket of each programmer site and click the OK button to close the message.

  9. The Adjust Nozzle Position dialog appears on the screen.

  10. Select the Pin 1 radio button from the rectangle designated "Fig. A" or "Fig. B" in the dialog to specify the orientation of pin 1.

  11. Use the directional arrow buttons to roughly position the Pick-and-Place nozzle over the center of the device.

  12. Click the OK button to start the automated teach process on the Primary socket using the Full Socket Teach.

  13. After the Primary socket has completed teaching, the autohandler will continue the teach on the Secondary sockets using the Fast Socket Teach.

  14. After the Secondary sockets have completed teaching, repeat items 8 through 12 for the remaining programmer sites.

  15. You will be required to remove the devices from the programming sites. A window will appear instructing you to do so and containing buttons that allow you to move the Pick and Place to one side of the automated programming system or the other. This will facilitate moving the Pick and Place out of the way to allow you to access the programming sites.

  16. Remove the device from all the programmer sites.

  17. Click the OK button to close the message.

  18. All of the sockets will be closed.

  19. The Select Location to Teach dialogreappears on the screen.

  20. Click the Close button to complete the teach.

Full Teach Every Socket Option (available for all socket configurations)

This teach method is slow because it requires a target device to be manually inserted into each socket and will use the Full Socket Teach for each socket. Therefore you will not need to be concerned about socket module tolerances or device placement deviation.

  1. Make the appropriate entries in the Autohandler Workflow Settings dialog to teach.

  2. Select Autohandler > Teach... from the pull-down menu. The Select Location to Teach dialogappears on the screen.

  3. Select All Programmer Sites from the list.

  4. Select the Full Teach Every Socket option from the All Programmer Sites Options group and click the Teach button.

  5. All of the sockets will be opened.

  6. You will be required to place a target device into all sockets of each programming site. A window will appear instructing you to do so and containing buttons that allow you to move the Pick and Place to one side of the automated programming system or the other. This will facilitate moving the Pick and Place out of the way to allow you to access the programming sites.

  7. Place a device on all of the sockets of each programmer site and click the OK button to close the message.

  8. The Adjust Nozzle Position dialog will appear.

  9. Select the Pin 1 radio button from the rectangle designated "Fig. A" or "Fig. B" in the dialog to specify the orientation of pin 1.

  10. Use the directional arrow buttons to roughly position the Pick-and-Place nozzle over the center of the device.

  11. Click the OK button to start the automated teach process on the socket using the Full Socket Teach.

  12. After the socket has completed teaching, repeat items 8 through 11 for the remaining programmer sites.

  13. You will be required to remove the devices from the programming sites. A window will appear instructing you to do so and containing buttons that allow you to move the Pick and Place to one side of the automated programming system or the other. This will facilitate moving the Pick and Place out of the way to allow you to access the programming sites.

  14. Remove the device from all the programmer sites.

  15. Click the OK button to close the message.

  16. All of the sockets will be closed.

  17. The Select Location to Teach dialogwill reappear.

  18. Click the Close button to complete the teach.

Fast Validate and Adjust Option (available for all socket configurations)

This teach method is used to quickly validate and adjust previously taught locations of all sockets. This teach method requires just one target device to perform the fully automated teach process on all sites and will use the Fast Socket Teach for each socket. This option is not enabled if the sockets have not been previously taught. To initially teach sockets use either the "Full Teach Primary/ Fast Teach Secondary" or the "Full Teach Every Socket" option.

  1. Make the appropriate entries in the Autohandler Workflow Settings dialog to teach.

  2. Select Autohandler > Teach... from the pull-down menu. The Select Location to Teach dialogappears on the screen.

  3. Select All Programmer Sites from the list.

  4. Select the Fast Validate and Adjust option from the All Programmer Sites Options group and click the Teach button.

  5. All of the sockets will be opened.

  6. You will be required to place a target device into the Primary socket. If the socket has ever been taught before then the Pick and Place will automatically move away from the socket to allow you to do so. If you are teaching the socket for the first time a window will appear that contains buttons for moving the Pick and Place to either side of the automated programming system, whichever is furthest from the socket.

  7. A warning message will appear.

  8. Place a device on the socket of the programmer site and click the OK button to close the message.

  9. The automated teach process will begin using the Fast Socket Teach.

  10. After all of the sockets have been validated and adjusted, the Pick and Place will automatically move away from the sockets and a warning message will appear to remove the device from the site.

  11. Remove the device from the socket.

  12. Click the OK button to close the message.

  13. All of the sockets will be closed.

  14. The Select Location to Teach dialogwill reappear.

  15. Click the Close button to complete the teach.

Automated Extraction of Target Devices

This feature uses the Pick-and-Place to extract target devices from the programmer sites and place the target devices into a destination peripheral after the All Programmer Sites teach session has concluded. This feature is only available for the All Programmer Sites teach session and can be selected or bypassed after the sockets have been taught. Using the automated extraction of target devices reduces the overall teach process time and is a good choice when the Full Teach Every Socket option is selected.

Using this feature will not extract a target device from a programmer site socket if the socket is not taught. You will be prompted, at the end of the automated extraction session, to manually remove the target device from the programmer site that contains the socket(s) that have not been taught.

The Destination drop down list will include possible peripheral candidates that can be used to place the extracted target devices. Peripherals that are not taught will not be included in the Destination drop down list. You must teach the peripheral before it can be included in the Destination drop down list.


Teaching tape locations

Teaching a Tape Feeder Location

  1. Make the appropriate entries in the Autohandler Workflow Settings dialog to teach.

  2. Select Autohandler > Teach... from the pull-down menu. The Select Location to Teach dialog appears on the screen.

  3. Select the tape feeder location and click the Teach button. You will be required to ensure there is a device on the tape feeder. In order to allow you access to the station, the Pick and Place will need to move out of the way. If the tape location has ever been taught before then the Pick and Place will move out of the way automatically. Otherwise a window will appear that contains buttons that move the Pick and Place to either side of the automated programming system.

  4. A warning message appears on the screen to ensure there is a device on the tape feeder.

  5. Place a device on the tape feeder and click the OK button to close the message. The Adjust Nozzle Position dialog appears on the screen.

  6. Select the Pin 1 radio button from Figure A or B to designate the orientation of pin 1.

  7. Use the directional arrow buttons to position the Pick-and-Place nozzle over the center of the device.

  8. Click the OK button. The Pick and Place will move out of the way and a warning message appears on the screen to remove a device from the tape feeder.

  9. Remove the device from the tape feeder and click the OK button to close the message. The Nozzle Pickup Offset dialog appears on the screen.

  10. Make the appropriate adjustments and click the Save button. The Select Location to Teach dialog reappears on the screen.

  11. Click on the Close button to complete the teach.

Note: For instructions on installing the Tape Feeder, refer to Tape Feeder Installation.

Teaching a Tape Loader Location

  1. Open the Autohandler Workflow Settings dialog and set up the workflow to include a tape loader station.

  2. Select Autohandler->Teach... from the pull-down menu. The Select Location to Teach dialog appears on the screen.

  3. Select the tape loader station and click Teach.

  • When teaching a tape loader station, the Peripheral Selection dialog may appear if BPWin detects more than one of the station type selected. For example, if two tape loaders are connected to a 3000 series automated programming system, the Peripheral Selection dialog will list both tape loaders. You must select the targeted tape loader that will be taught, then click OK to continue.

  4. The Tape Options Wizard dialog will appear.

    Tape Options Wizard

    • Pitch - this value must match the value entered as the pitch on the VTEK unit. The range for this value is from 2mm to 144mm.

    • Speed - this value must match the value entered as the speed on the VTEK unit. The range for this value is from 5 to 250.

    • End of reel advance - this setting determines how many pockets to advance the tape when the end of reel is reached.

    • Specify as pockets - select this to enter the pocket count directly into the Tape Advance field.

    • Specify as distance - select this to enter the distance in mils or millimeters into the Tape Advance field. The distance type is based upon the System of Units selected.

      • Note: Since the tape loader unit is advanced using pocket counts, the entered distance will be converted into pocket counts.

    • Pocket Dimensions - This feature apply to 3000 Series Gen 2 automated programming systems. The width and height fields are enabled when Pocket Recognition is enabled in the package teach.

      • Width (mm) - Enter the width of the carrier tape's pocket in millimeters. The width is defined as the horizontal distance of the pocket when viewed from the front of the automated programming system and looking down onto the carrier tape.
        Note: The carrier tape packaging has pocket dimensions specified as A0(pocket width) and B0(pocket height) when viewing the carrier tape length-wise. If the tape loader is mounted in the front of the automated programming system then enter the B0 value. If the tape loader is mounted on the left side of the Automated Programming System then enter the A0 value.

      • Height (mm) - Enter the height of the carrier tape's pocket in millimeters. The height is defined as the vertical distance of the pocket when viewed from the front of the automated programming system and looking down onto the carrier tape.
        Note: The carrier tape packaging has pocket dimensions specified as A0(pocket width) and B0(pocket height) when viewing the carrier tape length-wise. If the tape loader is mounted in the front of the automated programming system then enter the A0 value. If the tape loader is mounted on the left side of the Automated Programming System then enter the B0 value.

    • Finish button - this button is greyed out

  5. Enter the Pitch, Speed and Tape Advance settings then click Next to continue with the teach session.

  6. The Pin 1 Orientation Selection Wizard will appear.

  7. Select the pin 1 radio button that matches the orientation of pin 1 of the target device in the tape loader.

  8. Click Next to continue with the teach session.

  9. The Station Pocket(s) Teach dialog will appear.

  10. Follow the instructions presented in the dialog.

  11. Use the directional arrow buttons to roughly position the Pick-and-Place nozzle over the center of the target device.

  12. Click the Teach Pocket button to start the automated teach process.

  13. When the teach session finishes, the Pick-and-Place will automatically move out of the way and then you will be notified to remove the target device from the station.

  14. Open the interlock and remove the target device from the station.

  15. Close the interlock then click the OK button to dismiss the notification.

  16. The station teach session will conclude.

Back To Top


Teaching a Tray

When the tray is oriented like above, the Tray Configuration dialog will look like the one below.

I. BP- 3000 / 4000 Autohandler - ch 3

Teaching Tray locations

A tray station is any peripheral that can present a tray to the automated programming system including fixed tray stations on a 4000 series automated programming system, shuttle and reject stations on a 3000 series automated programming system, and the TS-1500 tray stacker station.

Tray Pocket Locations

The autohandler needs to learn only 3 pocket locations on the tray. From those 3 locations, the autohandler will know where all the pocket locations are on the tray. You can select any corner of the tray to be the first pocket location. After the first pocket location has been selected, the tray teaching wizard will guide you on selecting how the Pick-and-Place will traverse the tray during a job session and teaching the 3 pocket locations.

Note: Tray locations that are taught with a horizontal traversal in BPWin version 5.0.0 and later are not supported in previous versions.

An optional "diagonal verification" sequence can be performed after the three pocket locations have been taught.

Tray Direction

Trays can be mounted or fed into the autohandler vertically or horizontally in relation to the front of the autohandler.

Pick-and-Place Traversal During a Job

The direction in which the Pick-and-Place will traverse the tray's pockets during a job session can be either vertically or horizontally. Vertical represents motion toward the rear or front when facing the front of the automated programming system. Horizontal represents motion toward the left or right when facing the front of the automated programming system.

Example

Shown are examples of a vertical tray and a horizontal tray, the 3 pocket locations used for teaching a tray and the direction in which the pockets will be populated or unpopulated during a job session. Using these three pocket locations, BPWin will be able to interpolate all remaining pocket locations in the tray during a job session and compensate for tray skew.

  • The first pocket location (1st) defines the first pocket that will be accessed during a job session and it also defines the orientation of the tray.

  • The second pocket location (2nd) defines the last pocket that will be accessed during a job session.

  • The third pocket location (3rd) defines the last pocket of the tray's first column when traversed vertically or the last pocket of the tray's first row when traversed horizontally that will be accessed during a job session.

Back To Top

Teaching a Tray

  1. Place a full tray of devices on the tray station peripheral to be taught.

It's possible to teach with an empty tray and a single device, however teaching with a full tray will allow the use of "diagonal verification" to test the teach for accuracy.

Note: For a TS-1500, place the tray on the input wings then press the Cycle button on the TS-1500 to cycle the tray to the presentation point.

  2. Open the Autohandler Workflow Settings dialog and set up the workflow to include a tray station peripheral.

  3. Select Autohandler->Teach... from the pull-down menu. The Select Location to Teach dialog appears on the screen.

  4. Select the tray station peripheral (for example, TRAY_TSOP48 or TS1500_TSOP48) and click Next.

    • When teaching a shuttle or TS-1500, the Peripheral Selection dialog may appear if BPWin detects more than one of the peripheral type selected. For example, if two shuttles are connected to a 3000 series automated programming system, the Peripheral Selection dialog will list both shuttles. You must select the targeted shuttle that will be taught, then click OK to continue.

    • When teaching a TS-1500, the Tray Type Selection dialog will appear. Select the tray type then click OK to continue. The tray type settings will be saved to the station teach file as soon as the OK button is pressed.

Note:

    • When selecting a tray type, the tray type selections on the tray stacker are ignored by BPWin.

    • Low Profile Tray would typically be used for a tray containing QFN\MLF packages. For trays that do not match the settings for the predefined tray types, select Custom Tray and enter the tray settings.

  5. The Tray Configuration dialog will appear.

Values entered for column and row count will indicate the total number of rows and columns on the tray and the radio button selected will indicate the first pocket location defining the orientation of the tray.

Tray Configuration

  • Column Count - Enter the number of vertical lines of pockets on the tray when viewing the tray from the front of the autohandler. A tray's column number is identified along the X-axis of the Autohandler.

  • Row Count - Enter the number of horizontal lines of pockets on the tray when viewing the tray from the from of the autohandler. A tray's row number is identified along the Y-axis of the Autohandler.

  • First Pocket Radio Button - Select the desired corner for the first pocket. When an option is selected, the selection will be highlighted.

Example: Horizontal tray and the configuration dialog.

  6. Click Next on the Tray Configuration dialog to accept the selections.

  7. The Tray Traversal Selector dialog will appear. Select how you want the tray to be traversed by the Pick-and-Place. Note that the default selection traverses the tray vertically.

  8. Click Next to accept the selection and continue with the teach session.

  9. If the automated programming system is not a 4000 series then skip to the next step. Normally, the first pocket teach location is located at row 1 and column 1. However, if the downward vision camera is unable to reach the first pocket location, you can specify a teach row and/or column of a nearby pocket using the Downward Vision Camera Reach Wizard. After the selected teach pocket is taught, BPWin will interpolate the location for row 1 and column 1. Then during the job run, the Pick-and-Place will start at row 1 and column 1 for picking or placing.

Example: When teaching a TS-1500 mounted on the back of the 4000 series automated programming system and the selected first pocket orientation is at the top right corner of the tray, the downward vision camera cannot reach row 1. You will therefore need to enter the nearest teach row that the downward vision camera can reach. In this example, the nearest row is row 4.

  10. The Pin 1 Orientation Selection Wizard will be presented.

  11. Select the Pin 1 radio from the rectangle designated "Fig. A" or "Fig. B" in the dialog to specify the orientation of pin 1 then click the Next button to continue with the teach session.

  12. The Populate Pocket(s) wizard will be presented.

  13. Follow the instructions located on the top of the wizard then click on the Next button to continue with the teach session.

  14. The Pocket Teach View wizard will be presented and include controls that can be used to roughly position the Pick-and-Place over the target device.

  15. Use the directional arrow buttons to roughly position the Pick-and-Place nozzle over the center of the device.

  16. Click the Teach Pocket button to start the automated teach process on the pocket using the Full Socket Teach.

Note: When the location of the socket is being learned, the Cancel button on the Pocket Teach View wizard will remain enabled. You can abort the teach process of the next pocket by clicking on the Cancel button. The current teach process will continue until it finishes and a message will appear.

  10. After the first pocket has completed teaching repeat items 7 through 8 for the remaining pockets.

  11. When the teach session finishes, the Pick-and-Place will automatically move out of the way and then you will be notified to remove the target devices from the station.

    • After the third pocket location is successfully taught, you will be prompted to verify the teach by performing a "diagonal verification" on the tray. This verification requires a fully populated tray.

Note: If the verification fails, you will have to start the tray teach process over again and the current 1st, 2nd and 3rd locations and pin 1 orientation will not be saved.

      1. To continue with the diagonal verification, click Yes.

      2. Before the verification process begins, you will be prompted to verify that a fully populated tray is present on the tray station peripheral. Click OK to continue.

      3. After the diagonal verification process completes, you will be prompted to remove the target devices from the tray station peripheral.

  10. Open the interlock and remove the target device from the station.

  11. Close the interlock then click the OK button to dismiss the notification.

  12. The programmer socket will be closed and the teach session for the programmer station will conclude.

Back To Top


teaching tube locations

Teaching a Multi-lane Station Location

  1. Make the appropriate entries in the Autohandler Workflow Settings dialog to teach a tube platform.

  2. Select Autohandler > Teach... from the pull-down menu. The Select Location to Teach dialog appears on the screen.

  3. Select the tube location (ex: TUBEIN1_TSOP32) and click the Teach button.

  4. The Multi-lane Station Configuration Wizard will appear. This dialog allows you to change the lane parameters and the fastened orientation of the multi-lane station.

Lane Parameters

Count - Enter the actual number of lanes on the multi-lane station.

Note: A multi-lane station does not require any communication to the actual peripheral. Therefore this station can be used to represent a peripheral with 1 lane or many lanes that are arranged in a linear fashion.

Devices per lane - Enter the number of devices possible in a full tube. This quantity will tell the automated programming system how many devices can be placed into each lane on a destination multi-lane station. When teaching a source multi-lane station this option will be disabled.

Delay - Enter the delay time for the Pick-and-Place to determine when it can pick the next device from a lane on the source multi-lane station or when it can place the next device into a lane on the destination multi-lane station.

Placement offset - Enter the distance of the offset to be applied to the lane's taught position so that the device will be placed away from the end of the lane to minimize place errors. This is useful when placing devices without vision centering enabled. When vision centering is disabled, the default value is 50 mils (1.27mm). Otherwise the default value will be zero (0). When teaching a source multi-lane station this option will be disabled.

Fastened orientation

As represented in the dialog, the multi-lane station can be mounted on any side of the automated programming system. The fastened orientation selected will represent the actual orientation of the multi-lane station when facing the front of the automated programming system.

Note: Tube locations that are taught with a fastened orientation other than the back side of the automated programming system in BPWin version 5.0.0 and later are not supported in previous versions.

  5. Configure the tube station then click Next to continue with the teach session.

  6. The First Lane Selection Wizard will be presented.

  7. Select the first pocket location on the multi-lane station then click the Next button to continue with the teach session.

  8. The Pin 1 Orientation Selection Wizard will be presented.

  9. Select the Pin 1 radio from the rectangle designated "Fig. A" or "Fig. B" in the dialog to specify the orientation of pin 1 then click the Next button to continue with the teach session.

  10. You will be prompted to power off the station. After powering off the station, click the OK button to continue with the teach session.

  11. The Populate Pocket(s) wizard will be presented.

  12. Follow the instructions located on the top of the wizard then click on the Next button to continue with the teach session.

  13. The Populate Pocket(s) wizard will then expand and include controls that can be used to roughly position the Pick-and-Place over the target device.

  14. Use the directional arrow buttons to roughly position the Pick-and-Place nozzle over the center of the device.

  15. Click the Teach Pocket button to start the automated teach process on the pocket using the Full Socket Teach.

  16. After the first pocket has completed teaching repeat items 9 through 10 for the last pocket.

  17. When the teach session finishes, the Pick-and-Place will automatically move out of the way and then you will be notified to remove the target devices from the station.

  18. Open the interlock and remove the target device from the station.

  19. Close the interlock then click the OK button to dismiss the notification.

  20. You will be prompted to power on the station. After powering on the station, click the OK button to conclude the teach session.

Back To Top


Adjust Nozzle Position

pin 1 orientation selection wizard

The Pin 1 Orientation Selection Wizard is used to help select the pin 1 orientation of the device located in the station that is being taught. The radio button selected will represent the actual orientation of the device (W-axis) in the station that is being taught when facing the front of the automated programming system and looking down on the device. The selection must be correct so that the Pick-and-Place will orient the device properly when moving the device from one station to another.

Note: An incorrect selection can result in misplaced devices.


Autohandler Settings

Programmer Settings

Start a Job

Non-Concurrent Device Operation

I. BP- 3000 / 4000 Autohandler - ch 5

Job process

Prior to running a job, a .bp JobMaster file must be loaded either manually through the Browse... button or by loading an .abp file with the Load button. Additionally, all workflow configuration and options must be made.

  • The first job run on the BP-3000/4000 is set up by a Field Service Engineer when the unit is initially shipped to your facility.

Autohandler Workflow

Creating New Autohandler Workflow

  1. Click Autohandler> Workflow Configuration... from BPWin Main.

  2. Select a package type from the drop-down list in the Package field.

  3. Add one or more source media stations to the Sources category.

  4. For a programming job session add the All Programmer Sites media station to the Programmers category or for a media to media transfer job session remove the All Programmer Sites media station to the Programmers category.

  5. Add a marker, optional.

  6. Add one or more destination media stations to the Destinations category.

  7. Add one or more reject media stations to the Destinations category.

  8. Click the OK button to accept the changes to the workflow.

Using an Existing .abp File

If an existing .abp file has most of the settings desired, you can load that one, make changes and save.

  1. Click the Load button.

  2. Load the .abp file. All machine settings and the associated .bp JobMaster file will be loaded. A different .bp JobMaster file can be loaded.

  3. Save as the same or different .abp file name.

Back To Top

Programmer Settings

If a .bp JobMaster file does not exist, see section on Creating a Job for more information.

Using an Existing .bp JobMaster File

  1. In the Autohandler Workflow Settings dialog, click on the Browse... button to load the job file. The Open dialog appears on the screen.

  2. Select the job file (.bp) and click on the Open button.

  3. The Job Report dialog appears on the screen.

  4. Click the OK button. A message appears in the Status Bar at the bottom of the BPWin Main window that the job was loaded.

Note: A single .bp JobMaster file can be linked to one or more .abp file(s) for running the same .bp file on more than one autohandler.

Running a Job

  1. From BPWin Main, enter the number of passed devices required for the job in the Quantity field.

  2. Click the Run or Program button.

    1. BPWin will measure the nozzle runout at the start of a job.

    2. The first device will be picked up at the Source location and is placed into the programmer's master site, normally site 1, and the socket will close.

    3. Programming begins. Site and Job Status during the job can be monitored by viewing the screen. Hover over a site box to view site information, if applicable.

    4. If the device fails programming on the first try, the programmer will attempt to program the device a second time before the device is rejected.

    5. The autohandler picks up the passed devices, places them in the Destination location and picks the next device for programming. Failed devices are place in the Reject location.

    6. The sockets are filled and programmed continuously until the Destination location is full of passed devices or the job quantity has been reached.

    7. If a site has reached the "Maximum number of site failures" value during a job, the socket will be disabled.

    8. The autohandler will notify the Operator of the need to add more blank devices or to remove the programmed devices. If there are any failures, the devices are placed at the location marked for Rejects.

    9. This cycle repeats until the target number in the Quantity field is reached or you click on the Stop button.

  3. Click the OK button after each message that appears after the target quantity is reached. The Job Summary Report appears on the screen.

  4. Click the Print button to print a copy of the Job Summary Report or the Save button to save it in a directory. Otherwise, click the OK button.

Non-Concurrent Device Operation

A non-concurrent device operation on the Autohandler is an operation that is executed once for the job session. For example, a Read operation is considered a non-concurrent operation because the contents of only one device will be read for the job session. A job session with a quantity of 1 will cause any device operation to be considered as a non-concurrent device operation.

If a Pick-and-Place error occurs after a non-concurrent device operation is successful, the Pick-and-Place will not attempt to process another device. The user will be presented with a BP Handler dialog. The user must remove the device from the Autohandler then click the OK button to conclude the job session.

Note: To interrupt or stop a job, see Stopping/Interrupting a Job .

Interlock Open Notification

During a job session, the interlock open notification will be presented when the interlock(s) is detected open.

When the interlock(s) is detected open the Pick-and-Place will stop motion and will not resume until the interlock(s) is closed and the notification is dismissed by clicking the "Continue" button. The "Continue" button will remain unavailable until the system has detected that the interlock has been closed.

Close the interlock(s) then click the "Continue" button on the notification to resume Pick-and-Place operations. Possible causes for the opened interlock include an open cover, the E-Stop button is pressed, or the motor power is off on a 4000 series automated programmer system. Note that in the event that BPWin cannot detect a closed interlock you can exit the job session by clicking on the "Emergency Abort" button.

Empty Socket Test

The empty socket test (EST) is a feature that will electrically test that a socket does not unintentionally contain a device. This feature is automatically enabled if the selected device supports the continuity test operation; otherwise, the feature will be disabled. EST helps reduce the risk of device double stacking in a socket which may result in blank devices in the output media.

It is automatically performed on all sockets under these circumstances:

  • At the start of a job session.

  • At the end of a job session.

  • During a job session on all sockets in a site that have a pick failure and the operator clicks the Discard button on the pick failure notification.

  • When the interlock is opened BPWin will prepare to perform EST on all programming sites as soon as possible. In this situation, the actual EST operation will not begin on a site until the following conditions are met:

    1. The interlock is closed.

    2. The job session is resumed.

    3. Device operations currently executing in programming sites have completed.

    4. The APS has removed all devices that it is aware of from the programming sites.

  • After the number of device operation(s) specified by the Empty Socket Test Interval setting located in the Programmer Settings property page. It is important to note that the interlock and pick failure empty socket test requests will take precedence over the interval setting. For example, let us say that the interval setting is set to four. During the job session two device operations have occurred then the interlock is opened and then closed. The empty socket test will execute for the interlock opened event. After the empty socket test finishes, four more device operations must occur before the empty socket test is executed based on the interval setting.

  • After the number of device operation(s) specified by the Empty Socket Test Interval setting located in the Programmer Settings property page. It is important to note that the interlock and pick failure empty socket test requests will take precedence over the interval setting. For example, let us say that the interval setting is set to four. During the job session two device operations have occurred then the interlock is opened and then closed. The empty socket test will execute for the interlock opened event. After the empty socket test finishes, four more device operations must occur before the empty socket test is executed based on the interval setting,

Note: The Empty Socket Test involves extra socket close/open actions. These actions are not counted as Socket Module Insertions.


Autohandler Settings and Options

I. BP- 3000 / 4000 Autohandler - ch 5

WORKFLOW CONFIGURATION

Workflow Configuration...

The Workflow Configuration dialog is the direct interface with the autohandler. This dialog is used to designate all media pertaining to a workflow. The dialog is divided into 3 sections: the device package section which consists of the Package field, the media station section which consists of the Look for field and the media station list, and the workflow section which consists of the Workflow File field and the Sources, Programmers, Markers, Destinations, and Rejects media categories.

Device Package Section

A device package type selection is essential to the workflow because this will help the Pick-and-Place subsystem precisely position the device into a station. You can select an existing device package type by clicking on the drop down list's down arrow and then clicking on one of the available package types in the list. To add a new device package type clear the contents of the Package field, enter the new device package type name, then press the Enter key.

  1. IMPORTANT: You will have to teach a new device package type before teaching any media station or running a job session.

Media Station Section

The media station list is populated with media that is available to the workflow. From this list you will be able to add a media station to the workflow by clicking on an item and then dragging and dropping the selection over a media category or by right clicking on a selection and then use its context menu to add the selection to the workflow or remove the selection from the workflow. The Look for field can be used as a search engine by entering the first few letters of a media station's name. You will notice that as characters are typed in, the media station list narrows to show only those stations containing the characters you have typed, in the order you type them. Use the up and down arrow keys to select a media station in the filtered media station list and then press the Enter key to present the selection's context menu to add to the workflow or remove from the workflow. To add a new media station to the media station list you will need to clear the contents of the Look for field then enter the name of the new media station.

  1. IMPORTANT: If during this process a media station name is selected in the media station list you will need to deselect the item. You can perform this action by clicking on the white space in the media station list. After entering the new name, press the Enter key. This action will present the new media station's context menu to add it to the workflow. If an invalid media station name is entered, you will be presented with a notification.

Valid media station names will contain one of the following:

  • LASER - Represents a laser presenter peripheral, which is a laser marker (Marker field only) or laser nozzle locations.

  • LABELPRESENTER - Represents a 3rd party label presenter (Marker field only).

  • REJECTS - Represents a tray reject peripheral.

  • REJECTS1 - Represents a tube out peripheral.

  • SHUTTLE - Represents a shuttle peripheral. This type of peripheral only exists on a 3000 series automated handler. This is for JEDEC trays, input and/or output.

  • TAPEIN - Represents a tape feeder peripheral.

  • TAPEOUT - Represents a TM-50 or TM-330 tape loader peripheral. This peripheral can be equipped with a 2D vision inspection system.

  • TRAY - Represents a tray. These are static JEDEC trays, input and/or output.

  • TS1500 - Represents the TS-1500 tray stacker peripheral, input and/or output

  • TUBEIN - Represents a vibratory feeder peripheral or single lane feeder

  • TUBEOUT - Represents a vibratory loader peripheral or single lane loader

  • TUBEEXPIN - Represents a stacked tube feeder peripheral.

  • TUBEEXPOUT - Represents a stacked tube loader peripheral.

Workflow Section

The Workflow File field contains the autohandler workflow (.abp) file currently loaded. Media categories are used to help organize the workflow and illustrate the progression of a device in the workflow beginning from the Sources category and ending in the Destinations category. Media stations are added to a media category or removed from a media category to create the desired workflow. A valid workflow must contain at least one media station in the Sources, Destinations, and the Rejects category. If any of these categories do not have at least one media station and the OK button is clicked, the workflow will not be accepted and the Workflow Configuration dialog will not be closed. There are 4 options to remove media station(s) from the workflow:

  1. You can remove one single media station from a category by right clicking on the media station and selecting Remove from the context menu.

  2. You can remove a media station from one or more categories by selecting the media station inside the media station list and right clicking on the selection to present the context menu. Then select the Remove from Workflow context menu item.

  3. You can remove all of the media station(s) from a category by right clicking inside the category and selecting Remove All from the context menu.

  4. You can remove all stations from all categories by clicking on the Remove All button.

Sources Category

A source media station can be added to this category. This is the media that will source blank devices to the workflow. Source media stations will contain one of the following in its name:

    • SHUTTLE

    • TAPEIN

    • TRAY

    • TS1500

    • TUBEIN

    • TUBEEXPIN

Up to 2 source media stations can be added to this category. The order in which the media is serviced is visually represented in the category starting from the left of the top row then moving to the right and then continuing with the next row. In this example the first media serviced in the job session will be the media station named TRAY_SIM_LT_12X13_TSOP32. When this media becomes empty, TRAY_SIM_RT_12X13_TSOP32 will get serviced next in the job session. Note that the order of the media will hold true if the empty media station is not reloaded and its notification is not dismissed. If the empty media station is reloaded and the notification is dismissed, it will get serviced next when the current source media station becomes empty. You can change the order of a media station by clicking on the media station inside the category and dragging it before or after another media station.

Auxiliary Source

An auxiliary source is defined as a media station that is serviced only when all other source media stations become empty. As soon as any other source media station is reloaded and its reload notification dismissed, the auxiliary source media station will immediately stop getting serviced and the reloaded source media station will get serviced. To set a source media station as an auxiliary, right click on the source media station and select the Set as Auxiliary context menu item. Note that this option will be disabled if the source media station also exists in the Destations category.

Programmers Category

The media station named All Programmer Sites can only be added to this category. This media represents all of the sites that have socket modules installed. To perform a media to media transfer job session, remove the All Programmer Sites media from the category.

Markers Category

A marker station can be added to this category. This media can add a mark to the device. Marker media stations will contain one of the following in its name:

  • LASER

  • LABELPRESENTER

Only one label presenter and/or one laser presenter media station can be added to this category. If both the label presenter and the laser presenter are present in the category, the label presenter will always be serviced before the laser presenter.

Destinations Category

A destination media station can be added to this category. This is the media that will contain programmed devices from the workflow. Destination media stations will contain one of the following in its name:

  • SHUTTLE

  • TAPEOUT

  • TRAY

  • TS1500

  • TUBEOUT

  • TUBEEXPOUT

Up to 2 destination media stations can be added to this category. The order in which the media is serviced is visually represented in the category starting from the left of the top row then moving to the right and then continuing with the next row. In this example the first media serviced in the job session will be the media station named TRAY_SIM_LT_12X13_TSOP32. When this media becomes full, TRAY_SIM_RT_12X13_TSOP32 will get serviced next in the job session. Note that the order of the media will hold true if the full media station is not reloaded and its notification is not dismissed. If the full media station is reloaded and the notification is dismissed, it will get serviced next when the current destination media station becomes full. You can change the order of a media station by clicking on the media station inside the category and dragging it before or after another media station.

Rejects Category

A reject media station can be added to this category. This is the media that will contain rejected devices from the workflow. Rejected devices include vision centering failures and programming failures. Reject media stations will contain one of the following in its name:

  • REJECTS

  • REJECTS1

  • SHUTTLE

  • TAPEOUT

  • TRAY

  • TS1500

  • TUBEOUT

  • TUBEEXPOUT

Up to 15 reject media stations can be added to this category. The order in which the media is serviced is visually represented int he category starting from the left of the top row then moving to the right and then continuing with the next row. In this example the first media serviced in the job session will be the media station named REJECTS-TSOP32_SIM. When this media becomes full, TRAY_SIM_LT_3X3_TSOP32 will get serviced next in the job session. When this media becomes full, TRAY_SIM_RT_3X3_TSOP32 will get serviced next in the job session. Note that the order of the media will hold true if the full media station is not reloaded and its notification is not dismissed. If the full media station is reloaded and the notification is dismissed, it will get serviced next when the current reject media station becomes full. You can change the order of a media station by clicking on the media station inside the category and dragging it before or after another media station.

Reject Classification

A reject media station can be set to get populated with devices having a specific class of device failure. For example, one reject media station can be set to get populated with all devices having vision centering failures and another reject media station can be set to get populated with all devices having continuity failures. All other device failures will be sent to the reject media station with the Common classification. This is can be helpful to maximize product yield by taking only the devices with continuity failures and running them through a job session again. You can classify a reject media station with one of the following classifications:

  • Continuity Failures

  • Erase Failures

  • ID Failures

  • Program Failures

  • Verify Failures

  • Vision Centering Failures

  • Common

    • This classification is used for all device failures that are not classified or when no other reject media station is set with a specific classification.

      1. IMPORTANT: At least 1 reject media station must have this classification set otherwise the workflow configuration will not be accepted.

Open Workflow...

Loads a selected autohandler workflow file (.abp). The linked programmer job (.bp file) and it's path will be displayed in the Workflow Setup Report and in the BPWin title bar.

You may use the "Allow JobMaster File (.bp) relinking" option in the System Settings dialog to control how BPWin behaves when the JobMaster File that is linked to the Workflow File does not exist.

If the relinking option is not selected, an error will occur when loading a Workflow File if the JobMaster File is not found. If selected, the user will be given the option to browse for another JobMaster File. Note that an error will occur if the selected JobMaster File does not exactly match the one used when creating the Workflow File.

Save Workflow

Saves the settings as an autohandler workflow file (.abp).

Save As Workflow...

Create a new .abp file or copy an existing autohandler workflow file. A JobMaster file (.bp) must be selected before saving.

View Workflow Setup Report

See the Job Report for autohandler and programmer job configurations, such as, file names, source and destination names.

Back To Top


Job Summary Report

Analysis of the Data:

First Pass Yield = 38.5%

This represents the percentage of devices that were placed into the output media without introducing failures during the job session.

Total Devices = 12

Indicates that a total of 12 devices are in the output media and the reject media.

Successful Devices = 8

Indicates that there are 8 devices in the output media. These devices experienced no errors. Note that this value may not be identical to the total number of passed devices in the Site Statistics section because of pick failure(s) that may occur after a successful device operation.

Rejected Devices = 4

Indicates that 4 failed devices have been output to the reject media. Note that this value is not identical to the total number of device operation failures in the Site Statistics section.

Reject Failure Analysis

These fields will detail the type of device operation failure that caused the device to be output to the reject media including the Pick-and-Place vision centering failure.

Erase Failures = 1

One device failed to erase.

Programming Failures = 2

Two devices failed to program.

Vision Centering Failures = 1

One device failed vision centering. This failure occurs when the vision centering camera is not able to measure the device to place accurately into the targeted destination. The device is then automatically placed into the reject media. This type of failure can occur after a device is picked from the source media or after a device is picked from a programmer socket or a laser marker nozzle. Note that a device that has passed the device operation will be rejected if a vision centering failure occurs while moving the passed device into its targeted destination.

Continuity Retries = 3

The device operation was retried on 3 devices that initially failed due to a continuity failure.

Operation Failure Retry Efficiency = 33.33%

2 of the 3 retry attempts failed the device operation.

Autohandler Failure Details

Pick Failures

Indicates how may pick attempts have failed during the job session. Examples of pick failures include empty pockets at the source media or the device failing to become attached to the Pick-and-Place nozzle at a programmer socket or a laser marker nozzle. Note that this type of failure is considered as a discarded device that no longer exists in the APS. Therefore it is not included in the Reject Devices field of the job summary report.

Continuity Retries

Indicates how many devices have been reseated in their same socket and the device operation reattempted because the device failed the continuity test.

ID Check Retries

Indicates how many devices have been reseated in their same socket and the device operation reattempted because the device failed the ID check test.

Operation Failure Retry Efficiency

Indicates how effective the feature is when retrying a continuity or ID check device operation failure.

Analysis of the Data:

Passed = 3

Indicates 3 devices passed device operations. When looking at the sample data in Operation Statistics, "Successful Devices = 2" indicates the third passed device here had a pick failure after device operation.

Failed = 6

Indicates 6 devices failed the device operations.

Total = 9

Indicates 9 devices were placed in programmer sites.

Failed Device Operation Details
The same total from Failed. In this case, all 6 were continuity failures.

Yield for Site 2A = 66.67%

2 of the 3 devices for that site began a device operation and completed successfully. The yields shown do not take into account any Pick-and-Place errors that occurred.

BPM Microsystems

Job Summary Report

A Job Summary Report will appear after a job has stopped by either aborting the job during a run or when the job quantity has been met. The report can be printed or saved as an HTML file. An Auto Save option is available under File | Configure. If a JobMaster file was used for a job or if no JobMaster file was used but the quantity of the job is 2 or more, a report will be displayed at the end of the job.

  • OK - Closes the window.

  • Save - Opens the Save As dialog.

Saving the report under an existing Job Summary Report file name, will result in the report being added to the existing file's report. When opening the file to view, there will be more than one report to see.

  • Print - Sends the report to a printer.

Sections in the Job Summary Report

The entries shown in each of the sections are examples of what can be displayed in the report, some are dependant on the job set-up and options selected.

  • Job Information

  • Data Pattern Information

  • Device Information

  • Device Specific Configurations

Enumerates device-specific configuration options for most devices.

  • Serialization Information

  • Overall Statistics

Device Operation Statistics for Manual Programmers
Device and Autohandler Operation Statistics

Device and Autohandler Operation Statistics (link includes analysis of sample data)

    • End Time - Time when job stopped, not used in calculating DPH.

    • End Time - Time when job stopped, not used in calculating DPH.

    • Failed Devices - Device operation failures and, Pick-and-Place vision centering failures. This value does not include pick failures. If a device experiences both a device operation and Pick-and-Place vision centering failures, the fail count is still only incremented by 1.

    • Operation Time includes the minimum, maximum, and average times for all sites based on elapsed time. The times are rounded to the nearest tenth of a second.

    • Start Time - Time when job started, not used in calculating DPH.

    • Successful Devices - The number of devices that passed all operations.

If a job was not aborted, it is the same value as Quantity. If an autohandler was used, a device is counted as successful if it passed the device operations and it was placed in the output media.

    • Total Devices - Sum of successful and failed devices.

    • Yield - The percentage of devices that begun a device operation and successfully completed the operation. If an autohandler was used, Pick-and-Place errors are included in the yield.

    • Empty Socket Test Statistics

      • Start of Job Session Est - Indicates if the empty socket test was executed at the start of the job session.

      • End of Job Session Est - Indicates if the empty socket test was executed at the end of the job session.

      • Interlock Est Requests - The number of interlock opened/closed events that caused the empty socket test to execute.

      • Pick Failure Discarded Est Requests - The number of pick failure discarded events that caused the empty socket test to execute.

      • Interval Est Requests - The number of Est interval events that caused the empty socket test to execute.

    • DPH Statistics

      • DPH Start Time - The start time used in calculating DPH.

      • DPH End Time - The end time used in calculating DPH.

      • Devices/Hour - (DPH) Obtained from the job progress Actual DPH value.

      • Potential Devices/Hour - Obtained from the job progress Potential DPH.

      • Idle Time - Applies to autohandler systems. The time the Pick-and-Place is not actively performing a task or when all programmer sites are idle. Examples include when an interlock is open or when there is an operator prompt that halts the autohandler. This time affects the devices per hour. Under the idle time are listed the events that contributed to the idle time.

      • Operation Efficiency - Percentage of the Actual DPH over Potential DPH.

  • Site Statistics (link includes analysis of sample data)

Device operation statistics. Pick-and-Place errors are not included in any of the values below.

    • Failed - The quantity of device operation failures.

    • Yield - The percentage of devices that began a device operation and successfully completed the device operation.

    • Failed Device Operation Details - The types of device operation failures that occurred.

    • EST Executions - The number of empty socket tests executed on the socket.

    • EST Executions PASS - The number of empty socket tests that passed on the socket.

    • EST Executions FAIL - The number of empty socket tests that failed on the socket.

  • Socket Module Insertion Counters - "N/A" means no interval was specified.


Job Monitoring

I. BP- 3000 / 4000 Autohandler - ch 5

job session monitoring

Session Statistics

In addition to what is described here for the Session Statistics pane, on BP-3000/4000 Automated Programming Systems (APS) the pane displays the following information:

Pick-and-Place Failed

The total number of devices that have failed due to pick failures and place failures.

Dead Time

Real-time, updated version of the Dead Time value described here.

Time Remaining

The time required to finish the job and is equal to the number of Devices Remaining / Current Potential DPH.

The time remaining is updated after a device has completed its series of operations and the total number of devices remaining changes. When the system is interrupted (interlock open, system waiting for tray reload, etc), the job time remaining will freeze until the system begins operating again at which point the timer will continue counting from where it left off.

The Devices Passed value described here is incremented on an APS when a device has passed its operation and it has been placed into the destination media.

Example: A device is placed in a programmer, and programmed successfully, but then a pick error occurs while trying to move it to the output tray. In this case, "Devices Passed" will not be incremented because the device did not reach the destination successfully.

On an APS, the Devices Failed value described here includes actual device operation failures and Pick-and-Place vision centering failures. However, the value does not include pick errors.

Note: A given device might have BOTH a device operation failure as well as a vision centering failure. An example would be when a device that failed to verify (device operation failure) also experienced a Pick-and-Place vision centering failure while moving the device into the reject media. A vision centering failure and a device operation failure for the same device would increment this value by only one (1).

On an APS, the Yield value described here is the percentage of devices that passed the operation, regardless of any Pick-and-Place failures after the operation.

The Potential DPH value described here is the DPH possible assuming that the system is used to maximum capacity without interruption from the beginning of the job to the end. Failures are cast out, but since they incur handling time and socket time, failures implicitly cause the Potential DPH to drop. When the system is interrupted (interlock open, system waiting for tray reload, etc), the Potential DPH is unchanged.

Monitoring a Job Session with the Autohandler View

The Autohandler View shows the system as the autohandler sees it, with all peripherals shown at their taught location and all devices shown at their correct size with respect to the autohandler. If a peripheral is not taught, it will not appear on the window. This provides a simple and intuitive way to check that the system is in the correct configuration both before and during a job session. Move the mouse over a peripheral to show more information.

The Autohandler View can be accessed by clicking the "Switch to Autohandler View" button on the toolbar or pressing Ctrl+Tab on the keyboard.

Location Status boxes - Provides real-time status for every location in the system and reflects the pass/fail status of every device. When a job session is not in progress, the Autohandler View will show what state the autohandler was in when the last job session ended. If a job session has not yet run, all locations will appear disabled. Hovering over a status box pops up a tooltip text box with additional information about the location.

Default Appearance/Color | Indicates
 | The location does not contain a device.
Dark Gray | The location contains a device that the programmer has not operated on.
Amber | The peripheral is operating on the device.
Green | The location contains a device that the programmer has operated on successfully.
Red | The location contains a device that the programmer has operated on unsuccessfully.
Light Gray | The location is disabled or not available to use.
Blue | A pick or place failure has occurred at that location.

Note: These colors can be changed through the Status Box Colors dialog which is described here.

Monitoring a Job Session with the Programmer View

The Programmer View can be accessed by clicking the "Switch to Programmer View" button on the toolbar.

A description of the Programmer View can be found here. In addition to the description of the Programmer View there, on automated programming systems, you can disable and enable all sockets on a site during a job session by right-clicking its status box and choosing "Disable all sockets" or "Re-enable all sockets" from the menu that appears. A site that is disabled in this manner will complete any current operation being performed on its sockets and then the devices will be picked. After all sockets are emptied the site will close its sockets and a notification will be presented indicating that the site is ready to be serviced. This feature is useful when you need to clean a socket having excessive device operation failures due to dirty contacts during a job session. For example, choose "Disable all sockets" on the site that has the socket requiring cleaning. Pause the job session after you are presented with the notification indicating that the site is ready for service. Open the autohandler's interlock and then remove the disabled site's pressure plate to access the socket. You are now able to remove the socket requiring cleaning from the site. After you remove the socket, reinstall the pressure plate so that the remaining sockets on the site can be utilized during the job session. Close the interlock and resume the job session. To add the remaining sockets on the disabled site back into the job session you will need to dismiss the site's notification then right-click on the site and choose "Re-enable all sockets".

Monitoring a Job with the Light Tower

In addition to monitoring the status of the job and the different programming sites on your screen, you can also monitor the job using the Light Tower. Depending on the circumstance corresponding to the indications of the light tower, dialogs will appear on your screen providing instructions on how to proceed. Follow the instructions in the dialogs as they appear. The table below details the behavior of the light tower under particular conditions.

Red indicates that the machine has stopped and requires immediate operator attention before operations can continue. Some systems feature an audible buzzer that will sound when the tower is Red. Green alone indicates that the machine is operating properly.

Note: When the red light is turned on the automated programming system will complete its current Pick-and-Place operation then move the X-axis and Y-axis to their home position.

Yellow alone indicates the job session is paused by clicking the Pause button or the Stop button, teaching during a job session, or the interlocks are open during a job session.

Yellow and Green together indicate that the machine is running but the operator may have to do something fairly soon to keep the machine from running less efficiently or stopping. A dialog appears on the screen indicating what action is needed. Depending on the situation, the operator can clear the dialog and keep the machine running until the required action can be performed or operator can stop machine to perform required action.

Machine is idle and is not running a job

Off

Job is running properly

Green

  • Machine is teaching locations during a job or

  • Interlocks are opened during a job or

  • Job session is paused by clicking the Pause button or Stop button

Yellow

  • A secondary input is empty and/or

  • A secondary output is full and/or

  • Mispick, misplace, Empty Socket Test failure, etc.

  • And the autohandler can still run

  • OR the job session just started or is ending

Yellow & Green

Machine requires operator attention

  • A primary input is empty and/or

  • A primary output is full and/or

  • Rejected Parts location is full and/or

  • Autohandler error

  • And the autohandler has stopped

Red

Machine requires immediate operator attention

Light Tower Reference Table

Managing Input/Output Locations

  1. The autohandler continues to program parts until either the Output Passed or Rejected Parts location is full.

  2. At this point, the autohandler stops and displays a red light and a dialog appears with a "Tray is Full" message on the screen.

  3. Follow the procedure(s) detailed in the message to clear the tray.

  4. Close the cover and click on the OK button on the screen to continue programming once you have changed the input and output media.

Notes:

  • When using trays, be sure to align them toward the front and right of the autohandler. The autohandler picks and places parts based on precise positioning of the trays, so be very careful and consistent with tray alignment. The trays have a slight visible lip on the underside and it is possible to catch the tray on the back edge of the mounting plate, mistaking this as the full-forward position. To ensure correct placement, check the trays position visually to be sure.

  • The majority of rejects result from one of two failures. If rejects occur on several sites repeatedly, then this is probably a device failure. If the numerous rejects are coming from a single site, this is most likely a simple continuity failure. In this case, the device is functional but did not fit properly in the programmer socket. If you run these devices again, chances are good that they will program successfully. If they fail a second time, something is probably wrong with that device. See Job Completion on how to retest rejects.

Managing Input/Output Locations

  1. The autohandler continues to program parts until either the Output Passed or Rejected Parts location is full.

  2. At this point, the autohandler stops and displays a red light and a dialog appears with a "Tray is Full" message on the screen.

  3. Follow the procedure(s) detailed in the message to clear the tray.

  4. Close the cover and click on the OK button on the screen to continue programming once you have changed the input and output media.

Notes:

  • When using trays, be sure to align them toward the front and right of the autohandler. The autohandler picks and places parts based on precise positioning of the trays, so be very careful and consistent with tray alignment. The trays have a slight visible lip on the underside and it is possible to catch the tray on the back edge of the mounting plate, mistaking this as the full-forward position. To ensure correct placement, check the trays position visually to be sure.

  • The majority of rejects result from one of two failures. If rejects occur on several sites repeatedly, then this is probably a device failure. If the numerous rejects are coming from a single site, this is most likely a simple continuity failure. In this case, the device is functional but did not fit properly in the programmer socket. If you run these devices again, chances are good that they will program successfully. If they fail a second time, something is probably wrong with that device. See Job Completion on how to retest rejects.

The Notifications Pane

The Notifications pane is a dockable pane in the BPWin interface's main window that reduces message clutter by managing all system notifications during an Automated job session. Instead of displaying all notifications simultaneously (reload messages, pick failures, etc), only the currently selected item in the notification pane is displayed at a time. Once the notification is handled, the next one will automatically be displayed. The pane can be used to select which notification you wish to address by clicking on the desired notification in the list. By default, the pane will appear when multiple notifications are received, and will hide automatically when all notifications have been handled.

The Notification Pane:

  • Is only visible in APS mode.

  • Has a default location that is docked to the left of the mainframe.

  • Will pop-out automatically when:

    • Multiple messages have been received. A single message will not cause it to pop-out unless you explicitly open it by clicking on it or hovering the mouse over it.

    • A notification window (modeless dialog box) is open and receives focus; the notification pane will disappear when all notifications have been removed. After dismissing a notification window, the notification window associated with the first notification in the list is automatically displayed. If no notifications remain, the pane pops back to the hidden state.

    • Two or more notifications have been received during a job session. If you choose to close the pane, it will remain closed until two or more notifications are received in the subsequent job session.

  • Will be hidden when the main BPWin window is clicked (auto-hide mode only). Clicking on a separate notification window will pop the pane out again.

  • Will never hide or pop-out based on notifications received if the pane is docked.

  • Can be used to cycle between notifications by using the mouse to select an item from the pane. Only a single separate notification window is displayed (centered within the main BPWin window) at a time.


Email Notifications

BPWin can be configured to send E-mail notifications to report system events to multiple users. Accessible from the "Autohandler->E-mail Notifications..." menu item, the "E-mail Notification Configuration Dialog" is used to configure what types of events each user receives. Note that only Windows Administrators may configure e-mail notifications, but all users may receive notifications via e-mail.

  • Enable e-mail notifications - Enables/disables the e-mail notification feature. When disabled, no e-mail notifications will be sent. When enabled, e-mail notifications will be sent according to the rules specified in the E-mail Notification List.

  • Server name - The SMTP server name or IP address that will be used to send e-mails

  • Port no - The port to use when communicating with the SMTP server. Note that SSL connections are not supported at this time. Please contact tech support if SSL support is needed.

  • Use Authentication - If checked, the "User name" and "Password" fields will be used to authenticate with the SMTP server. Only check this if the SMTP server requires authentication.

  • User name - The username to use when authenticating with the SMTP server. This field is ignored if the "Use Authentication" checkbox is unchecked.

  • Password - The password to use when authenticating with the SMTP server. This field is ignored if the "Use Authentication" checkbox is unchecked.

  • Test Address - E-mail address where test e-mails are sent. Note that this field can even be modified by Restricted Windows Users to allow for testing the current E-mail Notification configuration.

  • Send Test E-mail - Uses the current settings to send an email to the address specified in the "Test Address" field. Use this to verify that the SMTP server is configured correctly.

  • E-mail Notification List - Each notification consists of an e-mail address where the notification will be sent and a list of events that will trigger the e-mail notification.

  • The Add, Edit, and Delete buttons can be used to modify the E-mail Notification List. Double-clicking an e-mail notification can be used to edit it, and pressing the DELETE key on the keyboard will delete the currently selected notification.

  • Attach "Job Summary Report" to "Job Session Complete" notification - When checked, the Job Summary Report HTML file will be sent as an attachment with the "Job Session Complete" e-mail notification.

Use the "Add/Edit E-mail Notification Dialog" to specify what events will be reported to a particular e-mail address. Multiple events can be selected by clicking and dragging the mouse, or using the CTRL and SHIFT keys and clicking the mouse on the desired events. The event types are as follows:

  • Pick/Place Errors - A pick or place error occurs.

  • Station Errors - A station reports an error.

  • Empty Socket Test Errors - An unexpected device is detected in a programmer socket.

  • Max Site Failures - A site is disabled because it has failed more than the amount allowed by the "Max Site Failures" feature.

  • Media Events - A peripheral needs to be reloaded or an output media is partially filled at the end of a job session.

  • Interlock Open - The Interlock is opened.

  • Fatal Errors - A fatal error occurs and requires operator intervention to continue with the job session.

  • All Stations Idle - All stations are idle and no longer performing any work.

  • Job Session Started - A job session started.

  • Job Session Complete - A job session completed.

The subject of each e-mail notification will include the event type and the name of the station (if applicable) that is the source of the notification. The body of the e-mail will include other details about the event if available.

Note that an e-mail address may only be added to the E-mail Notification List a single time. To modify or add events received by a particular e-mail address simply edit the entry and make the required changes.


Interrupting A Job

During a job session, a job can be interrupted using the Pause button in BPWin Main. Interrupting a job session before it is complete is useful when you need to reteach a peripheral station to adjust it's teach location, change laser marking settings, perform diagnostics or when the job quantity has to be changed. After the Pause button has been clicked, the automated programming system will complete its current Pick-and-Place operation then move the X-axis and Y-axis to their home position before entering the paused state. When the automated programming system is paused, the Autohandler menu will become enabled. It is through this menu that you will be able to access teach, diagnostics, and settings that are available during a paused job session. Clicking on the Pause button again will cause the automated programming system to resume the current job session.

Changing Job Quantity

After the automated programming system is paused, the Quantity field will be enabled so that you can enter a new value. The value entered cannot be less than the sum of devices passed plus devices that are active. BPWin will prompt you to accept the new value when the job session is resumed.

New Job Quantity >= Total Passed + Active

Changing Laser Marker Settings

This option is only available when a laser marker station has been selected as part of the workflow. After the automated programming system is paused, select the Autohandler->Workflow Settings... menu option to open the Autohandler Workflow Settings dialog then click on the Laser Marker Configure... button to open the Laser Marker Configure dialog. The text, the X-axis and Y-axis position of the text, and the power and speed of the lasing operation will always be editable during a paused job. Other settings, if enabled during the initial job set-up, will also be available for editing. For example, in the dialog shown in this section, the option to use a project file was not selected initially, so this option is disabled when changing laser marker settings when the job is paused.

Performing Pick-and-Place Diagnostics

After the automated programming system is paused, select the Autohandler->Diagnostics submenu to view the available diagnostics. Available diagnostics include the I/O and Sensors, Pick-and-Place Motion, and Pick-and-Place Runout Test.

Reteach Peripherals

After the automated programming system is paused, select the Autohandler->Teach... menu option to open the Select Location to Teach dialog so that one or more peripherals can be taught. After teaching, you will need to click on the Pause button again to resume the job session.

Note: A reteach cannot be performed on a peripheral that is in an error state and/or requires user intervention. You must address the issue presented for the peripheral before attempting to reteach.


ending a Job

Stopping a Job

When it is necessary to interrupt a job before it is completed, it is important to “idle” the BP-3000/4000 properly.

To stop a job, click on the Stop button in BPWin Main. The STOP dialog appears allowing three options for the job session.

  • End Job Now - terminates the job "gracefully" so the devices in the sockets will finish programming and be placed into the specified destination.

  • Emergency Abort (stop all motion) - terminates the job immediately and leaves partially programmed devices in the sockets. If a device is on the Pick-and-Place nozzle at the time the job session is terminated immediately, the device will be dropped at its present location.

  • Esc key - resumes the job.

Note: When the Stop button is clicked the automated programming system will complete its current Pick-and-Place operation then move the X-axis and Y-axis to their home position.

Job Completion

A job is complete when the programmer reaches the total number of programmed parts specified in the Quantity field. If applicable, a Job Summary Report will be displayed. If there are any rejected devices, follow the steps below.

Rejected Devices

In many cases, rejected parts merely failed to achieve continuity and will “pass” if run through the programmer another time. Those that are rejected a second time are probably defective.

To maximize product yield:

    1. Place the rejected devices into one of the input source locations.

    2. Close the cover.

    3. Click the Run button on the Autohandler Workflow Settings dialog.

Example: If you have specified 1000 devices for programming and have 990 parts in the passed (output) location and 10 in the reject location, insert the rejected devices back into the input location and start the job again. Once the 10 parts are programmed and placed in the passed location, the programmer will complete the job and return to the Home position.

The programmer will keep count of the number of devices programmed and the number of devices remaining. It will compare this number to the number specified in the Quantity field. It does not keep track of rejected parts and, therefore, will continue with the job until the number of devices to be programmed is reached. In order to accurately track rejected parts, refer to the Job Summary Report available at the end of a job.

Executive Summary Report

The executive summary report is a report presented at the end of the Job Summary Report to quickly analyze the performance of the job session and presents actions that may be taken to improve the performance of the job session. The report is divided into three sections that decrease the performance of the job session: Configuration, Operation and Malfunctions.

Configuration

This section of the report identifies job session configuration settings that decrease job session performance.

Operation

This section of the report identifies job session idle times that decrease job session performance.

Malfunctions

This section of the report identifies malfunctions of the Pick-and-Place and device operation that decrease job session performance.

Back To Top


Tape Feeder Installation

Installing the Feeder

Removing the Feeder

Loading Tape into the Feeder

Clearing a Jammed Feeder

Pocket Position Programming

Set the Pocket Index

Index Programming

I. BP- 3000 / 4000 Autohandler - ch 7

Tape Feeder

Components are packaged in reels of two-ply tape. This tape is fed through an electronic tape feeder. Optional tape feeders accommodate components from 8mm – 44mm. Power is supplied to the tabletop mounted feeder base.

Installing the Feeder

The tape feeder hooks into the feeder base to receive power. The feeder mounts on tracks which guide the feeder into position. An alignment pin ensures proper feeder positioning when the plug-in connection is made.

Note: Use the thumb latch for installing and removing the feeder.

  1. Align the front pin into a slot on the feeder base.

  2. Press the thumb latch and push the feeder forward and down.

  3. Release the thumb latch to secure the feeder in place.

Removing the Feeder

To remove the feeder from the feeder base, press the thumb latch, pull and lift the feeder from the slot.

Loading Tape into the Feeder

Refer to picture below when using these instructions.

  1. Pull an 8” strip of tape from the component reel. Cut the end of the tape straight across between one sprocket hole.

  2. Insert the tape with the sprocket hole on the left into the tape entry location and push the tape until it stops.

  3. Use the Forward (Red) button to advance the tape to the point where the tape meets the spring stabilizer and the sprockets take hold. Use your fingers to guide the tape. Stop and pull the tape back slightly. You should feel the tape move on the sprocket. If the tape is not on the sprockets, push the Reverse (Black) button to remove the tape from the feeder and begin again, at Step 1.

  4. With tweezers, gently pull the clear cover tape away from the bottom tape, making sure not to trip the sensor to advance the tape feeder.

  5. Press the Forward button to advance the tape at least 6”. The two tapes should separate.

  6. Thread the cover tape through the peel slot, located just behind the pickup position. Turn the clear tape 90° clockwise and slip the tape into the slot. Turn the tape back.

  7. Pull the pinch roller release back and thread the cover tape over the peel roller and under the pinch roller and finally through the take -up reel slot.

  8. Wind the cover tape around the reel several times and into the hole at the end of the slot to tie the tape off.

  9. Tighten the slack of the cover tape by turning the take -up reel clockwise.

  10. Push the Reverse button to back up the tape four component positions.

  11. Pass your finger over the pickup sensor to advance a component. This positions the tape correctly on the sprocket.

Do not use the Forward button to advance the component. The feeder should continue to advance one component at a time, with the component stopping right at the sensor pickup point (over spring stabilizer). If it does not, refer to the section Pocket Position Programming.

Tape Feeder Installation Diagram

Back To Top

Clearing a Jammed Feeder

If the tape jams in the feeder while operating, follow these instructions.

  1. Cut the component tape at the tape entry location.

  2. Press the Reverse button to back out the remaining tape fragments.

  3. Reload the tape feeder (see Loading Tape into the Feeder).

Pocket Position Programming

This procedure centers the components properly at the feeder pickup point (over spring stabilizer).

If you press the wrong button at any time while programming, you can reset the feeder by removing it from the feeder base and reinserting it. This disconnects feeder power and resets the program to the previously saved pocket position.

  1. Simultaneously press the Forward and Reverse buttons on the tape feeder (Programming Mode). The two LEDs should go out.

  2. Press the Reverse button three times (Pocket Positioning Mode). The two LEDs should light with each press of the button.

  3. To center the component, press and release the Forward button quickly to advance the tape slowly. Press and hold this button to advance the tape faster. The component pocket should be centered along the notch etched in metal on the left side of the tape feeder.

  4. Press and release the Reverse button to store the pocket position. The LEDs should not flash. If the LED indicators flash, when pressing the Reverse button, press either Forward or Reverse button to stop the flashing LED and repeat Steps 3 and 4.

  5. Interrupt the pickup sensor beam with your finger. The tape should advance and center the component. If not, repeat Steps 1 through 4.

Back To Top

Set the Pocket index

The adjustable Pocket Index function enables handling different size component tape reels or special component packaging. These instructions set the index (tape advance) after a pickup. Each tape index advances 4mm.

Note: During index programming, press the button and hold momentarily so that the corresponding LED illuminates, otherwise, the tape feeder will not be properly set.

For 4mm - 32mm indexing:

  1. Simultaneously press the Forward and Reverse buttons on the tape feeder (Programming Mode). Both LED lights should go out.

  2. Press the Reverse button twice, and the Forward button once (Pocket Programming Mode). The LEDs should light every time a button is pressed.

  3. Use the following table, to program the tape feeder using the Forward and Reverse buttons for the proper index. The LEDs should flash while you are pressing the buttons. After the last button is pressed, the sequence is automatically stored.

For 36mm - 44mm indexing:

  1. Simultaneously press the Forward and Reverse buttons on the tape feeder (Programming Mode). Both LEDs will go out.

  2. Press the Forward button three times (Pocket Programming Memory Modify Mode). LEDs will illuminate.

  3. Press the buttons indicated in the set-up sequence, the first line of the table. The LEDs must illuminate each time a button is pressed.

  4. Use the following table, to program the tape feeder using the Forward and Reverse buttons for the proper index. The LEDs should flash while you are pressing the buttons.

  5. Simultaneously press the Forward and Reverse buttons on the tape feeder (Programming Mode). Both LEDs will go out.

  6. Press Forward button twice and Reverse button once to store the sequence in memory.

Index Programming

Use these tables when programming the tape feeder for tape indexing between 4mm and 44mm. Press the Forward and Reverse buttons in the order that they appear from left to right in these tables.

Index | Button Sequence
4mm | REVERSE | REVERSE | REVERSE
8mm | REVERSE | REVERSE | FORWARD
12mm | REVERSE | FORWARD | REVERSE
16mm | REVERSE | FORWARD | FORWARD
20mm | FORWARD | REVERSE | REVERSE
24mm | FORWARD | REVERSE | FORWARD
28mm | FORWARD | FORWARD | REVERSE
32mm | FORWARD | FORWARD | FORWARD

Index | Button Sequence
Set-Up | REVERSE | FORWARD | FORWARD | REVERSE | REVERSE | REVERSE | REVERSE | FORWARD
36mm | FORWARD | FORWARD | FORWARD | FORWARD | REVERSE | FORWARD | FORWARD | FORWARD
40mm | FORWARD | FORWARD | FORWARD | FORWARD | REVERSE | FORWARD | FORWARD | REVERSE
44mm | FORWARD | FORWARD | FORWARD | FORWARD | REVERSE | FORWARD | REVERSE | FORWARD

Back To Top


Pick-and-Place

Settings

The Pick-and-Place can be configured through the Pick-and-Place Settings property page.

The property page can be accessed via the Autohandler->Pick-and-Place->Settings... menu option.

  • Allow operator to retry mispicks - Select this option to add to the pick failure notification the option to retry the pick operation for the target on which the pick failure occurred.

  • Capture mispick image (3000 Series Gen 2 only) - Select this option to capture an image of the pocket from which the Pick-and-Place failed to pick the device. This feature can be used to help in diagnosing pick failures. The image files are located in the Images\DeviceInspection folder which is located inside the job log folder. The image file name will contain the text "[PickFailure]". For example, C:\BP\DATALOG\JobLogs\2015-03-26_14.21.25_.User Input\Images\DeviceInspection\[IN0000002] [05] [Programmer Site 3, socket B] [PickFailure].png.

Important: Enabling this feature will adversely affect DPH.

Initialize

Initializes the Autohandler. The Pick-and-Place System Initialization dialog will be presented to show the progress of the initialization process.

Note: Aborting the Autohandler initialization process will disable Autohandler menu options that require the use of the Pick-and-Place. For example, if the initialization is aborted, the Autohandler->Teach menu option will be disabled.

Cycle Power

Open the Cycle Power dialog to cycle the power to the programmers, the Pick-and-Place motor drivers, and the station peripherals. After the power is cycled the Autohandler will be initialized.

Important: You must re-establish communications with the programmers via the File->Configure menu option after the cycle power process completes.

Diagnostics

CyberOptics Camera Image Quality Test

This test should be used to ensure that the CyberOptics Laser Align Camera is functioning properly and clear of debris. The test is automatically run at initialization and at the beginning of the job.

Various image quality parameters are inspected on the CyberOptics Laser Align Camera to ensure that they are within maximum and minimum tolerances. If the camera does not meet these tolerances, the user will be presented with the CyberOptics Laser Align Camera cleaning procedures.

Cleaning Schedule

CyberOptics recommends cleaning the sensor windows once every three months. Under adverse conditions, it may be necessary to clean them more often. However, more frequent cleaning is discouraged due to the chance of damage to the windows from improper cleaning.

Normal Cleaning Procedure

Under normal operating conditions, dust and debris can accumulate on the Laser Align sensor windows. To remove this dust, CyberOptics recommends using one of the following procedures:

  • Blow the dust off the sensor windows using an airbrush or a can of pressurized air.

    • Brush the dust off the sensor windows using a camel-hair brush or a brush made of a material designed for cleaning optical surfaces.

Cleaning Procedure for Persistent Problems

Use the following procedure to remove fingerprints or other oily deposits that are not removed using normal cleaning procedures.

    1. Moisten a lint-free tissue or cotton swab with a small amount of isopropyl alcohol.

    2. Wipe each window once with the moistened tissue or swab in a single direction.

Important: Wiping back and forth may re-deposit the debris and may damage the window.

    3. Using a dry tissue or swab, lightly wipe each window in a single direction to remove any remaining alcohol residue.

CyberView

Initiates the CyberView Optics Diagnostic utility. The utility can help you to identify problems with the alignment of the CyberOptics Laser Align Camera on the programmer. A large number of alignment failures can indicate that the camera is not properly aligned to the work surface. See Running the CyberView Optics Diagnostic Utility for more information.

I/O and Sensors

Opens the I/O and Sensors Diagnostic dialog to control the vacuum and nozzle pointer/camera light ring and to test the operability of the autohandler's sensors.

Pick-and-Place Motion...

Opens the Pick-and-Place Motion Diagnostics dialog which provides diagnostic tools to analyze the motion along the W, X, Y and Z-axes.

Free Motion

This diagnostic allows each axis to be exercised individually or for the W, X and Y axes to be exercised simultaneously. While the diagnostic is running the sliders and checkboxes can be adjusted to change the motion immediately.

  • Motion Output Record

The Pick-and-Place motion output record is a *.csv file that contains the motion iteration index, the final position error in encoder steps, the final position error in mils, the motion correction count, and the sum of correction travel to get to the final position in mils. The first row in the file contains the header information and the rows following contain the data. For each motion iteration, two motions are performed. This is why there are two motion index entries in the record. The records are found in the C:\Bp\BP3100\"APS Serial Number"\Diag\PnpMotion folder. The record file name has the following format: Axis - APS series - APS serial number - DateTime stamp. File name example: XAxis_3000 APS_H0371302010013_2016-09-20_08.01.49.csv.

Measure X-axis and/or Y-axis encoder drift

Measure Z-axis encoder drift (3000 series only)

The encoders provide to BPWin the current distance from the home location. Encoders are installed on the X, Y, and Z axes on a 3000 series autohandler and on the X and Y axes on a 4000 series autohandler. When BPWin needs to place a device 100 mils to the left, it will tell the X-axis motor to move 100 mils, but because of the elasticity of the belts the distance that the Pick-and-Place head actually moves might slightly undershoot or overshoot the commanded distance. This is when BPWin can check the encoder values and see if the Pick-and-Place head is where BPWin wants it to be. If not, another small correction movement occurs to position the Pick-and-Place head correctly.

So, for very accurate placements BPWin needs very accurate encoders. But because components can get damaged or dirty, the encoder can lose accuracy and lose track of exactly where it is. The distance between where the encoder thinks it is and the actual location is called encoder drift.

These diagnostics will exercise the appropriate axes and then measure the drift that has occurred since the last time the axis was homed. Drift is measured by slowly moving the axis until the home position is reached and then reading the encoder. If the encoder value is not 0 then drift has occurred.

  • Very small amounts of drift are known to occur and should not be considered a problem. On the X-axis and Y-axis, a problem is reported when the drift is over 5 encoder steps (25 microns, .98 mils). On the Z-axis, a problem is reported when the drift is over 20 encoder steps (50.8 microns, 2 mils).

  • If a session is currently in progress and encoder drift seems to be occurring, the operator can skip quickly to the drift calculation by setting Number of iterations to 1 or hitting the stop button before all iterations are complete. After the drift test is run, the encoders are reset which will eliminate the drift and allow the session to continue.

  • Drift is automatically eliminated anytime the home positions are reset during initialization.

  • Motion Output Record

The Pick-and-Place motion output record is a *.csv file that contains the motion iteration index, the final position error in encoder steps, the final position error in mils, the motion correction count, and the sum of correction travel to get to the final position in mils. The first row in the file contains the header information and the rows following contain the data. For each motion iteration, two motions are performed. This is why there are two motion index entries in the record. The records are found in the C:\Bp\BP3100\"APS Serial Number"\Diag\PnpMotion folder. The record file name has the following format: Axis - APS series - APS serial number - DateTime stamp. File name example: XAxis_3000 APS_H0371302010013_2016-09-20_08.01.49.csv.

Measure W-axis motor step drift with Diagnostic Nozzle

The W-axis does not have an encoder, because W-axis motor movements are very accurate, but if there is a problem with the motor or the motor driver it can lose motor steps and rotate to the wrong position. This is called motor step drift.

The diagnostic routine to detect lost motor steps involves measuring the diagnostic nozzle (part# CPICNOZTESTJIG) with the CyberOptics vision centering system while rotating the nozzle 360 degrees. The measurement and rotation of the diagnostic nozzle is defined as a scan. This scanning process is performed multiple times to determine if the W-axis is losing motor steps by comparing the results of the first scan with the results of the remaining scans. When lost motor steps are detected, you will be presented with a summary of information about the detected error and the diagnostic will be terminated. Details about the error can be accessed via the BlackBox.html file. Note that when this option is selected, the number of iterations and the WXY delay will automatically get set to prevent the W-axis motor's temperature from rising too high.

    • Setting a WXY delay to zero and/or having an excessive iteration count (>100) may cause the axis' motor temperature to rise higher than required to diagnose the axis.

Performance Statistics

While any diagnostic is running, the performance statistics will update on screen to give an indication of the speed and accuracy of the motions. The Motion Diagnostic Report will include information regarding performance statistics that are outside the acceptable tolerance.

  • If the motion diagnostics are run during a job session, the only statistic available is Iteration duration.

Auto Save Diagnostic Report

Automatically saves the diagnostic report to a file in the named directory at the end of the diagnostic session. The HTML report file name will be in the form of:

PnpMotionDiag_name [index].html

Where name is a short name describing the type of diagnostic and index is a numeric designation, starting at 000, applied to each file name to make it unique to other diagnostic files saved in the same directory. Each auto saved file increments the index by one.

Process Capability Index

"Process Capability Index" is the name of a section that will appear in the results summary window at the completion of a PnP diagnostics session if either the X, Y, or Z axes were exercised. It will contain the results of calculating the Cpk for the axis movements.

Pick-and-Place Runout Test

This test should be used to ensure that the Pick-and-Place nozzle is installed properly and that the CyberOptics Laser Align Camera will accurately measure a device during placement. A large runout can cause the CyberOptics Laser Align Camera to incorrectly measure a device during placement and therefore misplace the device. The test is automatically run at initialization and at the beginning of the job.

The horizontal variation of the Pick-and-Place nozzle is measured from the perspective of the CyberOptics Laser Align Camera. The CyberOptics Laser Align Camera captures images of the Pick-and-Place nozzle while the Pick-and-Place nozzle is rotated 360 degrees. This measurement is reported in mils (thousands of an inch; 1 mil = 25.4 µm). After the horizontal variation is measured and the measurement is within tolerance, the Pick-and-Place nozzle is adjusted for best alignment with the CyberOptics Laser Align Camera.


Autohandler Cyberview

I. BP- 3000 / 4000 Autohandler - ch 6

running the cyberview optics diagnostic utility

  1. To run CyberView, select Autohandler > Diagnostics > CyberView.... The BP Handler warning dialog appears.

  2. Read the warning in this dialog and follow its instructions carefully to prevent any damage to the Pick-and-Place system.

  3. Once you have read and followed the instructions in the dialog, click OK. The CyberView dialog appears.

CyberView Controls

The following list provides information about the controls available in the CyberView dialog. Click on a control for information.

Cyber Control

  • Scan Settings - Selecting Change will open the Scan Settings dialog to configure the scan settings used to measure a device.

    • Holdoff - Specifies the delay in degrees before the start of the current alignment scan

    • Angle Limit - Specifies the delay in degrees before Laser Align stops looking for a local minimum shadow width and reports an error

  • Snap Shot - This feature is useful in determining nozzle co-planarity as well as in determining the ideal positioning of a device in front of the camera for performing a clockwise or counter-clockwise scan to measure the device.

    • Capture - Performs a single Laser Align scan and displays the resulting captured data on the graph.

    • Continuous - Checking this option and clicking Capture results in continuous Laser Align scans to be taken as the nozzle is rotated. The captured data from each scan is displayed on the graph. The rotation speed can be adjusted by issuing the proper Galil command using CyberView’s Command utility. For example SPW=1000 results in a fairly slow rotation.

  • Scan - This feature is useful for fine-tuning Holdoff and Angle Limit parameters for each of the four measurements. Additionally, the Laser Align status and devices dimensions obtained by the scans are displayed in the status box directly below the graph. These measurements can be used to fine tune package teach parameters. Note that the device's initial position on the nozzle should be such that none of its sides are parallel with the Laser Align camera (see diagram). The side of the device facing the Laser Align camera should be at approximately a 35 degree offset from the camera.

This feature requires a device to be placed on the nozzle and positioned properly in front of the Laser Align camera. The device will be rotated 360 degrees and if successful, four minimums will be found and displayed on the graph.

    • Scan CW - Performs a 4-sided clockwise (CW) scan.

    • Scan CCW - Performs a 4-sided counter-clockwise (CCW) scan.

Pick-and-Place Control

  • Z-axis

    • Move Up - Moves the Pick-and-Place nozzle up a fixed distance from its current position. The distance is entered in mils in the edit box to the left of this button.

    • Move Down - Moves the Pick-and-Place nozzle down a fixed distance from its current position. The distance is entered in mils in the edit box to the left of this button.

    • Home - Homes the Z-axis of the Pick-and-Place nozzle.

  • W-axis

    • Rotate CW - Rotates the Pick-and-Place nozzle a fixed distance from its current position. The distance is entered in degrees in the edit box to the left of this button.

    • Rotate CCW - Rotates the Pick-and-Place nozzle a fixed distance from its current position. The distance is entered in degrees in the edit box to the left of this button.

    • Home - Homes the W-axis of the Pick-and-Place nozzle.

  • Vacuum On - Toggles vacuum on the Pick-and-Place nozzle ON and OFF.

  • Send - Downloads and executes the Galil command string entered in the edit box above this button.

  • Close - Closes the dialog and reinitializes the Autohandler.

    • Close - Closes the dialog and reinitializes the Autohandler

    • Vacuum On - Toggles vacuum on the Pick-and-Place nozzle ON and OFF

    • Home Nozzle - Homes the Pick-and-Place nozzle

    • Move Z - Moves the nozzle a fixed distance from its current position. The distance is entered in mils in the edit box to the right of this button

    • Spin W - Rotates the nozzle a fixed distance from its current position. The distance is entered in degrees in the edit box to the right of this button

    • Send - Downloads and executes the Galil command string entered in the edit box to the left of this button.

For additional information on parameters used or the information displayed by this tool, refer to your CyberOptics manual.


Programmer Station

Settings

All programmer stations are configured as a group through the Programmer Settings property page.

The property page can be accessed via the Autohandler->Programmer->Settings... menu option, right clicking on any programmer station in the APS view then selecting the Settings... context menu option, or right clicking on the All Programmer Sites media in the Workflow Configuration dialog then selecting the Settings... context menu option.

  • Maximum number of site failures (MSF) - Enter the maximum number of device operation failures that may occur on a site's socket before the socket is disabled and no longer used during the job. Note that even if all attached sites fail due to MSF, the job will not automatically terminate due to BPWin allowing those sites to still be re-enabled by the user to continue the job.

    • A disabled site can be re-enabled by right-clicking the disabled site window, then clicking on Re-Enable Site X. This will reset the MSF counter for the socket. The "Re-Enable Site X" menu is available after the Pick-and-Place has removed the failed device from the socket. When the socket is re-enabled, the counter for determining the MSF for that socket will be reset, however, the total number of failures for this site location will remain unaffected.
      Example      : The job can be paused, the disabled socket removed and the job resumed while the socket is being serviced. When the socket is ready to be installed, the job can be paused, the socket re-inserted, re-enable the socket in the site status box and resume the job.

    • Entering zero (0) disables this option.

  • Operation Failure Retry - The operation failure retry feature will cause any device that fails continuity test and/or ID check to be re-seated in the same socket and the device operation reattempted. This feature is enabled via the Programmer Settings property page for a job session. The feature will reduce rejecting devices due to dirty contacts or occasional contact problems between the device and socket. The retry process is started when the device operation fails due to a continuity failure. The Pick-and-Place will then pick the failed device from its socket, vision center the device if vision centering is enabled, and then place the device back into the same socket. If the device operation fails again due to a continuity failure then the device will be moved to the reject media.

    It is important to understand that when serialization is enabled and the "Attempt Retry of Failed Serial Numbers" feature is disabled the continuity failure retry feature will cause the serialization process to request the next serial number for every retry. For example, the device operation for socket 2A requests a serial number. The serialization process assigns serial number 100 to socket 2A. The device operation then fails due to a continuity failure on Socket 2A. The Pick-and-Place picks the failed device, vision centers the device, then places the device back into socket 2A. The device operation will then request a serial number for socket 2A. The serialization process assigns the next serial number 101 to socket 2A.

  • Empty Socket Test Interval - Enter the number of device operations that should occur on a site before the next empty socket test is performed on that site. Note that this feature will not disable the empty socket test behavior when the interlock is detected opened or when a pick failure is discarded.

Open Sockets

Release the pressure plates and open the sockets on the Programmer.

Close Sockets

Close the sockets on the Programmer and secure the pressure plates.

Diagnostics

See Programmer Diagnostics.


System

Settings

The overall system can be configured through the System Settings property page.

The property page can be accessed via the Autohandler->System->Settings... menu option.

System of units

Select how the input values and labels in the autohandler dialogs will be interpreted and displayed by BPWin. Some values recorded in the file will always be in U.S. Customary units.

Allow JobMaster File (.bp) relinking

Control how BPWin behaves when the JobMaster File that is linked to the Workflow File does not exist. If the relinking option is not selected, an error will occur when loading a Workflow File if the JobMaster File is not found. If selected, the user will be given the option to browse for another JobMaster File. Note that an error will occur if the selected JobMaster File does not exactly match the one used when creating the Workflow File.

SPTerm

Opens the WinSpterm dialog for the utility used for the diagnostics of serial peripheral devices.


Tape Loader Station

Settings

All tape loader stations are configured as a group through the Tape Loader Settings property page.

The property page can be accessed via the Autohandler->Tape Loader->Settings... menu option, right clicking on any tape loader station in the APS view then selecting the Settings... context menu option, or right clicking on the any tape loader media in the Workflow Configuration dialog then selecting the Settings... context menu option.

Advance at start of job

When enabled, Tape Loader will advance one pocket when a job starts. This serves as an internal verification that the Tape Loader is functioning properly.

End of reel advance

The job session will present the reload notification when the end of the virtual reel is detected when this option is enabled. This has the effect of pausing the job session until the operator dismisses the reload notification. Unchecking this option will cause the job session to bypass the reload notification when the end of the virtual reel is detected and continue with the job session. This type of action is useful when unattended operation of the job session is desired when using the virtual reel.

Number of devices per virtual reel

Tape Loader (TAPEOUT) Virtual Reels is a user option to help automate jobs with a large quantity of devices that need to spread across several output reels.

For example, an 8000 piece job that needs to be output to reels that hold 1000 pieces each, would require 8 reels. To implement this option, change the value of "Number of devices per virtual reel" from 0 (disabled) to 1000. This will cause the job to pause at every 1000 passed devices, until the full job quantity is reached. When the job is paused at the end of each virtual reel, the user would then manually seal up the finished devices, cut the tape, change reels, and then continue the job. This process is repeated to the last reel. In certain circumstances it may be of benefit to have the entire job run without stopping, but leaving leader/trailer spaces between the virtual reels. To accommodate this, uncheck the box for "Pause at the end of each virtual reel".

Pause at the end of each virtual reel

See "Number of devices per virtual reel" above.

Enable 2D vision inspection

Enables or disables the 2D Vision Configuration... button. This option is enabled when a tape loader media station is included in the workflow.

2D Vision Configuration...

Opens the Vision Configuration dialog to edit the 2-D inspection settings.

Advance Tape

Advances the tape by one pocket on all attached tape loaders.

TM-50

See the TM-50 Manual.

TM-330

See the TM-330 Manual.


Example dialog for entering the starting pockets at the start of a job session using a fixed tray.

Example dialog for entering the next pocket on a reload using a shuttle.

Example dialog for selecting the next pocket at an empty pocket pick failure.

Visual guide for Columns and Rows:

Example dialog starting a job session using the TS-1500 tray stacker.

I. BP- 3000 / 4000 Autohandler - ch 7

Tray Station

Settings

All tray stations including the fixed tray, shuttle, and TS-1500 Tray Stacker are configured as a group through the Tray Settings property page.

The property page can be accessed via the Autohandler->Tray->Settings... menu option, right clicking on any tray station in the APS view then selecting the Settings... context menu option, or right clicking on the any tray media in the Workflow Configuration dialog then selecting the Settings... context menu option.

Do not wait for operator on empty pockets

Applies to a workflow configuration where a tray, shuttle or TS-1500 is set as both the Source and Destination.

  • When disabled (unchecked), the Pick-and-Place will stop on an empty pocket pick failure and pop-up a Pick Failure confirmation message indicating an empty pocket was detected. This is done to minimize a potential situation where if an empty pocket was detected incorrectly (that is, there was a device there but the Pick-and-Place could not find it) and the Pick-and-Place were allowed to continue, then double-stacking of devices could occur if a device was placed into that "empty" pocket.

  • When enabled (checked), this option will allow the Pick-and-Place to continue onto the next pocket in the event of an empty pocket pick failure at the current pocket on the tray. If a tray is configured as a Source only tray, the Pick-and-Place will always continue without a pop-up message since there is no risk of double-stacking.

  • This option should be enabled when half-filled trays are common and the operator is willing to risk double stacking to avoid having to click "OK" repeatedly on the empty pocket detected prompt.

Specify next pocket on reload and mispicks

When enabled (checked), the operator can select the next pocket location at the start of a job session, during a reload tray prompt, or during an empty pocket detected prompt. All pockets before this location will be skipped. When disabled, the Pick-and-Place will always start at Row 1, Column 1 upon a reload or a mispick.

  • If a tray is both a Source and Destination, this option is enabled and the "Do not wait for operator on empty pockets" is enabled, the "Pick Failure" pop-up will be displayed but will disappear after it finds a device.

  • When enabled and using a TS-1500, the next location selection will only apply to the first tray that is cycled out of the Source. All succeeding trays will automatically start from Row 1, Column 1.

This feature can be useful when:

  • using a partially filled Source tray containing empty pockets before the first device.

  • continuing with a Destination tray from a previously interrupted job.

  • using the same Reject tray between multiple jobs.

Eject Shuttles

Ejects the tray on all attached shuttles.

TS-1500

See the TS-1500 Tray Stacker Manual.


Tube Stacker Feeder Station

Settings

All tube stacker feeder stations are configured as a group through the Tube Stacker Feeder Settings property page.

The property page can be accessed via the Autohandler->Tube Stacker Feeder->Settings... menu option, right clicking on any tube stacker feeder station in the APS view then selecting the Settings... context menu option, or right clicking on the any tube stacker feeder media in the Workflow Configuration dialog then selecting the Settings... context menu option.

Eject partial tubes

Select this option if you want the Tube Stacker Feeder to automatically eject tubes after singulation has failed twice. When this option is selected, tubes will eject even if the expected number of devices per tube has not been met.

Diagnostics

Opens the Tube Stacker Feeder Diagnostics dialog to run a diagnostics test on the tube stacker by testing sequence operation and discrete operations.

Tube Stacker Feeder

See the Tube Stacker Feeder Manual.


Tube Stacker Loader Station

Diagnostics

Opens the Tube Stacker Loader Diagnostics dialog to run a diagnostics test on the tube stacker by testing sequence operation and discrete operations.

Tube Stacker Loader

See the Tube Stacker Loader Manual.


Station Pick-and-Place Overdrive

The pick overdrive and/or the place overdrive adjustment on a specific station is aimed to improve pick and place operations on that station when the station's pocket Z-axis position was not taught correctly or has changed. This improvement will minimize automated handler ‘down time’ because of a failed pick or place operation. The station pick and/or place overdrive adjustment will take precedence over the global pick and/or place overdrive adjustments made through the package teach.

The station pick and/or place overdrive adjustment is available on media stations that have already been taught. You will be able to access the station pick and/or place overdrive adjustment by accessing the station's context menu or after the station's pocket(s) have been successfully taught.

Note: This feature is not available for the upward vision station or 3D vision inspection station.

Context menu access

  1. Select the APS View from BPWin Main to view the taught media stations from the selected workflow.

  2. Right-click on the station that you will want to adjust the overdrive to present the context menu.

  3. Select the context menu item named "Pick-and-Place Overdrive".

  4. You will be presented with the Station Pick-and-Place Overdrive Options dialog.

Station Pick-and-Place Options dialog

    • Cancel - Select this option to cancel making any changes to the station's pick and/or place overdrive.

    • Enable - Select this option to present the wizard to make changes to the station's pick and/or place overdrive.

    • Disable - Select this option to disable the station's pick and/or place overdrive and use the global pick and/or place overdrive adjustments.

  5. Select the Enable button from the Station Pick-and-Place Options dialog to present the Station Pick-and-Place Overdrive Wizard.

Station teach access

  1. Begin the teach session for a station from the selected workflow.

  2. After the teach has successfully finished you will be presented with the Station Pick-and-Place Overdrive Options dialog.

Station Pick-and-Place Options dialog

    • Skip - Select this option to bypass making any changes to the station's pick and/or place overdrive.

    • Enable - Select this option to present the wizard to make changes to the station's pick and/or place overdrive.

    • Disable - Select this option to disable the station's pick and/or place overdrive and use the global pick and/or place overdrive adjustments.

  3. Select the Enable button from the Station Pick-and-Place Options dialog to present the Station Pick-and-Place Overdrive Wizard.

Station Pick-and-Place Overdrive Wizard

This wizard will assist in setting the pick and/or place overdrive adjustment for the station. The overdrive is based on the taught Z-axis position of the station's pocket. Below is a description of the controls in the wizard.

Load Previous button

Select this option to load the previously saved adjustments for the pick and place overdrive.

Pick Overdrive slider

This slider is used to set the pick overdrive for the station. The overdrive adjustment ranges from -100 mils to 100 mils from the taught Z-axis position of the station's pocket. The selected slider value is presented to the right of the slider. In addition, the Pick nozzle image located to the right of the slider will move according the slider selection as a visual queue.

Note: This slider is enabled only if the station can be considered an input media type otherwise it will be disabled. For example, if the station is a tape loader then this slider will be disabled.

  • A positive pick overdrive can help smaller devices to compensate for the 'jump' phenomenon that occurs when learning the Z-axis position of the device. When a device "jumps" up to the nozzle it can cause smaller devices to rotate vertically which will cause a pick error. A positive value can insure the device is picked closer to it's actual Z-axis position instead of forcing the device to "jump" up to the nozzle.

  • Care must be taken when using a positive value. If the positive value is too great then the nozzle will compress onto the device when picking and could result in damage to the device and/or other components of the system.

  • A negative pick overdrive can help larger and heavier devices to offset nozzle compression, opposite of the 'jump' phenomenon, that may occur when learning the Z-axis position of the device. A negative value can insure that the nozzle is not compressed into the device.

Place Overdrive slider

This slider is used to set the place overdrive for the station. The overdrive adjustment ranges from -100 mils to 100 mils from the taught Z-axis position of the station's pocket. The selected slider value is presented to the right of the slider. In addition, the Place nozzle image located to the right of the slider will move according the slider selection as a visual queue.

Note: This slider is enabled only if the station can be considered an output media type otherwise it will be disabled. For example, if the station is a tape feeder then this slider will be disabled.

  • A positive place overdrive can help smaller devices to compensate for the 'jump' phenomenon that occurs when learning the Z-axis position of the device. When a smaller device is dropped from it's learned Z-axis position, it can misalign when it lands or even land upside down. A positive value can insure that the device is placed instead of dropped.

  • Care must be taken when using a positive value. If the positive value is too great then the nozzle will compress onto the device when placing and could result in damage to the device and/or other components of the system.

  • A negative place overdrive can help larger and heavier devices to offset nozzle compression, opposite of the 'jump' phenomenon, that may occur when learning the Z-axis position of the device. Nozzle compression may cause damage to the device and/or other components of the system. A negative value can insure that the device is placed or slightly dropped instead of crashed into the destination.

Pick Device button

Select this option to test the pick overdrive adjustment on a device from the station's first or only pocket.

Note: This option assumes that a device is present in the first pocket or only pocket of the station. You will need to manually verify that a device is present in the first pocket or only pocket of the station before clicking on this button. The laser present's nozzle will not engage vacuum when using this option. It is recommended that the selected overdrive is validated during a job session.

Place Device button

Select this option to test the place overdrive adjustment on a device into the station's first or only pocket.

Note: This button is enabled only if a device has been picked.

OK button

Select this option to save the pick and place overdrive adjustments to the station's teach document.

Cancel button

Select this option to cancel any changes that were made to the pick and place overdrive adjustments.


3x Maintenance

Weekly

Monthly

Quarterly

Semi-Annually

Annually

I. BP- 3000 / 4000 Autohandler - ch 8

BP- 3000 Series Autohandler Maintenance

Maintenance Guidelines

Weekly – 10 minutes

  • Dust off programmer sites and socket modules with clean, dry compressed air.

  • Inspect Z-rod bellows for proper movement (compression and extension).

  • Check nozzle runout. Replace bellows if run-out is greater than 8 mils.

  • Remove debris from work area.

Monthly – 30 minutes

  • Vacuum fan filters on the back panel.

  • Vacuum computer air filter.

  • Inspect all moving parts for signs of excessive wear.

Quarterly – 30 minutes

  • Clean X and Y-axis gold encoder scales with non-abrasive, lint-free wipes using isopropyl alcohol. Do not use acetone, chlorinated solvents, or Methylated spirits.

  • Clean the CyberOptics Laser Align Camera lens using the Normal Cleaning Procedure. To remove fingerprints or other oily deposits, use the Cleaning Procedure for Persistent Problems.

  • Clean glass lens under laser pointer inside vacuum chamber.

  • Check X and Y Belt tension.

  • Inspect X and Y-axis rails for signs of wear or binding.

  • Inspect compressed air filter in pneumatics box located on the side of the machine.

  • Replace laser carbon filter (part number: W4100FILTER) located under laser box bay. Adjust inspection intervals depending on usage.

  • Inspect laser HEPA filter (replace if needed).

  • Inspect vibratory feeder springs for signs of wear or damage.

  • Clean tape loader heat sealer shoes and/or pressure sealer rollers.

Semi-Annually – 60 minutes

  • Perform complete BPM site diagnostics.

  • Clean socket modules of dust and debris with clean, dry, compressed air.

  • Replace in-line vacuum filter located on the Pick-and-Place assembly.

  • Inspect for loose hardware: brackets, bolts, screws.

  • Clean laser box of ash and debris.

  • Clean laser galvo lens.

  • Calibrate laser marking nozzles to laser marker.

  • Perform alignment camera to nozzle coplanar calibration.

Annually – 90 minutes

  • Perform all checks as Semi-Annually above.

  • Perform calibration verification procedure on programming sites.

A BPM Microsystems certified Field Service Engineer can provide annual maintenance. For more details or to schedule an annual maintenance visit, call BPM Microsystems Technical Support.

Note: We recommend that you use a Log or Sign-Off Sheet to record all maintenance and archive all sheets for reference.

Back To Top


Lockout Tagout

Turn the keyed switch in the back of the APS as indicated and remove the keys. Use the appropriate industry accepted Tagout procedure to indicate that the machine is inoperable until key switch is activated. The power inlet cable should also be disconnected, Locked out and Tagged out per industry accepted standards.


4x Maintenance

Weekly

Monthly

Quarterly

Semi-Annually

Annually

I. BP- 3000 / 4000 Autohandler - ch 8

BP- 4000 Series Autohandler Maintenance

Maintenance Guidelines

Weekly – 10 minutes

  • Inspect nozzle O-rings and replace, as necessary.

  • Inspect Z-rod bellows for proper movement (compression and extension).

  • Check nozzle runout.

  • Check air and vacuum gauges.

  • Remove debris and devices from work area.

  • Dust off programmer sites and socket modules with clean, dry compressed air.

Monthly – 50 minutes

  • Replace Z-rod vacuum filter (part number: CPICFIL02).

  • Clean X and Y-axes linear encoder scales with a non-abrasive lint-free wipe. Use no solutions.

  • Check compressed air filter bowls for water or oil. Empty and clean, as necessary.

  • Inspect all moving parts for signs of excessive wear.

  • Replace any broken stepper motors (part number: W4100STEPRPLC).

  • Clean tape loader sealer head assembly, if applicable.

Quarterly – 35 minutes

  • Vacuum the cabinet air intake filter.

  • Clean the computer air filter.

  • Clean the CyberOptics Laser Align Camera lens using the Normal Cleaning Procedure. To remove fingerprints or other oily deposits, use the Cleaning Procedure for Persistent Problems.

  • Replace laser carbon filter (part number: W4100FILTER).

  • Check laser interlock sensors for proper operation. Tighten any loose mounting hardware.

  • Inspect laser HEPA filter, replace if needed (part number: CLASHAR02).

  • Replace any broken stepper motors (part number: W4100STEPRPLC).

  • Inspect vibratory feeder springs for signs of wear or damage.

  • Replace in-line vacuum filter. (part number: CPICFIL03).

  • Visually inspect all hoses and cables in the E-chains.

  • Clean outside of unit frame and body of programmer sites with All-Purpose cleaner to remove dirt and debris.

Semi-Annually – 150 minutes

  • Perform complete BPM site diagnostics.

  • Inspect for loose hardware: brackets, bolts, and screws.

  • Inspect the 2 spring plungers on each T-post for wear. Adjust or replace as necessary.

  • Inspect X and Y-axis rails for signs of wear or accumulations of grease and dirt.

  • Grease all axes with Lithium grease.

  • Clean laser chamber of ash and debris.

  • Clean laser galvo lens.

  • Calibrate laser marking nozzles to laser marker.

  • Perform alignment camera to nozzle coplanar calibration.

Annually – 150 minutes

A BPM Microsystems certified Field Service Engineer can provide annual maintenance. For more details or to schedule an annual maintenance visit, call BPM Microsystems Technical Support.

Note: We recommend that you use a Log or Sign-Off Sheet to record all maintenance and archive all sheets for reference.

Back To Top


T-post Part Numbers and Compatibility

Part numbers that identify the type of T-posts used on automated programming sites depend on the height of the socket module and the stepper motor technology. The Device > Socket Module Info menu item in BPWin describes the possible part numbers of the T-post required for a particular socket module. Refer to the figures and table shown below to further assist in choosing the correct T-post.

Style A Programming Site and Style B Programming Site are compatible with D02959AD "Normal" T-post or D02837AD "Tall" T-post.

Style A

Style B

D02959AD "Normal"

D02837AD "Tall"

Style C Programming Site is compatible with D04661AD "Normal" T-post or D04652AD "Tall" T-post.

Style C

D04661AD "Normal"

D04652AD "Tall"

Style D Programming Site is compatible with D04500AD "Normal" T-post.

Style D

D04500AD "Normal"

Summary Table

Site Style | "Normal" T-post | "Tall" T-post
A | D02959AD | D02837AD
B | D02959AD | D02837AD
C | D04661AD | D04652AD
D | D04500AD | NA


Chapter 9: Troubleshooting

Pick-and-Place Problems

Indicators:

Pick errors, place errors or vision centering problems occur frequently during a job session.

Troubleshoot:

  1. Ensure that the stations and the package are taught correctly. This is the cause of the majority of Pick-and-Place problems.

  2. Run the Pick-and-Place Runout Test to ensure that the nozzle is installed correctly.

  3. Run the CyberOptics Image Quality Test to ensure that the camera is receiving a quality image. Even if the test returns successfully, it is worth following the cleaning procedure.

  4. Inside the package teach:

    1. Use the Automated Package Measure Utility to insure that the device is sized correctly.

    2. Adjust the Alignment Offset to insure the device is in the camera's field of view.

  5. The device could be slipping on the nozzle:

    1. Ensure that the correct type of nozzle is being used for the package. Use the largest nozzle possible while ensuring that the diameter of the nozzle is shorter than the shortest side of the device (the nozzle does not overlap the sides of the device). For some DIP devices, even smaller nozzles are more effective.

    2. Ensure air pressure at input is regulated to 80 psi.

    3. Ensure that the vacuum at the nozzle is 24-27 in/Hg. Check for vacuum leaks/obstructions if the vacuum is weak.

    4. Use the I/O and Sensors Diagnostic Dialog to test the vacuum system. Ensure that system is detecting nozzle obstructions. If using a 3000 series autohandler, the vacuum switch can be adjusted to change the voltages.

  6. If using media that can move around (tape feeder/loader, label presenter, etc), when teaching, turn off Auto Learn Z-axis inside the Adjust Nozzle Position Dialog and manually position the nozzle on the device. This allows the operator to have very fine control over where the nozzle will lower to when picking or placing.

  7. If using media that is inconsistent in its Z-axis position (warped trays), go to the package teach dialog and increase the number of Pick Retries.

  8. If using a label presenter, ensure that the label is being presented in less than 1 second.

  9. If errors happen more frequently after the job session has been running for a while, drift may be occurring. Open the Pick-and-Place Motion Diagnostic Dialog to run the "Measure X-axis and Y-axis encoder drift" diagnostic and the "Measure W-axis motor step drift with Diagnostic Nozzle" diagnostic.

  10. Run the CyberView Optics Diagnostic Utility to troubleshoot optics. In particular, run the Alignment Camera to Nozzle Coplanar Calibration procedure to ensure that the device enters into the camera's field of view.

Sensor Problems

Indicators:

Problems homing

Problems detecting vacuum

Problems detecting interlock opened/closed

Troubleshoot:

  1. Open the I/O and Sensors Diagnostic Dialog to determine whether the sensor in question is operating correctly.

  2. Repair or replace the sensor.

Sluggish Motion

Indicators:

Autohandler appears to run slow or some movements take longer than others

Troubleshoot:

Adjust any real-time virus scanning software settings to ignore .log files and/or the C:/BP directory.

  1. Ensure that the acceleration and velocity impedance factors in the registry are set to 100. These are located in HKEY_LOCAL_MACHINE/SOFTWARE/BP Microsystems/BPWin/Autohandler/Components/GalilPnp/MotionConstants and select the appropriate axis.

  2. Open the Pick-and-Place Motion Diagnostic Dialog to run the "Free Motion" diagnostic and use the performance statistics to determine if a specific axis is having problems.

  3. Ensure that the belts are at the proper tension and the linear rails are aligned correctly.

  4. Ensure that bearings are clean and smooth. Replace any bearings that are worn.

Tape Loader Stopped Advancing

Indicators:

In the middle of a job session, the tape loader stops advancing.

Troubleshoot:

Check the Count value in the Controller setup menu of the Tape Loader. The value should be zero (0). This allows BPWin to stop the loader at the end of a job. See the Controller \ Setup Menu section in the TM-330 Manual for more information on how to set the stop count value.

Pick-and-Place Controller Communication

The 3000 and 4000 series automated programming systems comes equipped with either a DMC-1040 or a DMC-4040 motion controller that controls the Pick-and-Place. BPWin establishes a connection to the controller in order to control the motion of the Pick-and-Place. Connectivity issues may be caused by hardware problems, but are more commonly by an improperly configured Pick-and-Place controller. The links below give step by step procedures to properly configure the Pick-and-Place controller. Determine the Pick-and-Place controller installed in your unit and select the appropriate link below.

DMC-1040

DMC-4040

Laser Presenter Security Key Not Found

Indicators:

When attempting to lase via a job session, a test lase, or calibration of the laser nozzles, you are presented with the notification that the security key is not found as illustrated in the example below.

Troubleshoot:

  1. Connect the Prolase USB security dongle to the automated programming system's computer.

  2. Verify that the security driver is configured properly by following the steps outlined below:

    1. Open the folder named C:\Program Files\Common Files\SafeNet Sentinel\Sentinel System Driver

    2. Launch the sentinel driver utility named SetupSysDriver.exe. You will be presented with the following window.

    3. Click on the 'Configure Driver' button to present the Sentinel Driver window as illustrated below. This window will show the ports detected by the sentinel driver.

    4. Select the item with the port type named 'IBM AT' then click on the 'Edit' button to open the Configure Port window as illustrated below.

    5. Click on the 'No' radio button located next to the 'Use this port?' field.

    6. Click the 'OK' button to accept the change.

    7. You will be prompted to continue or cancel the change as illustrated below. Click the 'OK' button to continue.

    8. You will be navigated back to the Sentinel Driver window. Make sure that the 'Use ?' field for the 'IBM AT' selection is set to 'No' as illustrated in the example below.

    9. Click the 'OK' button then exit the utility. This process disables the use of the parallel port by the sentinel driver.

BPWin Fails to Use the Laser Presenter

Indicators:

Scanlab RTC3 controller is installed

Scanlab RTC3 device driver has not been updated

Using BPWin 5.24 and above

A failure stating that the correction file could not be loaded occurs when attempting to use the laser presenter

Troubleshoot:

See document D05168DC.


TS1500 Communication Problems

In the presence of multiple Automated Programming Systems, a single TS1500 can be moved from one of those systems to another as needed. However, this can introduce problems with the initial setup portion of such procedures caused by choosing to install the incorrect driver for the TS1500's DUB-E100 Ethernet adapter.

The correct one of four available drivers must be installed based on the hardware revision identifier of the TS1500's Ethernet adapter. On some TS1500s, the version of the adapter can be found on a label located next to the serial number label which is located to the right of the air filter below the mounting plates. The label contains both the serial number and the hardware revision number of the adapter. For example:

S/N:B401231005786 H/W:A1

The hardware revision identifier is designated with the "H/W:" characters. In this example, the hardware revision number is "A1". Each hardware revision has a specific version of the drivers. These drivers are not interchangeable between hardware revisions. If you use the wrong driver for the adapter, the adapter will not communicate via Ethernet even though the device is listed as "working properly".

The four drivers can be found in the Drivers\NIC directory in the location that BPWin was installed.

In this directory are the following compressed driver files:

dubE100 RevA1 Only.exe | Use only with hardware revision A1
dubE100 RevA2 Only.zip | Use only with hardware revision A2
dubE100 RevA3 and A4 Only.zip | Use only with hardware revision A3 and A4
dubE100 RevB Only.zip | Use only with hardware revision B

Some TS1500s do not have an external label indicating the hardware revision. While a label internal to the TS1500 indicates the correct hardware version, dismantling the unit is time consuming. As a viable alternative, the following trial-and-error procedure can be used to determine the correct driver.

  1. Find the four compressed files listed above in the Drivers\NIC directory in the location that BPWin was installed and extract each of them into their own folder. You should note the locations that they were extracted to for reference below.

  2. Ensure the TS1500 is powered down and that BPWin is not running.

  3. Open the Windows "Run..." dialog by clicking the Windows Start button and selecting "Run...".

  4. In the Windows "Run..." dialog type the following and press ENTER:
    devmgmt.msc
    This should open the "Device Manager" window.

  5. In the "Device Manager" window expand the item named "Network Adapters".

  6. In Device Manager, under the "Network Adapters" item right-click the item named "D-Link DUB-E100 USB 2.0 to Fast Ethernet Adapter" and select "Update driver..." from the menu that opens.

    A window named "Hardware Update Wizard" should open.

  7. In the "Hardware Update Wizard" window choose the item named "No, not at this time" and click the "Next" button. The next step in the wizard should be presented.

  8. Choose the item named "Install from a list or specific location (Advanced)" and click the "Next" button. The next step in the wizard should be presented.

  9. Choose the item named "Don't search. I will choose the driver to install." and click the "Next" button. The next step in the wizard should be presented.

  10. Click the button labeled "Have Disk". A window named "Install from Disk" should open.

  11. Click the "Browse..." button. A window named "Locate File" should open.

  12. Browse to one of the locations extracted and made a note of in step 1 above and click the "Open" button. The "Locate File" window should close.

  13. Click the "OK" button in the "Install from Disk" window. The "Install from Disk" window should close.

  14. Click the "Next" button in the "Hardware Update Wizard" window. The next step in the wizard should be presented where it begins the driver installation process and you will be presented with a "Hardware Installation" window notifying you that the driver is not "digitally signed".

  15. In the "Hardware Installation" window click the button named "Continue Anyway".

  16. If you are presented with a "Confirm File Replace" window click the "Yes" button. The "Confirm File Replace" window should close.

  17. At this point the last step of the wizard should be presented. Click the "Finish" button. The "Hardware Update Wizard" window should close.

  18. Power on the TS1500.

  19. Run BPWin. You will know that the correct driver for the adapter was installed if during BPWin's initialization process you see the text "Found Tray Stacker 1500" in BPWin's output window.

    If the text is present in BPWin then you can disregard the remaining steps in this procedure.

  20. If the text "Found TS1500" is not present in BPWin then power down the TS1500, close BPWin, and perform steps 6 through 19 above, this time choosing a different driver directory.


Autohandler Calibration

Calibration

4000 Series Gen 1

The downward vision camera to nozzle calibration involves learning the center of the Master Site's socket and capturing the position of the crosshairs over the center of the socket. The application will then take the difference between the captured crosshairs position and the location of the Master Sites's taught location as the offset value.

The measured offset distance is used during the teach process to move the Pick-and-Place nozzle over the target centered using the crosshair of the downward vision camera.

Procedure

Camera to Nozzle Offset Calibration

3000 Series Gen 2

The 3000 Series Gen 2 automated programming system requires calibration of both the upward vision camera and the downward vision camera before you can teach stations or process jobs. Below are the procedures to calibrate the cameras.

Upward Vision Camera

Mechanical Camera Lens Calibration

The upward vision camera mechanical calibration involves setting the lens f-stop and the lens focus. Both of these mechanical adjustments have a locking screw and a solid dot indicating the position of the setting.

F-stop Procedure

  1. Open the interlock.

  2. Loosen the f-stop locking screw by turning it counter-clockwise.

  3. Adjust the f-stop ring until it is centered between 4 and 8.

  4. Lock the f-stop using the locking screw by turning it clockwise.

Focus Procedure

  1. Launch BPWin.

  2. Open the interlock.

  3. Loosen the focus locking screw by turning it counter-clockwise.

  4. Install the reticle (Part# D06135PD).

    • Important: Make sure that the reticle is mounted flush with the assembly.

  5. Close the interlock.

  6. Select the View Upward Vision Image menu option via Autohandler->Pick-and-Place->Diagnostics->View Upward Vision Image to display the Upward Vision Component Image View dialog.

  7. Check the Bright field option and uncheck the Dark field option.

  8. Set the exposure to 70 by entering the number 70 into the Exposure edit box then pressing the tab key.

  9. Adjust the focus ring until you get a sharp image of the reticle.

  10. Lock the focus using the locking screw by turning it clockwise.

  11. Close the Upward Vision Component Image View dialog.

  12. Close the interlock.

Automated Calibration

The upward vision camera automated calibration involves learning the center of the reticle (Part# D06135PD) and the reticle calibration points, measuring the Z-axis working distance for vision centering, and learning the true center of the Pick-and-Place nozzle. All this data is saved in the file system to be retrieved when handling devices. This process should be done once or when hardware, such as the upward vision camera or the Pick-and-Place subassembly, has been changed or mechanically adjusted.

The data gathered from the reticle is used to correct for lens distortion and camera orientation when performing vision centering. The Z-axis working distance is used to position the device accurately over the upward vision camera to give consistent and accurate measurements. The position of the true center of the Pick-and-Place nozzle takes into account nozzle runout and is used to accurately position the nozzle over the upward vision camera.

Procedure

  1. Select the Teach menu option via Autohandler->Teach... to display the Select Location to Teach dialog.

  2. Select the option named Upward Vision Centering.

  3. Click on the Teach button to start the calibration process.

  4. Check both the Location Teach and Calibration Teach options as illustrated:

  5. Click the Next button to continue the calibration process.

  6. You will be presented with the notification to install the reticle (Part# D06135PD).

  7. Open the interlock.

  8. Move the Pick-and-Place out of the way of the upward vision camera.

  9. Install the reticle onto the upward vision camera assembly.

    • Important: Make sure that the reticle is mounted flush with the assembly.

  10. Close the interlock.

  11. Click the OK button to learn the reticle center and calibration points.

  12. After the reticle center and calibration points are learned successfully, you will be presented with the notification to remove the reticle.

  13. Open the interlock.

  14. Remove the reticle.

    • Important: Failing to remove the reticle may cause damage to the reticle, upward vision camera assembly, or Pick-and-Place subassembly.

  15. Close the interlock.

  16. Click the OK button to continue with the calibration process.

  17. You will be presented with the notification to install the CPICNOZTESTJIG nozzle tip onto the Pick-and-Place nozzle bellows.

  18. Open the interlock.

  19. Install the CPICNOZTESTJIG nozzle tip onto the Pick-and-Place nozzle bellows.

  20. Close the interlock.

  21. Click the Next button to continue with the calibration process.

    • This step may take longer than a few seconds.

  22. Once finished you will again be asked to make sure that the CPICNOZTESTJIG nozzle tip is installed onto the Pick-and-Place nozzle bellows.

  23. Click the Next button to continue with the calibration process.

    • This step may take longer than a few seconds.

  24. Once finished you will be presented with the notification stating that the calibration was successful.

  25. Open the interlock.

  26. Remove the CPICNOZTESTJIG nozzle tip and install the previous nozzle tip.

  27. Close the interlock.

  28. Click the OK button to dismiss the notification.

Down Vision Camera

Mechanical Camera Lens Calibration

The downward vision camera mechanical calibration involves setting the lens f-stop and the lens focus. Both of these mechanical adjustments have a locking screw and a solid dot indicating the position of the setting.

F-stop Procedure

  1. Open the interlock.

  2. Loosen the f-stop locking screw by turning it counter-clockwise.

  3. Adjust the f-stop ring until it is centered between 8 and 16.

  4. Lock the f-stop using the locking screw by turning it clockwise.

Focus Procedure

  1. Launch BPWin.

  2. Open the interlock.

  3. Install a socket on any programmer site with or without a device inserted into the socket.

    • This will be used to help focus the lens at the lowest possible teach point.

  4. Set a tray media with a device inserted into a pocket.

    • This will be used to help focus the lens at the highest possible teach point.

  5. Loosen the focus locking screw by turning it counter-clockwise.

  6. Select the View Downward Vision Image menu option via Autohandler->Pick-and-Place->Diagnostics->View Downward Vision Image to display the Downward Vision Component Image View dialog.

  7. Check both the Bright field and Dark field options.

  8. Set the exposure to 200 by entering the number 200 into the Exposure edit box then pressing the tab key.

  9. Manually move the downward vision camera over the programmer site socket.

  10. Adjust the focus ring until you get a sharp image of the socket.

  11. Manually move the downward vision camera over the tray pocket with the device.

  12. Adjust the focus ring until you get a sharp image of the device in the pocket.

  13. Perform items 9 through 12 until the image is sharp at both the programmer socket and the tray pocket.

  14. Lock the focus using the locking screw by turning it clockwise.

  15. Close the Downward Vision Component Image View dialog.

  16. Close the interlock.

Automated Calibration

The downward vision camera automated calibration involves learning the center of the downward vision camera and the center of the reticle(Part# D06135PD). The calibration process will accurately measure the offset distance between the true center of the Pick-and-Place nozzle and the center of the downward vision camera and then save the measured distance to the file system. This process should be done once or when hardware, such as the downward vision camera or the Pick-and-Place subassembly, has been changed or mechanically adjusted.

The measured offset distance is used during the teach process to move the Pick-and-Place nozzle over the target centered using the crosshair of the downward vision camera.

Procedure

Camera to Nozzle Offset Calibration

Back To Top


Limited Warranty

BPM Microsystems warrants this product against defects in material or workmanship for a period of one year, as follows:

For a period of one year from date of purchase, BPM Microsystems will repair or replace any defective product at no charge. Whether the warranted product should be repaired or replaced is wholly within the discretion of BPM Microsystems.

This warranty does not cover any damage due to accident, misuse, abuse or negligence. You should retain your dated bill of sale as evidence of the date of purchase.

REPAIR OR REPLACEMENT AS PROVIDED UNDER THIS WARRANTY IS THE EXCLUSIVE REMEDY OF THE PURCHASER. IN NO EVENT SHALL BPM MICROSYSTEMS BE LIABLE FOR ANY SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES, NOR FOR ANY DAMAGES RESULTING FROM USE, MISUSE OR MODIFICATION OF THIS PRODUCT. EXCEPT TO THE EXTENT PROHIBITED BY APPLICABLE LAW, ANY IMPLIED WARRANTY OR MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE IS SPECIFICALLY DISCLAIMED. UNDER NO CIRCUMSTANCES SHALL BPM MICROSYSTEMS TOTAL LIABILITY EXCEED THE PURCHASE PRICE OF THE PRODUCT.

This warranty gives you specific legal rights, and you may also have other rights that vary from state to state.


Alignment Camera to Nozzle Coplanar Calibration

Introduction

The 3000 and 4000 series automated machines are precise engineering products that can accurately handle components. The 3000 and 4000 series have vision centering which uses the CyberOptics Laser Align Camera (also referred to as the alignment camera). This camera moves with the head of the Autohandler to align components. To ensure the most accurate operation, the alignment camera must be coplanar to the Autohandler’s nozzle pickup surface. If the alignment camera is not coplanar to the nozzle surface, there could be issues with accurate component handling. During rotation, the component could leave the field-of-view resulting in inaccurate placement readings. The Autohandler could operate perfectly then start to bend leads for no apparent reason. It is suggested to have a qualified BPM Microsystems technician calibrate the alignment camera to ensure the most accurate placement.

Procedure

The procedure to calibrate the coplanarity of the nozzle to the alignment camera is a manual operation.

Before performing the operation, 3 things will be needed:

  1. A TSOP package

  2. BPWin v4.64 and above

  3. A pick rod with the CPICNOZ01 nozzle

The first part of the process involves checking the output of the alignment camera without anything blocking the alignment camera’s field of view. The second part of the process involves actually measuring and correcting coplanarity.

  • Calibration without Field of View Blocked

  • Calibrate with a Component

Conclusion

Using the methods described above, the automated machines’ alignment camera and nozzle can be more accurately measured. This will help in reducing random place errors that occur with the autohandlers. However, from experience, problems with other components can have a greater impact when working with a BPM Microsystems Autohandler that is having alignment issues. Remember, a bent nozzle can create issues within the field of view of the alignment camera. Keep the nozzles and supporting rods in good shape to ensure best performance. To help find other issues that BPM Microsystems might not be aware of, please document issues as clearly as possible and contact a Customer Service Representative of other issues that you are having.


Calibrate with a Component

Preparation

Calibration

Final check

I. BP- 3000 / 4000 Autohandler - app b

CALIBRATION WITH A COMPONENT

Now that the alignment camera has been calibrated without the field of view being blocked, the alignment camera must be calibrated with a component blocking the field of view.

Note: Before calibration, it is suggested that the pick rod be replaced if the measured runout during initialization is 3 mils (76.2 µm) or more. A straighter pick rod will yield more accurate results quicker.

Preparation

  1. Re-engage the interlock.

  2. Click the Home button located under the Z-axis control group to move the nozzle to its home position.

  3. Click the Vacuum On button to engage the vacuum.

  4. Open an interlock to turn off the motors.

  5. Attach the TSOP component onto the nozzle.

  6. Hand rotate the component until the component is perpendicular to the alignment camera's field of view as shown in the figure, Proper Component Orientation to Alignment Camera.

  7. Reengage the interlock.

Note: The longest length of the TSOP component should be perpendicular to the alignment camera’s lenses. In this orientation, the alignment camera will be able to view the leads of the component as shown in figure, Proper Component Orientation to Alignment Camera.

  8. Click the Capture button to capture an image from the alignment camera. The CyberView Utility Snap Shot graph, illustrates an example of a component attached to the nozzle with the nozzle at home position.

The Snap Shot graph example, illustrates a properly calibrated and coplanar alignment camera. The TSOP component is breaking the alignment camera’s field of view. Notice the ends of the component image. These "double spikes" are shadows of the component leads. When the device is parallel to the linear beam of the alignment camera, both of these "double spikes" should be equal in shape and level. The graph, CyberView Utility Snap Shot graph of non-coplanar alignment, illustrates an alignment camera which needs calibration. Note that the leads are not equal in shape and that they are not level.

Calibration

  1. Set the Z-axis relative position to "10". This value will move the Pick-and-Place nozzle by 10 thousandths of an inch from its current position.

  2. Click the Move Up button..

  3. Capture an image of the alignment camera by clicking on the Capture button.

  4. Repeat the above steps until the bottom of the component starts to break the field of view as shown in the CyberView dialog under Preparation, step 8. The goal of the vertical movement is to see that the component has moved to within the field of view of the alignment camera and is producing the double spiked output shown.

Note: Reduce the value in the Move Z edit box for fine pitch moves of the nozzle if needed. Negative values will move the nozzle up and positive values will move the nozzle down.

  5. If the captured image is not similar to the example Snap Shot graph, you will need to shim the alignment camera as needed to create a view as shown.

    1. Shim the alignment camera.

    2. Click the Capture button.

    3. Repeat steps 1 and 2 until the captured image is similar to the example Snap Shot graph.

Final Check

The final check procedure will capture images of the component as it rotates over 360 degrees at a slow rate of speed. You will be required to visually inspect the images of the component that are captured. This will help determine if the alignment camera was successfully calibrated.

  1. In the Command edit box, type the text SPW=1000.

  2. Click on the Send button. This will ensure that the component will be rotated at a slow speed to allow visual inspection of any deviation in alignment camera coplanarity.

  3. Select the Continuous check box located to the right of the Snap Shot button.

  4. Click the Snap Shot button to start capturing images as the component is rotated.

  5. Visually inspect the captured images. They should all be similar to CyberView Utility Snap Shot graph of coplanar alignment.

  6. If the alignment camera coplanarity is not achieved as shown in step 5, then start the calibration process again.

Back To Top


Calibrate wo Field of View Blocked

I. BP- 3000 / 4000 Autohandler - app b

CALIBRATION WITHOUT FIELD OF VIEW BLOCKED

The first part of the process is to calibrate the alignment camera without anything blocking the field of view.

  1. Power-up the Autohandler and initialize BPWin.

  2. When BPWin has initialized, open an interlock to turn off the motors.

  3. Remove the pick nozzle completely from the field of view of the alignment camera. It might be easier to remove the whole pick rod for this operation.

  4. Select Autohandler > CyberView... from the pull-down menu to open the CyberView utility.

  5. Click the Capture button to capture an image from the alignment camera. For more information on using the CyberView utility see Running the CyberView Optics Diagnostics Utility.

Note: The CyberView Utility Snap Shot graph example when the field of view is not blocked, shows the raw ccd feedback from the alignment camera. The scale to the left of the image is the light intensity reading from each of the ccd elements within the alignment camera. Notice the slight bowing of data. That is acceptable. A properly mounted and shimmed alignment camera will have an image similar to the one shown in this dialog. If you take your hand and push down on one side of the alignment camera then click on the Snap Shot button, you will notice how the alignment camera’s image will become slanted.

  6. If the captured image is not similar to the Snap Shot in the dialog, you will need to shim the alignment camera as needed to get the snap shot similar to the Snap Shot graph noted above.

    1. Shim the alignment camera.

    2. Click the Capture button.

    3. Repeat steps 1 and 2 until the captured image is similar to Snap Shot graph in the dialog.

  7. Open an interlock to turn off the motors, then reinstall the nozzle and pick rod if removed before continuing.


AUTOMATED PROGRAMMING SYSTEM GENERATIONS TABLE

APS Generation | Model | Features
3000 Series Gen 1 | 3610 | CyberOptics On-The-Fly Vision System, Manual Pressure-Vacuum Control, Laser Pointer
 | 3710MK2
 | 3000FS
 | 3000FS-MK2
3000 Series Gen 2 | 3800MK2 | Dual CCD Vision System, Independent Vacuum System Control (IVSC)
4000 Series Gen 1 | 4610 | CyberOptics On-The-Fly Vision System, Manual Pressure-Vacuum Control, External Monitor
 | 4710
 | 4800


BPWin User's Manual

BPM Microsystems

BPWin Device Programming

BPM Microsystems supports BPWin on the following operating systems:

  • Windows XP

  • Windows Vista

  • Windows 7

  • Windows 8

See PC Requirements for more information on supported operating system versions.


BPWin Intro

II. BPWin device programming - ch 1

bpwin introduction

Congratulations on selecting a BPM Microsystems device programmer designed to perform the most demanding programming tasks. BPM Microsystems programmers are used for design engineering, production programming, device testing, and field service. You can continue to program the newest devices with your programmer’s flexible hardware by obtaining software updates from BPM Microsystems. BPM Microsystems stands behind the programmers it manufactures to ensure your continued satisfaction.

BPM Microsystems is committed to providing the worldwide market with high performance innovative device programmers and great customer support at the lowest price possible. Our programming platforms span the spectrum from low-cost single-family programmers to fully universal and automated programmers that support virtually every device available today. Every programmer designed by BPM Microsystems is built to the highest standards. Each programmer offers a wide range of device support, flexible pin drivers and protection from damage caused by operator errors and defective devices. It has stable hardware that does not require periodic maintenance or re-calibration, and software that can be easily updated in the field to support the newest programmable devices.

The programmers that support memory devices will accept all popular file formats, use intelligent identifiers to auto-select proper programming algorithms, provide selectable range programming on many chips, and have a special set programming mode for automatic collation of data. The programmers that support PLDs accept JEDEC (Joint Electronic Device Engineering Council) files with editing ability for both fuse data and test vectors. The PLD programmers also support Altera’s compressed Programmer Object File (POF) format used with their MAX family of devices.

All of our programmers attach easily to a personal computer (PC) for ease of use. The menu-driven Windows-based software provides an efficient, user-friendly interface that allows you to quickly maneuver through the device list, select files from any location (including data read from another chip), utilize a full screen editor to view and modify your data, and virtual memory management to deal with very large files.

The programmers easily connect to the USB 2.0 port of any PC depending on programmer model.

  • BPM Microsystems device programmers are designed to perform the most demanding programming tasks. Therefore, BPM Microsystems device programmers should only be used for approved programming purposes. If the equipment is used in a manner not specified by BPM Microsystems, the protection provided by the equipment may be impaired.

Product Table

This manual has been written to support any of the following products using the BPWin software:

  • BP-1410

  • BP-2610

  • BP-3610

  • BP-4610

  • BP-1610

  • BP-2710

  • BP-3710MK2

  • BP-4710

  • BP-1710

  • BP-2710M

  • BP-3000FS

  • BP-4900

  • BP-1900

  • BP-2710AM-2

  • BP-3900

  • BP-2800F

  • BP-2800F-MK2

  • BP-2800

  • BP-2900


Technical Specifications

BP-2800F or later

Operating Voltage: 16 VDC

Current Rating: 3.1 A

Dimensions: 10.25” (260mm) x 7.5” (191mm) x 4.5” (114mm)

Mass: 8 lbs. (3.6 kg)

1-Site Models

Operating Voltage: 100-240 VAC

Frequency: 50-60 Hz

Current Rating: 4-2 A (Fuse 250V 6A SB)

Dimensions: 11.75” (298mm) x 8.65” (220mm) x 4.68” (119mm)

Mass: 7.22 lbs. (3.28 kg)

2-Site Models

Operating Voltage: 100-240 VAC

Frequency: 50-60 Hz

Current Rating: 8-4 A (Fuse 250V 6A SB)

Dimensions and Mass: 21.55” (547mm) x 8.65” (220mm) x 4.68” (119mm), 12.2 lbs. (5.5 kg)

4-Site Models

Operating Voltage: 100-240 VAC

Frequency: 50-60 Hz

Current Rating: 10-5 A (Fuse 250V 6A SB)

Dimensions and Mass: 21.55” (547mm) x 16.10” (409mm) x 4.68” (119mm), 21.5 lbs. (9.6 kg)

6-Site Models

Operating Voltage: 100-240 VAC

Frequency: 50-60 Hz

Current Rating: 12-6 A (Fuse 250V 6A SB)

Dimensions and Mass: 31.35” (796mm) x 16.10” (409mm) x 4.68” (119mm), 31.5 lbs. (14.3 kg)

Operational Temperature: 41° to 104° F (5° to 40°C)

Recommended: 41° to 90° F (5° to 32°C)

Equipment to be used in a laboratory or similar environment.

Installation/Overvoltage Category: II

Pollution degree: 2

3800MK2 System Requirements
Air Pressure: 80psi (5.56 bars)

Air Flow: 2.0scfm (50.1L/min)

Operational Temperature: 55° to 90° F (13° to 32° C)

Relative Humidity: 30-80%

Minimum Floor Space: length 183cm x width 107cm

Input Line Voltage: 100-130/200-260VAC

Input Line Frequency: 50/60 Hz

Power Consumption: 1KVA


1000 and 2000 Series

3000 and 4000 Series

PC Requirements

USB 2.0 Initial Setup

II. BPWin device programming - ch 2

Hardware Installation

1000 and 2000 Series

Make sure programmer is turned OFF before connecting to a grounded supply outlet. The programmer should always remain located close to the supply outlet and the AC power switch should never be blocked by any obstructions. Make sure no liquids are near the programmer at all times as this can pose an electrical hazard. No specific ventilation requirements are necessary during normal operation of this programmer. Always make sure fan inlets and outlets are clear of obstructions.

Connect power cord from the BPM Microsystems manual programmer to the wall outlet. Connect the USB 2.0 port cable from the programmer to the PC. It is preferable to dedicate a port to the programmer, but you may plug and unplug the cables.

Once all components have been setup, turn on the computer and the programmer. The LEDs become active. The LEDs are labeled as Pass, Active, and Fail. The Pass LED should come on, the Active LED may come on for a short period but should turn off, and the Error LED might be on or off (the Error indicator is only valid while the software is running).

3000 and 4000 Series

For our larger, automated device programmers, a Field Service Engineer comes out to your facility to install the unit. Any questions, concerns or problems regarding or stemming from the installation, should be directed to the on-site service engineer or Customer Service.

If you are using a BPM Microsystems programmer for the first time, this section will help you install the programmer’s software on your computer and make sure it is properly connected. It also contains important operating information that you should know before programming chips.

PC Requirements

BPM Microsystems programmers are designed to operate with any PC running Windows XP. Windows Vista, Windows 7, and Windows 8 are also supported with the following limitations:

  • Only USB programmer models are supported in BPWin in all versions of Windows Vista, Windows 7 and Windows 8. Parallel port programmers are not supported.

  • Automated Programming Systems (APS) are not supported in BPWin on Windows Vista, however Windows 7 and Windows 8 are supported only with specific supported APS hardware.

The following table summarizes the above-described OS support that is available for BPWin:

OS | BPWin is Supported | Automated Programming System is supported
Windows XP 32-bit | Yes | Yes
Windows Vista (32-bit and 64-bit) | Yes | No
Windows 7 (32-bit and 64-bit) | Yes | Yes (with supported Hardware)
Windows 8 (32-bit and 64-bit) | Yes | Yes (with supported hardware)

  • As of BPWin v5.34 Parallel Port (LPT) programmers are no longer supported.

The computer should have at least one available USB 2.0 port, System RAM that is twice the size of the largest device to be programmed but at least 64MB of available memory, either Pentium III or faster CPU, SVGA 256-color and 800x600 or higher resolution video monitor, and Microsoft Mouse or compatible pointing device.

All power management options that power down the PC (standby, sleep, hibernate, etc) should be disabled. If the PC sleeps during a job session, all programmer communication will be interrupted and the job will halt.

The software is not copy protected, so you can make backup copies and install it onto a hard disk. However, the software is copyrighted; therefore, you may not copy and distribute it.

USB 2.0 Initial Setup

  1. After you turn the programmer on Windows will recognize the new hardware and prompt you to install drivers. You should allow the system to install the necessary USB 2.0 software drivers by performing the following steps to ensure communication with the programmer.

  2. In the Windows hardware installation wizard, select the No, not at this time radio button and click the Next button to continue.

  3. Select the Install the software automatically (Recommended) radio button and click the Next button to continue.

  4. Click the Finish button to complete the installation.

Note: If the USB 2.0 drivers were not installed correctly, then you must reinstall the BPWin software. Click here if there are communication problems.

Back To Top


Input/Output Connections and Controls

Flashstream Programmers

  • Site Number Display – Displays the current site number assigned to the programmer.

  • Socket Card Interface – Interface connection for socket card accessories.

  • Programming Status Indicators – Displays Pass, Active, Or Fail status during programming.

  • Programming Start Button – Used to begin programming sequence.

  • ESD Jack – Used with operator ESD wrist strap, not included, to avoid ESD damage to the programmable device during manual handling.

  • Power On/Off – Manual switch used to turn power On or Off.

  • DC Power Input – DC power input from auxiliary power supply.

  • USB2.0 Interface – Used to interface programmer to PC via a USB2.0 compliant cable.

Universal Programmers

* Not included on all models.

  • Socket Module Interface – Interface connection for socket module accessories.

  • Programming Status Indicators – Displays Pass, Active, Or Fail status during programming.

  • Programming Start Button – Used to begin programming sequence.

  • ESD Jack – Used with operator ESD wrist strap, not included, to avoid ESD damage to the programmable device during manual handling.

  • Power On/Off – Manual switch used to turn power On or Off.

  • AC Power Input – AC power input from a grounded supply outlet.

  • USB2.0 Interface – Used to interface programmer to PC via a USB2.0 compliant cable.

  • 2, 4, and 6 site models similar.


Socket Module and Socket Cards

Always inspect socket module and socket card pins and connectors for damage before installation. Never install damaged socket modules or socket cards on programmers.

Take special care when installing socket modules and socket cards in order to avoid damage to your programmer. Avoid excessive force during installation. Polarized connectors are used to ensure only one proper orientation for your convenience. Avoid removing socket modules and socket cards by pulling on the socket.

Remove socket cards by using a non-conductive flat head tool and the built-in removal tabs on the programmer.

Remove socket modules by pulling on the outer socket module chassis away from the programmer.


Software Installation From Website

II. BPWin device programming - ch 2

install software from our Website

When installing a newer version of BPWin over an older version, the older version will automatically be uninstalled as part of the installation process. The software can be installed over a network onto a user’s local PC.

  1. Go to www.bpmmicro.com

  2. Select Software > Downloads. For new users, you will need to register for a username and password for software downloads.

  3. Click the BPWin button to download the software.

  4. When prompted, select the drive and directory where the self-extracting .EXE file will be saved.

  5. Double-click on the SETUP.EXE file and follow the on-screen instructions for the BPWin software installation.


Software Installation From CD

II. BPWin device programming - ch 2

Install Software From the CD

When installing a newer version of BPWin over an older version, the older version will automatically be uninstalled as part of the installation process. The software can be installed over a network onto a user’s local PC.

  1. Insert the CD in the CD-ROM drive.

  2. If auto-launch has been selected, the installation automatically runs a step-by-step procedure to install the software. If a manual setup is preferred, select SETUP.EXE from the list of files located on the CD. The SETUP program launches the installation procedure and the InstallShield Wizard for the software is displayed.

  3. Follow the on-screen instructions for installing the BPWin software for manual programmers or for a BP-3000/4000 automated programming system.

  4. Read the license agreement carefully and decide if you wish to proceed.

  5. Read the information overview for computer requirements and click the Next button.

  6. The installation prompts you to select a folder name and a location for the BPWin program files.

Note: The default is provided for you, but should you choose to place these files in an alternate location, simply click in the field provided and type the location address or click on the Browse button to find an alternative.

  7. Click the Next button. The BPWin Installation Type screen appears on the screen.

  8. Select BPWin from the list of installations for manual systems and click the Next button. (Select BPWin for BP-3000/BP-4000 Systems if you are using a BP-3000/4000 series autohandler and click the Next button.)

  9. Select the program folder and click the Next button.

  10. Follow the remaining on-screen instructions and click the Finish button to complete the installation.


Software Installation Using Command Line

Command Line Switches

Examples of Using Command Line Switches

II. BPWin device programming - ch 2

Install Software from the Command Line

When installing a newer version of BPWin over an older version, the older version will automatically be uninstalled as part of the installation process.

To install an older version of BPWin when a newer version is already installed, you must uninstall the newer version either via the command line or Windows Control Panel before installing the older version.

The following switches are available for installing/uninstalling BPWin from the command line:

Command Line Switches

  • -SILENT

Silent Installation - Suppresses display of all dialogs requiring user interaction during installation/uninstallation and uses default install settings.

Note: Whenever the version of BPWin being installed via the -SILENT command line option is identical to the version of BPWin currently installed on the system, then you must first uninstall the currently installed version of BPWin. If this step is not performed, InstallShield will detect that the version it is attempting to install is identical to the version already installed and the installation will be terminated.

Example: If you wanted to install BPWin 4.62 manual mode via -SILENT command line and BPWin 4.62 is already installed, then you must perform the following two steps:

  1. setup -SILENT -UNINSTALL

Silent uninstallation of currently installed BPWin 4.62.

  2. setup -SILENT

Silent installation manual mode of BPWin 4.62.

  • -APS

Set Automated Programming System Installation Mode.

  • -P

Preserves any existing versions of BPWin, thus allowing multiple versions to exist on the PC.

Notes:

    • It is not recommended that earlier versions be installed after later versions.

    • It is not recommended that versions be uninstalled when multiple versions have been installed.

    • BPM Microsystems makes no guarantee of compatibility of newer versions with older versions.

    • Multiple version installation is only allowed starting with BPWin 4.64.0. No version prior to 4.64.0 may co-exist with any other version.

    • Multi installations must be of homogeneous type. Do not perform a -APS -P install on a system that has non-APS installations.

  • -UNINSTALL

Uninstall current BPWin installation.

Examples of Using Command Line Switches

BPWin CD Setup Files

  • setup -SILENT

For Silent installation manual mode.

  • setup -SILENT -APS

For Silent installation automated programming system mode.

  • setup -SILENT -UNINSTALL

For Silent uninstallation.

Package For The Web Files

  • bpw_v4620 -SILENT

For Silent installation manual mode.

  • bpw_v4620 -SILENT -APS

For Silent installation automated programming system mode.

  • bpw_v4620 -SILENT -UNINSTALL

For Silent uninstallation.


Software Startup

The BPWin software utilizes all the standard functions of a Windows-based format including pull-down menus, action buttons, and hot keys.

To run the software, double-click on the BPWin icon on your desktop or select Start > All Programs > BP Microsystems > BPWin from the Windows Start menu. As the software is launched, a splash screen appears indicating initial software actions.

The main window of the BPWin software is referred to as BPWin Main. Navigation to all of BPWin's software features are available from this window. The upper portion of the window has a title and menu bar. The title bar shows the software announcement including version number and the name of the JobMaster file loaded, if applicable. The menu bar has programmer and software options with associated pull-down menus. Right-clicking on the menu bar pops up a menu to enable/disable the toolbar and Output window. The toolbar can invoke some frequently used commands.

The center of the main window has five sections providing programmer set-up and runtime information in a easy-to-view format.

  • Device, Data Pattern and Device Configurations - The text fields next to these buttons show abbreviated device and buffer information for the job. The buttons next to the fields allow the user to navigate to other dialogs to gain more detailed information.

  • Job Quantity - This is where you enter the number of successful devices for the job.

  • Device Command Tabs - Shows the major commands that can be performed. Device operations within these commands are selected here.

  • Progress/Site Status - Shows runtime information for each programmer site.

  • Programmer Execute and Stop - The left button invokes the programmer. The right button halts programmer action.

A status bar located at the bottom of the main window shows the current programmer configuration information. The pane descriptions from left to right are as follows:

  • Programmer Model - The currently configured programmer model. If a programmer has not been detected, the software will automatically start up in Demo mode, allowing the user all functionality possible without a device programmer. If a programmer is installed while in Demo mode, the software can be prompted to detect it through the File > Configure pull-down menu option. All actions/functions found in the software can be utilized within the Demo mode except programming a device.

  • Socket Module - The Socket Module detected on the Master Site.

  • Programmer Port - The communications port that the currently configured programmer is attached to.

  • Handler - The chip handling system that BPWin is configured with.

  • JobMaster Mode - Represents the Job Master permissions (Supervisor or Operator).

  • Programmer Site Configuration - Displays the number of programmer sites currently detected, the number of sites that are enabled to perform a device operation, and the currently configured master site.

The output window shows all activity during active use of the software, it can be hidden, floating or docked to any side of the BPWin main window by dragging the title bar of the output window. It tracks the history of the current job, including buffer activity, what devices are selected, etc. This data in the window can be copied or cleared by the user using a right-click on the window. BPWin clears it with a Set Default Configuration command or with each new session of BPWin. The data in the window is also written to the BlackBox log file.

Perform a hardware self test on each site. All tests should pass before continuing to program devices. If there is a failure, look up the error code in BPWin Programmer Errors for more information.

BlackBox Logging and Archiving

BPWin logs most actions in a log file named "BlackBox.html", by default located in a subfolder of the "BP\DATALOG\JobLogs" folder in the home directory. Each time BPWin is started, and when a job ends, a subfolder to hold the file is created named using the current timestamp. Once the log file's size reaches a limit (see the description of the registry values below) the file is archived with a file name, "BlackBoxBakX.html" (where 'X' is the index number of the file). In the file itself each action reported has its own timestamp in the ISO8601 form of: YYYY-MM-DD hh:mm:ss [+/-]hhmm.

The log file is generated in HTML format which allows embedding of the Job Summary Report and other HTML content directly as-is without converting to text. Microsoft Internet Explorer 9+ or Firefox 6+ is recommended for viewing BlackBox log files. To reduce clutter in the BlackBox log file, collapsible sections are used to group certain pieces of related information together. These sections are collapsed by default, and can be expanded or collapsed by clicking the title of each section. Each section title is bolded and underlined so it can be identified easily. To quickly expand or collapse all sections in the log file, the "Expand/Collapse all sections" button at the top of the log file can be used to view or hide the additional log details.

When the black box log file becomes inaccessible for more than 5 seconds (this happens when the log file is being copied or when the Hard Drive is full, etc), this window will appear and any job session in progress will pause.

When the file becomes accessible again, the window will disappear and the job session will continue normally. No logging information will be lost. If you click the "Stop Logging" button the window will disappear and BPWin will resume normal operation, but no further logging attempts will be made for the remainder of the BPWin session. At this point you should stop the job session, close BPWin, resolve the problem, restart BPWin, and then restart the job session again.

There are two forms of BlackBox logging: Legacy and Job Logs. Legacy logging is a deprecated scheme where all log files are written to the same directory (by default the BP\DATALOG folder in the home directory). Legacy logging also deletes the oldest log files after the total size taken up by the files is greater than the amount in the registry value described below. The new logging scheme, here referred to as Job Logging, writes the log files in the location described above and does not delete any older log files. Legacy logging can be disabled via the User Options window (accessible via the Tools/Options main menu in BPWin). Job Logging cannot be disabled and is performed currently with Legacy Logging. The location to perform Job Logging can also be specified in the User Options window.

The following HKEY_LOCAL_MACHINE registry keys determine the size of the BlackBox log file and the size of the directory where the Legacy BlackBox log files are stored. The default value can be changed in the registry through "regedit", if desired.

  • HKLM\Software\BP Microsystems\BPWin\LogFileLimitMB - The BlackBox file has a default limit of 10MB. Once the current log file goes beyond the limit, the file will be archived and a new BlackBox log file created.

  • HKLM\Software\BP Microsystems\BPWin\LogDirectoryLimitMB - For Legacy Logging only: The "BP\DATALOG" folder has a default limit of 1GB (1024 MB). When archiving the current BlackBox.log file, the oldest log file(s) that are beyond this limit will be deleted.

Note:

  • Since the "DATALOG" folder is limited only by size and not a file number limit, the number of files in this folder can grow very large. It is up to the user to delete those files if they choose.


Command Line Parameters

BPWin supports certain configuration options that will be set immediately when the BPWin application begins executing. This can be accomplished by specifying command line parameters to the BPWin executable. The following command line parameters are supported:

Command Line Parameter | Effect | Examples
-JM <Job File Name> | Loads a JobMaster (.bp) file. Note that spaces in the path will require the path to be surrounded with double quotes. | BPWin.exe -JM c:\jobs\Job1.bp BPWin.exe -JM "c:\customer jobs\Job1.bp"
-Device "<Device Name>" | Selects the device specified in <Device Name>. Including the manufacturer name and surrounding the entire name with double quotes will resolve most device name lookup issues. | BPWin.exe -Device "STMicroelectronics M29W160ET"
-Prog_File <Data File Name> | Loads the specified data pattern file. Note that spaces in the path will require the path to be surrounded with double quotes. | BPWin.exe -Prog_File c:\patterns\pattern1.bin BPWin.exe -Prog_File "c:\customer patterns\pattern1.bin"


Interposer Board Installation

These are instructions for Interposer Board installation and replacement for 8THGEN manual and automated programmers including models Flashstream 2800F-MK2, 2800, 4800, 3800 and 3000FS MK2.

Inventory:

  • Interposer Board

  • 1/16" Hex Allen Wrench (not included)

  • 3/32" Hex Allen Wrench (not included)

1. Disconnect the power supply and USB cables.

2. Remove (4) fasteners from Top Plate using 3/32" Hex Allen Wrench:

Remove (4) fasteners from Top Plate using 3/32" Hex Allen Wrench

3. Remove top plate:

4. Remove (4) fasteners from Interposer Board using 1/16" Hex Allen Wrench:

5. Carefully remove Interposer Board:

6. Place replacement Interposer Board.

7. Seat Interposer Board firmly:

8. Place (4) 1/16" fasteners and tighten using 1/16" Hex Allen Wrench:

9. Position Top Plate:

10. Place (4) 1/16" fasteners and tighten using 3/32" Hex Allen Wrench:


Creating a Job

Running a Job

Monitoring a Job

Ending a Job

II. BPWin device programming - ch 3

Job process

Creating a Job

These are the basic steps for setting up to program devices:

  1. Select a device through Device > Select Device. View device notes. Install the correct socket module.

  2. Load a data pattern from a from a file or from a device into the programmer's buffer.

  3. Configure the device settings.

  4. Configure the device commands.

  5. Select serialization options, if applicable, through Tools > Serialization.

  6. Select options through Tools > Options.

  7. Select any programmer type options, such as auto-save, job ID or user mode.

  8. Optional, save the job as a JobMaster file (create a .bp file). Saving the job is recommended when the same job parameters will need to be used again at a later time.

Running a Job

After you have selected a device, loaded the buffer, and designated the parameters of the job or loaded a JobMaster file, you are ready to begin programming.

  1. Enter the quantity passed devices required for the job in the Quantity field. This field will accept a quantity between 1 and 2,147,483,647.

Note: This number should be the exact number of passed devices needed to complete the job. The software will use this number as its goal no matter how many devices fail, and will not end a job until this number is reached.

  2. Click the tab that most accurately describes what you intend to do (for example, Program, Verify, Read, Test).

  3. If applicable, select the functions you intend to perform by selecting/de-selecting the checkbox(es) next to the list of available actions. When using JobMaster in Operator mode, checkbox settings cannot be changed.

  4. Place the device(s) in the socket(s) with correct orientation.

  5. Click on the action button. When using JobMaster, an integrity check is performed prior to starting device operations to verify no manual changes have been made after a JobMaster file has been loaded.

    • Parts must not be inserted or removed when the ACTIVE LED is on.

Monitoring a Job Session

The BPWin Main window displays status updates for each programming site and real-time job statistics. It is important that you to monitor this screen in case a particular site continually produces rejected parts. If this should happen, it may be necessary to troubleshoot the problem (see BPWin Error Codes).

Session Statistics

During the job session the "Session Statistics" Properties Dockable Pane displays job statistics in real-time.

The pane appears when entering concurrent mode and disappears when exiting concurrent mode. By default it is docked to the right side of the mainframe, but you are free to move it to any place you wish. Subsequent sessions will remember the location of the pane. You may close the session statistics at any time during a job session and may re-open it again by using the pane menu (accessed by right clicking on the menu bar area). Note that even if you hide the "Session Statistics" pane, the subsequent concurrent mode session will force it to appear again in its last location.

Each entry in the pane has an associated description text in the "Description Area" at the bottom of the pane. You may click on the desired entry to see more information about the property in the "Description Area." Note that the help text for manual mode vs. APS mode might be different to reflect the subtle changes in the meanings of the stats between the two modes.

All the groups in the grid control are expanded by default. You may collapse as many groups as you choose, but the next concurrent mode session will expand them all again. The scroll bar can be used scroll through the properties list if needed. Like any other dockable pane it can be docked to any location in the mainframe, floated, hidden, or auto-hidden.

The category displayed at the top of the pane is "System" which consists of the following:

Devices Passed

The number of successful device operations.

Devices Failed

The number of failed device operations.

Devices Active

The number of device operations currently being performed.

Devices Remaining

The number of successful device operations currently needed to complete the job.

Actual DPH

DPH stands for "Devices per Hour". When compared to the Potential DPH, reveals how quickly the operator running the programmer is able to remove completed devices, load new ones, and start the next programming cycle. This is captured by the Operation Efficiency in the Job Summary Report's Overall Statistics section.

Potential DPH

This is the DPH possible assuming that all attached sites are used to maximum capacity, that is, all sites are used continuously without interruption with no dead-time (that is, the moment one operation ends, the subsequent operation begins immediately) from the beginning of the job to the end. This theoretical number does not account for the time to load and unload sockets so it will be impossible for the Actual DPH to reach this value.

This DPH calculation takes into account failures. For example, if one socket during the job run starts to not produce any passed devices, the total Potential DPH will be lower. This allows a comparison of the Actual DPH to the Potential DPH to reveal the efficiency of the operator using the programmer. The operator is not penalized for failed devices, but is penalized for the time taken to swap out completed devices with new ones.

Efficiency

Calculated the same as in the Job Summary Report.

Yield

Percentage of the devices passed over the total devices processed.

Elapsed Time

The time elapsed since the beginning of the job session. Updated every second.

The other category of values relate to the individual Programmer Sites, which consists of the following for each site:

Serial Number | The unique number assigned to the site.
Devices Passed | The number of successful device operations performed on the site.
Devices Failed | The number of failed device operations performed on the site.
Devices Total | The number of device operations performed on the site.
Yield | Percentage of the devices passed on the site over the total number devices processed on the site.
Device Insertions | The number of device insertions on this socket module since the count was last reset. Note that when using a socket baseboard with socket cards, "Device Insertions" will be a expandable group that contains the insertion information for the baseboard as well as each individual socket card.

Programmer Socket Status Boxes

Provides real-time visual information for each site. The background color of the site box changes to reflect the site's activity.

  • Default background indicator colors:

Red - indicates a failed part.

Green - indicates a passed part.

Blue - indicates the programmer is idle.

Yellow - indicates the programmer is active.

Light Blue - indicates the programmer is ready to begin when using gang-type sockets with Auto-Continuity on.

Gray - The site/socket is not available.

Note: These colors can be changed through the Status Box Colors dialog which is described here.

On manual programmers once a socket goes into the idle state after a device operation is complete, the device operation result will be shown in the top-right corner of the site status box. This allows you to open the socket after the operation and still be able to view the operation result. Note that the device operation result will only be visible the first time the socket becomes idle after the device operation is complete.

Ending a Job Session

Click the Stop button to stop a job session. In concurrent mode, the STOP dialog appears allowing three options for the job session.

  • Emergency Abort (stop all motion) - terminates the job session immediately.

  • End Job Now - terminates the job session "gracefully" so the devices in the sockets will finish programming.

  • Esc key - resumes the job session.

If applicable, a Job Summary Report will be displayed.

Job Session Completion

A job session is finished when the number of programmed parts specified in the Quantity field has been successfully reached. If applicable, a Job Summary Report will be displayed.

If you have any parts that have been rejected, it is best to attempt to program those rejected parts again. In many cases, rejected parts merely fail to achieve continuity and will “pass” if they are run through the programmer again. The parts that are rejected a second time are probably defective.

Back To Top


Programmer options

File > Configure

Commands the software to re-establish communications with the programmer. This allows the user to change programmers and access a list of different options to choose from. The Configuration dialog also allows the user to change the handler type from a manual to autohandler mode, as well as novice or experienced mode.

Note: The Programmer Model field is grayed out if you have a programmer connected.

  • Programmer Port - Displays either DEMO or USB.

    • You may utilize any of the software’s functions while in Demo mode, except programming a device.

    • Demo mode is automatically selected if no programmer is detected.

  • Programmer Model - Designate the model programmer. If the programmer is in DEMO mode and a list of devices supported on that particular model appear in the Device Select dialog.

  • Handler Type - Indicate whether or not an autohandler is used with the programmer. Use Manual if the programmer does not interface to a BP-3000/4000 series handler.

  • Master Site - The site that is selected to perform the initial operation, i.e. programming, self-test. Default is 1.

  • User Mode - Select Experienced or Novice. The Experienced mode permits options that are not allowed in Novice mode, such as displaying the VCC measurements on Compare and Test. Novice will signal the program to prompt the user to accept or cancel before each operation is performed and when the user aborts a job. This is the default choice.

  • Auto Save Job Summary Report - Automatically save the Job Summary Report to a file in the named directory at the end of a job. The HTML job summary file name will be in the form of:

DeviceName DateForCurrentLocale [index].html

Where DateForCurrentLocale will be a date and time representation appropriate for your current locality (the Country/Region, and language). If DateForCurrentLocale contains any forward slashes ("/"), which is an invalid filename character, it is replaced by a dash ("-"). Any other invalid filename characters in DateForCurrentLocale are replaced by period (".").

The index portion is explained below in "File Format Definitions".

  • Auto Save Power Supply Log File - Automatically save the power supply levels for each programming site that is being used at the beginning of a job. The power supply values are appended to the log file. Disabled programmer sites are not included in the log file. The log file name is saved in the form of: DeviceName_yyyyMMddPS.log. The time stamp for each entry in the file is in the ISO8601 form of: yyyy-MM-dd hh:mm:ss +\-hhmm. File format definitions are listed below.

  • An asterisk (*) next to any power supply value, indicates a supply that is out of range. We recommend that you perform Programmer Diagnostics on any site that is out of range.

File Format Definitions (all single digit dates/times will be written with a leading zero unless noted otherwise):

    • +\-hhmm - The time offset from the UTC in hours (hh) and minutes (mm).

    • DeviceName - The name of the device without the manufacturer name.

    • dd - Day of the month.

    • hh - Hour of the day.

    • mm - Minutes past the hour.

    • MM - Month of the year.

    • ss - Seconds past the minute.

    • yyyy - The year in long format.

    • index - A numeric designation, starting at 000, applied to each file name to make it unique to other job summary files saved on the same date using the same device. Each auto save file increments the index by one.

Example:

3 jobs ran on the same day with auto save, 2 jobs ran the same device:

AT29C010_20080920[000].html

AT29C010_20080920[001].html

KMB345H-R_20080920[000].html

If the same job is run on the following day, the index starts at zero again:

AT29C010_20080921[000].html

If the index reaches "999", the next index will be 4 digits:

AT29C010_20080921[1000].html

    • PS - Indicates that it is a power supply log file.

File > Exit

Close BPWin.


Select Device

Device Info

Socket Module Info

1. It is essential to choose the correct entry for the device you want to program. Programming algorithms vary widely between different semiconductor manufacturers and even between parts from one manufacturer with different speed ratings! Selecting the wrong algorithm can destroy your chip! The part number on your chip may have package code and temperature rating letters following the part number shown in the menu. When you select a chip, it is a good idea to specify both the manufacturer and the part number of the device you want to program. You must be careful to select the part number from the menu list that exactly or most closely matches your device part number, including the suffix that represents programming voltage and speed.

2. Almost all programmable memory devices manufactured today support an electronic code that can be read to identify the correct programming algorithm. Most likely, your chip supports this feature and the code will be read before programming to ensure that the correct algorithm is being used. However, if you are in possession of a part that does not utilize this electronic code, selecting the correct chip from the menu is imperative.

II. BPWin device programming - ch 5

Device Selection and Information

Device > Select Device... or Device

View a list of devices and select a device supported by the designated device programmer.

If your device is not shown in the device list, please contact us. Your device may have been recently added, or we may be able to add it. If you would like to request support for a new device algorithm, please visit www.bpmmicro.com and complete the device request form. BPM Microsystems will be in contact with you within 48 hours. Click for Customer Service information.

The Select Device dialog offers a list of devices supported on the programmer model selected in Configure. Selecting a device will load the correct programming algorithm. The algorithm is specified by the semiconductor manufacturer and contains all data requirements.

It is important to select the correct device for programming. However, device selections in BPWin do not always match the complete orderable part number for the device. A complete part number, available in the device datasheet, usually comprises of a basic device family name combined with several descriptors such as device revision, package, temperature, lead material, speed grade, shipment packaging, etc. Not all components of a device part number are relevant in terms of programming. Temperature grades such as Commercial or Industrial and shipment packaging such as Tape or Reel are the most common examples. On our 7th generation and lower line of programmers speed grades of a device are also not relevant for programming.

On most existing device selections, these non-essential components of the device part number that do not impact programming are replaced by a hyphen "-". A hyphen on a device selection when not explicitly part of the device part number in the datasheet indicates that multiple options are available, and that BPM Microsystems has determined them to be insignificant to programming. This generic device selection may be used to program devices encompassing all of these available options. Note that BPM will only use hyphen replacement for part number positions within the part number. There will be no device selections that end with a hyphen.

Some of our customers' quality processes require that the full part number appear in the BPWin software, such as the case in the automotive sector. If this is a requirement for you, please clearly indicate it in the device support request. Full part numbering is standard practice for all device algorithms that are specified to be exclusively for the automotive industry at the time the algorithm is written.

Beginning with BPWin 5.2, new device support will contain selections for the full expanded device part number as it appears in the device specification in all combinations that can be tested at the time the algorithm was developed. This will be in addition to hyphenated selections as well. If after the algorithm is released, the device manufacturer releases, for instance, a new temperature range for the device, the hyphenated selection will aid you in determining that you do not need to contact BPM to add support for this device. In this example, the existing algorithm selection shall suffice. If however your process requires an exact part number and that selection is not available, please contact us to arrange for that addition.

Use the Look for field as a search engine by entering the first few letters of the manufacturer’s name and part number. You will notice that as characters are typed in, the device list narrows to show only those devices containing the characters you have typed, in the order you type them. You can also narrow the list by designating a particular Package Type or Architecture. Use the <Home> key to return to the top of the list of devices and the <End> key to go to the end of the list of devices.

  • The Package Type field narrows the search by only listing devices of the package type selected.

  • The Architecture field narrows the search by only listing devices of the type of architecture selected.

Note: Changing the settings in the Package Type and Architecture fields may make it the default setting for that field.

The "Request a device" link can be used to submit a device support request on the BPM website.

  • For important information regarding device selection, click here.

Set default configuration for this device

If the "Set default configuration for this device" box is unchecked, then selecting the device will not include performing the following functions:

  • Clearing the config options.

  • Ensuring that the currently loaded data pattern type is compatible with what the algorithm expects.

  • Resetting NAND options.

  • Resetting default buffer value to that specified by the algorithm.

  • Updating the device range.

  • Regenerating the data pattern checksum.

Device > Device Info...

Displays the Device Information window for the device currently selected when using the pull-down menu or highlighted in the device list when using the Device Info... button.

Device > Socket Module Info...

Displays the Socket Module information window for the device being used.

Module

Lists all the supported packages for the device. The package is described in the Package, Body, Toe-Toe, and Pitch columns. Socket modules names that appear in the Socket Module Info dialog are links to a request for quote web form. You can use this link to get a quote and lead time for any socket module you wish to order. Socket modules that are in the process of being discontinued but quantities of them were still available at the time of software release will have "(EOL)" (End Of Life) next to their names.

Pressure Plate

The part number of the pressure plate to use for the listed socket module. Does not apply to manual programmers. For automated socket modules, the entry will be blank indicating a plate has not been specified or have a plate number listed.

T-Post

The type or part number of the T-post to use for the listed pressure plate. Does not apply to manual programmers. For automated socket modules, the entry will be blank indicating a T-post has not been specified or if a plate has been specified, an entry of "Normal" indicates to use a normal length post or a part number of the T-post will be listed. See T-post Part Numbers and Compatibility for more information.

Torque Specification

Surface mount sockets need to be precision mounted to a specific torque requirement to make good electrical contact with the Device Under Test. A Torque wrench must be used to meet this specification when replacing sockets in the field.


Device Settings

Range

Sets and Banks

Test Vectors

Configure

Byte Order

Buffer Offset

Image Format

NAND Options

II. BPWin device programming - ch 6

Device Settings

Device > [Setting] or Device Config | [Setting]

The "Device Settings" dialog is accessible via the "Device/Settings..." menu item and contains the following settings:

  • Range

  • Sets & Banks

  • Byte Order

  • Test Vectors

  • Most other device-specific settings

There are also other device options that are accessible via the Device pull-down menu or the "Device Config" button as separate menu items:

  • NAND Options

  • Image Format

  • Other unique device-specific settings

The device configuration options shown are determined by the device selected. The following describes each of the available configuration options:

Range

Sets a specific address range in the device to program data or set an address to offset data as it is programmed into the device. Addresses up to 7FFF FFFF FFFF FFFF for both the low and high address are supported.

  • Auto Range is a feature that scans the data pattern for blank regions, and programs just the non-blank portions. For many typical data pattern files, the entire device address range is not utilized, and in many cases there are multiple gaps in the pattern data. A significant reduction to programming times can be accomplished using Auto Range in these circumstances. Auto Range is capable of constructing complex ranges comprised of any number of regions, unlike the conventional Single Range's "Lowest" and "Highest" addresses.

    • Auto Range is only available for devices that allow Range control via Device > Range... and are compatible with the Auto Range feature. Non-compatible devices will have the Auto Range checkbox disabled.

    • Not every single blank value in the data pattern will be skipped. There is a slight overhead incurred every time a range is skipped, and Auto Range's analysis will ensure that only blank intervals of sufficient size will be skipped. In general, the minimum continuous qualifying blank-state run is 16 device addresses. The minimum page size of the device is also taken to account in this analysis.

    • The exact subranges used are not calculated until the Program operation is executed. The result of the analysis is displayed in the Output Window and log file, and contains the exact list of ranges used during Program.

    • When using Auto Range, the entire device address range is always verified during Verify operations. Addresses that are skipped during programming are blank checked during the Verify pass.

    • In BPWin 4.66 and later, both Auto Range and Serialization features can be enabled at the same time for devices that are compatible with this combination of features.

    • When using the Serialization and Auto Range features together, ensure that the first serial number value is not the blank value of the device, or the serial number could be excluded from the operation.

    • When the size of the device exceeds the size of the data pattern, the Default Buffer Value (DBV) is used for any device addresses not contained in the data pattern. Therefore, for best performance with Auto Range the DBV should be the blank-state of the device.

    • Skip blank checking empty Data Pattern regions - When "Auto Range" is checked, empty regions of the device (default buffer value in the Data Pattern) will not be verified, but instead blank checked to save time. While blank check is faster than verify, it still takes some time to execute. Check this option to skip blank checking these regions altogether.

Note: Auto Range cannot be used with Sets.

Back To Top

Sets & Banks or Set

Divides the data into two or more devices to be read either in parallel or programming by dividing the data into two or more devices to be read in series. The Programming Mode allows you to select either a single device or a set of devices.

Note:

  • Sets cannot be used if the Auto Range checkbox in the Range option is selected.

  • Serialization is disabled when using Sets & Banks on a gang socket module.

Test Vectors or Vector

Sets test vector parameters. These parameters define how the vectors are applied and how the results are returned. This option is only available on select devices and if there are test vectors in the specified file and if Test has been enabled under the Test file tab.

Device-Specific Settings

Displays a variety of special options available to specific devices, such as

  • sector protection

  • boot block lockout

  • watchdog timers

  • oscillators

  • brownout timers

  • code protection

  • identifiers

  • lock blocks

Byte Order

Allows you to select the byte order used to transfer data to or from the device under test.

  • Intel Format: Little Endian (LSB) - indicates the Least Significant Byte appears at the lower address of a 2-byte word.

  • Motorola Format: Big Endian (MSB) - indicates the Most Significant Byte appears at the lower address of a 2-byte word.

Image Format

The Image Format tool is available in some device selections that require special formatting of the Data Pattern so as to be compatible with the programming algorithm. For example, some SD and MMC Flash Memory algorithms require CRC bytes to be placed periodically in the Data Pattern. The specifics of the transformation will be detailed in the Image Format tool screen. In all cases, your original Data Pattern file will not be changed. This tool will generate a new file at the location of your choosing. The output file should then be loaded into BPWin as the Data Pattern, prior to performing device operations or creating a JobMaster job file.

When use of this tool is required to pre-format a Data Pattern, the Device Notes that appear after selecting the device, will instruct you to use this tool to generate a compatible Data Pattern image.

Back To Top


Programming NAND Flash in BPWin

Setting NAND Flash Options

Supported Partition Table Files

NAND Flash Options with partitions defined for the Example System

NAND Flash Options

BPWin provides a variety of options to support the unique complexities of NAND Flash programming. When factory programming raw NAND Flash for use in embedded systems, it is crucial for the device programmer to adhere to the same Bad Block Management scheme used by the end-system that the device will operate in. These solutions are centered around industry de facto standards for Bad Block Management, and for most applications eliminate the need for custom device algorithm development. Additional information, including Bad Block Management and design tips, is provided in the Programming NAND Flash appendix.

Programming NAND Flash in BPWin

The stock NAND Flash algorithms in BPWin allow a degree of configuration that enables compatibility with a large variety of end-system requirements. BPWin supports user-defined partitions, Free Good Block Formatting data, and Spare Area data. The option for the overall Bad Block Management scheme includes "Skip Bad Block Compatible" with the ability to expand the selection in the future. The "Skip Bad Block Compatible" selection in BPWin is the implementation of the "Universal Factory Programming BBM Scheme" defined in the BPM Microsystems white paper "Understanding NAND Flash Factory Programming." By allowing the user to customize the "Skip Bad Block Compatible" BBM scheme nearly all NAND Flash factory programming requirements can be met using the stock algorithms. Partitions are defined by setting a starting and stopping address or block, along with an image size that defines the length of the critical portion of the Data Pattern.

The stock algorithms also achieve superior throughput performance by eliminating application-specific computations that are unnecessary during factory programming. This is accomplished by requiring the Data Pattern to contain the following elements:

  • Full Spare Area including all application-specific Spare Area Placement and ECCs

  • All Free Good Block Formatting.

Since the device programmer does no interpretation or generation of the Spare Area, this allows for the most flexibility with various application-specific schemes and the most throughput performance.

The Data Pattern must contain the Spare Area immediately following the Main Page data with exactly the same number of bytes that the device contains. The size of the Main Page and the Spare Area must match the device exactly. For example, a device with a 512 byte Main Page and a 16 byte Spare Area would require the following layout in the Data Pattern:

Consider a larger device with a 2048 byte Main Page and a 64 byte Spare Area, the layout would be:

NAND Flash manufacturers reserve special Spare Area locations to mark factory Bad Blocks, generally with a non-blank-state value. Usually, these are only reserved in one or two pages of an entire block. BPWin expects that the Data Pattern content adheres to the device manufacturers specification, and will report and auto-correct any violations by default. You may choose to disable this analysis for situations where you want to violate the NAND vendor's Bad Block Marker specification and substitute your own, or you want to deliberately mark otherwise good blocks in the device as bad. This option is controlled by the "Check Bad Block Markers in Data Pattern" selection.

Important

The stock algorithms in BPWin adhere to the NAND vendor's Bad Block Marker specification while scanning the device for Bad Blocks at the start of the command sequence, regardless of the "Check Bad Block Markers in Data Pattern" setting. If this option is disabled, the Bad Block Marker locations in the Data Pattern will be programmed verbatim into the device. Depending on the exact data, this can signal a multitude of Bad Blocks if additional commands are later executed on the device.

In BPWin version 5.10 and later, you may specify your own Bad Block Marker locations to use for both scanning the device for Bad Blocks and for checking the Data Pattern content. In situations where the Data Pattern contains different Bad Block Marker reserved locations than what the manufacturer specifies, using this "Bad Block Marker Offsets" feature is preferred over disabling "Check Bad Block Markers in Data Pattern."

The Data Pattern must also contain data for every block in a partition. This is comprised of the Image data and the Free Good Block Format data. For systems that simply fill blank-state for unused blocks at the end of a partition, the Free Good Block Formatting is often referred to as "padding." The Free Good Block Formatting will be used to program any remaining Good Blocks after all of the Image data has been programmed for a given partition. The utilization of the Free Good Block Formatting varies from device to device, depending on how many Bad Blocks are encountered within the partition's boundaries. In the "best" case, a device contains no Bad Blocks in the partition, and so all of the Free Good Block Formatting would be programmed into the device. In the "worst" case, a device contains the maximal number of Bad Blocks allowed by the partition, in which case the device programmer would discard all of the Free Good Block Format data before resuming on the next partition.

The device programmer will optimize all blank-state regions of significant length during the programing. If an entire block in a partition is completely blank state, it will only be erased and then blank checked during the verify pass. Blank pages will also be blank checked during the verify pass. Any blocks not contained in any user-defined partitions are omitted from all Erase/Program/Verify operations.

When performing Read and Compare operations, if the device contains Bad Blocks in a partition for which Free Good Blocks have been allocated, the device programmer will pad the captured Data Pattern with blank-state for these blocks. This blank-state padding will appear at the end of the partition. Because the end-system may not be using blank-state for its Free Good Block Formatting, it might not be feasible to read a "master" device to establish the Data Pattern for programming multiple copies. When factory programming NAND Flash, it is very important to obtain the full Data Pattern file meeting the requirements stated above from the end-system design team, along with all partitioning requirements.

Back To Top

Setting NAND Flash Options

  1. The NAND Flash Options are accessed by selecting Device > NAND Options... from the pull-down menu. The NAND Flash Options dialog appears on the screen.

  2. If you have a supported Partition Table File, you can click the Import... button and select the file then continue with step 8. Otherwise, manually enter the partitions as follows.

Note: When using the "Import" option, the partitions will be created with "First Block Good" = NO since these formats do not specifying this option.

  3. Click the Clear All button to clear the default partition.

  4. Define a partition by clicking the Add... button. The NAND Partition dialog appears on the screen.

  5. Input the Start, Stop, and Image Size in the NAND Partition dialog. Partitions may be input as Virtual Device Addresses or as Physical Blocks by choosing the Partition Format. Partitions are always displayed as Virtual Device Addresses in the NAND Flash Options dialog. Enable First block of each partition must be good if this is a requirement of the end-system, by clicking the check box. If this option is enabled, devices with a Bad Block at the start of this partition will be rejected. This option is usually not a requirement, and is disabled for maximal yield.

  6. Click OK. If the partition passes the validity checks, it will be added to the Partitions list in sorted order. Otherwise, an error message will direct you to modify the partition.

  7. Repeat adding remaining partitions that are required by the end-system.

  8. Select the Bad Block Management Scheme required by the end-system in the drop-down box provided, if available.

Note: Only the 2800F or later programmers supports optional Schemes.

  9. Select the option for Include Spare Area. When this option is enabled/checked, the Spare Area of each page shall be included in the device operation. Since exclusion of the Spare Area is rare, this option is enabled by default. Toggling this option will recalculate Virtual Device Addresses.

  11. Select Capture Bad Blocks during Read & Compare, if desired. It is provided for troubleshooting/debugging purposes. When enabled and a Read or Compare operation is performed:

    • The device programmer will capture the content of any Bad Blocks on the device, which are usually omitted.

    • Devices will not be failed due to an excessive number of bad blocks or block zero being bad during the Read and Compare operations.

    • There is no limit on the number and location of Bad Blocks.

  12. Uncheck Check Bad Block Markers in Data Pattern, if necessary, to bypass analysis of the Data Pattern that checks for proper Bad Block Marker values prior to Program and Verify operations. When this option is enabled, BPWin will auto-correct any location that does not meet specification. It is recommended that this option remain enabled. If the target system utilizes Bad Block Marker locations that are different than the NAND Flash factory specifications, it is better to leave this option enabled and instead specify the target system's Bad Block Marker offset locations in the "Bad Block Marker Offsets" field (see below). Some BBM schemes will not allow the use of this option.

  13. Use the "Bad Block Marker Offsets" field to substitute your own Bad Block Marker requirements as needed by the target system. You may override the factory defaults, but it is crucial that you do so with a firm understanding of the target system's Bad Block identification scheme, as well as the state of the factory Bad Blocks in the virgin NAND Flash device itself. Generally, you should only attempt to alter the factory Bad Block locations if the device is known to contain "all zeroes" in factory Bad Blocks. BPM Microsystems cannot guarantee this for any particular NAND Flash device since such characteristics are not specified by the NAND Flash manufacturer. However, this does seem to be a de facto standard, and numerous embedded systems rely upon it.

    The Bad Block Marker Offsets will be used to check the Data Pattern (if that option remains enabled) and to identify Bad Blocks on the devices. This will support reprogramming or any other subsequent operation on devices that have been programmed with alternative marker locations.

    The "Bad Block Marker Offsets" must be formed with one or more hexadecimal numbers separated by a comma. Do not use any sort of hex designator (eg. "0x", "h"). The offsets are in device-words (ie. for 8-bit devices each offset represents 1 byte, and for 16-bit devices each represents 2 bytes). Each offset will be used in every full NAND Flash block to check for blankstate. If any of the offset locations in a particular block are not blank, that block will be identified as a Bad Block. The offset locations are always formed taking into account the full size of the NAND pages (main+spare), regardless of the "Include Spare Area" setting.

    Example: For a 2048+64 page size 8-bit NAND Flash where the Bad Block markers are located at the first byte of the spare area in pages 0 and 1, the corresponding Bad Block Marker Offsets setting would be "800, 1040"

  14. Use the Bit Error Rate Tolerance (BERT) field to specify number of bits per page or subpage that can be incorrect during a Verify without causing the programmer to reject the device. This setting is for NAND devices that exhibit program disturbs that the target system will correct via ECC. Do not exceed a BERT that cannot be reliably corrected in the target system!

The default BERT value will suffice for most all applications. The default BERT value is tolerant of fewer bit errors than most target system ECC algorithms. If you are experiencing unsatisfactory yield while programming NAND Flash devices, and this is due to program disturbs exceeding the default BERT setting, then consider increasing the BERT. Consult with the target system designers to establish the acceptable BERT per page or subpage for the target system. If the BERT setting exceeds the number bits that the target system is capable of correcting, then the programmer may pass devices that will not function in the target system ("in circuit").

When this setting is disabled, the programmer will not tolerate any bit errors and reject the device if any bits fail to verify correctly.

This setting has no effect on Compare operations. Executing a Compare operation on an MLC NAND device will report all mismatched bits, regardless of the BERT setting.

  15. Select the Error Correcting Code (ECC) Scheme in the drop-down box provided, if available. The ECC scheme is to be used in conjunction with the Bad Block Management (BBM) Scheme to which it is specified.

    The Generate button can be used to generate ECCs on the currently loaded Data Pattern. The ECCs are processed as specified by the corresponding Bad Block Management (BBM) Scheme

Partitions may be edited or removed from any position in the list by first single clicking the partition row in the list, and then clicking either the Edit or Delete buttons respectively. The list can be reset to a single default partition by clicking the Default button. The default partition encompasses all blocks of the device, with an image size equivalent to the manufacturer's specified minimum guaranteed Good Block amount.

Note: When using multiple partitions, there may not be any gaps between partitions. It is not a requirement that a partition start at block zero, nor must any partition end at the last device block.

Back To Top

Supported Partition Table Files

Partition Table Files can be imported directly into BPWin via the NAND Flash Options dialog. BPWin supports the following Partition Table File formats:

CSV

This is a simple comma-separated values text file format with the following structure:

StartBlock, StopBlock, ImageBlocks

Where each value is a positive decimal number, and each partition is defined on a new-line in the file.

Example:

0, 15, 5

16, 63, 2

64, 111, 11

112, 159, 0

160, 163, 0

164, 1411, 789

Qualcomm® MBN

BPWin supports the import of Qualcomm® "PartitionTable.mbn" stand-alone partition table files according to Qualcomm® 80-VE594-1B specification. These files can be identified as having a fixed 256-byte length, and should not be confused with Qualcomm® 2.1 type files that combine the partition table, Data Pattern and metadata into a single monolithic file, which are not a supported Import type. Qualcomm® 2.1 files may however be loaded as a standalone Data Pattern File. See the "Qualcomm® 2.1" section below for more information.

Qualcomm® 2.1 Data Pattern Files

BPWin supports loading Qualcomm® 2.1 Data Pattern Files based on the Qualcomm® 80-VF498-1 A specification. BPWin will default initialize the NAND partition table based on the contents of the loaded Qualcomm® 2.1 Data Pattern File.

Back To Top


Enhanced Security

The Enhanced Device Security Options dialog can be utilized by certain devices to allow the specification of a large number of special security options. If the device supports this feature then it can be opened by selecting the Device | Enhanced Security... menu items. Like the "Device-Specific" section of the "Device Settings" dialog, the Enhanced Device Security Options dialog displays a variety of special security options available to specific devices.

Each row in the grid represents the security options for a block whose number is specified in the Block column.

To check/uncheck the boxes in an entire column, you can check/uncheck the box in the column's header.

The security password is a hex number whose length must exactly match that expected by the device. Leading zeros must be used as necessary to ensure that the total length of the password is correct. The password is written to the Data Pattern Buffer as a sequence of device words (from most- to least- significant device word) where each device word is written using the currently selected byte order. The password is written to a special location beyond the device address range that is mapped to the correct password location in the device.


Data Pattern

Open \ Load Data Pattern

Save Data Pattern

Save Data Pattern As...

Edit Data Pattern

Data Pattern Options

Clear Data Pattern

II. BPWin device programming - ch 7

Data Pattern \ buffer commands

File > Open Data Pattern... or Data Pattern | Open

The latter opens the Load File Into Buffer dialog. Used to locate and load a data pattern into the programmer's buffer. It works like most Windows programs for file loading.

Binary Files 1GB or Larger

BPWin has large data pattern support to enable loading of arbitrarily large binary data patterns. For all binary files >= 1GB, the data pattern is not copied into memory but instead referenced from its location on disk. Chunks of the data pattern are only copied into memory or a BPWin-managed swap file when the buffer is modified. JobMaster > JobMaster Configure...\Store Data Pattern in JobMaster File will be disabled.

File Information

Once a file has been selected the date, size and type of file will be displayed. The date is displayed according to the user's locale. Size is the file size as it exists on the drive which is reported by the operating system. The type is what BPWin has determined the file type to be when it was loaded.

Buffer Load Options

For added flexibility in selecting the file type and at what address should part or all of the file be loaded.

Load File As

    • Selection of the file type affects how the data in the file will be parsed and placed into the data pattern buffer when loading.

Low File Address

  • The address in the file to begin loading.

Auto Low File Address Checkbox

  • Automatically detects the low file address from the file.

Note: For Motorola files, the low file address is determined as the first address in the first block of data. If the file contains out of order addressing (low addresses appearing after high addresses) this feature should not be used.

High File Address

  • The address in the file to stop loading. Loading will stop at this address or the highest address in the file, whichever comes first.

Data Pattern Address

  • The address in the data pattern buffer to load the data into.

Default Buffer Value

    • 8-, 16-, and 32-bit values are supported.

    • Values are hexadecimal.

    • When the value is > 16-bit, there will be implicit leading zeroes.

Example: 123456 = 00123456

    • Leading zeros can be used to fill high bytes with zeros.

    • Multi-byte values are always put into the buffer in Little Endian fashion regardless of the Byte Order setting, if available.

File > Save Data Pattern or Data Pattern | Save

Save the data pattern. The Save File From Buffer dialog appears only through Data Pattern | Save.

Note on Saving Motorola S-Record files: The data contents of modern MCUs that only have code at the bottom and top of the address range can be read and saved efficiently to Motoloa S-record files without needing to save the entire data pattern. When reading an MCU, only data in address regions read by the algorithm is saved to the Data Pattern, while all other blank state regions will not be saved. This potentially greatly reduces the file size and improves load/save time for large devices. When the file is loaded, the Default Buffer Value (DBV) specified in BPWin at the time of file load will be used to default initialize the data pattern in all regions not explicitly loaded from the Motorola S-record file.

File > Save Data Pattern As... or Data Pattern | Save | Browse

Save the existing data pattern under another name. If using Data Pattern | Save | Browse, the data pattern will be formatted to the file type selected before being saved.

Back To Top

File > Edit Data Pattern... or Data Pattern | Edit

Edit the data pattern in the buffer. Edit allows the user to modify the buffer contents. The Buffer Editor dialog is structured to display the addresses on the left pane, the data at each address in the Hex pane, and if viewing as bytes, the ASCII pane on the right. The editor allows viewing and editing a buffer size up to 2GB (0x7FFFFFFF). If a data pattern was loaded from a file and the buffer has been edited, an asterisk (*) will appear next to the Data Pattern file name in BPWin Main.

  • Goto - go to a specific memory location within the buffer using Absolute or enter a positive or negative offset from the current caret position when using Relative.

  • Fill - enter a range of addresses with a certain value. Multi-byte data can be used for fill in accordance to the current buffer view. Highlighted text can be used to auto-fill the range fields.

  • Copy - copy a specific memory range to another location within the buffer. Highlighted text can be used to auto-fill the range fields.

  • Search - search for a data pattern within the buffer. The Search function allows the search to start from a particular address or search for a particular pattern of data (can be by multiple bytes or ASCII text). You can also specify whether the pattern you are searching for is in a Hex or ASCII string, whether the search goes forward or backward from the starting address, and whether the search method is inclusive or exclusive.

  • Invert - perform a one's complement of a specified address range. Highlighted text can be used to auto-fill the range fields.

  • Checksum - Computes a checksum on the selected Data Pattern range. Highlighted text can be used to auto-fill the range fields. For a description of the available checksum methods see Checksum Method.

  • Endian - Switches the endianness of the data at the selected range. Allows both 16-bit and 32-bit endian swaps.

  • View As -

    • Bytes - buffer data is displayed in the Hex and ASCII panes.

    • Device Words - view the buffer in terms of device addresses. The view will change depending on the device selected. Byte order is taken into account so you can see the data exactly as it wil be programmed into the device.

      • When viewing fuses (binary data), the fuse number is displayed in left pane. When editing, the buffer is limited in size to the device and does not allow editing beyond the end of the device size.

Note: 8-bit devices have the same view in bytes and device words.

  • Dec/Hex - display the addresses in Decimal or Hexadecimal. All addresses specified in the utility dialogs (Goto, Fill, Copy, Search and Invert) are in terms of the current buffer view.

Buffer editor manipulation:

  • <CTRL+HOME> jumps to address zero (0).

  • <CTRL+END> jumps to the very last address of the buffer contents.

  • <HOME> jumps to the beginning of the current line.

  • <END> jumps to the last address of the current line.

  • <PAGE UP/PAGE DOWN> navigates to the next/previous page.

  • Tabbing between Hex and ASCII panes preserves the address position of the cursor.

  • Typing past the end of a line wraps to the next line.

  • Use the scroll wheel on the mouse to scroll through the buffer contents.

  • Click-and-drag or use <SHIFT+Arrow key> to highlight data in the editor. Corresponding data panes will reflect the highlighted data.

  • <CTRL+C> copies selected text to the clipboard.

  • The yellow highlighted row indicates current cursor location.

File > Data Pattern Options... or Data Pattern

Displays information about the current data pattern along with checksum selections, default buffer value and decimal/hexadecimal options. The Checksum value is displayed as a hex value with an 'h' appended to the value in both the Data Pattern dialog and Data Pattern line, regardless of which display format is selected.

Note: For JEDEC and IEEE1532 files the Default Buffer Value option will be disabled and set to zero (0).

Current Buffer Contents Section

  • Date displays the creation date of the file.

  • Size displays the size of the data pattern buffer as it exists in programmer memory. For parseable file types, the size of the data content is usually smaller than the file size. Only binary files are going to have a 1:1 relationship between file and buffer size.

  • Type displays the file format type.

  • CSUM displays the current checksum as selected in the Checksum section.

Checksum Section

  • Method calculates the checksum as determined by the selection. Each time the method is changed BPWin will re-calculate the checksum.

    • 8-bit sum - The summation of the data 8-bits at a time into a 32-bit accumulator.

    • 16-bit sum - the summation of the data 16-bits at a time, arranged using the current Byte Order setting if applicable, into a 32-bit accumulator.

    • CRC-32 - The calculation is a 32-bit cyclic redundancy check (CRC) error detection code, which is a more robust checksum than simple summation calculations, but can take longer to compute on slower PCs.

  • The CRC-32 computation utilizes the polynomial 0x04C11DB7, initial remainder 0xFFFFFFFF, final XOR 0xFFFFFFFF, and bit reflection on the input data and remainder. The data bytes are fed in from lowest byte address to highest, in Little Endian fashion.

  • The CRC-32 checksum method is limited to computing the checksum of the data pattern buffer. It is not compatible with the device Sum command. To calculate the CRC-32 checksum on the content of a device, use the Read device command. This will transfer the data from the device to the BPWin data pattern buffer where the CRC-32 checksum can be calculated.

  • MD5-128 - The checksum calculation is a 128-bit cryptographic message-digest authentication code, which is a more robust checksum than simple summation calculations, but can take longer to compute on slower PCs.

  • Type calculates a data pattern, device or device-specific checksum.

  • Data Pattern - The checksum is calculated based on the size of the data pattern buffer. The checksum calculation will stop at the last address in the Buffer, even if that address is beyond the size of the Device.

  • Device - The checksum is calculated based on the size of the Device. The checksum calculation will stop at the last address of the Device, even if that address is beyond the size of the Buffer. The Default Buffer Value is used in the checksum calculation for addresses beyond the size of the buffer.

  • Device-Specific - Uses a checksum algorithm specific to the selected device. Only available on supported devices.

File > Clear Data Pattern or Data Pattern | Clear

Clear data from the buffer to the value specified as the default buffer value.

Back To Top


Data Pattern Decryption

To use this feature it must be enabled specifically for you (the customer) by BPM Microsystems. Please contact BPM Microsystems Technical Support if you would like this feature enabled for you.

BPWin can decrypt files and load the resulting plaintext as the Data Pattern to program onto the device. This feature can be used to minimize operator access to plaintext data pattern files. Currently, BPWin supports decryption using the following specific scheme:

The original plaintext data pattern file must be encrypted using the Brian Gladman implementation of the Advanced Encryption Standard 256-bit (AES-256), details of which can be found here: http://www.gladman.me.uk/AES. Specifically using the example application (aesxam.c) provided at that website. In BPWin the encrypted data pattern file's encryption key must be specified in binary in a separate file. This key file must itself be "wrapped" (encrypted) using the scheme specified by NIST Special Publication 800-38F and RFC 3394. BPWin requires a 256-bit "key wrapping key" in order to unwrap the key file. The key wrapping key is hard-coded in BPWin and is unique to each customer that has requested support for this feature by contacting BPM Microsystems technical support.

To produce everything required for BPWin to perform decryption of encrypted data pattern files, you will need the following:

  • The original plaintext data pattern file.

  • Any 256-bit encryption key of your choosing.

  • Executable logic (specifically the Brian Gladman implementation of AES-256) that takes the encryption key and the plaintext data pattern file as inputs in order to produce the first output of this process, which is the encrypted data pattern file.

  • A 256-bit key wrapping key.

  • Executable logic (specifically an implementation of NIST Special Publication 800-38F and RFC 3394) that accepts the encryption key and the key wrapping key as inputs in order to produce the second output of this process, which is the wrapped key file.

For BPWin to perform data pattern file decryption, the encrypted data pattern and key file are specified in the BPWin user interface. To produce the encryption key BPWin then uses the key unwrapping algorithm and the hard-coded key wrapping key to unwrap the key file in memory. The encryption key and the encrypted data pattern are then used in the decryption algorithm to load the decrypted data pattern.

To configure BPWin to decrypt and load encrypted data pattern files:

  1. Contact BPM Microsystems Technical Support to have support for decryption implemented specifically for you in a future version of BPWin. BPM Microsystems Technical Support will communicate with you regarding adding information to the system registry in order to enable BPWin to use your specific key wrapping key.

  2. In BPWin click the Data Pattern button. This will open the Data Pattern Information window.

  3. In the Data Pattern Information window click the "Open..." button. This will open the Load Data Pattern File window. If you followed step 1 correctly, the "Encryption..." button in the Load Data Pattern File window should be enabled.

  4. Click the "Encryption..." button. The Data Pattern File Decryption window should open.

  5. In the Data Pattern File Decryption window:

    1. Place a check in the Decryption box. This will enable decryption of data pattern files and allow you to specify decryption settings.

    2. If you will be using Complex Serialization during your job session and your ESP or ESS will be providing encrypted serialization data then click the Serialization box to place a check in it; this will cause BPWin to decrypt the serialization data using the same scheme (key and decryption algorithm) to decrypt data pattern files. If you will not be performing serialization or the serialization data is not encrypted then leave it unchecked.

    3. Specify the number of sanitation passes you would like BPWin to perform on system memory that has stored any sensitive data, such as unwrapped keys or decrypted pattern data. The sanitation method used is to first overwrite all bytes with a random value, then all bits with 1, then finally all bits again with 0. The number of times that process is performed can be specified by you in this field.

    4. Under the Key File section, specify a path to the wrapped key file in the Path field. You may browse for the file by clicking the button with the ellipses ("...") that is activated in the field when the field is clicked.

    5. A SHA hash of the decrypted key is displayed in the Hash field. The SHA type (SHA224, SHA256, SHA384, and SHA512) can be selected by choosing one from the Hash Type field.

    6. Click OK to commit the settings to BPWin and close the dialog.

  6. In the Load Data Pattern file window, follow the normal procedure for loading your data pattern. Note that when data pattern encryption is being used "Low File Address" currently has the value 0 and cannot be changed.

  7. Once you have completed specifying the file and settings in the Load Data Pattern File window you will return to the Data Pattern Information window. All normal functionality in this window is the same as for when decryption is not in use except for certain elements that would cause either all or partial information about the decrypted data pattern to become available. Those unavailable elements are:

    • Edit

    • Save

    • All checksum methods except for the SHA variants (SHA224, SHA256, SHA384, and SHA512).

    • Checksum type "Device"

  8. Once you have completed specifying settings in the Data Pattern Information window you will return to the main BPWin window. Like the Data Pattern Information window all normal functionality in this window is the same as when decryption is not in use except for certain elements that would cause either all or partial information about the decrypted data pattern to become available. Those unavailable elements are:

    • The Data Pattern button.

    • Under the File menu, all items except Configure, Data Pattern Decryption..., and Exit.

    • For programmer operations Read and Compare cannot be performed.

    • In the JobMaster Configuration window (accessible through the JobMaster/Configure... menu item) "Store Data Pattern in JobMaster File" is unavailable.

BPWin will function the same as when decryption is not in use except in certain ways:

  • The only method to disable data pattern decryption is to either perform a "Set Default Configuration" (from the Tools menu) or to restart BPWin.

  • At the end of any job session "Set Default Configuration" and, on supported programmer models, "Erase Programmer Memory" is automatically performed.

  • Decryption settings are stored in JobMaster files (.bp files). Such files store the wrapped contents of the key file and only the path to the encrypted data pattern (but not the content).


Device Command Tabs

Blank Check

Clear Buffer First

Compare

Continuity

Decrypt

Encrypt

Erase

ID

Program

Read

Secure

Special Operations

Sum

Test

Verify

II. BPWin device programming - ch 8

Device Command Tabs

Depending on the device selected, one or more device command tabs may appear in the bottom of the viewing screen. Each device command can have one or more operations performed for that command.

Select the device operation, by opening the combo list box and check the checkbox for that operation to be performed. Operation check boxes that appear in a file tab may be grayed out, depending on the device selected. These operations are mandatory for the particular device selected, thus, cannot be de-selected.

Note: Depending on applicability, each tab may include any or all of the following operations pertaining to each command.

Blank Check

Blank Check - Verifies that the device is in its virgin state before performing the selected command (Erase, Program, etc.).

Illegal Bit - A special form of Blank Check. If all non-virgin bits (fuses) of the device are used in the data pattern, the device is usable as though it were blank. This command only applies to PLDs. On Concurrent Programmers this only works if all devices have the same non-blank pattern.

Note: "Blank Check" and "Illegal Bit" are mutually exclusive options.

Clear Buffer First

Clears the buffer before loading the newly selected data.

Compare

Compares the data in the device against the data in the software's Data Pattern. Produces a list of discrepancies but cannot be used in concurrent operations.

Continuity

Continuity - Verifies that all device pins are in electrical contact with the socket and that the device orientation is correct before performing the selected command (Erase, Program, etc.).

Auto Continuity - Automatically starts the selected command (Erase, Program, etc.) when the presence of a device is detected in the socket. The part will still be subject to a continuity test and could fail continuity if some, but not all, pins are in electrical contact with the socket.

  • 7th Generation Series Programmer in Gang Mode

All sockets (2 for FX2 or 4 for FX4) must pass continuity for the operation to run.

  • 2800F or later Programmer

Device operation will begin once all of the sockets currently on the site pass continuity. So if only 1 or 2 sockets are plugged in, only those sockets must pass continuity for the operation to begin. Note that when using multiple sites simultaneously, each site will start the operation once all of the present sockets have passed continuity.

  • Autohandler systems (includes 3000/4000 Series)

If this setting is selected, this setting will behave the same as "Continuity". Operations start when the autohandler signals that a part has been placed in the socket, regardless of the programmer type installed.

Decrypt

Uses the supplied data in the Encryptbuf to decrypt the encrypted data being read out of the device.

Encrypt

Programs the device encryption array with the supplied data from the Encryptbuf.

Erase

Erases the device as a stand-alone operation or as part of a Program command.

ID

ID Check - Verifies the Electronic ID of the device before performing the selected command (Erase, Program, etc.). A warning message will appear if there is a mismatch along with some options.

ID Auto Selection - Automatically select a device with ID of the device present in the socket. The auto-selected device (if any) will have the same pin-count and memory-size as the current selection. Auto Selection is not allowed in the Operator mode. If this option is selected, BPWin will abort the job. The Operator must contact their Supervisor to use this function.

Back To Top

Program

Programs the data from the buffer into the device.

Read

Reads the data from the device. To see what was read, open the buffer editor dialog. This is a quantity-of-one operation regardless of the number in the Quantity field.

To Read a Data Pattern From a Device

    1. Place the chip to copy from, in the socket and verify the correct part number (for the device).

    2. Select the Read tab, select any additional Read options and click on the Read button to load the buffer with the data.

    3. If a Job Summary Report appears, click on the OK button to return to the BPWin Main screen. The Data Pattern field reflects the buffer contents.

To display the data loaded into the buffer, select File > Edit Data Pattern... from the pull-down menu. To save the data if any changes are made to the file, select File > Save Data Pattern... from the pull-down menu.

Secure

Renders a programmed device unreadable and, thus, unverifiable. Meaningless for memories and generally only found for PLDs and Microcontrollers. Secure occurs after Verify (if any) and before Test (if any).

Note: Many devices provide various kind and levels of security. The Secure option may provide various device-dependent sub-choices. These are documented in the Device Info of the selected device.

Special Operations

Device operations that cannot be performed under the other command tabs will be available under this tab.

Note: A job made with BPWin version 4.68 and lower, using a special operation under the Program command tab will need to be loaded and saved with the operation checked under this tab.

Sum

Computes a Checksum of the data in the device. Sum cannot be used in concurrent operations.

Test

Test - Perform vector tests on the programmed device. Vector tests are provided by the file loaded into the Data Pattern. Only the JEDEC file type provides Test Vectors, and only optionally.

Test Once - Performs Test at the high-end of the device's specified Vcc range.

Test Twice - Performs Test at both the low-end and the high-end of the device's specified Vcc range.

Note: These options are mutually exclusive. A specific device will provide either "Test" or both "Test Once" and "Test Twice" but never all three.

Verify

Verify - Verifies the data in the device against the data in the software's Data Pattern. Only produces a pass/fail result and can be used in concurrent operations.

Verify Once - Performs Verify (see above) at the high-end of the device's specified Vcc range.

Verify Twice - Performs Verify at both the low-end and the high-end of the device's specified Vcc range.

Note: These options are all mutually exclusive. A specific device will provide either "Verify" or both "Verify Once" and "Verify Twice" but never all three.

Back To Top


Tools Menu

Programmer Diagnostics

Output Window

Set Default Configuration

Options

Socket Module Counter

Serialization

Power Supply

Flash BIOS

Site Number Assignment

II. BPWin device programming - ch 9

tools

Tools > Programmer Diagnostics

Opens the Self Test Configuration dialog and is used to perform a routine self test diagnostics to ensure the programmer and software are communicating and functioning properly. The BPWin software enables the user to test all applicable parts within the device programmer for accuracy. This test helps to ensure that the programmer is running at top performance standards. Detailed programmer information is displayed at the beginning of the test in the Output window. See hardware self test for step-by-step instructions on running the test.

  • Loop Mode

    • Single - perform one cycle of self test on the selected sites.

    • Continuous - indicates the diagnostics test runs continuously on the selected sites until the user stops the test.

  • Run Memory Test - check to include a test of the programmer site memory as part of the diagnostics. This can significantly increase the length of time required to run the diagnostics.

Tools > Output Window

Opens a re-sizable Output window that displays a status report on all operations performed.

Tools > Set Default Configuration

Reset all the settings to the default configuration, clears device selection and buffer contents.

This option cannot be selected when in JobMaster/Operator Mode.

Tools > Options...

Opens the User Options dialog and is used to set global options.

General

  • Require Matched Device and Socket Pin Count - Select to restrict the use of Socket Modules to those that match the device pin count exactly, even when the installed Socket Module is compatible with the device. This message feature is typically used when using a BP-3000/4000 autohandler to avoid continuity failures caused by devices shifting in a larger socket. This feature does not apply to DIP packages.

  • Digit Grouping - Select to display numbers in BPWin's dialog value fields using the PC's current regional settings. Data can be entered in these value fields with or without digit grouping delimiters regardless of this setting in this dialog. Hex values will have a space every 16-bits if this option is enabled.

  • Update Quantity After Aborted Session - When checked and a job has been aborted, BPWin will pop-up a message allowing the user to change the job quantity to the number of remaining devices.

  • Prompt for Device Quantity at Start of Job Session - When checked the user will be prompted to enter a device quantity at the beginning of the Job Session.

  • Use Real Time Job Summary - When checked, after every device operation, BPWin will create a Job Summary report as though the job session ended with that device operation. That report will exist as a single .html file located in a subfolder named "RealTimeJobSummary" in the home directory (usually "C:\BP").

  • Job Logs Path - The path to the folder in which the job logs will be created. Any directory specified here must already exist and have its file system permissions set so that the "Everyone" security principal group has the "Full Control" permission allowed.

  • Perform Legacy Logging - Whether to also continue to log events using the deprecated "Legacy" logging scheme.

Device Operation

  • Alert at End of Each Operation - Select to enable an audible alert at the end of each device operation when using manual programmers.

  • Concurrent Mode Memory Integrity Check - Select to check the integrity of the data memory on each site verified after broadcasting and prior to the device operations. This feature is incompatible with Serialization.

Note: Use of this feature will slow down device operations.

  • Elapsed Time - Select to have the elapsed time for device operations calculated and displayed.

Note: The total time will appear in the Output window and History field for each device after programming.

  • Erase Programmer Memory at End of Job Session - Check this box to erase the entire programmer memory contents on all attached programmers after each Job Session. This option is disabled on programmer models that utilize volatile memory since volatile memory will be erased upon powering down the programmer site.

    • Verify Programmer Memory Erased - Check this box to verify that the entire programmer memory contents has been erased on all attached programmers. This option is disabled when the "Erase Programmer Memory at End of Job Session" feature is not in use.

A progress bar will be displayed during the Erase Programmer Memory operation for each attached programmer site. This operation can also be performed as a standalone command (apart from a Job Session) by using the "Erase Programmer Memory..." menu option in the Tools menu.

  • Run Diagnostics Before Every Job - Check this box to enable running "Programmer Diagnostics" before every job session. If the diagnostic tests finds an issue with the programmer, BPWin does not proceed to run the job session.

Back To Top

Tools > Socket Module Counter...

Keeps track of the number of operations performed using a particular module and, if applicable, daughter card. You can view the number of operations on the screen by selecting a site number in the Socket Module Insertion Counter dialog. The software tracks the number of operations performed by the socket. Any normal operation will turn the counter and a combination operation only counts as one. These values are logged on the Job Summary Report in the Socket Module Insertion Counters section.

Example: A Read or a Compare count as one operation, and Erase/Program/Verify counts as one operation. Each verification counts as one operation. This information is also viewable in the Job Summary Report.

There is also a separate “trip counter” that can be reset by the user. This is used when replacement sockets are installed. Resetting the trip counter is only available in Supervisor Mode.

Additionally for programmers that utilize a built-in socket interposer board (2800F or later) to interface with socket cards, two additional pieces of information are displayed:

  1. The number of total socket insertions experienced by each socket connector on the interposer board is shown in the "Connector Insertions" section under the "Socket Module Base" section. This indicates the level wear on each of the connectors. Once the connectors on the interposer board have worn out, the interposer board needs to be replaced.

  2. The number of times each socket card has been plugged into an interposer board is also visible in "Socket Insertions into Base" under the appropriate socket of the "Socket Cards" section. This indicates the level of wear on the socket card connectors.

Socket Card Maintenance Interval - This feature allows users to write to each socket card (via the socket module counter dialog) a maintenance interval which is compared to the trip odometer for that socket when running a job. If the trip odometer is equal to or exceeds the maintenance interval, the user is warned prior to running subsequent jobs and in operator mode the job is halted. A maintenance interval of 0 for a socket disables the feature for that socket.

This field is only writeable when the user has the JM permissions set. The user modifies the maintenance interval by changing the value of the edit box and clicking the "Write" button. If the user modifies the field but does not click the "Write" button he is warned before continuing and is given an opportunity to write the interval to the socket EEPROM.

When running a job with sockets that require maintenance, if the JM permission is granted then a warning is displayed and logged, and the user is given the option to continue with the job or not. If the user is not granted the JM permission then a message is displayed and logged and the job is aborted.

There are two main ways that the user can use this new feature once the trip odometer has exceeded the maintenance interval for a socket.

  1. After maintenance is performed, the user can reset the trip odometer. This will result in the user being prompted once the maintenance interval has been reached again in the future.

  2. Instead of resetting the odometer, the user can change the maintenance interval to a larger value. This allows the user to modify the maintenance interval length (for instance to reduce the number of insertions required before being prompted again). A user might want to do this because as the socket ages, it might wear out sooner.

Example of Technique 1:

  1. The maintenance interval for a socket is set for 5000 insertions and the trip odometer on the socket is reset.

  2. After the socket is used 5000 times, the user is warned that the socket needs maintenance.

  3. The user performs the maintenance and resets the trip odometer (leaving the maintenance interval unchanged).

  4. This will allow the socket another 5000 insertions before giving a maintenance notification again.

Example of Technique 2:

  1. The maintenance interval for a socket is set for 5000 insertions and the trip odometer on the socket is reset.

  2. After the socket is used 5000 times, the user is warned that the socket needs maintenance.

  3. The user performs the maintenance and increases the maintenance interval from 5000 to 9000 while leaving the trip odometer untouched.

  4. This will allow the socket another 4000 insertions before giving a maintenance notification again.

Back To Top

Tools > Serialization...

Opens the Serialization dialog for selecting a serialization type. While the Data Pattern writes the same information to multiple devices, serialization can write additional data that is unique to each device during a job session. When None (the default) is selected, BPWin will disable serialization completely and no additional information is required.

The Serialization feature supports:

  • Simple Serialization - Utilizes an internal serialization program to provide a linear sequence of numbers incremented by one.

  • Complex Serialization - Allows the most flexibility in serializing devices. It is available for users who want to generate unique device data by creating their own algorithm.

Tools > Power Supply...

Opens the Power Supply Status window to use for diagnostic purposes. The power supply voltages are shown for the master site in real-time. To change the master site, select the desired Master Site number in the Configure dialog. Power Supply values can be automatically recorded in a log file. See the Auto Save Power Supply Log File section in the Configure dialog.

  • An asterisk (*) next to any power supply value, indicates a supply that is out of range. We recommend that you perform Programmer Diagnostics on any site that is out of range.

Tools > Flash BIOS...

Updates the Flash ROM on programmer sites with a Firmware/BIOS binary image file.

Note: This command should only be performed under the direction of Technical Support since it reprograms the programmer's site ROM. If an update is required, be sure not to interrupt the update process.

Tools > Site Number Assignment...

Opens the Site Number Assignment dialog. The Site Number Assignment feature, available in Supervisor mode, allows you to visually identify a site's number (address) and the correlating programmer serial number when using multiple USB programmers. Each site must have its own unique positive integer site number. Site numbers can be reassigned to resolve site conflicts or to suit your particular practices.

It is important to note that a site's number assignment is stored in the site itself. Therefore, if the programmer is moved to another system, it will continue to retain its site numbering assignment(s).

To change a site's number, click a number or press <F2>. When you click a number, its site's LEDs will begin blinking. After you have reassigned the numbers, click OK to close the dialog and return to the main window.

Site Address Conflicts

If two or more USB sites have the same site address (number), you will be prompted to resolve the issue. BPWin must be in Supervisor mode to make any site number changes.

Note: This feature is available on USB programmers only.

Tools > Erase Programmer Memory...

Note that this menu option will only be available when at least one programmer that utilizes non-volatile memory is powered on and attached to the PC. This operation will perform both the erase and verification steps regardless of the settings specified in the "User Options" dialog.

Tools > Status Box Colors...

Opens the Status Box Colors dialog to change the pocket colors that appear on the both the Autohandler View and the Programmer View. The operator can choose to change the default colors to more easily distinguish between different kinds of programmer errors or to whatever colors best fit their processes.

Note: This dialog is not available in operator mode. In supervisor mode, the dialog can always be opened, but the colors can only be changed if the logged-in Windows account has write access to the registry settings that control the colors. These are located in:

HKEY_LOCAL_MACHINE\Software\BP Microsystems\BPWin\Gui\StatusBoxColors

Tools > Label Printing...

See Label Printing.

Tools > Log Visualization...

See Log Visualization.


Hardware Self Test

II. BPWin device programming - ch 9

hardware Self Test/Programmer Diagnostics

The BPWin software enables the user to test all applicable parts within the device programmer for accuracy. This test helps to ensure that the programmer is running at top performance standards.

  • The socket(s) for the site under test must be empty before performing this test.

  • On BP-2800F or later programmers, the portion of the test named "Analog Driver Current" will be skipped unless the included diagnostic card is first inserted in the programmer.

  1. Select Tools > Programmer Diagnostics from the pull-down menu or Device > Select Device > BP Microsystems Diagnostics and click on the Execute button in the Special Operations tab to begin running the self-test on the device programmer. The Self Test Configuration dialog appears dialog appears on the screen.

  2. Highlight the sites to test and select the options, i.e. Loop Mode, Number Format or Run Memory Test. Click the OK button to start the test. A dialog appears on the screen prompting you to verify that there is no chip in the socket and whether or not you would like to verify calibration with a voltmeter.

  2. Click on OK to start the diagnostics testing. The site under test will display a yellow Active LED.

  3. When prompted, click on the Yes button to perform the calibration with a voltmeter. Otherwise, click on the No button to run the self test without calibration.

  4. The test will continue until it is completed or until interrupted via the Stop button.

  5. The Output window will display the progress of the test.

When the self test is complete, the Pass or Fail LED next to the site is lit. A green Pass LED indicates all tests for the site passed. A red Fail LED indicates one or more tests failed for the site. The output window will show the sites tested, what tests were performed and what individual tests passed or failed. If an error code is shown, please see Error Codes for more information.


Label Printing

BPWin can generate printed labels and programmed RFID tags using dynamic data from the current job session. All label printers that support a text-based command language are supported. This includes virtually all commercial and industrial major-brand label printers from suppliers such as Zebra, Wasp, Datamax, and many more. All barcode types are supported, limited only by the capabilities of the printer that you choose. BPWin will print the label using real-time values from the job session for text fields and barcode encoding. For label printers that also support RFID tag programming, BPWin can generate the content for the tag in tandem with any printed label.

Because BPWin interfaces with the printer using the Windows print driver and a text-based command language, you don't have to hassle over your particular printer model being supported. In fact, any printer that supports this style of interface is ready to plug-and-play with BPWin. Examples of text-based command languages are: EPL, ZPL, ZPL2, WPL, or any other supplier's proprietary format, so long as it is a text-based command language sent directly to the printer. What this means is that the label content sent to the printer is comprised of command codes that are interpreted by the printer itself to generate the text, barcodes, RFID, etc. This is opposed to sending graphical data directly to the printer, such is the case with conventional document printing. This scheme allows the printer to create complex content like barcodes on-the-fly, without BPWin having to natively support any particular barcode format.

You may design your own labels from scratch or immediately use BPWin's built-in default label. You are free to use any label design software. Generally, free WYSIWYG design software will be provided with the label printer. There are also commercial products that will work too. Alternatively, if you are adept at any of the printer's command languages (eg ZPL2), you can code your own label simply with a text-editor. The text that comprises the commands to send to the printer can be generated by the label design software in the form of a text file. In BPWin, these files are referred to as "Printer Command Files".

BPWin presently supports printing a label at the end of the job session and when it has detected that a destination media needs to be reloaded. For the label at the end of a job, this will occur at the same point in time as when the job summary report is displayed. For the end of media label, this will occur at the same point in time as when BPWin prompts you to reload the media. All of the important aspects of the job setup are available as dynamic content to the label. This includes items such as device quantity, job master file name, job ID, device part number, data pattern information, system information, and much more.

The default label provided in BPWin is a 3"x4" label in ZPL format, optimized for the Zebra GK420d direct-thermal label printer. Any label printer configured to accept ZPL commands will work with the default. You may have to adjust speed and darkness to produce the best quality label with your particular printer and label stock. This label contains important job session information, and incorporates the use of Code128 linear barcodes and the DataMatrix 2-D barcode. Here is what the label looks like, with some example job session content:

How to Design Labels

Designing a label entails using a separate graphical application to specify the information you wish to convey, layout, and formatting of a label. No special skill is required to design labels; usually there is more than adequate help documentation that is included with label design software that only takes a few minutes to read, comprehend, and get you up and running. Here we will assume that you have familiarized yourself with your label design software and are capable of creating a label with it that can be used with your label printer.

Printer Command Files

You should find that your label design software can print your designed labels. Usually, invoking these commands provide options to "Print to file" instead of actually printing a label. When exercising this option, the software will prompt you for a location to save the file. It is this file that is used as the "Printer Command File" in BPWin, since it is comprised of the text commands to send to the printer to print your label.

Specifying BPWin-provided Dynamic Content

The aspects of a job setup that you wish to be included in a label are specified by placing one of several special strings of characters at the location in the label where you would like the content to appear. These strings of characters are referred to here as "tags". What follows is the current list of tags, and the description of the content that BPWin replaces the tag with when it prints your label:

Tag | Description
{BpmJobQty} | What was entered in the quantity text box, no commas.
{BpmDevicesPassed} | How many devices were passed then placed into the output, not just passed by the programmer.
{BpmJobName} | The root name of the JobMaster file. (eg "Job123")
{BpmJobFilename} | The JobMaster filename plus extension. (eg "Job123.bp").
{BpmJobFilepath} | The full path and full filename of the the JobMaster file. (eg "\\CustomerJobs\MyCustomer\Job123.bp")
{BpmJobId} | The operator supplied JobId.
{BpmModel} | Programmer site model. (eg "BP-2710").
{BpmSwVer} | The BPWin version (eg "5.10.0"). Includes a designator for betas ("Beta").
{BpmDeviceName} | The device name excluding the manufacturer
{BpmDeviceManuf} | The manufacturer of the device
{BpmDataFilepath} | The name of the buffer as it appears in the main BPWin window
{BpmDataFilename} | The full path of the data pattern file
{BpmDataTimestamp} | The data pattern file timestamp in IS08601 UTC format ("Zulu Time"). (eg "YYYY-MM-DD hh:mm:ssZ"). This is the time without any timezone shifts, and the 'Z' at the end designates this.
{BpmDataChecksum} | The same data pattern checksum that is displayed in the job summary
{BpmSystemName} | The Windows machine name for the host system.
{BpmUserName} | The Windows user account name used to access the system.
{BpmJobEndDate} | The date in ISO8601 format (eg "2010-03-08") when the job session completed.
{BpmJobEndTime} | The job time in ISO8601 format with timezone (eg "hh:mm:ss [+/-]hhmm") when the job session completed.
{BpmSite[SiteNumber]Serials} | The serial numbers of all sockets on the specified site.

In addition to the "end of job" tags above, "end of media" labels support the tags described in the table below. Note that specifying any of these in an "end of job" label will result in an error.

Tag | Description
{BpmMediaDeviceResults} | Device operation result statistics for all devices in the filled media. For example: Not Blank: 5 Continuity: 7 Verify: 3 This would mean that 5 devices failed the "Blank Check" portion of their operation, 7 failed the "Continuity" portion, and 3 failed "Verify". Note that for most media populated by being specified in the "Destination" field of the autohandler workflow dialog, this table will merely consist of a single "Passed" statistic whose number matches the number of devices in the media. An example such as the one above would most likely be found in a label that was printed for the reject media.
{BpmMediaNumActualDevices} | The total number of devices in the media.
{BpmMediaMaxNumDevices} | The media's capacity. This value can currently only be provided for trays, otherwise BPWin will replace this tag with "N/A".
{BpmMediaName} | The name of the destination as specified in the "Destination" field in the autohandler workflow settings window.
{BpmMediaTimeOfFirstDevice} | The date/time that the first device was placed into the media.
{BpmMediaTimeOfLastDevice} | The date/time that the last device was placed into the media.
{BpmMediaNumBlankDevices} | The number of devices in the media that never had a device operation attempted to be performed.

Formatted Tags

You can also specify the format of the information that BPWin replaces the tag with. This is done by placing a "format specifier" in the tag. The format specifier should:

  • appear immediately before the ending curly brace ('}') of the tag

  • be enclosed inside of square brackets ('[' and ']')

For example, a format specifier used with the {BpmDevicesPassed} tag would look like this, with xxx representing the format specifier:

{BpmDevicesPassed[xxx]}

The format specifier itself is the same as the commonly-used "printf" format specifiers used in many of the most popular programming languages. These types of format specifiers allow for many options. A description of these format specifiers is readily found using a web search. For example:

http://pubs.opengroup.org/onlinepubs/9699919799/functions/printf.html

What follows is a simple explanation that will allow you to specify some basic formats.

All format specifiers begin with a percent sign ('%'). This merely marks the beginning of the format specifier. The actual format is specified following the percent sign. The formats that can be specified depend on the type of information that will be replaced by the tag. There are two types of information: textual and numeric. The following is a list of tags that fall under the numeric category:

{BpmJobQty}

{BpmDevicesPassed}

{BpmDataChecksum}

{BpmMediaNumActualDevices}

{BpmMediaMaxNumDevices}

{BpmMediaNumBlankDevices}

All other tags not in the above list are textual tags.

With numeric tags you can specify that you want the information to be displayed as a decimal number by specifying the letter d as the format specifier. For example, to specify the job quantity as decimal, this is what the tag should look like in the label:

{BpmJobQty[%d]}

Using either {BpmJobQty} or {BpmJobQty[%d]} will not cause the information to be displayed any differently because a standard decimal representation of the job quantity is what BPWin replaces {BpmJobQty} with by default. However, you can specify that you want the quantity to be displayed in hexadecimal by specifying an x for the format specifier:

{BpmJobQty[%x]}

In this case, if "161" was typed in the quantity field, then the above tag would cause "a1" (which is the hexadecimal representation of the decimal number 161) to be printed in the label.

You can also specify "fill" characters. For example, if you need to specify that a decimal number should take up at least 5 characters, with any unnecessary characters replaced with leading zeros, then the format specifier would be formulated like this:

  • As with all format specifiers, it would begin with a percent symbol ('%'), followed by

  • the "fill" character. In this case, it would be a 0. And that would be followed by

  • a number that represents the minimum number of characters. In this case, it would be a 5. And that would be followed by

  • the letter d.

In this situation, the job quantity would be specified like this:

{BpmJobQty[%05d]}

If the quantity was set to 161, then BPWin would replace that job quantity tag in the label with this:

00161

Custom Tags

Custom tags can be used to place operator-specified information in a label. These may be items that either BPWin currently doesn't or is unable to provide with its current set of tags. BPWin will scan the label for the presence of custom tag specifiers and then display them in the Label Printing dialog, allowing the operator to specify a replacement for each custom tag to use when the label is printed. Custom tags have the following format:

{BpmCustomxxxx}

Where xxxx is a unique string that identifies the tag to the operator, identifies it in the printer command file itself, and in the Label Printing dialog.

For example, if you would like the operator to specify a possible "Software version of the Data Pattern" and a job "Index Number", then a label can be created that looks like this:

When the resulting printer command file is specified in the Label Printing dialog, the operator will then be able to specify a replacement for each of those tags:

Notice that in the "Print Label at End of Job Session" section the printer command file for the above label (here named "ChmExample.prn") is specified. When that file was specified BPWin scanned the label and found the two custom tags. As a result, a sub-section appeared named "Custom Tags", under which fields for "DataPatternSoftwareVersion" and "IndexNumber" appear. If, as an example, the values "v41.50" and "011" were specified for them respectively...:

...then the resulting label printed would look like this:

Configuring BPWin to Print Labels

The label printing feature can be configured in BPWin by selecting menu items Tools/Label Printing..., which opens the "Label Printing" window:

To use this window to configure label printing:

  1. To print labels at the end of a job session, click the "Enable" box in the "Print label at end of job session" section to place a check in it. To print labels when BPWin has detected that an output media needs to be reloaded, place a check in the "Enable" box in the "Print label at end of output media" section.

    The following instructions can be applied to both end of job label printing and end of media label printing.

  2. Select a printer by clicking on the combo box labeled "Printer" to view the list of printers on your system. From the list presented, click the name of the printer you would like BPWin to use to print labels. Clicking on the printer name will make that printer the printer selected in the combo box.

  3. At this point you can choose to exercise one of these two options:

  1. Click on "Command File" and then the button labeled "..." to browse for a printer command file that you have previously created. Doing so will place the path to the selected file in the "Command File" field.
    or

  2. Click the "Use Default File" button to specify that you would like BPWin to use the default label distributed with BPWin. This will place the text "<Default>" in the Command File field.

  4. If you would like to see what the label will look like when one is printed at the end of a job session, click the "Test" button. BPWin will make a temporary copy of the contents of the printer command file in PC RAM, replace all tags in those contents with a version of the content that reflects the current configuration of BPWin, and print a label by sending those contents to the printer.

  5. When you're done configuring label printing, click OK to close the Label Printing window. The settings are stored in the system registry and will be restored the next time you open BPWin.

Example Procedure

The following procedure uses all of the information provided above to create and use a label in BPWin that includes:

  • Number of passed devices.

  • Programmer site model.

  • Device name.

  • Data pattern checksum.

  1. Using label designing software, such as the one that was most likely included with your printer, first design a label that is composed of only individual field names that are descriptive of each of the items listed above. Here is what an example of this would look like using Zebra Technologies Corporation ZebraDesigner Label Design Application:

    You should find that you can apply the basic concepts described in this procedure for the ZebraDesigner software to any other label design application.

  2. Specify where you would like BPWin to place its dynamic content by placing the appropriate tags in those locations:

  3. To demonstrate the use of bar codes, we will also configure the label to place a DataMatrix bar code to also contain the number of passed devices right next to the human-readable "Devices passed:" field in the label. When such a bar code is inserted into a label using ZebraDesigner, this is what its configuration screen looks like, notice that we've typed {BpmDevicesPassed} for its content, the effect will be that BPWin will replace that tag in the printer command file with the number of devices passed, ultimately resulting in a bar code that represents the number of devices passed in the job session:

    This is what the label now looks like in ZebraDesigner with the inserted bar code:

  4. Print the label, but make sure to use the "Print to File" option. In ZebraDesigner, this is what that entails:

    1. Choose File/Print... from the menu.

      As a result ZebraDesigner presents a "Print" window that includes a "Print to file" checkbox:

    2. Make sure to place a check in the "Print to file" box and then click the "Print" button. This will close the "Print" window and you will be presented with a "Print to file" window that will allow you to specify the file to save as a "Print file (*.prn)" file type:

    3. Specify a file name and location. Make a note of the location because you will need it later in the procedure. When you're ready, click the "Save" button. The "Print to file" window will close and the file will be saved in the location you specified. This file is referred to in BPWin and in this help documentation as the "printer command file". For this example we created a new folder in "My Documents" named "Label Printing" and specified the file name "Example.prn".

  5. Configure BPWin to print labels at the end of the job session using the file saved in step 4c above by following this procedure:

    1. Configure BPWin to run a job session. For this example, we selected device Micro MT29F64G08TAAWPET:A and loaded a data pattern named DGF-24-DIG-00387-00.bin.

    2. In BPWin, choose menu items Tools/Label Printing.... The "Label Printing" window will open:

    3. Place a check in the "Print label at end of job session" box. You will now be able to select a label printer and specify the printer command file that we saved in step 4c above.

    4. Select your label printer in the "Printer" field. In this example we use "Zebra GK420d":

    5. Click the button labeled "..." to specify the printer command file you saved in step 4c above. Doing so presents an "Open" window that will allow you to browse for the file. For this example we selected the file we saved in step 4c above by navigating to folder "Label Printing" under "My Documents" and selecting the file named "Example.prn".

    6. Click the "Open" button in the "Open" window. This will close the "Open" window and bring you back to the "Label Printing" window where you can see that the file you selected has been specified as the "Printer Command File". For our example, this is what that looks like:

      At this point you can print a test label by clicking the "Test" button. For our example, this is what our test label looks like:

    7. Click "OK" in the "Label Printing" window. The "Label Printing" window will close. BPWin is now configured to print labels at the end of the job session. For this example a job session with 4 devices was run, at the end of which BPWin printed this label:

JobMaster Support

The only aspects of the label printing configuration that are saved to/loaded from JobMaster files are the printer command file path and the values of the custom tags.

To ensure that the printer command file is valid, a SHA256 value of the file's contents is also saved. Then when the JobMaster file is loaded the value is calculated again and compared to the value stored in the JobMaster file. If the values don't match an error message is displayed and loading of the JobMaster file is aborted.

The name of the label printer to use for the job session is omitted from the JobMaster file. Therefore for all JobMaster files that have label printing specified as being enabled a label printer must already be specified before the JobMaster file is loaded. If a label printer is not already specified then BPWin will instead use whatever is specified in the "Default JobMaster Printers" field. If no printer is specified in either field then an error message is displayed and JobMaster file loading is aborted.


Log Visualization

Log Visualization is a Black Box Log analysis tool that is accessible via the BPWin Tools menu that can be used to graphically view the contents of a HTML Black Box log file created with BPWin versions 5.10 and greater. With this tool a user can identify important system events, errors, and other metrics that are embedded in the log file without needing to open the actual log file to perform manual text searches. Since log files can be quite large, manual searches are time consuming and often do not pin point the root cause of an error. Log Visualization allows graphing multiple metrics simultaneously and overlaying events from the log file onto the graph to help determine what set of circumstances contributed to an error or other performance metric.

When the Log Visualization Dialog opens, the current Black Box log is loaded by default, and the "Open Logs..." button can be used to open other log files from disk. Multiple log files may be opened simultaneously by selecting more than one log file in the "Open Logs" dialog.

The Log Visualization Dialog consists of 4 main areas.

  • Visualization Graph - Displays chartable data along with important events and errors extracted from the log file. This chart can be zoomed in and out by:

    1. Holding CTRL on the keyboard and using the mouse wheel

    2. Holding CTRL on the keyboard, clicking and holding the left mouse button and moving the mouse up and down over the chart.

The scroll bar at the bottom of the graph is used to scroll the visible graph area left and right. Left-clicking and dragging the mouse left and right can also be used to scroll the graph. As the graph scrolls, the Y-axis is automatically normalized to fit the data to the extents of the graph. As the mouse is moved over the graph, the closest data point to the mouse on each data series is highlighted and its value is displayed at the top of the graph along with the names of the data series.

Log events appear overlaid on the graph as flags. White flags indicate normal system events, whereas red flags indicate an error event. Each flag has a letter designation that specifies its order in the current view. The first event in view is always 'A', the second is 'B' etc. As the graph is scrolled the events in view change and so do the letter designations. These letter designations are also displayed next to the corresponding event entry in the Event List. Clicking an event in the graph will select it in the Event List. A maximum of 26 events can be viewed on the graph at the same time. All remaining events are invisible. Zoom the graph further to see additional hidden events that cannot be displayed at the current zoom level.

Note that when multiple data series are visible simultaneously, the Y-axis will be in units of percent (%) and each data series' initial value will be normalized to 0%. This allows viewing relative changes between different data series at the same time.

Note that the X time axis is normalized to the first entry in the log file. Therefore all times are reported as the time since the first log file entry.

  • Data Series Selector - Controls which data series are graphed simultaneously on the graph. A new data series can be viewed by selecting it from the drop down list. Each data series added to the graph has a corresponding checkbox that controls visibility of the data series. By checking/unchecking the checkbox next to a data series name, the data series can be made visible or invisible. Note that only 4 data series can be added to the graph at a time. Use the "Remove Hidden" button to remove the checkboxes for invisible data series and free up slots to other data series to the chart. The data series that can be charted are:Devices Passed - The number of passed devices over time.

    • Actual DPH - The Actual DPH over time.

    • Potential DPH - The Potential DPH over time.

    • System Efficiency - The System Efficiency over time.

    • System Yield - The System Yield over time.

    • Programmer Elapsed Times - The elapsed time for each programmer operation over time. Note that this will only be available if the loaded log file contains elapsed time data (i.e. Was created with "Elapsed Time" checked in the Tools/Options menu)

Please see the Session Statistics section for a description of these concepts for both manual and automated systems.

  • Event List - Displays a list of events extracted from the log file. Each event entry displays the time stamp when the event occurs as well as a preview of the log contents for that entry. Clicking an event in the list will select the same event in the chart view and will expand it to reveal more information. Use the "View in log file" link in each entry to view the full log entry in an external browser in the context of the original log file. When viewing the log entry in the browser, it will be highlighted in yellow on the following supported browsers: Internet Explorer 9.0+, all versions of Firefox, Google Chrome 2.0+, Safari 3.1+, and Opera 9.5+. On non-supported browsers, the log entry will not be highlighted.

  • Event List Category Selector - A drop down list that allows selecting which events appear in the Event List and the Chart. Options include:

    • All - All events are displayed

    • All Errors - Only errors are displayed

    • None - No events are displayed

    • Programmer Operation Failures - A programmer failure occurred. This could be due to a device operation or other programmer failure.

    • PNP Diagnostic Report - A PNP diagnostic was performed. The diagnostic report can be viewed by clicking on the link in the event entry.

    • Pick or Place Errors - A pick or place error occurred.

    • Station Errors - A station-specific error occurred.

    • Empty Socket Test Errors - An Empty Socket Test Error occurred because a device was detected in a programmer socket.

    • Max Site Failures - A site was disabled due to the Max Site Failures feature.

    • Media Events - A reload or media related notification occurred.

    • Interlock Open - The interlock was opened.

    • Fatal Autohandler Errors - A fatal error occurred on the autohandler that prevented the system from continuing operation without user intervention.

    • All Stations Idle - All stations became idle.

    • Job Session Started - The job session was started.

    • Job Session Complete - The job session was completed. The Job Summary Report can be viewed via a link in the event entry.

    • Job Session Paused - The job session was paused by the user.

    • Job Session Resumed - The job session was resumed by the user.

    • Serialization - Serialization-related messages and errors.


Simple Serialization

Complex Serialization

General Information about Serialization Data and Log files

Log File Archive Feature

Example of a COM Serialization Data File

II. BPWin device programming - ch 10

Serialization Overview

This chapter describes serialization and how to implement the optional Serialization feature available for BPM Microsystems’ programmers. Simple Serialization, COM Complex Serialization, and legacy Complex Serialization are explained.

During device programming, "serialization" is the process of writing unique data to each individual device as a subset of the common Data Pattern. Serialization is used to not only program basic serial numbers, but encompasses other unique data items such as MAC addresses, encryption keys, GUIDs, randomization seeds, etc. BPWin provides two primary ways to implement serialization depending upon the needs of the user. Simple Serialization allows for basic incrementing numeric sequences, and is fully and easily configured via the BPWin GUI. Complex Serialization allows for a user supplied application to generate serial number data and feed it into BPWin. When using Complex Serialization, you have the flexibility to generate serialization data in any form desired and for any number of regions/addresses on the device. The source for the serialization data is entirely up to you and for example can originate from databases, spreadsheets, files, or computations.

To use Serialization, you must have BPWin version 4.20.1 or higher and have purchased the Serialization feature. For information on obtaining the Serialization feature and updating your software and hardware, see BPM Microsystems' Sales or Technical Support. Users of BPWin 4.60 and above can create jobs to use serialization even when not connected to a Serialization-enabled programmer. When running a job using serialization, any site with the Serialization feature disabled will not be active for the duration of the job.

When using Sets & Banks on Gang Socket Modules

Serialization is disabled, when using Sets & Banks and a gang socket module.

Simple Serialization

BPWin is responsible for creating and updating the data file for each programmed device. Initially the user specifies the serial number for the first device using the Serialization dialog. BPWin creates a data file that holds this initial serial number. Then for each subsequent device, BPWin increments the serial number and stores the new value in the data file. Therefore the serial number displayed during programming (that is: 1, 2, 3, etc.), as well as the serial number BPWin stored in the data and log files is the number written into the device via the data buffer. To set up the Serialization dialog for a job, click here.

Complex Serialization

Although two forms of Complex Serialization are currently available, COM and legacy, COM Serialization should be the preferred type of Complex Serialization used.

To setup the Serialization dialog for a job to use Complex Serialization, click here.

COM Serialization

COM is an acronym for "Component Object Model", which is an interface standard and a Microsoft technology for software componentry. In COM Serialization, BPWin obtains the unique data for a device from a COM "object". This object is referred to as the External Serialization Server (ESS).

COM Serialization is superior to legacy Complex Serialization in the following ways:

  • It includes an interface that allows the ESS to be notified in real-time as to the result of device operations, including information about the site, socket module, and serial number used for the device.

  • The logic that generates unique pattern modifications is easier to develop and deploy due to the ease with which it is to do that with Windows Script Components (.wsc files) and other programming languages such as C/C++, C#, Visual Basic, etc.

  • The data pattern modifications for a device are transmitted to BPWin from the ESS via the COM subsystem in binary form. There are no file formats to parse and generate, and no file access issues to deal with.

  • Unlike legacy Complex Serialization executables that are launched and terminated for each serial number request, the COM ESS is kept running during the entire job session. Developers will find this to be a more elegant and less error prone paradigm.

  • COM Serialization supports 64-bit addresses for serializing regions on today's larger devices.

Legacy Complex Serialization

BPWin executes the user supplied executable program referred to as the External Serialization Program (ESP) which supplies the data file with serialization information. The data file is parsed by BPWin and the data buffer is updated with the unique device data. BPWin uses serial number handles (references) that are user configurable in the Serialization dialog and are simply strings that BPWin and the ESP use to communicate. The serial number handle is displayed during programming and written to the log file and is not the actual number programmed into the device.

  • Important Notice

Legacy Complex Serialization is not recommended for new development. Though BPM Microsystems will continue to support this method for some time, it is considered deprecated and replaced by COM Serialization.

General Information about Serialization Data and Log files

BPWin writes the serial number data of each programmed device to the data file when using Simple or COM Serialization. COM Serialization only requires a data file when it is desirable to retain serializing information for the next job session. In legacy Complex Serialization, the ESP writes the serialization data to the Serialization data file which BPWin subsequently reads.

Concurrent programmers require the use of a log file, while it is optional with Engineering programmers. Run-time device serialization activity, such as the site/socket numbers, the serial numbers/handles used, and whether the device has passed or failed programming, is logged to the file during a job session.

  • The data and log files can either be located on the local machine or on a network drive specified by using Windows Universal Naming Convention (UNC) for example, <\\network\shared>.

  • The maximum path name character length, including the directory, file name and extension, is 259 characters for the data file and 255 characters for the log file.

  • Relative path names to the Serialization Working Directory (SWD) are supported for the data and log files. Note that the SWD is always the directory from where BPWin is launched, even if the Windows working directory changes after the launch.

If using legacy Complex Serialization and no path is specified the user will be asked to choose either the SWD or ESP path.

  • Data and log file extensions (.dat and .log) are automatically appended if an extension is not supplied. BPWin will consider any valid characters past the last period to be the file extension.

  • The SWD will be the initial browse path shown, when you click Browse... in the Serialization dialog.

Note: When you Browse... to the desired location and specify a non-existent file, BPWin will create the new file in the specified location automatically once you press the OK button in the Serialization dialog.

Patient and Fault-tolerant File Operations

BPWin performs file operations on the data and log files in a similar manner that it does for the BlackBox log file. That is, when either file becomes inaccessible for more than 5 seconds (this can happen when a file is being copied or when the Hard Drive is full, etc), a window explaining the situation will appear and any job session in progress will pause. When the file becomes accessible again, the window will disappear and the job session will continue normally. If you click the window's "Abort Job" button the window will disappear and BPWin will abort the current job session.

Log File Archive Feature

The Serialization archive feature is designed to store a set quantity of the latest archive log files in the same location where the Serialization log file resides. Each job with a Serialization log can contain it's own archiving information, for example, archive information for "C:\SerialJob1\serial.log" will be made in "C:\SerialJob1\". Archiving occurs when a programming job uses a previously created Serialization log file and its backup file has data. The maximum number of archive files can be changed by setting a registry value, if desired. After reaching the maximum number of archived files, the next backup file will be archived to the oldest archive file, typically that would be 000.

Changing the Maximum Number of Archived Log Files

BPWin will first look for the registry entry to obtain the user-set value for the number of archive files. If not found, the default value will be used. The default value in BPWin is 100 files, indexed 000 through 099.

  • HKEY_LOCAL_MACHINE\Software\BP Microsystems\BPWin\Serialization\MaxArchiveLogFiles - This REG_DWORD value can be set to '0' (zero) or up to the maximum DWORD value allowed. A "MaxArchiveLogFiles" value of zero will turn off archiving, which prevents indexed "bak" files from being created.

Note:

  • The registry entry will need to be created if it does not exist.

  • Administrative access is required to create the registry key or to change the registry value. To grant user access to the Serialization key, an Administrator must go to the key, right-click Permissions, click on the user/group and check Allow for Full Control.

Back To Top


Serialization Complex

Next Serial Number Field

Configured for Quick Example

Uncheck the Complex | COM check box to enable legacy Complex Serialization.

(required) Enter the absolute or relative path/filename for the data file that the ESP will be writing to during a job. This ASCII file is written to by the External Serialization Program (ESP) and is used by BPWin to read the unique device data and address(es) for each programmed device as well as other warning and error information.

  • Important

1. The contents of this file should be changed only by the ESP and only when specifically invoked by BPWin.

2. The ESP and the data file may reside in different paths, but the data file's path/filename specified in the ESP MUST be the exact path/filename specified in the Serialization Data File field. If the data file's path/filenames do not match, BPWin will read incorrect serialization information and will not correctly serialize devices.

Enter the first serial number handle. When not using the "Resume" feature, this will be the first serial number sent to the ESP on the command line using the -N argument. When using "Resume", the first serial number specified will be used if a valid serial number is not present in the Serialization data file. Otherwise, the next serial number will be read from the data file. See Command Line Arguments from BPWin for more information.

Enter the last serial number handle to represent the maximum serial number handle allowed. This handle is sent to the ESP each time it is invoked as a command line argument to allow it to determine when all allowed serial numbers have been exhausted and the job needs to be stopped. When the ESP receives a serial number handle that is “beyond” the last serial number handle, it can trigger an error condition by writing a "T06:" error code/message to the Serialization data file as described in the Data File Protocols section.

Note: To prevent jobs from aborting prematurely due to running out of serial numbers, you must ensure that the quantity of serial numbers you include is sufficient for the number of devices you want to program. When BPWin reads a data file that contains the "T06:" error code, the job automatically aborts. To prevent a job aborting before programming the desired quantity, you must understand the behavior of your ESP since it is responsible for creating the "T06:" error code.

  • When the "Resume" feature is enabled AND the user has specified a valid data file, the text displayed in the Next serial number handle field will be read from the data file. If the data file has a "T06:" error code, indicating that the last serial number has been exceeded, the Next serial number handle field will display "<END>" and further attempts to program devices with Serialization enabled will fail as a result.

  • If the "Resume" feature IS enabled, but the specified data file is either non-existent, blank or invalid. The text displayed in the Next serial number handle field will also mimic the value in the First serial number handle field. This is because there is no specified valid data file to read the next serial number handle from. This indicates that the data file might be blank or non-existent (such as when creating a new job), or perhaps that the user mistyped the path/filename of the data file. When the data file does not exist, BPWin will create a blank data file, the Serialization program will not be invoked at this point.

II. BPWin device programming - ch 10

Complex serialization

To configure COM Serialization for a job session, follow the steps listed. Some steps are different when using legacy Complex Serialization, they are noted below.

  1. Select Tools > Serialization... to open the Serialization dialog.

  2. Select the Type | Complex radio button. The Complex Serialization section will become enabled in the Serialization dialog.

  3. Insure the Complex | COM check box is checked to enable COM Serialization.

Click Here if Using Legacy Complex Serialization

  4. Populate the following fields:

    • Data File - (optional) If you wish to use the “Resume from last serial number in data file” feature in a future job session, specify the absolute or relative path/filename that you want BPWin to use to create and write to during a job, otherwise leave this field blank.

If a file is specified then the purpose of it is to facilitate the “Resume” feature. BPWin will write the value of the “Next Handle” obtained from the ESS for each device to the data file. Then at the beginning of the next job session, if the “Resume” feature is enabled, BPWin will use the string in the file as the first handle in the job session. See Serialization File Information for more information about the data file.

Click Here if Using Legacy Complex Serialization

    • Log File - Enter the path/filename that BPWin will use for logging passed/failed serial numbers. The information in this file is in an ASCII format. See Serialization File Information for more information about the log file.

    • Verify Serial Number - If checked, the unique device data written to each device will be verified during Verify operation. If BPWin is configured with a concurrent programmer and Quantity field > 1, this box is unconditionally checked.

    • Log Data Pattern Checksum - By default this feature is disabled. When enabled, the checksum of the data pattern for each device being serialized in both gang and non-gang modes will be logged. As the buffer is updated to reflect the new serialization data, the checksum is recomputed for each serialized device.

Note: Enabling this feature very likely will decrease DPH especially when the buffer size is large. The check box tool tip help includes a warning about this and when this feature is enabled, a warning message is printed to the output window at the beginning of the job indicating that throughput might decrease.

    • Attempt Retry of Failed Serial Numbers - If checked, BPWin will reuse the unique device data written into the device that failed programming and use it for the next device.

    • Serial Number

  • First - Enter the value of the first serial number handle to use in the job. This will be provided as-is to the ESS.

  • Click Here if Using Legacy Complex Serialization

  • Next - This read-only text box indicates what the next serial number handle will be based on the currently selected options. For more information see the Next Serial Number Field section.

  • Last - Enter the value of the last serial number handle to use in the job. This will be provided as-is to the ESS.

  • Click Here if Using Legacy Complex Serialization

    • Resume from last serial number in data file - Whether or not this feature is enabled, the Next serial number field will display the actual serial number that will be used for the next device based on the current settings and the contents of the specified data file.

      • If checked, BPWin will read the specified data file to determine the next serial number handle for the job. If the data file is empty, BPWin will use the first serial number. This is useful if a large job is not completed in one session and you wish to continue serializing from the previously used serial number.

      • If unchecked, BPWin will use the serial number handle entered in the First serial number field.

    • Complex | ESS Test - Click this button to display the ESS Test dialog box that will allow you to configure and run a simulated job session for the purposes of testing an ESS without a programmer.

    • Complex | Program - Enter absolute or relative path/filename (as determined from the directory from which BPWin is launched) to the ESS. Command line arguments will be passed at the same time with the "/regserver" switch.

    • Complex | Remote Server - Select this to specify an ESS that is deployed on a remote computer. See the "Using an ESS on a Remote Computer" section for details.

  5. Click the OK button.

Back To Top

Next Serial Number Field

When setting up a job to use Complex Serialization, there are many factors at play that determine what the next serial number programmed into a device will be. In order to avoid user confusion concerning how the various options and features interact, the read-only Next serial number handle field in the Serialization dialog was created to display how user input affects the next serial number in real-time.

There are 4 factors that determine the value displayed in the Next serial number field of the Serialization dialog:

  1. The data filename specified.

  2. The contents of the data filename specified.

  3. The status of the "Resume" checkbox.

  4. The value entered into the First serial number handle field.

How it works

  • When the "Resume" feature is disabled, the text displayed in the Next serial number handle field will always mimic the value in the First serial number handle field. In this case the user does not wish to use the "Resume" feature so the next serial number to use is always the one entered by the user as the first serial number handle.

  • When the "Resume" feature is enabled AND the user has specified a valid data file, the text displayed in the Next serial number handle field will be read from the data file.

  • Click Here if Using Legacy Complex Serialization

Note:

  • Remember that the serial “numbers” in the Serialization dialog are just serial number handles that are used to communicate with the ESS or ESP. Only the ESS or ESP will output true unique device data to the data file for use in serialization.

  • Changing the data filename or clicking the "Resume" checkbox can and will update the value in the Next serial number field in real-time indicating to the user the various modes of operation (i.e. reading from a valid data file or accepting input from the user directly in the dialog).

Back To Top

How Can We Make This Manual Better For You? E-Mail Your Suggestion

Copyright © 2010 BPM Microsystems


Using an ESS on a Remote Computer

As of v5.2, BPWin uses Windows built-in Distributed COM (DCOM) technology to support using a COM object that is deployed on a remote computer as the ESS. The COM Serialization SDK documentation contains details about developing and deploying such server COM objects. This section in this help manual will describe the necessary configuration for a computer that will run BPWin using a remote ESS and therefore act as the client.

The specific values of the configuration options in BPWin that have to do with ESS Remoting are dictated by how the developer/administrator of the remote ESS chose to develop/deploy it. The following is a description of each of those configuration options; this can serve as a sort of checklist of every piece of information that is required to be conveyed from a developer/administrator of a Remote ESS to whoever is responsible for configuring BPWin to use the Remote ESS. BPWin accepts the value of each item in this list in the "Remote Configuration" dialog, which can be invoked from the Serialization dialog by clicking the "Configuration..." button.

  • CLSID - The COM Serialization SDK documentation states that for an ESS to be accessible by a remote client, the ESS must be registered on the remote computer. Registration of COM objects involve the use a of text string that uniquely identifies the object on the remote system. This string is known as the "Class Identifier" (CLSID). Enter the CLSID of the Remote ESS into this field. You may also leave this field blank; this causes BPWin to use the standard ESS CLSID to attempt to create an instance of the ESS.

  • Computer - This identifies the computer that the Remote ESS is deployed on in the form of a text string using the naming scheme of the network transport. Commonly and by default, all Uniform Naming Convention (UNC) names, such as "\\server" or "server", and Domain Name System (DNS) names, such as "domain.com", "example.microsoft.com", or "135.5.33.19" are allowed.

  • Username and Password - This is the username and password required to create an instance of and call methods on the Remote ESS. The developer/administrator of the remote ESS must configure security parameters on the computer that the Remote ESS is deployed on, as well as configure security parameters of the Remote ESS itself. One of the security parameters the developer/administrator of the Remote ESS may have chosen to specify is to restrict access to both the computer and the object to a set of one or more users. In the presence of a Microsoft Domain Controller, not specifying a username/password in BPWin has the effect of using the username/password of the running BPWin session. Otherwise, when not on a network with a Domain Controller, not specifying a username/password in BPWin has the effect of attempting to use the Remote ESS with ANONYMOUS access. A username/password must be specified in BPWin if, on a Microsoft Domain Controller, the remote computer/ESS is configured to allow access to a user that is different from the user running the BPWin session, or if not on a Microsoft Domain Controller and ANONYMOUS access is not allowed by the remote computer/ESS.

All remote configuration settings are saved in JobMaster files.


Specifying Initialization Data

II. BPWin device programming - ch 10

Specifying Arbitrary Initialization Data

You can specify arbitrary data to send from BPWin to the External Serialization Server (ESS) at the beginning of the job session. To use this feature of COM Serialization, the ESS must be developed to support initialization data. For details on developing an ESS to support this feature, see the COM Serialization SDK documentation sections on developing an ESS with support for the SetInitializationData() method.

The specified data can be used by the ESS for whatever reason the developer of the ESS sees fit. Possible examples of the use of such data are:

  • Configuration of the ESS. For instance, the ESS could be coded to derive the source of the binary data pattern modifications from reading the initialization data. In this case, BPWin could be configured to specify a path to a file for the data, and the ESS could access and read from that file to provide the data pattern modifications.

  • Logging. For instance, the data could consist of some form of identification of the specific job session that it is being used for, and the ESS could be coded to merely record (log) that the job session with that piece of identifying information has begun.

To specify the data, click the "Initialization Data..." button in the Serialization window. The Set COM Serialization Initialization Data window will appear.

Type the data to send to the ESS at the beginning of the job session in the window's large editing area. While typing, the ENTER key will cause data to begin being entered on a new line. When you're finished, click the OK button to commit your data to BPWin and close the window.

Specifying any data in the field will result in BPWin attempting to send the data to the ESS at the start of a job session. If the ESS does not support receiving initialization data, BPWin will abort the attempted job session with an applicable error message. To disable BPWin's attempt to send initialization data to the ESS, click the "Clear" button (to clear the contents of the edit field) followed by the "OK" button to dismiss the window.

COM Serialization Initialization Data is saved in JobMaster files.


External Serialization Server

The ESS:

  • Is designed, implemented, and deployed by any third party that wishes to do so; that is, not BPM Microsystems.

  • Can be implemented by a developer by utilizing the COM Serialization Software Development Kit (SDK), which is freely available for download from the BPM Microsystems web site here. The SDK contains software library code, code examples, and documentation which includes guides for developing an ESS in multiple programming languages.

  • Adheres to an interface specification put forth by BPM Microsystems which can be found in the SDK documentation. Note that the libraries included in the SDK abstract the interface, minimizing the need for a developer of an ESS to have knowledge of it.

When a job session is run, BPWin will:

  1. Before the first device operation, execute the ESS .exe with “/regserver” on the command line.

  2. Create an instance of the ESS.

  3. As the job session proceeds, the ESS instance will be queried for unique data to modify the pattern with for each device.

  4. When the job session ends, BPWin will destroy the instance created in Step 2 above.

  5. Execute the ESS .exe again with “/unregserver” on the command line.

Note that in the “Quick Example” section below, the ESS executable specified in the “Complex | Program” field was “EssHost.exe”, which is an executable distributed with BPWin that implements a COM object that is able to “host” ESS objects. Specifying EssHost.exe is only necessary when using certain types of ESSs, such as Windows Script Components, as is used in the example. For more information on EssHost.exe, see the COM Serialization SDK.

A Quick Example

This example is intended to demonstrate an entry-level form of ESS implementation. To do so, the procedure describes how to implement a COM Object as a Windows Script Component file (.wsc file). Neither the SDK nor any other software development tools are required for implementing script components except for a text editor, such as Windows Notepad, which is used in this procedure.

  1. Open Windows Notepad and copy/paste the following:

<component>
<public><method name="GetSerialData" /></public>
<script language="JScript">
var dictionary = new ActiveXObject("Scripting.Dictionary");
var number = 0;
function GetSerialData(sCurrentNumber)
{
dictionary.Item(
0
 //1
)
 = number;
number += 2; //2
return dictionary;
}
</script>
</component>

  2. Save the file with a .wsc extension. For the purposes of this guide, we will refer to the path as:

 “C:\ESS\Quick.wsc”.

  3. Start BPWin and configure it to operate on a device (connect a device programmer and power it on, select a device, load a data pattern, and configure device settings).

  4. In BPWin, select the menu item Tools>Serialization....

  5. In the Serialization dialog,

    • Select the Type | Complex radio button.

    • Check the Complex | COM checkbox.

    • Enter a path for the Log File.

    • Enter 0 (zero) for both the First and Last serial numbers.

    • Enter the following into the Complex | Program field:

EssHost.exe -getobj"script:c:\ESS\Quick.wsc"

  6. Click the OK button in the Serialization dialog.

Beginning a job session after following the procedure above would result in the first 127 (1 byte address size/2) devices having a unique number programmed into byte address 0, beginning with the number 0, and incrementing by 2 for each device.

The portion that contains the program logic of the .wsc file that was used in the example above uses the Microsoft JScript scripting language. Practically anyone with knowledge of any “C”-like language (C, C++, Java, C#) could modify that code to customize the generation of the unique device data.

The line of code labeled with the comment “//1” specifies the device address. To change the address, change the number on that line. To customize the generation of the value programmed into that address, change the line labeled with the comment “//2”.

For More Examples

For more extensive examples, documentation, and libraries that implement optimizations and provide a simple abstraction for the Scripting.Dictionary object used in the example above, see the COM Serialization SDK , freely downloadable from the BPM Microsystems' web site. The SDK contains code examples and libraries for easily developing ESS's in C++, JScript, or VBScript. Full documentation is provided to facilitate using any programming language compatible with COM.

Back To Top


Testing the ESS

The "ESS Test" dialog enables the testing of an ESS without the use of a programmer. The dialog simulates a job session by creating an instance and calling the methods of the ESS specified in the Serialization dialog. For the ESS, the simulated job session causes the same sequence of events to occur as they would for a real job session. When the simulated job session is started, BPWin:

  1. Launches the executable specified in the Serialization dialog with the "/regserver" switch so that the ESS may register itself on the system.

  2. Creates an instance of the ESS COM object.

  3. On the ESS COM object, calls the OnBeginJob(), GetSerialData(), and OnResult() methods in the same sequence and with the same arguments as it would for a normal job session. The data pattern modifications specified by the GetSerialData() calls are applied to the data pattern as though those modifications were to be transmitted to a programmer.

  4. Destroys the ESS COM object instance at the end of the simulated job session and launches the executable specified in the Serialization dialog with the "/unregserver" switch so that the ESS may remove its information from the registry.

To use the ESS Test dialog:

  1. Configure the Serialization dialog as you normally would do so for a job session. All items in the dialog that are normally required for a job session are also required for the "ESS Test".

  2. Click the "ESS Test..." button in the Serialization dialog. If the Serialization dialog was configured correctly, this will display the "ESS Test" dialog.

  3. In the "ESS Test" dialog, configure the items in the "Configuration" section at the top of the dialog according to your preferences.

    • Quantity - Enter the number of successful device operations that must complete before the simulated job session ends.

    • Failures - Enter a percentage of the quantity that you would like BPWin to fail randomly throughout the simulated job session.

    • Device operation duration - Enter the number of seconds you would like a simulated device operation to take.

    • Number of Sockets per Site - Enter the number of sockets you would like to have in each site of the simulated programmer.

    • Number of Sites - Enter the number of sites you would like to have in the simulated programmer.

  4. Click the "Begin" button to begin the simulated job session. As the session proceeds a log will be displayed of the method calls made by BPWin on the ESS, as well as the values of arguments passed to those methods. If the "Attempt Retry of Failed Serial Numbers" setting is turned on in the serialization dialog, the log will indicate when BPWin is automatically-retrying previously-failed serial number "handles". Short pauses will occur during the session to simulate device operation delays as well as scaled-down delays simulating "handling time" (the time it takes to place devices into and pick devices from sockets in the programmer). These delays help to more accurately simulate the timing and order of method calls made on the ESS and argument values passed to those method calls during a real job session. At the bottom of the "ESS Test" dialog status information will be displayed regarding the reason for any current pauses you may be witnessing during the simulated job session.

  5. When the "Begin" button is clicked, its text changes to "Stop" to indicate that you may click it again to abort the simulated job session before it completes by itself.

  6. When you are done with the test, or to go back to and change configuration parameters in the Serialization dialog, click the "Close" button. All configuration settings in the ESS Test dialog will be retained until BPWin is closed.


Serialization Simple

II. BPWin device programming - ch 10

Simple serialization

To configure Simple Serialization for a job session:

  1. Select Tools > Serialization... to open the Serialization dialog.

  2. Select the Simple radio button. The Simple Serialization section becomes enabled in the Serialization dialog.

  3. Populate the following fields:

    • Data File - This should identify the “.dat” file used by BPWin to keep track of serial numbers during Simple Serialization. Enter the path/filename for the data file that will contain the first serial number you wish to use. BPWin automatically updates this file as each new serial number is generated. This will permit the user to interrupt a job and continue later with the next number in the series. See Serialization File Information for more information about the data file.

      • Under no circumstances should the contents of the data file be changed during the execution of a job. The contents of this file should only be changed by BPWin.

    • Log File - Enter the path/filename for logging of passed/failed serial numbers. The information in this file is in ASCII format. See Serialization File Information for more information about the log file.

    • Verify Serial Number - If checked, the serial number written to each device will be verified during the Verify operation. If BPWin is configured with a concurrent programmer and Quantity > 1, this box is unconditionally checked.

    • Log Data Pattern Checksum - By default this feature is disabled. When enabled, the checksum of the data pattern for each device being serialized in both gang and non-gang modes will be logged. As the buffer is updated to reflect the new serialization data, the checksum is recomputed for each serialized device.

Note: Enabling this feature very likely will decrease DPH especially when the buffer size is large. The check box tool tip help includes a warning about this and when this feature is enabled, a warning message is printed to the output window at the beginning of the job indicating that throughput might decrease.

    • Attempt Retry of Failed Serial Numbers - If checked, BPWin will reuse the serial number written into the device that failed programming.

    • Serial Number

      • First - Enter the value of the first serial number to use in the job.

When not using the "Resume" feature, this will be the first serial number in the job session. When using "Resume", the first serial number specified will be used if a valid serial number is not present in the Serialization data file. Otherwise, the next serial number will be read from the data file. See Command Line Arguments from BPWin for more information.

      • Next - This read-only text box indicates what the next serial number will be based on the currently selected options. For more information see the Next Serial Number Field section.

      • Last - Enter the value of the last serial number to use in the job. When the current serial number exceeds this value, the job session will be aborted. You may also leave this field blank to specify that no check for last serial number exceeded will occur during the job session.

      • Resume from last serial number in data file - Whether or not this feature is enabled, the Next serial number field will display the actual serial number that will be used for the next device based on the current settings and the contents of the specified data file.

        • If checked, BPWin will read the specified data file to determine the next serial number for the job. If the data file is empty, BPWin will use the first serial number. This is useful if a large job is not completed in one session and you wish to continue serializing from the previously used serial number.

        • If unchecked, BPWin will use the serial number handle entered in the First serial number field.

    • Serial Number Buffer Address - Enter the starting address where you want to place the serial number. The default address is 0 (zero).

    • Reverse Byte Order - If checked, will write the serial number in the buffer with the least significant byte (LSB) first, Intel-style. Otherwise, the serial number in the buffer will be written with the most significant byte (MSB) first, Motorola-style.

    • Size - Select from 1 to 6 bytes.

    • Skip Every Other Byte - If checked, every other byte will be skipped while writing the serial number. This option is useful, for example, when programming paired 8-bit EPROMs to emulate a 16-bit addressing scheme.

    • Display Format - Determines how the Serial Number Buffer Address field will be interpreted and how the serial numbers will be displayed.

  4. Click the OK button.

Back To Top


External Serialization Program

Legacy Complex Serialization relies on a data file which contains the serialization information for each device, the ESP is the mechanism that writes serialization information to the data file for parsing by BPWin. The requirements of the ESP are to provide T-codes along with the data associated with them, including serial number handles, data records containing the serial number and addressing information for the data buffer, warning messages and error commands, to the data file. The user's algorithm in the ESP dictates the size and complication of the serial number.

ESP and BPWin

  • The communication protocol between BPWin and the ESP is done through the use of T-codes and serial number handles. BPWin reads the data following the data file T-codes for serialization information. More details about the protocols are covered in the Data File Protocols for Legacy Complex Serialization section below.

  • The ESP specifies address range(s) to which the serial number(s) will be written. These ranges must remain unchanged each time the ESP is invoked for a given job run. If the ESP attempts to write to different address range(s), an error message will be generated and serialization will be aborted.

  • Immediately before BPWin invokes the ESP, BPWin will attempt to delete the existing Serialization data file. That is done to ensure that in the presence of errors (for example, if the ESP creates the data file in the wrong location; or because of some error, it does not create it at all) BPWin does not use an older data file and risk duplicating or using wrong serialization data. If the attempt to delete the data file fails then BPWin behaves as described in Patient and Fault-tolerant File Operations.

  • BPWin invokes the user’s ESP exactly one time for each device immediately prior to programming and then updates the data buffer with the serial number information. If the operating system reports to BPWin that there was an error in attempting to execute the ESP, then BPWin behaves similarly to what is described in Patient and Fault-tolerant File Operations. That is, BPWin continues to retry ESP execution and after 5 seconds of consecutive failure a window is displayed that explains the situation and allows the user to abort the job session. The window automatically closes and BPWin resumes as normal if the operation is successful.

  • When the ESP finishes execution, BPWin examines its return code (in DOS terms known as the "ERRORLEVEL"). If BPWin finds that the return code is anything other than the number 0, BPWin will fail the device associated with that serialization program invocation with a status of "SerialExe". On such device failures, no operation is performed on the device.

Note: When using legacy Complex Serialization, BPWin will overwrite all areas of the buffer specified in the data file. Remember to account for the serial number data when creating the data pattern for the device.

ESP File Guidelines

  • This ESP file can be located on a network drive, specified using Windows UNC or on the local machine. Relative paths may be used.

  • If no path is entered, BPWin will default to the Serialization Working Directory.

  • The ESP must write the data file to the same path\filename as that entered for the data file field in the Serialization dialog.

  • The maximum ESP path\filename field length in the Serialization dialog is 259 characters.

  • Command line arguments may be specified in the Serialization Program field which will be passed to the ESP.

  • The file extension must be ".exe".

Command Line Parameters Passed to the ESP

Command Line Arguments from BPWin

BPWin supplies the user’s ESP with three possible command line arguments.

  • -N <Serial Number handle>

The next serial number handle, in ASCII representation.

This indicates what serial number handle will be used for the next programmed device. This parameter allows the ESP (which is not required to keep any internal state) to know under what context it is being called and output the correct serial number(s) and address(es) to the data file. It also allows the ESP to output the "T02:" code (described in the Required Data File T-codes section) which describes what the subsequent file handle that BPWin sends it should be.

When an ESP is invoked with a particular -N switch, it will output the serial number data associated with that handle to the data file along with the subsequent serial number handle as the "T02:" code. In the following invocation, the ESP will receive the value of this "T02:" code as the next -N switch allowing the ESP to progress from one serial number to the next in an order defined by the ESP itself.

For the first device in a job run, the value of the -N switch is identical to the value of the Next Serial Number field in the Serialization dialog. When not using the RESUME feature, this will be identical to the first serial number entered by the user in the Serialization dialog. When using "Resume" it will be the next serial number (found at T02) read from the data file.

  • -E <Serial Number handle>

The last serial number handle, in ASCII representation.

This indicates to the ESP what the user set to be the last valid serial number handle in the Serialization dialog. The ESP can use this to create an optional "T06:" code (see Optional Data File T-codes for more information) to indicate that the last valid serial number has been exceeded.

  • -F

If the "Resume" feature is disabled, this switch (when present) informs the ESP that this is the first time it is being invoked in a given job run. Subsequent calls to the ESP will not pass this parameter.

With "Resume" enabled, this switch will be sent to the ESP for the first serial number only. Restarting a job using a valid data file and the "Resume" feature enabled will not cause a -F switch to be issued again.

Optional Command Line Arguments Supplied by User

Additional command line arguments to the ESP supplied by the user are supported and should be entered in the Serialization Program field. Quotes surrounding the executable path are not required when using command line arguments.

Example:

  • If the following is entered in the Serialization Program field:

C:\Program Files\BPM Microsystems\Serialization Program File.exe C:/SerialDataFile.dat -M

  • The command line arguments are:

  • C:/SerialDataFile.dat

  • -M

Back To Top

Data File Protocols for Legacy Complex Serialization

The ESP communicates with BPWin in the form of T-codes in the data file.

Each data file element begin with a code that in the form of "T##:" where "##" represents the file code number, followed by ASCII data ending with a new-line control character. No spaces are allowed between the ':' of the T-code and the ASCII data.

Note:

  • The ':', where indicated, is part of the T-code format. The 'x' in "T04x" code can be any single byte value, for example: 0x99, ':' or space.

  • The file format of the data portion in the data file does not have to match the file format of the data pattern For example, the data pattern file format could be binary and the data file format could be Intel Hex-32 (code "99" for T03).

Required Data File T-Codes

  • "T01:"

Current unique device data handle number. The ESP is required to output a "T01:" code identical to the unique device data handle number passed to it via the command line -N parameter.

  • "T02:"

Subsequent unique device data handle number. This required T-code specifies to BPWin what -N parameter to send on the NEXT invocation of the ESP. The value of this T-code is what is displayed in the Next Serial Number field in the Serialization dialog when the RESUME feature is enabled.

Note: "T02:" codes are always required even when there is not a valid subsequent unique device data handle number. This can occur when the "T01:" code is the last valid handle number. In this case the ESP may choose to set an EOS (End-Of-Serial Number) marker as the "T02:". In the next ESP invocation, it will receive this marker as the "T01:" code and can react appropriately by outputting a "T06:" code. Note that when outputting a "T06:" no other T-codes are required. (See the Optional Data File T-codes section below).

  • "T03:"

Translation format number. This specifies the file format of the data portion. Click to see the chart for supported formats and their codes. Click on the file format to see additional information, if applicable.

  • "T04x"

The data record portion. This is the actual buffer address(es) and serial number(s) data stored in the format specified by the "T03:" code. All buffer address(es), sizes and lengths, must be identical from invocation to invocation of the ESP. If implementing subsequent optional data file codes, an end-of-record must be used, where applicable.

Note: BPWin can parse optional T-code(s) (described in the Optional Data File T-codes section) that reside after the data record portion of the data file.

Data file from the example External Serialization Program with a T11 warning.

BPWin will use this file to manage the Serialization process.

Optional Data File T-Codes

These T-codes can be written to the data file by the ESP to give warning or error commands to BPWin. When one of these optional codes is read from the data file, a message will be displayed in the output window along with an optional user-supplied ASCII message that immediately follows the T-code. The content of the optional message and the conditions under which each code is issued is specified completely by the ESP.

  • "T05:"

BPWin error message: "Serialization Program ERROR", Fatal error, Abort.

On receiving this code, BPWin will abort the serialization process and programming will cease.

  • "T06:"

BPWin error message: "Last serial number exceeded", Abort.

On receiving this code, BPWin will abort the serialization process and programming will cease. The ESP may use the value of "-E" command line switch to determine when to issue this code.

  • "T11:"

BPWin warning message: "Serialization program warning", Continue.

On receiving this code, BPWin will display this warning message along with any user supplied messages and will continue the serialization process.

Example External Serialization Programs

  • Example 1 generates a 3-byte serial number starting at address 0 and increments by 1.

  • Example 2 generates 4 types of serial numbers at 4 addresses.

Note: These ESP examples use the Intel Hex-32 data format (translation format number 99).

Encryption

When serialization data is specified as needing decryption ("Serialization" box is checked in the decryption settings) then the same decryption configuration used to decrypt the Data Pattern will be used to decrypt the serialization data file.

Back To Top


/**
2006 BPM Microsystems
************************************************************************************************
THIS SOURCE CODE IS PROVIDED AS-IS WITH NO WARRANTY.
************************************************************************************************
This source code is intended to serve as an example Complex Serialization interface program.
Refer to the BPWin user's manual for interface details.

This file intended to be viewed with:
   Tab Space = 3, Insert Spaces for tabs.

Intel HEX file format (Code 99) is used as a conduit to BpWin.  This file format allows for
addressing information to be specified along with the data, and the ability to clearly mark
the end of the data.  "Extended Linear Address Records" are used to provide coverage of
32-bits of address.

This source file was compiled using the Microsoft Visual Studio 2003 C++ compiler, using
the following command-line:

   cl Serial.cpp /O2 /FD /EHsc /ML /W3

The resulting program EXE has been executed under the Windows XP environment.

The C++ STL is used along with the CRT (statically linked).
The Microsoft ATL/MFC CString class is used, but since it is a header-only library, no linking is necessary
to ATL or MFC.
*/

#include <windows.h>
#include <tchar.h>
#include <atlstr.h>
#include <vector>
#include <numeric>
#include <iostream>
#include <iomanip>
#include <fstream>

/**
The filename used to communicate with BpWin.  You may want to use a different filename, make use of a
path, or specify the path/filename in the command-line arguments.
*/
static const CString k_sSerialFilename = "serial.dat";

/**
This buffer address will be serialized with lower byte of the serial number handle.
(8-bit)
*/
static const unsigned k_uAddress1 = 0x000000;

/**
This buffer address will be serialized with 32-bit serial number handle.
(32-bit)
*/
static const unsigned k_uAddress2 = 0x000C80;

/**
This buffer address will be serialized with the bitwise-complement (bitwise-NOT) of the 32-bit serial number handle.
(32-bit)
*/
static const unsigned k_uAddress3 = 0x1C0000;

/**
This buffer address will be serialized with a 20-byte pattern where the first byte starts at the
lower byte of the serial number handle, with each subsequent byte incrementing by 1.
(160-bit)
*/
static const unsigned k_uAddress4 = 0x3E2160;

typedef std::vector<unsigned char> CByteVector;

/*
Convert the lower byte of any value into its ASCII HEX representation and insert it into the file stream.
*/
template<typename T> unsigned char PutHexByte(std::ofstream & oDatFile, const T & oValue)
{
   const unsigned uTruncatedValue = oValue & 0xFF;
   oDatFile << std::setw(2) << std::setfill('0') << uTruncatedValue;
   return static_cast<unsigned char>(uTruncatedValue);
}

/*
Parse the command line arguments to get the serial number information
*/
int ParseCommandLine(std::ofstream & oDatFile,
                     const std::vector<CString> & oArgVector,
                     unsigned & uSerialNum,
                     unsigned & uEndSerialNum)
{
   bool bSnFound = false;
   uSerialNum = 0;
   uEndSerialNum = 0;

   // Loop through command line arguments and
   // process relevant command line options
   //
   for(unsigned iArg = 0; iArg < oArgVector.size(); ++iArg)
   {
      const CString & sArg = oArgVector[iArg];

      if ( (sArg[0] == '-') && (sArg.GetLength() > 2) )
      {
         const CString sValue = sArg.Mid(2);
         switch( sArg[1] )
         {
            case 'N':
               bSnFound = true;
               uSerialNum = strtoul(sValue, 0, 16);
            break;
            case 'E':
               uEndSerialNum = strtoul(sValue, 0, 16);
            break;
            default:
            break;
         }
      }
   }

   // Return an error if there was no -N<serial number> in the command line
   //
   if (!bSnFound)
   {
      oDatFile << "T05:From Serial program:  Serial number not passed to serialization program." << std::endl;
      return 1;
   }
   return 0;
}

/**
Convert a basic type into a vector of bytes
*/
template<typename T> CByteVector GenerateVector(const T & oValue, bool bLsbFirst = true)
{
   CByteVector oVector;
   for(unsigned uByte = 0; uByte < sizeof(T); ++uByte)
   {
      const unsigned uBytesToShift = bLsbFirst ? uByte : (sizeof(T) - uByte - 1);
      oVector.push_back(static_cast<unsigned char>(oValue >> (uBytesToShift * 8)));
   }
   return oVector;
}

/**
Record types for the Intel Hex 32 (Code 99) used by this program
*/
enum IntelHex32RecordTypes
{
   DataRecord = 0,
   EndRecord  = 1,
   ElaRecord = 4
};

/*
Writes the line containing the serial number to the file
Handles 32-bit addressing
*/
void EmitRecord(std::ofstream & oDatFile, unsigned uAddress, unsigned uType, const CByteVector & oData = CByteVector())
{
   // For data records, emit an "Extender Linear Address Record" for the upper address word.
   //
   if(DataRecord == uType)
   {
      EmitRecord(oDatFile, 0, ElaRecord, GenerateVector<unsigned short>(uAddress >> 16, false));
   }

   // Print the beginning colon signifying the start of a record
   //
   oDatFile << ':';

   unsigned char byRecordSum = 0;

   byRecordSum += PutHexByte(oDatFile, oData.size()); //Print the byte count
   byRecordSum += PutHexByte(oDatFile, uAddress >> 8); //Print the first byte of the address
   byRecordSum += PutHexByte(oDatFile, uAddress); //Print the second byte of the address
   byRecordSum += PutHexByte(oDatFile, uType); //Print the Record Type

   for(CByteVector::const_iterator pByte = oData.begin(); pByte != oData.end(); ++pByte)
   {
      byRecordSum += PutHexByte(oDatFile, *pByte);
   }

   // Emit the checksum of the entire record
   //
   PutHexByte(oDatFile, -byRecordSum);

   // Place a carriage return/line feed at the end of the record
   //
   oDatFile << std::endl;
}

/**
Emit the serial number data using Intel HEX into the Serial Number Data File.
This essentially embeds a 'mini data file' in the Serial Number Data File.
*/
void WriteDataInFormat(std::ofstream & oDatFile, unsigned uSerialNum)
{
   EmitRecord(oDatFile, k_uAddress1, 0, GenerateVector<unsigned char>(uSerialNum));
   EmitRecord(oDatFile, k_uAddress2, 0, GenerateVector(uSerialNum));
   EmitRecord(oDatFile, k_uAddress3, 0, GenerateVector(~uSerialNum));

   CByteVector oIncPattern;
   for(unsigned char byValue = uSerialNum; byValue < (uSerialNum + 20); ++byValue)
   {
      oIncPattern.push_back(byValue);
   }
   EmitRecord(oDatFile, k_uAddress4, 0, oIncPattern);

   // end record
   //
   EmitRecord(oDatFile, 0, EndRecord);
}

/*
Generate the serial number data file.
*/
void GenSerialFile(std::ofstream & oDatFile, unsigned uCurrentSnHandle, unsigned uNextSnHandle)
{
   // Emit the required fields, and specify the buffer file format
   //
   oDatFile << "T01:" << uCurrentSnHandle << std::endl << "T02:" << uNextSnHandle << std::endl;
   oDatFile << "T03:99" << std::endl << "T04:" << std::endl;

   // Write the formatted data portion
   //
   WriteDataInFormat(oDatFile, uCurrentSnHandle);
}

/**
Break the command line up into a vector of CStrings, where each element is an argument in
the old ANSI C 'argv' concept.
*/
std::vector<CString> CommandLineToStringVector(LPTSTR lpCmdLine)
{
   std::vector<CString> oVector;
   const CString sCmdLine(lpCmdLine);

   CString sArgument;
   int iPosition = 0;

   do
   {
      sArgument = sCmdLine.Tokenize(" ", iPosition);
      if(!sArgument.IsEmpty())
      {
         oVector.push_back(sArgument);
      }
   }
   while(!sArgument.IsEmpty());

   return oVector;
}

/**
Use the Windows "WinMain" instead of the standard C main() so that this program isn't treated
as a console app.
*/
int APIENTRY _tWinMain(HINSTANCE hInstance,
                       HINSTANCE hPrevInstance,
                       LPTSTR    lpCmdLine,
                       int       nCmdShow)
{
   std::ofstream oDatFile(k_sSerialFilename);

   if (!oDatFile)
   {
      std::cerr << "Unable to create " << k_sSerialFilename << " file." << std::endl;
      return 1;
   }

   // We'll use hex for all text representation of integers.
   //
   oDatFile.setf(std::ios::hex, std::ios::basefield);

   std::vector<CString> oArgVector = CommandLineToStringVector(lpCmdLine);

   unsigned uCurrentSnHandle, uEndSnHandle;

   // Exit with ERRORLEVEL 2 if there is a problem parsing the command line
   //
   if(ParseCommandLine(oDatFile, oArgVector, uCurrentSnHandle, uEndSnHandle))
   {
      return 2;
   }

   if(uCurrentSnHandle > uEndSnHandle)
   {
      oDatFile << "T06:From Serial program:  Current serial number greater than limit" << std::endl;
   }
   else
   {
      if(uCurrentSnHandle == uEndSnHandle)
      {
         oDatFile << "T11:From Serial program:  This is the last serial number" <<std::endl;
      }
      const unsigned uNextSnHandle = uCurrentSnHandle + 1;
      GenSerialFile(oDatFile, uCurrentSnHandle, uNextSnHandle);
   }

   return 0;
}


/**
2006 BPM Microsystems
//************************************************************************************************
// THIS SOURCE CODE IS PROVIDED AS-IS WITH NO WARRANTY.
//************************************************************************************************
//Sample serialization program
//Increments and programs a 3 byte serial number into address 0 of the device
*/

#include <stdlib.h>
#include <stdio.h>
#include <string.h> //For strlen()

// Macro definitions

/**
The name of the serial file
*/
#define SERIALFILE "serial.dat"

/**
The starting address for this specific device
*/
#define DEFAULT_ADDRESS1 (0x0000)

/**
Amount the serial number will increase every time the program is run.
*/
#define DEFAULT_INCR (1)

/**
Convert the byte to hex and write it to the file
*/
static void PutHexByte(FILE *fp, int c)
{
   static char hex[17]="0123456789ABCDEF";
   c = c & 255;
   fputc(hex[c >> 4], fp);
   fputc(hex[c & 15], fp);
}

/**
Put a carriage return at the end of the line
*/
static void putcr(FILE *fp)
{
   fputc('\r', fp);
   fputc('\n', fp);
}

/**
Parse the command line arguments to get the serial number information
*/
int ParseCommandLine(FILE *fp, int argc, char **argv, long *plSerialNum, long *plEndSerialNum)
{
   int i, nLength, nSerNumberFound=0;

   // Initialize values
   //
   *plSerialNum = 0;

   // Loop through command line arguments and
   // process relevant command line options
   //
   for(i=1; i<argc; i++)
   {
      nLength = strlen(argv[i]);
      if ( (*(argv[i]) == '-') && (nLength >= 2) )
      {
         switch( *(argv[i]+1) )
         {
            //Passed to the program the first time it is executed by
            //the BPWin software. This program does not require anything
            //special to happen on the first call, so just break.
            //
            case 'F':
            break;
            case 'N':
               nSerNumberFound = 1;
               sscanf((argv[i] + 2), "%lx", plSerialNum);
            break;
            case 'E':
               sscanf(argv[i] + 2, "%lx", plEndSerialNum);
            break;
            default:
            break;
         }
      }
   }

   // Return an error if there was no -N<serial number> in the command line
   //
   if ( !(nSerNumberFound) )
   {
      fprintf(fp, "T05:Serial number not passed to serialization program\n");
      return 1;
   }
   return 0;
}

/**
Write a line of data to the file
*/
static void EmitLine(FILE *fp, int size, unsigned short addr, int type, unsigned char * data)
{
   int i;
   unsigned char csum, sumOfData = 0;

   fputc(':', fp);
   PutHexByte(fp, size);
   PutHexByte(fp, addr >> 8);
   PutHexByte(fp, addr);
   PutHexByte(fp, type);

   for(i = 0; i < size; i++)
   {
      PutHexByte(fp, data[i]);
      sumOfData += data[i];
   }
   csum = -(size  + addr + type + sumOfData);
   PutHexByte(fp, csum);
   putcr(fp);
}

/**
Writes the line containing the serial number to the file
*/
static void EmitDataRecord(FILE *fp, unsigned short addr, int type, unsigned char * serialNum)
{
   unsigned char largeCSum = 0; //The checksum of the entire record
   unsigned char sumOfData = 0; //The sum of the contents of serialNum
   int backWards; //For controlling for loop structures and indexing arrays

   fputc(':',fp); //Print the beginning colon signifying the start of a record
   PutHexByte(fp, 3); //Print the byte count
   PutHexByte(fp, addr>>8); //Print the first byte of the address
   PutHexByte(fp, addr); //Print the second byte of the address
   PutHexByte(fp, type); //Print the Record Type

   //Loop through serialNum, printing its contents to the file
   //Print it backwards due to Little Endian addressing
   //
   for (backWards = 2; backWards >= 0; backWards--)
   {
      PutHexByte(fp, serialNum[backWards]); //Print the contents of serialNum
      sumOfData += serialNum[backWards]; //Calculate the sum of the contents of serialNum
   }

   //Calculate the checksum of the entire record
   //
   largeCSum = -((3 + (addr>>8) + (addr&255) + type + sumOfData)&255);

   //Print the checksum of the entire record
   //
   PutHexByte(fp, largeCSum);

   putcr(fp);
}

/**
Write the formatted data into the file
*/
void WriteDataInFormat(FILE *fp, long szData, int nDataLen)
{
   int i = 0;
   int nIndex = 0;
   int default_data = 0;

   //Print the Data records containing the serial numbers
   //
   EmitDataRecord(fp, (unsigned short)(DEFAULT_ADDRESS1&65535), 0, (unsigned char *)&szData);
   EmitLine(fp, 0, 0, 1, NULL); // end record
}

/**
Generate the serial number file
*/
void GenSerialFile(FILE *fp, long lSerialNum, long lNextSerialNum, long lEndSerNum)
{
   fprintf(fp, "T01:%lx\n", lSerialNum);
   fprintf(fp, "T02:%lx\n", lNextSerialNum);
   fprintf(fp, "T03:99\n");
   fprintf(fp, "T04:\n");

   // Write the formatted data portion
   //
   WriteDataInFormat(fp, lSerialNum, sizeof lSerialNum);
}

int main(int argc, char **argv)
{
   int rtn; // Value returned from ParseCommandLine() for error checking
   long lSerialNum, lNextSerialNum, lEndSerNum;
   FILE *fpSerial = NULL;

   printf("Serialization program started");

   // Create the serial.dat file
   //
   fpSerial = fopen(SERIALFILE, "w");

   if (fpSerial == NULL)
   {
      printf("Unable to create %s file.\n",SERIALFILE);
      return 1;
   }

   // Parse the command line arguments
   //
   rtn = ParseCommandLine(fpSerial, argc, argv, &lSerialNum, &lEndSerNum);

   // if there was no error with the command line arguments
   // calculate next serial number and generate serial number file
   //
   if (rtn == 0)
   {
      lNextSerialNum = lSerialNum + DEFAULT_INCR;
      if(lSerialNum > lEndSerNum)
      {
         fprintf(fpSerial, "T06:Current serial number greater than limit\n");
      }
      else
      {
         GenSerialFile(fpSerial, lSerialNum, lNextSerialNum, lEndSerNum);
      }
   }

   // Close the serialization file
   //
   fclose(fpSerial);

   return 0;
}


Supported File Types for Complex Serialization

The parsing of the data record in the serial data file will stop at the first end code (ETX or EOM).

The parsing of the data record in the serial data file will stop at the first end code (ETX or EOM).

The parsing of the data record in the serial data file will stop at the first end code (ETX or EOM).

The parsing of the data record in the serial data file will stop at the first end code (ETX or EOM).

The parsing of the data record in the serial data file will stop at the first end code (ETX or EOM).

With a T03 code format:
T03:16:AAAA,LLLL[:AAAA,LLLL ...]
where “AAAA” is the start address of “LLLL” bytes of binary data. The start address and data length fields can be specified in decimal or hexadecimal (a number with a “0x” or “0X” prefix). Whenever the binary data format is used, at least one address/data pair must be specified.

Examples:
T03:16:0,512
indicates that 512 bytes of binary data starting at address 0x0000 will be specified in the T04 field

T03:16:0x0000,0x200
indicates the exact same thing as the previous example; the only difference is the start address and data length are specified in hexadecimal

T03:16:0x1FFF01,6:0x1FFFFE,2
indicates that 6 bytes of binary data starting at address 0x1FFF01 will be specified in the T04 field followed by 2 bytes of binary data starting at address 0x1FFFFE

Record Type 02
The Extended Segment Address Record (16- or 32-bit formats) specifies bits 4-19 of the Segment Base Address (SBA) and is added to the Load Offset in the Data Record. The SBA has a default value of zero. This record can appear anywhere in the file. The SBA value remains in effect until changed by the next Extended Segment Address Record.

Record Type 04
The Extended Linear Address Record (32-bit format) specifies bits 16-31 of the Linear Base Address (LBA) and is added to the Load Offset in the Data Record. The LBA has a default value of zero. This record can appear anywhere in the file. The LBA value remains in effect until changed by the next Extended Linear Address Record.

32-bit absolute memory address = SBA + LBA + Load Offset + Index of the byte in the Data Record

In 32-bit formats, both the SBA and LBA are added to the Load Offset to determine the 32-bit offset address.

Supported File Types for Legacy Complex Serialization
File Format | T03-Codes
ASCII Hex Apostrophe | 52
ASCII Hex Comma | 53, 58
ASCII Hex Percent | 51, 56
ASCII Hex SMS | 57
ASCII Hex Space | 50, 55
Binary | 16
Fairchild Fairbug | 80
Formatted Binary | 10
Intel Hex-32 | 99
Intel Intellec 8/MDS | 83
Intel MCS-86 Hex Object | 88
Intel OMF 286 | 98
Intel OMF 386 | 97
JEDEC (full) | 91
JEDEC (Kernel) | 92
Motorola 32 bit (S3 record) | 95
Motorola Exorcisor | 82
Motorola Exormax | 87
POF | 14
Tektronix Hexadecimal | 86
Tektronix Hexadecimal Extended | 94
Texas Instruments SDSMAC | 90
Texas Instruments SDSMAC (320) | 04


Schema Substitution

"Schema Substitution" is the name of a feature of BPWin's serialization subsystem that allows you to specify schemas (replaceable tokens) in certain fields of the serialization configuration. At the beginning of the job session BPWin replaces the schemas in those fields with values specified by the operator. This allows aspects of the serialization configuration to be dynamically modified at the beginning of the job session instead of existing as a static value only at job creation.

Schema Configuration

The following procedure describes how to configure schemas.

  1. Open the serialization dialog.

  2. Select a serialization type.

  3. Click the "Schemas..." button. This opens the "Serialization Schemas" window:

  4. Click the "Add..." button. This opens the "Add/Edit Serialization Schema" window:

  5. Type the schema, as you will have it appear in one or more serialization configuration fields, in the field labeled "Schema:"

  6. Type a title for the schema in the "Title:" field. At the beginning of the job session, the operator will be prompted to enter values for all schemas. The value you specify in the "Title" field here will be what appears for the label of this schema in that prompt.

  7. Type a description of the schema in the "Description" field. The prompt that appears at the beginning of the job session will have an area that displays the description you type here to serve as "help text" for the currently-selected field in that prompt.

  8. Click "OK". The "Add/Edit Serialization Schema" window will close and your schema will appear in the list of schemas in the "Serialization Schemas" window.

  • To modify a schema already in the list, you can open its "Add/Edit Serialization Schema" window by either double-clicking it in the list or selecting it in the list and clicking the "Edit..." button.

  • To delete a schema, select it and click the "Delete" button.

  • To save the current list of schemas to a file that can be loaded later, click the "Export..." button to specify a location for the file.

  • To load a previously-saved schema file, click the "Import..." button to specify the location of the schema file.

  • To remove all schemas from the list, click the "Clear All" button.

  9. When you've completed configuring the schemas you plan to use, click the "OK" button in the "Serialization Schemas" window.

Using Schemas

To use schemas, place them exactly as specified in the "Schema" field of the "Add/Edit Serialization Schema" window in any of the following locations in the serialization dialog:

  • Log File

  • Program

    • It is only valid to use schemas in this field if the schema does not constitute any portion of the program file name. In other words, schemas can only be used for this field in the extra command line parameters. For example, this is a valid use of a schema "[ExtraEspArgs]":

      And this is an example of an INVALID use of a schema "[ExampleSchema]":

  • Initialization Data

    • Specifically, the text typed into the "Set COM Serialization Initialization Data" window that is opened by selecting the "COM" check box and clicking the "Initialization Data..." button.

Specifying Schema Replacement Text

Once serialization and schemas have been configured, starting a job session will result in the operator being prompted for replacement data for the schemas. The window displayed when the job session is started is titled "Job Session Data Form". The following is an example of that window when two example schemas have been configured:

The left column contains the schema titles as specified in the procedure above, and the right column contains editable text fields where the operator can specify the replacement text for the schemas associated with those schema titles. The bottom section of the window displays the description entered for that schema for the currently-selected schema in the window. To perform schema replacement using the text specified in the right column, click the "OK" button. BPWin will use serialization configuration information using the schema-replaced form of the configuration and then proceed to begin the job session.

Saving and Restoring the Schema Configuration

BPWin will save and restore the schema configuration using one or more of the following three methods:

  1. As described in the procedure above, when you click the Export or Import buttons in the "Serialization Schemas" window.

  2. When the "OK" button is clicked in the "Serialization Schemas" window, the schema configuration is saved to the Windows registry. The next time the window is opened, that configuration is read from the registry and is used to configure the "Serialization Schemas" window. This allows that last-specified configuration to be automatically loaded when BPWin is started again after being closed.

  3. Schema configuration is saved to and restored from JobMaster files.


JobMaster Overview

Features

JobMaster Files

Job Notes and Revision History

JobMaster Integrity Check

User Modes

Security Models

Job Protection

JobMaster Security vs. Job Protection

Installation

II. BPWin device programming - ch 11

jobmaster Overview

JobMaster is a powerful tool for automating production. It allows a Supervisor to set up a job to precise specifications, test the results, and protect the routine so that it cannot be inadvertently modified. Once a master device is programmed and approved, JobMaster is ready to begin full-scale programming.

Features

JobMaster is designed for maximum simplicity and consistency in device programming. It takes the “guesswork” out of many of the steps needed to program devices, such as choosing a device, selecting a data pattern, setting special configuration needs, etc. Detailed information on JobMaster features can be found in JobMaster Options.

JobMaster allows you to create a job on any BPM Microsystems programmer and then transfer the job to run on BP-3000/4000 Series Autohandlers. This can be a great advantage, if the BP-3000/4000 Series Autohandlers are used only for production runs.

Example of the JobMaster File Advantages:

  1. A design engineer, using a BPM Microsystems desktop programmer, can create a job to program a part used in design prototype.

  2. This job file can then be sent via email to a production facility equipped with a BP production programmer using the BPWin software and an autohandler.

  3. The production facility can then link an .abp file to the .bp file created by the design engineer.

  4. The BPWin autohandler software would use the .bp file to set up the programmer, guaranteeing that parts produced would be identical to the part the engineer programmed at his desk.

JobMaster takes the place of using macros. Originally, macros were the standard for creating a recorded file of commands and settings to run a programming function. The JobMaster software incorporates the usability of the macro function with enhanced features and supplies a way to monitor, via revision history and logs, and secure all jobs created and stored within the software.

JobMaster Files

A JobMaster file is created and stored as a singular device programming job file with a ".bp" extension. It saves the device name, device programming configurations, data pattern file and options, device command tab settings, serialization settings, job notes and version history. JobMaster files are extremely flexible, enabling the user to create and transfer any .bp or .abp file to and from any location using the BPWin software.

Loading a JobMaster file sets up the programmer for device programming by selecting the device, setting the device configuration, loading a data pattern into the data buffer, and choosing the programming options. If using an autohandler, a JobMaster file is linked to an autohandler workflow file (.abp) which has additional autohandler specific information. The BPWin software uses the .bp files to perform specific jobs set up by a Supervisor.

Both .bp and .abp files can also be accessed directly through the Windows Explorer program. The BPWin software will be launched and the designated .bp or .abp file will be loaded into the BPWin software.

Some other .bp and .abp file benefits are:

  • Files are encrypted.

  • Files are error checked automatically.

  • Files cannot be used if they have been modified inadvertently.

  • Data sharing with .bp and .abp files makes it easier for global companies to share data. Transferring designs from engineering to manufacturing or from customers to programming centers is easy and hassle-free. These files can be simply copied to a storage device, put on a network, or can be sent via email.

Back To Top

Job Notes and Revision History

JobMaster also provides a user-defined Note field, complete with revision history for managing additional information that the user may need to know before running a job. This revision history and all Note entries are displayed to the user when a job file is loaded and can also be accessed from the JobMaster pull-down menu.

User-defined information written in HTML or CSS can be added to the Job Note for additional impact or to add links to open in a new browser window. Viewing the Job Report source can provide some additional information BPWin uses to create the fields and the CSS classes used. Some browser settings may need to be changed to accommodate linking.

Example of CSS typed in the Job Note during a save - The plain text code can be copied to the clipboard.

Resulting Job Note when job is loaded \ viewed...

JobMaster Integrity Check

JobMaster Integrity Check (JIC) is a safeguard that executes prior to running a job to ensure that no software settings have been modified since the job was loaded from disk. When a JobMaster Integrity failure occurs in Supervisor mode, the user will be prompted and has the option to continue with the operation. In Operator mode, however, an integrity failure results in the default configuration being set and the device operation is cancelled.

For BPWin v4.80, JIC has been upgraded to detect incompatibilities between the current job settings and the particular device's required settings.

Here is the job execution sequence of events:

  1. User configures the job using the BPWin GUI.

  2. User executes the job.

  3. JIC runs.

  4. If JIC passes, the job execution begins which includes the programmer running device-specific algorithm code used to program the device.

  5. The device-specific code may potentially override the settings the user selected when configuring the job if they are incompatible with the device's required settings. Such a case is rare, and only occurs for a very small number of device algorithms.

  6. Devices will be programmed and job completes.

  7. If the user tries to run the job again, they will receive a JIC failure if the device-specific code modified any of the settings (New for v4.80).

User Modes

BPWin can operate in two separate modes, Supervisor and Operator mode:

  • Supervisor Mode – This mode allows full system access. Users can create and edit jobs with no restrictions, as well as run jobs that have been modified since they were loaded (overriding JobMaster Integrity Check) if they so choose. In this mode users can also change the JobMaster Password when using Shared-Password Security.

  • Operator Mode – This mode restricts system access. Users can load and run JobMaster files, but cannot create new jobs, modify existing jobs, or change JobMaster settings. Also if an operator tries to run a job that has been modified since it was loaded from disk, JobMaster Integrity Check will fail and set the default configuration which prevents device programming.

Security Models

As of BPWin v4.76 JobMaster supports two different security models each intended to limit Operator access to BpWin features:

  1. Shared-Password Security – This type of security utilizes a shared password that a Supervisor specifies to control access to Supervisor mode. When in Operator mode, a user will be asked to enter this password to switch to Supervisor mode. Using this security model, all Operators have identical (but limited) permissions to BPWin features as described above. There is no way to selectively grant or deny certain operators unique access rights.

  2. Windows Account-Based Security – This type of security utilizes pre-existing Windows accounts and permissions to regulate access not just to Supervisor mode, but to a myriad of fine-grained BPWin features. Permissions to these features may be selectively granted or denied specific operators by using standard user management tools already included with Windows. Instead of using a shared JobMaster password to allow access to Supervisor mode, supervisors specify their Windows Account credentials (username and password). For more information about this security model see Windows Account-Based Security.

Back To Top

Job Protection

The Intellectual Property of an embedded data pattern and device configurations of a JobMaster job can be protected (locked) by selecting this option before saving the job. Only users given the Job Protection password can "unlock" the protected job.

Features

  • Utilizes password that is specified during job save to lock the job.

  • Allows the job creator to specify an optional list of device operations that cannot be performed by users of the job.

  • When loading a locked job, the user is restricted in what they can access:

    • The data pattern is fully encrypted and cannot be viewed, accessed, or extracted.

    • The user is prevented from modifying any programming-related parameters, although serialization parameters are still accessible.

    • All device operations denied by the job creator cannot be performed.

  • Job can be unlocked only with the original password.

Other considerations

  • This option is disabled when using an externally linked data pattern. To truly protect a job, the data pattern must not be viewable. This is why the feature is only enabled when using an embedded data pattern.

  • Unsecured Devices - If the data pattern is programmed into an unsecured device, it can simply be read back again from an unlocked job and viewed. Therefore, job protection only makes sense to use when using a securable device. Otherwise, the user can find the contents of the data pattern in another way.

  • Loading a Locked Job - When a locked job is loaded, the "Compare" command, if applicable, will be unavailable. The user will be able to select the "Compare" tab, but will not be able to execute this command.

Example of Use

A user wants to program and secure a microcontroller (MCU) with a sensitive data pattern and is concerned that its contents will be leaked when sending the job to the programming center.

  1. He decides to embed the data pattern in the job and locks the job with a password that only he and another colleague in his own company know.

  2. The programming center receives the locked job and is unable to view/edit the data pattern or modify any programming parameters (serialization options are allowed to be modified).

  3. Once the serialization parameters are set, the programming center saves the job (which is still locked) and is able to run it to program as many devices as the customer needs.

JobMaster Security vs. Job Protection

It is important to make a distinction between JobMaster security and Job Protection.

JobMaster security (Operator Mode) is used when the you wish to restrict what a particular user or any user on a particular PC can do. For instance, the supervisors working at the programming center decide who should and who should not have access to certain BPWin features. This is an internal security policy to the programming center.

Job Protection, on the other hand, is used to protect a job, regardless of the user. Even supervisor users will be restricted when using a locked job. In this scheme, the creator of the job has control of who should and should not be able to modify it. Only those to whom the job password is expressly given will be able to modify the job.

Installation of JobMaster

JobMaster is supplied within the BPWin software. To receive JobMaster on an older version of software, you must first acquire the JobMaster software feature from BPM Microsystems' Sales or Technical Support. Once you have purchased and loaded JobMaster, the JobMaster pull-down menu will be visible from the menu at the top of the BPWin software main screen.

Back To Top


JobMaster Options

Enter Operator or Supervisor Mode

Unlock Protected Job

Load Job

Save Job

Save Job As...

JobMaster Configure

Change Password

View Job Setup Report

II. BPWin device programming - ch 11

JobMaster options

If you select JobMaster from the pull-down menu you can access all the following options in Supervisor mode.

Note: When working in Operator mode only the Load Job and View Job Setup Report options are available in the JobMaster pull-down menu.

JobMaster > Enter Operator Mode or Enter Supervisor Mode

Use this function to set up the BPWin software to run in Operator Mode, which limits access to functionality within the software, or Supervisor Mode, which allows the software to run in full access mode.

JobMaster>Unlock Protected Job...

Only available when a locked job is currently loaded. The user will be prompted for the password. If it matches, the job is unlocked.

JobMaster > Load Job...

Loads existing JobMaster (.bp) files for programming. The job will load the device and data pattern information, and configuration options from the JobMaster file. A Job Report dialog opens with Job Setup Verification information including the buffer file name, checksum, device name and any notes from the file. If the job has been protected, a "Password-Protected" statement will be seen under the verification header. Click OK to continue the load. Click Cancel to set BPWin to the default configuration.

The bottom of the JobMaster menu includes a list that provides quick access to the 5 most recently used JobMaster files.

JobMaster > Save Job

Only available in Supervisor mode, saves the information chosen within the software (device, data pattern, and configure options) under a specific job file to be run while programming.

The Save Job function can also be used to add or remove notes already attached to the current job.

Creating a New JobMaster File

    1. On the BPWin Main screen, select JobMaster > Save Job from the pull-down menu.

    2. Enter the new file name in the File Name field and select a location to save the Job file (.bp).

    3. Click the Save button. The JobMaster File Note dialog appears on the screen.

    4. Enter any information that applies specifically to the job, add HTML or CSS code, or leave it blank. You can use this field to inform the operator of any information that might be useful to the job. The Note option is another user-definable field that will be displayed whenever the job is selected. If the field contains information, a dialog appears on the screen when a job has been selected.

    5. Click the OK button.

    6. The Output bar at the bottom of the screen will verify the job was saved.

Note:

  • JobMaster keeps track of the date, time, and author of each job’s creation, and every subsequent revision.

  • Before creating a new job within JobMaster, be sure to provide device programming information. Click here for more information.

JobMaster > Save Job As...

Only available in Supervisor mode, is used to create new job file using a copy of an existing job file.

Copying an Existing Job

    1. On the BPWin Main screen, select JobMaster > Load Job... from the pull-down menu. The Open dialog appears on the screen.

    2. Select the job file you want to load and click on the Open button. The Job Setup Verification dialog appears on the screen.

    3. Click the OK button to return to the BPWin Main screen.

    4. Select JobMaster > Save Job As... from the pull-down menu. The Save Job As dialog appears on the screen.

    5. Enter the new file name in the File Name field and select a location to save the file.

    6. Click the Save button. The JobMaster File Note dialog appears on the screen.

    7. Enter any information that applies specifically to the job, add HTML or CSS code, or leave it blank.

    8. Click the OK button.

    9. The output window will report the job was saved.

Back To Top

JobMaster > JobMaster Configure...

This menu item is enabled in Supervisor mode only and opens the JobMaster Configuration dialog.

Operator Mode

  • Use Windows Account-Based Security - Select to use the Windows Security model instead of the Shared-Password security model. See the Windows Account-Based Security section for more information about this security model. Note that when this is selected, the Start In Operator Mode and Enable laser mark input fields in Operator Mode check boxes will be disabled and unchecked.

  • Start in Operator Mode - Select to allow software to start-up in Operator mode when using Shared-Password Security. Operator mode allows only basic functions, such as selecting a job file, entering a job quantity, viewing notes, selecting a device command tab and running a job. It covers the basic areas that the Operator will need to have access to in order to perform jobs. A password will be required to enter Supervisor mode. Note that this checkbox is disabled and ignored when using Windows Account-based Security.

  • Enable Laser Marker Input Fields in Operator Mode - For use with automated programming systems. Select to enable the input fields of the laser configure dialog box when using Shared-Password Security. Note that this checkbox is disabled and ignored when using Windows Account-based Security.

Data Pattern

  • Store Data Pattern in JobMaster File - Data buffer data can be contained by the JobMaster file (when checked) or reside in an external data pattern file linked to the JobMaster file.

For JobMaster files with externally linked data pattern files, the data pattern will be loaded into the buffer from the data pattern file at the location stored in the JobMaster file.

The following file types support external file linking:

    • ASCIIHex

    • JEDEC

    • SDSMAC320

    • Binary

    • Motorola

    • Straight

    • FormatBin

    • OMF

    • TekHex

    • Intel

    • SDSMAC

  • Qualcomm® 2.1

    • TI

Note:

    • Binary data patterns > 1GB can only be linked externally.

    • Externally linked data patterns do not have a Job Protection option.

  • Compress Data Pattern (available when the data pattern is stored in the JobMaster file) - Compress the data pattern to reduce its size when storing it in the JobMaster file. Data pattern compression can greatly reduce the size of the JobMaster file without any loss or corruption of the original data pattern content. Most data patterns can be compressed significantly, but occasionally some cannot such as when the data pattern is mostly comprised of already compressed data (for example, JPG, MPG, MP3, compressed file system images, etc.) or encrypted data. You may decide to disable this option if the data pattern is not further compressible or if the compression algorithm runs too slowly on your PC causing lengthy JobMaster file load and save times. However, there is no harm in leaving compression enabled for such data patterns.

  • Enable Job Protection (available when the Data Pattern is stored in the JobMaster file) - Allows the job creator to restrict access to the Data Pattern and other programming parameters, as well as deny access to certain device operations. The job creator specifies a "Job Lock" password that can be used to unlock the job and restore full functionality.

Usage Details:

    • When this option is enabled, Data Pattern access will be restricted (no access to the Data Pattern editor). The "Job Permissions" button can be used to configure which additional device operations should be restricted.

    • When Job Protection is in use, the job creator will be prompted for the job lock password when saving the job. This password is case-sensitive and not recoverable if lost. If no password is specified (blank password) the job will not be locked.

    • When the protected job is loaded, all restricted functions will be disabled.

    • To restore full control, the user must unlock the job by selecting JobMaster->Unlock Protected Job... and specify the job lock password for that job. If the password matches the one saved in the job, the job is unlocked.

    • Note that the job can only be unlocked in the current session. Loading the original file will still result in a restricted access. To permanently disable the job lock on a particular job, the job should be saved with the "Job Protection" feature disabled or with a blank password.

    • If a user saves a locked job while it is still locked, he/she will not be prompted for a password. Instead the same password used to lock the job will be used. This allows the user to load a locked job, modify the serialization parameters for instance, then re-save the locked job within gaining access to any restricted functionality.

  • Verify Data Pattern Checksum on Job Load - Data pattern checksum can be verified by a user before the JobMaster file is loaded. When enabled, loading of the JobMaster file will be postponed until the correct checksum is entered by the user.

  • Report Data Pattern Changes As - Select "Log", to allow or "Error", to prohibit loading a job if JobMaster detects a change to the externally linked data pattern file.

When JobMaster is configured to link to a data pattern, you have the option to control how BPWin will handle changes made to the data pattern file after the job was saved. Linked data pattern changes can be reported in the output window and logged in the status bar, or can be reported as an error message pop-up that can prevent the job from loading.

    • Log - When BPWin is configured to report changes by logging, the job will be allowed to load and device operations will be possible. The details of the change including the timestamps and the CRCs will be output in the status bar log and in the output window. This mode allows one job to use various data patterns by updating the data pattern file prior to loading the job. Changes to the data pattern are never allowed after the job is loaded. Doing so will trigger a JobMaster Integrity Check failure.

    • Error - When BPWin is configured to report changes as an error, a pop-up error message will be shown detailing the change including the timestamps and the CRCs.

      • In Supervisor Mode - The user will be given the option to accept the changes and continue loading the job or to reject the changes and to halt the loading of the job.

      • In Operator Mode - The job load will always be halted and all configurations reset.

      • When Controlling BPWin via the Automation Object Model CJobControl - No pop-ups will appear and the job load will be aborted. Reporting linked data pattern changes as an error is useful when you want to "lock-down" the data pattern to insure against changes, particularly for very large data patterns that cannot be embedded in the job file.

Determining File Changes

File timestamps and CRC values are used to determine file changes. First, the timestamp of the data pattern file is compared against the timestamp stored in the job file. The timestamp in the job file corresponds to the timestamp of the data pattern file at the time the job was saved. Differences in time zones will not affect this comparison. For example, you may save the job in one time zone and load it in another without causing BPWin to detect a difference. Timestamps are internally stored in ISO 8601:2004 format. If BPWin detects that the timestamps do not match, a CRC-32 calculation is then performed on the loaded data pattern content, and compared to a CRC-32 in the job file that was calculated when the job was saved. If these two CRCs do not match, then BPWin will report a data pattern change. For very large data patterns, the CRC-32 calculation may take some time. For this reason timestamps are used to pre-check potential changes and avoid the calculation when possible.

Other Options

  • Enable Job ID - When checked, a prompt will appear to enter text for a Job ID before running a job. This ID will be printed on the Job Summary Report.

  • Use Job ID for Job Summary Report Filenames - This option is only available if "Enable Job ID" is checked and the "Auto Save Job Summary Report" option is enabled. When checked, the text entered for the Job ID will be used as the filename for the automatically-saved Job Summary Report.

  • Set Default Configuration after Job Completion - When selected, the default configuration will be set after a Job Session successfully completes. Default configuration will not be set if no job is loaded or if the Job Session is terminated pre-maturely for any reason.

  • Use loaded Data Pattern File path as Default Job Save Path - When selected, performing a "Job Save As" will result in being prompted to save a job file with the default directory set to the currently-loaded Data Pattern File's parent directory. This is convenient when you want job files created in the same directory as their associated data pattern files.

JobMaster > Change Password...

Opens the JobMaster Password dialog to allow a Supervisor to change a JobMaster password. This function is only available to Supervisors when using Shared-Password Security. When using Windows Security, there is no shared password and instead Windows accounts and permissions are used to govern access to Supervisor mode. See Windows Account-Based Security for more information.

JobMaster > View Job Setup Report...

This menu item is only accessible when a JobMaster File is loaded. A history of all the modifications made to the JobMaster file appears in the JobMaster Note dialog. Each job save will be in the Note History, including a timestamp, BPWin version, author (Windows log-in name) and any notes added by the author.

Back To Top


Headings can be put in a note.

Font properties can be set using HTML or CSS.

Add the already named separator.

Add a link to open in a new browser page...

BPM Website

Here is an image:


BPWinLauncher Utility

Running the Utility without Command Line Arguments

Running the Utility with Command Line Arguments

Using with CJobControl

II. BPWin device programming - ch 11

JobMaster Revision Control Utility

The JobMaster Revision Control Utility (BpWinLauncher.exe) is a stand-alone utility that can read a JobMaster file (*.bp) or Automated JobMaster file (*.abp) to determine what version of BPWin created the JobMaster file and then launch that version of BPWin. For .abp files, the version of BPWin that will be launched is not the version that created the .abp file, but the version that created the associated manual .bp file. The utility is installed in the same target directory as BPWin and works with BPWin 4.64 and above.

The version of BPWin the job was last saved with, is the version that will be launched.

Example: A JobMaster file, 123.bp was created using BPWin 4.62.0. That same job is loaded into BPWin 4.66.0 and then saved. When 123.bp is selected, BPWinLauncher will launch BPWin 4.66.0 for that job.

The JobMaster file association with the BPWinLauncher will be lost whenever a new version of BPWin is installed. This is because JobMaster files are associated with BPWin upon installation. BPWinLauncher will need to be rerun without any command line arguments in order to restore its association with JobMaster files.

If the version of BPWin specified in the JobMaster file is not installed, you will receive an error message stating that the BPWin version that is associated to the JobMaster file could not be found.

Running the Utility without Command Line Arguments

Running the utility without any command line arguments will give you the option to make the launcher the default application for all JobMaster files.

If Yes is selected in the above dialog box, later, when a JobMaster file is selected, the utility will run and extract the version of BPWin from the JobMaster file. The utility will then attempt to launch that version of BPWin and load the JobMaster file. A JobMaster file can be selected in Windows Explorer or select Start > Run from the Windows Start menu.

Running the Utility with Command Line Arguments

Alternatively the JobMaster Revision Control Utility can be executed from the command line by supplying a path to a JobMaster file as shown below.

Run BPWinLauncher Using Command Line

The utility will run, extract the version of BPWin from the JobMaster file, launch that version of BPWin and load the JobMaster file. Using the utility in this manner does not require making BpWinLauncher the default application.

Using with CJobControl

In order to maintain compatibility with CJobControl, the BPWinLauncher provides an ActiveX class, CLauncher, containing the method RegisterJmBpWin that clients can invoke specifying a JobMaster (*.bp) file that will cause the launcher to register the version of BPWin used to create the JobMaster file. Subsequent usage of CJobControl will launch the corresponding BPWin version.


Shared-Password Security Model

Windows Account-Based Security Model

Running a Job in Operator Mode

II. BPWin device programming - ch 11

securing jobmaster data

In a typical production environment, it is useful to restrict user access for those who are not authorized or qualified to make changes to job settings. To facilitate this, BPWin supports two distinct security models each geared at limiting operator's access to the system.

Shared-Password Security Model

This security model utilizes a shared password to regulate access to Supervisor mode. A supervisor must setup the password that will be used and configure BPWin to start in Operator mode, thus locking down the system. Only users with the shared password may enter Supervisor mode.

Advantages:

  • Provides a simple approach to security with a short setup time.

  • Allows all operators and supervisors to share a single Windows user account.

Disadvantages:

  • If the shared password is compromised, it needs to be changed on all systems that employ it.

  • Provides only a limited set of features that can be selectively enabled or disabled for all operators.

  • Grants all operators identical access to system features. A supervisor cannot grant certain operators more or less access than others.

See Shared-Password Security Model for more information. To enable Shared-Password Security, see the JobMaster Configuration dialog in JobMaster Options.

Windows Account-Based Security Model

This security model utilizes Windows accounts and permissions to regulate access not just to Supervisor mode, but to a myriad of fine-grained BPWin features. Permissions to these features may be selectively granted or denied specific operators by using standard user management tools already included with Windows. Instead of using a shared JobMaster password to allow access to Supervisor mode, supervisors specify their Windows Account credentials (username and password).

Advantages:

  • Provides a very secure method for controlling access to BpWin features that cannot be bypassed.

  • Leverages existing Windows tools to manage users and grant or deny permissions.

  • Utilizes the permissions of the current Windows user to determine system access rights thus obviating the need for a shared (and vulnerable) JobMaster password.

  • Allows a rich set of fine-grained system features that can be selectively granted or denied each individual operator independently.

Disadvantages:

  • Requires that supervisors do not share Windows accounts with operators.

See Windows Account-Based Security Model for more information. To enable Windows Account-Based Security, see the JobMaster Configuration dialog in JobMaster Options.

Running a Job in Operator Mode

This can be accomplished two ways, with BPWin running or by using the JobMaster Revision Control utility.

Operator mode can only perform device commands, for example, Program or Read. Operation selections within each command cannot be changed. When loading a job in Operator mode, if the default buffer value stored in the JobMaster file is different from the default buffer value contained in the image data, an error message appears and the load operation will be aborted. In Supervisor mode, the user has the option to continue loading the job.

When saving a job (Supervisor mode only), if the current default buffer value does not match the default buffer value used when populating the buffer, an error message appears and the job save will be aborted. The user will have to change the default buffer value before the job can be saved.

  1. Select JobMaster > Load Job... from the pull-down menu.

  2. Select the JobMaster file to load and click the OK button. The Job Setup Verification dialog appears on the screen to display any notes that are applicable along with the revision history for those notes.

  3. Click the OK button to load the job file.

  4. Enter the number of devices being programmed in the Quantity field.

Note: This refers to the number of devices that should be successfully programmed, not the number of attempts, to allow for any rejects that may normally occur.

  5. Verify all the options and configurations before proceeding.

  6. If everything is correct, click on the command button, for example, Program or Read, depending on the job operation requirement.

Back To Top


Password Protection

Start in Operator Mode

Returning to Supervisor Mode

Migrating Security Settings from BPWin v. 4.74 and Prior

II. BPWin device programming - ch 11

Shared-Password Security

This security model utilizes a shared password to regulate access to Supervisor mode. A supervisor must setup the password that will be used and configure BPWin to start in Operator mode, thus locking down the system. Only users with the shared password may enter Supervisor mode.

Password Protection

Set a New Password

  1. To set a new password, select JobMaster > Change Password from the pull-down menu.

  2. Enter the password in the New Password field and re-enter the password in the Verify New Password field.

  3. Click the OK button.

Note: JobMaster passwords are case-sensitive.

Change a Password

  1. To change an existing password, select JobMaster > Change Password from the pull-down menu.

  2. Enter the current password in the Old Password field.

  3. Enter the new password in the New Password field and re-enter the password in the Verify New Password field.

  4. Click the OK button.

Start In Operator Mode

Default to Operator Mode when launching BPWin

  1. Select JobMaster > JobMaster Configure... from the pull-down menu.

  2. Check Start in Operator Mode. The next time BPWin is launched, it will be in Operator mode.

Returning to Supervisor Mode

  1. To return to Supervisor mode upon start up, select JobMaster > Enter Supervisor Mode from the pull-down menu and enter the Supervisor password.

  2. Select JobMaster > JobMaster Configure... from the pull-down menu. The JobMaster Configure dialog appears on the screen.

  3. Uncheck Start in Operator Mode. The next start up of the BPWin software be in Supervisor mode.

Migrating Security Settings from BPWin v4.74 or Prior

BPWin v4.76 introduces several changes to Shared-Password security in addition to implementing an entirely new security model (see Windows Account-Based Security Model). Previous to BPWin v4.76, all Operator mode-related settings including the JobMaster password were saved in the programmer itself. Starting with BPWin v4.76 these settings are being migrated to the Windows registry.

If started while connected to a programmer, BPWin v4.76 will detect the JobMaster settings in the programmer and migrate them to the registry automatically. From that point on, BPWin will no longer query ANY attached programmer for JobMaster settings. Otherwise, if no programmer is connected, each time BPWin is launched it will check for programmer connectivity to migrate the JobMaster settings. BPWin will do this upon each start-up until either a programmer is eventually detected, the user has manually edited the JobMaster options using the JobMaster Configuration dialog, or the user changes the JobMaster password. At such point, BPWin will no longer query the JobMaster settings in any attached programmer.

Note: If more than one programmer is connected to the PC, the JobMaster settings of the Master Site will be migrated.

Back To Top


Windows Accounts

To Run BPWin Under a Restriced Account

Operator Mode Permissions

II. BPWin device programming - ch 11

Windows Account-Based Security

This security model utilizes Windows accounts and permissions to regulate access not just to Supervisor mode, but to a myriad of fine-grained BPWin features. Permissions to these features may be selectively granted or denied to specific operators by using standard user management tools already included with Windows. Instead of using a shared JobMaster password to allow access to Supervisor mode, supervisors specify their Windows Account credentials (username and password).

Windows Accounts

Windows accounts are a critical element required to use the Windows Security Model. Supervisors should have Administrator accounts, while operators must use Restricted accounts since Windows account permissions are the sole factor in determining BPWin access rights.

There are three main principles that govern BPWin security using the Windows Security Model:

  1. Only Supervisor users can switch a system between Operator and Supervisor modes. A Supervisor running BPWin under his/her account is able to switch freely between Operator and Supervisor modes without entering any username or password information. Since the Windows logged-in user is a Supervisor no further authentication is needed to change BPWin's user mode. However, note that while in Operator mode, a Supervisor will still have restricted system access to simulate what an operator would experience using the same PC.

  2. When logged into Windows as an operator, a supervisor's Windows username and password is required to switch between Supervisor and Operator modes. Note that Supervisor credentials must be entered to switch to either mode. Switching from Supervisor back to Operator mode requires the same authentication as switching from Operator to Supervisor mode. This is because only Supervisor accounts have write-access to change the user mode.

  3. Note that when using this Security Model, BPWin will always start in the same mode it was in during the previous session. The Start In Operator Mode feature in the JobMaster Configuration dialog is disabled and ignored. Therefore a Supervisor using BPWin in Supervisor mode should remember to switch to Operator mode before logging off the computer if he/she wants operators to start in Operator mode when they log in.

Note: When using Windows Account-Based Security, a Supervisor must change the mode to Operator mode before logging off Windows if he/she wants operators to start BPWin in Operator mode.

To Run BPWin Under a Restricted Account

After a restricted Windows user account has been created, access to certain folders need to be granted on the computer for all users.

  1. In Windows Explorer, navigate to the C:\BP folder.

  2. Right-click on the folder and select Properties from the pop-up menu.

  3. Select the Security tab.

  4. Find "Users" in the Group or user name window. Add "Users" if it does not exist (see the Administrators entry in the list as an example).

  5. Click the Full Control checkbox in the Allow column so that it is checked.

  6. Click OK.

  7. Perform the identical procedure to grant Full Control on the folder where BPWin is located. If there are several versions of BPWin that exist as subfolders of the same parent folder, i.e. C:\Program Files\BP Microsystems on 32-bit systems or C:\Program Files (x86)\BP Microsystems on 64-bit systems, then perform this procedure just on the parent folder and it will correctly assign permissions to all the BPWin versions currently installed as well as future versions that will be installed under the same parent folder.

B ack To Top

Operator Mode Permissions

Supervisors can customize system access rights to several BPWin features for each operator individually by modifying Windows account permission settings.

To do this, navigate to:

HKEY_LOCAL_MACHINE\Software\BP Microsystems\BPWin\JobMaster\Permissions

using the Windows registry editor tool (regedit.exe). This registry key contains several subkeys each representing a specific BPWin feature. To grant a particular operator access to a certain feature, right-click on the feature and select Permissions... from the pop-up menu and specify that the desired operator has Full Control of the registry key. Or, to grant access to a particular feature to all operators, simply give full control of that feature to the entire Users group. A list of all registry keys and what they represent are listed below. Note that the keys are organized in a hierarchy according to their function. Each folder that contains sub-keys is bold-italicized.

Root: HKEY_LOCAL_MACHINE\Software\BP Microsystems\BPWin\JobMaster\Permissions

  • Aps\ - Contains all Autohandler related permissions

  • Diagnostics - Autohandler | Diagnostics... menu item

  • Laser\ - Contains all Laser Marker related permissions

    • Advanced - Advanced button in Laser Marker Configure dialog

    • Calibrate - Calibrate button in Laser Marker Configure dialog

    • Erase\ - Erase settings in Laser Marker Configure dialog

      • Dimensions - Dimensions to erase

      • Enable - Erase before Mark checkbox

      • Power - Laser power

      • Speed - Laser speed

    • Marker\ - Marker settings in Laser Marker Configure dialog

      • Dimensions - Dimensions to mark

      • Power - Laser power

      • ProjectFile - Load project file settings

      • Speed - Laser speed

      • Text - Marker Text

Note: The Enable laser mark input fields in Operator mode checkbox in the JobMaster Configuration dialog is disabled and ignored when using this security model. Instead write-access to this registry key determines access to this feature in Operator mode.

    • Test - Test Laser button in Laser Marker Configure dialog

  • LaserPresenter - Autohandler | Laser Presenter Control... menu item

  • LoadManualJob - Load Manual Job in Autohandler mode

  • Options\

    • AdvTapeLoaderEnd - Tape Loader Advance at End of Job edit box

    • AdvTapeLoaderStart - Tape Loader Advance at Start of Job checkbox

    • AlignRejectedDevices - Align Rejected Devices checkbox

    • MaxSiteFailures - Maximum number of site failures edit box

    • RejectDestination - Reject Destination radio buttons

    • SkipEmptyPockets - Skip Empty Tray Pockets checkbox

    • SpecifyFirstPocketOnInputTray - Specify First Pocket on Input Tray checkbox

    • TapeLoaderEnable2DVisionInspection - Tape loader 2D vision inspection check box

    • AllowJobMasterRelink - "Allow JobMaster File relinking" checkbox in the System Settings dialog

    • StationPickPlaceOverdrive - Enables/disables access to the Station Pick-and-Place Overdrive Wizard

  • SwitchHandlerMode - Configure | Handler Type List Box

  • Teach - Autohandler | Teach... menu item and Re-Teach Peripherals button in Job Abort dialog.

Note: When this permission is not granted, the operator will not be able to elect to teach using the menus, any automatic teaches that are required to run the job will still be performed in operator mode when the job is first executed.

  • TubeStacker - Autohandler | Tube Stacker Control... menu item

  • Vacuum - Autohandler | Vacuum Control... menu item

  • WizardTeach\

    • Pin1Orientation - Select Pin 1 Orientation in Teach Wizard

  • Workflow\ - Autohandler | Workflow Configuration... related permissions

    • PackageType - Package combo box

    • Sources - Source media category

    • Programmers - Programmer media category

    • Markers - Marker media category

    • Destinations - Destination media category

    • Rejects - Reject media category

  • Programmer\ - Programmer related permissions

  • Diagnostics - Tools | Programmer Diagnostics menu item. Without this permission, the TEST button used to run self test when the 'BP Microsystems Diagnostics' device is installed will be disabled.

  • SocketCardMaintenanceInterval - Operator mode permission for updating SM Maintenance Interval. This permission is denied in Legacy Operator Mode.

  • PowerSupply - Tools | Power Supply... menu item

  • Serialization - Tools | Serialization... menu item

  • DataPattern - Access to the Data Pattern load, save, and edit operations as well as sets & banks controls.

  • DeviceOperation$Blank - Access to the Blank Tab device operation ("Blank" button on the "Blank" Tab of the main GUI)

  • DeviceOperation$Compare - Access to the Compare device operation ("Compare" button on the "Compare" Tab of the main GUI)

  • DeviceOperation$Erase - Access to the Erase device operation ("Erase" button on the "Erase" Tab of the main GUI)

  • DeviceOperation$Program - Access to the Program device operation ("Program" button on the "Program" Tab of the main GUI)

  • DeviceOperation$Read - Access to the Read device operation ("Read" button on the "Read" Tab of the main GUI)

  • DeviceOperation$Secure - Access to the Secure device operation ("Secure" button on the "Secure" Tab of the main GUI)

  • DeviceOperation$Special Operations - Access to the Special Operations device operation ("Execute" button on the "Special Operations" Tab of the main GUI)

  • DeviceOperation$Sum - Access to the Sum device operation ("Sum" button on the "Sum" Tab of the main GUI)

  • DeviceOperation$Test - Access to the Test device operation ("Test" button on the "Test" Tab of the main GUI)

  • DeviceOperation$Verify - Access to the Verify device operation ("Verify" button on the "Verify" Tab of the main GUI)

Back To Top


Help

The BPWin Help is comprised of autohandler safety and operating precautions, BPWin software information, PDF manual links to some of the BP-3000/4000 series peripherals, basic troubleshooting help and how to contact technical support.

Help > Tech Support...

Lists the phone numbers, email address and website link for contacting Technical Support.

Help > Registration...

Prompts the user for information to register the programmer model and software.

  1. Click the Yes button located on the Software Expiration dialog.

  2. The Programmer Registration dialog appears on the screen. Fill out the required fields and click the OK button.

  3. Follow the instructions provided in the Registration Instructions dialog and click the OK button.

Upon receipt of the BPUnreg.bpr file, BPM Microsystems will validate the information regarding the programmer and email a BPREG.db file that must placed in the directory of the BPWin executable.

Help > About BPWin...

Displays the current BPWin software version number.

Once this item is selected, a dialog pop-up window will appear that contains the current software version number, algo database revision, and software release date.


Programmer Maintenance

II. BPWin device programming - ch 13

Maintenance

BPM Microsystems manual and concurrent programmers are designed to require no routine maintenance. However, we do recommend a yearly calibration. The socket modules and sockets do require some maintenance to get maximum usage. Use a dry cloth to wipe down and clean the programmer.

Cleaning a Dirty/Oxidized Socket

Cleaning sockets with a blast of high-pressure air on a regular basis is recommended.

If a DIP socket becomes dirty or oxidized, it will fail to make contact with some of the chip pins. For a DIP type socket, a simple fix is to place your chip in the socket, push the lever down, and slide the chip left and right a few times.

Other socket types will require different cleaning methods.


Bad Block Management Overview

Partitioning Example System

Design Tips

Further Information

II. BPWin Device Programming - App A

Appendix A - Programming NAND Flash

Bad Block Management Overview

NAND Flash devices ship from the manufacturer with a pre-determined number of physical blocks electrically marked as "Bad." These blocks are not suitable for use and must be omitted from operations such as Erase, Program, and Verify. Furthermore, as the device is used in the end-application circuit, it is subject to further developments of Bad Blocks throughout the life-span of the system as the endurance limits of the blocks are reached. Systems employ wear-levelling algorithms to distribute the erase/program cycles across a larger number of blocks in an effort to reduce the number of cycles that a single block is subjected to. Certain types of NAND Flash technologies are also subject to bit "disturb" corruption when programming and reading the device as part of nominal behavior. These bit errors must be detectable and correctable by the system but otherwise do not warrant marking the block as "Bad."

For these reasons, interfacing to raw NAND Flash requires a significant amount of system complexity. Some of these requirements spill over into the factory programming arena, namely the aspects concerning Bad Block Management. There are six defining characteristics of a Bad Block Management (BBM) scheme:

  1. Bad Block Replacement (BBR) Strategy

  2. Partitioning

  3. Error Correcting Code (ECC) algorithm

  4. Spare Area Placement

  5. Free Good Block Formatting

  6. Dynamic Metadata

Bad Block Replacement Strategy

Defines what the algorithm must do when a Bad Block is encountered. An algorithm strategy is needed to determine where the data for that block must reside as an alternative to the physical block that is bad. There are two fundamental Bad Block Replacement Strategies:

  1. Skip Bad Blocks - In this strategy, the replacement block is simply the next good physical block following the bad block in ascending order. This is the most common strategy when factory programming, and is best in terms of throughput (DPH) in the factory programming process.

  2. Reserved Block Area - This utilizes a specially reserved "reservoir" of blocks, generally at the end of the NAND device, to be used as replacements for Bad Blocks that are encountered in the main partitions, called the User Block Area (UBA). When a Bad Block is encountered during programming, the data pattern content originally destined for it is instead programmed into one of the Good Blocks in the Reserved Block Area (RBA) reservoir. Since this strategy is not linear in nature, a table must be maintained that maps Bad Blocks to the RBA replacement block.

Partitioning

Allows the physical memory blocks of a NAND device to be logically divided into contiguous groups for the storage of specific parts of the Data Pattern. This creates a guaranteed physical structure where the system processor can locate specific portions of the Data Pattern at fixed block locations regardless of the occurrence of Bad Blocks on the NAND device. For "Store and Download (SnD)" applications, this is crucial during the early stages of system initialization, when the system is bootstrapping and doesn't have the software loaded that can deal with a complex file system. SnD systems will typically have four or more partitions -- one small partition for the bootstrap code, another for the OS loader, another for the OS kernel itself, and another larger partition usually encompassing the remainder of the NAND device for the file system. Partitioning a NAND device can be done for other reasons, such as creating multiple logical devices with unique file systems in the end-application.

During factory programming, partitions essentially allow for allocating more NAND blocks than are necessary for storage of the image data. This provides for some 'padding' in case Bad Blocks are encountered in the partition. The partition with the Bad Block(s) can relocate the data for that block into the next Good Block (when using Skip Bad Blocks BBR strategy) without encroaching upon the next partition's starting block. The device programmer must fail NAND devices that have more Bad Blocks in a partition than what the padding allows for. In this scenario, a NAND device could be rejected even if it had less than the maximum number of total allowable Bad Blocks, because the Bad Blocks occurred in locations that weren't compatible with the partitioning. The risk of this happening is mitigated by allocating increasing amounts of padding in each partition, but at the cost of wasting increasing amounts of NAND memory on most of the programmed devices. There is an engineering trade-off to be made between "memory utilization vs. yield." With too little padding, yield will suffer during factory programming as devices are rejected for not being able to meet the partitioning requirements. With too much padding, memory on all devices is wasted just to avoid rejecting a small portion of the devices in the job -- and that cost could outweigh the savings achieved by the slight yield increase.

Error Correcting Code (ECC)

Algorithms are stored in the Spare Area (also called the "Out-of-Band Area") of each NAND page, and allow the system processor or controller to detect data corruption in the main page area. In most cases ECCs can correct the error. There are three ECCs predominately used for NAND Flash: Hamming, Reed-Solomon, and BCH. Furthermore, each algorithm can be parameterized in different ways to accomplish various bit correction strengths yielding a varying number of code bytes. Generating ECCs are computationally intense. During factory programming, the Data Pattern is static and so the ECCs can be predetermined and embedded in the Data Pattern. Avoiding these computations is advantageous for factory programming operations that are throughput (DPH) sensitive -- a typical scenario for dense NAND Flash.

Spare Area Placement

Deals with the assignment of metadata to the locations in the Spare Area. Metadata can consist of ECCs, Bad Block markers, file system tags, wear levelling information, etc. Bad Block markers are specified by the NAND Flash vendor and are coded into the device programmer algorithm specific to the device. All other Spare Area Placement is proprietary to the end-system that the NAND Flash device will reside in. For factory programming, it is crucial that all spare area data is present in the Data Pattern. This eliminates the need for custom programming algorithms which are costly to develop and come with long lead times, in favor of generic device algorithms which are often already available and offer the best throughput performance.

Free Good Block Formatting

Defines the data content for blocks that are left over in a partition after all of the image data has been programmed. Free Good Blocks manifest when a partition is allocated in such a way as to tolerate some maximal number of Bad Blocks (i.e. "padding"), but the particular device being programmed has fewer bad blocks than the partition reserve. These left-over reserved padding blocks are referred to as Free Good Blocks. Put another way, Free Good Block Formatting specifies what to program into the reserve blocks that end up not replacing Bad Blocks. For many systems, the Free Good Block Formatting is simply the blank state of the device (all "FF's"). Some file systems, namely Linux JFFS2, make use of so-called "cleanblock" markers that must be programmed into the Free Good Blocks. Like the Spare Area Placement, Free Good Block Formatting is an aspect specific to the end-system that the NAND Flash device will reside in, and as such, should be included in the Data Pattern itself. The device programmer must utilize the formatting as needed, and discard what isn't, for each individual NAND Device programmed.

Dynamic Metadata

Encompasses any additional information that must be computed specifically for each device. Since this data cannot be predetermined, it is usually computed by the device programmer based on characteristics unique to each particular device. The most common use of dynamic metadata is for the programming of custom, application-specific bad block remap tables and file system headers. Other uses for this type of data are often highly proprietary and exclusive to a particular target system design.

Back To Top

Partitioning Example System

As an example, consider the following NAND Flash partition layout for a Store and Download (SnD) system that can boot from raw NAND Flash. The system uses the Linux operating system (OS) and offers storage capabilities of media files on a JFFS2 file system on the NAND. The NAND Flash device has an organization of 2048 blocks containing 64 pages that are comprised of a 2048 byte main page with a 64 byte spare area. The NAND Flash is partitioned into 4 regions with the following purposes:

  1. First Partition - Contains the bootstrap code that the system processor's IPL logic will load to its internal RAM and begin executing upon reset. The partition is a single block located at block 0, without any room for Bad Blocks. The hardwired IPL logic in the processor is only capable of accessing block 0, and does not have the ability to work around bad blocks. The bootstrap's purpose is to initialize other hardware systems (for example, DRAM), and load the more sophisticated bootloader starting at block 1 into DRAM and transfer control to it. If this block is found to be bad during programming, the device must be rejected. The data in this partition is not expected to change as part of normal use of the system. This partition occupies 1 block, starting at block 0.

  2. Second Partition - Contains the bootloader code that is loaded into DRAM and executed with the purpose of decompressing, loading, and executing the OS kernel. The bootloader is more significant than the bootstrap in terms of complexity and size, and so it must span 2 blocks. However, the bootstrap is capable of recognizing and skipping Bad Blocks while loading the bootloader, so this partition contains 2 reserve blocks that can be used by the device programmer to replace any Bad Blocks that occur in the first 2 blocks of the partition. The data in this partition could change and expand as updates are applied to the system, though it should be rare. This partition occupies 4 blocks, starting at block 1.

  3. Third Partition - Contains the compressed image of the Linux operating system kernel. This is a large region of code, that is expected to be updated throughout the lifetime of the system. The bootloader will start loading the kernel into DRAM starting at block 5, skipping any bad blocks encountered. The size of the kernel image at product launch is about 1.15MB, so it will fit into 10 blocks. An extra 10 blocks are reserved for Bad Block replacement and future expansion which are to be initialized to 0xFF. This partition occupies 20 blocks, starting at block 5.

  4. Final Partition - Consumes all remaining NAND blocks, and is by far the largest partition. This is for the JFFS2 file system that contains all of the application-specific firmware, system files, and user media files. This partition is accessed by the file system driver contained in the OS kernel as a block-based storage device. The kernel will mount the file system starting at block 25. This partition will undergo heavy Read/Write cycles throughout the lifetime of the device as the user stores and manages media files and applies feature updates. The majority of this partition is unused when the product ships -- the pre-programmed system only occupies 6 blocks. All remaining blocks are to provide user storage, and to replace Bad Blocks in the file system. The JFFS2 driver requires that all Free Good Blocks are programmed with "cleanmarkers" during the factory programming process. This partition occupies 2023 blocks, starting at block 25.

All partitions except the file system are Read-Only during normal usage of the end-system. For these partitions, a simple Skip Bad Blocks replacement strategy is all that is needed. The file system partition will undergo many Read-Write cycles throughout the lifetime of the end-system. Further Bad Block development in this partition is an expected and normal operational scenario. The file system drivers handle all of these details, including wear-levelling and idle-time garbage collection (i.e. Erase). The file system also utilizes its own Bad Block Replacement strategy that allows replacing Bad Blocks with any arbitrary block in the partition. Such a strategy is important when considering the otherwise poor performance of moving data if a Bad Block occurs between several Good Blocks. However, this does not occur during factory programming, and a simple Skip Bad Block strategy will do in that environment. These advanced features of the file system require complex use of Spare Area metadata in the NAND Flash device.

Back To Top

Design Tips

There are certain steps that can be taken during system design to avoid higher costs and lead-times associated with one-off and proprietary NAND Bad Block Management when factory programming:

  1. Don't violate the manufacturer's Bad Block marker specification.

  2. Adhere to basic Skip Bad Block Replacement strategy. Avoid complex and non-standard block skipping behavior during the factory programming process. Leverage more advanced algorithms in file systems that don't require special or custom application-specific software in the factory device programmer.

  3. Embed all Spare Area metadata, including ECCs, in the Data Pattern.

  4. Fill the Data Pattern with Free Good Block Formatting between the actual design image data and the end of the partition. In other words, pad the Data Pattern to the end of each partition.

By adhering to the above tips, you can leverage the stock NAND algorithms in BPWin. This also allows you to easily migrate to other NAND devices if sourcing becomes an issue. The alternative, custom written programming algorithms, involves NRE fees, lead-times, potential throughput penalties, and is only applicable to a single NAND part number.

Further Information

For a deeper explanation of programming NAND flash, please refer to BPM Microsystems white paper on "Understanding NAND Flash Factory Programming."

Back To Top


Chapter 1 Introduction

III. BPWin Automation Object Model - ch 1

Introduction

This topic describes how to use the BPWin application’s exposed COM objects named CJobMonitor and CJobControl. The CJobMonitor object facilitates auditing the progress of a device operation job. The CJobControl object facilitates automating the configuration, initiation, and termination of a device operation job.

CJobControl Overview

A client that has instantiated a CJobControl object would mainly have the task of calling methods on the object to manipulate the BPWin application. A client can use the CJobControl object to do the following with a job, and it is envisioned that the client would use the object in the order specified here:

· Configure it. This can include:

  • Loading a pattern file.

  • Selecting a device

  • Setting device options

· Initiate it; that is, the equivalent of clicking the “Program” button in the BPWin GUI.

· Terminate it. This would be the equivalent of clicking the “Stop” button in the BPWin GUI.

CJobMonitor Overview

A client that has instantiated the CJobMonitor object mainly acts as a listener for COM events raised by the object that specify when certain status changes have occurred on devices being operated on during a job. These include when the device has started being operated on (active) and when a device has finished being operated on (passed or failed). Also, the client receives an event when a job has stopped, and along with that event comes information about the reason the job has stopped (successful completion of the entire job, fatal error, or early user abort).

CJobMonitor also provides a method for retrieving an XML document that contains information about the system. This system information XML document includes information about the currently detected:

· Programmer site model.

· Programmer Site Serial Numbers.

· Socket Module name, daughter cards, and their serial numbers.

· APS: peripherals, model, etc.

A specific workflow was envisioned as being executed by the client while the CJobMonitor component is in use. Here is a simplified description of that flow:

  1. Client creates a CJobMonitor object.

  2. Client calls a method on the CJobMonitor object to retrieve information about the currently-detected system for whatever reason the client sees fit to utilize the information. Examples of this could include logging auditing information and/or verifying correct hardware configuration.

  3. An operator, or the COM client using a CJobControl object, configures and initiates a job.

  4. The COM client begins listening for events raised by the CJobMonitor object to know when certain status changes have occurred on sockets during the job. The client also listens for an event signalling the completion of the job. Again, the client could choose to listen for these events for whatever reason the client sees fit (example: auditing).

Note:

The CJobControl and CJobMonitor components are implemented using Microsoft's OLE Automation technology. Therefore this documentation was written while assuming the reader would be familiar with programming using Microsoft's OLE Automation and/or Component Object Model (COM) technologies. As is typical of components that are implemented that way, code can be written to use the components with any programming or scripting language that supports those technologies. All code examples in this documentation are presented in the JScript scripting language and were tested using Microsoft Windows Script Host (WSH) Version 5.6 which ships with Microsoft Window XP Professional.


CJobControl Object Creation

The programmatic identifier (ProgID) used to create the object is “BPWin.CJobControl”. As an example of its use, the following JScript code uses the WSH CreateObject method to create a CJobControl object:

var oJobControl = WScript.CreateObject("BPWin.CJobControl");

If the BPWin application was already launched when this line of code is executed then the created CJobControl object in the above code can be used to manipulate that running instance of the application. If BPWin has not been launched then the code above results in the launching of the BPWin application and the CreateObject call does not return until BPWin has completed its normal initialization (splash screen display, hardware detection, etc). The creation of a CJobControl object results in the BPWin application running with a window that is visible and that a user can interact with if necessary.

To use the CJobControl object, a device programmer must be connected and the device programmer must have the CJobControl feature enabled. If one or both of those conditions are not met then CJobControl object creation will be successful but no events will be raised and calls to all methods will fail with an HRESULT value of either CJOBCONTROL_E_NOTLICENSED or CJOBCONTROL_E_NOPROGRAMMERCONNECTED.

Example Code

Examples are provided showing how the CJobControl class can be used in JScript or C++. Below are links to code that shows how to create and use an object made from the CJobControl class. The plain text code provided can be copied to the clipboard.

Example of Script Client Code - Uses the CJobControl class.

Example of C++ Client Code - Includes examples using both classes, CJobControl and CJobMonitor. To use the C++ example, a non-free version of Visual C++ needs to be installed. The free, downloadable versions (that have the "Express" designation) of the compiler that Microsoft provides doesn't come with the necessary libraries. To compile this example, use the "Visual Studio .NET 2003 Command Prompt".

How Can We Make This Manual Better For You? E-Mail Your Suggestion

Copyright © 2015 BPM Microsystems


CJobControl ENUMS

III. BPWin Automation Object Model - ch 1

ENUMS

SetJobParameterReturn

These symbols represent the value of the HRESULT that may be set by the SetJobParameter() method.

Symbol | Value | Description
SUCCESS | 0 |
INVALID_NAME | 80040221h | The value of the sName parameter is not in Job Parameters.
INVALID_VALUE | 80040222h | The value of the sValue parameter does not adhere to the rules specified in Job Parameters.
NAME_UNSUPPORTED | 80040223h | The value of the sName parameter is in Job Parameters, but the device algorithm does not support it.
VALUE_UNSUPPORTED | 80040224h | The value of the sValue parameter adheres to the rules specified in Job Parameters, but it is unsupported by the device algorithm.

FileTypes

These values represent the specifiable file types for the lType parameter of the LoadPatternFile() method.

Symbol | Value
FT_Binary | 0
FT_Intel | 1
FT_Jedec | 2
FT_Motorola | 3
FT_POF | 4
FT_Straight | 5
FT_TEKHEX | 6
FT_ASCIIHEX | 7
FT_SDSMAC | 8
FT_SDSMAC320 | 9
FT_Fairbug | 10
FT_FormatBin | 11
FT_OMF | 12
FT_AFM | 13
FT_LOF | 14
FT_PROASIC | 15
FT_STAPL | 16
FT_IEEE1532Data | 17
FT_AUTO | 255

BPWinAutomationErrors

These values represent what various methods will set their HRESULTs to based on various error conditions.

Symbol | Value | Description
CJOBCONTROL_E_NOTLICENSED | 80040225h | The CJobControl feature is not enabled for the currently-connected programmer.
CJOBCONTROL_E_AUTOHANDLERMODEREQUIRED | 80040226h | The method requires BPWin to be in autohandler mode before it can be called.
CJOBCONTROL_E_FILENOTFOUND | 80040227h | The method could not find the file specified.
CJOBCONTROL_E_ERRORLOADINGFILE | 80040228h | There was an error loading the file specified.
CJOBCONTROL_E_ERRORSAVINGFILE | 80040229h | There was an error saving the file specified.
CJOBCONTROL_E_NOPROGRAMMERCONNECTED | 8004022Bh | There is no programmer connected, which is a requirement of using the CJobControl object.
CJOBCONTROL_E_INVALIDSERIALPARAMS | 8004022Eh | One or more serialization-specific parameters were not set correctly.
CJOBCONTROL_E_JOBRUNNING | 8004022Fh | The method cannot be called while a job is running.
CJOBCONTROL_E_INVALIDMASTERSITENUMBER | 80040230h | CJobControl.SetMasterSite() was called with an invalid master site number.


CJobControl Events

III. BPWin Automation Object Model - ch 1

Events

NotifyJobComplete(lResult)

Raised by the CJobMonitor and CJobControl objects when a job has ended.

Parameters

lResult A numerical value that represents the reason the job has stopped. If the job was allowed to complete normally (because the number of devices specified were operated on successfully when this event was raised) then this parameter’s value is 0. Please refer to Error Codes for all possible failure codes.

Remarks

This event is raised after successfully completing a job, after a fatal error during a job, due to the operator stopping the job, or if the Abort() method was called.

Example

var oJobControl =
WScript.CreateObject("BPWin.CJobControl",
"oJobControl_");//this specifies that
//functions prefixed
//with oJobControl_
//are event handlers.
oJobControl.BeginJob(10);

// Simulate an "idle loop"
while(true)
{
WScript.Sleep(100);
}

function oJobControl_NotifyJobComplete(lResult)
{
WScript.Echo("Got job complete with result code "
 + lResult +
". Terminating script.");
WScript.Quit();
}


/**
2008 BPM Microsystems

************************************************************************************************
THIS SOURCE CODE IS PROVIDED AS-IS WITH NO WARRANTY.
************************************************************************************************

This source code is intended to serve as an example BPWin Automation Object Model client program.
Refer to the BPWin user's manual for interface details.
This file is intended to be viewed with:
   Tab Space = 3, Insert Spaces for tabs.

This source file was compiled using the Microsoft Visual Studio 2003 C++ compiler, using
the following command-line at a Visual Studio .NET 2003 Command Prompt:

   cl BpwinAomDemo.cpp /EHsc

The resulting program EXE has been executed and tested under the Windows XP environment.
The following libraries are used, all available with Microsoft Visual Studio 2003:
   C++ STL
   CRT
   Win32 API
   ATL
   Compiler COM Support Classes
*/

#include <string>
#include <iostream>
#include <vector>
#include <utility>
#include <stdexcept>
#include <map>
#include <sstream>
#include <conio.h>
#include <comdef.h>
#include <atlbase.h>
#include <atlcom.h>

// #import will cause the compiler to generate .tlh and .tli files that are then automatically included in this source
// file and contain all the information we need to reference the types exported by BPWin's type library.
// The .tli file contains wrapper implementations of the methods of the BPWin object model that throw _com_error
// exceptions when the wrappers detect errors.  This is why you don't see code that checks
// for errors at the location that method calls are made, the errors are instead handled by try/catch statements.
//
#import "LibID:65A5AAB3-86F1-45DF-B413-CA8FFBE606DA"

void DemonstrateBpwinAom();

void main()
{
   ::CoInitialize(NULL);

   try
   {
      DemonstrateBpwinAom();
   }
   catch(std::exception & oException)
   {
      std::cout << oException.what();
   }
   catch(_com_error & oComErr)
   {
      std::cout << std::string(oComErr.Description());
   }
   catch(...)
   {
      std::cout << "Caught unkown exception";
   }

   ::CoUninitialize();
}

// This is required in order to use the ATL library to help us handle events.
//
class CBpWinAomDemoModule : public ATL::CAtlExeModuleT<CBpWinAomDemoModule> {} g_oAtlModule;

std::string HresultErrorDescription(const std::string & sDescription, HRESULT hResult);

class CJobMonitorEventHandlers : public ATL::IDispEventImpl<1,
                                                            CJobMonitorEventHandlers,
                                                            &__uuidof(BPWin::__CJobMonitor),
                                                            &__uuidof(BPWin::__BPWin),
                                                            1,
                                                            7>
{
   void __stdcall HandleSocketActive(long lSite, long lSocket);
   void __stdcall HandleSocketPassed(long lSite, long lSocket);
   void __stdcall HandleSocketFailed(long lSite, long lSocket,long lFailCode);
   void __stdcall HandleJobComplete(long lResult);
   void __stdcall HandleBpWinShutDown();
   void __stdcall HandleConfigurationUpdate(BSTR sSysInfoXmlDoc);
   void __stdcall HandleSerializationAssignment(long lSite, long lSocket, BSTR sSerialNumber );

public:

   BEGIN_SINK_MAP(CJobMonitorEventHandlers)
      SINK_ENTRY_EX(1, __uuidof(BPWin::__CJobMonitor), 1, &CJobMonitorEventHandlers::HandleSocketActive)
      SINK_ENTRY_EX(1, __uuidof(BPWin::__CJobMonitor), 2, &CJobMonitorEventHandlers::HandleSocketPassed)
      SINK_ENTRY_EX(1, __uuidof(BPWin::__CJobMonitor), 3, &CJobMonitorEventHandlers::HandleSocketFailed)
      SINK_ENTRY_EX(1, __uuidof(BPWin::__CJobMonitor), 4, &CJobMonitorEventHandlers::HandleJobComplete)
      SINK_ENTRY_EX(1, __uuidof(BPWin::__CJobMonitor), 5, &CJobMonitorEventHandlers::HandleBpWinShutDown)
      SINK_ENTRY_EX(1, __uuidof(BPWin::__CJobMonitor), 6, &CJobMonitorEventHandlers::HandleConfigurationUpdate)
      SINK_ENTRY_EX(1, __uuidof(BPWin::__CJobMonitor), 7, &CJobMonitorEventHandlers::HandleSerializationAssignment)
   END_SINK_MAP()

   CJobMonitorEventHandlers():
      m_spoJobMon(CreateCJobMonitor()),
      m_bJobComplete(false)
   {
      const HRESULT hResult = DispEventAdvise(m_spoJobMon);
      if(FAILED(hResult))
      {
         throw std::runtime_error(HresultErrorDescription("DispEventAdvise() failed.", hResult));
      }
   }

   ~CJobMonitorEventHandlers()
   {
      const HRESULT hResult = DispEventUnadvise(m_spoJobMon);
      if(FAILED(hResult))
      {
         std::cout << HresultErrorDescription("DispEventUnadvise() failed.", hResult) << std::endl;
      }
   }

   bool JobComplete();

private:
   bool m_bJobComplete;
   BPWin::_CJobMonitorPtr m_spoJobMon;
   BPWin::_CJobMonitorPtr CreateCJobMonitor();
};

std::string GetSjpError(HRESULT hResult);
void ThrowLastError(const std::string & sDescription);

void DemonstrateBpwinAom()
{
   CJobMonitorEventHandlers oJmEvents;

   BPWin::_CJobControlPtr spoJobControl;
   HRESULT hResult = NULL;
   if(FAILED(hResult = spoJobControl.CreateInstance(__uuidof(BPWin::CJobControl))))
   {
      throw std::runtime_error(HresultErrorDescription("CJobControl instantiation failed.", hResult));
   }

   typedef std::vector<std::pair<_bstr_t, _bstr_t> > CCfgs;
   CCfgs oCfgs;

   // This job configuration allows us to to run a job while only needing a programmer and a socket module but no
   // devices.
   //
   oCfgs.push_back(std::make_pair("Device",                       "AMD AM29DL640D"));
   oCfgs.push_back(std::make_pair("DeviceOptions.ContinuityTest", "DISABLE"));
   oCfgs.push_back(std::make_pair("DeviceOptions.IDCheck",        "DISABLE"));
   oCfgs.push_back(std::make_pair("DeviceOptions.Erase",          "ENABLE"));
   oCfgs.push_back(std::make_pair("DeviceOptions.Operation",      "Program"));
   oCfgs.push_back(std::make_pair("DeviceOptions.Verify",         "NONE"));
   oCfgs.push_back(std::make_pair("DeviceOptions.Erase",          "DISABLE"));

   // Reduce the amount of time it takes to perform an operation by specifying to operate on a small range.
   //
   oCfgs.push_back(std::make_pair("DeviceOptions.RangeStart", "0"));
   oCfgs.push_back(std::make_pair("DeviceOptions.RangeStop",  "FFF"));

   // Demonstrate the setting of "DeviceConfig" settings, which are dynamic and differ greatly per device.
   //
   oCfgs.push_back(std::make_pair("DeviceConfig.User OTP Factory Locked", "SECURE"));
   oCfgs.push_back(std::make_pair("DeviceConfig.User OTP Sector Protect", "SECURE"));

   spoJobControl->SetDefaultConfiguration();

   for(CCfgs::iterator i = oCfgs.begin(); i < oCfgs.end(); ++i)
   {
      std::cout << "Setting \"" << i->first << "\" to \"" << i->second << "\"\n";
      try
      {
         spoJobControl->SetJobParameter(i->first, i->second);
      }
      catch(_com_error & oComErr)
      {
         std::cout << GetSjpError(oComErr.Error()) << '\n';
      }
   }

   spoJobControl->LoadPatternFile(_bstr_t("c:\\Patterns\\image1.bin"), BPWin::FT_BINARY);

   const int iNumDevices = 5;
   spoJobControl->BeginJob(iNumDevices);

   std::cout << "Listening for events, press any key to stop listening and terminate this application.\n";

   const HANDLE hStdin = ::GetStdHandle(STD_INPUT_HANDLE);

   if(INVALID_HANDLE_VALUE == hStdin)
   {
      ThrowLastError("::GetStdHandle() failed");
   }

   if(0 == ::FlushConsoleInputBuffer(hStdin))
   {
      ThrowLastError("::FlushConsoleInputBuffer() failed");
   }

   // In a real-world application, such a loop isn't necessary.  To manage the user interface, applications that use
   // either the bare Win32 API, MFC, ATL, etc. already have such a messaging loop and the COM system utilizes the loop
   // to listen for and dispatch events.  Since this is a mere console application where we can't just "go idle" by
   // letting the console's loop run, we have to code the loop ourselves.
   //
   while(true)
   {
      MSG msg = {0};
      while(::PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
      {
         ::DispatchMessage(&msg);
      }
      if(oJmEvents.JobComplete() || _kbhit())
      {
        break;
      }
      if(WAIT_FAILED == ::MsgWaitForMultipleObjects(1, &hStdin, FALSE, INFINITE, QS_ALLINPUT))
      {
         ThrowLastError("::MsgWaitForMultipleObjects() failed");
      }
   }
}

std::string GetSjpError(HRESULT hResult)
{
   switch(hResult)
   {
      case BPWin::INVALID_NAME:
         return "The name does not appear in Appendix A of the documentation.";

      case BPWin::INVALID_VALUE:
         return "The value does not adhere to the rules specified"
                " in Appendix A of the documentation.";

      case BPWin::NAME_UNSUPPORTED:
         return "The name is not supported by the device selected"
                " and/or by the currently-connected programmer.";

      case BPWin::VALUE_UNSUPPORTED:
         return "The value is not supported by the device selected"
                " and/or by the currently-connected programmer.";
      default:
         return "COM automation error.";
   }
}

std::string Socket(long lSite, long lSocket)
{
   std::map<long, std::string> oSockets;
   oSockets[BPWin::SOCKET_A] = "A";
   oSockets[BPWin::SOCKET_B] = "B";
   oSockets[BPWin::SOCKET_C] = "C";
   oSockets[BPWin::SOCKET_D] = "D";
   std::ostringstream oOutStream;
   oOutStream << "Socket " << lSite << oSockets[lSocket];
   return oOutStream.str();
}

void CJobMonitorEventHandlers::HandleSocketActive(long lSite, long lSocket)
{
   std::cout << Socket(lSite, lSocket) << " has gone ACTIVE.\n" << std::endl;
}

void CJobMonitorEventHandlers::HandleSocketPassed(long lSite, long lSocket)
{
   std::cout << "The device on " << Socket(lSite, lSocket) << " has PASSED." << std::endl;
}

void CJobMonitorEventHandlers::HandleSocketFailed(long lSite, long lSocket,long lFailCode)
{
   std::cout << "The device on " << Socket(lSite, lSocket) << " has FAILED.  Result code = " << lFailCode << std::endl;
}

void CJobMonitorEventHandlers::HandleJobComplete(long lResult)
{
   std::cout << "The job has completed with result code " << lResult << "." << std::endl;
   m_bJobComplete = true;
}

void CJobMonitorEventHandlers::HandleBpWinShutDown()
{
   std::cout << __FUNCTION__ << std::endl;
}

void CJobMonitorEventHandlers::HandleConfigurationUpdate(BSTR sSysInfoXmlDoc)
{
   std::cout << __FUNCTION__ << std::endl;
}

void CJobMonitorEventHandlers::HandleSerializationAssignment(long lSite, long lSocket, BSTR sSerialNumber )
{
   std::cout << __FUNCTION__ << std::endl;
}

std::string HresultErrorDescription(const std::string & sDescription, HRESULT hResult)
{
   std::ostringstream oOutStream;
   oOutStream << sDescription << " HRESULT is " << std::hex << hResult;
   return oOutStream.str();
}

bool CJobMonitorEventHandlers::JobComplete()
{
   return m_bJobComplete;
}

BPWin::_CJobMonitorPtr CJobMonitorEventHandlers::CreateCJobMonitor()
{
   BPWin::_CJobMonitorPtr spoJobMonitor(__uuidof(BPWin::CJobMonitor));

   if(!spoJobMonitor.GetInterfacePtr())
   {
      throw std::runtime_error(HresultErrorDescription("CJobMonitor instantiation failed.", E_NOINTERFACE));
   }

   // Now make sure further calls to GetSystemInfo() will work and we
   // will receive all event notifications.
   //
   try
   {
      _bstr_t oSysInfo = spoJobMonitor->GetSystemInfo();
   }
   catch(_com_error & oComErr)
   {
      if(oComErr.Error() == BPWin::CJOBMONITOR_E_NOPROGRAMMERCONNECTED)
      {
         throw std::runtime_error("There is no programmer connected.");
      }
      else if(oComErr.Error() == BPWin::CJOBMONITOR_E_NOTLICENSED)
      {
         throw std::runtime_error("The programmer does not have the CJobMonitor feature enabled.");
      }
   }

   return spoJobMonitor;
}

void ThrowLastError(const std::string & sDescription)
{
   const DWORD dwLastError = ::GetLastError();
   std::ostringstream oDescStream;
   oDescStream << sDescription << " ::GetLastError() returned " << dwLastError;
   throw std::runtime_error(oDescStream.str());
}


<!--
File name: CJobControlExampleScript.wsf

Uses Windows Script File Format (.wsf) instead of plain .js
format because this allows us to import and use enum symbols
(like FT_BINARY, INVALID_NAME, etc) from the BPWin type library.

Invoke this script at the command line like this:
cscript CJobControlExampleScript.wsf
-->
<job>
<reference object = "BPWin.CJobControl" />
<script language="JScript">

var oJobControl =
   WScript.CreateObject("BPWin.CJobControl", "oJobControl_");

var aCfgs = Array(
  Array("Device",                               "AMD AM29DL640D"),
  Array("DeviceOptions.ContinuityTest",         "AUTOSTART"),
  Array("DeviceOptions.IDCheck",                "ENABLE"),
  Array("DeviceOptions.Erase",                  "ENABLE"),
  Array("DeviceOptions.Operation",              "Program"),
  Array("DeviceOptions.Verify",                 "ONCE"),
  Array("DeviceConfig.User OTP Factory Locked", "SECURE"),
  Array("DeviceConfig.User OTP Sector Protect", "SECURE"));

for(var i = 0; i < aCfgs.length; ++i)
{
   try
   {
      WScript.Echo("Setting \"" + aCfgs[i][0] +
                   "\" to \""   + aCfgs[i][1] + "\"");
      oJobControl.SetJobParameter(aCfgs[i][0], aCfgs[i][1]);
   }
   catch(oSjpError)
   {
      WScript.Echo("ERROR: " + GetSjpError(oSjpError));
   }
}

oJobControl.LoadPatternFile("c:\\Patterns\\image1.bin", FT_BINARY);

var iNumDevices = 200;
oJobControl.BeginJob(iNumDevices);

var bRunningJob = true;

// Sleep so that we can handle events.
//
while(bRunningJob)
{
   WScript.Sleep(1000);
}

function oJobControl_NotifyJobComplete(lResult)
{
   bRunningJob = false;
   WScript.Echo("The job has completed with result code "
                + lResult + ".");
}

function GetSjpError(oSjpError)
{
   switch(oSjpError.number)
   {
      case INVALID_NAME:
         return "The name does not appear in Appendix A of the " +
                "documentation.";
      case INVALID_VALUE:
         return "The value does not adhere to the rules specified" +
                " in Appendix A of the documentation.";
      case NAME_UNSUPPORTED:
         return "The name is not supported by the device selected" +
                " and/or by the currently-connected programmer.";
      case VALUE_UNSUPPORTED:
         return "The value is not supported by the device selected" +
                " and/or by the currently-connected programmer.";
      default:
         return "COM automation error: \"" + oSjpError.description +
                "\".";
   }
}

</script>
</job>


CJobControl Methods

III. BPWin Automation Object Model - ch 1

Methods

SetDefaultConfiguration()

Clears configuration settings in BPWin.

Remarks

Calling this method is equivalent to selecting “Tools > Set Default Configuration” in the BPWin menu. The effects of this include:

  • Clearing the Data Pattern.

  • Clearing the current device selection.

  • Setting the serialization method to "None".

This method cannot be called while a job is running.

Example

The following JScript code uses the SetDefaultConfiguration() method of the CJobControl object to clear configuration settings in BPWin:

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
Control.SetDefaultConfiguration();

SetJobParameter(sName, sValue)

Sets a BPWin application job configuration parameter.

Parameters

sName The name of the BPWin configuration parameter to set.

sValue The value of the BPWin configuration parameter to set.

Remarks

See Job Parameters for all possible values of sName and all possible values of sValue and a description of the effects they have on BPWin.

This method cannot be called while a job is running.

Also see the description of the SetJobParametersReturn ENUM.

Example

The following JScript code uses the SetJobParameter() method of the CJobControl object to select a device in BPWin:

var oJobControl
 = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("Device", "Atmel AT29C010");

LoadPatternFile(sPath, lType)

Loads a data pattern file into the BPWin application’s data buffer.

Parameters

sPath The fully qualified path to the data pattern file.

lType The type to load the file as. Must be one of the members of the FileTypes ENUMs.

Remarks

Calling this method is equivalent to selecting “File > Open Data Pattern” in the BPWin menu and selecting a file to load.

Specifying FT_AUTO (255) for the lType parameter results in the BPWin application using the heuristic algorithm that is used to “guess” the file type when displaying the “Load Data Pattern File” dialog in the BPWin application to determine which file type to interpret the file as.

This method cannot be called while a job is running.

Example

The following JScript code uses the LoadPatternFile() method of the CJobControl object to load a buffer file into the BPWin buffer:

var oJobControl
 = WScript.CreateObject("BPWin.CJobControl");
oJobControl.LoadPatternFile("C:\\Patterns\\ACE1502.BIN", BINARY);

LoadBpFile(sPath)

Loads a .bp file into the BPWin application.

Parameters

sPath The fully qualified path to the BP file.

Remarks

Calling this method is equivalent to selecting “JobMaster > Load Job” from the BPWin menu.

This method cannot be called while a job is running.

Example

The following JScript code uses the LoadJobFile() method of the CJobControl object to load a bp file into BPWin:

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.LoadBpFile("C:\\Jobs\\Apple243A5.bp");

LoadAbpFile(sPath)

Loads a .abp file into the BPWin application.

Parameters

sPath The fully qualified path to the .abp file.

Remarks

Calling this method is equivalent to clicking the “Load” button in the BPWin “Autohandler Workflow Settings” dialog.

This method cannot be called while a job is running and/or while "Handler Type" is set to "Manual".

Example

The following JScript code uses the LoadAbpFile() method of the CJobControl object to load a .abp file into BPWin:

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.LoadAbpFile("C:\\Jobs\\Apple243A5.abp");

SaveBpFile(sPath)

Saves a .bp file based on the current configuration of the BPWin application.

Parameters

sPath The fully qualified path to the .bp file.

Remarks

Calling this method is equivalent to selecting “JobMaster > Save Job As” from the BPWin menu.

This method cannot be called while a job is running.

Example

The following JScript code uses the SaveBpFile() method of the CJobControl object to save a bp file from BPWin:

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SaveBpFile("C:\\Jobs\\Apple243A5.bp");

SaveAbpFile(sPath)

Saves a .abp file based on the current configuration of the BPWin application.

Parameters

sPath The fully qualified path to the .abp file.

Remarks

Calling this method is equivalent to clicking the “Save As…” button in the BPWin “Autohandler Workflow Settings” dialog and specifying a file to name to save.

This method cannot be called while a job is running and/or while "Handler Type" is set to "Manual".

Example

The following JScript code uses the SaveAbpFile() method of the CJobControl object to save a .abp file from BPWin:

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SaveAbpFile("C:\\Jobs\\Apple243A5.abp"

BeginJob(lQuantity)

Begins a job.

Parameters

lQuantity The number of successful device operations to perform before the CJobControl object raises the end-of-job NotifyJobComplete event.

Remarks

This method can be perceived as “asynchronous” in that it returns before the job actually begins. To detect when the job has completed, handle the NotifyJobComplete event.

This method cannot be called while a job is running.

This method validates serialization parameters that were set using SetJobParameter(). On validation failure, this method sets its HRESULT to CJOBCONTROL_E_INVALIDSERIALPARAMS, prints details about the validation failure to the BPWin output window, and does not begin the job.

Example

The following JScript code uses the BeginJob() method of the CJobControl object to begin a job in BPWin:

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.BeginJob(5);

Abort()

Ends the job.

Remarks

Calling this method once gracefully terminates the current job. The programmer system first finishes operations on currently active devices before raising the NotifyJobComplete event. “Graceful” termination has a slightly different meaning that depends on the current hardware configuration:

  • On Autohandlers, this means that the NotifyJobComplete event will be raised after all devices were picked from an input up to the point Abort was called, are placed into an output. After Abort is called the system picks no more devices from an input.

  • On manual programmers, this means that the NotifyJobComplete went is raised after all devices that went active that went active up to the point Abort was called complete their operations.

Call this method twice to perform an immediate, emergency termination of the current job. As opposed to the graceful, single-call to Abort, calling Abort twice results in the system halting any operation being performed on any active devices. The NotifyJobComplete event is raised immediately. This implies that, when calling Abort twice, devices being operated on by a programmer site should be considered failed, and in some cases, damaged.

SetMasterSite(lMasterSiteNumber)

Sets the current master site number.

Parameters

l MasterSiteNumber Numerical value that represents the 1-based master site number to set.

Remarks

Calling this method is equivalent to selecting “File > Configure” in the BPWin menu and making a selection in the "Master Site:" combo box.

This method cannot be called while a job is running.

Example

The following JScript code uses the SetMasterSite() method of the CJobControl object to set the current master site to 2:

var oJobControl = WScript.CreateObject("BPWin.CJobControl");

oJobControl.SetMasterSite(2);

SaveDataPatternFile(sPath, lType)

Saves the current data pattern in BPWin's buffer to a file.

Parameters

sPath The fully qualified path to the data pattern file.

lType The type to save the file as. Must be one of the members of the FileTypes ENUMs.

Remarks

Calling this method is equivalent to selecting “File > Save Data Pattern” in the BPWin menu and specifying a file name.

Specifying FT_AUTO (255) for the lType parameter results in the BPWin application using whatever file type is currently set.

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");

oJobControl.SaveDataPattern("c:\\test\\test.bin", FT_Binary);


CJobMonitor Object Creation

The programmatic identifier (ProgID) used to create the object is “BPWin.CJobMonitor”. As an example of its use, the following JScript code uses the WSH CreateObject method to create a CJobMonitor object:

var oJobControl = WScript.CreateObject("BPWin.CJobMonitor");

If the BPWin application was already launched when this line of code is executed then the created CJobMonitor object in the above code is attached to that running instance of the application. If BPWin has not been launched then the code above results in the launching of the BPWin application and the CreateObject call does not return until BPWin has completed its normal initialization (splash screen display, hardware detection, etc). The creation of a CJobMonitor object results in the BPWin application running with a window that is visible, and that a user can interact with, if necessary.

To use the CJobMonitor object, a device programmer must be connected and the device programmer must have the CJobMonitor feature enabled. If one or both of those conditions are not met then CJobMonitor object creation will be successful but no events will be raised and all calls to GetSystemInfo() will fail with an HRESULT value of either CJOBMONITOR_E_NOTLICENSED or CJOBMONITOR_E_NOPROGRAMMERCONNECTED. Because the nature of client code of the CJobMonitor object is mainly to act as a listener for event notifications, it is possible that those errors can occur and yet client code will not be aware of it. Therefore it is recommended that, immediately after object creation, your client code calls GetSystemInfo() to ensure that neither of those errors have occurred:

// Create the
 object, this should always succeed regardless of
// whether a programmer is connected and/or the feature is
// enabled on the programmer.
//
var oJobMonitor = WScript.CreateObject("BPWin.CJobMonitor");

// Now make sure further calls to GetSystemInfo() will work and we
// will receive all event notifications.
//
try
{
oJobMonitor.GetSystemInfo();
}
catch(oError)
{
//
 Both of the conditions below will cause us not to receive event
//
 notifications.
//
if(oError.number
 == CJOBMONITOR_E_NOPROGRAMMERCONNECTED)
{
WScript.Echo("There
 is no programmer connected.");
}
else
 if(oError.number == CJOBMONITOR_E_NOTLICENSED)
{
WScript.Echo("There
 is a programmer connected, but it does not have the"
+
 " CJobMonitor feature enabled.");
}
}

Example Code

Examples are provided showing how the CJobMonitor class can be used in JScript or C++. Below are links to code that shows how to create and use an object made from the CJobMonitor class. The plain text code provided can be copied to the clipboard.

Example of Script Client Code - Uses the CJobMonitor class.

Example of C++ Client Code - Includes examples using both CJobControl and CJobMonitor. To use the C++ example, a non-free version of Visual C++ needs to be installed. The free, downloadable versions (that have the "Express" designation) of the compiler that Microsoft provides doesn't come with the necessary libraries. To compile this example, use the "Visual Studio .NET 2003 Command Prompt".

How Can We Make This Manual Better For You? E-Mail Your Suggestion

Copyright © 2015 BPM Microsystems


CJobMonitor ENUMS

III. BPWin Automation Object Model - ch 2

ENUMS

Sockets

These symbols identify the sockets on a site.

Symbol | Value | Socket on site this symbol represents
SOCKET_A | 0 | First
SOCKET_B | 1 | Second
SOCKET_C | 2 | Third
SOCKET_D | 3 | Fourth

BPWinAutomationErrors

These values represent what various methods will set their HRESULTs to based on various error conditions.

Symbol | Value | Description
CJOBMONITOR_E_NOTLICENSED | 8004022Ah | The CJobMonitor feature is not enabled for the currently-connected programmer.
CJOBMONITOR_E_NOPROGRAMMERCONNECTED | 8004022Ch | There is no programmer connected, which is a requirement of using the CJobMonitor object.
CJOBMONITOR_E_JOBRUNNING | 8004022Dh | The method cannot be called while a job is running.
CJOBMONITOR_E_JOBNOTRUNNING | 80040232h | The method cannot be called unless a job is running.


CJobMonitor Events

III. BPWin Automation Object Model - ch 2

Events

NotifySocketActive(lSite, lSocket)

Raised by the CJobMonitor object to notify the client that the status of a socket on the programmer has changed to active.

Parameters

lSite The site number that corresponds to the site that contains the socket whose status has changed to active.

lSocket The socket number that corresponds to the socket whose status has changed to active. This value corresponds to a member of the Sockets ENUMs.

Remarks

This status designates that the programmer has begun operating on the device in the socket.

Example

<!--
File name: NotifySocketActiveExample.wsf

Uses Windows Script File Format (.wsf) instead of plain .js
format because this allows us to import and use enum symbols
from the BPWin type library.

Invoke this script at the command line like this:
cscript NotifySocketActiveExample.wsf
-->
<job>
<reference object = "BPWin.CJobMonitor" />
<script language="JScript">

var oJobMonitor =
WScript.CreateObject("BPWin.CJobMonitor", "oJobMonitor_");

WScript.Echo("Script is ready to listen for events.");

// Simulate an "idle loop", lets us listen for events.
while(true)
{
WScript.Sleep(1000);
}

function oJobMonitor_NotifySocketActive(lSite, lSocket)
{
var aSockets = Array();
aSockets[SOCKET_A] = "A";
aSockets[SOCKET_B] = "B";
aSockets[SOCKET_C] = "C";
aSockets[SOCKET_D] = "D";

WScript.Echo("Socket " + lSite + aSockets[lSocket]
 + " has gone ACTIVE.");
}
</script>
</job>

NotifySocketPassed(lSite, lSocket)

Raised by the CJobMonitor object to notify the client that the status of a socket on the programmer has changed to passed.

Parameters

lSite The site number that corresponds to the site that contains the socket whose status as changed to passed.

lSocket The socket number that corresponds to the socket whose status as changed to passed. This value corresponds to a member of the Sockets ENUMs.

Remarks

This status designates that the programmer has completed operating on the device in the socket, and that the operation was successful.

Example

<!--
File name: NotifySocketPassedExample.wsf

Uses Windows Script File Format (.wsf) instead of plain .js
format because this allows us to import and use enum symbols
from the BPWin type library.

Invoke this script at the command line like this:
cscript NotifySocketPassedExample.wsf
-->
<job>
<reference object = "BPWin.CJobMonitor" />
<script language="JScript">

var oJobMonitor =
WScript.CreateObject("BPWin.CJobMonitor", "oJobMonitor_");

WScript.Echo("Script is ready to listen for events.");

// Simulate an "idle loop", lets us listen for events.
while(true)
{
WScript.Sleep(1000);
}

function oJobMonitor_NotifySocketPassed(lSite, lSocket)
{
var aSockets = Array();
aSockets[SOCKET_A] = "A";
aSockets[SOCKET_B] = "B";
aSockets[SOCKET_C] = "C";
aSockets[SOCKET_D] = "D";

WScript.Echo("The device on Socket " + lSite + aSockets[lSocket] +
" has PASSED.");
}
</script>
</job>

NotifySocketFailed(lSite, lSocket, lFailCode)

Raised by the CJobMonitor object to notify the client that the status of a socket on the programmer has changed to failed.

Parameters

lSite The site number that corresponds to the site that contains the socket whose status as changed to failed.

lSocket The socket number that corresponds to the socket whose status as changed to failed. This value corresponds to a member of the Sockets ENUMs.

lFailCode A number that represents the type of failure. See Error Codes for all possible failure codes.

Remarks

This status designates that the programmer has completed operating on the device in the socket, and that the operation failed.

Example

<!--
File name: NotifySocketFailedExample.wsf

Uses Windows Script File Format (.wsf) instead of plain .js
format because this allows us to import and use enum symbols
from the BPWin type library.

Invoke this script at the command line like this:
cscript NotifySocketFailedExample.wsf
-->
<job>
<reference object = "BPWin.CJobMonitor" />
<script language="JScript">

var oJobMonitor =
WScript.CreateObject("BPWin.CJobMonitor", "oJobMonitor_");

WScript.Echo("Script is ready to listen for events.");

// Simulate an "idle loop", lets us listen for events.
while(true)
{
WScript.Sleep(1000);
}

function oJobMonitor_NotifySocketFailed(lSite, lSocket, lCode)
{
var aSockets = Array();
aSockets[SOCKET_A] = "A";
aSockets[SOCKET_B] = "B";
aSockets[SOCKET_C] = "C";
aSockets[SOCKET_D] = "D";

WScript.Echo("The device on Socket " + lSite + aSockets[lSocket] +
" has FAILED with code " + lCode + ".");
}
</script>
</job>

NotifyJobComplete(lResultCode)

See the description of the NotifyJobComplete() method of the CJobControl object.


III. BPWin Automation Object Model - ch 2

Events

NotifyBpWinShutDown

Raised by the CJobMonitor object when the BPWin application has been given the command to shut down.

Example

var oJobMonitor =

WScript.CreateObject("BPWin.CJobMonitor", "oJobMonitor_");

WScript.Echo("Script is ready to listen for events.");

// Listen for events.

//

while(true)

{

WScript.Sleep(1000);

}

function oJobMonitor_NotifyBpWinShutDown()

{

   WScript.Echo("The BPWin application has been shut down.");

   oJobMonitor = null;

   WScript.Quit();

}


NotifyConfigurationUpdate

III. BPWin Automation Object Model - ch 2

Events

NotifyConfigurationUpdate(sSysInfoXml)

Raised by the CJobMonitor object whenever something has occurred to change the contents of the SystemInformation XML document.

Parameters

sSysInfoXml A string containing the new SystemInformation XML document.

Remarks

Examples of when BPWin can become aware of such changes and thus will raise this event are when the user has selected menu items File/Configure in BPWin, when a job has started, and when a job ends.

The CJobMonitor object will never raise this event as a result of instantiating the object.

Example

var oJobMonitor =

   WScript.CreateObject("BPWin.CJobMonitor", "oJobMonitor_");

var g_oLastDoc = LoadXmlDoc(oJobMonitor.GetSystemInfo());

WScript.Echo("Script is ready to listen for events.");

// Listen for events.

while(true)

{

   WScript.Sleep(1000);

}

function oJobMonitor_NotifyConfigurationUpdate(sSysInfoXml)

{

   var oCurrentDoc = LoadXmlDoc(sSysInfoXml);

   var oLastDoc    = g_oLastDoc;

   g_oLastDoc      = oCurrentDoc;

   if(!oLastDoc) return;

   // Because this event was raised, we know that SOMETHING is different

   // in the XML document, so let's check if any socket modules have been

   // added or removed.

   var sSiteXp = "//Programmer//SiteInfo//Site";

   var lCurrSiteLen = oCurrentDoc.selectNodes(sSiteXp).length;

   var lLastSiteLen  = oLastDoc  .selectNodes(sSiteXp).length;

   for(var i = 0; i < Math.max(lCurrSiteLen, lLastSiteLen); ++i)

   {

      var sSiteIdxXp = sSiteXp    + "[" + i + "]";

      var sSmXp      = sSiteIdxXp + "//SocketModule";

      var oCurrSm    = oCurrentDoc.selectSingleNode(sSmXp);

      var oLastSm    =    oLastDoc.selectSingleNode(sSmXp);

      if(oCurrSm && !oLastSm)

      {

         WScript.Echo("A socket module has been added to site " +

                   oCurrentDoc.selectSingleNode(sSiteIdxXp + "//Ordinal").text

                      + ".");

      }

      if(!oCurrSm && oLastSm)

      {

         WScript.Echo("A socket module has been removed from site " +

                      oLastDoc.selectSingleNode(sSiteIdxXp + "//Ordinal").text

                      + ".");

      }

   }

}

function LoadXmlDoc(sXmlDoc)

{

   var oXmlDoc = WScript.CreateObject("MSXML.DOMDocument");

   oXmlDoc.async = false;

   oXmlDoc.resolveExternals = false;

   // The XML is well-formed, however it does not validate due to lack

   // of DTD.

   //

   oXmlDoc.validateOnParse = false;

   // DOMDocument.loadXML() only works with UTF-16 encodings, but

   // CJobControl.GetSystemInfo() returns an XML document with a UTF-8

   // encoding, so write the document to a temporary file and use

   // DOMDocument.load() instead.

   //

   var oTextFile =

   WScript

      .CreateObject("Scripting.FileSystemObject")

         .CreateTextFile("temp.xml", true);

   oTextFile.Write(sXmlDoc);

   oTextFile.Close();

   oXmlDoc.load("temp.xml");

   return oXmlDoc;

}

function oJobMonitor_NotifyBpWinShutDown()

{

   oJobMonitor = null;

   WScript.Quit();

}


III. BPWin Automation Object Model - ch 2

Events

NotifySerializationAssignment(lSite, lSocket, sSerialNumber)

Raised by the CJobMonitor object to notify the client that a serial number has been assigned to a device in a socket.

Parameters

lSite The site number that corresponds to the site that contains the device that has been assigned the serial number.

lSocket The socket number that corresponds to the socket that contains the device that has been assigned the serial number. This value corresponds to a member of the Sockets ENUMs.

sSerialNumber When the job is configured with serialization method "Simple", this parameter contains a string representation of a numerical value in decimal format that is the serial number being used for the device. When the job is configured with serialization method "Complex", this parameter contains the value of the -N command line parameter issued to the External Serialization Program (ESP).

Remarks

This event is raised only if the job currently running is configured to perform serialization.

This event signifies that an attempt is about to be made to use a serial number for a device before the operation has begun (that is, before NotifySocketActive is raised). Because the operation about to be performed on the device can fail, the raising of this event is not a guarantee that the device in lSite/lSocket is the serial number's ultimate destination. That information can be determined by additionally handling the NotifySocketPassed event for the device (and so it follows that if the NotifySocketFailed event was raised for the device then the device was not the serial number's ultimate destination).

Example

<!--

File name: NotifySerAssignExample.wsf

Uses Windows Script File Format (.wsf) instead of plain .js

format because this allows us to import and use enum symbols

from the BPWin type library.

Invoke this script at the command line like this:

cscript NotifySerAssignExample.wsf

-->

<job>

<reference object = "BPWin.CJobMonitor" />

<script language="JScript">

var oJobMonitor =

WScript.CreateObject("BPWin.CJobMonitor", "oJobMonitor_");

WScript.Echo("Script is ready to listen for events.");

// Simulate an "idle loop", lets us listen for events.

while(true)

{

WScript.Sleep(1000);

}

function oJobMonitor_NotifySerializationAssignment(lSite, lSocket, sSerialNumber)

{

var aSockets = Array();

aSockets[SOCKET_A] = "A";

aSockets[SOCKET_B] = "B";

aSockets[SOCKET_C] = "C";

aSockets[SOCKET_D] = "D";

WScript.Echo("Socket " + lSite + aSockets[lSocket] +

" has been assigned serial number " + sSerialNumber + ".");

}

</script>

</job>


NotifyMediaFull

III. BPWin Automation Object Model - ch 2

Events

NotifyMediaFull(sStationName)

Raised by the CJobMonitor object to notify the client that an output media has been filled.

Parameters

sStationName The name of the station that contains the filled output media, as it was entered into the "Workflow Settings" window in BPWin.

Remarks

This event is raised only if BPWin is in Autohandler mode.

Example

<!--

File name: NotifyMediaFullExample.wsf

Uses Windows Script File Format (.wsf) instead of plain .js

format because this allows us to import and use enum symbols

from the BPWin type library.

Invoke this script at the command line like this:

cscript NotifyMediaFullExample.wsf

-->

<job>

<reference object = "BPWin.CJobMonitor" />

<script language="JScript">

var oJobMonitor =

WScript.CreateObject("BPWin.CJobMonitor", "oJobMonitor_");

WScript.Echo("Script is ready to listen for events.");

// Simulate an "idle loop", lets us listen for events.

while(true)

{

WScript.Sleep(1000);

}

function oJobMonitor_NotifyMediaFull(sStationName)

{

WScript.Echo("The media at station " + sStationName +

" has been filled.");

}

</script>

</job>


NotifyDevicePlacedInOutput

III. BPWin Automation Object Model - ch 2

Events

NotifyDevicePlacedInOutput(sStationName)

Raised by the CJobMonitor object to notify the client that a device whose socket operation result is PASSED was placed into the media in an output station.

Parameters

sStationName The name of the station that the device was placed into.

Example

<!--

File name: NotifyDevicePlacedInOutputExample.wsf

Uses Windows Script File Format (.wsf) instead of plain .js

format because this allows us to import and use enum symbols

from the BPWin type library.

Invoke this script at the command line like this:

cscript NotifyDevicePlacedInOutputExample.wsf

-->

<job>

<reference object = "BPWin.CJobMonitor" />

<script language="JScript">

var oJobMonitor =

WScript.CreateObject("BPWin.CJobMonitor", "oJobMonitor_");

WScript.Echo("Script is ready to listen for events.");

// Simulate an "idle loop", lets us listen for events.

while(true)

{

WScript.Sleep(1000);

}

function oJobMonitor_NotifyDevicePlacedInOutput(sStationName)

{

WScript.Echo("A device was placed in " + sStationName + ".");

}

</script>

</job>


NotifyDeviceFinalized(lType, sFinalStationName, bDutOpOccurred, lSite, lSocket, sSerialNumber, lRejectReason, sRejectReason)

Raised by the CJobMonitor object to notify the client that a device has been "finalized" - that is, it has exited the programming system either because of normal successful process traversal or because of an error. Note that this event is raised in addition to NotifyDevicePlacedInOutput and it is not necessary for the client to handle both; in other words, NotifyDeviceFinalized will also be raised when a device is placed into the output.

Parameters

lType - A number that represents the type of finalization. Can be one of the following values:

2 - Reject: The device was placed into the Reject location. For the reason the device was rejected consult the value of the lRejectReason parameter (below).

1 - Pick error discarded: The operator discarded the device after the system detected a pick failure.

0 - Success: The device was successfully placed into the output media.

3 - Unknown: The reason the device was finalized is unknown.

sFinalStationName - A string that contains the name of the final station the device was placed into. For discarded pick failures this string will be empty.

bDutOpOccurred - A boolean that is true if a DUT operation occurred on the device and thus indicating that the lDutOpResult, lSite, lSocket, and possibly sSerialNumber parameters (below) are valid.

lDutOpResult - Only valid if bDutOpOccurred is true. A number that represents the DUT operation result. See "BPWin RESULT Codes" for possible values.

lSite - Only valid if bDutOpOccurred is true. A number representing the site number the DUT operation occurred on.

lSocket - Only valid if bDutOpOccurred is true. A number representing the socket number the DUT operation occurred on.

sSerialNumber - Only valid if bDutOpOccurred is true AND serialization is enabled in the job session. A string that contains the serial number used for the device.

lRejectReason - Only valid if lType has the value of 2 (Reject). A number that represents the reject reason. This is provided so that the client can "switch off" this value and execute logic based on the reject type. Can by any one of these values:

0 - Not a reject: lType does not have the value 2 (Reject) and this device was not rejected.

1 - Alignment failure: The APS failed to align the device during a move.

2 - Discarded pick error: The operator discarded the device after the system detected a pick failure.

3 - Device operation failure: See the value of lDutOpResult (above).

sRejectReason - Only valid if lType has the value of 2 (Reject). A string containing a description of the reject reason. This is provided for the client to perform logging.


<!--
File name: CJobMonitorExampleScript.wsf

Uses Windows Script File Format (.wsf) instead of plain .js
format because this allows us to import and use enum symbols
from the BPWin type library.

Invoke this script at the command line like this:
cscript CJobMonitorExampleScript.wsf
-->
<job>
<reference object = "BPWin.CJobMonitor" />
<script language="JScript">

var oJobMonitor =
   WScript.CreateObject("BPWin.CJobMonitor", "oJobMonitor_");

var sSysInfoXml;

// Now make sure further calls to GetSystemInfo() will work and we
// will receive all event notifications.
//
try
{
   sSysInfoXml = oJobMonitor.GetSystemInfo();
}
catch(oError)
{
   // Both of the conditions below will cause us not to receive event
   // notifications.
   //
   if(oError.number == CJOBMONITOR_E_NOPROGRAMMERCONNECTED)
   {
      WScript.Echo("There is no programmer connected.");
   }
   if(oError.number == CJOBMONITOR_E_NOTLICENSED)
   {
      WScript.Echo("The programmer does not have the CJobMonitor"
                   + " feature enabled.");
   }
   WScript.Quit();
}

var oXmlDoc     = LoadXmlDoc(sSysInfoXml);
var sVersion    = oXmlDoc.selectSingleNode("//BpWinVersion").text;
WScript.Echo("BPWin Version: " + sVersion);

WScript.Echo("The script is ready for you to begin the job.");
var bRunningJob = true;

// Listen for events.
//
while(bRunningJob)
{
   WScript.Sleep(1000);
}

function oJobMonitor_NotifySocketActive(lSite, lSocket)
{
   WScript.Echo(Socket(lSite, lSocket) + " has gone ACTIVE.");
}

function oJobMonitor_NotifySocketPassed(lSite, lSocket)
{
   WScript.Echo("The device on " + Socket(lSite, lSocket) +
                " has PASSED.");
}

function oJobMonitor_NotifySocketFailed(lSite, lSocket, lResult)
{
   WScript.Echo("The device on " + Socket(lSite, lSocket) +
                " has FAILED.  Result code = " + lResult + ".");
}

function oJobMonitor_NotifyJobComplete(lResult)
{
   WScript.Echo("The job has completed with result code "
                + lResult + ".");
   bRunningJob = false;
}

function Socket(lSite, lSocket)
{
   var aSockets = Array();
   aSockets[SOCKET_A] = "A";
   aSockets[SOCKET_B] = "B";
   aSockets[SOCKET_C] = "C";
   aSockets[SOCKET_D] = "D";
   return "Socket " + lSite + aSockets[lSocket];
}

function LoadXmlDoc(sXmlDoc)
{
   var oXmlDoc = WScript.CreateObject("MSXML.DOMDocument");
   oXmlDoc.async = false;
   oXmlDoc.resolveExternals = false;

   // The XML is well-formed, however it does not validate due to lack
   // of DTD.
   //
   oXmlDoc.validateOnParse = false;

   // DOMDocument.loadXML() only works with UTF-16 encodings, but
   // CJobControl.GetSystemInfo() returns an XML document with a UTF-8
   // encoding, so write the document to a temporary file and use
   // DOMDocument.load() instead.
   //
   var oTextFile =
   WScript
      .CreateObject("Scripting.FileSystemObject")
         .CreateTextFile("temp.xml", true);
   oTextFile.Write(sXmlDoc);
   oTextFile.Close();

   oXmlDoc.load("temp.xml");
   return oXmlDoc;
}

</script>
</job>


CJobMonitor Methods

III. BPWin Automation Object Model - ch 2

Methods

String GetSystemInfo ()

Returns the current version of the SystemInformation XML document.

Remarks

The SystemInformation XML document returned by this event is one that was generated the last time BPWin enumerated the connected programmer's configuration. To ensure you always have the same information that BPWin has regarding the system's configuration, handle the NotifyConfigurationUpdate() event.

This method may set its HRESULT to a value represented by one of these members of the BPWinAutomationErrors enum:

Symbol | Value | Description
CJOBMONITOR_E_NOTLICENSED | 8004022Ah | The CJobMonitor feature is not enabled for the currently-connected programmer.
CJOBMONITOR_E_NOPROGRAMMERCONNECTED | 8004022Ch | There is no programmer connected, which is a requirement of using the CJobMonitor object.
CJOBMONITOR_E_JOBRUNNING | 8004022Dh | The method cannot be called while a job is running.

Example

var
 oJobMonitor = WScript.CreateObject("BPWin.CJobMonitor");
var oXmlDoc     = LoadXmlDoc(oJobMonitor.GetSystemInfo());
var sVersion
= oXmlDoc.selectSingleNode(
"//BpWinVersion" // XPath string that
// retrieves the
// BPWin version number.
).text;
WScript.Echo("BPWin Version: " + sVersion);
WScript.Quit();

function LoadXmlDoc(sXmlDoc)
{
var oXmlDoc = WScript.CreateObject("MSXML.DOMDocument");
oXmlDoc.async = false;
oXmlDoc.resolveExternals = false;

// The XML is well-formed, however it does not validate due
 to lack
// of DTD.
//
oXmlDoc.validateOnParse = false;

// DOMDocument.loadXML() only works with UTF-16 encodings,
 but
// CJobControl.GetSystemInfo() returns an XML document with
 a UTF-8
// encoding, so write the document to a temporary file and
 use
// DOMDocument.load() instead.
//
var oTextFile =
WScript
.CreateObject("Scripting.FileSystemObject")
.CreateTextFile("temp.xml",
 true);
oTextFile.Write(sXmlDoc);
oTextFile.Close();

oXmlDoc.load("temp.xml");
return oXmlDoc;
}

String GetSelectedDeviceOperationOption()

Returns a comma-delimited list of the currently selected device operation options. Example: "Continuity, Program, Verify, Secure"

Remarks

This method cannot be called unless a job is running.

Example

var oJobMonitor = WScript.CreateObject("BPWin.CJobMonitor");

var sOperations = oJobMonitor.GetSelectedDeviceOperationOptions();

WScript.Echo("Device Operations: " + sOperations);

WScript.Quit();

long GetDataPatternChecksum()

Returns the checksum of the loaded Data Pattern using the currently selected checksum options. Note that if serialization is in use, the Data Pattern is modified for every generated serial number and computing the checksum could be very time consuming depending on the size of the Data Pattern.

Remarks

The method cannot be called unless a job is running.

Example

var oJobMonitor = WScript.CreateObject("BPWin.CJobMonitor");

var lChecksum = oJobMonitor.GetDataPatternChecksum();

WScript.Echo("Checksum: " + lChecksum.toString(16));

WScript.Quit();

Array GetDataPatternVector(Address, lSize)

Returns an array containing a portion of the data in the BPWin data pattern buffer.

Parameters

Address The data pattern byte address that specifies the beginning location of the array. This can be any numeric type with the following restrictions:

  • It must not be less than 0.

  • Floating-point types must have a fractional portion of .0 and must not be greater than 9007199254740991.0.

This value may also be a string representation of an integer n where:

0x0 <= n <= 0xFFFFFFFFFFFFFFFF, in hexadecimal format, prefixed with "0x"

or

0 <= n <= 18446744073709551615, in decimal format

lSize The number of bytes in the array. This parameter is declared as LONG in the type library therefore it cannot be greater than 2,147,483,647.

Remarks

The type of array returned is a SAFEARRAY of VARIANTs (VT_ARRAY | VT_VARIANT). In JScript, this requires using the VBArray facility.

Example

var oJm = WScript.CreateObject("BPWin.CJobMonitor");

WScript.Echo("Data at address 0: " + VBArray(oJm.GetDataPatternVector(0, 5)).toArray().toString());

WScript.Echo("Data at address 0xFF: " + VBArray(oJm.GetDataPatternVector("0xFF",5)).toArray().toString());

WScript.Echo("Data at address 511: " + VBArray(oJm.GetDataPatternVector("511" , 5)).toArray().toString());

WScript.Echo("Data at address 1023.0: " + VBArray(oJm.GetDataPatternVector(1023.0, 5)).toArray().toString());


SiteandSocket_Identification

III. BPWin Automation Object Model - ch 2

SITE AND SOCKET IDENTIFICATION

Individual sockets and sites are referred to by events that are raised by the CJobMonitor object. This requires that each socket and site be uniquely identified. This is done by associating a unique number to each site and a unique letter to each socket. The BPWin application assigns these values in the following manner.

In the BPWin GUI, Sockets are lettered A through D. Sockets that are unavailable – for example, sockets that have their daughter-cards removed – are included in the identification scheme. Socket A is the left-most socket when the name printed on the module is oriented right-side-up. The CJobMonitor object uses numerical values to represent sockets; 0 is Socket A, 1 is Socket B, and so on. To illustrate this concept, the BPWin type library provides the Sockets ENUMs.

Sites are numbered 0 to n - 1 where n is the total number of sites on the programmer. Sites that are unavailable – for example, sites that have their socket modules removed – are included in the numbering scheme. Site numbers can be determined by subtracting 1 from the numbers printed on them.


SystemInfo Introduction

III. BPWin Automation Object Model - ch 3

Introduction

In the Structure section you will find an illustration of the structure of the XML document retrieved by calling the GetSystemInfo() method and provided with the NotifyConfigurationUpdate() event of the CJobMonitor object. In terms of the XML Document Object Model, each item in the illustration represents the name of a node, items in italics represent nodes that have children (that is, nodes that consist of child nodes), and items in normal text represent nodes without children (that is, nodes that consist of only data). Child nodes are found underneath their parents at a greater indentation level (in other words, below and to the right of their parents). Asterisks (‘*’) designate nodes that may appear 0 or more times in their location in the hierarchy.

Each item is hyperlinked to a location in the reference section of this chapter that describes the contents of that item. Here is how the item descriptions are formatted:

[Here you will find the XPath string that would be appropriate to send to an API call that accepts such strings to retrieve the data associated with the item. For example code that uses such XPath strings, see the GetSystemInfo() method of the CJobMonitor object; specifically, see its usage of the selectSingleNode() method of the MSXML.DOMDocument object.]

[Here you will find a description of the item]

Example Data

[This section is present only for nodes that do not consist of child nodes. It will contain an example of the data that will be present for this node. What is presented is an example of what might be found between the tags when directly examining the XML document. For example, if an item looks like this in the XML document: <Ordinal>1</Ordinal>. Then the Example Data section would show: 1.]


SystemInfo Structure

III. BPWin Automation Object Model - ch 3

Structure

BpWinVersion

OperatorMode

Programmer

Communication

PortMode

Model

SiteInfo

MasterSite

SocketModuleInfo

Name

SocketsPerSite

DaughterCardName

Connector**

Ordinal**

Insertions**

Site*

Ordinal

SerialNumber

SocketModule

Odometer

TripOdometer

Socket*

Ordinal

Odometer

TripOdometer

InsertionsIntoBase**

SerialNumber

* = Nodes that may appear 0 or more times in their location in the hierarchy.

** = This node will only be present on programmers that incorporate an interposer board (such as the 2800F or later).


SystemInfo Reference

III. BPWin Automation Object Model - ch 3

Reference

//BpWinVersion

The version number of the BPWin application currently providing the CJobMonitor instance.

Example Data

4.64.0

//OperatorMode

Whether BPWin is currently running in operator mode. One of two possible strings: “Yes” or “No”.

Example Data

Yes

//Programmer//Communication

A parent node consisting of child nodes that represent the currently detected PC to programmer communication configuration.

//Programmer//Communication//PortMode

The current site communication protocol.

Example Data

(USB)

//Programmer

Consists of child nodes that contain information about the currently-detected programmer.

//Programmer//Model

The currently-detected programmer model.

Example Data

BP-2700

//Programmer//SiteInfo

Consists of child nodes that contain information about the site hardware in the programmer.

//Programmer//SiteInfo//MasterSite

An integer that designates which site on the programmer is currently configured as the “Master Site”. This value adheres to the numbering scheme described in the Site and Socket Identification section.

Example Data

0

//Programmer//SiteInfo//SocketModuleInfo

Consists of child nodes that contain general information about the currently-installed socket modules in the programmer.

Because there can be only one type of socket module installed in the programmer at any given time, information exists that can be applied to all socket modules in a programmer at any given time. This general socket module information is presented in this node. For information that is specific to each socket module currently installed on the system, see //Programmer//SiteInfo//Site[x]//SocketModule.

If there is no socket module installed on the master site, then this node will not be present, regardless of whether other sites have socket modules installed.

//Programmer//SiteInfo//SocketModuleInfo//Name

The name of the socket module currently installed in the programmer.

Example Data

FX4ASM48TD

//Programmer//SiteInfo//SocketModuleInfo//SocketsPerSite

An integer that represents the number of sockets in each site.

Example Data

4

//Programmer//SiteInfo//SocketModuleInfo//DaughterCardName

The name of the daughter card currently in the socket module. This item will be present only if there is a daughter card in the socket module.

Example Data

WX4ASM48TD

//Programmer//SiteInfo//Site[x]//SocketModule//Connector[y]

This node will only be present on programmers that incorporate an interposer board (such as the 2800F or later).

Consists of child nodes that contain information about a socket connector on the interposer board . Each occurrence of this node represents a unique socket connector in the interposer board.

The y in the XPath string represents which node of these multiple nodes.

//Programmer//SiteInfo//Site[x]

Consists of child nodes that contain information about a site in the programmer. Since programmers contain one or more sites, this node can be present one-or-more times. Each occurrence of this node represents a unique site in the programmer.

The x in the XPath string represents which node of these possibly-multiple nodes.

//Programmer//SiteInfo//Site[x]//Ordinal

An integer in decimal format that designates which site on the programmer the //Programmer//SiteInfo//Site[x] node represents. This value adheres to the numbering scheme described in the Site and Socket Identification section.

Example Data

1

//Programmer//SiteInfo//Site[x]//SerialNumber

The site’s serial number as it would appear when running diagnostics in the BPWin application.

Example Data

34353

//Programmer//SiteInfo//Site[x]//SocketModule

Consists of child nodes that contain information about the socket module installed in the site. This node will not be present if a socket module is not installed in the site. If there is no socket module installed on the master site, then this node will not be present for all sites, regardless of whether the sites have socket modules installed.

//Programmer//SiteInfo//Site[x]//SocketModule//Odometer

An integer in decimal format representing the current value of the socket module’s insertion counter as it would appear when selecting “Tools/Socket Module Counter…” from the BPWin menu.

Example Data

26359

//Programmer//SiteInfo//Site[x]//SocketModule//TripOdometer

An integer in decimal format representing the current value of the socket module’s “Number of Insertions Since Last Reset” as it would appear when selecting “Tools/Socket Module Counter…” from the BPWin menu.

Example Data

26346

//Programmer//SiteInfo//Site[x]//SocketModule//Socket[y]

Consists of child nodes that contain information about a socket in the socket module. Since socket modules can contain one or more sockets, this node can be present one-or-more times. Each occurrence of this node represents a unique socket in the socket module.

The y in the XPath string represents which node of these possibly-multiple nodes.

This node will not be present if the socket module does not contain daughter cards.

//Programmer//SiteInfo//Site[x]//SocketModule//Socket[y]//Ordinal

An integer in decimal format that designates which socket in the socket module the //Programmer//SiteInfo//Site[x]//SocketModule//Socket[y] node represents. This value adheres to the numbering scheme described in the Site and Socket Identification section.

//Programmer//SiteInfo//Site[x]//SocketModule//Socket[y]//SerialNumber

The socket's serial number. If a socket does not have a serial number, "N/A" will be displayed.

Example Data

A002000D

//Programmer//SiteInfo//Site[x]//SocketModule//Socket[y]//Odometer

An integer in decimal format representing the current value of the socket’s insertion counter as it would appear when selecting “Tools/Socket Module Counter…” from the BPWin menu.

Example Data

198211

//Programmer//SiteInfo//Site[x]//SocketModule//Socket[y]//TripOdometer

An integer in decimal format representing the current value of the socket’s “Number Of Insertions Since Last Reset” as it would appear when selecting “Tools/Socket Module Counter…” from the BPWin menu.

Example Data

80381

//Programmer//SiteInfo//Site[x]//SocketModule//Socket[y]//InsertionsIntoBase

The total number of times the socket card has been plugged into an interposer board.


JobParameters Intro

III. BPWin Automation Object Model - app a

Job Parameters

Here you will find a description of the valid values of the sName and sValue parameters of the SetJobParameter() method of the CJobControl object. Each item in this appendix is presented in a format that looks like this:

[String value for the sName parameter]

[Effect this job parameter has on the BPWin application]

Valid Values

[Valid string values for the sValue parameter]

BPWin GUI Equivalent

[What a user can physically execute within the BPWin GUI to accomplish the same results as setting this parameter]

Example

[A snippet of code that demonstrates the usage of this job parameter]


Static Parameters Reference

Device

Selects the device and loads the device's algorithm. This job parameter should be specified before any others since many of the job parameters need to query the information specified in the device algorithm to check the job parameters validity.

Valid Values

The full name of the device to select as it appears in the Select Device dialog in the BPWin application.

BPWin GUI Equivalent

Selecting a device in the Select Device dialog.

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("Device", "Atmel AT29C010");

DeviceOptions.AutoRangeDetection

Whether to enable Automatic Device Range determination based on the data pattern file.

Valid Values

ENABLE or DISABLE.

BPWin GUI Equivalent

Setting the Auto Range check box in the Device Range dialog (Device Config | Range).

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("DeviceOptions.AutoRangeDetection", "NO");

DeviceOptions.RangeStartStop

Specifies the first and last address of the device to use during ranged operations (for example, Program, Verify).

Valid Values

A string representation of the first followed by the last address as two integers n where 0 <= n <= FFFFFFFF, in hexadecimal format, delimited by a '-' character. The values specified will be checked by BPWin that it is appropriate for the currently selected device in that it adheres to any block boundaries that the device restricts operations to and that it is within the bounds of the entire device. If this check fails then SetJobParameter() returns an HRESULT value of INVALID_VALUE.

BPWin GUI Equivalent

The "Lowest Address of Device" and "Highest Address of Device" fields in the Device Range dialog (Device Config | Range).

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");

oJobControl.SetJobParameter("DeviceOptions.RangeStartStop", "0-3FFF");

DeviceOptions.BufferOffset

This parameter has been deprecated.

Valid Values

0

DeviceOptions.ClearBufferOnRead

Whether to clear the buffer to default value before read begins.

Valid Values

ENABLE or DISABLE.

BPWin GUI Equivalent

Checking the Clear Buffer First item in the Read tab of the main BPWin window.

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("DeviceOptions.ClearBufferOnRead",

"ENABLE");

DeviceOptions.ByteOrder

Selects the byte order used to transfer data to or from the device.

Valid Values

Value | Description
"MSB=1, LSB=0" | The Least Significant Byte appears at the lower address of the 2-byte word (aka Little Endian) as is typical of Intel based systems.
"MSB=0, LSB=1" | The Most Significant Byte appears at the lower address of the 2-byte word (aka Big Endian) as is typical of Motorola based systems.

BPWin GUI Equivalent

Clicking either the "Intel Format: Little Endian (LSB first)" or the "Motorola Format: Big Endian (MSB first)" radio button in the Byte Order dialog (Device Config | Byte Order).

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("DeviceOptions.ByteOrder", "MSB=1, LSB=0");

DeviceOptions.DataPathWidth

Number of physical devices (sets) in a bank. The data in a bank will be divided among all the sets comprising it in an interleaved fashion.

Valid Values

A string representation of an integer n where 1 <= n <= 2147483647, in decimal format.

BPWin GUI Equivalent

Setting a value in the Data Path Width field of the Device Set dialog (Device Config | Set).

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("DeviceOptions.DataPathWidth", "2");

DeviceOptions.NumberOfBanks

Number of total banks that span the entire Data Pattern. Each bank is comprised of several sets.

Valid Values

A string representation of an integer n where 0 <= n <= 2147483647, in decimal format.

BPWin GUI Equivalent

Setting a value in the Number of Banks: field of the Device Set dialog (Device Config | Set).

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("DeviceOptions.NumberOfBanks", "2");

DeviceOptions.ProgrammingMode

Divides the data into two or more devices to be read either in parallel or programming by dividing the data into two or more devices to be read in series. The Programming Mode allows you to select either a single device or a set of devices.

Valid Values

Value | Description
"SET" | Each physical device will correspond to a particular set.
"SINGLE" | Specifies that only a single set will be used for all devices.

BPWin GUI Equivalent

Selecting either the Set or Single radio buttons in the Device Set dialog (Device Config | Set).

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("DeviceOptions.ProgrammingMode", "SET");

DeviceOptions.VectorDisplay

Sets the type of information to display during the vector test.

Valid Values

Value | Description
ERRORS-ONLY | Show only the errors that occurred during the test
ALL | Show all the vectors as they are being applied to the part.
SINGLE-STEP | Will pause after each vector and require user input to continue.

BPWin GUI Equivalent

Selecting the Errors Only, Single Step, or All radio button in the Display group box of the Vector Configuration dialog (Device Config | Vector).

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("DeviceOptions.VectorDisplay",
                   "SINGLE-STEP");

DeviceOptions.VectorTestAfterVerify

Whether to perform vector test after a verify operation provided that the JEDEC file contains test vectors.

Valid Values

Value | Description
NONE | No vector test is performed.
ONCE | Performs vector test at the high-end of the device's specified Vcc range
TWICE | Performs Test at both the low-end and the high-end of the device's specified Vcc range.

A device may support only testing once, in such cases specifying TWICE is unsupported.

BPWin GUI Equivalent

Selecting a Test option in the "Test" tab, and the combo box below the "Verify" combo box in the other applicable tabs (Program, Verify, etc) of the main BPWin window.

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("DeviceOptions.VectorTestAfterVerify",
                            "TWICE");

DeviceOptions.VectorTestAfterSecure

Whether to perform vector test after a secure operation provided that the JEDEC file contains test vectors.

Valid Values

Value | Description
NONE | No vector test is performed.
ONCE | Performs vector test at the high-end of the device's specified Vcc range.
TWICE | Performs Test at both the low-end and the high-end of the device's specified Vcc range.

A device may support only testing once, in such cases specifying TWICE is unsupported.

BPWin GUI Equivalent

Selecting a Test option in the "Test" tab, and the combo box below the "Secure" combo box in the other applicable tabs (Program, Verify, Secure, etc) of the main BPWin window.

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("DeviceOptions.VectorTestAfterSecure",
                            "ONCE");

DeviceOptions.VectorXState

Configures how pins labeled X will be set.

Valid Values

Value | Description
0 | Uses 0 as "don't care" value for vector testing.
1 | Uses 1 as "don't care" value for vector testing.
RANDOM | Uses random number generator to compute vectors.
PSEUDORANDOM | Random with the SEED you specify with the DeviceOptions.VectorSeed job parameter.
PULL-UP | Uses Z (FLOAT) as "don't care" value for vector testing.

BPWin GUI Equivalent

Selecting a radio button in the X Value group box of the Vector Configuration dialog (Device Config | Test Vectors).

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("DeviceOptions.VectorXState",
                            "RANDOM");

DeviceOptions.VectorSeed

When using test vectors with PSEUDORANDOM values for 'X', this seed value initializes the random number generator. Running the test twice with the same seed will produce the same set of random vectors.

Valid Values

A string representation of an integer n where 0 <= n <= FFFF, in hexadecimal format.

BPWin GUI Equivalent

Setting a value in the "Seed:" field of the Vector Configuration dialog (Device Config | Test Vectors).

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("DeviceOptions.VectorSeed", "F1ED");

DeviceOptions.BlankCheck

Verifies that the device is in its virgin state before performing the selected command (Erase, Program, etc.).

Valid Values

Value | Description
DISABLE | No blank check is performed.
ENABLE | Enables blank check.
ILLEGAL-BIT | A special form of Blank Check. If all non-virgin bits (fuses) of the device are used in the data pattern, the device is usable as though it were blank. This value only applies to PLDs. On Concurrent Programmers this only works if all devices have the same non-blank pattern.

BPWin GUI Equivalent

In the various tabs in the main BPWin window, selecting Blank Check in the combo box that contains it, and setting its associated check box.

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("DeviceOptions.BlankCheck",
                            "ENABLE");

DeviceOptions.Erase

Whether to erase the device before programming it.

Valid Values

DISABLE or ENABLE.

BPWin GUI Equivalent

In the various tabs in the main BPWin window, selecting Erase in the combo box that contains it, and setting its associated check box.

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("DeviceOptions.Erase", "ENABLE");

DeviceOptions.Verify

Whether and how to verify the data in the device against the data in the software's Data Pattern. Only produces a pass/fail result and can be used in concurrent operations.

Valid Values

Value | Description
NONE | The device will not be verified.
ONCE | Performs Verify at the high-end of the device's specified Vcc range.
TWICE | Performs Verify at both the low-end and the high-end of the device's specified Vcc range.

A device may support only verifying once, in such cases specifying TWICE is unsupported.

BPWin GUI Equivalent

In the various tabs in the main BPWin window, selecting Verify, Verify Once, or Verify Twice in the combo box that contains those items, and setting its associated check box.

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("DeviceOptions.Verify", "TWICE");

DeviceOptions.ContinuityTest

Whether to verify that all device pins are in electrical contact with the socket and that the device orientation is correct before performing the selected command (Erase, Program, etc.).

Valid Values

Value | Description
DISABLE | Do not test for correct insertion.
ENABLE | Tests for correct insertion.
AUTOSTART | Automatically starts the selected command (Erase, Program, etc.) when the presence of a device is detected in the socket. The part will still be subject to a continuity test and could fail continuity if some, but not all, pins are in electrical contact with the socket.

BPWin GUI Equivalent

In the various tabs in the main BPWin window, selecting Continuity or Auto Continuity in the combo box that contains it, and setting its associated check box.

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("DeviceOptions.ContinuityTest", "ENABLE");

DeviceOptions.IDCheck

Whether to verify the Electronic ID of the device before performing the selected command (Erase, Program, etc.). A warning message will appear if there is a mismatch along with some options.

Valid Values

Value | Description
ENABLE | Checks the ID before executing the command
DISABLE | Is useful when programming old chips that don't have an EID even though the programmer is expecting to find one.
AUTO_SELECTION | Uses the Electronic ID code to select the proper device type automatically.

BPWin GUI Equivalent

In the various tabs in the main BPWin window, selecting ID Check in the combo box that contains it, and setting its associated check box.

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("DeviceOptions.IDCheck", "ENABLE");

DeviceOptions.Secure

See Secure.

Valid Values

Device algorithms may customize this setting. When the device algorithm has customized the setting there are no set values that can be documented here except for DISABLE which, when specified as the value, means to not secure the device.

Other than DISABLE, the value to specify when the device algorithm has customized the setting can be derived by examining what the BPWin GUI specifies in the combo box that contains the secure setting in the main BPWin window. For example, the device Microchip Technology PIC16LC923/L contains the following items in the Secure combo box:

"Secure(ALL)"
"Secure(UPPER-50%)"
"Secure(UPPER-75%)"

To specify, say, Secure(UPPER-50%) for this job parameter, the value would be:

"Secure(UPPER-50%)".

If the setting has not been customized by the device algorithm then the valid values are DISABLE and ENABLE.

BPWin GUI Equivalent

In the various tabs in the main BPWin window, selecting a secure option in the combo box that contains it, and setting its associated check box.

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("DeviceOptions.Secure",
    "Secure(UPPER-50%)");

DeviceOptions.Operation

Sets the main operation to perform on the device during the job. Also see Device Command Tabs.

Valid Values

This is mostly derivable from the names of the tabs as they appear in the main window of the BPWin GUI. Here is a list of the standardized values for this setting:

Program | Verify | BlankCheck | Compare | Read
Secure | Test | Erase | Sum | Special Operations

Specifying one of the above values would have the same effect on BPWin as making that tab the active tab.

Device algorithms and STAPL buffer files (See also CustomOptions) may customize the names of the tabs in the main window of the BPWin GUI. Since all possible customizations are not standardized, they cannot be documented here. In these situations, the value to specify for this job parameter will need to be derived by examining the customized name of the tab.

BPWin GUI Equivalent

See the Valid Values section above.

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("DeviceOptions.Operation", "Program");

BufferOptions.CheckSumMethod

Sets the buffer checksum method.

Valid Values

Value | Description
8 | Calculates the checksum 8 bits at a time.
16 | Calculates the checksum 16 bits at a time.

BPWin GUI Equivalent

Selecting a value for the Method combo box in the Checksum Options group box in the Data Pattern Information dialog.

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("CheckSumMethod", "16");

BufferOptions.CheckSumMode

Sets the buffer checksum type.

Valid Values

One of the following:

Value | Sets the checksum mode to
BUFFER | "Data Pattern" - The checksum is calculated based on the size of the Data Pattern. The checksum calculation will stop at the last address in the Data Pattern, even if that address is beyond the size of the device.
DEVICE | "Device" - The checksum is calculated based on the size of the Device. The checksum calculation will stop at the last address of the Device, even if that address is beyond the size of the Data Pattern. The "Default Value" is used in the checksum calculation for addresses beyond the current Data Pattern size.
COMPATIBILITY | "Device-specific" - Uses a checksum algorithm specific to the selected device.

BPWin GUI Equivalent

Selecting a value for the Type combo box in the Checksum Options group box in the Data Pattern Information dialog.

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("BufferOptions.CheckSumMode", "DEVICE");

BufferLoad.AddrScheme

Allows selection of the addressing mode for Intel and Motorola file formats.

Valid Values

Value | Effect
BYTE | Indicates that the specified Low and High File Addresses are byte addresses.
WORD | Indicates that the specified Low and High File Addresses are word addresses.

BPWin GUI Equivalent

Selecting either the Byte or Word radio buttons in the Addressing group box in the Load Data Pattern File dialog.

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("BufferOptions.AddrScheme", "WORD");

BufferLoad.DataBufferDefaultValue

A 32-bit hex value that is used to fill empty Data Pattern regions as the Data Pattern increases in size.

Valid Values

A string representation of an integer n where 0 <= n <= FFFFFFFF, in hexadecimal format. Leading zeros may be used to fill high bytes with zeros and multi-byte values are always put into the buffer in Little Endian fashion regardless of the Byte Order setting, if available.

BPWin GUI Equivalent

Setting a value in the Default Value (Hex) combo box of the Load Data Pattern File dialog.

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("BufferLoad.DataBufferDefaultValue",
                            "FF");

BufferLoad.BufferLowAddr

For the purposes of subsequently loading a data pattern file, specifies what to do with the "Low File Address" setting, which is the starting file address to load from.

Valid Values

One of the following:

Value | Effect
A string representation of an integer n where 0 <= n <= FFFFFFFF, in hexadecimal format. | Disables the automatic determination of the Low File Address and sets Low File Address to the value specified.
AUTO | Automatically determines the Low File Address.

BPWin GUI Equivalent

Unchecking or checking the Auto checkbox and specifying a value for the Low File Address field of the Load Data Pattern File dialog.

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("BufferLoad.BufferLowAddr", "7FFFFFFF");

BufferLoad.BufferHighAddr

For the purposes of subsequently loading a data pattern file, specifies the value for the "High File Address" setting, which is the ending file address to load. Loading will stop at either this address or the highest address encountered in the Data Pattern file, whichever occurs first.

Valid Values

A string representation of an integer n where 0 <= n <= FFFFFFFF, in hexadecimal format.

BPWin GUI Equivalent

Setting a value in the High File Address field of the Load Data Pattern File dialog.

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("BufferLoad.BufferHighAddr", "FFFFFFFF");

BufferLoad.BufferLoadAddr

For the purposes of subsequently loading a data pattern file, specifies the value for the "Data Pattern Address" setting, which is the starting Data Pattern byte address to load the file into.

Valid Values

A string representation of an integer n where 0 <= n <= FFFFFFFF, in hexadecimal format.

BPWin GUI Equivalent

Setting a value in the Data Pattern Address field of the Load Data Pattern File dialog.

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("BufferLoad.BufferLoadAddr", "3F000000");

BufferSave.AddressRange

Specifies the first and last address of the data pattern to save.

Valid Values

A string representation of the first followed by the last address as two integers n where 0 <= n <= FFFFFFFFFFFFFFFF, in hexadecimal format, delimited by a '-' character. The values specified will be checked by BPWin that first address is not greater than the last. If this check fails then SetJobParameter() returns an HRESULT value of INVALID_VALUE.

BPWin GUI Equivalent

In the "Save Data Pattern File" dialog, setting values for the "Low Data Pattern Address" and "High Data Pattern Address" fields.

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");

oJobControl.SetJobParameter("BufferSave.AddressRange", "0-FFFF");

Serialize.Method

Selects the serialization method to use. This job parameter should be set before any other serialization-specific parameters.

Valid Values

Value | Description
NONE | No serialization is performed.
SIMPLE | Interprets all "Serialize." job parameters as SIMPLE serialization settings and performs SIMPLE serialization throughout the job.
COMPLEX | Interprets all "Serialize." parameters as COMPLEX serialization settings and performs COMPLEX serialization throughout the job.

BPWin GUI Equivalent

Selecting the None, Simple, or Complex radio button in the Serialization dialog (Tools | Serialization).

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("Serialize.Method", "COMPLEX");

Serialize.FirstNumber

Specifies the first serial number to use.

Note: Set the "Serialize.Method" parameter before setting this parameter.

Valid Values

An ASCII string no longer than 32 characters.

For complex serialization, this will be passed 'as is' to the External Serialization Program (ESP).

For simple serialization, a string representation of an integer n, where 0 <= n <= 281474976710655, in decimal format.

BPWin GUI Equivalent

In the Serialization dialog (Tools | Serialization):

- When the Complex radio button is selected, entering something into the First field in the Serial Number group box.

- When the Simple radio button is selected, clicking OK in the Serialization dialog and entering a number into the "Starting Serial Number:" field of the "Serialization Serial Number" dialog that opens.

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("Serialize.FirstNumber", "100000FF");

Serialize.LastNumber

Only valid for Complex serialization. Representation of the last serial number to use.

Note: Set the "Serialize.Method" parameter before setting this parameter.

Valid Values

An ASCII string no longer than 32 characters.

This will be passed 'as is' to the External Serialization Program (ESP).

BPWin GUI Equivalent

In the Serialization dialog (Tools | Serialization), entering something into the Last field in the Serial Number group box when the Complex radio button is selected.

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("Serialize.LastNumber", "1000FFFF");

Serialize.Program

Only valid for Complex serialization. Sets the full path and extra command line parameters for the External Serialization Program (ESP).

Note: Set the "Serialize.Method" parameter before setting this parameter.

Valid Values

A string containing what is described above.

BPWin GUI Equivalent

In the Serialization dialog (Tools | Serialization), entering a path and/or command line into the Program field of the Complex group box when the Complex radio button is selected.

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("Serialize.SerializationProgram",
                            "c:\\serial\\serial.exe");

Serialize.LogFile

Sets the name of the file which will contain a log of the serial numbers generated during the session. This log will only be generated when running in concurrent mode.

Note: Set the "Serialize.Method" parameter before setting this parameter.

Valid Values

A fully qualified path string to the log file.

BPWin GUI Equivalent

Entering a path in the Log File field in the Serialization dialog (Tools | Serialization).

See description for Complex and Simple.

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("Serialize.LogFile",
                            "c:\\serial\\serial.log");

Serialize.Retry

Whether a serial number intended for a device that fails programming gets re-programmed into the next device.

Note: Set the "Serialize.Method" parameter before setting this parameter.

Valid Values

"ENABLE" or "DISABLE"

BPWin GUI Equivalent

Setting the Attempt Retry of Failed Serial Numbers check box in the Serialization dialog (Tools | Serialization).

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("Serialize.Retry", "ENABLE");

Serialize.NumberSize

Only valid for Simple serialization. Specifies the number of bytes that will be reserved for the serial number in the device.

Note: Set the "Serialize.Method" parameter before setting this parameter.

Valid Values

A string representation of an integer n where 0 <= n <= 6, in decimal format.

Note that specifying 0 has the same effect as disabling serialization.

BPWin GUI Equivalent

Selecting a value for the Size field of the Serialization dialog (Tools | Serialization) when the Simple radio button is selected.

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("Serialize.NumberSize", "6");

Serialize.DataFile

Specifies the data file name.

For simple serialization, BPWin will write the serial number of each programmed device to the data file.

For complex serialization, however, the External Serialization Program (ESP) is responsible for writing the serialization data to the file which BPWin subsequently reads.

Note: Set the "Serialize.Method" parameter before setting this parameter.

Valid Values

See the description above. If no full-path is specified, then the relative path used is BPWin's working directory at launch.

BPWin GUI Equivalent

Entering a name into the Data File field of the Serialization dialog (Tools | Serialization).

See description for Complex and Simple.

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("Serialize.DataFile",
                            "c:\\serial\\serial.dat");

Serialize.BufferAddress

Only valid for Simple serialization. Sets the buffer address for the first byte of the Serial Number.

Note: Set the "Serialize.Method" parameter before setting this parameter.

Valid Values

A string representation of an integer n where 0 <= n <= FFFFFFFFFF, in hexadecimal format.

BPWin GUI Equivalent

Entering a value into the Serial Number Buffer Address field of the Serialization dialog (Tools | Serialization).

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("Serialize.BufferAddress", "1000FFFF");

Serialize.BytePitch

Only valid for Simple serialization. Sets whether to skip every other byte.

Note: Set the "Serialize.Method" parameter before setting this parameter.

Valid Values

Value | Description
NONE | The serial number is placed in consecutive bytes in the buffer.
EVERY_OTHER | Skips every other byte while writing the serial number data.

BPWin GUI Equivalent

Checking or unchecking the "Skip Every Other Byte" checkbox in the Serialization dialog (Tools | Serialization) when the Simple radio button is selected.

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("Serialize.BytePitch", "EVERY_OTHER");

Serialize.ByteOrder

Only valid for Simple serialization. Sets whether to reverse the byte order when using multi-byte serial numbers.

Note: Set the "Serialize.Method" parameter before setting this parameter.

Valid Values

Value | Description
REVERSE | Reverses the byte order (MSB-first, Big Endian) of the serial number (used by Intel processors).
FORWARD | Will place the Most Significant Byte first (used by Motorola microprocessors).

BPWin GUI Equivalent

Checking or unchecking the "Reverse Byte Order" checkbox in the Serialization dialog (Tools | Serialization) when the Simple radio button is selected.

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("Serialize.ByteOrder", "REVERSE");

Serialize.VerifyNumber

Whether to verify the serial number during a Verify operation. Otherwise, the serial number will be ignored. NOTE: If Quantity is more than one and the software is configured to use a concurrent programmer, this feature is unconditionally enabled.

Note: Set the "Serialize.Method" parameter before setting this parameter.

Valid Values

Value | Description
ENABLE | Verifies the serial number during a Verify operation.
DISABLE | Ignores the serial number during a Verify operation.

BPWin GUI Equivalent

Checking or unchecking the Verify Serial Number check box in the Serialization dialog (Tools | Serialization).

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");

oJobControl.SetJobParameter("Serialize.VerifyNumber", "ENABLE");

Serialize.CompatabilityMode

Only valid for Complex serialization.

If a valid Data File (Serialization.DataFile) is provided, specifies whether the next serial number will be read from the file.

Note: Set the "Serialize.Method" parameter before setting this parameter.

Valid Values

"ENABLE" or "DISABLE".

BPWin GUI Equivalent

Checking or unchecking the "Resume from last serial number in data file" check box of the Serialization dialog (Tools | Serialization) when the Complex radio button is selected.

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");

oJobControl.SetJobParameter("Serialize.CompatabilityMode",
"ENABLE");

Serialize.Stapl.IndexNumbers

Only valid if a STAPL data pattern file is loaded that has STAPL serialization enabled.

Specifies the index numbers and/or index ranges that are the index numbers to use for STAPL serialization throughout the job.

Note: Set the "Serialize.Method" parameter before setting this parameter.

Valid Values

Index numbers and/or index ranges separated by commas.

BPWin GUI Equivalent

Specifying a set of index ranges in the "Index Range" field of the STAPL Serialization dialog (Tools | Serialization) while a STAPL data pattern file is loaded that has STAPL serialization enabled.

Example

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.SetJobParameter("Serialize.Stapl.IndexNumbers",
                            "1,3,5-12");

DeviceOptions.RangeStart

Support for this parameter has been removed. Instead use parameter "DeviceOptions.RangeStartStop".

DeviceOptions.RangeStop

Support for this parameter has been removed. Instead use parameter "DeviceOptions.RangeStartStop".


Dynamic Parameters Reference

Job parameters may exist that are present in the BPWin GUI based on certain forms of customization. Because these customizations are not standardized all possible dynamic job parameters cannot be individually documented here. They are, however, specifiable with the SetJobParameter() method of the CJobControl object via a derivable convention. There are two types of dynamic parameters: DeviceConfig and DeviceCustomOptions.

DeviceConfig

These parameters are based on device algorithm customization – that is, they are different for each device. They can be found in the BPWin GUI in the "Device-Specific" section of the “Device Settings” dialog (Device Config | Settings).

The names of these algo-customized settings are prepended with the text “DeviceConfig.”. The unique portion of the name appears after the dot (‘.’) and matches that setting’s name in the "Device-Specific" section of the “Device Settings” dialog.

Example

Selecting device “AMD AM29DL316CT” and clicking buttons Device Config | Settings, displays the “Device Settings” dialog that contains a setting with the name: "Sector 0 64K (000000h-00FFFFh)". With this information we can derive that the name of this setting is "DeviceConfig.Sector 0 64K (000000h-00FFFFh)".

The value for these parameters is derivable by examining their types of GUI controls:

o For radio buttons, the value of the parameter is the label of the radio button.

o For edit fields, the value of the parameter is the contents of the edit field. For edit fields that accept a numerical value, the format of the number is always hexadecimal.

The device “AMD AM29DL316CT” custom setting of: "Sector 0 64K (000000h-00FFFFh)" uses radio buttons labeled “UNSECURE” and “SECURE” to specify the setting’s value.

Therefore a snippet of code that sets this value to “UNSECURE” would look like this:

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.
   SetJobParameter("DeviceConfig.Sector 0  64K (000000h-00FFFFh)",
                   "UNSECURE");

Specifying these parameters does not require strict adherence to the formatting of the names and values as they appear in the BPWin GUI. Specifically, the spacing and capitalization do not have to match. For example, an alternative way that the setting above could have been specified is this (notice all letters are lower-case and all spaces have been removed):

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.
   SetJobParameter("DeviceConfig.sector064k(000000h-00ffffh)",
                   "unsecure");

DeviceCustomOptions

It will be necessary to specify job parameters under this category when one of two possible scenarious have occurred:

- When a data pattern of type STAPL is loaded. Under this scenario, the "Custom Options" can be found in the BPWin GUI in the combo boxes in the tabs in the main BPWin window.

- When the device algorithm has specified a set of one or more "Special Operations". Under this scenario, the "Custom Options" can be found in the BPWin GUI in the "Special Operations" tab in the main BPWin window.

The names of these parameters are prepended with the text “DeviceCustomOptions.”. The unique portion of the name appears after the dot (‘.’) and matches that item as it appears in its combo box. The valid values of all DeviceCustomOptions is either “DISABLE” or “ENABLE”.

Example

STAPL

Loading a STAPL buffer file with the following contents:

NOTE "CREATOR"
 "EXAMPLE CREATOR";
NOTE "DEVICE" "APA1000";
NOTE "PACKAGE" "APA1000-PQ208";
NOTE "STAPL_VERSION" "JESD71";

ACTION EXAMPLE_ACTION =
EXAMPLE_PROCEDURE,
FIRST_COMBO RECOMMENDED,
SECOND_COMBO RECOMMENDED;

PROCEDURE EXAMPLE_PROCEDURE ENDPROC;
PROCEDURE FIRST_COMBO ENDPROC;
PROCEDURE SECOND_COMBO ENDPROC;

CRC 0;

Results in the main BPWin window containing a single tab named “EXAMPLE_ACTION” that contains two combo boxes; one combo box with an item named “FIRST_COMBO” and another combo box with an item named “SECOND_COMBO”. With this information we can derive that the name of the job parameter to set FIRST_COMBO is “DeviceCustomOptions.FIRST_COMBO”. Therefore a snippet of code that sets this value to “ENABLE” would look like this:

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.
   SetJobParameter("DeviceCustomOptions.FIRST_COMBO", "ENABLE");

Specifying these parameters does not require strict adherence to the formatting of the names and values as they appear in the BPWin GUI. Specifically, the spacing and capitalization do not have to match. For example, an alternative way that the setting above could have been specified is this (notice all letters are lower-case):

var oJobControl = WScript.CreateObject("BPWin.CJobControl");
oJobControl.
   SetJobParameter("DeviceCustomOptions.first_combo", "enable");

Special Operations

Selecting device Actel AX250-CQ352 results in BPWin including a tab named "Special Operations" that contains a single combo box with various items (Act_Verify, Act_BVG, etc). With this information we can derive that the name of the job parameter to set Act_Verify is “DeviceCustomOptions.Act_Verify”.

var oJobControl = WScript.CreateObject("BPWin.CJobControl");

// Not strictly necessary, but if we want BPWin to execute the special
 operation
// we need to activate the tab that the special operation appears in.  See
// the documentation on DeviceOptions.Operation.
//
oJobControl.SetJobParameter("DeviceOptions.Operation", "Special
 Operations");
oJobControl.
SetJobParameter("DeviceCustomOptions.Act_Verify",
 "ENABLE");

See also DeviceOptions.Operation.


Support Info

V. customer service and support

How to Reach Us

Technical Support

Phone: 800-225-2102 (US Only)

713-688-4600

Fax: 713-688-0920

Email: tech@bpmicro.com

Technical Support on our website

Sales Support

Phone: 800-225-2102 (US Only)

713-688-4600

Fax: 713-688-0920

Email: info@bpmicro.com

Website: www.bpmmicro.com

Calling for Technical Support

You can obtain technical support from BPM Microsystems anytime you are experiencing a problem that you cannot resolve. We request that you have the following information ready when you contact us:

  • The model number of the BPM Microsystems programmer.

  • Your software version number (Help > About BPWin...).

  • The exact error message and error number you received.

  • The exact algorithm that was selected.

  • The exact part number on the chip you were trying to program.

  • The command you executed.

  • The results of running the self-test command on your programmer (Programmer Diagnostics).

It is also useful to have a screen shot of the error. You may be asked to upload your file and/or send in your devices so we can analyze the error at the factory.

If you need to return your programmer to BPM Microsystems for any reason, you must call and get a Return Material Authorization (RMA) number before shipping; mark the RMA number clearly on the shipping container. Be sure to include a description of the problem experienced, a return address, contact person, and a phone number.


Software Updates

The control software for your programmer is updated on a frequent basis (typically every six weeks) to provide you with support for new chips.

Software updates may be obtained from BPM Microsystems as a subscription. Please contact a sales person to purchase a software subscription.

Software upgrades may be obtained through our Internet address, but depending on the type of programmer you have (engineer, production, or automated), upgrades, and renewals may need to be obtained by contacting BPM Microsystems' Sales Support.

If you decline the software/hardware upgrade and your software support runs out, you will receive the following an error message (Error Code 57) when selecting a part.

Your programmer is designed to be highly flexible and programmable, allowing it to program a wide variety of chips. Consequently, when a problem does arise, it can usually be fixed with a software update.

We recommend that you obtain the latest software revision before calling our support line with a software problem. Many of our technical support calls result in the user obtaining the latest version of the software.


Creating a Support Case

BPWin now has the ability to create a support case to be sent to BPM Microsystems for troubleshooting. This feature allows the operator to report any errors or hangs that BpWin might be having directly to the Technical Support team so that the issue can be analyzed and quickly fixed. To access the support case creation, BPWin provides a quick access button in the toolbar.

Once the operator has clicked the case creation button, a new window will come up with several entries for the operator to enter. The operator can also select the BPWin folders that contains the current job logs to be sent. After entering all the required information and selecting the proper folders, the user can click on the "OK" button to start the sending process. Note that the filed with an asterisk requires input from the operator.

NOTE: launching the support case window from BPWin quick access button will require the "Crash Report SMTP Configuration" to be set in BPWin. The operator can access the SMTP configuration by going to "Tools -> Options.." in the menu.

Another option to create a support case is by launching the support case executable from the windows start menu or by the desktop icon. launching from the start menu or desktop will launch the windows default email client and attach all the information typed by the operator as well as attaching the logs the operator selected previously.

NOTE: if there is no email client installed on the computer than this feature will not work. The operator will have to bundle and zip the processed files and send the bundle zip archive manually view email.


Troubleshoot BPWin Error Codes

VI. troubleshooting

BPWin Error Codes

Error messages are usually generated by the device programmer. The following list of error messages could originate from the software (clicking on the error number below will take you to the error):

3 | 5 | 6 | 8 | 9 | 10 | 11 | 14 | 15 | 16 | 18 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 31 | 32 | 33 | 36 | 39 | 40 | 44 | 46 | 47 | 48 | 49 | 57 | 70

Error 3: Cannot reset hardware.

The software cannot establish communications with the programmer. Here are some suggestions:

  • Be sure the programmer has proper power and that the green PASS LED is on. Since the programmer will do an automatic Power On Self Test (POST) upon startup, it could be that the programmer failed the test and has signaled the software into the default DEMO mode. If this should happen, please contact BPM Microsystems' Technical Support.

  • The programmer may be damaged. Try another computer and/or USB port and see if it works there. See Calling for Technical Support.

Error 5: Hardware time-out.

This error message is generated when the software is waiting on a response from the programmer while executing a command and the programmer does not respond within the expected amount of time. This error may result from several causes. You may be experiencing communication errors (see Error 3: Cannot reset hardware above). There may be a bug in the software for this particular algorithm (see Error 10: Error in programming algorithm below). See also the Self-Test section.

Error 6: Wrong model number.

See Error 3: Cannot reset hardware above for possible causes.

Error 9: Programmer execution error.

The programmer failed an internal consistency check. See Error 3: Cannot reset hardware and Error 5: Hardware time-out for possible causes.

Back To Top

Error 10: Error in programming algorithm. Please call technical support.

The software has detected an internal error. You should contact BPM Microsystems to report the error. You may need to obtain a software update. See the Calling for Technical Support section.

Error 11: There is no data in the buffer. You must load a file or read a chip.

A command tried to read data from the buffer to program or verify a chip, but nothing has been loaded into the buffer yet or the buffer was recently cleared.

Error 14: There is no chip in the programmer site.

Be certain that your chip is inserted correctly. If the chip was inserted correctly, remove it and run the hardware self-test to be sure your programmer is functioning correctly (Programmer Diagnostics). A defective chip may cause this error. When using an autohandler, the socket may not have closed or a connection between the programmer and the socket may be disconnected.

Error 15: The chip is not inserted in the programmer site correctly.

The continuity test determined that the chip in the programmer site does not have continuity on all the proper pins. You should examine these pins carefully. Possible causes are:

  • A bent pin.

  • The chip is not in the proper position in the programmer site.

  • The chip has a different number of pins than the chip selected.

  • The algorithm selected has an * (asterisk), indicating it requires an adapter, but you did not use the adapter, or vice-versa.

  • The socket is dirty and not making a connection. See Cleaning a Dirty DIP socket.

  • The wrong socket module or adapter is being used for this part.

  • The device may be a very low power device that is not properly detected by our continuity methodology. If so, please let us know.

Note:

  • It is not easy to get continuity on an LCC device in a PLCC socket. If you are trying to do that, then you may need to add a spacer between the chip and the lid in order to apply the proper force to the device pins. The best solution is to purchase an LCC socket module that does not require any such jury rigging.

  • LCC devices will not work in the auto-eject sockets designed strictly for PLCC devices.

Error 16: The chip is inserted backwards.

The chip has passed the continuity tests, but appears to have the GND and Vcc pins improperly placed in the socket. If the DIP, SOIC, or TSOP device is not actually inserted backwards and the LCC, PLCC, or QFP is not accidentally rotated, then the device is probably defective. Try a known good device.

Back To Top

Error 18: Temporary file error.

Our software’s virtual memory manager is trying to store data that is currently not needed in RAM to the disk. The program was unable to create a temporary file or the disk is full. You should make sure you have plenty of disk space (the larger the data files, the larger the requirement for temporary disk space). The program does take advantage of EMS memory if you have an expanded memory manager installed. This is much faster than using the disk for temporary swap space.

Error 21: Cannot program.

Not able to program the device in the programmer site. See the Errors While Programming section.

Error 22: Cannot erase.

Not able to erase the device in the programmer site. See the Errors While Programming section.

Error 23: Invalid electronic signature in chip (device ID).

The chip may be damaged or the chip manufacturer may have changed the programming algorithm without notifying us. See Error 25: Invalid electronic signature in chip (manufacturer ID) below.

Error 24: Invalid electronic signature in chip (algorithm ID).

The chip may be damaged or the chip manufacturer may have changed the programming algorithm without notifying us. See Error 25: Invalid electronic signature in chip (manufacturer ID) below.

Error 25: Invalid electronic signature in chip (manufacturer ID).

Many of the new EEPROM based PLDs (such as all the GALs) have electronic identifiers that specify the manufacturer, the device code, and the proper programming parameters. The most common cause of this error is if you have selected the wrong manufacturer for the particular part you are using (for example, you may have a National Semiconductor part in the programmer site and a Lattice part selected). It is also possible that your chip has a newer ID than your software revision supports. See the Software Updates section.

Error 26: Device is not blank.

A blank check may have been performed via the Blank or Program command. The device in the programmer site is determined to have programmed data. Possible causes are:

  • The part needs to be erased longer.

  • The device was previously programmed and cannot be erased (OTP EPROMs and fuse-link PLDs).

  • The wrong algorithm was used.

Back To Top

Error 27: Device is not secured.

An attempt to secure a device was made, but it failed. See Errors while Programming section.

Error 28: Data in chip does not match buffer.

A verify operation was performed to see if the chip and the buffer have the same data, but there is a difference in the two patterns. The verify may have been performed via the Verify or Program command. The verify will not show where the difference occurred but the Compare command will show you all the discrepancies. Here are some reasons why a device may fail to verify:

  • The part was secured.

  • The part was programmed with a different pattern.

  • The part has not yet been programmed.

  • The device was incorrectly programmed by a different system.

  • The wrong algorithm is selected.

  • The chip was not properly erased before programming (this would be caught by the blank check if it was enabled).

  • The wrong adapter is being used.

  • The device is not inserted correctly and you have the continuity test turned off or you ignored its error messages.

  • The device is defective.

Error 31: Database file is invalid. The .EXE file is corrupted.

The .EXE file you are executing has been corrupted. You should get a new copy from BPM Microsystems. See the Calling for Technical Support section.

Error 32: Sorry, algorithm not found. Please call technical support.

The .EXE file you are executing has been corrupted. You should get a new copy from BPM Microsystems. See the Calling for Technical Support section.

Error 33: You must re-select the chip you want to program.

The device was selected before establishing communications with the programmers, perhaps prior to turning on the programmer or before switching to a different programmer. Simply re-select the chip and the error should not reoccur.

Back To Top

Error 36: You must properly install the correct socket module.

The software interrogates the socket module before each operation to determine the correct mapping for the algorithm selected. You will get this error if:

  • There is no socket module installed.

  • The socket module installed does not support the device you have selected (for example, you have selected a 20 pin device and you have a 28 pin PLCC socket module attached).

  • The socket module installed is not supported by the version of the software you are using.

  • Use the latest version.

  • The pinout has not yet been defined for this package type. If so, please contact BPM Microsystems' Technical Support and inform us of this problem.

Error 39: Device already secured.

The device cannot be legitimately programmed, read, etc., because it has been secured. If it is a PLD it may still be functionally tested using the Test command.

Error 40: No test vectors present.

The file you loaded did not contain any test vectors. Therefore, the Test command will not be executed.

Error 44: Internal error. Please call technical support.

The software detected an internal inconsistency. This may be caused by the computer not performing correctly.

Error 46: AFS software required to execute this function.

This is a function that is available to users that have purchased the Advanced Feature Software only. In order to use the chosen function you must buy the AFS upgrade. Please contact BPM Microsystems' Sales Support to enable the software feature.

Error 47: Self-test failed. This unit may need service. Please call technical support.

The self-test (Programmer Diagnostics) has detected a hardware problem. If this should happen, double-check the fidelity of the cable connections and try again. If you are still having trouble, please contact BPM Microsystems' Technical Support.

This error can occur when performing Programmer Diagnostics during the calibration verification procedure and answering NO to the question "Is the socket module installed?" regarding the requirement of having a SM48D/SM48DB installed before continuing.

Back To Top

Error 48: Cannot Unprotect.

An attempt was made to unprotect a sector and failed. See Errors while Programming.

Error 49: Cannot Protect.

An attempt was made to protect a sector and failed. See Errors while Programming.

Error 57: You must purchase support for this device to use it.

The device that you selected is not supported in the default device set for this programmer. Please contact BPM Microsystems' Sales Support.

Error 70: The buffer data cannot be used to program this device.

You loaded a file type that is not a valid option for the currently selected device. Re-select the device and load the buffer again. If the error persists, please contact BPM Microsystems' Technical Support.

Back To Top


BPWin Error Code Chart

VI. troubleshooting

BPWin RESULT Codes

-1 | Internal BPWin error (firewalled unhandled exception). Send contents of blackbox.html to BPM Microsystems technical support.
0 | Success
1 | Undefined
2 | Unknown result code.
3 | Cannot reset hardware.
4 | Excessive current detected. The protection circuit has shut off the power.
5 | Hardware timeout.
6 | Wrong model number.
7 | Program break.
8 | This function requires a programmer to be attached therefore the DEMO does not support it.
9 | Programmer execution error.
10 | Error in programming algorithm. Please call technical support.
11 | There is no data in the buffer. You must load a file or read a chip.
12 | Cannot create buffer.
13 | This software is incompatible with your hardware (revision level).
14 | There is no chip in the socket.
15 | The chip is not inserted in the socket correctly.
16 | The chip is inserted backwards.
17 | Out of memory.
18 | Temporary file error. Use SET TMP=c:\ or similar command to specify correct directory.
19 | You cannot load a file this large.
20 | Command failed.
21 | Cannot program.
22 | Cannot erase.
23 | Invalid electronic signature in chip (device ID).
24 | Invalid electronic signature in chip (algorithm ID).
25 | Invalid electronic signature in chip (manufacturer ID).
26 | Device is not blank.
27 | Device is not secured.
28 | Data in chip does not match buffer.
29 | Secured successfully.
30 | Command aborted.
31 | Database file is invalid. The .EXE file is corrupted
32 | Sorry, algorithm not found. Please call technical support.
33 | You must reselect the chip you want to program.
34 | A failed device in a "Sets and Banks" job session is being retried.
35 | A failed device in a "Sets and Banks" job session will not be retried.
36 | You must properly install the correct socket module or daughter-card.
37 | Illegal bit detected.
38 | Functional test failed.
39 | Device already secured.
40 | No test vectors present
41 | Error reading file
42 | Error in writing file
43 | Error in macro file
44 | Internal error. Please call technical support.
45 | Hardware requires calibration. Please call technical support.
46 | AFS software required to execute this function.
47 | Self test failed. This unit may need service. Please call technical support.
48 | Cannot Unprotect.
49 | Cannot Protect.
50 | Device's sum does not match sum specified in AFS/Options.
51 | The maximum failures specified for this session has been reached.
52 | DynCall stack underflow.
53 | DynCall stack overflow.
54 | Device is not blank. (Interchangeable with failure code 26)
55 | Invalid single byte identifier in chip.
56 | Some device pins are shorted together.
57 | You must purchase support for this device to use it.
58 | The device outputs were not tristated.
59 | Excessive leakage current detected.
60 | The demo period for this programmer has expired. Please call technical support.
61 | Concurrent programmer did not initialize properly.
62 | Device operation in a socket is "Active".
63 | A socket is "Idle" during a job session.
64 | This code is currently not in use.
65 | Concurrent unit has the wrong socket module.
66 | Concurrent unit has the wrong technology adapter.
67 | Concurrent unit has the wrong BIOS.
68 | Concurrent unit has the wrong number of pin drivers.
69 | Concurrent unit is not available.
70 | The buffer data cannot be used to program this device. Please load the correct file.
71 | The recorded macro was too long for the macro buffer. Please call technical support.
72 | Concurrent site has finished programming all of it's devices
73 | This code is currently not in use.
74 | The automated socket module is open.
75 | The device has been inserted into the socket.
76 | The device has been removed from the socket.
77 | Concurrent unit has the wrong amount of extended memory.
78 | This code is currently not in use.
79 | The socket is not empty.
80 | Excessive current detected. The protection circuit has shut off the power. (Interchangeable with failure code 4).
81 | We have exceeded the last serial number. We must end the session.
82 | This code is currently not in use.
83 | Internal error: One or more of the call back functions pointers are NULL.
84 | Internal error: The initialization of the engine failed.
85 | Error reading file.
86 | Error writing file.
87 | The file type is wrong. The file cannot be read/written correctly.
88 | This code is currently not in use.
89 | This code is currently not in use.
90 | Internal error: The specified site is out of range.
91 | Attempted to use a non-concurrent programmer as a concurrent programmer.
92 | There is no status available for the specified site.
93 | This code is currently not in use.
94 | The address in a buffer is out of range.
95 | This code is currently not in use.
96 | This code is currently not in use.
97 | This code is currently not in use.
98 | This code is not in use.
99 | This code is not in use.
100 | This code is not in use.
101 | This code is not in use.
102 | Ganged Socket Failed
103 | Ganged Socket Passed
104 | This code is not in use.
105 | This code is not in use.
106 | This code is not in use.
107 | This code is not in use.
108 | This code is not in use.
109 | This code is not in use.
110 | This code is currently not in use.
111 | This code is currently not in use.
112 | This code is currently not in use.
113 | This code is currently not in use.
114 | Use Select to reselect the device prior to using this command.
115 | This code is currently not in use.
116 | This code is currently not in use.
117 | Can't open a file on the disk.
118 | This code is currently not in use.
119 | This code is currently not in use.
120 | This code is currently not in use.
121 | This code is currently not in use.
122 | This code is currently not in use.
123 | This code is currently not in use.
124 | This code is currently not in use.
125 | This code is currently not in use.
126 | This code is currently not in use.
127 | This code is currently not in use.
128 | This code is currently not in use.
129 | This code is currently not in use.
130 | The mem file stream name should not be empty.
131 | The device must be selected from the device list.
132 | This code is currently not in use.
133 | This code is currently not in use.
134 | Device is not encrypted.
135 | Failed to use entire data pattern to verify device.
136 | This programmer model does not support multi-site configurations.
137 | This device does not support empty socket test.
138 | The socket module does not support insertion counters.
139 | Gang Pass/Fail Mask Mismatch
140 | The programming site is ready.
141 | Software License Expired
142 | This code is currently not in use.
143 | This code is currently not in use.
144 | The serialization program is missing or invalid.
145 | Devices should not be present in the slave sockets.
146 | Cannot read device.
147 | This code is currently not in use.
148 | Memory Integrity Check Failed.
149 | A device was detected in a socket.
150 | Could not load BP file.
151 | Software feature not licensed on all sites.
152 | Software feature not licensed on some sites, registration expired on other sites.
153 | The initial operation in the job failed; retrying.
154 | The quantity number should be between 1 and 2,147,483,647.
156 | Site overheated and will be disabled.
157 | The External Serialization Process indicated to fail the device.
158 | Programmer site does not have enough concurrent mode memory for this operation.
159 | The device failed to initialize properly.
160 | The device failed to respond properly to the algorithm exit sequence.
161 | This code is not in use.
162 | Ground transistor failure detected. One or more ground transistors is not connected to ground. This could be due to a reverse-inserted device or a failure of a ground transistor on ANY of the connected socket cards. Note that even if a single ground transistor on a single socket card does not read back correctly, power will be shut off on all sockets to protect the devices, socket cards, and programmer from damage. Please ensure that all devices are properly inserted and try the operation again. If failures persist, stop the device operation, remove all devices from the sockets, and run programmer diagnostics to verify that all ground transistors on the socket cards are functioning properly.


Troubleshoot Error While Programming

VI. troubleshooting

Errors While Programming

If you experience problems while trying to program a chip, try to narrow down the problem:

If you receive a Cannot Program or Cannot Erase error while programming:

    • Make sure you have selected the proper programming algorithm

    • If you are using a PLD or microcontroller, the device may have been previously secured

    • The device may not be fully erased (this should be verified by confirming the Blank Check command has been selected in the Program file tab)

    • The device may have a newer die than the one supported by the programming algorithm

You may want to run the Compare command to see where the command failed. Look at the first error indicated by the Compare action. This is the location that caused the Program command to abort and return an error message. Three possibilities exist:

    • The byte or bit did not program at all

    • There are extra programmed bits

    • A combination of unprogrammed bits and extra programmed bits. On memory devices, compare the two hex data values to see what went wrong. On most EPROMs, the erased state is FFh and the fully programmed state is 00h.

If the expected value has more 0 bits than the value read from the chip, the chip may not have been fully erased before programming. If the byte read from the chip is completely unprogrammed (FFh), you are probably either using the wrong algorithm or have a defective chip. If you find that the same bit fails every byte, you should suspect a dirty socket or a bent IC pin.

You can expect a small number of fuse-link programmable PLDs to fail during programming. This is because they cannot be fully tested at the factory without blowing out the fuses. Most semiconductor manufacturers claim you should get a 98% programming yield. Your yield should not drop below the value specified by the semiconductor manufacturer.

Most semiconductor manufacturers fully test EPROM and EEPROM-based PLDs. You should achieve a very high yield on these parts. However, these parts do have a limited number of erase cycles. Most parts can be erased and programmed up to 100 times without failure.

A "surprise removal" of a USB device on the same hub as the USB programmer can cause a communication error during programming. See What is the best way to remove other USB devices connected to the same hub as the programmer? for more information.

Using Complex Serialization

Serial number not found data file

If using Legacy Complex Serialization, the data file being read is blank or contains data that BPWin can not interpret.

  • Open the data file and insure proper formatting of T-codes and data.

  • There may be a mismatch in the data file path/name the executable has written to and the data file BPWin is reading. Insure the data file referenced in the executable matches the serial data file entered in the serialization dialog.

The serial number is not being updated, every device has the same serial number

If using Legacy Complex Serialization, the data path/file entered in the serialization dialog does not match the data path/file in the data file in the external serialization executable program. Change the data path/file in the serialization dialog to match the data file specified in the .exe program.

How Can We Make This Manual Better For You? E-Mail Your Suggestion

Copyright © 2015 BPM Microsystems


bpwin Warning Messages

Specific warning messages will appear wherever applicable when choosing a device. These messages, pertaining to the type of chip being chosen, are designed to assist you with helpful information such as if the chip needs a third party adapter or requires the use of a special head, when the chip needs to be placed a certain way in the socket module, etc.

The warnings listed below are generalized warning messages to alert you of a problem that should be resolved before continuing.

Warning: Device code is not correct

When using the ID Check or ID electronic identifier option. The programmer automatically checks the electronic identifier of your memory chip. If your chip does not read out the identifier expected by the software, there are four possible actions that can be taken:

  • The Select option will try to select the appropriate device/algorithm. Use it if you feel the wrong device may have been selected.

  • You can replace the chip and use Retry.

  • The command can be aborted.

  • You can ignore the identifier and proceed.

Occasionally, a semiconductor manufacturer will change the die on a chip to add the identifier. If this happens, the software may expect the identifier to be present in your chip. If you are using an old chip made before the identifier was added, you will get an error message. It is safe in this case to ignore the warning message. Under the device command, you can un-check the box next to the ID Check or ID operation to disable the electronic identifier option.

Warning: Device is not blank

This warning message will only appear when using the Program command with the Blank Check before programming operation, if running on a non-concurrent programmer or on a concurrent programmer and Quantity set to 1. You are given the option to Abort, Retry, or Ignore message, which allows you to try another chip before proceeding or to go ahead and program data on top of the data that may already be in the chip.

Warning: Device has been secured

You will get this message only on devices that have the ability to read the security bit prior to performing any other operation. Thus, you may get this when trying to read some PLDs and some microcontrollers. You are given the option to Abort, Retry, or Ignore, which allows you to try another chip before proceeding or to go ahead and read the erroneous data from the chip.

Warning: X fuses in buffer and Y fuses in chip

You will get this message when you try to program a PLD that has a different number of fuses than the number of fuses loaded in the buffer. This is a precautionary measure designed to help you keep from accidentally programming the wrong JEDEC file into a chip.

This message may not always be the best advice. For example, if you have a GAL22V10 (5892 fuses) selected and a PAL22V10 (5828 fuses) JEDEC file loaded. It is okay to program this JEDEC file into the GAL22V10 because they are 100% architecturally compatible; however, the GAL22V10 has 64 additional fuses allocated as the UES (see Devices/UES command for more details). If you ignore this message on the first operation, you will not receive any more warnings on the subsequent programming operations.


Hot Keys

BPM Microsystems

hot keys and Keyboard usage

The BPWin program also utilizes keystroke combinations, called hot keys or quick keys. Listed below are common keys and keystroke combinations. To select a field, use the keystroke combination <ALT> + <underlined character> in the active window wherever applicable.

COMMON USAGE KEYS*
Key | Function
Esc | Closes the current window/retain original information.
or | Moves left or right for a selection.
or | Moves up or down for a selection.
Enter | Executes function command.

*These keys can be used at any time.

HOT KEYS IN BPWIN MAIN
Key | Function
Alt + B | Selects the Blank device command tab.
Alt + C | Selects the Secure device command tab.
Alt + D | Opens the Device drop-down menu.
Alt + E | Selects the Erase device command tab.
Alt + F | Opens the File drop-down menu.
Alt + G | Opens the Device Config dialog.
Alt + H | Opens the Help drop-down menu.
Alt + I | Opens the Device Selection dialog.
Alt + J | Opens the JobMaster drop-down menu.
Alt + K | Selects the Banks drop-down combo-box when "Sets" mode is enabled, and the programming mode is Single.
Alt + L | Selects the Special Operations device command tab.
Alt + M | Selects the Compare device command tab.
Alt + N | Opens the Data Pattern dialog.
Alt + O | Selects the Position drop-down combo-box when "Sets" mode is enabled, and the programming mode is Single.
Alt + P | Selects the Program device command tab.
Alt + Q | Selects the Quantity field.
Alt + R | Selects the Read device command tab.
Alt + S | Selects the Secure device command tab.
Alt + T | Opens the Tools drop-down menu.
Alt + U | Opens the Autohandler drop-down menu.
Alt + V | Selects the Verify device command tab.
Ctrl + A | Rename\save a copy of the JobMaster file.
Ctrl + D | Opens the Select Device dialog.
Ctrl + E | Opens the Buffer Editor dialog.
Ctrl + L | Load a JobMaster file.
Ctrl + N | Opens the Configure dialog.
Ctrl + O | Opens the Open dialog to select a data pattern.
Ctrl + S | Save current settings to a JobMaster file.
F1 | Opens the BPWin Help user's guide.

DIALOG BOX COMMAND FUNCTIONS*
Key | Function
Enter | Execute the button with the focus. In BPWin Main, start (execute) the selected device operation\job.
Esc | Cancel and close the active dialog. In BPWin Main, stop (abort) the current device operation\job.
Tab | Move to next field.

*Dialog boxes gather information before executing commands.

TEXT EDIT COMMAND FUNCTIONS
Key | Function
, [image] , [image] , or | Moves cursor.
Home | Moves cursor to front of current line.
End | Moves cursor to end of current line.


FAQs

BPM Microsystems

FAQs (Frequently Asked Questions)

How reliable is the USB bus itself?

USB 2.0 is extremely reliable. All data transactions are integrity checked using the very comprehensive CRC32 calculation. Additionally, the USB hardware will retry any packets that fail the integrity check during transfer. This makes the USB bus extremely robust in that it can withstand transient events in the environment (ESD, EMI and other electrical noise, and faulty connection) without breaking the flow in other hardware and software systems. USB also has strict requirements on cabling, PCB routing, and connectors. All of this is done to provide a very controlled electrical environment.

What if my computer does not have a USB 2.0 port?

Then your USB 1.1 port will work just fine. It will perform transactions slower. You can purchase a USB 2.0 expansion card from your local computer distributor.

What if there is communication problems when using USB?

If experiencing communications problems, check to see if the USB 2.0 drivers are installed using the Device Manager setup. In Windows Device Manager, verify that a BPM Microsystems Programmer Site exists for each programmer site attached and turned on.

What is the best way to remove other USB devices connected to the same hub as the programmer?

When removing other USB devices (for example, Flash Drives) connected to the PC while a USB programmer is actively engaged in an operation, use the "Safely Remove Hardware" icon in the Windows system tray first to avoid potential communication errors. "Surprise Removals" can be problematic on some PCs if the removed USB device is connected to the same USB hub as the programmer, including integrated hubs inside of most PCs. The "Safely Remove Hardware" icon will appear for devices that Microsoft recommends its usage. In the event that such a communication error does occur, BPWin will terminate the operation and report the error issued by the Operating System.

In the DOS version, the configuration settings were saved to a file. Where did they go?

With the introduction of the BPWin software, the configuration settings are no longer saved to a file. These settings are now being saved in the Windows Registry and are not deleted upon being uninstalled. This allows the user to continue to use previous settings when upgrading to a new version of the software.

Please visit the FAQ section on our website for more information.


Automated Package Measure utility

Summary

The purpose of this utility is to facilitate entering package dimensions that include:

  • Thickness of the package.

  • Narrowest length of the package.

  • Longest length of the package.

  • Alignment offset that will obtain the best measurements during a job session.

  • Alignment tolerance value based on the narrowest package dimension and common manufacturing variances.

For instructions on how to use the Automated Package Measure Utility, click here.

Theory of Operation

The utility uses the CyberOptics laser align camera to obtain measurements of the package thickness, narrowest length and longest length. The utility will also use the camera to acquire a package profile. The profile consists of “measurement slices” obtained starting from the top of the package and ending with the bottom of the package. This profile is then used to determine the alignment offset that will obtain the best package measurements during teaching and a job session. The accuracy of the utility is limited by the hardware and the package that is being measured.

Examples that may exaggerate inaccurate results are:

  • Bent leads on the package.

  • Damaged package.

  • Dirty CyberOptics laser align camera.

  • Large "runout" on the nozzle.

  • Using an incorrect nozzle size for the package.

  • The nozzle to laser align camera laser stripe is not at a right angle.

The auto measure process consists of multiple stages and is described below:

  1. Learning the location of the package.

    • The location is comprised of the X-axis and Y-axis coordinates, the Z-axis height of the package, and the package’s rotation orientation. This is necessary so that the package can be picked and then placed in its original orientation when the process has completed.

    • It is very important that the nozzle be as close to the center of the package as possible when teaching its location so that the utility may obtain the best results. If the nozzle is too close to the edge of the package, the utility may not be able to determine the top of the package accurately.

  2. Learning the top of the package.

    • The nozzle's spring will compress when vacuum is engaged and a package is attached to the nozzle. The amount of spring compression depends on the amount of wear to the nozzle. Because the spring compresses, the home position is not the top of the package. Therefore, the top of the package must be located with this stage of the process. A side effect of this stage is that the spring compression is recorded in the log file. This information can be used to determine when the nozzle will need to be replaced.

  3. Learning the narrowest length and longest length of the package.

    • During this stage, the package is rotated to determine the optimal pre-rotation orientation. The orientation will also provide that the narrow length of the package will be measured first by the laser align camera. According to CyberOptics laser align camera documentation, measuring the narrow length first results in a better measurement of the package.

    • According to CyberOptics documentation, the maximum package size that the camera can measure is a 30mm X 30mm package. Anything outside of this range will cause the utility to fail and to abort the process.

  4. Learning the bottom of the package to calculate its thickness.

    • A package can be too thick to be measured by an Autohandler. The user will be presented with an appropriate dialog if the package is too thick to be measured by an Autohandler.

    • The BP-4000 series Autohandler has a smaller package thickness range capability than the BP-3000 series Autohandler. Therefore, a thick package that is successfully measured by the BP-3000 series Autohandler may present a dialog on a BP-4000 series Autohandler.

  5. Scanning the entire package from top to bottom, every 2 thousandths of an inch, to obtain a package profile.

    • The alignment offset will be calculated with this profile.

  6. Learning the length of the package at the alignment offset.

    • The dimensions of a package must take into account the leads if leads are present. These values in conjunction with the set tolerance will provide the system the ability to determine if the package has a bent lead.


Diagnostics and Controls

Open Sockets

Close Sockets

Initialize

Cycle Power...

Tape Advance

Eject Shuttles

Diagnostics

I. BP- 3000 / 4000 Autohandler - ch 6

diagnostics and controls

How Can We Make This Manual Better For You? E-Mail Your Suggestion

Copyright © 2015 BPM Microsystems


Lase Date Time Format Specifier Chart

Lase Date/Time
Format Specifier | Result
%a | Abbreviated weekday name
%A | Full weekday name
%b | Abbreviated month name
%B | Full month name
%c | Date and time representation appropriate for locale
%d | Day of month as decimal number (01 – 31)
%e | Same as %W with 1 added to its value.
%f | ISO8601 2-digit week number
%g | ISO8601 2-digit year number
%H | Hour in 24-hour format (00 – 23)
%I | Hour in 12-hour format (01 – 12)
%j | Day of year as decimal number (001 – 366)
%m | Month as decimal number (01 – 12)
%M | Minute as decimal number (00 – 59)
%p | Current locale's A.M./P.M. indicator for 12-hour clock
%S | Second as decimal number (00 – 59)
%U | Week of year as decimal number, with Sunday as first day of week (00 – 53)
%w | Weekday as decimal number (0 – 6; Sunday is 0)
%W | Week of year as decimal number, with Monday as first day of week (00 – 53)
%x | Date representation for current locale
%X | Time representation for current locale
%y | Year without century, as decimal number (00 – 99)
%Y | Year with century, as decimal number
%z %Z | Either the time-zone name or time zone abbreviation, depending on registry settings; no characters if time zone is unknown
%% | Percent sign


Sentinel Driver Setting

By changing the sentinel setting, the sentinel driver will be started by the operating system loader and as a result the order Prolase and BPWin are started in no longer matters. Both applications will start successfully regardless of start up order. Having both applications up and running allows you to quickly make a change to a selected LAZ file using Prolase and then use BPWin's Test Laser operation to perform a Test Laser Mark operation.

  1. Go to Control Panel\System.

  2. Choose the Hardware tab.

  3. Open Device Manager.

  4. In the View menu bar, check Show hidden devices.

  5. Click on Non-Plug and Play Drivers\Sentinel.

  6. Change the setting for the sentinel driver from Automatic to Boot.

  7. Restart Windows. You should now be able to start Prolase while BPWin is running.


3x_and_4x_Series\Process\Job_Process.htm#InterlockOpenNotification

This is placeholder text for your template. To add content to the body, replace this text. To add a header or footer, click the Header or Footer button on the toolbar.

The heading in this template is a special field for topic titles, so generally you do not need to edit it.

For information about applying templates to topics, press F1.


Troubleshoot 3x 4x Errors

Devices Per Hour (DPH)

Laser Marker

Optics

Pick-and-Place

Label Presenter

Tape Loader

BP- 3000 / 4000 aps Errors

Devices Per Hour (DPH)

To attain optimum DPH, adjust any real-time virus scanning software settings to ignore .log files and/or the C:\BP directory.

Laser Marker

Using Prolase

If BPWin is running before starting Prolase, you will receive an error indicating Prolase could not successfully communicate with the dongle. To run Prolase after BPWin is running, change the setting for the sentinel driver from Automatic to Boot.

Laser Presenter Security Key Not Found

The laser security key was not found in the new BPWin application. See Laser Presenter Security Key for more information.

Optics

The CyberView utility has been developed to help troubleshoot the optics on your programmer. A large number of alignment failures may indicate a problem with the optics. Click here for information on CyberView .

Pick-and-Place

Try re-teaching suspect pick-up, placement or site locations.

Pick-and-Place error after one piece operation

The device must be manually removed from the Autohandler when this occurs. See non-concurrent operation (quantity of 1) for more information.

Label Presenter

Pick Error

Be sure the label is being presented in less than 1 second.

Tape Loader

TM-330 Count Value

If the tape loader stopped advancing during a job, check the Count value in the Controller setup menu of the Tape Loader. The value should be zero (0). This allows BPWin to stop the loader at the end of a job. See the Controller \ Setup Menu section in the TM-330 Manual for more information on how to set the stop count value.