Release Notes

Syrus Cloud

Version 0.8.5



  • Added, A friendly message to advise invalid IMEI or serial format on Device Search actions (Devices and All Devices views), and other errors on these sections.
  • Added, the Apex OS beta versions chart in the dashboard organization and group.
  • Added, the list of available geofences in App Configuration within the Syrusjs app.
  • Added, a link to the Syrus Cloud Documentation.
  • Added, a devices filter panel in Dashboard Devices, Summary, Diagnostics, Commands, Videos, Accelerometer, Applications Overview, and Profiles Overview.
  • Added, support for inserting new devices to the Syrus Cloud from QCstatus pass-tests reports.
  • Added, a support to new inc-update of video diagnostics.


  • Support better stability in the connection of the camera(s)
  • Made more readable the clip's diagnostics.
  • Sorting of the files list on the tree view.
  • Detect paths according to the config type of files that are being uploaded (command "Upload File")
  • Updated information showed in desktop to mobile view on Summary, Diagnostics, and Videos views.


  • Fixed, missing tooltip in some device's state icons.
  • Fixed, the color of the device's old connection according to its status.
  • Fixed, the alignment of the items in the details right sidebar.
  • Fixed, the amount of data displayed in the dashboard charts (more readable).
  • Fixed, align the calendar in the Device Video Filter.
  • Fixed, the size of the data table in the profiles section.
  • Fixed, the inclusion of all filters in the reset function on the Device Video Filters.
  • Fixed, the linear loading progress on all-devices section.

Version 0.8.4



  • Added, show Cipia-config column on the summary table.
  • Added, show PSM stats in the Dashboards into online Devices Graphs.
  • Added, a new dashboard card for syrusJs versions.
  • Added, the number of devices in the Organization and Groups dashboards
  • Added, downloading profile's devices list button.
  • Added, the last media-event-info into the device's state.
  • Added, a column for the latest video's info on summary and video overview tables.


  • Changed, the style of the Group selector, adding underlining and highlighting hover.
  • Removed, the progress bar on the dashboard's cards.
  • Changed, the font size on the dashboard cards.
  • Changed, the warnings card to a pie chart instead of a list.
  • In the single-device dashboard, the warning message is hidden if the external memory is formatted.
  • Changed way to differentiate loading and updating state on tables where update-led works.


  • Fixed, show all pie categories details on dashboard cards.
  • Fixed, the device map dialog is updated with the latest positions.
  • Fixed, hide "searchText" prop on views and downloaded JSONs.

Version 0.8.3



  • Added, show the Device tag in breadcrumbs on mobile.
  • Added, the Organization dashboard with all the graphic information.
  • Added, a new filter to identify valid or corrupted videos on the device videos section with the following conditions:
    • Filter by Cipia videos (excluding images).
    • Success: All videos generated by the Cipia that are working.
    • Corrupted: All corrupted Cipia videos.
  • Last connection column on the videos overview.
  • Connected cameras column on the videos overview.


  • Accelerometer dialog configuration works even when the device is offline, leaving the command in a queue.
  • Disabled the sim-priority options from the devices section to avoid config errors.
  • Dashboard tabs are now in this order: Organization, Group, and Device.


  • Fixed, linear progress activated on all data tables according to each use case.
  • Fixed, showing the streaming state as active when it’s not.
  • Fixed, Hide the live button when it doesn’t apply (Movon & Cipia).

Version 0.8.2



  • Added, support for ecu-imports file on ecu profiles install/update.
  • Added, cipia information in Summary data tables.
  • Added, a switch on the 'Add devices' dialog in applications and profiles looking for filter-disabled devices.
  • Added, support for cipia configs on download-command shortcuts.
  • Added, allow sorting by Name and Online State on devices dashboard
  • Added, speed on maps location title.
  • Added, play-and-pause live table sorting button and update-led in mobile view.


  • Shared-components updated to 0.3.1 and 0.3.4
  • Mobile view in Management Applications and Profiles views.
  • A snackbar is shown when there is no information in the editor config on device calibration.
  • Changed, the way to show updated information, warnings, and errors in the single device dashboard. Now these actions are confirmed.
  • On the single-device dashboard, empty states are now better handled.
  • Data tables with device tags, had changed to export in CSV, adding Conn, Name, IMEI, and serial columns.
  • On the device sidebar, was added copy IMEI or serial function.


  • Fixed, editing an instance does not let's create a new instance's file.
  • Fixed, a bug in the editor dialog on the device dashboard. This dialog used to crash when a user selects "view file" in accelerometer single dashboard.
  • Fixed, not auto-checking devices when added to some new profiles.
  • Fixed, profile-copy does not copy config-file contents on some profile types.
  • Fixed, video tree updates with multiple events files, for instance, snapshot + video

Version 0.8.0



  • Added, a button to freeze information in data tables.
  • Added, support and pretty format for new videos in diagnostics messages.
  • Added, automatic creation of devices in Syrus-Cloud from Syrprod reports (factory QC report)


  • Images no longer need to be downloaded to view their content, now they can be viewed from the application.
  • Next to the freeze button, there is a badge that lights up when the table is updating data.
  • App now detects when a video is no longer available on the device.
  • The following views had been updated in mobile: Summary, Diagnostics, Commands, Videos, Accelerometer, Applications - Overview, Profiles - Overview, Users, Devices, Organizations, all devices and Admins.
  • Support updating the videos-list with incremental changes instead of triggering a list-videos command on new video-event.
  • Shared components updated to version 0.3.0


  • Fixed, state of icons from syrus lite, now is clear these devices are using SIM cards.
  • Restored showing versions on device's summary info panel
  • Fixed, sometimes not reading the min Apex Version requirement when editing instance
  • Fixed, installed instances of the device now show up correctly in sync, because previously they would show out of sync when they were not.
  • Fixed, a bug on warranty start detection.
  • Fixed, a batch correction of some devices that were assigned a wrong warranty start date.
  • Fixed, a bug when selecting predefined paths for file download.

Version 0.7.0


Dashboard with all devices view with the following features:

  • Added, a filter to find a device by name, IMEI or serial number.

  • Added, button to show or hide maps for all devices.

  • Added, button to maximize map for each device.

  • Added, in action button an option to copy IMEI or serial number to clipboard.

  • Added, a row with icons showing the information of the device, just let the mouse over the icon to see the information.

Summary side bar has the following features:

  • Added, a section in the sidebar with the name and model of device (requires latest ApexOS version)
  • Added, a diagnostics section reports last three errors or warnings occurred in the last two weeks.
  • Added, an instances section to show all instances of the selected device.
  • Added, an accelerometer section to show calibration status and settings.
    Other views:
  • Added, copy and download button in command response side bar.
  • Added, copy and download button in advanced options on summary and diagnostics side bar.

  • Added, Number of devices per group in management group section.

  • Added, Status icons for each device showing errors or warnings.

Created a new Dashboard for each device with the following features:

  • Added, Summary Card with the main information of the device.
  • Added, Accessory Card with the information of the accessories linked to the device.
  • Added, Accelerometer card that displays the calibration status and settings.
  • Added, Profiles and Instances cards giving information about configuration profiles and instances.
  • Added, Diagnostic Information, Diagnostic Warnings, Diagnostic Errors cards that show last three messages of each type occurred in the last two weeks.
  • Added, Warranty information card that shows the warranty information of the device.
  • Added, Mobile card with all the information related with mobile and network status of the device.
  • Added, Video and Location cards that reports the last video, with a button to go to the video panel and the last location of the device.


  • Commands and diagnostics tables of the device view was moved to a new tab called "COMM".


  • Fixed, sizing of device tables to give a better view.

Apex OS

Upgrade command

Syrus 4

apx-os-update start

Syrus 4 Lite

apx-os-update start

Apex 23.32.4 stable



  • Added, the mechanism to validate the EcuImports.json file by syrus-ecu


  • Fixed, the mechanism to notify MOVON videos
  • Fixed, the initialization routine to support LSM6DSR and LSM6DSO imu chips


  • Removed, the mechanism to download the EcuImports file by the syrus-api


  • Improved, the mechanism to restart the LTE module after several tries to register
  • Improved, the gps simulator, now the syrus-gps service is not stopped

Apex 23.28.1 beta



  • Added, GPS simulator, to be used with apx-gps-sim tool.
  • Added, support for wifi-hotspot mode in syrus lite.
  • Added, a new instruction in the microcontroller to reset the transmission queue when buffer is empty and no space is available.


  • Fixed, the response returned by apx-ndm-cipia tool when restarting the device.


  • Improved, the way to read the available parameters in ISO15765.

Apex 23.27.1 beta



  • Added, a way to flush syrusjs redis data structures with syrus-apps-manager tool.
  • Added, a new routine to restart the OS when uChip communication fails.
  • Added, a way to change the serial baudrate in console mode.
  • Added, a new publication to redis when serial mode changes.
  • Added, new service that it is used to start the syrus-api 10s after the other apps.
  • Added, wifi initialization in syrus lite.
  • Added, apx-wifi tool to syrus-lite.
  • Added, a mechanism to configure the jamming level.
  • Added, the initialization commands for jamming detection in BG95-M3.
  • Added, the instruction to disable NBIOT in BG95-M3.
  • Added, the mechanism to auto update the full state with cloud.


  • Fixed, the json format for some responses in apx-geofences tool.
  • Fixed, the mechanism to update the ecu profile used in full state.
  • Fixed, double diagnostic message to cloud when new clip is requested from syrusjs.
  • Fixed, the mechanism to update the serial profile used in full state.
  • Fixed, the command to set serial user mode when using the old format.


  • Changed, the way to request a synchronization with cloud by syrus-efs, now it depends on the first clip generated.
  • Changed, the validation for starting ppp session for BG95-M3.


  • Improved, the way to read CAN data when ISO15765 mode is used.
  • Improved, the syrus-ndm initialization.
  • Improved, the syrus-video initialization.
  • Improved, the apx-serial send option.
  • Improved, the way in which the UI shows user messages when actions are executed.

