Skip to content

Repository files navigation

1. Overview

The Aladdin SDS (Silent Deploy Service) is the service on HOST to detect, configure and upgrade for Datalogic HHS and FRS devices. It also provides the communication interface with Datalogic Connect system.


2. Supported Device

2.1. USB-COM interface

Gryphon

Product Interface Logs Beep Reset Device Visibility Custom Configuration Firmware Upgrade
Gryphon 46xx USB-COM ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Gryphon 45xx USB-COM ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Gryphon 42xx USB-COM ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Gryphon 41xx USB-COM ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Gryphon 44xx USB-COM ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Gryphon 43xx USB-COM ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Base Chargers
WLC4090-BASE-WIRELESS-CHARGER
WLC4090-BT-BASE-WIRELESS-CHARGER
WLC4690-BASE-WIRELESS-CHARGER
WLC4690-BT-BASE-WIRELESS-CHARGER
USB-COM ✔️ ✔️ ✔️ ✔️ ✔️ ✔️

QuickScan

Product Interface Logs Beep Reset Device Visibility Custom Configuration Firmware Upgrade
QuickScan 25xx USB-COM ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
QuickScan 24xx USB-COM ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
QuickScan 22xx USB-COM ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
QuickScan 21xx USB-COM ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
QuickScan QW25 USB-COM ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
QuickScan QW24 USB-COM ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
QuickScan QW21 USB-COM ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Base Chargers
BC2090-BASE-CHARGER
BC2090-BT-BASE-CHARGER
USB-COM ✔️ ✔️ ✔️ ✔️ ✔️ ✔️

PowerScan

Product Interface Logs Beep Reset Device Visibility Custom Configuration Firmware Upgrade
PowerScan 96x0 USB-COM ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
PowerScan 95x1 (Obsolete) USB-COM ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
PowerScan 95x0 USB-COM ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
PowerScan 91xx USB-COM ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
PowerScan 93xx USB-COM ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
PowerScan 71xx USB-COM ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Base Chargers
BC9600-BASE-CHARGER
BC9600-BT-BASE-CHARGER
USB-COM ✔️ ✔️ ✔️ ✔️ ✔️ ✔️

Magellan

Product Interface Logs Beep Reset Device Visibility Custom Configuration Firmware Upgrade
Magellan 900i USB-COM ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Magellan 1500i (Only HOST cable) USB-COM ✔️ ✔️ ✔️ ✔️ ✔️
Magellan 3x10/3x50i (Only HOST cable) USB-COM ✔️ ✔️ ✔️ ✔️ ✔️
Magellan 36/3700i USB-COM ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Magellan 93/9400i (Only HOST cable) USB-COM ✔️ ✔️ ✔️ ✔️ ✔️
Magellan 9550i USB-COM ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Magellan 9800i (Only HOST cable) USB-COM ✔️ ✔️ ✔️ ✔️ ✔️
Magellan 96/9900i USB-COM ✔️ ✔️ ✔️ ✔️ ✔️ ✔️

OEM Scan Engine

Product Interface Logs Beep Reset Device Visibility Custom Configuration Firmware Upgrade
GFS45xx USB-COM ✔️ ✔️ ✔️ ✔️ ✔️ ✔️

Note: ✔️ Supported • ❌ Not Supported

2.2. USB-OEM interface

Gryphon

Product Interface Logs Beep Reset Device Visibility Custom Configuration Firmware Upgrade
Gryphon 46xx USB-OEM ✔️ ✔️ ✔️ ✔️ ✔️
Gryphon 45xx USB-OEM ✔️ ✔️ ✔️ ✔️ ✔️
Gryphon 42xx USB-OEM ✔️ ✔️ ✔️ ✔️ ✔️
Gryphon 41xx USB-OEM ✔️ ✔️ ✔️ ✔️ ✔️
Gryphon 44xx USB-OEM ✔️ ✔️ ✔️ ✔️ ✔️
Gryphon 43xx USB-OEM ✔️ ✔️ ✔️ ✔️ ✔️
Base Chargers
WLC4090-BASE-WIRELESS-CHARGER
WLC4090-BT-BASE-WIRELESS-CHARGER
WLC4690-BASE-WIRELESS-CHARGER
WLC4690-BT-BASE-WIRELESS-CHARGER
USB-OEM ✔️ ✔️ ✔️ ✔️ ✔️

QuickScan

