1. Home
  2. OnLogic Systems
  3. Rugged Line
  4. Karbon Series
  5. Karbon 800 Series Technical Resources

Karbon 800 Series Technical Resources

Manual and Documents

K800 Spec Sheet & Dimensional Drawings

K800 Series Product Manual

K800 Series BIOS Manual

K800 Windows 10/11 Drivers

K800 Windows 10/11 Drivers (INF Files for deployment systems)

PuTTY Tool

BIOS Updates

VersionLink
1.30coming soon

Frequently Asked Questions (FAQ)

What PoE standards does the optional PoE module support?

802.3at – up to 25.5 watts per port

How do I enable auto power on?

Enter the BIOS and go to Advanced > PCH-IO Configuration > State After G3. Set it to [S5 State]. See below for a step by step guide.

What versions of Windows are supported?

Windows 11 is supported. Windows 10 build 20H2 and later are supported. In most applications it is NOT necessary to disable the e-cores.

What versions of Linux are supported?

The K800 will not officially support Linux until Ubuntu 22.04 is updated with Kernel 5.17. Currently the best option for Linux evaluation (not production use) is Ubuntu 20.04.4 with minor tweaks. Perform a standard install of 20.04.4 and then use either:
The OEM 5.14 kernel from the repo:
https://wiki.ubuntu.com/Kernel/OEMKernel
Or 5.17 from this PPA:
https://www.linuxcapable.com/how-to-install-linux-kernel-5-17-on-ubuntu-20-04-lts/

Note that OnLogic can not assist with Linux related issues. Again, Linux is not ready for production use on this platform. We will offer basic Linux troubleshooting once it is officially supported.

Clearing the CMOS

If the K800 fails to power on or is otherwise unresponsive, a CMOS reset may help. Follow the procedure outlined below to clear the CMOS.

  • Unplug the system completely – remove power and all peripherals
  • Straighten a paperclip
  • Locate the unlabeled CMOS reset hole next to the HDD LED
  • Using the paperclip, depress the button inside for 30 seconds.
  • Reconnect the system and turn it back on.
  • Do not touch the system for 2 minutes. It may reboot several times while it reconfigures the CMOS.
  • If successful, the unit should boot back up and run normally. It is now ready to use again. If the unit is still not responsive, reboot it one more time and then contact OnLogic Tech Support.

Enabling Auto Power On

The K800 can be configured to turn on automatically when DC power is connected. This is useful for power outage recovery or if the unit is mounted in a hard to reach location. You can enable Auto Power On by following the steps listed below.

  • Note: In future revisions the name of this setting will be changed. “Auto power ON’ under the Power tab will be the new name and location.
  • Power on the system and press Del a few times to access the “Front Page” menu
  • Choose “Setup Utility”
  • Navigate to Advanced > PCH-IO Configuration
  • Locate “State After G3”
  • Change it to”S5 State” to enable auto power on.
  • Press F10 to Save & Exit

K801 Disassembly

Opening the system does not void the manufacturer’s warranty, however, some precautions are necessary to avoid damaging the unit.

  • Perform this disassembly in an area free of static discharge
  • Before beginning, touch a grounded metal surface to discharge your body of static electricity
  • Turn the unit upside down and remove the 6 screws from the bottom plate.
  • Pry the bottom plate off
  • In case the thermal pads become displaced during disassembly, a reference guide is shown below. Note that the blue film will not be present as it is removed during initial assembly.

K802 Disassembly

Opening the system does not void the manufacturer’s warranty, however, some precautions are necessary to avoid damaging the unit.

  • Perform this disassembly in an area free of static discharge
  • Before beginning, touch a grounded metal surface to discharge your body of static electricity
  • Turn the unit upside down and remove the 6 screws from the bottom plate.
  • Pry the bottom plate off
  • Unplug the SATA power and data cables (if equipped)
  • Grab the metal plate where shown
  • Lift upwards and pull towards you to remove the plate
  • In case the thermal pads become displaced during disassembly, a reference guide is shown below. Note that the blue film will not be present as it is removed during initial assembly.

K803 Disassembly