Apex 23.20.1 beta



  • Added, an apex tool for every serial mode.
  • Added, ISO15765 OBD2 to syrus-ecu application.
  • Added, the instruction to clear ecu parameters when ecumonitor.conf file is changed. This clears the ecu parameters list that is consulted with the apx-ecu list_parameters command.
  • Implemented, MDT ascii mode for serial applications.
  • Implemented, serial user mode, in this mode the user has total control on the serial interface, the serial app does not run in this mode.


  • Fixed, recording issue when 2 cameras were used. The second camera never started the recording process.


  • Changed, the way to package the API, now it is a WEB app and its size was reduced.
  • Disabled, audio for F6 dashcams. This camera has a problem with the audio stream that causes the recording not to start.


  • Improved, organization and legibility of the syrus-ecu code.
  • Improved, the way to update the video list in syrus cloud, now, differentials are used.
  • Improved, the routine to execute an electrical reset in the LTE modem when communication issues are detected.

Apex 23.11.1 stable



  • Added, a routine to restart the OS when i2c driver crash is detected. This was causing a failure in reporting the accelerometer motion and it was related with freezed odometers.
  • Added, a routine to restart the OS after 5 minutes of communication error with microcontroller.
  • Added, reset code to the apex started diagnostic message. Something like this is sent to cloud:
    apex-23.18.2 started, session counter: 834, reset code: 1
    1: Normal reset
    0: Reset code not found
    -1: Operating system has finished unexpectedly


  • Decreased, the wait time for changing from one led state to the next one.
  • Improved, now, creation of clips with old ranges is allowed even if the camera is switched off.
  • Increased, from 10 to 20 minutes, the time to kill a process started by syrus-watcher. It was done because sometimes 10 minutes is not enough to download and install an application in syrus lite when it is done by using the syrus cloud UI.
  • Increased, the 10-day limit to 30 days for the apx-video history request.


  • Fixed, a bug with the update cipia command. It returned error and the process never started.
  • Fixed, apx-mdm status was returning the temperature value in a wrong format.
  • Fixed, battery being drained with external power connected. It was done on the microcontroller side version 1.0.2L.
  • Fixed, the apx-ndm-cipia status was not returning the correct connection state.
  • Fixed, the device did not enter into PSM (Power saving mode) after upgrading the microcontroller. The device needed a reset in order it to work again.
  • Fixed, the error that caused no more than 10 video events were saved in the SD card.
  • Fixed, the OS update process was not validating the key.
  • Fixed, the routine to restart the syrus lite device when heartbeat (WATCHDOG) fails. It was done on the microcontroller side version 1.0.2L
  • Fixed, the syrus lite Europe model was not using the correct USB interface to start the ppp session.

Apex 23.08.2 beta



  • apx-gps antenna-st command
  • antenna status to the apx-gps status command
  • virtual ignition support (23.04.1)
  • jamming detection (23.04.1)
  • temperature value from modem (23.04.1)
  • added a command to query the apx-bbs configuration (bluetooth beacon sensors) (23.04.1)
  • Added, the routine to move the blue led according to wifi/hotspot state (23.08.1)
  • Added, Ignition state to the periodic diagnostic message (23.08.1)
  • Added, the mechanism to include modem manufacturer, model and revision to the OS state (23.08.1)
  • Added, a routine to restart the system when microcontroller communication fails (23.08.1)
  • Added, a new command to consult the list of geofences that are inside (23.08.1)
  • Added, apx-bbs enable/disable command to start/stop the syrus-bbs application (23.08.1)
  • Added, new ECU variables to the SDK (23.08.1)
  • Added, syrus-leds as a new package (23.08.1)
  • Added, HW type to the full OS state (23.08.1)
  • Added, the way to add a diagnostic message to the reboot command (23.08.1)


  • Outputs are activated in sequence (23.04.1)
  • Disabled, the syrus-bbs service by default (23.08.1)
  • Removed, apx-leds as part of the apex tools (23.08.1)


  • Improved, the mechanism to restart the OS by microcontroller communication error
  • Added, apx-bbs (Bluetooth Beacon Sensors) tool (23.03.1)
  • Improved, the debug for microcontroller critical message (23.08.1)

Apex 22.51.1 stable


Added, a routine in syrus-watcher to close the redis client when an error is received
Added, PWR state to the full system state
Added, the mechanism to rotate GNSS backlog files
Added, the instruction to validate the hardware type before updating, apex lite file is different from apex full

Changed, the critical size warning message periodicity, now is sent every hour if it is detected

Fixed, the apx-ndm-cipia configure respones, it was not generating a valid json
Fixed, the syrus-ndm app finalized unexpectedly when cipia was not fully configured
Fixed, the mechanism to rotate file events in internal memory when only cipia is used

Apex 22.50.2 BETA 2022-12-16


  • Added, a instruction to force RMC valid field to 'V' when speed is empty. It is a bug found in the quectel GNSS
  • Added, a publication to notfy that the last onewire-ID information were cleared
  • Added, an option to update peripherals full state
  • Added, support for EG915U
  • Added, the first version of apx-ndm-cipia, status option was included
  • Added, the first version of the ECU warnings module
  • Added, the instruction to fill the onewire-ID with zeros to the left
  • Added, the instruction to restart the Apex OS when the wifi driver fails to get the interface up
  • Added, the instruction to set the gps engine in syrus lite apex tool
  • Added, the mechanism to detect when a network device is connected/disconnected
  • Added, the mechanism to detect when a video device is connected/disconnected
  • Added, the mechanism to update the full system state with informacion about the state of the network devices connected to syrus
  • Added, the udev rule to support the EG915 modem series


  • Changed, the apx-onewire tool help format


  • Fixed, sometimes the onewire application does not start correctly due to a problem with the optimization flag
  • Fixed, the gps state initialization, it was configuring XM1110 instead of LC86L for syrus lite
  • Fixed, the instruction to escape special characters


  • Improved, application debug for catching acceleration issues
  • Improved, the modem test in production for syrus lite
  • Improved, the way in configuring cipia, now it is done by demand
  • Improved, the way to get the modem imei in the provisioning test

Apex 22.46.1 2022-11-25

Recommended SyrusJS version 1.45.3


  • Added, a mechanism to restart the OS when syrus-watcher crashes, this is a workaround to avoid the OS blocking when connection is not stable
  • Added, some instructions to avoid sending messages and opening MQTT connections when the device has not internet access
  • Added, the instruction to activate the buzzer in production, it is used to indicate that the device test can be started
  • Added, the instruction to configure default gateway when USB is connected, it is for using the USB as internet interface
  • Added, the instruction to return outputs to default state after ending apx-bist
  • Added, the instruction to set the timestamp file. This file is used for controlling the buzzer in production
  • Added, the mechanism to avoid evaluating time windows if the system clock is not sync


  • Changed, the syrus-watcher service watchdog time from 120 to 300, the mqtt send message function does not return faster when the device does not have connection with the MQTT server


  • Fixed, a security issue, now the time-windows tool only allows apex commands
  • Fixed, the microcontroller update was started in the first start after flashing the OS


  • Improved, apx-bist-lite accelerometer test
  • Improved, the time-windows tool help

Apex 22.44.1 2022-10-31

Recommended SyrusJS version 1.45.3


Apex 22.28.1 (2022-07-14)

Recommended SyrusJS version 1.36.0 (Compatible with version 1.34.0 or newer)


  • Added, apx-ext-memory status option without optional arguments.
  • Added, Cipia version to the apex global state.
  • Added, motion by accelerometer as an anti drift filter variable
  • Added, the apx-shutdown script for setting a file with the last timestamp. It helps the system clock to not go back when the clock is unsynchronized due to electrical resets or system updates.
  • Added, the apx-video option to set/get the ID for the cipia device.
  • Added, the apx-video option to start a cipia update.
  • Added, the instruction to limit the HDOP, PDOP and VDOP to 9.99 as max value.
  • Added, the instruction to read the value of motion used for GNSS filtering.
  • Added, the instruction to update external memory information when the system starts.
  • Added, the mechanism to add hidden SSIDs in the apx-wifi tool
  • Added, the mechanism to calculate acceleration and trigger notifications. It was done in the GNSS application
  • Added, the mechanism to check if the external memory is running out of space.
  • Added, the mechanism to delete older files in /data/logs.
  • Added, the mechanism to format external memories when they can not be unmounted. It causes the system to be rebooted two times.
  • Added, the mechanism to set system time when the OS is updated. It avoids the system clock to go back in time.
  • Added, the mechanism to support lazy videos.
  • Added, the mechanism to update the external memory information as soon as it is inserted/removed. It is reflected in the global system state.
  • Added, the mechanism to update the geofence state that is included in the global system state.
  • Added, the patch to change the wifi warning level when BA sessions are exceeded.
  • Added, the support for video links. They are used when two or more clips are created in less than 10 seconds.
  • Added, will now send messages to Syrus Cloud when Cipia FS10 errors are detected.


  • Changed, some variable names for apx-bist which are reported to Syrprod. It was done for syrus lite.
  • Changed, the MQTT QOS from 1 to 2. It was done in the application used for sending diagnostic messages to syrus-cloud.
  • Changed, the number of decimal used in GNSS publications.
  • Changed, the user permissions for apx-eeprom, apx-ecu, apx-geofences, apx-onewire and apx-video. syrus4g user was using them without sudo.
  • Removed, the mechanism that avoids updating the system state in a time window of 30 seconds


  • Fixed, add_camera command did not work if the config file had an empty json object.
  • Fixed, an error reading the hdop threshold for the GNSS filtering algorithm.
  • Fixed, create_clip command, sometimes the instruction were not executed due to a C pointer issue.
  • Fixed, issue where NDM would edit WiFi config sent to Cipia FS10 when its not supposed to.
  • Fixed, the apx-video update_list and status command when cipia is in the config file but it is not initialized
  • Fixed, the initialization to auto-stop the accelerometer calibration process after 2 hours, it had not taken into account if the process was already started.
  • Fixed, the initialization when a camera is not available. It was not retrying.
  • Fixed, the instruction to change the external memory properties did not return if it had vfat as file system.
  • Fixed, the mechanism to update video list for cipia and movon.


  • Improved the mechanism to restart the system by the wifi driver crash
  • Improved, diagnostic messages when OS is updated.
  • Improved, the apx-video options when camera is not available or the config file is empty or not exists.
  • Improved, the debug when evaluating GNSS filtering.
  • Improved, the mechanism to update the clips data structure.
  • Improved, the mechanism used to concatenate json state files in the global system state.

Apex 22.23.3 (2022-06-09) - Latest