Product Interface Logs Beep Reset Device Visibility Custom Configuration Firmware Upgrade
QuickScan 25xx USB-OEM ✔️ ✔️ ✔️ ✔️ ✔️
QuickScan 24xx USB-OEM ✔️ ✔️ ✔️ ✔️ ✔️
QuickScan 22xx USB-OEM ✔️ ✔️ ✔️ ✔️ ✔️
QuickScan 21xx USB-OEM ✔️ ✔️ ✔️ ✔️ ✔️
QuickScan QW25 USB-OEM ✔️ ✔️ ✔️ ✔️ ✔️
QuickScan QW24 USB-OEM ✔️ ✔️ ✔️ ✔️ ✔️
QuickScan QW21 USB-OEM ✔️ ✔️ ✔️ ✔️ ✔️
Base Chargers
BC2090-BASE-CHARGER
BC2090-BT-BASE-CHARGER
USB-OEM ✔️ ✔️ ✔️ ✔️ ✔️

PowerScan

Product Interface Logs Beep Reset Device Visibility Custom Configuration Firmware Upgrade
PowerScan 96x0 USB-OEM ✔️ ✔️ ✔️ ✔️ ✔️
PowerScan 95x1 (Obsolete) USB-OEM ✔️ ✔️ ✔️ ✔️ ✔️
PowerScan 95x0 USB-OEM ✔️ ✔️ ✔️ ✔️ ✔️
PowerScan 91xx USB-OEM ✔️ ✔️ ✔️ ✔️ ✔️
PowerScan 93xx USB-OEM ✔️ ✔️ ✔️ ✔️ ✔️
PowerScan 71xx USB-OEM ✔️ ✔️ ✔️ ✔️ ✔️
Base Chargers
BC9600-BASE-CHARGER
BC9600-BT-BASE-CHARGER
USB-OEM ✔️ ✔️ ✔️ ✔️ ✔️

Magellan

Product Interface Logs Beep Reset Device Visibility Custom Configuration Firmware Upgrade
Magellan 900i USB-OEM ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Magellan 1500i (Only HOST cable) USB-OEM ✔️ ✔️ ✔️ ✔️ ✔️
Magellan 3x10/3x50i (Only HOST cable) USB-OEM ✔️ ✔️ ✔️ ✔️ ✔️
Magellan 36/3700i USB-OEM ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Magellan 93/9400i (Only HOST cable) USB-OEM ✔️ ✔️ ✔️ ✔️ ✔️
Magellan 9550i USB-OEM ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Magellan 9800i (Only HOST cable) USB-OEM ✔️ ✔️ ✔️ ✔️ ✔️
Magellan 96/9900i USB-OEM ✔️ ✔️ ✔️ ✔️ ✔️ ✔️

OEM Scan Engine

Product Interface Logs Beep Reset Device Visibility Custom Configuration Firmware Upgrade
GFS45xx USB-OEM ✔️ ✔️ ✔️ ✔️ ✔️

Note: ✔️ Supported • ❌ Not Supported

2.3. USB-COMPOSITE interface

The following devices support the USB-COMPOSITE as same as USB-COM (Please note that device will not send the scanning data on the COM port in this case. This data is sent on the HID keyboard interface).

Product
Gryphon-GBT4200
Gryphon-GBT4500-DGM
Gryphon-GBT4500
Gryphon-GBT4600
Gryphon-GD4200
Gryphon-GD4500-DGM
Gryphon-GD4500
Gryphon-GD4600
Gryphon-GFE4590
Gryphon-GFS4520
Gryphon-GFS4590
Gryphon-GM4200
Gryphon-GM4500-DGM
Gryphon-GM4500
Gryphon-GM4600
POWERSCAN-BT9501-AR
POWERSCAN-D9531-AR
POWERSCAN-M9501-AR
Powerscan-PBT9600-RFID
Powerscan-PBT9600
Powerscan-PD9630
Powerscan-PM9600
QuickScan-i-QD2131
QuickScan-Lite-QW2400
Quickscan-QBT2500
Quickscan-QD2200
QuickScan-QD2430
Quickscan-QD2590
Quickscan-QM2500
QuickScan-QW2500
WLC4090-BASE-WIRELESS-CHARGER
WLC4090-BT-BASE-WIRELESS-CHARGER
WLC4190-BASE-WIRELESS-CHARGER
WLC4190-BT-BASE-WIRELESS-CHARGER
WLC4690-BASE-WIRELESS-CHARGER
WLC4690-BT-BASE-WIRELESS-CHARGER
BC2030-BT-BASE-CHARGER
BC2030-STAR433-BASE-CHARGER
BC2090-BASE-CHARGER
BC2090-BT-1-BASE-CHARGER
BC2090-BT-BASE-CHARGER
BC6020-BT-BASE-CHARGER
BC9600-BASE-CHARGER
BC9600-BT-BASE-CHARGER
BC9620-BASE-CHARGER
BC9620-BT-BASE-CHARGER

