Skip to main content

For the full rundown, read the rest of the docs.

What is it?

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 a few other hardware devices.

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

The tools in this package are designed to work with specific hardware; this will not work for more generalized projects

How do I use it?

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

Getting started with pykarbon takes only a few minutes:

  • Open up a terminal, and run pip install pykarbon

    • On some systems you may need to run as admin, or use the --user flag

  • Launch a python shell with python

    • Usually linux users do not have write access to serial ports; grant your user permanent access with usermod -a -G dialout $USER or use sudo python

  • Import pykarbon with import pykarbon.pykarbon as pk

  • And finally create a control object using dev = pk.Karbon()

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:

  • dev.show_info()

And close our session:

  • dev.close()

What else can I do?

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 function calls based on these bus events:

    • CAN data IDs

    • Digital Input Events

    • DIO Bus States (Allows partial 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

    • Etc.

  • Firmware update

Additonally, as Pykarbon’s CAN and Terminal sessions must connect to device serial ports, functionality has been added to allow running these sessions using a context manager:

import pykarbon.pykarbon as pk
import pykarbon.can as pkc

with pk.Karbon() as dev:
    dev.show_info()

with pkc.Session() as dev:
    dev.write(0x123, 0x11223344)

A Simple Example: Pykarbon.Core

import pykarbon.core as pkcore

# Set up interfaces:
can = pkcore.Can()
term = pkcore.Terminal()

# Claim the serial ports for use:
can.claim()
term.claim()

# Configure the can baudrate, and view that config
term.command('set can-baudrate 800')

print("\nRead User Configuration:")
term.print_command('config')

# Write a message, and then listen for and print responses
can.send(0x123, 0x11223344)

print("\nMonitoring CAN Bus, Press CTRL+C to Stop!")
can.sniff() # Will block until you exit with ctrl+c

# Close the ports!
can.release()
term.release()

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pykarbon-1.2.0.tar.gz (28.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pykarbon-1.2.0-py3-none-any.whl (27.1 kB view details)

Uploaded Python 3

File details

Details for the file pykarbon-1.2.0.tar.gz.

File metadata

  • Download URL: pykarbon-1.2.0.tar.gz
  • Upload date:
  • Size: 28.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for pykarbon-1.2.0.tar.gz
Algorithm Hash digest
SHA256 61dcddd7ab2245100a200b4c5e1e4506142ad354eca168265748d13e75291bb4
MD5 ca022eb60779596cc55aa329c771335c
BLAKE2b-256 e92baaf87ce90d0414fa28df29b2075124318f6fa8e5ccc403d984662c1907c0

See more details on using hashes here.

File details

Details for the file pykarbon-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: pykarbon-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 27.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for pykarbon-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 15db53553ee1a5d0f6cfc7cd350d370775b6328ae063f5dcc35a845fb9b06b52
MD5 30d09023f5a01f43149830779fa0094d
BLAKE2b-256 4564072b59a725c339dbf62944928ee264caf465a46f92c1aa153ef7d0ff0f56

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 files

1.1.9

2 files

1.1.8

2 files

1.1.7

2 files

1.1.5

2 files

1.1.3

2 files

1.1.2

2 files

1.1.0

2 files

1.0.5

2 files

1.0.3

2 files

1.0.2

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page