Recommended SyrusJS version 1.36.0 (Compatible with version 1.34.0 or newer)

  • Added, in the DNS setting command when mobile network is used
  • Added, apx-bist for syrus4 lite
  • Added, GNSS simulation mode
  • Added, IMU autocalibration diagnostic messages to cloud
  • Added, logrotate tool
  • Added, nmea-log mode. It writes raw nmea frames to file
  • Added, reboot instruction by redis not available and redis clients limit
  • Added, the mechanism to cancel the IMU autocalibration mechanism after 2 hours of being trying
  • Added, the mechanism to check low battery
  • Added, the mechanism to delete data/uploads files when more than 10 are stored
  • Added, the mechanism to reboot the system when wifi driver is broken
  • Added, warning message in case the external device for saving videos wasnt ext4
  • Added, wl18xx-fw_8. Now this firmware is used for wl18 module
  • Changed, Bluetooth now publishes a JSON message instead of ENABLED/DISABLED when notifying the mode to be used.
  • Changed, Bluetooth tries to restart internal engine ten times before giving up and no longer retrying to initialize it.
  • Changed, Debug off in apx-geofences
  • Changed, In evaluate geofences function fast_cos was replaced by c library cos. It was causing to report fake geofences events
  • Changed, the file system used in formating external memories, now ext4 is used
  • Changed, the initialization sequence in order the "apex os started" message is the first message to be queued when initializing
  • Fixed, an error message was returned by apx-video status when folders were not created and the OS update was started
  • Fixed, interface application was broken due to an unexpected redis message
  • Fixed, some memory leaks in the main geofences app
  • Fixed, some memory leaks in the main GNSS app
  • Fixed, the apps manager section in the User Interface
  • Fixed, the phone-book list when numbers include +
  • Improved, Bluetooth Now properly detects i2c components controlled by drivers/modules.
  • Improved, the back-off mechanism to recover mobile connection when DNS resolution is blocked
  • Improved, The interface now checks battery status on application start up instead of 60s later.
  • Improved, the mechanism to report device diagnostics and system updates to syrus cloud, now the state is included in the diag message
  • Improved, the modem IMEI parsing
  • Improved, the queue process for clips, now software links are created when two or more videos are requested at the same time

Apex 22.17.1 (2022-04-29) - Latest

Recommended SyrusJS version 1.36.0 (Compatible with version 1.34.0 or newer)

  • Added, fuel sensor mode to serial tool
  • Added, now one pipeline is used for record and streaming
  • Added, restrictions to h265 - dashcam,
  • Added, the apx-serial-fs fuel sensor tool
  • Added, the apx-serial-rfid tool
  • Added, the first version of the rfid reader
  • Added, the option in apx-wifi to connect to a wifi network preconfigured
  • Added, the option in apx-wifi tool to manually configure the wireless interface
  • Added, the rfid mode to apx-serial
  • Changed: Now checks target Cipia-FS10 MAC before attempting to set up WiFi and hotspot to reconfigure Cipia-FS10. This is done to allow everything to work when Cipia-FS10 and S4G is connected to an external AP. Requires that Cipia-FS10 knows the IP given to S4G by the AP
  • Enabled, some debug features in mosquitto broker
  • Fixed, the clips list were not correctly updated after creating more than 2 clips at the same time
  • Fixed, the memory leak caused by popen in syrus-watcher
  • Implemented, NDM now changes the connection status of Cipia-FS10 whenever the device connects to our MQTT broker. This broker requires a custom configuration file that allows logging and sends log information to a SYS related topic. Also, handles when Cipia-FS10 disconnects from the MQTT broker. Sends connection status to ndm/notification/cipia/update and updates video_current_state
  • Implemented, support for H265
  • Implemented, the option to remove the information about the last ibutton read.
  • Improved, Core now must fail 5 times before sending to cloud an alert that it failed to set up onewire drivers/modules
  • Reduced, the memory limits for the watcher service

Apex 22.12.4 (2022-03-28)

Recommended SyrusJS version 1.36.0 (Compatible with version 1.34.0 or newer)

  • Added, a mechanism to validate IMSI and SIM card ID
  • Added, a new mechanism to avoid parsing not valid frames. The parse of not valid frames was causing memory leaks in syrus-gps
  • Added, new BIST command for the provisioning of S4GLite.
  • Added, redis publications when video streaming is used
  • Added, the interactive API documentation to the UI
  • Added, the mechanism to restart redis connection when the command to consult the redis queue returns empty. It fixes a synchronization issue between syrus-watcher and syrus cloud
  • Added, the option to configure the LTE communication module in data only mode
  • Changed, no longer attempts to change system time with microcontroller reference when returning from PSM.
  • Changed, removed the function that would attempt to set up the CAN interfaces. This function was causing ecuS4 to fail on S4GLite.
  • Changed, the stop streaming message sent to cloud
  • Deprecated, apx-bt list_paired
  • Disabled, audio for hikvision dashcams
  • Disabled, the debug for gpios when kernel starts
  • Fixed, clips-supervisor memory leak and the number of subprocess it generated
  • Fixed, from - to option in video update list
  • Fixed, the ADAS buzzer implementation for S4GFull.
  • Fixed, the calculation of the video.conf.json hash, the core app was including an extra \n to the file
  • Fixed, the clip status command was not returning the cipia seatbelt event
  • Fixed, the dependency to Redis being functional. Application should no longer crash when Redis is unavailable.
  • Fixed, the reference to add 100 to the nmea year
  • Fixed, the UI was not returning error when formatting a non existing SD card
  • Implemented, able to disable buzzer or ADAS buzzer depending on hardware type.
  • Implemented, considers S4GLite hardware limitations where less inputs and outputs exist. This also applies for entering and exiting PSM.
  • Implemented, increased the number of input_events saved from 99 to 500.
  • Implemented, now interface is able to know if it is running on a S4GLite or S4GFull based on microcontroller version and if it discovers an RTC I2C component.
  • Implemented, partials in video update_list
  • Implemented, the S4GLite buzzer through GPIO.
  • Improved, the way in which the gps application publishes the current time
  • Removed, the "was accepted" message when configuring PSM mode
  • Removed, the wrong message when setting the ethernet route

Apex 22.10.3 (2022-03-08)

Recommended SyrusJS version 1.36.0 (Compatible with version 1.34.0 or newer)

  • Added, a mechanism to check the state of a cloud script process and return a response
  • Added, a mechanism to discard duplicate messages sent by cloud
  • Added, Cipia UnfastenedSeatbelt event
  • Added, clips-supervisor application
  • Added, diagnostic messages when a cloud script does not return after 10 minutes
  • Added, DriverDistraction and DriverDrowsiness Cipia events.
  • Added, retry streaming case when “linking failed” error is found caused by the unavailability of audio on the selected camera
  • Added, the instruction to flush the sms inbox when modem application starts
  • Added, the instruction to release resources when the video application is recording and an Apex upgrade is started
  • Added, the stream id to the apex command that starts the streaming, it is a mandatory parameter
  • Added, upload, view, and download extra menu items in shared accelerometer
  • Changed, the apx-mdm tool, now it uses flags
  • Changed, the tcp port range used for applications to instance control. Now it is above 61100
  • Changed, the time that video application sleeps when idling
  • Changed, Uses the Cipia-FS10 event string sent in lieu of unknown_event when encountering an event that is not recognized.
  • Fixed, apx-video status bug when ext. device isn't mount
  • Fixed, bug in adding a clip to the queue when camera name is included in the command.
  • Fixed, bug when clip is queued and CLIP_IN_PROGRESS is stored instead of CLIP_QUEUED.
  • Fixed, bug where the maximum size for the event folder is not sent when calling apx-disk_cleaner
  • Fixed, Cipia default configuration in shared video component (hotspot key to true).
  • Fixed, gps were not publishing updates when the Quectel gnss module has not valid data
  • Fixed, rm_camera bug when the “name” key is in another position.
  • Fixed, some modem parameters were not updated after returning from airplane mode
  • Fixed, The command used to edit cipia_fs10.settings.json.
  • Fixed, the option to add and remove wifi networks when they include spaces
  • Improved the way to manage run cloud scripts, the application was broken with heavy processes
  • Improved, apx-core update and install, now the repository file is erased before updating
  • Improved, connection error timestamp were not cleared when ppp interface was not used
  • Improved, the apx-video status command, now it returns faster due to the improvent in consulting the history range
  • Improved, the mechanism to switch from SOC to MDM audio
  • Improved, the size of the libraries used by api and UI
  • Improved, the way to delete sms already processed
  • Improved, the way to report "cloud script executed"
  • Improvedt, now the gps application uses the system clock when there is not valida nmea data
  • Removed, disk-cleaner, gsoap, gstreamer-libav and gstreamer-rtsp-server. It caused a reduction of 12Mb in the apex output file
  • Removed, the instruction to set the system time when the apex os is restarted
  • SC-0054:(feat) Accel - Added long options to apx-imu
  • SC-0056:(feat) Accel - Integration of Accel shared component in UI

Apex 22.05.3 (2022-02-04)

Recommended SyrusJS version 1.36.0 (Compatible with version 1.34.0 or newer)

  • Added, the backlog mechanism
  • Added, the mechanism to configure Caredrive MR688 parameters
  • Changed, some keys in the json output when apx-video status is used
  • Fixed, some bugs on video create_clip command
  • Fixed, the airplane mode state were not updated when the application changed its state
  • Implemented, a failsafe mechanism for the bluetooth service
  • Implemented, a mechanism to queue message broker messages that are to be later sent
  • Implemented, several Cipia FS10 events
  • Improved, the apex serial console when the command finishes by something different from LF

Apex 21.51.3 (2021-12-23)

Recommended SyrusJS version 1.36.0 (Compatible with version 1.34.0 or newer)

User Interface and API

    • Video, filter dates method changed to apx-video update_list
    • ECU, add option to read while vehicle is OFF flag
    • ECU, add ecumonitor.conf file if not exists
    • System, new Format/Erase dialog
    • System, added information on the external memory usage
    • Accelerometer, adjust milli-G labels for mobile
    • Power Saving Mode, add field validation to awake time
    • Bluetooth, improvements while scanning and unpair process
    • App, added version in about section
  • Added, the instruction to restart the gps service when apx-gps restart is executed
  • Implemented, ECU now uses a new key to allow reading from CAN network regardless of ignition state. The new key to be added to ecumonitor.conf is READ_WHILE_VEHICLE_OFF
  • Improved, the modem initialization routine, some devices have a delay in the modem power on and it causes the application to break up
  • Changed, in command apx-video update_list, new functionality was added to recover the information about the "history" folder if the argument "–include_history" is set, the arguments "–from" "–to" must be set