3. Aladdin SDS Configuration

# ============================================================================
# Datalogic Aladdin SDS Configuration File
# ============================================================================
# File Location:
#   Windows: C:\ProgramData\Datalogic\AladdinSDS\config.toml
#   Linux:   /usr/lib/AladdinSDS/config.toml
#
# Format: TOML (Tom's Obvious, Minimal Language)
#   - Strings must be in quotes: "value"
#   - Numbers have no quotes: 1234
#   - Booleans: true or false (no quotes)
#   - Paths on Windows: Use double backslashes "C:\\Path\\To\\File"

# ----------------------------------------------------------------------------
# [edge] - Edge Gateway Configuration
# ----------------------------------------------------------------------------
# Settings for communicating with the Datalogic edge gateway.
[edge]

# host - Edge gateway hostname or IP address
#   Network address of the edge gateway for cloud connectivity.
#   Values:
#     - "localhost": Gateway running on same machine (development/testing)
#     - IP address: Remote gateway (e.g., "192.168.1.100")
#     - Hostname: DNS-resolvable name (e.g., "edge-gateway.local")
host = "localhost"

# ----------------------------------------------------------------------------
# [aladdinSDS] - AladdinSDS Agent Behavior Configuration
# ----------------------------------------------------------------------------
# Controls how the SDS agent behaves, including telemetry and logging.
[aladdinSDS]

# sendTelemetryMs - Telemetry reporting interval (milliseconds)
#   How often the agent sends device telemetry data to the edge gateway.
#   Default: 3600000 (1 hour)
#   Range: 60000 (1 min) to 86400000 (24 hours)
#   Examples:
#     - 300000  = 5 minutes
#     - 3600000 = 1 hour (default)
#     - 7200000 = 2 hours
sendTelemetryMs = 3600000

# sendConnectionMin - Host/device connection re-publish interval (minutes)
#   How often the agent re-publishes a full connection snapshot to the edge
#   gateway. The snapshot covers:
#     - the host connection status for this machine
#     - every currently connected device (recursively, including children)
#   Useful to keep DL Connect's view of ONLINE hosts/devices fresh even if a
#   previous status publish was missed (e.g. transient broker disconnect).
#   The snapshot is only sent when the MQTT client is connected; cycles
#   where the broker is unreachable are skipped (no retry storm).
#   Default: 5 (every 5 minutes)
#   Range: 1 to 1440 (24 hours)
#   Set to 0 to DISABLE the periodic snapshot (no scheduler started).
#   Note: this is independent of the one-shot snapshot already sent on
#   (re)connect and on edge-host change.
#   Examples:
#     - 0  = disabled
#     - 1  = every minute (debug / smoke tests)
#     - 5  = every 5 minutes (default)
#     - 60 = every hour
sendConnectionMin = 5

# logLevel - Application logging verbosity
#   Controls how much detail is written to log files (restart required).
#   Valid values: "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL", "OFF"
#   Default: "INFO"
logLevel = "INFO"

# ----------------------------------------------------------------------------
# [autoConfiguration] - Auto-Configuration Feature – Standalone Mode
# ----------------------------------------------------------------------------
# Settings for the auto-configuration feature – Standalone Mode.
[autoConfiguration]

# scheduleUpdateTime - Time window during which scheduled Auto-Configuration are allowed to run (firmware updates or configuration deployment).
#   Range: "HH:MM - HH:MM"
#   Default: "00:00 - 01:00"
scheduleUpdateTime = "00:00 - 01:00"

# eventDrivenUpdateMode - Controls behavior when an event-driven update is detected.
#   Valid values:
#   - "IMMEDIATE": Updates are applied instantly upon detection (ignore scheduleUpdateTime).
#   - "DEFER": Automatically updates are deferred until the current time falls within the scheduleUpdateTime window.
#   - "DISABLED": disables Auto-Configuration feature.
#   Default: "DEFER"
eventDrivenUpdateMode = "DEFER"

# retryTimes - Maximum number of retry attempts for the SDS package.
#   If the package still fails after reaching the maximum retry count, it will be blocked.
#   Default: 3
retryTimes = 3

# retryDelay - Delay between retry attempts in seconds.
#   Default: 30
retryDelay = 30

# removePackageAfterExecute - Determines whether the package is removed
#   This setting takes effect after all valid devices have been successfully processed.
#   The actual behavior depends on the selected value, which controls whether the package is removed, retained, or governed by its own configuration.
#   Valid values:
#     - "REMOVE": Remove the package after all valid devices have been configured.
#     - "NOT_REMOVE": Keep the package after execution.
#     - "DEPEND_ON_PACKAGE": Follow the package configuration.
#   Default: DEPEND_ON_PACKAGE
removePackageAfterExecute = "DEPEND_ON_PACKAGE"

