All pages
Powered by GitBook
1 of 39

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

AsRock BIOS Update Procedure

AsRock BIOS Update Procedure

Applies to motherboard models starting with “IMB-…”, “NUC-…” and others. If unsure, please contact OnLogic Tech Support.

Warning: Never interrupt a BIOS update. If the update is interrupted, the system may become irreparable. Damage caused as a result of BIOS updates may not be covered by the system’s warranty.

596KB
AsRock-BIOS-Update.pdf
PDF
Open

Operating Systems

Windows

Linux

Firmware / BIOS / Drivers

How-To's

Access step-by-step guides for configuring, updating, and maintaining your system.

Cincoze URM01 Rackmount Adapter Installation

Installation Guide for Cincoze URM01 rackmount adapter kit (8.4" to 21.5" Panel PCs)

Installation Guide:

404KB
Cincoze Rack Mounting Kit - Installation Guide.pdf
PDF
Open

More

Creating a MS-DOS bootable flash drive

Guide to creating an MS-DOS bootable flash drive using Rufus for tasks like BIOS updates, and how to boot from it.

Booting MS-DOS from a USB drive can be useful for applying BIOS updates and other tasks.

Required Tools

  • USB flash drive (32GB or smaller)

  • A Windows 7/10 PC

Creating the drive

  • Download the Rufus tool from

  • Launch Rufus

  • Under “Device” select your USB drive

  • Under “Boot selection” choose “FreeDOS”

  • Click START at the bottom of the window

  • Double check you have selected the correct drive and press OK to proceed

  • When the status bar says READY, the process is complete

  • Copy any files you will need in DOS to the flash drive. If you are applying a BIOS update, copy those files now.

  • Eject and unplug the flash drive

  • Connect the flash drive to the target PC and power it on. Go into the BIOS (Typically F2/Del/Esc) and set it as the primary boot device.

  • On newer systems, it is necessary to enable CSM / legacy boot mode as shown.

  • If successful, you will be greeted with the familiar old DOS prompt.

  • Use the dir command to confirm what files are on your USB drive.

  • Update .bat files can be executed by typing the filename.

Firmware Update Guide

Applicable to: K300 / K700 series systems

OnLogic offers a simple utility for updating the microcontroller firmware on your Karbon 300 or Karbon 700 series computer. You can find versions for both Windows and Linux systems below.

Note: You can also update your system firmware using the ‘s ‘update’ subcommand.

Binary Version
Link to Download
Changelog

MCU Firmware Update w/ ZMU

Guide to updating microcontroller (MCU) firmware using the ZMU utility on Windows and Linux systems.

You can use this process to install updated microcontroller (MCU) firmware on your model system. You will need the updated Microcontroller firmware, which is available on the specific system’s page. Make sure to download the Microcontroller firmware before proceeding.

Download the ZMU utility for deploying the updated microcontroller firmware

  1. Download the ZMU utility with the link above and copy zmu-windows-x86_64.exe from it to the desktop.

USB PD Firmware Update

Guide to updating USB PD firmware using the TI TPS6559x utility, including download and installation steps.

1. Download and run the firmware update utility from the link above.

2. Download the firmware binary from the link above and click the Browse button to select it to install. The example image is for version 0.3.7, but your version may be different.

3. Select the firmware file and click the Update button.

K800 Series Power Sequence MCU Firmware Update

Guide to updating power sequence microcontroller (MCU) firmware using the Cobalt Power Sequence Updater utility on Windows and Linux.

You can use this process to install updated power sequence microcontroller firmware on your model system. You will need the updated power sequence microcontroller firmware, which is available on the specific system’s page. Make sure to download the power sequence microcontroller firmware before proceeding.

Downloads

Download the power sequence update utility for deploying the updated power sequence microcontroller firmware.

Updating Firmware on Windows

Touchscreen Driver Installation (Linux)

Guide to installing touchscreen drivers on Ubuntu Linux for specific touchscreens requiring additional drivers, including download and installation steps.

Some touchscreens require additional drivers to work on Ubuntu and similar OS distributions. This page will guide you through the installation.

Download the driver files from the following link and save to the downloads folder.

Use the tar command to extract the archive. Tip: Type “tar -zxvf eGT” and press tab. The rest of the filename will be autofilled.

CD into the newly created folder.

use chmod to make the setup.sh file executable and then run it with ./

System Serial Number Retrieval

How to locate your system's serial number via physical labels or software commands

The OnLogic serial number can be found on a label applied to the bottom of the system, or the rear of the display for Panel PCs. Our serial numbers will begin with U or E, followed by 6 digits.

Since 2018, OnLogic has written the serial number of the system into the SMBIOS data on all products except for Raspberry Pi systems (i.e the Factor Series). This means that the serial number can be retrieved without physically looking at the unit. This can be useful if the system is deployed in the field or mounted in an enclosure.

*Note that the Factor Series systems (FR201 and FR202) do not have a BIOS or SMBIOS, and do not support the below software commands. The systems’ serial number need to be identified via the physical label on the bottom of the case.

Open CMD from the start menu and run the following commands. One of them should return the correct serial.

Run the following commands in terminal.

OnLogic Warranty Repair Process

This guide outlines the steps for returning your OnLogic system for warranty repair.

Contact our Technical Support team via phone or email, providing your system's serial number (starts with U or E, followed by 6 digits) and details of the issue. We may offer remote troubleshooting or ask for more information.

  • United States:

    • (802) 861 – 2300