Apex 21.50.2 (2021-12-14)

Recommended SyrusJS version 1.36.0 (Compatible with version 1.34.0 or newer)

  • Added, "cipia_config" command in apx-video, this allows users to modify the cipia configuration file passing the JSON key and the value, for example: apx-video cipia_config --key=WifiSettings.Password --value=syrus1234
  • Added, in syrus-mdm the instruction to change to data centric mode
  • Added, publication messages to redis during accelerometer calibration process
  • Added, the apex tool to read and write the eeprom memory
  • Changed, timeline mechanism in apx-video, now it reads and process the data extracted from the redis hash “video_history_cameraname”, creating a json output with the ranges available in the history
  • Fixed, Bug in syrus-video create_clip in "--from --to" mode when one camera doesn’t have a history folder
  • Fixed, Bug in syrus-video diagnostic messages that did not include the clip name
  • Fixed, in syrus-mdm the routine to restart the no connection time variable
  • Fixed, the audio channel switch when incoming calls, the BT speaker was not connected again
  • Improved, in syrus-mdm the initialization when sim card is not inserted, the SMS commands returned error
  • Improved, the accelerometer calibration process, now it doesn't have an strong dependency on GNSS

Apex 21.48.1 (2021-12-03)

Recommended SyrusJS version 1.36.0 (Compatible with version 1.34.0 or newer)

  • Fixed, hotspot - Terminal app change internet source
  • Fixed, mobile - Airplane mode, not connecting.
  • Fixed, bug with power save mode field validations in Syrus 4 UI
  • Fixed, bug with Wifi - Add/Remove networks with spaces

Apex 21.47.1 (2021-11-24)

Recommended SyrusJS version 1.36.0 (Compatible with version 1.34.0 or newer)

  • Added, a new functionality in the UI to format the SD card
  • Added, an instruction to avoid starting the GNSS configuration routine if the Quectel device is being used.
  • Added, supports for configuration files with cipia cameras.
  • Added, the destination phone number used by voice call and SMS to the modem status
  • Changed, Added the device type to the JSON published through Redis for MDSM7 events.
  • Changed, The list that MDSM7 protocol uses is no longer fatigue_mdsm7_events. Now it is ndm_fatigue_events.
  • Fixed, Bug in "set" and "status" when an external device is just formatted.
  • Fixed, Bug in "timeline" when type is not included in the config file.
  • Fixed, Bug in create_clip in "--from --to" mode when one camera doesn’t have a history folder.
  • Fixed, Bug in diagnostic messages that did not include the clip name.
  • Fixed, the way to get the name of the parent command
  • Implements, Cipia-FS10 protocol to parse DMS events and saves videos related to particular DMS events.
  • Implements, Mosquitto based clients that will extract data once subscribed to a Mosquitto MQTT broker.
  • Improved, Stream pipeline changed for only video.
  • Improved, the diagnostic messages when sim card is changed
  • Improved, the initialization of the redis service, it includes to set the redis db folder owner
  • Improved, the LAC and CID parsing
  • Improved, the syrus-mdm app in order for it to not restart so frequently (It causes the gps not to be available during the reset)
  • Improved, the UI video section

Apex 21.43.1 (2021-11-04)

Compatible SyrusJS version 1.34.0 or newer

  • Improved, video create_clip command and ending videos
  • Changed, now appends the name defined in ACCESSORY_TYPE key to the unique ID regardless of the protocol section used if a name is used.

Apex 21.42.1 (2021-10-04)

Compatible SyrusJS version 1.34.0 or newer

  • Fixed the ssl issue which caused the Apex OS updates to fail
  • Enabled, the validation of the ssl certificate when downloading files for updates
  • Added, start-shell and send-message as new options in the syrus-apps-manager tool
  • Improved, the BIST modem test
  • Improved, the BIST rs232 test
  • Added, an option to set the data files structure when device starts for the first time
  • Changed, the state key value in the status response; now it is lowercase, it was done in apx-ethernet, apx-wifi, and apx-hotspot tools
  • Improved, the mechanism for restarting the SOC when a device is under-provisioning. Microchip 1.0.12
  • Added, openssl to Apex OS
  • Added, disk cleaner
  • Changed, the size of the APEX partitions in order to have more space on the operating system. It is only done on devices provisioned with SD card or Syrprod
  • Changed, The UI and the syrus API to support the breaking changes in BT, WIFI, HOTSPOT and ETHERNET sections
  • Changed: apx-bt now accepts getopt --long option format arguments.
  • Changed: The format of what is printed within the apx-bt help message.
  • Implemented: Now can request a list of BLE connected and recently disconnected devices with the new action, apx-bt ble_status.
  • Changed: The redis channel from bluetooth/user_apps_console/MESSAGE to bluetooth/messages/user_apps_console.
  • Changed: The value of call-button to call.
  • Changed: The key of button-multiplier to action_multiplier.
  • Changed: The key audioroutedto to audio_routed
  • Added the mechanism to set apex clock when the OS is shutting down
  • Fixed the LAC issue in the json response returned by apx-mdm state
  • Implemented: syrus-ndm util_configure_ethernet now uses jsmn to properly identify if eth0 is enabled and if the correct ip is used.
  • Added, the Video Streaming mechanism
  • Improved, some video mechanisms.
  • Added, stream command to notify the core app for a start or stop the streaming.
  • Changed, 10 seconds were substracted in apx-video status and apx-video timeline from the "from" key value
  • Improved, notify and help in apx-video record command
  • Improved, the following apex tools in order them to receive flags; the help section was also changed and now every tool returns its version:
  • Improved, the status response returned by apx-hotspot status
  • Fixed, a bug in the initialization of video core application when the cameras array was empty in the config file
  • Fixed. the streaming state setting bug
  • Added, the initialization of disk_cleaner to monitor the video events folder space
  • Fixed, some details in the Bluetooth and video UI sections
  • Fixed: syrus-ndm util_configure_ethernet now properly handles when the ip field is empty from apx-ethernet status.
  • Fixed, dns and gateway were not properly read when returning apx-ethernet status
  • Fixed, the MENDER variable that specifies the available space in the root file system partition. It causes the root file system to have more available space

Apex 21.40.1 (2021-10-04) - Latest

Compatible SyrusJS version 1.34.0 or newer

  • Due to an SSL incompatibility issue, the following release (21.40.1) was created. To update you must use the following command:
$ apx-os-update force
  • Fixed, apx-video tool was not adding cameras
  • Fixed, video application was crashing after removing cameras
  • Fixed, the performance issue when BT and Wifi were enabled at the same time
  • Decreased: the wl18xx interface clock from 50MHz to 5MHz
  • Improved, the way to restore the routing table when an interface becomes available
  • Improved, syrus-video diagnostic logs levels
  • Fixed, the compability of apx-ecu when it receives arguments
  • Removed, the validation of the ssl certificate when downloading the Apex latest version file
  • Removed, the validation of the ssl certificate when downloading a syrus cloud script
  • Removed, the validation of the ssl certificate when downloading the file that contains the latest version of a customer application
  • Added, the mechanism to check the wifi fallback when activated via apx-hotspot tool
  • Implemented: syrus-ndm now saves status related information in the Redis hash table video_current_state. The statuses saved are: DISCONNECTED, CONNECTED, and FAILURE_TO_CREATE_SOCKET
  • Implemented: syrus-ndm publishes a JSON containing the connection status, the ip from which the device connected from, and the port used to ndm/notification/mdsm7/update whenever mdsm7 connects or disconnects
  • Changed: In the JSON published when a syrus-ndm video clip is saved, the value of the key “state” was changed from ready to CLIP_READY
  • Changed: The name of the channel used to publish mdsm7 video clips related events is now ndm/notification/mdsm7/event
  • Improved, the nodejs start time, it was pre-compiled
  • Changed, the apx-wifi tool , now it accepts flags
  • Changed, the apx-wifi help information
  • Fixed, the error returning SSIDs with spaces at the end
  • Added, priority when adding a new wifi network
  • Improved, the apx-wifi status option, now it always includes the mac address
  • Changed, the apx-hotspot tool, now it accepts flags
  • Changed, the apx-hotspot help information
  • Added, the apx-hotspot option for starting a wifi fallback
  • Changed, the apx-ethernet tool, now it accepts flags
  • Changed, the apx-ethernet help information
  • Improved, the apx-ethernet status option, now it returns more information

Apex 21.37.2 (2021-09-21) - Latest

Compatible SyrusJS version 1.34.0 or newer

  • Improved wifi and bluetooth performance when both modes are in use
  • Improved, the way to check internet connection with ppp interface, now it is only tested if the ppp interface is being used
  • Added, the way to check if video camera supports audio
  • Added, audio to the video clips
  • Added, the mechanism to notify that the BT speaker call button was pressed
  • Fixed, hostname was not set when IMEI was not available. It happens when apex emmc is flashed
  • Fixed, the initialization of always on flag for syrus-watcher
  • Added, the integration of dashcam
  • APX0038: Improved, the routine to turn the modem on
  • Fixed, empty list error on wifi state
  • Improved, the value reported for cpu usage, sometimes it reported values above 100%
  • Added, config level to the apx-logger
  • Fixed, the re initialization of the gstreamer pipeline when it ended abruptly
  • Changed, the video application to support the new data structure in video file names
  • Changed, the format of the ECU configuration file
  • Added, the first version of network device manager. It supports mdsm-7 device for video events
  • Added, the apx-ext-memory tool for formatting external storage devices
  • Changed, the folder name where video events are stored
  • Changed, the UI ecu monitor section in order it to use the ECU monitor component
  • Improved, the UI Ethernet section
  • Improved, The apex system logs

Apex 21.28.1 (2021-07-14)

  • Removed, syrus-buffer-manager and syrus-event-manager
  • Added, driver for realtek USB-wifi dongle
  • Added, drivers for USB-Bluetooth dongles
  • Improved, file browser look and feel in the management tool
  • Added, the mechanism for reading ECU parameters in inverse order
  • Improved, the multi threading for gstreamer pipelines in syrus-video
  • Improved, the mechanism for taking clips in syrus-video
  • Fixed, the examples typed in the apx-watcher tool help

Apex 21.25.1 (2021-06-30)