# ----------------------------------------------------------------------------
# [files] - File Transfer Service Configuration
# ----------------------------------------------------------------------------
# HTTP server for receiving firmware packages and file uploads.
[files]

# protocol - File transfer protocol
#   Protocol used for file uploads from devices or external systems (restart required).
#   Valid values: "http", "https"
#   Default: "http"
protocol = "http"

# port - File service listening port
#   TCP port for the file transfer HTTP server (restart required).
#   Default: 8090
#   Range: 1024-65535 (avoid privileged ports below 1024)
port = 8090

# downloadTimeoutMs - File download timeout (milliseconds)
#   Maximum time allowed to download a firmware package (restart required).
#   Default: 3600000 (1 hour)
#   Range: 60000 (1 min) to unlimited
downloadTimeoutMs = 3600000

# downloadPath - Package download directory
#   Where SDS packages are downloaded (restart required).
#   Default: "download/"
#   Important: Ensure this directory has write permissions
#   Windows recommended: "C:\\ProgramData\\Datalogic\\AladdinSDS\\download"
#   Linux recommended:   "/var/lib/AladdinSDS/download"
downloadPath = "download/"

# ----------------------------------------------------------------------------
# [mqtt] - MQTT Broker Connection Configuration
# ----------------------------------------------------------------------------
# Connection settings for the MQTT message broker used to communicate
# with the edge gateway and cloud services.
[mqtt]

# port - MQTT broker port
#   TCP port of the MQTT broker (restart required).
#   Default: 1883
port = 1883

# ----------------------------------------------------------------------------
# [http] - HTTP API Server Configuration
# ----------------------------------------------------------------------------
# REST API server for device management, configuration, and monitoring.
[http]

# port - API server listening port (restart required).
#   Default: 9000
#   Range: 1024-65535
port = 9000

# ----------------------------------------------------------------------------
# [otel] - OpenTelemetry Export Configuration
# ----------------------------------------------------------------------------
# Settings used by the internal OTEL span/log exporter.
[otel]

# endpoint - OTLP collector endpoint
#   URL of the OTLP gRPC collector endpoint (restart required).
#   Default: "http://localhost:4317"
endpoint = "http://localhost:4317"

# serviceName - OpenTelemetry service name
#   Logical service name exported as resource attribute service.name (restart required).
#   Default: "SDS"
serviceName = "SDS"

# ----------------------------------------------------------------------------
# [connectivity] - Device Connectivity Policy
# ----------------------------------------------------------------------------
# Controls which communication channels Aladdin SDS uses for each device family.
[connectivity]

# FRSConnectivity - Connectivity policy for Fixed Retail Scanners (FRS)
#   Determines which communication channels are used for FRS devices (restart required).
#   Valid values:
#     - "NO": Disable all communication with FRS devices
#     - "HOST": Use only the primary host interface (USB-COM/USB-OEM)
#     - "SERVICES": Use only the Service Port communication channel
#     - "BOTH": Prioritize Service Port, fallback to host port (default)
#   Default: "BOTH"
FRSConnectivity = "BOTH"

# HHSConnectivity - Connectivity policy for Handheld Scanners (HHS)
#   Determines which communication channels are used for HHS devices (restart required).
#   Valid values:
#     - "NO": Disable all communication with HHS devices
#     - "HOST": Use only the primary host interface (USB-COM/USB-OEM)
#     - "SERVICES": Use only the Service Port communication channel
#     - "BOTH": Prioritize Service Port, fallback to host port (default)
#   Default: "BOTH"
HHSConnectivity = "BOTH"

# releaseHostFRS - Release host and service ports for FRS after operations complete
#   When true, Aladdin SDS releases both the host port and the service port of the device after compliance check/firmware update.
#   Stopping barcode reception on FRS device due to port disconnection.
#   Default: false
releaseHostFRS = false

# releaseHostHHS - Release host and service ports for HHS after operations complete
#   When true, Aladdin SDS releases both the host port and the service port of the device after compliance check/firmware update.
#   Stopping barcode reception on HHS device due to port disconnection.
#   Default: false
releaseHostHHS = false

# ----------------------------------------------------------------------------
# [updater] - Auto-Update Configuration
# ----------------------------------------------------------------------------
# Settings for the automatic service updater component.
[updater]