Opening the system does not void the manufacturer’s warranty, however, some precautions are necessary to avoid damaging the unit.

  • Perform this disassembly in an area free of static discharge
  • Before beginning, touch a grounded metal surface to discharge your body of static electricity
  • Turn the unit upside down and remove the 6 screws from the bottom plate.
  • Pry the bottom plate off
  • The internals of the system can now be accessed.
  • If needed, the metal plate can be lifted upwards slightly. For example to access the RAM slots.

Installing a PCIe Card (K803)

  • Remove the retaining screw from the outside of the case.
  • Remove the metal slot cover.
  • Insert the PCIe card into the slot. Ensure it fully seats.
  • Loosen the screws on the brace bracket. Move the bracket so it touches the card. This will prevent it from moving.
  • Tighten the screws back down.
  • Reinstall the external mounting screw.
  • Card installation complete.

K804 Disassembly

Opening the system does not void the manufacturer’s warranty, however, some precautions are necessary to avoid damaging the unit.

  • Perform this disassembly in an area free of static discharge
  • Before beginning, touch a grounded metal surface to discharge your body of static electricity
  • Turn the system upside down and remove the 6 Torx T8 screws from the sides.
  • Remove the bottom plate.

Installing a PCIe Card (K804)

  • Remove the two exterior screws from the PCIe retention bracket.
  • Remove the PCIe blanks.
  • If you are installing a single slot card, snap them apart and reinstall 1 into the upper slot.

  • Insert the PCIe card
  • Ensure it clicks into the slot and the backplate slots into the system.
  • Connect any required PCIe 6/8 pin power connectors. Cables can be found in your accessory box.
  • Reinstall the retention clip and hand tighten both screws.
  • Reinstall the bottom cover and the process is complete.

Installing the optional external fan

The external fan uses a magnetic dust filter. The filter should be cleaned regularly. If the filter is misplaced, our replacement part SKU is FANCPD-MESH. This can be ordered by reaching out to our sales team.

Installing M.2 Storage

  • Slide M.2 storage drive into slot
  • Gently press drive down flat and secure with M.2 screw
  • Apply thermal pad

Automotive Timings

Feature Overview

The ignition sense feature can be used to turn the Karbon unit on and off with a vehicle’s ignition. It can also be used in non-automotive applications using a switch instead.

An example configuration is shown below. The switch connects positive DC power to the IGN pin. The unit will turn on when power is applied to the IGN pin, and turn off when power is removed. These events have configurable delays.

  • todo: replace with K800 specific image.

Enabling and controlling ignition sense

  • Download the Putty tool from putty.org (link at the top of this document)
  • Look in device manager and find the highest numbered USB serial device, COM5 in this example
  • Open Putty. Set the connection type to Serial and change COM1 to COM5
  • Click “Open”
  • To confirm you have the correct port open, type “help” and press enter. The help text should appear. If it does not, try a different COM port.
  • The following shows an example configuration for automotive timings. Enter each command one by one.
  • For further help text, type lpmcu config
CommandEffect
lpmcu config automotive-mode trueEnables automotive mode
lpmcu config startup-timer 10turn on 10 seconds after IGN pin receives power
lpmcu config hard-off-timer 60force shutdown system after 60 seconds (failsafe to protect battery)
lpmcu config soft-off-timer 20shutdown 20 seconds after IGN pin loses power

Embedded MCU

The Karbon 800 has an embedded NXP i.MX RT1050-series microcontroller that can communicate with the host processor over USB. Its features include:

  • Configuring the system LEDs
  • Reading/writing the system DIO
  • Using system Digital Outputs in PWM mode
  • Configuring system automotive settings
  • Managing the system CAN interface

To provide access to these features, the MCU supports a composite USB-CDC VCOM connection (VID: 0x353F, PID: 0xA101):

  • Interface 0: A UART terminal supporting commands for a range of features
  • Interface 2: A dedicate USB serial CAN interface
C:\Users>python -m serial.tools.list_ports -v

COM15
    desc: USB Serial Device (COM15)
    hwid: USB VID:PID=353F:A101 SER=500100D20F3861D2 LOCATION=1-11:x.2 <--- CAN Port
COM16
    desc: USB Serial Device (COM16)
    hwid: USB VID:PID=353F:A101 SER=500100D20F3861D2 LOCATION=1-11:x.0 <--- UART Port