Compatible SyrusJS version 1.32.11 or newer

  • Changed, the default time for switching sim card when no connection, it changed from 8 to 4 hours
  • Added, the way to change the BT advertise name
  • Changed, the default state of BT app, now it starts doing advertising during 5 minutes
  • Added to syrus watcher the mechanism for supporting always on connection with syrus cloud
  • Added the option for configuring always on flag for syrus watcher application
  • Added, the mechanism for restarting the hotspot mode when no clients are connected
  • Added, apx-ecu decode option for j1939 diagnostic codes
  • Added, ecu definition files for movon and mobileye
  • Added, the first version of video application, it includes the history buffer, the creation of video clips and the UI section. This is a BETA version
  • Added, apx-video tool
  • Added, PSM profile used by syrus cloud
  • Added, serial profile used by syrus cloud
  • Changed, the range of ip addresses that the hotspot assignates in automatic way. Now it is from to If the user needs to work with static ip address, the user can use from to
  • Added, gstreamer version 1.18.4
  • Reduced, the ping time for fatigue sensor, it changed from 5 to 2 seconds
  • Improved, ecu monitor application, now it includes the way to interact with can accesories (movon, mobileye, etc) based on the configuration file
  • Added, file browser in the UI section
  • Added, the mechanism for switching the network interface when the device losses internet access
  • Added, tree to the apex OS
  • Added, the motd for the ssh welcome message
  • Changed, the look and feel for ssh sessions
  • Added, ll as alias for ls -lF
  • Improved, the serial modem state response for being used by apx-system full_state
  • Increased, the max size of the response returned to syrus cloud, it changed from 2000 to 4000 characters
  • Added, the instruction to remove the hash code for geofences files when they are removed
  • Added, the instruction to set redis as owner of /data/users/redis after the OS upgrade

Apex 21.17.3 (2021-04-30)

  • Added, python3 and nodejs 12
  • MDT-001: The first commit of mdt application
  • Fixed, the state of the custom applications were not preserved between updates
  • Fixed, the format of the json returned by apx-about when an SD card was inserted and it had a folder called root
  • Added, mdns to the network configuration to support the network access using the hostname
  • Added, the md5 code for configuration files in the apx-system full-state option
  • Added, cronie, mdns, gsoap and x264 packages to the Apex OS
  • Added, redis monitor to the core instance in order syrus4g user can monitor the redis debug
  • Changed, the name and the path for ecumonitor configuration file
  • Fixed, a typo in the start/stop option for syrus-apps-manager
  • Added: A ping command that is to be used to maintain a keep alive connection between a BLE device and the Syrus 4 unit
  • Fixed: J1939 parameter parser now handles the case if there is no space between the value and the ‘:’ delimiter. Without this, ecumonitor would ignore the value and load nothing for the key for the parameter line
  • Changed: Ecumonitor no longer uses j1939_params file. Now it uses ecumonitor.conf file which is stored in the desktop for syrus4g user. /data/users/syrus4g/ecumonitor
  • Implemented: Constantly monitors ecumonitor.conf file and on any change done, it will calculate the MD5 hash of the file
  • Added, the ability for dispatching events depending on destination points in the event-generator and buffer-manager apps
  • Increased, the memory reserved for event-generator app
  • Fixed: The algorithm to compute the circular geofences was fixed. It was erroneously reporting the “inside” event.
  • Added: MD5 hash code calculation for the geofences files.
  • Fixed: Options “count”, “count namespace”, and “getall namespace” were returning the wrong number of geofences when there were namespaces with the same prefix (i.e. test, test3, test4)
  • Added: A maximum limit of 20kms for the radius of a circular geofence
  • Added: MD5 hash code for the geofences file that are manipulated through the apx-geofences tool
  • Increase the size of the namespace for tracking criteria. It was increased from 30 to 60 characters
  • Improved, the way to refresh data in the UI mobile section
  • Fixed, the json returned by apx-mdm state when the CID starts by 0
  • Changed: The name for the onewire white list file. Now they are ibutton.onewire.conf and temperature.onewire.conf respectively.
  • Implemented: Saves an MD5 hash of the onewire configuration files when any modification is experienced on any of these files.
  • Added, the option for sending data through the serial port
  • Increased, the memory reserved for watcher service. Now it is used for synchronizing syrus cloud profiles

Apex 21.12.2 (2021-03-24)

  • Added, Bluetooth as destination point and device console
  • Changed, the exit code returned by syrus-apps-manager when the application is already installed. Now code 0 is returned
  • Added, the cloud state to the device shadow
  • Added, syrus-apps-manager option to set a hash code for applications states
  • Added, geofences evaluation to event generator
  • Added, the way to add a custom script at the end of the apex initialization script
  • Fixed, error strings were not returned to syrus cloud console
  • Removed, ffmpeg
  • Added, lftp
  • Added, wvdial

Apex 21.10.4 (2021-03-15)

  • Fixed, UI ecu monitor section, some pgn values were not shown

Apex 21.10.2 (2021-03-11)

Compatible SyrusJS version 1.31.7 or newer

  • FS-001: Added, all the options to support fatigue_sensor mode
  • Fixed, the run cloud script was not returning the exit code
  • Added, the first version of syrus-event-generator
  • Added, the fisrt version of buffer manager
  • Added, the instruction for validating the min apex version when installing an application
  • Changed the syrus-apps-manager start/stop options, now it enables and disables the service
  • Fixed, big geofences files were not uploaded by using the UI
  • Fixed, the tts tool could remain returning audio in progress
  • Fixed, the reboot option when it was sent from a remote source, the OS stayed rebooting all the time
  • Added, fatigue sensor to the serial section in the UI
  • Added, ibutton and temperature on the onewire section in the UI

Apex 21.06.0 (2021-02-10)

  • Fixed, syrus-api was returning an error when no applications installed
  • Improved, the UI section to edit configuration files and check application logs
  • Improved, the port-forwarding tool, add and delete options were included
  • Improved, apx-system option to organize the data partition files, it also creates the /data folders structure. The option changed from set_owner to set_data_files
  • Fixed, apx-bt was failing to return the current state of the BT interface. It starts failing on apex-21.04
  • Added, nano and json-c to the apex OS
  • Added, the run-cloud-script tool used for syrus cloud to execute remote scripts

Apex 21.05.0 (2021-02-05)

  • Changed, the json key for reporting battery warnings to syrus cloud
  • Install the UI as syrus4g user
  • Install the syrus-api as syrus4g user
  • Added, terminal section in the User interface
  • Fixed, the syrus-apps-manager list-instances option
  • Changed, redis version from 5 to 6
  • Changed, the way to authenticate the redis connection for core applications
  • Fixed, documentation about send_sms option in the apx-mdm tool
  • Added, a condition for allowing syrus4g user to use systemctl for custom apex apps
  • Added, an instruction for allowing syrus4g to use port-forwarding tool
  • Added, apx-cfg package for adding some configuration files to apex OS
  • Added, syrus-apps-manager package. It is replacing the old apx-apps tool
  • Added, an option in the apx-system tool for setting the /data owner for syrus4g files
  • Deprecated, apx-apps tool, now it is installed as syrus-apps-manager as part of the syrus-apps package
  • Add an script for forwarding ports
  • Removed, iptables --flush in order it doesn't clear the port forwarding rules previosly configured
  • Changed, net-notifier as apx-tool application
  • Added, an instruction for calling the script that organizes the /data partition owner for syrus4g files. It is called when the Apex OS is updated
  • Changed, the instruction for setting the custom apps symlinks when the Apex OS is updated
  • Removed, [email protected] template and net-notifier from apx-start package
  • Add a new package for installing configuration files

Apex 21.03.0 (2021-01-24)

  • Implemented: A command to extract the status of the onewire core application. This command is status. Returns JSON with a value of 0 for normal operation and -1 for suspected error in the onewire bus.
  • Changed: The add function to properly disregard duplicate onewire devices so that they are not added to the white list.
  • Changed: Now the tool forces alias and device IDs to use lower case letters.
  • Implemented: A working remove functionality for the tool. This remove allows the tool to remove lines from the whitelist.txt regardless of their position also if the lines are terminated with CR+LF or just LF.
  • Changed: The way the reset function works within the tool. Tool now uses systemctl to restart the onewire core application instead of the core application calling systemctl inside itself.
  • Implemented: A command that returns the version of both the tool and the core application.
  • Changed: The order in which tasks for onewire state machine are done. This is done to avoid missing devices that are already connected to the onewire bus. This is because when loading onewire devices that are already connected when S4 restarts, not all of the connected devices appear in the list of w1_master_slaves. Resulting in missing devices that are connected, but not loaded into the onewire application. Set up for udev is now done before loading devices found in w1_master_slaves.
  • Implemented: The utility to call the apx-logger function to announce to SyrusCloud when a possible problem exists on the onewire bus.
  • Changed: When S4 restarts and a onewire device that was already connected to the onewire bus is detected again; the original connection epoch doesn’t get overwritten or lost.
  • Changed: Made it so that onewire information of the last connected device is saved differently so that the get_last function of the apx-onewire tool no longer depends on the onewire device existing in the white list.
  • Changed: Core application now correctly lets the tool restart the application.
  • Fixed: There was an issue that caused applications to get stuck in an infinite loop when the maximum number of onewire devices was reached.
  • Fixed: Application was not able to search its internal list when the maximum number of onewire devices was reached.
  • Added, netcat-openbsd for supporting unit sockets
  • Improve, README file in the apex yocto repository
  • Added, document in the apex yocto repository

Apex 21.02.0 (2021-01-14)

  • Fixed, the apx-serial modem state response when modem mode is not used
  • Improved, the UI mobile section for phone book
  • Fixed, the execution of syrus-cloud messages when the message length was greater than 100 characters
  • Added, apx-mdm restart command to execute a software reset
  • Deprecated, apx-mdm modem_reset command
  • Changed, the name of the redis channel used to receive the comand for restarting the modem device
  • Added, the redis notifications for publishing changes in the modem state variables
  • Added, a routine for updating the NO_CONN_TIME value returned by apx-mdm state command
  • Changed, the redis config files for disabling replicaof command
  • Added, mobile package to the syrus API




  • Fixed MDT serial callback for sending data to pegasus.


  • Added support for modem temperature in $modem.temperature and TS taip tag.
  • Added Support for speed limits in Geofences
    - @geofences.*.*.*.speeding                 - Triggers a speeding signal when devices enters any group, any geofence with any speed limit alias
    - @geofences.sites.*.entry.speeding         - Triggers a speeding signal when device surpass the entry speed limit in any geofence of the "sites" group
    -      - Only triggers a speeding signal when devices enters the specified group, geofence and speed limit alias

    - $                - State of the last geofence warning type (for now only speeding)   
    - $              - Status of the last geofence warning (active = true means outside speed limit)
    - $               - Speed limit alias of the last geofence warning (alias, km/h, heading start, heading end)
    - $               - Current speed of device
    - $             - Current heading of device
    - $               - Timestamp of geofence warning