# path - Updater executable path (optional, overrides default OS path)
#   Leave commented to use the default path for the detected OS.
#   Windows default: C:\Program Files\Datalogic\SDSUpdater\DatalogicSDSUpdater.exe
#   Linux default:   /usr/bin/datalogic-sds-updater
# path = ""

# scheduleEnabled - Enable scheduled automatic updates
#   When true, the updater checks for and installs updates on schedule (restart required).
#   When false, updates must be triggered manually via API.
#   Default: false
scheduleEnabled = false

# scheduleHour - Daily update check time (24-hour format)
#   Hour of the day (local time) when scheduled updates run (restart required).
#   Range: 0-23 (0 = midnight, 12 = noon, 23 = 11 PM)
#   Default: 6 (6:00 AM)
scheduleHour = 6

# triggerOnStart - Check for updates on service startup
#   When true, the updater checks for updates immediately when service starts (restart required).
#   When false, only scheduled or manual updates occur.
#   Default: false
triggerOnStart = false

# manifestUrl - Update manifest URL
#   URL of the JSON manifest file listing available service updates (restart required).
#   The updater fetches this file to determine if new versions are available.
#   Default: "https://aladdin.datalogic.com/sds/aladdin-sds-manifest.json"
manifestUrl = "https://aladdin.datalogic.com/sds/aladdin-sds-manifest.json"

# ----------------------------------------------------------------------------
# [notification] - Notification Configuration
# ----------------------------------------------------------------------------
# Settings for the notification service.
[notification]

# enableNotify - Enable notification service
#   When true, the service shows notifications message.
#   When false, notifications are disabled.
#   Default: false
enableNotify = false

# ----------------------------------------------------------------------------
# [frsRecollector] - FRS Children Recollector Configuration
# ----------------------------------------------------------------------------
# Controls how the AladdinLib re-polls child devices that are attached to an
# FRS (Fixed Reader Station) host device.
[frsRecollector]

# retryNumber - Number of poll attempts for the FRS children recollector
#   How many times the lib will retry fetching the child device list before
#   giving up on a particular recollect cycle.
#   Default: 1
#   Range: >= 1
retryNumber = 1

# periodMs - Delay between FRS recollector polls (milliseconds)
#   How long the lib waits between consecutive poll attempts.
#   Default: 30000 (30 seconds)
#   Range: > 0
periodMs = 30000

# ============================================================================
# End of Configuration
# ============================================================================

4. HTTP Interface

4.1 Config

Service configuration management endpoints.

  • GET /config → Get application configuration
  • PUT /config → Update application configuration
  • POST /config/restore → Restore default configuration

4.2 Device

Device management and command action endpoints.

  • GET /devices → List devices
  • GET /devices/{deviceId} → Get device
  • POST /devices/{deviceId}/command/beep → Send beep command
  • POST /devices/{deviceId}/command/reset → Send host command
  • POST /devices/{deviceId}/command/firmware-upgrade → Send service command
  • POST /devices/{deviceId}/command/disable-receive-scan-data → Disable receiving scan data from scanner
  • POST /devices/{deviceId}/command/enable-receive-scan-data → Enable receiving scan data from scanner
  • POST /devices/{deviceId}/command/firmware-upgrade → Send firmware update command
  • POST /devices/{deviceId}/command/host-command/disable → Send disable host commands
  • POST /devices/{deviceId}/command/host-command/enable → Send enable host commands
  • POST /devices/{deviceId}/command/logs → Get logs
  • POST /devices/{deviceId}/command/reset → Send reset command
  • POST /devices/{deviceId}/command/scan-response → Send response for devices with two way communication to the device
  • POST /devices/{deviceId}/command/scanner/disable → Send disable scanner command
  • POST /devices/{deviceId}/command/scanner/enable → Send enable scanner command
  • GET /devices/{deviceId}/config → Get config
  • PUT /devices/{deviceId}/config → Save Config
  • POST /devices/{deviceId}/execute-zip-package → Execute zip package
  • GET /devices/{deviceId}/health → Get health
  • GET /devices/{deviceId}/info → Get info
  • GET /devices/{deviceId}/stats → Get stats
  • PUT /devices/{deviceId}/upload/ → Upload Config File
  • POST /devices/command/firmware-upgrade → Upgrade firmware

4.3 Host

Host management endpoints.

  • GET /host/host-id → Get host id
  • POST /host/host-id → Set host id
  • GET /host/info → Get info

4.4 Packages

Local packages directory management endpoints.

  • GET /packages → List all packages
  • DELETE /packages → Delete all packages
  • POST /packages → Download a package

4.5 Service

Service control endpoints.

  • POST /service/restart → Restart the service
  • POST /service/stop → Stop the service

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors