Specifications written in this document are believed to be accurate, but are not guaranteed to
be entirely free of error. The information in this manual is subject to change for functional or
performance improvements without notice. Please make sure your manual is the latest edition.
While the information herein is assumed to be accurate, SEGGER Microcontroller GmbH (SEGGER) assumes no responsibility for any errors or omissions. SEGGER makes and you receive no
warranties or conditions, express, implied, statutory or in any communication with you. SEGGER
specifically disclaims any implied warranty of merchantability or fitness for a particular purpose.
Copyright notice
You may not extract portions of this manual or modify the PDF file in any way without the prior
written permission of SEGGER. The software described in this document is furnished under a
license and may only be used or copied in accordance with the terms of such a license.
This document assumes that you already have a solid knowledge of the following:
•The software tools used for building your application (assembler, linker, C compiler).
•The C programming language.
•The target processor.
•DOS command line.
If you feel that your knowledge of C is not sufficient, we recommend The C Programming Lan-guage by Kernighan and Richie (ISBN 0--13--1103628), which describes the standard in C programming and, in newer editions, also covers the ANSI C standard.
How to use this manual
This manual explains all the functions and macros that the product offers. It assumes you have
a working knowledge of the C language. Knowledge of assembly programming is not required.
Typographic conventions for syntax
This manual uses the following typographic conventions:
StyleUsed for
BodyBody text.
Keyword
ParameterParameters in API functions.
SampleSample code in program examples.
Sample commentComments in program examples.
Reference
GUIElementButtons, dialog boxes, menu names, menu commands.
EmphasisVery important sections.
Text that you enter at the command prompt or that appears on
the display (that is system functions, file- or pathnames).
Reference to chapters, sections, tables and figures or other documents.
SEGGER’s Flasher Hub is a Control Module for parallel programming.
The Flasher Hub is able to control up to 24 Flasher Compact modules serving as individual channels for parallel, high-speed gang-programming. If required, each channel can be
configured to program a different device with a different firmware image.
The Flasher Compact modules connected to the Flasher Hub are set up just once per channel
configuration using SEGGER’s Flasher software package. The software to be used depends
on the type of flash chip being programmed. The Flasher Hub can receive commands and
send results via telnet conection “stand-alone”, without the need of a desktop PC. The
combination of a single Flasher Hub and multiple Flasher Compact modules is the perfect
solution for high-volume mass production.
The Flasher Hub supports all flash devices and programming interfaces supported by the
Flasher Compact. By using Flasher Compacts as the programming modules, the Flasher
Hub takes advantage of the extensive list of supported devices and target interfaces, plus
the ultra-fast programming speed and reliability of these ’Almost-Anything’-Programmers.
1.1.1 Features of the Flasher Hub
•Stand-alone In-System Programming (ISP) hub
•Scalable solution with up to 24 supported individual parallel programming channels,
each with their own programming circuit memory
The Flasher Hub has been designed to be used in conjunction with automated test equipment (ATE). It is modular and scalable from 1 to 24 individual programming modules, represented by SEGGER Flasher Compacts. The Flasher Compacts are connected to the Flasher
Hub via powered USB hubs.
Flasher PC-software (J-Flash / J-Flash SPI)
In order to prepare the firmware / data to be programmed to the targets and download it
to the Flasher Compacts, the latest version of the J-Flash / J-Flash SPI software is required.
J-Flash / J-Flash SPI are available for Windows, Linux, and macOS, and are part of the
Flasher software and documentation package, which can be downloaded from our website:
For more information about using J-Flash, please refer to UM08003_JFlash.pdf (J-Flash
User Guide, available at https://www.segger.com/downloads/flasher/UM08003). J-Flash
SPI is described in UM08001_JLink.pdf (J-Link User Guide, available at https://www.seg-ger.com/downloads/jlink/UM08001).
FTP Client
The firmware to be programmed to the targets can also be uploaded to the Flasher Compacts via an FTP connection to the Flasher Hub. For this, an FTP client is required.
The Flasher Hub’s web interface offers a lot of useful status information about the system.
It also allows firmware updates to the Flasher Hub and the connected Flasher Compacts,
uploading the firmware to be programmed to the targets, configuring the index of the
connected Flasher Compact modules, and more. In order to access the Flasher Hub web
interface, a web browser is required.
Terminal program
For communication with the Flasher Hub via Telnet, a terminal program like TeraTerm or
PuTTY is helpful.
Universal Flash Loader Configurator software
The latest version of the Universal Flash Loader Configurator software can be downloaded
from our website at https://www.segger.com/downloads/flasher.
This software is only needed if the device you would like to program requires the usage
of the Universal Flash Loader.
Size (without cables or mounting brackets) 60mm x 32mm x 95mm
Weight (without cables)132g
1.2.1.1 Supported CPU cores
2x USB 3.0, 2x USB 2.0
The Flasher Hub itself is CPU-core agnostic. The supported CPU cores are determined by
the connected Flasher Compacts. Please see the Flasher Compact User Guide for details.
1.2.1.2 Supported Target interfaces
The Flasher Hub itself is target-interface agnostic. The supported target interfaces are determined by the connected Flasher Compacts. Please see the Flasher Compact User Guide
for details.
The Flasher Hub makes ultra-fast, high-speed parallel programming (“gang programming”)
possible. Via powered USB hubs, up to 24 Flasher Compact modules can be connected to
the Flasher Hub. Each Flasher Compact module is connected to a target device.
Via a Telnet connection between the ATE (Automated Test Equipment) and the Flasher Hub,
flash programming operations can be triggered and responses from the Flasher Hub can
be read and evaluated. This makes the Flasher Hub a perfect fit for small-scale as well
as large-scale production environments. The firmware to be programmed into the target
devices can be prepared via a computer running Windows, Linux, or macOS and SEGGER’s
J-Flash or J-Flash SPI software. The Flasher Compact modules connected to the Flasher
Hub can be provisioned with the firmware to be programmed either directly via J-Flash, via
an FTP connection to the Flasher Hub, or via the Flasher Hub’s web interface.
2.1.1 Power supply
2.1.1.1 Flasher Hub and Flasher Compact power supply
The Flasher Hub needs to be powered via a 5V USB-C power supply (1.0A or higher; not
included).
The Flasher Compacts are powered by the powered USB hubs through which they are
connected to the Flasher Hub.
5V via powered USB Hub130 mA (no target power supply)
5V via powered USB Hub230 mA (target power supply with 100mA)
Note
Don’t connect Flasher Compact modules directly to the Flasher Hub. Always connect
Flasher Compact modules to the Flasher Hub via powered USB hubs.
Note
Undefined behavior may occur if the Flasher Hub and/or the Flasher Compacts are
not powered sufficiently.
2.1.1.2 Target power supply
The target boards to be programmed can either be powered via their own power supplies,
or they can be powered via a 5V / 100mA supply from the Flasher Compacts. Please refer
to the Flasher Compact User Guide for details on how to do this.
The Flasher Hub is equipped with an Ethernet interface to communicate with the host system via your network.
The Flasher Hub also has a built-in web server that provides system status and allows
system configuration.
2.2.1 Connecting for the first time
When connecting the Flasher Hub to your network and powering it up for the first time,
it attempts to acquire an IP address via DHCP. After the Flasher Hub has finished booting
(i.e. after the green LED has stopped flashing), you can connect to the Flasher Hub’s web
interface by pointing your web browser to http://flasherhub-<serial_number>/. (Make sure
to replace <serial_number> with the serial number of your Flasher Hub, which can be found
on the housing.)
The “Overview” page served by the Flasher Hub’s web server contains the IP address that
has been assigned to the Flasher Hub by your network.
Note
Don’t connect the Flasher Hub directly to the Ethernet interface of an ATE or host
computer. Only connect the Flasher Hub to your network via a router, switch, etc.
The Flasher Hub currently only operates in remote-controlled mode. (Handshake mode is
planned to be added in the future.)
In remote-controlled mode, the Flasher Hub receives commands via Telnet connection and
reports the results back to the caller. This allows the caller to check whether the desired
operation was executed successfully or not.
2.3.1 Remote-controlled mode
The remote-controlled mode provides a way to integrate the Flasher Hub into a production
environment and control it via Ethernet. In this setup, the Flasher Hub provides detailed
status information that can be used to verify the success of the programming sequence,
optimize the production setup, and identify errors.
In order to use a Flasher Hub based system in remote-controlled mode, the connected
Flasher Compact modules need to be configured first. This is described in Setting up FlasherHub for remote-controlled mode on page 26.
21CHAPTER 2Storing configuration and programming data files
2.5 Storing configuration and programming data files
The configuration and programming data required to program the target devices is stored on
the connected Flasher Compact modules. Each Flasher Compact module has approximately
126MB of storage available for data and configuration files.
The Flasher Compact modules can be accessed in the following ways:
•via the J-Flash software
•via an FTP client connected to the Flasher Hub’s integrated FTP-server
•via the File browser in the Flasher Hub’s web interface
When using J-Flash, the connected Flasher Compact modules (Module 1, Module 2, …,
Module n) can be selected via tick boxes on the “Options > Project settings > General”
screen. Make sure to select TCP/IP as the connection type and enter the Flasher Hub’s IP
address (or use flasherhub-<serial_number>).
When selecting “File > Download config & data file to Flasher” from the J-Flash menu, the
configuration and data file of the current J-Flash project will be downloaded to the selected
Flasher Compact modules.
22CHAPTER 2Storing configuration and programming data files
When using an FTP client or the file browser in the Flasher Hub’s web interface, the Flasher Compact modules are accessible via subfolders named “MODULE.xxx”, with xxx being
the index of the associated Flasher Compact, e.g. “MODULE.001” for the Flasher Compact
module with index 1.
The index of the connected Flasher Compact modules can be changed via the Flasher Hub
web interface, on the “Configuration > Flasher” page
The Flasher Hub keeps a log file if logging is enabled via the web interface on the “Configuration > Server” page. The log itself can be accessed on the “Log” page.
In addition, each Flasher Compact keeps its own log file. These log files are stored in the
module folder of the corresponding Flasher Compact and can be downloaded via FTP or
the file browser in the Flasher Hub’s web interface. For more information on the Flasher
Compact log file, please refer to the Flasher User Guide (UM08022).
Firmware updates for the Flasher Hub are provided on the Flasher download page https://
www.segger.com/downloads/flasher/.
Note
Please note the Flasher Hub cannot be updated via J-Link Commander or J-Link Configurator.
The Flasher Hub update package provides the update file Firmware.update. This file needs
to be uploaded via FTP to the root directory of the Flasher Hub.
After the upload process, the button in the Control section of the Flasher Hub web interface
“Overview” page will say “Restart now and apply update”. Click the button and wait for the
Flasher Hub to restart.
After the update, a new server version is displayed in the General information section of
the “Overview” page.
Note
It is recommended to use the most recent version of the Flasher Hub firmware as
newer versions may contain various improvements as well as bugfixes.
In order to set up the Flasher Hub for parallel programming, the connected Flasher Compact
modules need to be configured once using either the J-Flash software or using the Universal
Flash Loader Configurator software. Both programs are part of SEGGER’s Flasher software
and documentation package, available for download free of cost at:
J-Flash is SEGGER’s desktop software for production prorgramming and it is available for
Windows, macOS and Linux. It can be used to create Flasher configuration and data files
for ARM-based target devices. For more information about J-Flash, please refer to the J-Flash User Guide.
In order to set up the Flasher Hub for parallel programming, the connected Flasher Compact
modules need to be configured once using J-Flash.
After starting J-Flash, open the appropriate J-Flash project for the target device the Flasher
Compacts shall be configured for, by selecting File -> Open Project. If J-Flash does not
come with an appropriate sample project for the desired hardware, a new project needs to
be created by selecting File -> New Project.
After the appropriate project has been opened / created, the data file which shall be programmed needs to be loaded, by selecting File -> Open. Next, click on Options -> Projectsettings -> General and select Connection type to be TCP/IP. As the TCP/IP address,
enter flasherhub-<serial_number>. You can find the serial number of your Flasher Hub
on the product housing.
Click Flasher Hub module selection and select the Flasher Compact module numbers
you would like to configure. Then click OK.
After this, J-Flash should look similar to the screenshot below.
Next, you can transfer the necessary files to the Flasher Compacts using File -> Download
config & data file to Flasher. Check the J-Flash Log window to make sure the file transfer
was successful. For further details please check the J-Flash manual.
Note
If J-Flash has trouble connecting to flasherhub-<serial_number>, use the actual
IP address of your Flasher Hub. You can find it on the “Overview” page of the Flasher
Hub’s web interface.
From now on, the Flasher Hub and the attached Flasher Compacts can be used in standalone mode (without host PC interaction) for stand-alone programming.
As an alternative to the process described above, you may also save the files to disk and
upload them to the Flasher Compacts via the web inteface. To do this, follow the instruc-
tions below:
1. Save the configuration (project) file to disk by selecting File -> Save Flasher Config
File
2. Save the data (program data) file by selecting File -> Save Flasher Data File
4. Connect to the Flasher Hub Web interface via a browser.
5. Navigate to the file browser in the “Files” tab
6. Now the configuration file and the data file can be uploaded to the Flasher Hub module
folder(s) (MODULE.xxx), i.e. to the connected Flasher Compacts.
Choosing the All modules folder will upload the files to all Flasher Compacts connected
to the Flasher Hub. Note: The file(s) can be uploaded by dragging and dropping inside
the browser window.
A third option is to upload the configuration and data files to the Flasher Compact modules
via FTP as described here: FTP server on page 40.
If J-Flash also generates a .pex file (which is a device-specific flash programming algorithm
that is required for certain target devices), this also needs to be uploaded to the module
folder(s) for programming to be successful. Please note that it must be located in a subfolder with the same name as your project, e.g. if your project is named MyProject with
the project files MyProject.cfg and MyProject.dat, then the subfolder must be named
MyProject.
The Universal Flash Loader mode can be used to program non ARM-based targets. While
configurations generated with J-Flash rely on using the debug interface of the device, configurations using the Universal Flash Loader make use of device or vendor specific programming interfaces and protocols and therefore it is independent of the CPU core.
A Universal Flash Loader configuration can be created using SEGGER’s Universal Flash
Loader Configurator, available for Windows, macOS and Linux.
For details, please see the Universal Flash Loader User Guide (UM08037) as well as the
Flasher User Guide (UM08022).
A Flasher Hub based system supports programming of serial numbers. In order to use the
serial number programming feature, the J-Flash project to be used as well as some files
on the Flasher Compacts connected to the Flasher Hub (depending on the configuration)
need to be configured first.
In general, a Flasher Hub based system supports two ways of programming a serial number
into the target:
1. Programming continuous serial numbers. Serial number is 1-4 bytes in size. Start serial
number, increment, serial number size and address is configured in the J-Flash project.
2. Programming custom serial numbers from a serial number list file. Start line into serial
number list file to get next serial number bytes, line increment, serial number size and
address is configured in the J-Flash project. Serial number list file needs to be specified
and created by user.
Some generic information on how to setup the Flasher Hub based system & the J-Flash
project for serial number programming is provided below.
4.1.1 Serial number settings
In order to enable the programming of serial numbers in stand-alone mode, the J-Flash
project has to be configured to enable programming a serial number at a specific address.
This is done by enabling the Program serial number option as shown in the screenshot
and table below:
AddressThe address the serial number should be programmed at.
The length of the serial number (in bytes) that should be programmed.
If no serial number list file is given, J-Flash allows to use a 1-4
byte serial number. In case 8 is selected as length, the serial
number and its complement are programmed at the given ad-
Len
Next SN
IncrementSpecifies by how much Next SN is incremented.
dress.
In case a serial number list file is given, the Flasher Hub will take
the serial number bytes from the list file.
If a serial number in the list file does not define all bytes of Len ,
the remaining bytes are filled with 0s. No complements etc. are
added to the serial number.
In case no serial number list file is given, Next SN is the next serial number which should be programmed. The serial number is
always stored in flash memory in little endian format.
In case a serial number list file is given, Next SN describes the
line of the serial number list file where to read the next serial
number bytes from. The Flasher Hub starts counting at line 0, so
in order to start serial number programming with the first line of
the SNList.txt, Next SN needs to be set to 0.
4.1.2 Continuous Serial numbers
The Flasher Hub can generate serial numbers. Therefore the project can be configured to
use the serial number feature (see on page 32). The Flasher Hub will use the first serial
number for the first programmed device. Then the increment is added to the serial number
and this is used for the next programming sequence. The next serial number is stored in
the SERIAL.TXT file on each Flasher Compact module. Therefore, the serial number is also
power-cycle safe. If the file is missing at start up time, the number 0 is used for the first
target.
To avoid duplication of serial numbers with the Flasher Hub using more than one Flasher
Compact module, there are two options:
•Use an increment of the number of connected Flasher Compact modules; e.g. if you have
5 Flasher Compacts connected, use an increment of 5 as well as 5 different SERIAL.TXT
files at the beginning of production.
•Use different serial number areas; e.g. if you have 5 Flasher Compacts connected, use
an increment of 1 as well as 5 different SERIAL.TXT files at the beginning of production.
For the first module, use the range from 1 to 1000, for the second 1001 to 2000, and
so on.
The SERIAL.TXT file contains the value Next SN in ASCII notation, e.g. 1234 if the next
serial number is 1234.
Note
The serial number in SERIAL.TXT will also be incremented if serial number programming is disabled, to make sure that for the Flasher Hub logfile there is a reference
for which programming cycle passed and which did not. As long as serial number
programming has not been enabled in the J-Flash project, the Flasher Hub does not
merge any serial number data into the image data to be programmed.
4.1.3 Serial number list file
In order to program custom serial numbers which cannot be covered by the standard serial
number scheme provided by J-Flash (e.g. when programming non-continuous serial num-
The associated serial number list in the file should look as follows:
The number of bytes to read per line is configured via the Len option in J-Flash. For more
information, please refer to Serial number settings on page 32.
Which line Flasher will read at the next programming cycle is configured via the Next SN
option in J-Flash. For more information, please refer to Serial number settings on page 32.
In this case, Next SN needs to be set to 0, since programming should start with the serial
number bytes defined in the first line of the file.
Note
If the number of bytes specified in a line of the serial number list file is less than the
serial number length defined in the J-Flash project, the remaining bytes are filled with
0s by the Flasher Hub.
Note
If the number of bytes specified in a line of the serial number list file is greater than
the serial number length defined in the J-Flash project, the remaining bytes will be
ignored by the Flasher Hub.
4.1.4 Programming process
The Flasher Compact modules connected to the Flasher Hub will increment the serial number in SERIAL.TXT by the value defined in Increment after each successful programming
cycle.
For each programming cycle, the FLASHER.LOG file on the connected Flasher Compact
modules is updated and contains the value from SERIAL.TXT that has been used for the
programming cycle.
Note
The serial number in SERIAL.TXT will also be incremented if serial number programming is disabled, to make sure that for the Flasher Compact logfile there is a reference for which programming cycle passed and which did not. As long as serial number
programming has not been enabled in the J-Flash project, the Flasher Compacts do
not merge any serial number data into the image data to be programmed.
4.1.5 Example setup
Below, a small example is given on how to set up the Flasher Compacts for serial number programming. In the following example, 4-byte serial numbers starting at 1234567
(0x12D687) shall be programmed at address 0x08001000.
Defining serial number address, length and start value
In the J-Flash project, the following needs to be defined:
Downloading configuration, data, and serial number to the Flasher Compacts
After setting up the rest of the configuration (Target interface etc.) and selecting an appropriate data file, the configuration, data, and serial number file needs to be transferred to
the associated Flasher Compact via the Flasher Hub, either using J-Flash, or using an FTP
client, or using the file browser in the Flasher Hub’s web interface.
37CHAPTER 4Limiting the number of programming cycles
4.2 Limiting the number of programming cycles
The Flasher Hub provides a mechanism to limit the number of programming cycles that
can be performed in stand-alone mode with the configuration that is stored on the Flasher
Compacts. To make use of this feature, a file called Cntdown.txt needs to be placed onto
the Flasher Compacts module folder. This file simply contains a decimal number (32-bit
unsigned integer) that describes how many programming cycles can be performed with
the current setup.
This feature especially makes sense when used in combination with authorized flashing.
For more information about authorized flashing, please refer to the Flasher User Guide.
Note
The number in Cntdown.txt is only updated on a successful programming cycle. Pro-
gramming cycles that failed do not affect Cntdown.txt.
4.2.1 Modified fail/error LED indicator behavior
In case a Cntdown.txt is found at boot time, the fail/error LED of the Flasher Compact
behaves differently. If the number of programming cycles left is 10 or below, the following
will happen:
•The red error/fail LED will be lit for 1 second
•After this, it will blink/toggle x times @ 5 Hz, indicating the number of programming
cycles left (blinking 5 times for 5 cycles left, etc.)
The Flasher Compact modules connected to the Flasher Hub support patch files, which allows to patch the content of the data to be programmed. Before starting the programming
process in stand-alone mode, the Flasher Compact module will look for a file named Patch-
es.txt being present. This file includes the patches. If this file is present, the number in
Serial.txt describes the line number of the Patches.txt file that will be used for the
current cycle (line counting starts at 0).
Each line in Patches.txt can hold up to 4 patches, where each patch can be up to 32
bytes in length.
Syntax
Each line begins with <NumPatches> followed by each patch <Addr>,<NumBytes>:<Data>
in sequence and separated by commas. So the syntax for <NumPatches> = 4 would be as
follows:
Find below a table which describes each parameter.
ParameterDescription
<NumPatches>
<Addr>
<NumBytes>
<Data>
Describes the number of patches in this patch line. Max. value is 4.
Describes the address to be patched. Value is expected in
hex.
Number of bytes for the current patch. Max. value is 20h (32
in decimal). Value is expected in hex.
Describes the data to be patched. <Data> is always expected as 2 hexadecimal characters per byte.
Note
All values are expected in hexadecimal format (hex).
The <Data> section is always preceded by “:”, not “,”.
Example
Please find below an example sequence which clarifies the usage of patch files.
Patches.txt, which is located on the Flasher Compact(s), contains the following line:
3,100025,3:AABBCC,100063,2:DDEE,100078,1:FF
Serial.txt contains a “0”, which forces the Flasher Compact to use line 0 from Patch-
es.txt.
After starting the programming cycle, the following data will be patched:
Addr 0x100025: 3 byte 0xAA0xBB0xCC
The FTP server on the Flasher Hub provides easy access to the files on the connected
Flasher Compact modules. The server supports a maximum of 2 simultaneous connections
and works with all common FTP clients.
The FTP server root directory is a virtual directory and cannot be written to. It contains a
subdirectory for each module, as well as an “All Modules” directory.
Note that the assignment of Flasher Compact serial numbers to the Module numbers (MODULE.xxx) can be changed via the Flasher Hub web interface.
The FTP server allows you to upload or download the target configuration and data files.
Files and folders uploaded to the “All Modules” directory automatically get copied to all
connected Flasher Compacts. Note that the “All Modules” directory itself does not retain
any files or folders and will always appear empty.
Please also note that you may have to perform a “Refresh” operation on the Module folders
before the FTP client will display the ’true’ content of these folders. This is because many
FTP clients tend to cache the folder contents and don’t necessarily refresh the display
automatically, even if the folder contents has changed.
The Flasher Compacts create log files for executed operations. These files can be found in
the modules folders and downloaded from there.
The IP setup is described here: Setting up the IP interface on page 18.
The access data for read/write access can not be modified and is intended to be used
only as a convenience feature to avoid unintended modification of the Flasher’s file
system. It is not meant as a security feature.
The Flasher Hub comes with a built-in web server, which provides a web interface for
information and network configuration.
The web interface provides information about the Flasher Hub server version, serial number, and configuration. The Flasher Hub’s web interface furthermore allows monitoring and
configuration of the individual modules as well as the files stored on them.
The IP setup is described here: Setting up the IP interface on page 18.
7.1.1 Overview page
The “Overview” page shows the general parameters and status of the Flasher Hub. It also
allows to reset the Flasher Hub.
The “Configuration > Server” page allows the configuration of the handshake interface (for
future feature expansion use only - leave disabled for now). It also allows enabling/disabling
the logging feature of the Flasher Hub.
The “Configuration > Flasher” page shows the serial numbers of the Flasher Compacts that
are currently connected to the Flasher Hub. It also allows users to change the association
between module number (Index) and Flasher Compact serial number.
To assign a specific Flasher Compact to a specific module number, choose the desired index
from the drop-down menu. Please make sure each index is unique, otherwise the changes
cannot be saved.
The “Status > Flasher” page shows the current status of the connected Flasher Compact
modules, including the current firmware version. If an updated verion of the Flasher Compact firmware is available, this page will indicate this and allow the user to perform the
firmware update with the click of a button.
The file browser on the “Files” page is an alternative to using an FTP client to manage
the files on the connected Flasher Compacts. Users can view the contents of each module,
upload files (also via drag-and-drop), delete files and folders, create new folders, and more.
Just like when connecting via FTP, Files uploaded to / new folders created in the “All modules” directory automatically get copied to all connected Flasher Compacts. Note that the
“All modules” directory itself does not retain any files or folders and will always appear
empty.
The FTP server root directory is a virtual directory and cannot be written to. Enter a specific
module directory or the “All modules” directory to upload files.
Note that the assignment of Flasher Compact serial numbers to the Module numbers (MODULE.xxx) can be changed via the Flasher configuration page.
The Flasher Hub can be driven by any application or just a simple terminal using ASCII
commands.
Every known command is acknowledged by the Flasher Hub and then executed. After command execution, the Flasher Hub sends an ASCII reply message.
Note
There are situations where the execution of a known command is rejected with
#NACK:ERRxxx if the Flasher Hub is currently busy and the received command is not
allowed to be sent while the Flasher Hub is busy.
8.2.2 General command and reply message format
•Any ASCII command has to start with the start delimiter #.
•Any ASCII command has to end with simple carriage return (’\r’, ASCII code 13).
•Commands can be sent upper or lower case.
8.2.3 General usage
Reply messages must be considered in each case. In general, a new command must not
be sent before a reply for the last one has been received. At least the “#ACK” message
needs to be received by the controlling application before sending a new command for a
flash module not yet executing a command.
For the Flasher Hub, all commands triggering a flash programming function (#AUTO, #CAN-CEL, #ERASE, #PROGRAM, #VERIFY) may be used for other modules, before the current operation has been finished. Please note that in this case the overall finish indicator “#DONE”
will be sent when all commands have been executed.
When a flash programming function has finished, the debug logic of the MCU is disabled
(powered down) and the target interface of the module is switched off (tristated).
8.2.4 Settings for ASCII interface via Telnet
A client application can connect to the Flasher Hub via Telnet on port 23. Find below a
screenshot of a Flasher Hub being remote controlled via Telnet:
8.2.5 Commands and replies
The table below provides an overview about the commands which are supported by the
current version of the Flasher Hub firmware. Click on the names for a detailed description:
The #AUTO command behaves exactly like pushing the programming button on a connected
Flasher Compact.
Usually, the following command sequence will be performed when receiving the #AUTO
command:
•The Flasher Hub erases the target MCU (if not blank)
•The Flasher Hub programs the target MCU
•The Flasher Hub verifies the target MCU
Depending on the settings chosen in the Production tab in the J-Flash tool, this sequence
can differ from the one shown above.
Command structure:
#AUTO [module1][, module2][, module3]
Alternatively the modules can be replaced with:
•*, will execute the auto command using all modules selected by the latest executed
selmodule command.
•all, will execute the auto command using all modules which can be detected.
Results provided by the Flasher Hub:
ResultMeaning
#OKProgramming done successfully.
#ERRxxx
During execution of the #AUTO command, the Flasher Hub automatically sends “status”
messages via the terminal connection to reflect the state of execution.
Error occurred during operation. xxx represents the error
code, which may be followed by an additional error text.
The #AUTO NOPATCH command allows to ignore an existing patch file for the programming.
This command exists because the default behavior of the #auto command is such that
an existing patch file (patch.txt in the module folder) is applied to a data if the #auto
command is executed.
The Flasher Hub responds with
•#OK if no error occurred
•#ERRxxx if any error occurred during operation. xxx represents the error code, which
may be followed by an additional error text.
For further information about the usage of the #AUTO PATCH command, please refer to
Patch file support on page 39.
This command can be used instead of #AUTO to program a target without erasing the target
before programming and without performing a final verification.
Command structure:
#PROGRAM [module1][,module2][,module3]
The Flasher Hub will reply with the following sequence of messages:
The #SELECT command is used to select a specific configuration and data file pair to be
used by the connected Flasher Compact modules to program the target.
Command structure:
#select [module1][,module2][,module3] [Project Name]
The #SELECT command expects the following parameters:
ParameterMeaning
The [Project Name] specifies the name of file pair without extensions (.CFG and .DAT) on the Flasher Compact modules to be
Project Name
selected. The Flasher Compacts save the selected configuration
and data file in the FLASHER.INI file. Therefore, this selection is
remembered even after power-cycling the Flasher Compacts.
This command can be sent any time, even during other command execution. The Flasher
Hub responds with its current state. All defined state messages are described under Repliesfrom Flasher Hub on page 76.
This command is used to select one or more modules in a Flasher Hub system. The module
numbers are separated by a comma. If all modules shall be selected, the keyword “all” can
be used (#SELMODULE ALL) instead of a list with all module numbers.
The reply messages from the Flasher Hub follow the same data format as commands. Any
reply message starts with ASCII start delimiter #, ends with simple carriage return (ASCII
code 13), and is sent in uppercase. In contrast to commands, replies can be followed by
a descriptive message, which provides more detailed information about the reply. This
description is sent in mixed case. The #OK reply, for example, is such a reply. It is followed
by a string containing information about the performance time needed for the operations:
The following reply messages from the Flasher Hub are defined:
8.2.5.2.1 #ACK
The Flasher Hub replies with the #ACK message on reception of any defined command before
the command itself is executed.
8.2.5.2.2 #NACK
The Flasher Hub replies with #NACK, if an undefined command was received.
8.2.5.2.3 #OK:<module>:<data>
The Flasher Hub replies with #OK, if a command other than #STATUS or #RESULT was executed and ended without any error. #OK may be followed by a module number and/or data.
8.2.5.2.4 #STATUS:<status>
The Flasher Hub replies with its current state.
The following status messages are currently defined:
MessageDescription
#STATUS:READY
#STATUS:BUSY
Flasher Hub is ready to receive a new
command.
Flasher Hub is currently executing a previously received command.
The Flasher Hub reports the result of an operation on a specific module. If the operation
has been completed successfully, it will report the outcome with a single message of this
type followed by the last result of the operation.
8.2.5.2.6 #DONE
This message is being sent once all operations are finished and all connected Flasher Compact modules are back in idle state.
A typical sequence for using the Flasher Hub is shown below:
If any command other than #STATUS or #RESULT was terminated with an error, the Flasher
Hub cancels the command and replies with an error message instead of the #OK message.
Some error codes may be followed by a colon and an additional error text.
For example:
#ERR007:CANCELED.
The error code numbers are described in the following table:
MessageDescription
#ERR007
#ERR008
#ERR009Failed to allocate memory.
#ERR010Failed to open file.
#ERR011Failed to read file.
#ERR012Failed to write file.
#ERR013Failed to delete file.
#ERR098Failed to delete file.
#ERR098
#ERR099
#ERR101
#ERR102Could not open the data file.
#ERR255
Flasher Hub received a #CANCEL command
and has canceled the current operation.
Flasher Hub is already busy with execution
of previous command.
Could not allocate memory for device specific algorithm.
Device specific algorithm is not yet supported by this firmware version. Please
check for a firmware update.
Could not find device programming algorithm.
Undefined error occurred. This reply is followed by an error string.
This chapter contains troubleshooting tips together with solutions for common problems
which might occur when using the Flasher Hub. There are several steps you can take before
contacting support. Performing these steps can solve many problems and often eliminates
the need for assistance. This chapter also contains a collection of frequently asked questions
(FAQs) with answers.
Before contacting support, make sure you tried to solve your problem by trying your Flasher
Hub with a different PC and (if possible) with a different target system to see if it works
there. If the device functions correctly, the USB setup on the original machine or your target
hardware is the source of the problem, not the Flasher Hub.
If you need to contact support, send the following information to
ticket_flasher@segger.com
•A detailed description of the problem
•Flasher Hub serial number
•Information about your target hardware (processor, board, etc.).
•FLASHER.JFLASH, FLASHER.CFG, FLASHER.DAT (if possible), FLASHER.LOG, SERIAL.TXT
file from the connected Flasher Compact. To get these files, please download them via
FTP or via the Flasher Hub web interface.
Q: What is the maximum target interface speed supported by Flasher Compact?
A: The Flasher Compact’s maximum supported target interface speed is 50MHz.
Maximum download speed
Q: What is the maximum download speed supported by Flasher Compact?
A: The maximum download speed is currently about 3 Mbytes/second when downloading
into RAM. The actual speed depends on various factors, such as target interface speed,
clock speed, host CPU core etc.
Flasher Hub web interface access
Q: How do I connect to the Fasher Hub’s web interface?
A: Locate the serial number of your Flasher Hub on the product housing. Then point your
browser to http://flasherhub-<serial_number>/index.htm
Flasher Hub IP address
Q: Where can I find the IP address assigned to my Flasher Hub?
A: Connect to the Flasher Hub web interface as described above. The Flasher Hub IP
If you need to mount the Flasher Hub into the production environment, a drawing of the
mechanical layout can be downloaded here:
https://www.segger.com/downloads/flasher#Mechanics.