Here's an example script for speed limits in geofences

  ################ Speed warning definitions ########################
  # Inside the geofences profile file 
  # Normal geofence
  define geofence privet_drive group=potter radius=100mts -89.718662,20.990475

  # Geofence with speed limits
  define geofence privet_drive group=potter radius=100mts speed_limits="uphill,20,90,270 downhill,80,271,91" -89.718662,20.990475

  ################ Speed warnings in geofences ######################
  define event all group=tracking ack=seq label=speeding code=21 trigger=@geofences.*.*.*.speeding

  define event only_group group=tracking ack=seq label=speeding code=22 [email protected].*.*.speeding
  define event geo_speeding group=tracking ack=seq label=geospeed code=23 [email protected].*.speeding

  define event uphill group=tracking ack=seq label=uphill code=24 [email protected].*.full.speeding
  define event downhill group=tracking ack=seq label=downhill code=25 [email protected].*.empty.speeding

  define signal sg_speeding $ == true
  define signal sg_notspeeding $ == false

  define event start group=tracking ack=seq label=started code=26 trigger=sg_speeding
  define event end group=tracking ack=seq label=finished code=27 trigger=sg_notspeeding



  • Fixed the device model for Syrus Lite devices



  • Removed the EcuImports.json download mechanism, handed responsability to APEX.



  • Added the $standard fieldsets to support S3 TAIP compatibility for 3rd parties platforms.
# Fieldsets add the following to add the desired tags. 
  - $standard  - REV202271319465+2099024-0897188000000032;
  - $label     - EVLBL=trckpnt; 
  - $io        - IO=314;
  - $dop       - DOP=110,80,80;
  - $battery   - BL=4058;
  - $analogs   - AW=0,0,,,,,,,0,,,,,,,;
  - $gnss      - SV=11;AC=0;SPD=0.12;
  • Added user signals for interaction with Pegasus console.
# Signals
  - $user_signal_{xx}     - From 00 to 99 triggered when an activate command arrives.

To activate the user signals send the following command from Pegasus console (last digit indicates active or inactive).
- Activate user signal #3: >SSSU031<
- Deactivate user signal #3: >SSSU030<

define signal usig3 $user_signal_03

define event ev_user_3 group=tracking fieldset=default ack=seq label=user3true code=48 trigger=usig3

define action ac_user_3_on trigger=usig3
    exec apx-io set OUT2 true

define action ac_user_3_off trigger=usig3,not
    exec apx-io set OUT2 false


  • Fixed serial destination buffering when an error in serial occurred.
  • Fixed EcuImports automatic download failing.


  • Improved ECU automatic download.



  • Fixed some issues on serial interface


  • Added support for 82 ECU OBD2 standard parameters
  • Added Taip tag JO for jamming detection
  • Added support for >STX< command to send data from and to Pegasus
  • Added the following signals and states to interact with the serial interface
# Signals
  - @serial.event         - Triggered when any data arrives to serial port
  - @serial.message       - Triggered when a message arrives in console mode
  - @mdt.message          -  Triggered when a mesage arrives in mdt mode

# States
  - $serial.mode          - The serial mode [ mdt | modem | console ]
  - $serial.message       - The last arrived console message in string
  - $mdt.message          - The mdt message string in hexadecimal or asci


  • Removed the Unmanaged serial mode
  • Console serial mode now supports Taip and syrus-apps-manager commands

Serial interface usage instructions

Make sure to use the latest apx-serial an syrus-serial packages using apx-core install syrus-serial

Serial as destination point

Use this feature to send Taip events to the serial port

# In destinations.syrus.conf add the following destination
define destination serial_destination taip serial://_._ ack=disabled

# Add the serial destination in the configurations.syrus.conf file
set destinations group=tracking pegasus,serial_destination

Send plain data from serial to Pegasus using an event

  1. Define only one of the following events depending on the serial mode
  define event incoming_mdt group=tracking fieldset=default code=91 [email protected]
  define event incoming_console group=tracking fieldset=default code=90 [email protected]  
  1. Send some data over the serial interface hellopegasus
  2. Watch it arrive to the Pegasus console "hellopegasus"

Taip over serial

  1. Enable serial console mode using apx-serial set --mode=console
  2. Send taip commands and watch the response >QPV<

Send data to pegasus using STX

  1. Use the command STX to send data >STXsomedata<
  2. Watch it arrive on the pegasus mdt console and rawdata "somedata"


  • CV fieldsets not showing if value = 0


  • Added a way to use the serial interface as destination point
  • Added support for TAIP commands over the serial interface


  • Bundled again version using esbuild


  • Unified MDT, Serial modem and Console callbacks.

Serial interface usage instructions

Make sure to use the lastest apx-serial an syrus-serial packages using apx-core install syrus-serial

Serial as destination point

  1. Use the following script in destinations.syrus.conf: define destination serial_destination taip serial://_._ ack=disabled
  2. And add it in configuration.syrus.conf: set destinations group=tracking pegasus,serial_destination
  3. Enable the unmanaged serial interface mode apx-serial set --mode=unmanaged
  4. See the TAIP events arrive to the serial terminal and send TAIP querys from the terminal >QPV<

To use the serial as MDT

  1. Enable the mdt mode apx-serial set --mode=mdt
  2. Set a for ascii or x for hexadecimal apx-serial-mdt set --type=a

To use the serial as a Satcom Modem

  1. Set the satcom destinations.syrus.conf: define destination satcom_destination taip satcom://_:_ ack=disable
  2. And add it in configuration.syrus.conf: set destinations group=tracking pegasus,satcom_destination
  3. Enable the modem mode apx-serial set --mode=modem

To use the serial to send data to the serial but not from the destination

  1. Enable the user mode apx-serial set --mode=user
  2. Send data apx-serial-user send --msg="somedata"

  • Minimum Apex Version: 22.44.1


  • Fixed TCP acks disabled bug (v1.50.0)
  • Fixed a bug with the definition of global counters (v1.49.2)
  • Fixed a bug with the unit conversion when setting a counter value (v1.49.2)
  • Fixed MQTT transmission error (v1.47.3)
  • Fixed caredrive not uploading photo bug (v1.47.3)
  • Fixed ble negative temperature bug (v1.47.3)


  • Added command for querying the FTP destination (>QXAFSA<) (v1.50.0)
  • Added support for TAIP user signals >SSSU0XY< (v1.50.0)
    • X: User signal number 0-5
    • Y: Desired state 1 = true, 0 = false
    • when true is sent, it sets $variables.user_signal_X = true
  • virtual ignition support (v1.48.1)
  • jamming detection (v1.48.1)
  • temperature value from modem (v1.48.1)
  • Bluetooth beacons docs (v1.48.1)
  • Added bluetooth status update (v1.47.3)
  • Added gnss.acceleration.mphs (v1.47.3)
  • Added support for ECU warnings (v1.47.3)
  • Added Support for BLE Gateway mode (v1.47.3)


  • Improved the application bundle to be lighter and more optimized
  • Improved the geofence state synchronization at startup (v1.50.0)


  • outputs are activated in sequence (v1.48.1)

Added Set/Update commands for counters

# Change/set thresholds settings
set counters globals speed_threshold=30
set counters globals begin_idle_time=2min
set counters globals rpm_threshold=700

# Change counter value 
set counters globals odometer=0
set counters globals ignition_time=0
set counters globals idle_time=0
set counters globals over_speed=0
set counters globals hard_brakes=0
set counters globals harsh_fwd_acceleration=0
set counters globals over_rpm=0
set counters globals distance=0

Added BLE Gateway (v1.47.1)

   - @ble.event                                   - Triggered at any ble event
   - @ble.(MAC or ALIAS).temperature.change       - Triggered when a change in temperature is detected
   - $ble.(MAC_ADDRESS or ALIAS).mac              - Device mac address
   - $ble.(MAC_ADDRESS or ALIAS).name             - Advertised name
   - $ble.(MAC_ADDRESS or ALIAS).alias            - Assigned alias
   - $ble.(MAC_ADDRESS or ALIAS).timestamp        - Scanned time
   - $ble.(MAC_ADDRESS or ALIAS).temperature      - Reported temperature value in degrees celsius
   - $ble.(MAC_ADDRESS or ALIAS).humidity         - Reported humidity value in percentage
   - $ble.(MAC_ADDRESS or ALIAS).movement         - Reported number of movements detected
###### BLE GATEWAY  ######

# -- Use apx-ble to add the desired BLE devices and enable continous scanning
# apx-ble add --mac=MAC_ADDRESS --alias=cooler
# apx-ble set --scan_time=60 --enabled=true

# -- Variables definitions
define variable movement
set variable movement 0

define variable temperature 
set variable temperature 0

# -- Fieldsets
define fieldset default fields=$io,$ble

# -- Signals - Used previously defined alias "cooler"
define signal sg_hightemp $ble.cooler.temperature > 20 
define signal sg_lowtemp  $ble.cooler.temperature <= 20
define signal sg_movement $ble.E7973F682A94.movement > movement

# -- Events - trigger only used on the action
define event ev_hightemp group=tracking ack=seq label=hitemp code=70 fieldset=tracking
define event ev_lowtemp group=tracking ack=seq label=lotemp code=71 fieldset=tracking
define event ev_movement group=tracking ack=seq label=mvnt code=72 fieldset=tracking

# -- Actions
define action ac_hightemp trigger=sg_hightemp
  set variable temperature {{$ble.cooler.temperature}}
  send event ev_hightemp
  speak "High temperature detected at {{$variables.cooler.temperature}}"

define action ac_lowtemp trigger=sg_lowtemp
  set variable temperature {{$ble.cooler.temperature}}
  send event ev_lowtemp
  speak "Low temperature detected at {{$variables.cooler.temperature}}"  

define action ac_movement trigger=sg_movement
  set variable movement {{$ble.E7973F682A94.movement}}
  send event ev_movement
  speak "Movement detected at {{$variables.E7973F682A94.movement}}"  