Download the power sequence update utility with the link above and copy cobalt_pwrseq_updater-windows-x86_64.exe from it to the desktop.
  • Copy the firmware to be installed to the desktop.

  • Check the COM port number in Device Manager which Hardware Ids value is "VID is 0x353F & PID is 0xA101".

  • Open a command prompt (press Win+X then I, or open the Start Menu and type “cmd”), then run the following commands (replace “<firmware.bin>” with the name of the firmware to be installed, "COMx" with the COM port number shown in Device Manager):

    • cd %HOME%\Desktop

    • cobalt_pwrseq_updater-windows-x86_64.exe COMx <firmware.bin>

  • Once the update is completed, fully shutdown the computer (not just a Restart). Turn the system back on, and the update is now completed.

  • Updating Firmware on Linux

    1. Download the power sequence update utility with the link above.

    2. Open a command and run the following commands (replace “<firmware.bin>” with the name of the firmware to be installed and [X] with the tty port tied to your system's MCU - typically ttyACM0):

      • unzip ~/Downloads/pwrseq-updater.zip

      • chmod +x cobalt_pwrseq_updater-linux-x86_64

      • cobalt_pwrseq_updater-linux-x86_64 /dev/tty[X] <firmware.bin>

    3. Once the update is completed, fully shutdown the computer (not just a Restart). Turn the system back on, and the update is now completed.

    Power Sequence Update Utility v1.0.0
    4. Restart to finish the update process.

    Downloads

    Firmware Update

    TI TPS6559x Firmware Update Utility
    TPS65594 Firmware Version 0.3.8
    The tool shows the current firmware version when run
    A file selection dialog appears to choose a firmware file when the Browse button is clicked
    After updating, a window appears to indicate success
    After the update, the tool shows the new firmware version

    Booting to the drive

    rufus.ie
    Copy the firmware to be installed to the desktop.
  • Open a command prompt (press Win+X then I, or open the Start Menu and type “cmd”), then run the following commands (replace “<firmware.bin>” with the name of the firmware to be installed):

    1. cd %HOME%\Desktop

    2. zmu-windows-x86_64.exe image upload <firmware.bin>

  • Once the update is complete, fully shutdown the computer (not just a Restart). Turn the system back on, and the update is now complete.

  • (x86-64, ARM, AArch64)

    1. Download the ZMU utility with the link above.

    2. Open a terminal and run the following commands (replace “<firmware.bin>” with the name of the firmware to be installed):

      1. zmu=zmu-linux-`uname -m`

      2. unzip ~/Downloads/zmu-1.0.0.zip $zmu

      3. chmod +x $zmu

      4. sudo ./$zmu image upload <firmware.bin>

    3. Once the update is complete, fully shutdown the computer (not just a Restart). Turn the system back on, and the update is now complete.

    Downloads

    Windows Update

    ZMU Utility v1.0.0

    Linux Update

    Serial Number Retrieval

    Physical Label

    Windows

    Linux

    WMIC BIOS get serialnumber
    WMIC baseboard get serialnumber
    dmidecode -s system-serial-number
    cat /sys/devices/virtual/dmi/id/product_serial

    Fixes an issue that prevents the MCU from being used in Windows.

    Karbon_v3.2.1.2.bin

    Fixes an issue which caused the microcontroller to stop responding if it was receiving CAN traffic while the system was shut down.

    Karbon_v3.2.1.0.bin

    —

    • Download karbon_update.exe

    • Download the latest Binary Version from above

    • Open a command prompt, navigate to your downloads, and run:

    • Download karbon_update

    • Download the latest Binary Version from above

    • Open a command prompt, navigate to your downloads, and run:

    You can also do all of the above in one line:

    Overview

    Karbon command line utility

    Karbon_v3.2.1.3.bin

    karbon_update.exe Karbon_v3.2.1.3.bin
    chmod +x karbon_update && sudo ./karbon_update "some_update_binary.bin"
    wget http://static.onlogic.com/resources/firmware/utilities/karbon_update https://static.onlogic.com/resources/firmware/binaries/karbon/Karbon_v3.2.1.3.bin && chmod +x karbon_update && sudo ./karbon_update Karbon_v3.2.1.3.bin

    Windows

    Linux

    Press Y and Enter to accept the license agreement.

    When prompted, type 2 and Enter to select USB (The display uses a USB connection internally)

    Press enter on any additional prompts. The driver installer will exit and prompt you to reboot the system. Restart, and the driver will be in use.

    https://drive.google.com/file/d/1g-GPP1d1dcl7hP0OBUSgktXsCWeRebef

    support@onlogic.com

  • The Netherlands:

    • +31 88 5200 702

    • support@onlogic.eu

  • If a return is necessary, we will issue an RMA number and shipping details. An RMA number is required for all returns. Customers are responsible for shipping costs and bear the risk of loss for returned items.

    • Packaging: Original packaging is ideal (required for refunds). Otherwise, use your own packaging, ensuring at least 2 inches of padding on all sides. Avoid airbags and packing peanuts. Place bare components (e.g., motherboards, RAM) in static-safe bags.

    Upon arrival at OnLogic, repairs are typically completed within 5 business days.

    We will:

    1. Attempt to reproduce the reported issue.

    2. Use diagnostic tools to identify the root cause.

    3. Replace faulty hardware (if applicable) and re-test.

      • Note: The HDD/SSD may be erased during troubleshooting.

    4. Perform the same thorough production test run on new units to ensure full functionality.

    A repair summary detailing our findings and the repairs made will be sent to you and enclosed with the returned system.

    • Failed components are tracked internally for quality improvement and supplier follow-up.

    1. Initiate Support Request

    2. System Return (RMA)

    3. Repair & Diagnostics

    4. Repair Summary & Return

    Update EFI BIOS

    Applies to: Karbon, Helix, Tacton, and ML350 & CL200 series systems.

    Quickstart

    Updating a system BIOS to the latest version from the EFI takes just a few steps: ● Format an empty USB flash drive ● Copy the update files to the drive ● Reboot into the UEFI menu and boot the drive ● Complete the BIOS update

    Creating the USB Flash Drive

    To update your system BIOS from an EFI shell, you will first need to create a bootable USB drive. Below are the steps to do this using either Windows or Linux as your operating system:

    Windows

    Attach the USB drive that you are able to erase to the system. You should see it appear in File Explorer:

    Configure the options to format the drive as FAT32. When ready, click ‘start’. (WARNING: This will destroy all data on the drive)

    Once the operation completes, copy the EFI folder (and any other files) from this update package to your drive.

    Format a USB flash drive as FAT32 using the Disks utility, using the gparted application, or from the command line:

    1. Determine the correct drive $ lsblk

    2. Unmount the device (suppose the device is sdx1) $ sudo umount /dev/sdx1

    3. Format the drive as FAT32 (suppose the device is sdx1) $ sudo mkfs.vfat -F 32 /dev/sdx1

    Then copy the files from this update folder to the formatted partition using any method.

    In order to access the system’s UEFI/BIOS menu, you will need to reboot your system. While it is restarting, press the UEFI hotkey (usually ESC, F2, or DEL), until the UEFI menu appears.

    Once the menu is open, select and boot from the newly created USB drive. Refer to the system manual or system bios manual for specific instructions about this step for your system. On some systems, you may need to enable “USB Booting” before you can load the EFI Shell from the drive.

    ***Please note that having Secure Boot Enabled will prevent the BIOS update from proceeding. Please disable Secure Boot before attempting to boot from the USB drive or the security policy will block the boot device***

    After the EFI Shell on the drive has booted, wait five seconds for the system to auto detect the update script. When it completes, you will be prompted to review the update and press any key to continue or ‘q’ to quit.

    Confirm the update, and wait for the BIOS update to complete. When it finishes, your system should reboot automatically. If it does not, reboot the system now; the BIOS upgrade is now complete.

    Update System Drivers

    Manually update drivers via Device Manager, especially for those without installers.

    Updating a single driver via Device Manager

    Some drivers do not come with an installer and need to be installed manually. This can be done via Device Manager. This guide will show you how.

    • Copy the driver files to a USB flash drive.

    • If the drivers are contained inside a .zip file, extract them first.

    • In this example, we use the same flash drive we installed Windows 10 from

    • Eject the flash drive and connect it to the OnLogic PC. Type “Device Manager” into the start menu and launch Device Manager.

    • Expand the Display adapters menu. If you see “Microsoft Basic Display Adapter”, that means you are missing the driver. Right click and choose “Update driver”.

    • Select the “Browse my computer for drivers” option

    • Click on “Browse…”

    • Locate the folder on your flash drive with the drivers inside it. Click on the folder and click OK.

    • Now that the location shows where your driver folder is, click Next

    • Windows will now search that folder for the correct drivers and install them automatically.

    • Success! If you get a failure message, go back and make sure you copied all of the drivers to the flash drive and that they are not still inside a zip file. You need to extract them.

    • Repeat this process for all other devices marked with the yellow exclamation point. Typically, they will all be found under the “Other devices” heading.

    • When you no longer have any marked devices the process is complete. A reboot of the system is recommended.

    • Copy the driver package to a flash drive and plug it into the Windows machine

    • Open Command Prompt and navigate to the flash drive (e.g. >D:)

    • Run the command “pnputil /add-driver *.inf /subdirs /install“

    You can also create a batch file and place it at the root of the .zip file that contains the line:

    pnputil /add-driver *.inf /subdirs /install

    Disk Initialization (Windows)

    How to format secondary storage drives

    OnLogic currently does not initialize storage drives unless an operating system was installed on them. This means that additional storage drives will not show up out of the box. They need to be initialized and formatted in disk management first. This guide will show you how.

    • Open the start menu and type in “management”

    • Open Computer Management

    • Click on Disk Management

    • In most cases, this popup will appear automatically.

    • Choose GPT and click OK

    • If the popup above does not appear, scroll down and locate the “Not Initialized” disk. Right click on the disk number and Initialize it. The popup will now appear.

    • Now that the disk has been initialized, you can create a volume and format it.

    • Right click anywhere in the black “unallocated” space.

    • Choose “New Simple Volume…”

    • Click Next on the window that appears.

    • Leave the number at the default and click next.

    • This will create one partition that fills the entire disk – the most common configuration.

    • Select a drive letter from the dropdown if desired. The default is fine.

    • Click Next

    • Format the drive

    • File System: NTFS

    • Enter a volume label if desired

    • quick format

    • Click Finish. The drive will start formatting and will show up under “This PC” within a few seconds.

    • The drive is now ready for use.

    Exporting Windows Event Logs

    How to send the system event logs to OnLogic for analysis

    The Windows Event Logs contain a variety of information that can help diagnose crashes and other issues. In some instances, it is helpful to send us a copy of the logs so that we can examine them. This article covers how to do so.

    • Type “event” into the start menu

    • Open the Event Viewer

    • Expand the “Windows Logs” section

    • Right click on “System” and choose “Save all Events As…”

    • Enter a file name and save the file somewhere you can find it, such as the downloads folder.

    • Important – Be sure to select display information and check the English box. Without this, much of the log will be missing data.

    • Click OK. The export will take 5-30 seconds.

    • Attach the log files to an email and send them to us for analysis. Be sure to note the ticket number if we provided one, or your serial number if this is a newly reported issue.

    Cincoze BIOS Update Procedure

    Applies to: DI-Series, DS-Series, DX-Series, P2000-Series

    • Copy the BIOS files to a FAT32 formatted flash drive

    • Insert the flash drive into the Cincoze unit

    Ubuntu Linux Setup & Reinstallation

    First-time login and reinstallation procedure

    Ubuntu Linux is supported on most OnLogic PCs, though specific versions might be required. For example, Ubuntu for Intel IoT is required on most systems running 11th Gen Intel CPUs and newer. Technical support for and Ubuntu OS related issues should be directed to

    Customer’s who purchase Ubuntu pre-installed on their system will need to setup a user account and password. With Ubuntu Desktop versions, this is done via the Graphical User Interface (GUI). For Ubuntu Server version, you will be prompted to set this up via the Command Line Interface (CLI).

    *Note: Ubuntu 22.04 Server will prompt you to change the default password on first boot up. The default password is:

    • Username: onlogic

    Nvidia GPU Driver Enablement (Ubuntu)

    Resolving display issues by enabling proprietary Nvidia GPU drivers on Ubuntu, using recovery mode.

    The free drivers built in to Ubuntu can sometimes crash with newer graphics cards. The common symptom is that the display will go black at boot or have a corrupted output as shown below.

    To fix this, you will need to boot into recovery mode and enable the proprietary drivers. In this example, we use an OnLogic K700 and Ubuntu 20.04. The procedure is the same in 18.04.

    • Power up your PC and wait for the BIOS screen to come up.

    Barrel Jack Zip Tie Use

    How to use the barrel jack retention ziptie

    • Prepare Knockout: Use a screwdriver to push out the designated knockout (typically marked with a padlock symbol). Ensure the piece is removed from the system.

    • Insert Zip Tie: Push the retaining zip tie (from accessory kit) into the hole, ribbed side facing upward.

    How to Generate an Online Quote

    A guide for creating a product quote from the OnLogic website.

    At OnLogic, we aim to provide the tools you need to move your projects forward efficiently. Whether you are an existing customer looking to expedite procurement or a new visitor to the OnLogic website who needs a formal document for budget approval, you can generate a professional quote directly through our website.

    Navigate to the product page of the system that meets your requirements. Scroll to the Configure & Buy section to select your specific components, including processor, memory, storage, and operating system.

    Once your configuration is complete, click the Add to Cart button in the summary box.

    After adding the items to your cart, you will be redirected to the Shopping Cart page. Take a moment to review your selected components and adjust system quantity if desired. To generate a quote document instead of checking out, locate the Order Summary box on the right and click the orange outlined Get Quote button.

    You may sign in to your OnLogic account to use saved addresses, or select

    Download
    Download
    Download

    Linux

    Enter the UEFI Menu

    Complete the Update

    Updating multiple drivers at once

    Click Next

    Continue as Guest
    to proceed without logging in.

    To ensure your quote is accurate and reaches the right person, complete the following sections:

    • Email Confirmation: Enter the address where you would like to receive the PDF quote.

    • Shipping Information: Provide the delivery address. This allows our system to calculate regional taxes and shipping rates.

    • Shipping Method: Select your preferred shipping speed.

    • Payment Method: Choose your intended payment type. This selection is for quoting accuracy and does not charge your account or represent a commitment to purchase.

    Review your information and click Generate Quote. A confirmation screen will appear with your unique quote reference number.

    Your formal PDF quote will be delivered to your inbox, typically within 10 minutes.

    When you are ready to proceed with your order, simply open your quote email and click the View Cart button. This will automatically reload your exact configuration onto our website, allowing you to complete your purchase.

    If you prefer you may also contact your dedicated account manager or our technical sales team to finalize your order. Please note: orders placed through our sales team do not qualify for free shipping.

    • Pricing and Availability: Because market prices for components like RAM and storage can be volatile, online quotes do not lock in pricing or stock. We recommend completing your order promptly to ensure the best pricing and availability.

    • Free Shipping: While many online orders qualify for free shipping, this option is only available during checkout. If your final online purchase meets the criteria for free shipping, it will be applied during the final checkout process.

    • Volume Discounts: This tool provides our standard retail pricing. If your project requires volume-specific discounts, please use the Request Volume Quote link on the product page or contact our technical sales team directly to discuss your requirements.

    Step 1: Configure your solution

    Step 2: Initiate the quote process

    Step 3: Enter your details

    Step 4: Finalize and receive your quote

    Moving from quote to order

    Important considerations

    Power on the unit, and press the Del key a few times until the blue BIOS menu appears

    BIOS Navigation: Use the arrow keys to move around, press enter to select/open, press Esc to go back.

    • Under the Advanced tab, open the CSM Configuration menu

    • Change the Boot option filter to UEFI only

    • Go back to the main menu

    • Save Changes and Exit

    • Press Del again to get back into the BIOS

    • Your flash drive should now be listed under the boot tab. Make sure Boot Option #1 is set to the flash drive.

    Note: The next 3 steps are only relevant for larger Cincoze units. Smaller units such as the DA-1000 and DC-1100 may not have the PCH-FW Configuration menu. If the menu is missing, skip ahead to the Save & Exit step.

    • Now head back over to the Advanced tab and open the PCH-FW Configuration menu

    • Select the only option

    • Enable Me FW Image Re-Flash

    • Save Changes and Exit

    • The unit will now reboot and boot to the flash drive. If it reboots more than once, you will need to go back and enable Me FW Image Re-flash again. It only remains active for 1 reboot. This is a security feature.

    • Press enter at the prompt to begin the flashing process

    • Do not unplug the unit during the process

    • If this error message is displayed, the firmware re-flash setting was not enabled correctly. Allow the process to complete. Go back to that step and try again.

    • The BIOS has now been updated. Press control-alt-del to restart. The unit may restart several times to configure the new BIOS.

    Password: onlogic


    For a full installation guide, please visit the Ubuntu website here:

    • A 4GB or larger flash drive (USB 3.0 model recommended for speed)

    • A PC running Windows 10

    1. Download the Rufus tool from rufus.ie

    2. Download the correct Ubuntu ISO image for your system (based on the CPU). Most newer systems such as the K400 series, K800 series, and platforms with 11th Gen CPUs or newer with require Ubuntu for Intel IoT.

    1. Other platforms can use the latest standard LTS version, such as 22.04 in this example.

    2. Older versions can be downloaded from this page. download the file ending in -desktop-amd64.iso

    1. Download the ISO file and Rufus tool, linked above

    2. Insert your flash drive and run Rufus

    3. Click Select and choose the ISO file you just downloaded.

    4. Most systems will use the Partition Scheme set to GPT. For older Systems (2018 or older): Set the Partition Scheme to MBR For context, GPT = UEFI and MBR = Legacy for the Boot Option in the BIOS.

    5. Click START

    6. Click OK. This will erase your flash drive and turn it into an Ubuntu installer.

    7. Wait for Rufus to complete.

    8. Safely eject the flash drive and unplug it from the PC.

    • Connect your newly created flash drive to the OnLogic PC and boot to it.

    • Press F2 or Delete to access the BIOS. Under the Boot tab, make it the first boot device.

    • Exact boot instructions vary by model. If you need assistance, contact support@onlogic.com.

    • When the installer finishes booting, choose “Install Ubuntu”

    • Select your language and click continue

    • Check the box to allow 3rd party software and click continue. This may provide better hardware support.

    First Time Login

    ubuntuforums.org

    Reinstallation Steps

    Prerequisites

    Downloads

    Create Flash Drive

    Installing Ubuntu

    Press the Esc once or twice to access the GRUB bootloader menu.
    • On the K700, wait until the text below the splash screen disappears and then press your Esc key. This helps avoid conflicts with BIOS features that may be triggered by the ESC key.

    Press Esc now!
    • If successful, you will be greeted with the following screen.

    • Select “Advanced options for Ubuntu” using the down arrow and enter keys.

    • Select the line ending with (recovery mode)

    • When in recovery mode, select “Resume normal boot”

    • Select “OK” on the this should boot the machine into the desktop environment

    • Open the application launcher in the bottom left of the screen

    • Open “Software and Updates”

    • Click the “Additional Drivers” tab

    • Select the latest NVIDIA proprietary driver. It will typically be the top option

    • Click “Apply Changes”

    • Reboot your system and let it start up normally. The driver issue should be resolved.

    Procedure

    Attach Clip: Attach the clip to the power supply's cable.

    • Secure Cable: Thread the zip tie through the clip's hole and snug it into place.

    Instructions:

    Microsoft Cert Expiration

    How will the certificates be updated?

    Typically this is performed by the Operating System’s update manager (Windows updates, or the respective update manager in a Linux distribution), meaning that systems deployed in the field that receive regular OS updates most likely already have the new certificates enrolled. Alternatively for systems that may not have an internet connection, the new certificates can be enrolled manually

    OS Specific Updates

    Windows Updates

    Microsoft has provided some info on how to audit your Secure Boot status in windows. The recommended update path for Windows users is to leverage Windows Updates to handle the new certificate enrollment.

    Windows seems to not proactively check the Secure Boot policy unless Secure Boot is enabled. Customers that have Secure Boot enabled most likely have already received the new certificates in a previous Windows Update.

    Linux

    Update managers differ between linux distributions but ultimately rely on the fwupd tool to manage system firmware updates. If the fwupd command is not present in a linux OS, then the OS’s package manager can be used to install fwupd.

    In Ubuntu, fwupd can be installed via:

    sudo snap install fwupd

    Note: make sure fwupd is version 2.1.0 or later. Once installed the fwupdmgr can be used to query and initiate the certificate update:

    hx500@hx500-CometLake:~$ fwupdmgr get-updates
     Updating lvfs
     Downloading… [***]
     Successfully downloaded new metadata:
    <..> 
     ├─UEFI CA:
     │ │ Device ID: 5bc922b7bd1adb5b6f99592611404036bd9f42d0
     │ │ Current version: 2011
     │ │ Vendor: Microsoft (UEFI:Microsoft)
     │ │ GUIDs: 26f42cba-9bf6-5365-802b-e250eb757e96 ← UEFI\VENDOR_Microsoft&NAME_Microsoft-UEFI-CA
     │ │ c34a7e6a-bd86-5244-8bd0-7db66fd3c073 ← UEFI\CRT_E30CF09DABEAB32A6E3B07A7135245DE05FFB658
     │ │ Device Flags: • Internal device
     │ │ • Updatable
     │ │ • Supported on remote server
     │ │ • Needs a reboot after installation
     │ │ • Signed Payload
     │ │ • Can tag for emulation
     │ │
     │ └─Secure Boot Signature Database Configuration Update:
     │ New version: 2023
     │ Remote ID: lvfs
     │ Release ID: 116503
     │ Summary: UEFI Secure Boot Signature Database
     │ License: Proprietary
    <..> 
     │ Description:
     │ This updates the 3rd Party UEFI Signature Database (the "db") to the latest release from Microsoft.It also adds the latest OptionROM UEFI Signature Database update.
    

    Manual updates

    Microsoft has made the new certificates . Once downloaded customers will need to convert the x509 certificate (.crt file) into a DER encoded format (.cer file). This can be done with the openssl tool in Windows or Linux

    The syntax for conversion is:

    openssl x509 -outform DER -in <input_filename>.crt -out <output_filename>.cer

    Example using one of the downloaded certificates:

    Once converted, the .cer file can be placed on a USB flash drive and manually loaded in to the UEFI by going to the “Administer Secure Boot” menu, choosing the respective certificate repository (KEK, and db) and choosing “enroll”

    After choosing the enroll option, navigate to the USB stick that has the DER formatted certificates and select it. You may be prompted for an owner UUID which is provided for each certificate on the .

    Once enrolled the new certificate will show in the repository

    Optimizing Touchscreen HMIs for Industrial Workloads

    HMI touchscreen optimization for industrial applications.

    For industrial applications, touchscreen HMIs (Human Machine Interfaces) are very popular, allowing operators to interact with computerized systems without the need for a keyboard and mouse. This reduces space needs and allows systems to be directly mounted to electrical enclosures & kiosks. However, application development, design, and integration for HMI touchscreens differs from desktop and mobile use-cases. This application note will explain how to develop, design, and optimize the user experience with touchscreen HMIs across Windows and Linux distributions.

    If you’d like to know more about selecting the right type touchscreen for your application, look at reading our blog post, . This application note assumes you are already familiar with the differences between capacitive and resistive screens.

    Modern operating systems are equipped to handle touch inputs out of the box. For comparison, Windows 11 Pro, Ubuntu 22.04, and Ubuntu 24.04 operating systems were tested for functionality consistency with OnLogic’s Tacton Panel PC platform. Basic functionality consists of:

    Serial Port Setup & Communication

    Set up, test, and establish serial communication between devices on Windows and Linux, including loopback testing and pinout verification.

    Begin Basic setup by determining the pinout of the devices that will be connected.

    In this example we will connect a K300 running Ubuntu to another K300 running Windows 10.

    Using the K300 Manual, we can determine that the Transmit (Tx) pin is 2, the Receive (Rx) pin is 3 and the Ground (GND) pin is 5.

    Before connecting the two devices we can run a loopback test to determine the address of the physical port we are using.

    This can be done using a COM loop back device, or by using jumper cables to connect the Tx pin to Rx pin and the GND pin to a ground source. Please note it is best practice to use another COM port’s GND pin to ground the port running the loop back test. In a pinch, the COM port’s shield can be used, but it is not guaranteed to be a viable ground point and may result in communication issues.

    How to use DIO

    Applicable to: K300 / K700 series systems

    This article provides specific examples for the K300 and K700 systems. Other models may not be compatible with the exact software packages used. Check out the available documentation directly on your system’s Support page. Checkout the newer generation of the K300 and K700 systems here:

    DIO, or Digital Input/Output, is a simple form of interface used in a wide range of systems to effectively relay digital signals from sensors, transducers and mechanical equipment to other electrical circuits and devices.

    Sometimes referred to as General Purpose Input/Output (GPIO), DIO utilizes a logic signal to transfer information. Unlike an analog signal which might be comprised of varying voltages, the digital signals used by DIO have two possible values and are generally represented as either OFF or ON. Think of analog signals as those you might use a knob or dial to set, while digital signals would most often be controlled by a switch. This makes it ideal for sensing switch contacts, reacting to motion sensors, limit switches, operator buttons or machinery status indicators. It can also be used to control indicator lights, small relays or PLCs within equipment.

    Read more about DIO basics

    Install and the

    available for download
    Microsoft page
    openssl x509 -outform DER -in "microsoft corporation kek 2k ca 2023.crt" -out "microsoft corporation kek 2k ca 2023.cer"
    A single press of the screen will act as a left mouse button click
  • Holding down a finger to the screen will act as the right mouse button click.

  • Multi-touch gestures depend on the operating system and will only be consistent with capacitive screens.

  • As touchscreens have been around for a long time, some users need functionality consistent for their legacy applications to work properly, particularly those based on Windows Vista that utilize a resistive stylus. Some of these applications operated based on a “click” actuation once a pen was removed from the screen. In order to replicate this functionality with a modern touchscreen we will need to use an utility to emulate it. EETI’s eGalaxTouch Windows utility has been tested by OnLogic for use with Tacton’s resistive for those users that need to emulate legacy applications.

    While holding down a touch will pull up the right click menu, this does not work on files on the GNOME desktop environment. In all other cases such as taskbar and in application it will work correctly. This can sometimes be addressed by enabling Click Assist in the Accessibility settings to simulate a secondary click, however this did not work consistently across all distributions and screen types. However, as we will discuss further on, it is best to not utilize right click when possible for ease of use.

    When inputs are needed from users that would otherwise use a keyboard, an OSK can be used to create a virtual keyboard that users can interface with using the touchscreen. When enabled the keyboard will show up when clicking into a text or numerical entry box. Both Windows and Linux distros offer a default OSK, but may require some setup depending on the application.

    Somewhat confusingly, Windows offers both a standard OSK and a touch keyboard. Both options pop out as a window when needed, but the touch keyboard (shown above) offers much more flexibility and responsiveness in terms of customizing size and position. It is best to use the touch keyboard option when possible. Additionally, with Windows 11, an icon can be added to the taskbar to allow for the keyboard to be turned on and off manually if desired. To use properly, ensure the standard OSK is turned off in the keyboard section of the Accessibility Menu & touch keyboard is turned on (Time & Language > Typing) and added to the taskbar (Personalization > Taskbar).

    The OSK can be enabled in the accessibility system menu under the typing section. It will pop-up from the bottom of the screen occupying about ⅓ of the screen space and can be manually brought up by swiping from the bottom of the screen (PCAP Only). This can present challenges as input boxes can become blocked by the OSK window.

    GNOME Default On-Screen Keyboard

    Customization can be tricky, depending on the particular distribution. Most modern distributions (18.04+) use Wayland as a replacement for X11 window system protocol. This means that older tools that utilize x11 will not work with modern distributions when trying to deploy system-wide. It’s important to consider how inputs will be made if the default OSK can’t be used.

    Direct Application Integration

    Consider implementing the OSK directly into our application using compatible components or tools. For example, with Inductive Automation’s Perspective SCADA visualization tool, there are already pre-built keyboard and numpad components available for integration natively into projects. If developing an application from the ground-up, consider what your UI toolkit offers, such as QT6’s virtual keyboard.

    GNOME Extensions

    If we want to integrate outside of individual applications, there are other tools available through GNOME Extensions such as TouchX which adds a dedicated OSK button to the top taskbar, or GSJOSK, which offers a pop-out OSK however your mileage may vary as GSJOSK and other non-standard OSKs. In our testing, it did not work in full screen for browser sessions. OSK dependencies can vary greatly, so direct application integration is preferable.

    When a system is panel mounted be sure to consider how to wake the system from standby/suspend state. While Windows 11 supports “Touch on Wake” natively, the same option is not present for the default Ubuntu 22.04/24.04 environment or within Windows 10. One obvious solution is to disable sleep/suspend in the power settings of your operating systems, however the Tacton platform offers some alternative hardware features that can help, regardless of the Windows or Linux environment.

    • Infrared Proximity Wake – allows the embedded IR sensor to wake the system from sleep based on user proximity. The distance is enabled and customized via the LPMCU CLI tool.

    • Remote Power Switch – A physical power button can be cabled out from the integrated DIO (Pin 1-2). A simple momentary switch will allow you to wake the computer.

    Based on the touch interactions we reviewed above, applications for touchscreens need to be built in a manner that allows users to easily interact with on-screen resources. This means that not all functions that worked on a desktop as a physical button are best used for touchscreen HMIs. We should follow similar best practices to mobile application design in terms of simplicity, ease of use, and consistency. This guide is not designed to be a complete overview of HMI design best practices, but please consider the following concepts specific to touch interactions.

    • Stick to single touch (i.e. left click) for use where possible. This will provide the most consistent experience. Since our fleet of devices may be heterogeneous, building applications that work well for all types of screens is ideal.

    • Minimize components that require movement such as swiping, sliders, etc.

    • Do not use a touchscreen for momentary i.e. “jog” buttons for communicating with a PLC. These are not consistent and cause a value to get “stuck” in a state. Consider using timers, automating actions, or keeping these as physical buttons next to the panel.

    • Space buttons and size appropriately to make them easy to interact with.

    • Using an OSK with a resistive screen is time consuming and should be avoided when possible.

    • Typing repeatedly on a touchscreen is time consuming. Barcodes, ID scanners, RF devices, and other input devices will automate data collection.

    • Gestures can be helpful, but should not be relied upon. Build straightforward navigation with buttons that allow easy navigation. The exception being applications that need to zoom, such as integration with Google Maps or OpenStreetMaps can benefit greatly from gesture support.

    • Utilizing “Kiosk Mode” or auto-launch applications in full-screen during boot. This will minimize operator confusion and limit access to unapproved applications. IT best practices for locking down workstations should also be implemented.

    Basic Touch Functionality & OS Specific Considerations

    7 Step Process to Selecting an Industrial Panel PCs

    Legacy Windows stylus applications:

    Right Click on Linux GNOME Desktop:

    On-Screen Keyboard (OSK) & OS Specific Considerations

    Windows – OSK vs. Touch Keyboard:

    Linux OSK & Implementation

    Wake-on-Touch

    Application Best Practices

    Touch Events

    OSK

    Gestures

    Other

    Once the loop back is made, PuTTY can be used to send simple communication over the port to determine how the physical port enumerates in the OS.

    Using Putty open up a COM port and type in the terminal window.

    • Your keystrokes should print out in the terminal window. If they do not, use PuTTY to open up another COM port number

    • This tells us that the COM port our loop back is plugged in to is “COM1” in the Operating System.

    In Linux download and install PuTTY. You may need to run PuTTY with elevated privileges. Open up a /dev/ttyS0 port and begin typing in the terminal window.

    sudo apt install putty sudo putty

    • Your keystrokes should type out in the window. If they do not, run putty with a different /dev/ttyS address. Try 1 or 2

    • This determines the port we have our loopback plugged in to is at /dev/ttyS_

    When connecting to a device it’s important to verify pinout between devices against the pinout of the cable in use.

    Using the pinout of the two devices, verify that the cable is connecting Tx to Rx and also connecting ground.

    • This example is using jumper cables to show the pinout connection between devices

    Once the cable pinout is verified and the cable is connected to both devices, PuTTY can be used to send information over the port.

    It’s important that the following settings between both devices match. If the settings differ between devices, the data sent will have errors on the receiving device.

    Baud Rate

    Data Bits

    Stop Bits

    Parity and Flow control are optional settings.

    In Ubuntu we can use PuTTY to open up the /dev/ttyS0 device path we ran the loopback test on.

    also take note of the serial configuration of this PuTTY serial session.

    Opening PuTTY the com port we ran the loop back test on can be opened and the settings can be checked to make sure they match the configuration of the Ubuntu system’s COM settings.

    Once the PuTTY terminal is open on both systems, data can now be sent between devices.

    On the Windows PuTTY terminal, keystrokes will appear in the Linux PuTTY terminal.

    On the Linux PuTTY Terminal, keystrokes will appear in the Windows PuTTY terminal

    Although this example used 2 K300 systems, the overall principals apply for setup and troubleshooting any serial communication line.

    • Determining software port to use for specific physical port

    • Ensuring port works with loop back

    • Determining pinout of port

    • Ensuring cable’s pinout matches device’s pinout and Tx pins are going to Rx pins between devices

    • Ensuring communication settings between devices match.

    Basic RS-232 Setup

    Windows

    Linux

    Communication between devices

    Device settings

    COM Setup (Linux)

    COM Setup (Windows)

    Sending data between devices

    Conclusion

    .

    This tutorial will outline a quick and simple test for the Karbon K300 and K700 series’ Digital I/O. We’ll wire the DIO port and run a simple python script to control an LED during a button press event on an input pin

    The Karbon Digital I/O port is not powered and will need to have power supplied to the port. The DIO port is able to handle 5-36VDC on the K300 and 5-48VDC on the K700.

    For this tutorial we’ll borrow the USB port’s 5V and GND pins and splice a spare USB cable for use in the DIO port.

    Once the power is supplied to the DIO port we’ll need to wire up our input. Since the Input of the DIO are pulled high when floating, we’ll wire an input to ground so that pressing the button will pull the input low.

    We’ll wire up an LED to output 3 and to the supplied 5V. NOTE: most LEDs will need to have a resistor in line from the power rail to limit the current supplied to the LED. check the details of the current limits of the LED you are using.

    To validate the input is working, the karbon CLI utility can be run to monitor the behavior of the inputs and outputs.

    Running the karbon tool with the `op dio-state’ will print out what the input and output states are. The output bit order is I0 I1 I2 I3 O0 O1 O2 O3 Since we have the button wired to Input 3 we should expect 11110000 and then 11100000 when the command is ran while the button is pressed.

    Now that that input can be read from the MCU, the output portion can be configured.

    We can run a python script that will react to Input 3 being pulled low with the button press and set output 3 to high and turn the LED on.

    Save the following script as dio.py and run it with the command python3 dio.py

    Running the script will show configuration info and then print out information when the button is pressed and depressed.

    The button press will set input 3 to high, triggering the python script to set output 3 high and turn on the LED.

    What is DIO?

    Tutorial

    Prerequisites

    on our blog.
    Python3
    Pykarbon library
    import pykarbon.terminal as pkt 
    
    def callback_fn(arg):
        if arg[3] == '0': #check if 3rd item from popdata() is 0
            print("DI 3 --> LOW ", arg)
            return True #return True to dev.set_do. sets output high
        else: #if 3rd item from popdat() is anything other than 0
            print("DI 3 --> HIGH", arg) 
            return False #return Flase to set_do. sets output low
    
    i = 0
    
    with pkt.Session() as dev:
        dev.update_info(print_info=True) # Update and print configuration info
    
        dev.set_do(0, False) # Set digital output zero low
    
        while True: #create loop that runs forever
            line = dev.popdata() #popdata will print out data in the queue
            if line: 
                dev.set_do(0, callback_fn(line)) #returns data from queue as argument for use by callback_fn

    AWS Kinesis Video Streams Integration (Axial Edge Server)

    Deploying the OnLogic Axial Edge Server with Intel 13th Gen Core i Processors and Intel Arc dGPU for video streaming to AWS Kinesis Video Streams

    1- Overview

    The OnLogic Axial Edge Server for KVS is designed to simplify the challenges of video streaming for edge to cloud inference applications. By using OnLogic’s 1U Axial Edge Server powered by Intel 13th Gen Core i Processors and Intel Arc discrete GPU, you can leverage edge processing to supercharge your vision applications. The OnLogic Axial Edge Server for KVS is tested for compatibility with KVS to easily integrate into existing KVS workflows.

    Solution Reference Architecture

    2- Hardware

    Information

    A full range of resources are available for your OnLogic Axial Edge Server for KVS within the AC101 Product Documentation Page.

    Package Contents

    Each OnLogic AC101 includes the computer itself, depending on chosen accessories the following may be included. Accessories may be purchased separately on onlogic.com where stated.

    • Mounting hardware for rack deployments or wall mounting hardware.

    • C13 to AC Outlet Power Cables (Selection available for US/EU/UK)

    While the configuration is selectable by the user, the reference platform tested contained the following specifications. System requirements will depend on # of streams, local storage requirements, stream specifications (frame rate/resolution/etc.)

    CPU: i7-13700E | GPU: Intel Arc Pro A60 | RAM: 16GB | Storage 128GB | Ubuntu 22.04 LTS

    OnLogic Axial Edge Server for KVS is designed to integrate with existing and new video streaming applications and are only a part of the solution. The following items are required to take advantage of the solution:

    • IP Capable Video Cameras (RTSP)

    • Edge networking equipment capable of providing video streams to the AC101. The AC101 is equipped with 10GbE and 1GbE LAN. For multi-stream deployments a network switch is recommended.

    • Users may opt to use integrated storage on AC101 if chosen for Offline video storage, however users may also want to consider on-site NAS if consuming large amounts of data. Full specifications on in-server storage options can be found on the AC101 product page.

    The following uses files available from OnLogic Support team. Please use the available download link, this also includes sample video files (.mp4) for ease of use. The solution can run either on CPU or GPU. Files are included for both.

    1. On CPU host, install Docker: https://docs.docker.com/engine/install/ubuntu/ .

      1. Perform post-install steps so you do not need to run Docker with `sudo `

    2. Copy *Dockerfile*, *build.sh*, *run.sh*, *C0012_1080p25.mp4* to CPU host

    For in-depth support on the OnLogic AC101, you can visit the .

    1. Your system will come equipped with either a single or redundant power supply along with AC power cables. You will need to plug either a single or both (redundant only) AC power cables into the system in order to power on the system.

    2. In order to set up the system you’ll need a keyboard, mouse, and display in order to perform the first time setup. Start the system by pressing the power button (if you selected auto-power on your system will start when plugged in).

    3. Install Ubuntu 22.04 LTS or your operating system of choice (If you have chose not to have OnLogic pre-install it)

    • Ensure you are using a PC that is rated for your environment: operating temperature, input voltage, shock, vibration

    • Ensure to adhere to any certification requirements for IT equipment: Class 1 Division 2, UL Requirements, etc.

    • Ensure systems are installed properly following instruction materials when installing into racks or secured using wall mount.

    Users that have appropriate expertise should expect device setup to take less than 30 minutes for your device to be ready to connect to your AWS KVS instance depending on network availability.

    As the solution does not include any production environments in AWS cloud as such the user is responsible for setup, deployment, and maintenance of their AWS applications and following AWS best practices to ensure operational excellence and security. OnLogic Axial Edge Server for KVS can be used in any AWS Region or Availability Zone that supports KVS. Please ensure to adhere to any importation requirements if deploying outside the United States or European Union as there may be additional regulatory requirements for IT equipment.

    To learn more about AWS Kinesis Video Streams, see and .

    OnLogic does not offer technical support for software issues related to AWS services. Contact your technology integration resources or partner to help resolve software issues. For answers to common questions and preliminary troubleshooting, please browse our comprehensive support site.

    For Hardware support you can contact the OnLogic support team at or 802-214-7565 ext. 2 (8:30 AM to 5:00 PM EST). For responses via email and voicemail we strive to respond the same business day. If received after normal business hours we will respond in the order that they were received. Once an RMA is received normal turnaround when parts are available is 5 business days

    All OnLogic systems come with a standard 2 year warranty (unless otherwise stated). For additional information the following resources are available:

    Document Version
    Date
    Changes

    Clonezilla Image Restoration

    USB drive creation, booting into Clonezilla, and the restoration process.

    • A 4GB or larger flash drive (USB 3.0 model recommended for speed)

    • A PC running Windows 10

    • Download the Clonezilla alternative stable version from

    RAID Setup - K700 & HX500/600

    Applicable to: Karbon 700 & Helix Series

    Note that only SATA drives (M.2 or 2.5″) can be used in RAID on these platforms. This is due to Intel chipset limitations.

    RAID (Redundant Array of Independent Disks) is a technology used to stitch multiple storage drives together into a single volume for a variety of purposes. The Intel chipsets on OnLogic’s Helix and Karbon 700 platforms feature Intel Rapid Storage Technology (RST), an integrated firmware-level RAID utility for SATA disks.

    Note: Intel RST on the Helix platform is only supported in Windows; Linux users will need to use a dedicated hardware RAID solution or a software-level RAID utility such as mdadm.

    Because the RAID volumes are maintained at the firmware level, the disks in an array do not need to match perfectly. However, the timing parameters of all disks in a certain array, such as write speed, will be slowed down by the chipset to the lowest value among those disks. For example, an M.2 SATA III SSD may have slightly faster read and write speeds than a similar 2.5” SATA III SSD. If these two disks are stitched together in an array, the M.2 SSD’s timing parameters will be slowed to match the 2.5” SSD.

    Edge AI Container Deployment with Ansible

    Deploying AI Vision Application Containers at the edge using Ansible Automation Platform on OnLogic HX401 and AC101 systems

    In the rapidly evolving landscape of edge computing, efficient device management and orchestration are paramount. This application note explores the use of the Ansible Automation Platform to streamline the deployment of edge AI applications. By leveraging Ansible’s capabilities, we demonstrate a robust and repeatable method for deploying and managing complex edge infrastructures. This approach addresses the challenges of scalability, heterogeneity, and rapid deployment inherent in edge environments. Through detailed instructions and practical examples, this guide empowers technical professionals to effectively harness automation, optimize resource utilization, and accelerate the delivery of cutting-edge AI solutions at the edge.

    For this example note, we’ll be showcasing an AI demo application that can detect “OnLogic” logos. This demo application is written in Python and uses a USB camera with a YOLO object detection model that has been trained on a custom dataset to detect the OnLogic logo in its various forms. The processed image frames are then sent to an RTSP server in order to view the live camera feed. Both the server and client of our application are packaged into Podman containers, and hosted via private registry.

    For the edge device deployment, the industrial computer was selected for its small form factor and performance. The Intel® 12th Generation Alder Lake-P SoC makes it an excellent choice for Edge AI applications.

    User provided edge AI inference application. The user should be able to optimize using the Intel OpenVINO toolkit to take full advantage of hardware.
  • Edge to Cloud networking to AWS Cloud. The reference architecture for the solution recommends a 5G Modem, but hardwired connectivity is also sufficient.

  • User maintained AWS EC2 instances for KVS and storage platform of their choice such as S3 Buckets.

  • execute “build.sh” to start building the docker container
  • When Docker build is complete, open up the “run.sh”, enter AWS credentials values for environmental variables `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` and `AWS_DEFAULT_REGION` fields.

  • Update the `-w` to your desired working directory. This will be the directory the Docker container will be in when launched

  • Enter the Docker container by executing `run.sh`

  • CPU ONLY: Launch the demo with the command `/opt/demo/kvsWebrtcClientMasterGstSample Intel-DLStreamer-Ch` where `kvsWebrtcClientMasterGstSample` is the AWS KVS WebRTC C SDK demo application and `Intel-DLStreamer-Ch` is the WebRTC Signaling channel name.

  • Launch a web brower on the local host or remote platform and enter the following address: https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-js/examples/index.html. Make sure the enter the correct AWS region, Access key and Secret key. The channel name will be `Intel-DLStreamer-Ch`.

  • Follow the instructions outlined in section 3 (Deployment Setup).

    Ensure installation technicians are properly trained in setting up devices on site
  • Prototype before field installation of larger deployments

  • 1.0

    11.18.24

    Initial Release

    User Provided Items

    3- Deployment Setup

    Host Setup

    4- Edge Server Setup

    Device Setup

    Deployment Best Practices

    5- About Kinesis Video Streams

    6- Troubleshooting

    7- Revision History

    https://docs.docker.com/engine/install/linux-postinstall/
    Product Documentation Page
    Kinesis Video Streams: How it Works
    Getting started with Amazon Kinesis Video Streams
    support@onlogic.com
    Warranty Information
    OnLogic Terms and Conditions

    Direct Link to ISO

    • Download the ISO file and Rufus tool, linked above

    • Insert your flash drive and run Rufus

    • Click Select and choose the ISO file you just downloaded.

    • Click START

    • Click OK. This will erase your flash drive and turn it into an Ubuntu installer.

    • Wait for Rufus to complete.

    • Create a new folder on the flash drive to contain your images. It must not contain any spaces. In this example, we name it TERA-MK100-40-R1

    • Copy the folder containing your image into the images folder

    • Final Result:

    • Safely eject the flash drive and unplug it from the PC.

    • Connect your newly created flash drive to the OnLogic PC and power it on.

    • If no operating system is installed, the system will likely boot right into Clonezilla.

    • If it does not, Press F2 or Delete to access the BIOS. Under the Boot tab, make it the first boot device.

    • Exact boot instructions vary by model. If you need assistance, contact support@onlogic.com.

    • Select the 2nd option at the Clonezilla boot menu (ending with “& To RAM”)

    • Some unimportant text will fly by as Clonezilla boots up

    • Press enter to select Language.

    • English is recommended to match this guide

    • Press enter to select keyboard layout.

    • Press enter to start Clonezilla

    • Choose the device-image option (default)

    • Choose the local_dev option (default)

    • A list of the disk drives will be printed. This can be helpful for reference but can usually be ignored. Press control-C to close it.

    • Select your USB flash drive as the source defice

    • no-fsck is fine

    • Select your images folder and press enter

    • Do not go any further into the folders.

    • Press tab twice and enter to select Done

    • Beginner mode is best for our purposes

    • Choose the restoredisk option

    • You will be prompted to select an image from your images folder.

    • Now you will be prompted to choose which disk the image is applied to. In this example, the Transcend drive is our boot drive so we select it.

    • Yes, check the image before restoring

    • Press enter twice to continue.

    • The image restore process will now begin!

    • Additional Yes/No prompts may appear as Clonezilla processes your image. Type Y and press enter on each one.

    • Success! The image has been applied. Press enter to continue as the prompt on the screen says.

    • Select the reboot option and immediately unplug your flash drive.

    • The system will restart and should boot right up into your restored image.

    Prerequisites

    Downloads

    https://clonezilla.org/downloads.php

    Flash Drive Creation

    Using Clonezilla

    On the Karbon 700 platform, the two cabled SATA connections can be configured in RAID arrays. Karbon 700 supports RAID 0, 1, and Recovery arrays.

    On the Helix platform, the M.2 B-Key, M.2 M-Key, and both cabled SATA connections can be configured in RAID arrays. Helix supports RAID 0, 1, 5, 10, and Recovery arrays.

    Different types of RAID arrays are referred to as “levels”. Each level has unique characteristics that provide benefits in one form or another. Different RAID levels have different applications, so be sure to pick the correct one for your use case.

    RAID 0 (Striped): In a RAID 0 array, data written to the volume is split between two or more disks. Each disk’s storage space is divided into blocks, the size of which can be set by the user. When writing data to the volume, the SATA controller will rotate block-by-block between the disks. This methodology can provide noticeable improvements to read and write speeds; however, if one disk in a RAID 0 array fails, the data on the entire volume will be lost.

    RAID 1 (Mirrored): In a RAID 1 array, the SATA controller mirrors all data between two or more disks. The primary benefit of this methodology is that if a drive in the array is disconnected or fails altogether, the volume will continue to function as normal. If an OS is installed on the volume, it will not be interrupted by a failing drive. A drive can then be reconnected or replaced, at which time the SATA controller will rebuild the volume (note that the rebuild process can take several hours or even days for larger volumes). This RAID configuration has no noticeable effect on write speeds but typically improves read speeds, as the system can read from multiple disks simultaneously.

    RAID 5 (Striped with Parity): A RAID 5 array functions similarly to a RAID 0 array in that it stripes data across multiple disks; however, for each set of blocks, it also writes a block of parity data that can be used to recover a block on another disk if it loses that data. Thus, you can achieve some of the performance gains of a RAID 0 array while being able to withstand a single disk failure. This methodology requires at least three disks.

    RAID 10 (Striped and Mirrored): A RAID 10 array combines two RAID 1 arrays in a RAID 0 array. This allows you to achieve the performance gains of a RAID 0 array while still maintaining the fault tolerance of a RAID 1 array. Data is striped between the two RAID 1 volumes, which are able to withstand and rebuild after a failed disk. This methodology requires at least four disks. This RAID level is also sometimes referred to as RAID 1+0.

    Recovery: Intel Rapid Recovery Technology creates a special RAID 1 array where instead of two equivalent disks, one disk is designated the “primary” and the other the “secondary”. Data is written to the primary drive, then copied to the secondary drive as a backup. This allows you to decide if you would like the mirroring to occur continuously or only on request; in addition, the time it takes to rebuild the array after a disk failure is decreased. However, the read speed improvements of a typical RAID 1 array are not seen here, as the SATA controller will typically only read from the primary drive. Note: Creating a new RAID array will erase all filesystems and data on all the disks used.

    • Begin by powering on the system and immediately press the Del key a few times to access the menu

    • Using the arrow keys, navigate down to “Setup Utility” and press enter

    • From the “Advanced” tab, open the PCH-IO” Configuration” menu

    • Open the “SATA And RST Configuration” submenu

    • Change the SATA Mode Selection to “Intel RST”

    • Press F10 to save changes & exit.

    • Press Del at boot again to access the main menu.

    • From the main menu, select “Device Management”. You will be greeted with the Device Manager options pictured below. Select “Intel(R) Rapid Storage Technology” to continue.

    The following menu will give you the option to specify the name of your RAID volume, the RAID level of the configuration, and which disks will become part of the array. Begin by specifying the name of the volume if desired and selecting a RAID Level.

    Then, select which SATA disks will be used to create the array. Note that any disks being used in a different RAID array will not be selectable. If you are creating an array with the RAID level “Recovery”, you will need to select which drive is the master (M) and which is the slave (R).

    For RAID 0, 5, and 10 configurations, you can specify the strip size if desired. The strip size options vary depending on the RAID level of the configuration. In addition, you can set the capacity of the volume if you would like it smaller than the maximum available. If you are creating a “Recovery” array, you can also select if the slave drive is synchronized with the master continuously or only on request.

    Select “Create Volume” to return to the Device Manager menu. You should now see your new volume listed in the menu; hit F10 to save your new settings and Escape to return to the main BIOS menu.

    Your RAID array is now created and ready for use.

    In addition to using the Device Management menu in the BIOS, you can also configure and monitor RAID arrays from Windows using the Intel Rapid Storage Technology desktop application. The installer for the application can be found on the Helix Product Documentation Pages ( HX300 or HX500 & HX600) The application allows you to create, monitor, and delete RAID arrays from the OS level.


    These instructions will guide you through enabling the legacy RAID menu for operating systems that may not work with the UEFI version. The RST instructions above should be used whenever possible.

    • Begin by powering on the Karbon 700 and immediately press the Del key a few times to access the menu

    • Using the arrow keys, navigate down to “Setup Utility” and press enter

    • From the “Advanced” tab, open the PCH-IO” Configuration” menu

    • Open the “SATA And RST Configuration” submenu

    • Change the SATA Mode Selection to “Intel RST”

    • Press ESC 3 times to go back to the main menu

    • Next, navigate over to the Boot tab and change the Boot Type to Legacy

    • Exit Saving Changes

    • The K700 will now reboot. As soon as it does, hold the Control key and tap “I” until you see the Intel Rapid Storage Technology menu

    • Select option 1 from the menu

    • Use the tab key to navigate and the up/down arrows to change options.

    • A RAID1 configuration is shown

    • Tab down to “Create Volume” and press enter

    • You will be taken back to the main screen and your new RAID volume will be visible.

    • Select option 6 to Exit, and then press Control-Alt-Del to restart

    • You will now toggle the boot mode back to UEFI

    • Press Del at reboot to access the menu

    • Open the Setup Utility

    • Change the boot mode back to UEFI

    • Finally, Exit Saving Changes

    Your RAID volume is now ready to use.

    Overview

    RAID Levels

    Intel RST RAID Management

    Enabling Rapid Storage Technology

    Intel(R) Rapid Storage Technology Menu

    Creating a New RAID Array

    Intel RST Control (Windows)

    Legacy method

    Additionally, in this example, the Axial AC101 edge server is used for hosting the RTSP server that our edge endpoints connect to, in order to provide a live view of what the HX401 was seeing from the attached USB camera.
    • Intel Core i9-13900E

    • 64GB (2x 32GB) ECC DDR5 4800 MHz Memory

    • 960GB Micron NVMe SSD

    • Nvidia RTX A4000

    • Red Hat Enterprise Linux 9.2 with Podman installed

    • Intel Core i7-1240PE

    • 32GB (2x16GB) DDR5 4800 MHz Memory

    • 128GB Transcend NVMe SSD

    • Red Hat Enterprise Linux 8.8 with Podman installed

    • 1GbE Port 1: DHCP, Connected to Internet (for Ansible Automation Connectivity)

    • 1GbE Port 2: Static IP (10.10.15.1, Connected to HX401)

    Red Hat provides a deployment planning guide along with installation instructions to set up an ansible automation platform server with (you guessed it) an Ansible Playbook. Ansible Automation Platform can be deployed either in the cloud, or on premises depending on your organization’s infrastructure. In this case, Ansible Automation Platform was deployed on premises on another AC101 we had in the office.

    To start off, the first thing required is to import an automation project within the Ansible Automation Platform. The procedure noted below will step through this process.

    1. Login to the Ansible Automation Platform web console.

    2. Navigate to the “Projects” page.

    3. Create a new project, providing a name and optional description.

    4. In the project configuration, select the Git repository option and input the Git repository URL, specifying the branch and path if needed.

    5. In the example shown, a GitLab HTTPS deploy token is appended to the front of the URL for authentication to an internal GitLab server.

    6. Save the project configuration and initiate the sync process to pull in the content from the Git repository. Verify the successful import of playbooks and roles within the Ansible Automation Platform interface.

    Ansible Automation Platform provides a centralized and secure way to manage credentials, such as usernames and passwords, necessary for accessing target systems. In this case, Linux PAM credentials, required for SSH and sudo access to the devices, are the relevant credentials that need to be added to the interface.

    1. Navigate to the “Inventories” section.

    2. Click “Add” and click on the “Inventories” tab in the main navigation menu. This will take you to the inventories management page.

    Within the inventory, you’ll need to define hosts (individual machines or servers) and groups (collections of hosts).

    1. Add hosts by specifying their IP addresses or hostnames. For this case, two inventories are being created, one for the HX401, and one for the AC101.

    Variables can be assigned at several different levels (host, group, inventory, etc.). In this application, variables are being assigned at the inventory level, as there are two discrete inventories for the edge device and RTSP server.

    Review the created inventory to ensure all hosts and groups are accurately defined. There are built-in tools to test the connectivity and configuration of the hosts within the inventory.

    Job templates serve as blueprints for job execution, encapsulating the details of playbooks, inventories, and job options.

    1. Navigate to the “Templates” section, and select “Add Job Template” under the “Add” dropdown.

    2. Fill in the required information, including a name and description. Specify the playbook that the template will execute, and designate the target hosts by choosing an inventory source. Customize the job template further by configuring options such as credentials, project settings, and runtime parameters, then click save. The completed job template should now encapsulate all the necessary details for executing the automation task in a repeatable manner.

    After running the jobs, the application should now be exposing an RTSP stream at the location specified in the job template:

    From our AC101 platform, we can ensure that the AI vision application container was deployed to the HX401 by attempting to open the RTSP video stream. To do so, we can use the popular VLC media player application to open the video stream as follows:

    1. Open VLC media player and navigate to Media, the select Open Network Stream

    2. Input your RTSP URL into the open field, e.g rtsp://<hostname-or-ip-here>:8554

    3. Next, press the Play button, and the RTSP stream should open.

    Confirming our application is loaded on the HX401, here is a view of the stream from VLC, demonstrating that both the RTSP container and the vision application have deployed successfully!

    Interested in exploring how the Ansible Automation Platform can transform your edge AI deployments? Contact the OnLogic team today or visit www.onlogic.com/ai.

    Application Overview

    Demo Application: “OnLogos”

    Hardware Selection & Setup

    HX401

    AC101

    Helix 401 (HX401)

    Hardware Specs

    AC101

    HX401

    Network Configuration

    Getting Started with Ansible Automation Platform

    Platform Installation

    Project Import (from Git Repository)

    Add Credentials

    Create Inventories

    Define Hosts

    Assign Variables

    Job Template Creation

    Deploy Application

    Deployment Verification

    Windows IoT Enterprise Recovery Options

    Different methods of recovering a Windows IoT Enterprise operating system

    Windows Recovery Environment

    Overview

    Our systems with Windows 11 and 10 IoT include a recovery option that restores the device to its original factory state using the Windows Component Store. This includes drivers vital to the functionality of the system.

    • This recovery option works well when windows can still start up or reach recovery mode, and needs system files repaired.

    • This recovery option won't work for cases when the OS is completely missing, since the process depends on the Windows Component Store files which are stored on the OS.

    Launching Windows Recovery Environment

    Below are several methods to enter the Windows Recovery Environment:

    1. Follow official Microsoft documentation for.

    2. While inside the OS, press and hold the Shift key while you select Power > Restart.

    3. In a Windows terminal window, type `shutdown /r /o /t 00` or `reagentc /boottore` .

    4. If you are unable to access your OS, turn the system on and then force a shutdown by holding the power button as soon as you see the Windows logo or spinning dots. Repeating this process 2-3 times triggers the Automatic Repair feature and will boot into the Advanced Startup menu.

    Follow these steps once inside the Windows Recovery Environment.

    1. Choose the troubleshoot option.

    2. Select "Reset this PC".

    3. Select "Local reinstall". This is the option that uses the Windows Component Store files to restore the system.

    Windows 10 IoT can be reinstalled using a USB flash drive. This guide will walk you through creating the flash drive and performing the installation. Please note that while Windows 11 IoT can be reinstalled through this method, it will erase the embedded activation key and so using the Recovery partition is the recommended way to restore Windows 11 IoT to a default installation.

    • An 16GB or larger flash drive (USB 3.0 model recommended for speed)

    • A PC running Windows 10

    • A copy of the OnLogic ISO file ( to obtain, only available to existing customers)

    • Download the ISO file and Rufus tool, linked above.

    • Install Rufus to your local computer

    • Insert your flash drive and run Rufus

    • Click Select and choose the ISO file you just downloaded.

    • Most systems will use the “GPT” Partition Scheme. Some older units will need “MBR” for older (Legacy bootable) systems.

    • Click START

    • Click OK. This will erase your flash drive and turn it into an IoT installer.

    • Wait for Rufus to complete.

    • Safely eject the flash drive and unplug it from the PC.

    • Connect your newly created flash drive to the OnLogic PC and boot to it.

    • Press F2 or Delete to access the BIOS. Under the Boot tab, make it the first boot device.

    • Exact boot instructions vary by model. If you need assistance, contact support@onlogic.com.

    • When the flash drive boots, you will be presented with this screen. Select Next.

    • Click Install now

    • Accept the license agreement and click Next

    • Choose the option for Custom installation

    • *** If installing Windows 11 IoT instead of Windows 10, this window will appear. Select “Windows 11 IoT Enterprise LTSC” to proceed***

    • Delete all partitions from the drive you will be installing Windows 10, typically Drive 0.\

    • Note: If you have multiple drives in your system, you only need to delete the partitions on the primary SSD (i.e. the one Windows is installed to). Typically this is Drive 0.

    • Double check that you are deleting the correct partitions and click OK.

    • With all partitions deleted, the Window should look like this. Click Next. New partitions will be created automatically.

    • Take a break while the installation proceeds

    • Depending on the boot settings, the system may boot to the flash drive again. If that happens, click the X to reboot and immediately remove the flash drive.

    • Select “I don’t have a product key”. Windows will activate automatically using the embedded key, after the OS installation is complete.

    • You may log in with your Microsoft account if desired.

    • In many business use cases, that is not desired. You can create a normal account with the “Domain join instead” button.

    • Enter a username and click next. Set a password if desired.

    • Unless you signed in with a Microsoft account, click NO on this screen.

    • The options on the next screen primarily affect apps from the Microsoft Store. Disabling all options will minimize intrusions if those apps are not used. This can be changed later.

    • This loading screen will appear for a few minutes while the user settings are applied.

    • When completed, you will go straight to the Windows 10 desktop.

    • Your installation is complete!

    • If you are missing any drivers, start by running Windows Update. It tends to find most of them. Otherwise, use the search box at the top of this page to find the “Technical Resources” page for your model. It will have a link to the drivers.

    Windows will automatically activate when connected to the Internet. This normally happens after a few minutes in the background, but to force immediate activation, open CMD and type “slmgr /ato“

    Windows 11 Pro Reinstallation

    Using the media creation tool

    Windows 11 Pro can be reinstalled using a USB flash drive and a tool from Microsoft. This guide will walk you through creating the flash drive and performing the installation. *If you are installing Windows 11 onto a RAID array on the K800, you will want to follow the specific steps available here:

    • An 8GB or larger flash drive (USB 3.0 model recommended for speed)

    • A PC running Windows 10 or 11

    Windows 10 Home & Pro Reinstallation

    Using the media creation tool

    Windows 10 Pro and Home can be reinstalled using a USB flash drive and a tool from Microsoft. This guide will walk you through creating the flash drive and performing the installation.

    • An 8GB or larger flash drive (USB 3.0 model recommended for speed)

    • A PC running Windows 10

    Select either option based on your preference:

    1. Keep my files: This option reinstalls the Windows operating system and all of the original drivers and software that were configured in our facility. It removes applications you have installed (like Microsoft Office, web browsers, etc.) and resets most settings, but it preserves your personal files, such as those on your Desktop and in your Documents, Downloads, and Pictures folders.

    2. Remove everything: This option performs a complete factory reset. It erases all of your personal files, applications, and settings before reinstalling a fresh copy of the original system.

  • Select "Reset".

  • Rufus,
  • An active internet connection to the system getting Windows 10 IoT reinstalled (needed for OS activation)

  • Step-By-Step Recovery

    Reinstall the Operating System Using Rufus and a USB Drive

    Prerequisites

    Create Flash Drive

    Installing Windows

    First Boot & Setup

    Activating Windows

    accessing the Windows Recovery menu
    contact tech support
    downloadable from here.

    The Media Creation Tool, downloadable from here.

    • Download and run the Media Creation Tool, linked above

    • Accept the license agreement

    • Click Next

    • Choose the “USB flash drive” option and click Next

    • Choose your flash drive from the list and click Next

    • If the drive does not show, ensure it is formatted as FAT32 or try a different drive.

    • The Windows 11 installer will now download from the Internet and make the flash drive bootable. This will take several minutes depending on the speed of your flash drive and Internet connection.

    • When the tool finishes, click Finish to close it.

    • Safely eject the flash drive and unplug it from the PC.

    • Connect your newly created flash drive to the OnLogic PC and boot to it.

    • Press F2 or Delete to access the BIOS. Under the Boot tab, make it the first boot device.

    • Exact boot instructions vary by model. If you need assistance, contact support@onlogic.com.

    • When the flash drive boots, you will be presented with this screen.

    • Click Install now

    • Enter the product key from the bottom of your OnLogic PC and click Next.

    • If prompted (typically when you don’t enter a product key), select your version of Windows.

    • Accept the license agreement and click Next

    • Choose the option for Custom installation

    • Delete all partitions from the drive you will be installing Windows 11 to, typically Drive 0.

    • With all partitions deleted, the Window should look like this. Click Next. New partitions will be created automatically.

    • Take a break while the installation proceeds

    • After a few minutes, the installation will complete and the PC will reboot.

    • Depending on the boot settings, the system may boot to the flash drive again. If that happens, click the X to reboot and immediately remove the flash drive.

    • When booting to your new Windows installation for the first time, you will be presented with this screen

    • Confirm your region and click “Yes”

    • Confirm your keyboard layout and click “Yes”

    • Click “Skip”

    • The PC may restart once more at this stage.

    • Provide a computer name or choose “skip for now” to automatically assign one. This mostly matters for networking.

    • Choose “Set up for work or school”. This will allow you to avoid needing a Microsoft account.

    • You may log in with your Microsoft account if desired.

    • In many business use cases, that is not desired. You can create a normal account with the “Sign-in options” button.

    • Choose “Domain join instead”

    • Enter a username and click next.

    • DO NOT set a password yet. Click Next.

    • This will help avoid additional nag screens.

    • Disable all of the options at the next screen. This helps enhance system security, especially if “modern” apps from the Microsoft Store will not be used. They can be enabled later if needed.

    • This loading screen will appear for a few minutes while the user settings are applied.

    • When completed, you will go straight to the Windows 11 desktop.

    • Your installation is complete!

    • If you are missing any drivers, start by running Windows update. It tends to find most of them. Otherwise, use the search box at the top of this page to find the “Technical Resources” page for your model. It will have a link to the drivers.

    • Open the start menu and search for “Activation“

    • The activation settings option will come up. Click on it.

    • The activation state is shown

    • Click the “Change” button

    • Enter the product key from the bottom of your OnLogic PC.

    • The key may be obscured by a square patch of silver security foil.

    • Very gently, scratch the foil off with your fingernail as you would a lottery ticket. The key is underneath.

    • Enter the product key in this window, press Next, and Windows will activate online automatically.

    Windows 11 moved the taskbar icons to the middle, which is not ideal for experienced Windows users. Fortunately, this is easy to change back.

    • Right click on the taskbar and choose “Taskbar Settings.

    • Scroll down and click on “Taskbar Behaviors”

    • Change “Taskbar Alignment” to “Left”

    The Windows 11 Pro start menu includes a few suggested apps from the Microsoft store. These recommendations are geared towards consumers and may not be wanted on a business machine. Right click on each undesired app and choose “uninstall”.

    Prerequisites

    Create Flash Drive

    Installing Windows

    First Boot & Setup

    Activating Windows

    Optional Tweaks

    Left Align the Start Menu

    Remove Preinstalled Apps

    The Media Creation Tool, downloadable from here.
    • Download and run the Media Creation Tool, linked above

    • Accept the license agreement

    • Choose the 2nd option and click Next

    • Specify the architecture. In almost all cases, the default of 64bit is correct.

    • Select USB flash drive and click Next

    • Choose your flash drive from the list and click Next

    • If the drive does not show, ensure it is formatted as FAT32 or try a different drive.

    • The Windows 10 installer will now download from the Internet and make the flash drive bootable. This will take several minutes depending on the speed of your flash drive and Internet connection.

    • When the tool finishes, click Finish to close it.

    • Safely eject the flash drive and unplug it from the PC.

    • Connect your newly created flash drive to the OnLogic PC and boot to it.

    • Press F2 or Delete to access the BIOS. Under the Boot tab, make it the first boot device.

    • Exact boot instructions vary by model. If you need assistance, contact support@onlogic.com.

    • When the flash drive boots, you will be presented with this screen. Select Next.

    • Click Install now

    • Enter the product key from the bottom of your OnLogic PC and click Next.

    • If prompted (typically when you don’t enter a product key), select your version of Windows.

    • Accept the license agreement and click Next

    • Choose the option for Custom installation

    • Delete all partitions from the drive you will be installing Windows 10, typically Drive 0.

    • Double check that you are deleting the correct partitions and click OK.

    • With all partitions deleted, the Window should look like this. Click Next. New partitions will be created automatically.

    • Take a break while the installation proceeds

    • Depending on the boot settings, the system may boot to the flash drive again. If that happens, click the X to reboot and immediately remove the flash drive.

    • When booting to your new Windows installation for the first time, you will be presented with this screen

    • Choose :set up for an organization

    • You may log in with your Microsoft account if desired.

    • In many business use cases, that is not desired. You can create a normal account with the “Domain join instead” button.

    • Enter a username and click next. Set a password if desired.

    • The options on the next screen primarily affect apps from the Microsoft Store. Disabling all options will minimize intrusions if those apps are not used. This can be changed later.

    • Unless you signed in with a Microsoft account, click NO on this screen.

    • Cortana is a web search assistant on the desktop. Generally this should be disabled.

    • This loading screen will appear for a few minutes while the user settings are applied.

    • When completed, you will go straight to the Windows 10 desktop.

    • Your installation is complete!

    • If you’re missing any drivers, start by running Windows update. It tends to find most of them. Otherwise, use the search box at the top of this page to find the “Technical Resources” page for your model. It will have a link to the drivers.

    • Open any file explorer window. Right click on “This PC” and choose “Properties”

    • The activation status is shown at the bottom.

    • Click the “Activate Windows” button

    • Click “Change product key”\

    • Note: Some systems will display an error indicating that a “hardware change” has occurred. This can be ignored, and will go away once the OS is activated.

    • Enter the product key from the bottom of your OnLogic PC.

    • The key may be obscured by a square patch of silver security foil.

    • Very gently, scratch the foil off with your fingernail as you would a lottery ticket. The key is underneath.

    • Enter the product key in this window, press Next, and Windows will activate online automatically.

    Prerequisites

    Creating the flash drive

    Installing Windows

    First Boot & Setup

    Activating Windows

    Install Ubuntu Desktop | UbuntuUbuntu

    PSE Configuration (Ubuntu)

    Installation (Intel IoT)

    Ubuntu Desktop 20.04 and 22.04 for Intel IoT platforms are versions of Ubuntu that are validated to run a 5.13-intel and 5.15-intel kernel version. This version of Ubuntu is available from Canonical at https://ubuntu.com/download/iot/intel-iotg, and can be installed like any other Ubuntu release.

    Scroll down to the "Select Processor" section, and select the "Intel® Atom® X6000E Series Elkhart Lake" option.The PSE driver is also supported on current Ubuntu LTS releases up to Ubuntu 26.04. The following versions have been validated:

    Ubuntu release

    Kernel

    20.04 / 22.04 (Intel IoT)

    5.13-intel / 5.15-intel

    Several system hardware interfaces, including CAN, DIO, Serial/COM and ignition sensing are managed through the system’s Programmable Services Engine (PSE).

    The Elkhart Lake PSE can be managed over ISHTP/HECI from the host processor: This driver creates and manages a pse character device, which allows userspace applications to read and write data over the underlying ISHTP bus driver.

    The driver can be obtained here:

    Then unzip and navigate to the directory with:

    Or clone from the command line with:

    To build and install the pse kernel module automatically, simply run:

    This will check if the pre-compiled kernel modules are compatible with your system, and either install them or compile new ones in-place. If all goes well, you can move on to .

    It is also possible to manually build and install the PSE kernel module, which may be required if you intend to run a signed kernel.

    Install the prerequisites for building kernel modules:

    Download the kernel headers for the current kernel:

    Build

    You should now be able to build with:

    This will generate the kernel modules files, which can be loaded and checked with:

    Permanently installing the PSE driver can be done by copying it to your modules directory:

    After this, the PSE module should be loaded and ready for use on each boot. You can confirm this with:

    The programmable services engine consumes commands in the form of packed header and body data structures. The complexity of these structures can be completely ignored by using the pre-compiled command-line application. See the within the system product documentation.

    However, for tight application integration, it is possible to interface with the PSE directly from your software stack by reading and writing to the PSE character file (/dev/pse). A complete example that establishes a connection to the PSE and reads the firmware version information is included in the examples directory, and can be compiled with:

    All source code referenced in the instructions below is included in full context in the examples directory. Additional example code is provided for using the CAN and DIO peripherals, as well as sample code for configuring the system’s automotive features. You can build all targets with:

    Before communication with the PSE can begin, the host client must establish a connection with the firmware client. This is performed by sending the ‘client connection’ IOCTL to the device file:

    Once the connection has been established and returned, it is possible to send commands to the PSE.

    Commands sent to the programmable services engine can either be header-only ‘short’ commands, or complete header + body ‘long’ commands.

    The header portion of the command is as 48-bit wide structure that is transmitted as raw data to the PSE:

    The command header can be easily described as a packed struct in C:

    The possible valid system commands are enumerated by the heci_command_id_t, and include:

    Command
    Value
    Description

    The argument packing depends on this command, and is described by the *_command_t structures.

    UART, I2C, PWM, and QEP all use a generic ‘operation + device’ scheme, while DIO and CAN have separate formats:

    The ‘body’ portion of each command is described by another structure:

    The actual data format depends on the command sent; the can_send example function in examples/can.c shows one method for populating message data.

    Once a message’s header and optional body portions are prepared, sending the command is as simple as writing to the open PSE device:

    Any message sent to the PSE will receive a response from the embedded controller. The response message format is identical to the transmit format, and will always include the status of the last command received.

    Some commands (like reading a CAN message), will result in additional data being returned, as indicated by the has_next flag. Application code may check this flag to determine if it should continue reading data:

    In the provided sample code, the files examples/pse.c and examples/pse.h provide some helpful abstraction to simplify this process. For instance, reading the PSE firmware version can be performed with the following code:

    Several system hardware interfaces, including CAN, DIO, Serial/COM and ignition sensing are managed through the system’s Programmable Services Engine (PSE).

    The Elkhart Lake PSE can be managed over ISHTP/HECI from the host processor: This driver creates and manages a pse character device, which allows userspace applications to read and write data over the underlying ISHTP bus driver.

    You can download the driver files and installation bundle here: .

    Or download and extract them from the command line:

    UART

    0x03

    Send data over an attached UART. Allows control of automotive features

    CAN Bus

    0x04

    Send and receive CAN messages

    PWM

    0x05

    Manage the Pulse Width Modulation of a DIO configured as PWM

    I2C

    0x06

    Send/receive I2C data (not recommended for end-user configuration)

    QEP

    0x07

    Configure a group of DIOs set as a Quadrature Encoder Peripheral

    24.04

    6.x-generic

    26.04

    7.x-generic

    System Info

    0x01

    Report the system firmware version number

    Digital IO

    0x02

    Set and read the system’s digital IO and LEDs

    The driver automatically selects the correct configuration for your running kernel. Ubuntu 26.04 is currently the newest validated release.

    Note: The K400 PSE functionality is supported on Ubuntu 20.04 through 26.04.

    PSE Driver Installation

    Quickstart

    Building

    Build Preparation

    Install

    Using the PSE

    1. Establish Connection

    2. Send a Command

    3. Read the Response

    4. Minimal Example

    PSE Driver Installation (Former - Up to 12/16/2025)

    https://github.com/onlogic/ubuntu-elkhart-lake-pse-driver
    Using the PSE
    Hardware Control Application (HWC) download
    PSE HECI Driver v1.0.0
    IMPORTANT In some releases of Ubuntu, the 'pinctrl_elkhartlake' driver will timeout 
    during startup and crash during shutdown. You can utilize the method below to 
    address the issue, by disabling this driver module.
    
    One method is to add "modprobe.blacklist=pinctrl_elkhartlake" to the kernel command 
    line.
    unzip ubuntu-elkhart-lake-pse-driver-main.zip -d ubuntu-elkhart-lake-pse-driver-main && cd ubuntu-elkhart-lake-pse-driver-main
    git clone https://github.com/onlogic/ubuntu-elkhart-lake-pse-driver.git pse_heci
    cd pse_heci
    $ sudo chmod +x install.sh && sudo ./install.sh
    $ sudo apt-get install build-essential flex bison libssl-dev libelf-dev
    $ sudo apt-get install linux-headers-$(uname -r)
    $ make
    $ sudo insmod pse.ko && dmesg
    $ cd examples
    $ make version
    $ sudo ./versionVersion: 1.5.0.0
    $ sudo rmmod pse
    $ sudo cp pse.ko /lib/modules/
    $(uname -r)/kernel/drivers/hid/intel-ish-hid/
    $ echo 'pse' | sudo tee -a /etc/modules-load.d/modules.conf$ sudo depmod -a
    $ sudo reboot now
    $ sudo lsmod | grep pse
    $ cd examples
    $ make version
    $ sudo ./version
    $ make all
    /// ... int pse_client_connect(void) 
    int fd, ret; 
    struct ishtp_cc_data cc_data; 
    
    /// Prep input connection data 
    memcpy(&(cc_data.in_client_uuid), &pse_smhi_guid, sizeof(pse_smhi_guid)); 
    
    /// Open the pse character device (fails if not root) 
    fd = open(PSE_CHRDEV, O_RDWR); 
    if (fd <= 0) { 
        printf("Failed to open the pse device file\n"); 
        return fd; 
    } 
    
    /// Send the connection IOCTL 
    ret = ioctl(fd, IOCTL_ISHTP_CONNECT_CLIENT, &cc_data); 
    if (ret) { 
        printf("Failed to connect to the PSE over ISHTP/HECI\n"); 
        return ret; 
    } 
    
    /// Return the file descriptor for use 
    return fd;
    NOTE When sending a command the 'is response' and 'status' bytes are ignored; these are only set by the firmware endpoint when sending data back to the host.
    typedef struct {
        // The command 'class' of this message
        uint8_t command;
        // True when the message is a response from the PSE
        bool is_response;
        // If this command has follow-on body data
        bool has_next;
        // The packed command argument; exact data depends on the command
        uint16_t argument;
        // Status of the received command when responding; zero on success
        uint8_t status;
    } __packed heci_header_t;
    typedef struct {
        /// Indicates the format of the following data
        heci_data_kind_t kind: 8;
        /// Length, in bytes, of the data portion
        uint32_t length;
        uint32_t padding;
        /// Packed message body data
        uint8_t data[MAX_HECI_DATA_LEN];
    } __packed heci_body_t;
    /// pse_send_command(int fd, heci_command_id_t command, uint16_t data, heci_body_t * body)
    size_t len;
    /// Create the initial header
    heci_header_t header = {
        .status = 0,
        .is_response = 0,
        .has_next = body != NULL ? 1 : 0,
        .command = (uint8_t)command,
        .argument = data
    };
    /// Copy the header into the transmit buffer
    memcpy(heci_tx_buffer, &header, sizeof(heci_header_t));
    /// Add a body to the command if one is present
    if (header.has_next) {
        memcpy(heci_tx_buffer + sizeof(heci_header_t), body, sizeof(heci_body_t));
        len = sizeof(heci_header_t) + sizeof(heci_body_t);
    } else {
        len = sizeof(heci_header_t);
    }
    write(fd, heci_tx_buffer, len);
    /// pse_read_response(int fd, heci_header_t *header, heci_body_t *body)
    /// NOTE: Some file preparation occurs here; check sample code
    /// Read the message header
    length = read(fd, data, sizeof(heci_header_t));
    if (length <= 0 || length != sizeof(heci_header_t)) {
        printf("Failed reading header from the pse file (%i)\n", length);
        return length;
    }
    memcpy(header, data, sizeof(heci_header_t));
    /// If the header has followup data, read it
    if (header->has_next && !body) {
        printf("Warning: Returned body data was dropped!\n");
        return length;
    } else if (header->has_next) {
        length = read(fd, data + sizeof(heci_header_t), sizeof(heci_body_t));
        if (length <= 0 || length != sizeof(heci_body_t)) {
            printf("Failed reading body from the pse file (%i)\n", length);
            return length;
        }
        memcpy(body, data + sizeof(heci_header_t), sizeof(heci_body_t));
        length = sizeof(heci_body_t) + sizeof(heci_header_t);
    } else {
        length = sizeof(heci_header_t);
    }
    #include <stdio.h>
    #include <unistd.h> // close
    #include "pse.h" // pse_client_connect, pse_send_command, pse_read_response, heci_types
    static int get_version(int fd) {
        int ret;
        heci_body_t body;
        heci_version_t * version;
        ret = pse_command_checked(fd, kHECI_SYS_INFO, 0, NULL, &body);
        if (ret < 0) {
            printf("Could not read the version information: %i\n", ret);
            return ret;
        } else if (ret == 0) {
            printf("No version data returned from the PSE\n");
            return -1;
        }
        version = (heci_version_t *)body.data;
        printf("Version: %u.%u.%u.%u\n",
            version->major, version->minor, version->hotfix, version->build);
        return 0;
    }
    int main(void) {
        int fd;
        int ret;
        fd = pse_client_connect();
        if (fd <= 0) {
            printf("Failed to establish a connection with the PSE\n");
            return -1;
        }
        ret = get_version(fd);
        close(fd);
        return ret;
    }
    $ wget https://static.onlogic.com/resources/firmware/utilities/pse_heci_v100.zip && unzip pse_heci_v100.zip -d pse_heci && cd pse_heci
    NOTE This driver was written for the 5.13.0-intel kernel. Running it against any other kernel version may require modification. At a minimum, the system requires an ISHTP bus device with UUID bb579a2e-cc54-4450-b1d0-5e7520dcad25, and the bundled additional source headers (intel-ish-hid-5.13) will need to be updated.

    Microcontroller (MCU) Usage

    Applicable to: K300 / K700 series systems

    Karbon K300 and K700 series computers have an internal microcontroller (MCU) that manages features like DIO, CAN, Ignition sensing, and more. This microcontroller can be managed by sending commands to two virtual serial ports from the operating system.

    This article will outline several methods for interfacing with the system’s MCU. It also provides a complete list of the exact command strings supported by the microcontroller.

    Note: We recommend making sure your before trying any of the below.

    The Karbon command line utility is a straightforward method for managing all core microcontroller functionality. You can download the utility for, and use it to communicate directly with the onboard MCU.

    Windows

    Linux

    > karbon.exe op version

    $ sudo ./karbon op version

    Complete instructions on using the utility are included as part of the download package. This utility may also be used to update the microcontroller’s firmware version.

    The Pykarbon module provides a set of tools for interfacing with the hardware devices on OnLogic’s ‘Karbon’ series industrial PCs. These interfaces include the onboard CAN bus, Digital IO, and other hardware devices.

    The goal of the Pykarbon package is to provide a simple, powerful base platform that will allow users to quickly and easily integrate a Karbon into their own application.

    The tools in the Pykarbon package are designed to work with the Karbon series rugged industrial computers; this will not work for more generalized systems.

    Pykarbon offers a number of tools for automating and using Karbon series hardware interfaces. These include:

    • CAN and DIO background data monitoring

    • Exporting logged data to .csv

    • Registering and making functions calls based on these bus events:

      • CAN data IDs

      • Digital Input Events

      • DIO Bus States

    • Automated CAN message response to registered IDs

    • Automated setting of Digital Output states

    • Automatic CAN baudrate detection

    • Updating user configuration information:

      • Ignition sense enable/disable

      • Power timing configurations

      • Low battery shutdown voltage

    • Firmware update

    You will need to install Python 3 prior to following this guide.

    To get started with Pykarbon, follow these steps:

    1. Open up a terminal and run:

    1. Launch a python shell with:

    1. In the python shell, import pykarbon with:

    1. And finally create a control object using:

    1. If all went well, you should now be ready to control a variety of systems, but for now let’s just print out some configuration information:

    1. And close our session:

    After the initial setup, visit our Pykarbon Github page to begin using the Pykarbon module for your Karbon series rugged PC.

    • Download and install the latest version of the PuTTY tool. Download Link

    • Open device manager and look for the USB serial devices.

    • Note their COM numbers, typically 4 and 5.

    • Open PuTTY and configure these options

    1. Select the serial option

    2. Change the COM number to match device manager, typically COM4

    3. Click on default settings

    4. Click Save

    5. Click open

    This configures PuTTY to automatically choose the correct options next time you run it.

    • Type config and press enter. The terminal should respond by printing out the current configuration. You may then enter commands from the next section.

    • If config does not work, try using the other COM port number from device manager.

    • Install PuTTY

    Note: If installing from a live CD, you will need to enable the multiverse/universe repositories

    • Run PuTTY as root

    • Set the options shown

    1. Select the serial option

    2. Change the COM device to ttyACM1

    3. Click on default settings

    4. Click Save

    5. Click open

    This configures PuTTY to automatically choose the correct options next time you run it.

    • Type config and press enter. The terminal should respond by printing out the current configuration. You may then enter commands from the next section.

    • If config does not work, try using other com ports from /dev

    The serial terminal can report various system information to the host. This covers firmware version and build date, alongside physical and electrical status information. For instance, the K700 can report the current system input voltage, internal temperature, and internal humidity.

    The available information is system dependent, and is not unified across all Karbon systems.

    Commands for reporting this information include:

    The Karbon series has several configuration options that effect system behavior. These primarily include automotive features, like ignition sensing and battery drain protection.

    The system can store up to four different configurations, one of which will be loaded as default when the system is first powered on. This allows for temporarily disabling automotive features, like low voltage shutdown. The active configuration may be cycled by pressing the settings switch.

    The available commands for controlling system configurations include:

    Several configuration parameters may also be set. They include:

    1. Baudrate

      • Recommended baud rate: 9600

      • Note: Because the Karbon series operates using a virtual serial port, it is able to support a broad range of baud rates. It is not required to operate the serial interface at the recommended rate.

    2. Flow Control

      • XON/XOFF

    3. Command Format

      • Commands are expected to be sent by line instead of by character, such that each command requires a single transaction. Line terminating characters will be ignored. The system is not sensitive to CRLF vs LF termination.

    4. Received Data Format

      • Each line of returned data will be “/n/r” terminated

    Commands sent to the Karbon computer should be in all lower case, and transmitted to the Serial Terminal port in a single transaction. Commands are not sensitive to line termination.\

    An error response will be sent if an unsupported command is sent or if the command is transmitted with the wrong number of accompanying arguments. \

    Some CAN configuration settings, alongside limited CAN messaging are supported through the Karbon Serial Interface. Sending complex messages, and receiving data, is handled by the dedicated CAN virtual serial port. More information is available in the CAN Bus FAQ.

    Note: The CAN device is not internally terminated; a properly terminated cable or bus is required for correct CAN operation.

    The commands available through the serial terminal include:

    Controlling the Karbon Digital IO (DIO) is handled entirely through the serial terminal interface. The DIO state may be read, and output states may be set. Additionally, when an input changes state, that event will be passed to the serial terminal.

    More information is available in the DIO FAQ.

    Note: The digital io is isolated, and requires external power for proper operation. The system manual has additional information on these electrical characteristics.

    The commands available through the serial terminal interface include:

    Optional Methods:

    1– Karbon Command Line Utility

    microcontroller firmware is up to date
    Windows or Linux systems here
    pip install pykarbon
    python
    import pykarbon.pykarbon as pk
    dev = pk.Karbon()
    dev.show_info()
    dev.close()
    version
      Description:
          Reports the firmware version number and build date.
    
          Uses the format: < version | date >
      Parameters:
          -
      Example:
          version
    status
      Description:
          Reports the firmware version number and system dependent status
          information. 
      Parameters:
          -
      Example:
          status
    get-voltage
      Description:
          Reports the current system input voltage.
    
          This command is currently only available on the K700.
      Parameters:
          -
      Example:
          get-voltage
    config
      Description:
          Reports the current microcontroller configuration settings.
      Parameters:
          -
      Example:
          config
    save-config
      Description:
          Saves any changes made. 
          This is a required step or any changes will revert after reboot. 
    user-config [config-number]
      Description:
          Sets the currently active user configuration.
      Parameters:
          config-number --> The configuration number: 1 - 4
      Example:
          user-config 2
    set ignition-sense [enable]
      Description:
          Enables or disables ignition sensing. The system will turn on when
          the ignition pin goes high, and power off if the pin falls for more
          than the specified shutdown-timer.
    
          This is achieved by emulating a front power button press, and can be
          interrupt by the OS. Therefore, after the hard-off timer has expired,
          the system will force a power down. 
      Parameters:
          enable --> Enable or disable: 'on' or 'off'
      Example:
          set ignition-sense off
    set startup-timer [time]
      Description:
          Sets the delay before the system powers on after detecting ignition.
      Parameters:
          time --> Time delay in seconds: 0 - 9999 (s)
      Example:
          set startup-timer 15
    set shutdown-voltage [volts]
      Description:
          Designed to protect automotive systems from battery drain, the system
          will turn off the input voltage drops below this level for more than
          the specified shutdown-timer.
    
          This is achieved by emulating a front power button press, and can be
          interrupt by the OS. Therefore, after the hard-off timer has expired,
          the system will force a power down.
    
          Setting this voltage to a value of '6' or less disables the feature.
      Parameters:
          volts --> The low voltage shutdown level: 0 - Max System Voltage (V)
              On the K700 this value may be a float (12.5, 19.2) but is 
              required to be an int (12, 19) on the K300. 
    
              Floating point shutdown voltages will be added to the K300 as
              part of a future firmware update.
      Example:
          set shutdown-voltage 12
    set hotplug [enable]
      Description:
          Enables or disables display port hotplug detection.
    
          Disabling hotplug detection will keep displays from re-arranging if a
          monitor goes down. When disabled, the host will assume that all
          displays are always connected. 
      Parameters:
          enable --> Enable or disable: 'on' or 'off'
      Example:
          set hotplug on
    set shutdown-timer [time]
      Description:
          Sets the delay before the system powers off after ignition falls or
          the system voltage drops below the safe level.
      Parameters:
           time --> Time delay in seconds: 0 - 9999 (s) 
      Example:
          set shutdown-timer 20
    set hard-off-timer [time]
      Description:
          Sets the delay until the system forces a power off after ignition
          falls or the system voltage drops below a safe level.  
      Parameters:
           time --> Time delay in seconds: 0 - 9999 (s)
      Example:
          set hard-off-timer 150
    set boot-config [true | false]
      Description:
          Determines which user configuration is loaded when the system is
          first connected to AC power. Only one configuration may have this
          value set as true.
    
          By default, user configuration one is loaded at boot.
      Parameters:
          true | false: If the config is loaded at boot: 'true' or 'false'
      Example:
          set boot-config true
    set low-power-mode [on | off]
      Description:
          Enable or disable entering low power mode (ERP mode), after the system has been shutdown. On K700 systems, when both this feature and ignition-sense are enabled, the system will enter a 'very low power mode' and will only wake via ignition events.
      Parameters:
          on | off: If the system will enter low power mode: 'on' or 'off'
      Example:
          set low-power-mode on
    can-message [id] [data]
      Description:
          Formats and sends a standard can data frame.
      Parameters:
          id   --> The message id. A three character hex string (1 - 7FF)
          data --> Data to transmit: A sixteen character hex string.
      Example:
          can-message 123 1122334455667788
    can-autobaud
      Description:
          Attempts to detect the baudrate and propagation delay of the bus.
          This is achieved by sending messages with the id 7FF, and may not
          work in every possible configuration.
    
          To maintain a detected baudrate across hard power cycles, please see
          the 'save-config' terminal command.
      Parameters:
          -
      Example:
          can-autobaud
    set can-baudrate [baud]
      Description:
          Sets the baudrate for CAN bus communication.
    
          To maintain a set baudrate across hard power cycles, please see the
          'save-config' terminal command.
      Parameters:
          baud --> The system baudrate, in thousands: 100 - 1000 (k)
      Example:
          set can-baudrate 1000
    dio-state
      Description:
          Reports the current logical states of the digital inputs/outputs.
          This is represented by eight characters, each a '1' or '0'.
          
          The bit order is: I0 - I1 - I2 - I3 - O0 - O1 - O2 - O3
          Where 'I' is a digital input and 'O' is a digital output.
    
          For example: 10010110
      Parameters:
          -
      Example:
          dio-state
    set-do [value]
      Description:
          Sets the output state of the four digital outputs.
      Parameters:
          value --> A four character string of '1', '-' or '0'.
              A '1' or '0' will set the output to the corresponding state,
              while a '-' will not change the sate of the matching output pin.
      Example:
          set-do 0--1
    set dio-power-switch [enable]
      Description:
          When enabled, any of the front digital inputs can be used to power
          the system on. Once the system is powered on, they will behave as a
          typical digital input.
      Parameters:
          enable --> Enable or disable: 'on' or 'off'
      Example:
          set dio-power-switch on

    2– Pykarbon

    What is the Pykarbon Module?

    What can the Pykarbon Module do?

    Setting Up the Pykarbon Module

    3– Serial Interface

    Connecting from Windows

    Connecting from Ubuntu Linux

    Serial Commands

    Serial Commands – System Information

    Serial Commands – System Configuration

    Serial Interface Technical Details – Connection Specs

    Serial Commands – CAN Bus

    Serial Commands – Digital IO

    Etc.

    Logo
    K801 / K802 / K803 / K804

    Factor Series Technical Support

    Resource for Factor FR201 & FR202 systems, covering manuals, FAQs, setup, OS installation, hardware features, and troubleshooting guides.

    Manuals and Downloads

    Raspberry PI Imager

    Raspberry Pi Firmware Tool (for eMMC)

    Configuration Files (required when installing an OS):

    Bullseye 32bit files- Download Bullseye 64bit files – Download

    Bookworm 32bit files- Download Bookworm 64bit files – Download

    **If installing to FR202, you will need to add the lines to the config.txt file noted in the section below for Bullseye

    • To get started, connect a keyboard, mouse, and monitor before powering up the system.

    • If you purchased the standard 60 watt power supply, it will be pre-wired and ready for use.

    • For the Din rail power supply, connect the wires as shown below. V+ to the red wire, V- to the black.

    • Use a flathead screwdriver to loosen the terminals to accept the wires. Insert the wires and then tighten the terminals back down.

    • On the system side, depress the orange tabs and slide the wires in.

    This section covers what to expect the first time you power your system on.

    If you did not select an operating system when ordering, the system will boot up to a diagnostic splash screen. You can install an operating system using the steps further down on this page.

    • Log in to the default pi account with the password “raspberry”

    • Enter “raspberry” again (it is asking for the current password to enable changing it.)

    • Enter a new password. Note that it must be different from the default or it will error out.

    • Enter the new password again to confirm

    • You will be greeted with the Raspbian welcome screen.

    • Configure localization information

    • Click next to skip the redundant password change dialog. It will keep the password you set earlier.

    • Compete the setup wizard and the unit is ready for use.

    The Lite version of Raspberry PI OS (Raspbian) boots straight to a login prompt.

    • Log in with the following credentials:

    • username: pi

    • password: raspberry

    • You will be prompted to change the default password on first login. re-enter “raspberry” as the current password, and then set your new password.

    • Click on the “Ubuntu” user

    • Enter the default password – “ubuntu”

    • Enter the default password again – “ubuntu”

    • Create a new password

    • Click next and complete the setup wizard.

    • Your system is now ready for use.

    Ubuntu server boots straight to a login prompt.

    • Log in with the following credentials:

    • username: ubuntu

    • password: ubuntu

    • You will be prompted to change the default password on first login. re-enter “ubuntu” as the current password, and then set your new password.

    • Remove the 3 M3x4mm screws from the bottom of the system.

    • Lift up the bottom lid starting from the side with the OnLogic label

    • You now have access to the FR200 motherboard. Components such as the TPM, storage drives, and wireless modules

    • It is recommended not to disassemble the unit any further unless absolutely necessary. Further disassembly has greater potential to cause warranty voiding damage. Use caution.

    • Remove the 3 5mm standoffs from the system.

    • Gently pop the bottom plate off and gently remove the WiFi pigtail (if equipped)

    • The CM4 module is held in by x2 M2 screws.

    • To remove the module, remove the x2 screws and lift straight up.

    • Use caution as the connector is fragile.

    • Re-install the module by lining up the screw holes. Gently pop it down into the sockets.

    • Ensure the thermal pads and EMI gasket are still attached and in the shown locations.

    • Set the system onto the bottom plate, aligning the screw holes.

    • Re-install the x3 brass standoffs. Hand tighten and do not over torque. They can sheer off if too much force is applied.

    • Line up the two pegs of the bottom plate first, then hinge it into place.

    • Re-install the M3 screws into the bottom of the chassis.

    • Remove the 7 M3x4mm screws from the bottom of the system.

    • Remove the bottom bottom lid by lifting straight up.

    • Remove the internal storage cooler. Note that it “hooks” around the I/O board.

    • You will now have access to the I/O board. This connects to the FR202 motherboard via the Raspberry Pi GPIO connector (shown below on the LEFT). Note that models with LCD screens will have the x2 additional connectors (shown below on the RIGHT). Remove the x4 5mm hex standoffs to loosen the I/O board. You can now disconnect the GPIO connector to get access to the FR202 motherboard. &#xNAN;*Note: If your system has an LCD, be careful of the x2 additional connectors on the right.

    • You now have access to the FR200 motherboard. Components such as the TPM, storage drives, and wireless modules

    Factor series systems currently support Ubuntu 20.04, Ubuntu 22.04, Ubuntu 24.04, and Raspberry Pi OS (Bullseye and Bookworm) OSes. Other OSes or versions may not install or function properly.

    Follow the steps below to install one of these operating systems. Make sure to verify if your system has eMMC storage or not. Many systems shipped from OnLogic have the OS installed onto the M.2 SATA drive.

    A USB flash drive smaller than the system’s storage is required for this method. Example: The Factor system has 32GB storage. The flash drive must be 16GB or smaller.

    • Begin by downloading the .

    • Click on “CHOOSE OS”

    • Select your desired image. In most cases, you will want the default “Raspberry Pi OS

    • Click on “CHOOSE STORAGE”

    • Select your flash drive from the list

    • Click “WRITE”

    • Double check that this is the correct drive and choose “YES”

    • If an error occurs, try using the erase function from the imager’s “operating system” menu

    • Erase function shown

    • The image writing process will begin. This takes some time.

    • Success!

    • Access the “boot” partition in your file browser and locate the config.txt file. You will need to replace the config.txt with the OnLogic one, and add usercfg.txt to the “boot” directory. Note that there are differences between 32 bit and 64 bit, so download your preferred file from here:

    Bullseye 32bit files- Bullseye 64bit files –

    Bookworm 32bit files- Bookworm 64bit files –

    • Unplug the flash drive from the computer and plug it into the single blue USB 3 port on the Factor unit.

    • Plug in the factor unit and it should boot up to the flash drive. It may restart automatically once or twice to configure everything.

    • Complete the setup wizard with the desired settings.

    • Configure localization information

    • Click next if you wish to keep the current password (default: raspberry)

    • Launch terminal from the panel in the top left

    • Run the “lsblk” command

    • In this example, our flash drive is SDA M.2 drive is SDB, and onboard eMMC storage is mmcblk0.

    • We will now clone the flash drive onto the desired storage drives. Following the example above, run a DD command:

    • Install to SATA M.2: sudo dd if=/dev/sda of=/dev/sdb status=progress

    • Install to eMMC: sudo dd if=/dev/sda of=/dev/mmcblk0 status=progress

    • An error saying “no space left on device” means that your flash drive was too big. It needs to be smaller than the drive you are installing to.

    • Success!

    • The terminal will show the amount of data copied and then drop to a prompt.

    • Shut down the system and unplug your flash drive.

    • Power the system back on and it will boot up into the operating system. The installation is now complete.

    Follow this method if your Factor unit is equipped with onboard eMMC storage.

    • Remove the 3 M3x4mm screws from the bottom of the system.

    • Lift up the bottom lid starting from the side with the OnLogic label

    • Locate the 6 pin jumper block.

    • It should already have a jumper installed on it.

    • Move the jumper from its default position onto the “Boot DIS” pins as shown.

    • This tells the CM4 module to go into bootloader mode and allows flashing of the internal storage over USB-C.

    • Connect the USB-C port to another computer.

    • Connect power to the unit.

    • Download and install the from the links at the top of this page.

    • Type rpiboot into the start menu and launch the rpiboot program

    • A terminal window will appear. It will automatically run a few commands and then close.

    • If the terminal stays at this stage, that means the PI was not detected. Double check jumper placement. Confirm power is connected to the unit and try a different USB cable.

    • If successful, the eMMC storage will be given a drive letter. Windows can not read it as it contains a Linux filesystem. Do not format it. The Raspberry PI imaging tool will be used instead.

    • Download the Raspberry Pi imager using the link at the top of this page.

    • Launch it from the start menu

    • Click on “CHOOSE OS”

    • Select your desired image. In most cases, you will want the default “Raspberry Pi OS”

    • Click on “CHOOSE STORAGE”

    • Select the RPI-MSD disk from the list. This is the Pi’s internal eMMC storage.

    • Click “WRITE”

    • Double check that this is the correct drive and choose “YES”

    • If an error occurs, try using the erase function from the imager’s “operating system” menu

    • Erase function shown

    • The image writing process will begin. This takes some time.

    • Success!

    • Unplug the USB-C cable and then plug it back in.

    Access the “boot” partition in your file browser and locate the config.txt file. You will need to replace the config.txt with the OnLogic one, and add usercfg.txt to the “boot” directory. Note that there are differences between 32 bit and 64 bit, so download your preferred file from here:

    Bullseye 32bit files- Bullseye 64bit files –

    Bookworm 32bit files- Bookworm 64bit files –

    • Restore the jumper to its original position.

    • Line up the two pegs of the bottom plate first, then hinge it into place.

    • Re-install the M3 screws into the bottom of the chassis.

    • Boot up the Factor unit. It will reboot once or twice to configure itself.

    • You will be greeted with the Raspbian welcome screen.

    • Configure localization information

    • Click next if you wish to keep the current password (default: raspberry)

    • Compete the setup wizard and the unit is ready for use.

    A USB flash drive smaller than the system’s storage is required for this method. Example: The Factor system has 32GB storage. The flash drive must be 16GB or smaller. The Factor series systems are compatible with Ubuntu versions 20.04, 22.04, and 24.04 (both Desktop and Server). Other versions are not supported and may present errors during installation or general use. You can review the supported OS in the .

    • Download the Raspberry Pi imager using the link at the top of this page.

    • Launch it from the start menu

    • Select the “Other general-purpose OS” category

    • Click On Ubuntu and select a supported version (more information above on supported versions).

    • Click Skip Customization

    • Select your flash drive from the list and write to it. Click “WRITE”

    • Double check that this is the correct drive and choose “YES”

    • Note: If error occurs, use the erase function to format drive and start again.

    • The image writing process will begin. This takes some time.

    • Success! but the configuration needs to be modified to boot properly.

    • Unplug the flash drive and then plug it back in.

    • The boot partition should show up with a drive letter.

    • If it doesn’t, you may need to assign one manually via Disk Management or Diskpart.

    Ubuntu Config Files:

    • Eject the boot partition

    • Unplug the flash drive from the computer and plug it into the single blue USB 3 port on the Factor unit.

    • Power on the Factor unit and wait for the login prompt.

    Log in to the newly installed OS. See default credentials referenced in section above (typically ubuntu/ubuntu)

    • Open a terminal

    • Run the “lsblk” command

    • In this example, our flash drive is SDA, the M.2 drive is SDB, and onboard eMMC storage is mmcblk0.

    • We will now clone the flash drive onto the desired storage drives. Following the example above, run a DD command:

    • Install to M.2: sudo dd if=/dev/sda of=/dev/sdb status=progress

    • Install to eMMC: sudo dd if=/dev/sda of=/dev/mmcblk0 status=progress

    • An error saying “no space left on device” means that your flash drive was too big. It needs to be smaller than the drive you are installing to. Use a different flash drive and set it up again.

    • If completed successfully, the terminal will show the amount of data copied and then drop to a prompt.

    • Shut down the system and unplug your flash drive.

    Installing Ubuntu is a bit more involved than Raspberry Pi OS. Configuration files need to be edited manually or the operating system will not boot properly.

    The Factor series systems are compatible with Ubuntu versions 20.04 and 22.04 (both Desktop and Server). Other versions are not supported and may present errors during installation or general use. You can review the supported OS in the .

    Follow this method if your Factor unit is equipped with onboard eMMC storage.

    • Remove the 3 M3x4mm screws from the bottom of the system.

    • Lift up the bottom lid starting from the side with the OnLogic label

    • Locate the 6 pin jumper block.

    • It should already have a jumper installed on it.

    • Move the jumper from its default position onto the “Boot DIS” pins as shown.

    • This tells the CM4 module to go into bootloader mode and allows flashing of the internal storage over USB-C.

    • Connect the USB-C port to another computer.

    • Connect power to the unit.

    • Download and install the “Firmware Tool” from the links at the top of this page.

    • Type rpiboot into the start menu and launch the rpiboot program

    • A terminal window will appear. It will automatically run a few commands and then close.

    • If the terminal stays at this stage, that means the PI was not detected. Double check jumper placement. Confirm power is connected to the unit and try a different USB cable.

    • If successful, the eMMC storage will be given a drive letter. Windows can not read it as it contains a Linux filesystem. Do not format it. The Raspberry PI imaging tool will be used instead.

    • Download the Raspberry Pi imager using the link at the top of this page.

    • Launch it from the start menu

    • Select the “Other general-purpose OS” category

    • Click On Ubuntu

    • Scroll down to and select a of Ubuntu

    • For 32-bit Ubuntu installations, select Server even if you want Ubuntu Desktop. The desktop will be installed later.

    • Select the RPI-MSD disk from the list. This is the Pi’s internal eMMC storage.

    • Select your RPI-MSD disk from the list and write to it. Click “WRITE”

    • Double check that this is the correct drive and choose “YES”

    • Note: If error occurs, use the erase function to format drive and start again.

    • Success! but the configuration needs to be modified to boot properly.

    • Unplug the USB-C cable and then plug it back in.

    • The boot partition should show up with a drive letter. If it doesn’t, you may need to assign one manually via Disk Management or Diskpart.

    Ubuntu Config Files:

    • Eject the boot partition

    • Unplug the power and USB cable from the Factor unit

    • Restore the jumper to its original position.

    • Line up the two pegs of the bottom plate first, then hinge it into place.

    • Re-install the M3 screws into the bottom of the chassis.

    • Power up the unit and it will boot into Ubuntu. Log in with the following credentials:

    • username: ubuntu

    • password: ubuntu

    You will be prompted to change the password. Enter a new password. Your system is now set up and ready to use.

    32bit Ubuntu Desktop can not be installed directly. You must first install Ubuntu Server using one of the methods above. Once server is up and running, the following procedure will install the desktop environment.

    • Log in to the system

    • Run ‘sudo apt update’

    • Run ‘sudo apt install ubuntu-desktop’

    • Type Y and press enter at the prompt.

    The CM4 module has a hardcoded boot order of eMMC > SATA M.2 > USB. This can be problematic if the image on the eMMC or SATA M.2 becomes corrupted or needs to be erased for other reasons. The simple solution is to erase the boot partition. This can be done one of two ways.

    Note that this method can only by used to wipe eMMC storage, not a SATA M.2

    • Remove the 3 M3x4mm screws from the bottom of the system.

    • Lift up the bottom lid starting from the side with the OnLogic label

    • Locate the 6 pin jumper block.

    • It should already have a jumper installed on it.

    • Move the jumper from its default position onto the “Boot DIS” pins as shown.

    • This tells the CM4 module to go into bootloader mode and allows flashing of the internal storage over USB-C.

    • Connect the USB-C port to another computer.

    • Connect power to the unit.

    • Download and install the “Firmware Tool” from the links at the top of this page.

    • Type rpiboot into the start menu and launch the rpiboot program

    • A terminal window will appear. It will automatically run a few commands and then close.

    • If the terminal stays at this stage, that means the PI was not detected. Double check jumper placement. Confirm power is connected to the unit and try a different USB cable.

    • If successful, the eMMC storage will be given a drive letter. Windows can not read it as it contains a Linux filesystem. Do not format it. The Raspberry PI imaging tool will be used instead.

    • Download the Raspberry Pi imager using the link at the top of this page.

    • Launch it from the start menu

    • Click on “CHOOSE OS”

    • Scroll down and click on “erase”

    • Click on “CHOOSE STORAGE”

    • Select the RPI-MSD disk from the list. This is the Pi’s internal eMMC storage.

    • click “WRITE”

    • Double check that this is the correct drive and choose “YES”

    • The storage has now been erased.

    • Proceed to one of the operating system installation guides on this page.

    If the Linux image on the Factor unit is still bootable, you can use the terminal to erase the boot partition.

    • Run the lsblk command to list the storage devices

    • In this example, the boot partition is stored on /dev/mmcblk0p1

    • The following command will copy zeroes over that partition, effectively wiping it and preventing the Pi from booting to it.

    sudo dd if=/dev/zero of=/dev/mmcblk0 status=progress

    A SATA M.2 storage drive will likely show up as sdb, so this command will wipe the M.2’s boot partition:

    sudo dd if=/dev/zero of=/dev/sdb status=progress

    Once the drive wipe has completed, proceed to one of the operating system installation guides on this page.

    The FR200 series serial mode can be controlled by configuring the embedded FTDI EEPROM. You will need to install the utility before updating the serial mode.

    • Install required libraries: sudo apt install libconfuse-dev libusb-1.0-0-dev and build tools: sudo apt install cmake build-essential

    • Download the latest libFTDI Source .tar.bz2 from the Intra2Net page here: | Example: wget https://www.intra2net.com/en/developer/libftdi/download/libftdi1-1.5.tar.bz2

    • Download the configuration file for your required mode:

      • – wget static.onlogic.com/resources/firmware/documentation/configs/FR200_RS232.conf

      • – wget static.onlogic.com/resources/firmware/documentation/configs/FR200_RS422.conf

    With the serial port configuration enabled, the port will now enumerate as /dev/ttyUSB[x], where [x] is the port number. This is typically /dev/ttyUSB0, but may be enumerated differently depending on other USB devices connected. You can also identify the serial port chip via the hardware ID, which is F81439A.

    The TPM is an optional Nuvoton-based hardware add-on for the FR200 series systems.

    You can download the required Device Tree files and Readme installation instructions from here:

    Important notes about Factor PoE (Power Over Ethernet) PD setup and the various revisions of the module.

    • Do not connect both power inputs at the same time. Only connect x1 power connection (either PoE OR terminal block).

    • Review specific details in the specific models below\

    The ADP125 is an isolated PoE PD (powered device) modules. Factor series systems configured and shipped in August 2024 or later have this version of the module. This offers isolation/protection from transient voltage of up to 100KV.

    Factor Series systems configured with PoE PD modules and shipped before August 2024 will use the ADP122. Important notes about Factor PoE (Power Over Ethernet) setup when using the ADP122 addon module:

    • Do not connect both power inputs at the same time. Only connect x1 power connection (either PoE OR terminal block).\

    The ADP122 is a non-isolated PoE PD (powered device) module. The FR200 product family provides a ground scheme that isolates digital and chassis ground. Downstream equipment may modify this ground scheme by shorting chassis and digital ground together within the cabling or attached circuitry. Downstream or upstream devices that depend on isolated digital and shield/chassis grounds may experience performance degradation as a result of this equipment.

    In the event of a break in ground scheme due to installation environment and connected equipment, there is no safety concern. However, equipment that depends on ground isolation for protection or measurement may experience loss of performance including, but not limited to, inaccuracy of power measurement or power delivery or equipment damage.

    You can review additional details in the Errata document below:

    If you are having issues accessing the RTC, especially after installing a new operating system, you will need to add these lines to your config.txt file:

    You can also refer to the Raspberry PI CM4 documentation for more info. Section 2.13 under "Real time clock (RTC)" at this link:

    Functions listed in this FR202 Features section are in addition to the Factor Series Features section above, and for the FR202 system only. The below features and not available on the FR201 platform.

    Note: For the best experience, always update to the latest firmware version before testing these commands.

    Version
    Release Date
    Link
    Release Notes

    The FR202 Digital IO is connected to the CM4 via a virtual USB-CDC-ACM serial port; you can see that the USB device is detected using lsusb and OnLogic’s USB Vendor ID:

    lsusb -d 353f:

    Data can be sent to the device over its virtual serial port, which will be available in /dev :

    ls /dev | grep ACM

    The serial port can operate either as an interactive UART terminal, or as an endpoint for raw byte commands.

    The FR202’s UART shell supports line editing, history, and TAB completion. Digital inputs and outputs are collected into groups, and dio commands are performed on those groups.

    For instance, DO_G0 is “Digital Output Group 0”. A complete list of devices can be produced by running device list. Once you have selected a device, dio commands may be run:

    Subcommand
    Example
    Description

    To exit the interactive terminal and enter byte-processing mode, run the byte_mode command.

    For information about other terminal commands, see:

    When using byte mode, DIO commands are sent in the form of command packets, and each command will receive a status (and optional data) as a response.

    The command header is eight bytes in length:

    Bytes
    Description
    Options

    All command headers must indicate the type of data to follow, by setting the command kind:

    Kind
    Value (u8)
    Size
    Description

    Each command sent will recieve a response from the microcontroller. This response may contain data, but can always be examined to determine if the command succeeded.

    Code
    Value
    Description

    The DIO command format is as follows:

    Bytes
    Description
    Options

    The digital IO command supports the following actions:

    Action
    Value (u8)
    Description

    A sample application demonstrating some simple features of the display is provided for each of the supported Operating systems here:

    On systems pre-installed with an OS from OnLogic, the display demo files are located under /usr/sbin/demo-display and /etc/systemd/system/demo-display.service

    Pieces of this sample package are referenced in the display sections following. It also ships on all OnLogic-provided Pi OS and Ubuntu software images, enabled by default. To disable it, run sudo systemctl disable demo-display from a terminal window.

    If you have deployed Bookworm onto your Factor unit since receiving it you may see the demo program not work right away. If you see this behavior please type `raspi-config` in the Linux terminal, select `Interface Options` then select `I2C` and enable it.

    Display Controller:

    Controlling the Backlight

    Touch Controller:

    Display backlight is controlled by an i2c expander at 0x3C on I2C1.

    The OnLogic-provided utility “fr202-i2c” can control the backlight with the commands:

    Enable: fr202-i2c set p7v6_shdn 0

    Disable: fr202-i2c set p7v6_shdn 1

    A list of other controllable signals is available in the help text for the tool. It is provided with the display code samples as well as

    The backlight can also be enabled using the i2ctools utilities as follows:

    Configure GPIO IC: i2cset -y 1 0x3c 0x03 0x81

    Enable: i2cset -y 1 0x3c 0x01 0xbf

    Disable: i2cset -y 1 0x3c 0x01 0xff

    pip install st7789

    apt install python3-rpi.gpio python3-spidev python3-pil python3-numpy

    The provided python example “demo-display” demonstrates the use of Python’s PIL and the ST7789 display library to display static images and text. It runs as a service in OnLogic-provided Pi OS and Ubuntu installations as well.

    pip install opencv-python

    apt install libatlas-base-dev

    pip install -U numpy

    The separately provided “st7789-video” demonstrates the use of opencv’s video library to show a video on-screen. By default, the sample is configured to read and display a video called “test.avi” in the same folder as the application. A video is not provided.

    The ADC is attached to SPI 4 CS0. Look for this device name in your OS hardware list. Example:

    /dev/spidev4.0

    The ADC part number is LTC2448; a description of the SPI protocol can be found in the device manual .

    An example of accessing the ADC can be found in the FR202-demo program as well. You can download it from . Search for “adc” in the demo-display file for examples.

    All ADC channels are differential and configured as follows: ANALOG IN 0: Channel 0+1

    ANALOG IN 1: Channel 2+3

    ANALOG IN 2: Channel 4+5

    ANALOG IN 3: Channel 6+7

    TEMPERATURE 0: SENSOR Channel 8+9, REFERENCE Channel 10+11

    TEMPERATURE 0: SENSOR Channel 12+13, REFERENCE Channel 14+15

    ***This has been resolved with a new image deployment as of Mid-August 2025 but systems from January-August 2025 may still experience this issue and will require the workaround below or a reimage***

    Starting in the beginning of 2025, our Raspberry Pi OS image files had an automatic service included to help manage the FR202 display. Services are programs that automatically launch and run in the background in Linux operating systems. This service is included in both the FR201 and FR202 as they utilize the same motherboard/processing units, and therefore have the same image files. We had found that this specific service can lead to error messages on the FR201 as it is searching for hardware that is not present in the system. This can lead to larger than necessary log files, which can consume storage space unnecessarily.

    On the FR202 this service makes the LCD screen show the screen-test outputs, and the demo-display files can be modified to match the specific use case. This service identifies the FR202 hardware and runs properly, but on FR201s it fails since that hardware is not present. When it fails, this results in repeated lines of errors captured in the OS error logs. Essentially, it can consume storage space, and may cause concerns for those who are unaware.

    The OS images this affects are our Raspberry Pi OS images (full/lite, and 32/64 bit). The original revision images were used through the end of December 2024, with the new revision that includes this service starting to be used at the beginning of January 2025. Ubuntu does not have the service included.

    Because of our OS file management, FR201s and FR202s use the same image files. This means that the demo-display and service setup always happen, regardless of the system model. We recommend disabling the service in the following cases:

    • User has an FR201

    • User has an FR202 and doesn't have/want to use the LCD

    For those that want to see if the service is running, they can run the following command:

    systemctl list-units --type=service --state=running

    If the service is running, and it needs to be disabled, the following two commands should be run:

    sudo systemctl stop demo-display.service sudo systemctl disable demo-display.service

    To check if the demo-display file is installed, it is located under the /usr/sbin directory.

    If you are encountering general issues with your FR200 series system, such as the Real-Time-Clock (RTC) disconnecting, various ports not being detected, or features not working as expected, make sure you’re using the OnLogic provided config.txt and usercfg.txt files. These add additional functionality to the system, and allow the Raspberry Pi CM4 module to properly interface with the OnLogic designed FR200 series daughterboards. You can download the files from the section above.

    You should make sure that any Factor (FR201 and FR202) units have the following lines in the config.txt file:

    For the FR202 specifically, you will also need to ensure the config.txt file includes:

    CPU Panic error messages may be see during/after an OS installation due to using an older or malfunctioning USB drive. Please make sure to use a USB 3.0 drive or newer, installed into the USB 3.0 slot on the Factor system. A different USB drive may also need to be used.

    If one of the Ethernet ports is not detected or shows as Disabled in Ubuntu, you can follow these steps to add it into Netplan and enable it.

    1. Run the following command:

    1. Look for the Logical name, which is required in the next step, and run the following commands

    1. Add the logical name (found in Step 2) to the 50-cloud-init.yaml file. See an example below:

    1. Close and save, then run the following commands


    If the TPM modules is not working properly, refer to the section above for installing and configuring the necessary files.


    Booting Ubuntu via USB may result in a black screen if the eMMC has an OS image on it. Wiping the eMMC and/or M.2 drive is recommended if that is encountered.


    Some operating system versions require different config.txt settings to make the power indicator light function. If your Factor unit is otherwise functional, but the power indicator light is not lighting up, this is likely an issue with the config.txt file. Look for the following lines in the file:

    Replace those lines with


    If you’re seeing issues using the FR202 LCD display, or seeing errors when running the FR202-demo scripts, make the following changes to your config.txt file:

    Delete/comment out:

    dtparam=spi=on

    Add:

    dtoverlay=spi4-1cs dtoverlay=spi3-1cs,cs0_pin=24 dtoverlay=i2c5,pins12_13=on,baudrate=40000

    After making any changes, save and restart the operating system.

    The Factor’s CM4 compute module has a built-in Wi-Fi antenna that it uses by default instead of the attached external antenna. The config file /boot/firmware/config.txt (or /boot/config.txt depending on your OS) may need to be updated for the CM4 to use the external antenna to connect to Wi-Fi instead of its internal one. To do this, open the specified config file and add the line ‘dtparam=ant2’, save, and then reboot your system. This should provide a noticeable improvement in Wi-Fi speeds.

    In a Factor with 4G LTE and Wi-Fi, there can be an issue where the devices “compete” for priority over each other, preventing them from connecting properly to the internet. To resolve this, you will need to set the priorities for the devices in the ‘/etc/dhcpcd.conf’ file for the Raspberry Pi OS and in the netplan configuration for the Ubuntu OS. You can do this by entering the following into the configuration file:

    interface wlan0 metric 100 interface eth0 metric 200

    The lower the metric, the higher priority. So in this example, the WIFI device (wlan0) will take priority over the ethernet. What that is doing is ensuring that the WIFI device’s default route is being used to route network traffic. The customer may need to set priorities for each network device, which for Factor is eth0, eth1, wlan0, and usb0, where usb0 is the AMIT card.

    The Out-of-Box version of the following operating systems on the FR200 systems can encounter issues with the NWK300 modem where you may not be able to set up the modem properly:

    • Raspberry Pi (Bullseye)

    • Raspberry Pi Lite (Bullseye)

    • Ubuntu Desktop/Server 20.04 - 32 Bit

    • Ubuntu Desktop/Server 22.04

    The issue can be resolved by running an OS update. Run the command:

    'sudo apt update && sudo apt upgrade'

    And the system should be able to use the modem normally. This issue is not present in the Bookworm or Ubuntu 24.04 operating systems.

  • The system is now ready for use.

  • The system is now ready for use.

  • Note: the screws will not line up if the module is rotate 180 degrees.

  • Download the the zipped file below and copy them to the boot partition, overwriting the existing two files

  • Power the system back on and it will boot up into the operating system. The installation is now complete.
    Download the the zipped file below and copy them to the boot partition, overwriting the existing two files

    Sit tight while the installation proceeds. This will take at least 10 minutes.

  • After the installation completes, type ‘sudo reboot’ and press enter.

  • The unit will reboot into the desktop environment.

  • Extract the download to a folder. Example: tar -xf libftdi1-1.5.tar.bz2
  • Build the library and the FTDI EEPROM tool:

    • mkdir libftdi1-1.5/build && cd libftdi1-1.5/build

    • cmake -DCMAKE_INSTALL_PREFIX="/usr" ../

    • make && sudo make install

  • Alternatively, you can also clone libFTDI with git: git clone git://developer.intra2net.com/libftdi

  • RS485 – wget static.onlogic.com/resources/firmware/documentation/configs/FR200_RS485.conf

  • Flash the EEPROM image: sudo ftdi_eeprom --flash-eeprom FR200_<protocol>.conf

    • RS232 Example: sudo ftdi_eeprom --flash-eeprom FR200_RS232.conf

  • Reboot for changes to take effect: sudo shutdown -r now

  • Initial launch

    num

    dio num DO_G0 ouputs

    Report the number of input/output pins available to an IO bank

    mode

    dio mode DO_G0 open-drain

    Configure digital outputs to source or sink current, when supported

    pwm

    dio pwm DO_G0 0 1000000 50

    Set an output as PWM with period in microseconds, and duty in percent

    edge

    dio edge DO_G0 0

    Get the number of rising and falling edges detected by a digital input

    2 – 3

    The status of the last command

    Should be zero when sending a command, one of Status Codes when receiving

    4

    The length of the transfered command data

    Must be less than 56, and equal to the length of the command body in bytes

    5-7

    Reserved

    Must be 0x00

    6 bytes

    Sideband configuration and reporting for CAN devices

    Reset

    0x02

    0 bytes

    Causes a cold-reset of the microcontroller

    Version

    0x03

    8 bytes

    Reports the firmware version of the running application image

    Ignition

    0x04

    10 bytes

    Configures automotive and power features on supported devices

    Disable

    0x05

    0 bytes

    Disables byte processing of incoming data, and returns to an interactive shell

    Unbound Device

    0x0002

    The device targetted exists, but the MCU was unable to attach to and communicate with it

    DIO – Invalid Pin

    0x0003

    The target pin exceeded the number of inputs or outputs actually present

    DIO – Pin Read Failed

    0x0004

    Reading the state of the targetted pin failed for an unknown reason

    DIO – Pin Write Faield

    0x0005

    Writing the state of the targetted pin failed for an unknown reason

    DIO – Set Mode Unsupported

    0x0006

    Setting the DIO mode to push-pull or sink-source is not supported

    Invalid Command

    0x0007

    The subcommand requested was outside of the valid range for the message kind

    Bad Message Kind

    0x0008

    The message kind was not one of Valid Command Kinds

    Version – Read Failed

    0x0009

    Reading the application version failed for an unknown reason

    2

    The pin index to get or set

    The output pin index starts at 0, the input index starts at 0 + n-outputs

    3

    The current state of the pin (if read), or the state to set (if written), or the mode to set (mode 0=sourcing, mode 1=sinking)

    0 or 1

    4 – 7

    The edge-count of the pin, or the number of inputs/outputs

    0 – MAX_UNSIGNED_INT (u32)

    Set Count

    0x02

    Set the edge count of a digital input to the passed value

    Set Mode

    0x03

    Switch between sink-source and open-collector drive mode on supported hardware

    Num Devices

    0x04

    Reports the number of DIO banks available on the device

    Num Outputs

    0x05

    Reports the number of outputs available to the indicated device

    Num Inputs

    0x06

    Reports the number of inputs available to the indicated device

    dtoverlay=i2c1,pins_44_45=on
    dtoverlay=i2c-rtc,pcf85063a=on

    1.3.1.0

    09/15/2023

    Download

    Improves the stability of the “byte mode” protocol

    1.2.5.1

    set

    dio set DO_G0 0 true

    Set the logical state of a digital output to true or false

    get

    dio get DO_G0 output 0

    Get the current logical state of a digital input or ouput

    0

    The message ‘start of frame’ byte.

    Must be 0x01, or the message will be rejected. For non request/response frames, it is instead set as 0x02

    1

    Indicates the kind of command transmitted

    Must be one of the Valid Command Kinds

    DIO

    0x00

    8 bytes

    Commands that get and set the state of MCU controlled digital IO banks

    CAN

    Success

    0x0000

    The last command was processed successfully

    Invalid Device

    0x0001

    The device indicated by the command exceeded the number of devices available to the system

    0

    The DIO action to perform on the device

    Must be one of DIO Actions

    1

    The bank of digital IO to target, or the number of devices

    Must be between 0 and the number of DIO banks available on the platform

    Get

    0x00

    Read the state and count of an input, or just the state of an output

    Set

    0x01

    Set the logical state of a digital output

    # Enable the audio output, I2C and SPI interfaces on the GPIO header. As these
    # parameters related to the base device-tree they must appear *before* any
    # other dtoverlay= specification
    dtparam=audio=on
    dtparam=i2c_arm=on
    #dtparam=spi=on
    dtoverlay=spi4-1cs
    dtoverlay=spi3-1cs,cs0_pin=24
    dtoverlay=i2c5,pins12_13=on,baudrate=40000
    lshw
    Network: DISABLED
    cd /etc
    cd netplan
    sudo nano 50-cloud-init.yaml
    sudo netplan apply
    reboot
    dtparam=pwr_led_trigger=backlight
    drparam=pwr_led_activelow=on
    dtparam=pwr_led_trigger=default-on
    dtparam=pwr_led_activelow=off

    FAQs

    How is auto power on enabled?

    Auto power on is permanently enabled on this model. The unit will automatically turn on when supplied with power.

    What is the default username/password?

    You will be prompted to change this when logging in for the first time Raspberry Pi OS: pi/raspberry ubuntu: ubuntu/ubuntu

    Which Operating Systems are supported?

    The following operating systems have been validated by OnLogic. Other operating systems are not likely to work and are not eligible for support from OnLogic. Installation instructions can be found further down on this page. Refer to the contents pane on the right.

    Raspberry Pi OS Lite (32bit & 64bit)[Bullseye & Bookworm] Raspberry Pi OS (32bit & 64bit)[Bullseye & Bookworm]

    Ubuntu Desktop 22.04 (32bit & 64bit) Ubuntu Desktop 20.04 (32bit)

    Ubuntu Server 22.04 (32bit & 64bit) Ubuntu Server 20.04 (32bit)

    How do I erase the M.2 Storage?

    The boot order is hardcoded. The best approach is to temporarily remove the M.2 storage drive, boot via USB, and then reconnect the M.2 storage once booted. It can then be erased.

    How can I install my own Linux image?

    When installing your own OS, make sure to use the OnLogic config.txt and usercfg.txt files. These allow the OnLogic designed FR200 series daughterboards to function properly. You can download the needed files from here.

    How does the serial port enumerate?

    The serial port typically enumerates as /dev/ttyUSB0. If you have a USB drive connected, it will use the next lowest number (i.e. /dev/ttyUSB1). The hardware ID of the serial port chip is F81439A.

    What is the Config.txt file for?

    Raspberry Pi modules do not use a BIOS like traditional desktop computers. Intead, they use Config.txt and Usercfg.txt files. Raspberry Pi has details about the files and use here .

    System Setup

    First Boot

    - No OS

    Raspberry Pi OS

    - Raspberry Pi OS (Lite)

    - Ubuntu Desktop

    - Ubuntu Server

    Internal Access

    FR201

    FR202

    OS Installation

    For USB drive installations, make sure to use a USB 3.0 or newer.

    Raspberry PI OS (SATA M.2)

    Raspberry Pi OS (eMMC)

    Ubuntu (SATA M.2)

    Ubuntu (eMMC)

    32Bit Ubuntu Desktop

    Storage Management

    eMMC/SATA M.2 Wipe (Other PC)

    eMMC/SATA M.2 Wipe (DD Command)

    Factor Features

    Serial Mode Configuration

    EEPROM Tool Installation

    Configuration Settings

    TPM

    PoE

    ADP125

    ADP122

    Enabling the Real Time Clock (RTC)

    FR202 Features

    Firmware Updates

    Digital IO (DIO)

    UART Terminal

    Byte Mode

    Front Display

    Demo Application

    Display IC Part Numbers

    Images, Text, and Touch via Python

    Video via Python

    ADC (Analog/Digital Converter)

    Troubleshooting

    Demo Display Service Disclaimer

    General OS/System Issues

    CPU Panic error messages

    Missing/Disabled Ethernet (Ubuntu)

    TPM Module Issues

    USB Boot Black Screen

    Power LED Off

    Display Demo Issues

    Slow Wi-Fi Speeds

    Wi-Fi/Modem Connectivity

    NWK300 Modem Issues

    Raspberry Pi imager
    Download
    Download
    Download
    Download
    Raspberry Pi Firmware Tool
    Download
    Download
    Download
    Download
    FAQs section above
    Download
    First Boot
    FAQs section above
    supported version
    Download
    https://www.intra2net.com/en/developer/libftdi/download.php
    RS232
    RS422
    FR200 Series TPM Files
    https://datasheets.raspberrypi.com/cm4io/cm4io-datasheet.pdf
    Shell Commands
    Bullseye Demo Program
    Bookworm DEMO Program
    ST7789V
    ST1633i
    example
    here
    here
    Manual and Downloads
    Diagnostic screen shown when no operating system is found.
    29KB
    Factor-PoE-Errata-RP-01.pdf
    PDF
    Open
    TPM

    Initial launch

    0x01

    Download