The mcu shell is a fully-featured virtual UART shell exposed over the MCU’s first USB CDC-ACM interface. This shell supports both command history and line editing, and can optionally serve as an output target for driver log messages. For a complete command reference see, the shell command reference.

Updates

In order to support over-the-air firmware updates, the K800 has a two stage bootloader; a ROM bootloader, that can be started with physical access to the system, and a USB bootloader that supports updates from the OS.

Entering the ROM Bootloader (manual):

  1. Detach the K800 system from wall power
  2. Use a paper clip to depress the settings switch located above the front USB 3.0 ports
  3. With the switch held down, re-attach system power
  4. The MCU should now boot into the NXP ROM bootloader

Entering the USB Bootloader (manual):

  1. Boot the K800 to the operating system
  2. Use a paper clip to depress the settings switch located above the front USB 3.0 ports
  3. With the switch held down, send the ‘reset’ command to the MCU’s UART port
  4. The MCU should now boot into the second stage USB bootloader

DIO & LEDs

All digital inputs/outputs support reading the current logical state of the pin. Digital outputs additionally support setting the output state of the pin, and digital inputs support reporting the transition count of the pin (both edges). The K800 also support configuring digital outputs as PWMs, and configuring the PWM output’s pulse and duty cycle.

Examples:

# Turn on LED 0 output
uart:~$ dio set LED0 0 true
# Check the state of Digital Input 0
uart:~$: dio get DIO0 input 0

CAN

The Karbon 800 has an on-board CAN 2.0 A/B interface. The CAN interface supports configurable baudrates from 100k – 1M, and two message parsing modes:

# Change the parser mode to 'slcan'
uart:~$ set can-mode slcan
# Set the can-baudrate to 1M
uart:~$ set can-baudrate 1000

When in slcan parsing mode, the K800 CAN interface can be used with linux ‘slcand’ utilities, which support socket can over serial. To get up and running with slcan, start by installing can-utils:

$ sudo apt install can-utils

Then, detect and setup the Karbon can interface. For example:

#! /bin/bash

# ASCII Command vs CAN Bitrate
# s0 --- s1 --- s2 --- s3 --- s4 --- s5 --- s6 --- s7 --- s8
# 10     20     50     100    125    250    500    800    1000  Kbits/s
BAUD=8

# Name of slcan device to attach
DEV=can0


# Detect correct port for device interfaces
TERM_PORT=$(ls -l /dev/serial/by-id/ | grep 3f35_a101 | sed 's/.*\///g' | awk '{if(NR==2) print $0}')
CANB_PORT=$(ls -l /dev/serial/by-id/ | grep 3f35_a101 | sed 's/.*\///g' | awk '{if(NR==1) print $0}')

# Start or stop the service
while getopts ":ks" opt; do
    case $opt in
        k)
            # Stop the SLCAN service and turn off the can device
            echo "Shutting down can interface..."
            sudo ifconfig $DEV down 2> /dev/null
            sudo pkill slcand

            sudo slcand -c /dev/"$CANB_PORT"
            sudo pkill slcand
            ;;
        s)
            # Open the can device, and start the slcan service.
            echo "Terminal interface on: $TERM_PORT"
            echo "CAN Bus  interface on: $CANB_PORT"

            # Set the mode to slcan
            echo -ne "set can-mode slcan" > /dev/$TERM_PORT

            echo "Attaching slcan device..."

            # Attach to the port with slcand
            sudo slcand -s$BAUD -o /dev/"$CANB_PORT" $DEV

            # Give interface time to come up
            sleep .25

            # Enable the inteface
            sudo ifconfig $DEV up
            sudo ifconfig $DEV txqueuelen 1000

            echo "Interface is set up."
            ;;
        \?)
            echo "Invalid option: -$OPTARG" >&2
            exit 1
            ;;
        :)
            echo "Option -$OPTARG requires an argument." >&2
            exit 1
            ;;
    esac
done
Updated on June 27, 2022

Was this article helpful?

Related Articles

Need Additional Support?
Can’t find the answer you’re looking for? Don’t worry, we’re here to help!
Contact Support