Added ECU Warnings (v1.47.1)

  - @ecu_warning.event                      - Triggered at any ecu warning event
  - @ecu_warning.(ECU_ID).(ECU_INTERVAL)    - Triggered only when the specified interval is reached 
##### ECU WARNINGS #####

# -- Signal Use the full description to assign to a signal name
define signal fuel_warning

# -- Event Use the signal name as trigger
define event ev_fuel_warning group=tracking fieldset=default ack=seq label=flwrng code=90 trigger=fuel_warning



  • Fixed, engine tire values reported when there's only 1 tire present
  • Fixed, queue and repeated tx bug
  • Fixed, mqtt transmission error



  • Changed taip acceleration transmitted from kph/s to mph/s

People counting camera

Added in SyrusJS v1.45.2, requires Apex: 22.43.0

Develop - Syruslang
Develop - System tool


Events (oneshot)

  • @people.adult_enter
  • @people.adult_exit
  • @people.children_enter
  • @people.children_exit
  • @people.requested
  • @people.start
  • @people.stop
  • @people.restarted
  • @people.cam_connected
  • @people.cam_disconnected
  • @people.daily_report
  • @people.weekly_report


  • $people.event
  • $
  • $
  • $people.children.enter
  • $people.children.exit
  • $people.adults_inside
  • $people.children_inside
  • $people.global_adult.enter
  • $people.global_adult.exit
  • $people.global_children.enter
  • $people.global_children.exit

define signal sg_pc_max $people.adults_inside >= 20

define event ev_pc_enter group=tracking fieldset=default 
	ack=seq label=pcenter code=60 
	[email protected]_enter

define event ev_pc_exit group=tracking fieldset=default 
	ack=seq label=pcexit code=61 
	[email protected]_exit

define event ev_pc_max group=tracking fieldset=default 
	ack=seq label=pcmax code=62 


Cipia signals for tampering

Added in SyrusJS v1.43.7, requires Apex: 22.38.1

  • Fixed Queue and repeated tx bug
  • Expanded Cipia fatigue sensor signals and events
  • Requires updated Cipia and ndm >= 0.4.4 (Cipia or newer & latest apex)

Develop - Syruslang


Events (Oneshot booleans)

  • @dms.cipia.event Triggered when any cipia event is detected.
  • @dms.cipia.fatigue_warning
  • @dms.cipia.fatigue_alarm
  • @dms.cipia.driver_changed
  • @dms.cipia.driver_missing
  • @dms.cipia.distraction
  • @dms.cipia.driver_identified
  • @dms.cipia.ignition_off
  • @dms.cipia.ignition_on
  • @dms.cipia.smoking
  • @dms.cipia.seatbelt
  • @dms.cipia.seatbelt_off
  • @dms.cipia.unknown_driver
  • @dms.cipia.tamper_alert
  • @dms.cipia.system_boot
  • @dms.cipia.system_boot_failure
  • @dms.cipia.system_ok
  • @dms.cipia.system_reset
  • @dms.cipia.system_error.event Triggered when any error event is reported.
  • @dms.cipia.system_error.emmc_failed
  • @dms.cipia.system_error.over_exposure
  • @dms.cipia.system_error.blurred_image
  • @dms.cipia.system_error.device_not_calibrated
  • @dms.cipia.system_error.power_lost
  • @dms.cipia.system_error.mcu_upgrade_ok
  • @dms.cipia.system_error.device_shifted
  • @dms.cipia.system_error.cable_disconected
  • @dms.cipia.system_error.overheat
  • @dms.cipia.system_error.gps_loss
  • @dms.cipia.system_error.sdcard_hw_malfunction


  • $
  • $
  • $fatigue_sensor.epoch
  • $fatigue_sensor.event
  • $
  • $
  • $
  • $
  • $
  • $

Time windows

Added in SyrusJS v1.44.0, requires Apex: 22.38.1


Events (Oneshot booleans)



  • $
  • $
######   TIME WINDOWS CONFIG   ######

define time_window working_hours 
	start=01/09/2022 end=30/09/2022
	from=08:00:00 to=17:05:30
	enabled=true state=false tz=America/NewYork

# -- Events
define event ev_start group=tracking fieldset=default 
	ack=seq label=started code=10

define event ev_stop group=tracking fieldset=default 
	ack=seq label=stopped code=11

define event ev_test group=tracking fieldset=default 
	ack=seq label=test code=12

# -- Actions
# (Driver state: Working) Wroking shift started  
define action start_working [email protected]_hours.start
	speak "Working hours started"
	send event ev_start

# (Driver state: Resting) Wroking shift ended  
define action stop_working [email protected]_hours.end
	speak "Working hours stopped"
	send event ev_stop

# (Driver state: TestButton) Test current shift time  
define action test_hours trigger=$io.in1
	speak "Testing time window {{$window.working_hours.state}}"
	send event ev_test


Video snapshots

Added in SyrusJS v1.45.3, requires Apex: 22.43.0


# -- Video events (same event different options)
define event ev_tamper group=tracking ack=seq label=tamper code=13 fieldset=tracking

# -- Video recording action @dms.cipia.tamper_alert
define action ac_braking_video trigger=sg_test
	set variable braking_video {{$gnss.timestamp}}-braking
	create video --name={{$variables.braking_video}} --time_win=-5,+5 --with_snapshot
	send event ev_tamper


Safely immobilize the engine

Added in SyrusJS v1.45.0, requires Apex: 22.39.0


Events (Oneshot booleans)

  • @seco.event Trigger when any seco event arrives
  • @seco.enabled Trigger when the feature mode in enabled (powered ON)
  • Trigger when the feature is waiting for correct moment to realize the engine cut off.
  • @seco.idle
  • @seco.canceled User canceled the activation
  • @seco.power_restored Output has been deactivated or the engine power restored
  • @seco.deactivated Output has been deactivated or the engine power restored
  • @seco.power_suspended Output has been activated or the engine power suspended
  • @seco.activated Output has been activated or the engine power suspended
  • @seco.activating Waiting for conditions to suspend the engine power (speed < 10kph for 20s)
  • @seco.waiting_no_motion Waiting for conditions to suspend the engine power (no motion for 5 min)
  • @seco.waiting_for_gps Safe conditions not met, either motion was detected or vehicle speed is above 10kph
  • @seco.periodic_report Periodic report, the SECO mechanism is running but waiting for safety conditions


  • $seco.enabled Safe engine cut off module enabled
  • $ Safe engine cut off feature actived
  • $seco.state Number of the current state (see apx-seco help)


  • enable seco Enables the safe engine module
  • disable seco Disables the safe engine module
  • start seco Start safe engine cut off, waiting for conditions for tunrn off motor
  • stop seco Stop safe engine cut off, enables the motor again

# (Driver state: Cutting motor)
define action test_seco_on trigger=sg_ign_on
	speak "Stopping Motor Safetly"
	exec apx-seco set --mode=enable
	exec apx-seco set --trigger=enable
	send event ev_seco_on

# (Driver state: Cutting motor)
define action test_seco_off trigger=sg_ign_off
	speak "Starting Again Motor"
	exec apx-seco set --trigger=disable
	send event ev_seco_off

# (Seco event arrived)
define action test_seco_ev [email protected]
	set variable eventNumber {{$seco.state}}
	speak "Seco event received {{$variables.eventNumber}}"



  • Added support for lazy videos
  • Fix for GPS Source & Age in TAIP messages
  • CSV (feature) - Added support for values with commas like BTT or BTP tags
  • Destinations (feature) - Added shortcut path to file destination, use $MEDIA_PATH or $USER_PATH to indicate /media/mmcblk0p1 or /data/users/syrus4g
  • Tracking (bug) - Fixed when setting tracking_resolution
  • Counters (feature) - Added support for counters based on any signal (count, elapsed time, and traveled distance)
  • Variables (feature) - Added support for increment and decrement variables

Expanded Counters Implementation

This feature gives the user a set of variables that accumulate when a certain signal stays true. So far is possible to get:

  • Number of times the signal occurred
  • Accumulated time (total time) in seconds
  • The difference in time since last event
  • Traveled distance (total distance) in meters
  • The traveled distance since the last event



  • $ Stores number of times a signal becomes true
  • $ Stores the total time a signal stays true, stops counting when false
  • $ Stores the time passed while a signal is true, reset count when false
  • $ Stores the total distance traveled while a signal is true, stops counting when false
  • $ Stores the distance traveled while a signal is true, reset count when false
  • $ Stores the counter state (true when counting)


  • start counters name Start/enable the counting function and listen for change in the selected signals
  • stop counters name Stop/disable the counting function, any change in the signals will be ignored
  • reset counters name Reset/restart the states values, like total_count, total_time, etc ...

# -- Definition     -  In the definition we relate any signal with the counter name, and start watching the signal (optional)
define counters name signal=sg_in1_on start=true

# -- Fieldsets
define fieldset default fields=$io,$gnss,CV01:$,CV02:$,CV03:$

# -- Signals
#    The signal to keep the count 
define signal sg_in1_on $io.in1
define signal sg_in1_off $io.in1 == false
define signal sg_limit $ >= 60

#    Reset when a minute active has passed 
# define action ac_stop_ign trigger=sg_limit reset counters name

# -- Event
define event ev_count_begin group=tracking fieldset=default 
	ack=seq label=cnt_begin code=200 trigger=sg_in1_on

define event ev_count_end group=tracking fieldset=default 
	ack=seq label=cnt_end code=201 trigger=sg_in1_off


Increment and decrement variables
This feature gives a way to increment or decrement a numeric variable, this is useful if we are just interested in the number of times a certain condition happens, or when we need to create logic for a number of retries



  • $ Stores the variable value


  • set variable name increment Increments the variable value by 1
  • set variable name decrement Decrement the variable value by 1
  • set variable name reset Set the variable value to 0
# -- Definition  - Create the variable and initialize it
define variable count
set variable count 0

# -- Signal
define signal sg_in1 $io.in1
define signal count_over $variables.count >= 10

# -- Actions
define action ac_increment trigger=sg_in1 set variable count increment
define action ac_reset trigger=count_over set variable count reset

# -- Event
define event ev_count group=default fieldset=fields label=resttart code=20 trigger=count_over



  • CSV protocol support
  • Stores in CSV format any fieldset
  • Automatic log rotation
  • Just create a destination and select protocol "csv"
  • define destination log csv file:///media/mmcblk0p1/file_csv

