Skip to main content

Pykarbon Module

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()

Metadata

Release files for pykarbon 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pykarbon 1.2.0
File Size Uploaded
pykarbon-1.2.0.tar.gz 28.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pykarbon 1.2.0
File Interpreter ABI Platform
pykarbon-1.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 55.7 kB

Release files / pykarbon-1.2.0.tar.gz

Download URL pykarbon-1.2.0.tar.gz
Size 28.7 kB
Tags Source
SHA-256 checksum
How to use checksums
61dcddd7ab2245100a200b4c5e1e4506142ad354eca168265748d13e75291bb4
BLAKE2b-256 checksum
How to use checksums
e92baaf87ce90d0414fa28df29b2075124318f6fa8e5ccc403d984662c1907c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.6

Release files / pykarbon-1.2.0-py3-none-any.whl

Download URL pykarbon-1.2.0-py3-none-any.whl
Size 27.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
15db53553ee1a5d0f6cfc7cd350d370775b6328ae063f5dcc35a845fb9b06b52
BLAKE2b-256 checksum
How to use checksums
4564072b59a725c339dbf62944928ee264caf465a46f92c1aa153ef7d0ff0f56
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.6

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 release files

1.1.9

2 release files

1.1.8

2 release files

1.1.7

2 release files

1.1.5

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.0

2 release files

1.0.5

2 release files

1.0.3

2 release files

1.0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page