This feature prints into the file those fieldsets that contains data, then starts saving the events. So far, default extra values include "timestamp", "event_label" and "event_code".

define group accelerations
# -- Fieldsets
define fieldset default fields=$io,$gnss,$ecu,VO:$counters.globals.odometer,CE:$counters.globals.ignition_time

# -- Events
define event ev_accelog group=accelerations fieldset=default ack=seq label=accelev code=21 [email protected]

# -- Destination
set destinations group=accelerations log

# -- In destinations.syurs.conf select csv protocol ( default compress and rotate every day)
define destination log csv file:///media/mmcblk0p1/file_csv

#####  END CSV LOG CONFIG #####


Added black box gps event logging
Any file:/// type destination will now automatically log files on a folder that is autorotated and can be compressed based on configuration of the destination.

define destination logs taip file:///media/mmcblk0p1/gps_logs ack=disabled rotate=5D size=10MB compress=true


  • Fixed, bluetooth restarting syrusjs bug due a bad json
  • Fixed, backlog requesting acknowledgement from file destination
  • Added support for serial RFID reader
  • Added support for serial fuel sensor

RFID Reader


Events (Oneshot booleans)

  • @rfid.event Triggered when any rfid event is detected.
  • @rfid.change Triggered when the id changed.
  • Triggered when a card aproach the reader, even if it's the same id.
  • @rfid.authorized Triggered when the id is whitelisted.
  • @rfid.unauthorized Triggered when the id is not whitelisted.


  • $ Stores the last id.

  • $rfid.last.alias Stores the last alias.

  • $rfid.last.whitelisted Stores the last whitelisted state (boolean).

  • $rfid.last.conn_epoch Stores the last connection timestamp.

  • $ Stores the last authorized id.

  • $rfid.authorized.last.alias Stores the last authorized alias.

  • $rfid.authorized.last.whitelisted Stores the last authorized whitelisted state.

  • $rfid.authorized.last.conn_epoch Stores the last authorized connection timestamp.

    # Example of event whenever a card is aproached to the reader
    define fieldset default fields=RI:$
    define event ev_rfid group=tracking fieldset=default ack=seq label=rfid [email protected]

    TAIP - Extended tag

Serial Fuel Sensor


Events (Oneshot booleans)

  • @fuel.event Triggered when any fuel event is detected.
  • @fuel.state Triggered when a state arrives.
  • @fuel.fuelling or @fuel.fueling Triggered when a fuelling notification arrives.
  • @fuel.warning Triggered when a discharge warning notification arrives.
  • @fuel.connected Triggered when a transition from disconnected to connected is detected.
  • @fuel.disconnected Triggered when a transition from connected to disconnected is detected.​


  • $fuel.connected Stores the last connected state (boolean).

  • $fuel.level Stores the last fuel level (number).

  • $fuel.temperature Stores the last temperature level (number).

  • $fuel.frequency Stores the last frequency (number).

  • $fuel.timestamp Stores the last notification timestamp (epoch).

  • $fuel.event Stores the last event (string).

    # Example of event whenever a card is aproached to the reader
    define fieldset default fields=$fuel
    define signal sg_fuel_over $fuel.level > 100
    define signal sg_fuel_under $fuel.level < 10 
    define event ev_fuel group=tracking fieldset=default ack=seq label=over trigger=sg_fuel_over
    define event ev_fuel group=tracking fieldset=default ack=seq label=over trigger=sg_fuel_under

    TAIP - Extended tag
    ;FF added when fields=$fuel

v1.36.0 Latest

Compatible apx core versions

  Applications              (apps): 0.0.4-r0.1
  Bluetooth                   (bt): 1.1.9-r0.0
  Counters              (counters): 1.0.6-r0.0
  Disk Cleaner              (disk): 0.0.3-r0.0
  ECU                        (ecu): 2.0.4-r0.0
  Geofences            (geofences): 1.0.2-r0.2
  GNSS                       (gps): 1.4.3-r0.0
  Interial Measurement Unit  (imu): 1.1.2-r0.0
  Interface            (interface): 1.0.9-r0.1
  Modem                      (mdm): 1.5.3-r0.0
  Net Devices Manager        (ndm): 0.1.5-r0.0
  Onewire                (onewire): 1.0.2-r0.0
  Serial                  (serial): 0.2.3-r0.0
  Video                    (video): 0.4.2-r0.1
  Watcher                (watcher): 0.2.5-r0.5

Safe Engine Immobilization

  • added variable $safe_immo that is set to true automatically whenever Syrus4 receives the Safe Engine Immobilization command from Pegasus App. You could define a signal based on this variable and trigger your own logic
define signal safe_immo $variables.safe_immo

GPS Backlog

  • added support for GPS backlog (second by second event data recording)


Bug fixes

  • fixed a bug with the speak instruction, to make it compatible with other Languages rather than English
  • fixed a bug with the definition of variables that are not just strings


  • removed verbose logging for tpms tire parameters
  • defaults amount of GPS Satellites to 0 instead of leaving value empty

v1.34.1 Latest

Changes that bump up the Apex version

Compatible apx core versions

Applications              (apps): 0.0.2
Bluetooth                   (bt): 1.1.8
Counters              (counters): 1.0.6
ECU                        (ecu): 2.0.3
Geofences            (geofences): 1.0.2
GNSS                       (gps): 1.3.1
Inertial Measurement Unit  (imu): 1.1.1
Interface            (interface): 1.0.8
Modem                      (mdm): 1.3.5-r0.1
Net Devices Manager        (ndm): 0.0.8
Onewire                (onewire): 1.0.2
Serial                  (serial): 0.2.2
Video                    (video): 0.3.18
Watcher                (watcher): 0.2.5


  • Updated codebase to use new ECU.d structure, fixes an error with taip value for ecu_distance, tag ;OD
  • Support for mdsm7 fatigue signals (prefix with @fatigue_sensor. or @mdsm7.fatigue_sensor.)
  • camera_blocked
  • distraction
  • fatigue_alarm
  • fatigue_warning
  • phone
  • smoking
# either signal will work
define event fatigue_distraction fieldset=default ack=seq group=fatigue label=distract [email protected]_sensor.distraction
define event fatigue_distraction fieldset=default ack=seq group=fatigue label=distract trigger=@fatigue_sensor.distraction


  • BT destination point support define destination bluetooth_d taip bluetooth://_:_ ack=disabled
  • BT call button signals @bluetooth.button.call_2x @bluetooth.button.signal
  • BT destination points retry indefinitely until apx-bt returns successful, and messages are acknowledged where applicable

Signal, variable and value improvements

set [variable|value] [name] [value] infers type (true, false, number, string)

set variable new_var "lorem" or set variable new_var lorem

{{$variables.new_var}} = 'lorem'

set variable new_var "lorem ipsum"

{{$variables.new_var}} = 'lorem ipsum'

set value $gnss.latitude == 25.123456 (works for any non internal signal (non @ signals))

fire signal signal_name does not require @ as prefix


  • ;IB | ;IS: iButton Syrus 3 compatibility fix
  • ;EA: tag temperature field no separator
  • ;AW: tag sends empty value for analog input values instead of *, changed reported position of differential input1/2 in taip ;AW tag to position 9
  • >SSL... | >SXAEC::...: do not requiere an ;ID or ;SI when sent remotely to the device
  • >QSSIP#< fixed response
>SSLget events<
>SXAEC::apx-gps state<


  • http destinations respect url schema
  • long commands can be split into multiple lines
  • removed verbose logging for tpms tire parameters
define counters globals speed_threshold=100kph

define fieldset default

define action ac_start_ign_on trigger=sg_ign_on
	set tracking_resolution move 3min 35deg

define action ac_start_ign_off trigger=sg_ign_off
	set tracking_resolution stop 12hr
  • actions can have multiple commands (requires indentation)
define action ac_my_action trigger=ignitionOn
	set variable driver "john smith"
	set output2 on
	create video --name={{$gnss.timestamp}}_cornering_left --time_win=-30,+10



  • Improved ack support for TAIP/tcp, supported modes are imei(default), disabled and seq
  • ECU Errors, SPI, FMI, OC, SM and MIL supported
  • ECU events supports signals, see the respective pgn in the SDK ECU.d
  • ECU distance taip tag added missing multiplier
  • ECU added taip_multiplier to engine pressure values reported as kPa to convert to PSI
  • MOVON and Mobileye support, loaded from internal json files.
  • Fixed, queues are loaded in proper order
  • Improved callbacks for TCP


Fatigue Sensor support


  • @fatigue_sensor.fatigue_remind
  • @fatigue_sensor.fatigue_warning
  • @fatigue_sensor.fatigue_alarm
  • @fatigue_sensor.distraction
  • @fatigue_sensor.no_portrait
define event fatigue_remind fieldset=defeault ack=seq group=fatigue photo=fatigue_sensor.fatigue_remind label=remind trigger=@fatigue_sensor.fatigue_remind
define event fatigue_warning fieldset=defeault ack=seq group=fatigue photo=fatigue_sensor.fatigue_warning label=warning trigger=@fatigue_sensor.fatigue_warning
define event fatigue_alarm fieldset=defeault ack=seq group=fatigue photo=fatigue_sensor.fatigue_alarm label=alarm trigger=@fatigue_sensor.fatigue_alarm
define event fatigue_distraction fieldset=defeault ack=seq group=fatigue photo=fatigue_sensor.distraction label=distract trigger=@fatigue_sensor.distraction
define event fatigue_no_driver fieldset=defeault ack=seq group=fatigue photo=fatigue_sensor.no_portrait label=no_driver trigger=@fatigue_sensor.no_portrait
define event fatigue_photo_captured fieldset=defeault ack=seq group=fatigue label=photo

MDT support

  • @mdt.message signal is required on the trigger to use the message, it's recommended that you do not mix this with other signals
define event mdt group=mdt fieldset=default code=0 [email protected]
  • TAIP: STX is now reserved for MDT, use SSL for sending syruslang commands


  • false|true|Number are parsed as their respective types, not as strings (eg repeated=false)
  • min_duration improvements
  • improved signal propagation


TPMS support

Signals supported

  • @tpms.alarm_ok
  • @tpms.sensor_mute
  • @tpms.sensor_defective
  • @tpms.tire_leak
  • @tpms.temperature_warning
  • @tpms.over_inflation_critical
  • @tpms.over_inflation_warning
  • @tpms.under_inflation_warning
  • @tpms.under_inflation_critical