Skip to content
You must be logged in to sponsor mac-can

Become a sponsor to Uwe Vogt

@mac-can

Uwe Vogt

mac-can
Berlin, Germany

Running CAN and CAN FD on a Mac is the mission of the MacCAN project. Many companies offering multifarious CAN hardware and CAN software, but only few of them provide a driver for macOS.

In the absence of a CAN driver for my Mac, I started to develop an OS X user-space driver for my PEAK USB-to-CAN dongle a few years ago. The driver has achieved a high degree of stability, not least because of its test coverage of about 425 test cases, but it is closed source for various reasons.

For my CAN adapters from other manufacturers, I have launched open-source projects for the development of user-space drivers and basic utilities. Not all features are implemented yet and not all device variants are supported. It is still a hard work until the drivers will be feature-complete and will have reached the required stability. The projects also share many common code parts that need be kept in sync.

I pursue a kind of test-first approach: 1st creating test cases for a new function, 2nd executing the test cases on the Windows system against the original driver from the adaptor vendor, and 3rd developing the new function on the Mac and running the test cases as long as no test case fails anymore. To run the complete regression test suite for all my CAN adapters on all my systems, it takes a whole Saturday afternoon and sometimes longer.

Last but not least, Apple introduced the new M1 chip for its hardware. This means for me that I have to buy a new Mac with the M1 chip to provide and test the drivers for this architecture.

Short-term Tasks

Of course, this includes root causing and bug fixing. I still make mistakes after all these years of programming.

Medium-term Goals

As for any other software project, the objectives for the MacCAN project are feature completeness as well as code quality and stability. To achieve this, the code must be tested, tested, and tested again. For this, the projects cannot use a remote CI/CD system. For regression testing, two CAN adapter connected to the test computer and an additional CAN adapter connected to a neutral computer (as traffic generator for stress tests) is required. Testing of the MacCAN drivers is very time consuming and causes hardware costs.

A long-term Vision

Since I started my own development of CAN software, I have been pursuing the goal of a multi-vendor, cross-platform CAN adapter API. Because the OEM APIs are not compatible to each other, I have defined a CAN Interface Wrapper specification. A loader library, which in turn loads a selected wrapper library, is in the pipeline for macOS, Windows and possibly Linux, and will be made public soon. This repo will then also contain the regressions test suite.

A future vision of the MacCAN project is the development of beautiful macOS Apps with SwiftUI. A basic CAN Monitor App that can be extended by add-ons, for example to record CAN traces in different formats, to launch client Apps for visualizing CAN data, a script engine to automate CAN test sequences, etc.

Benefits

Your Benefits

You contribute to the development and the testing of the code to make it more and more stable. The MacCAN community will be happy about that. Also, if you want, you can run CAN on your Mac and develop beautiful CAN applications for the Mac based on a stable driver respectively library.

Depending on the amount of your donation (and assuming your consent), I will mention you on my blog, follow you on GitHub and Twitter, link you with your avatar image on my GitHub Pages site, and announce your donation on social media (Twitter and LinkedIn).

My Benefits

These projects are developed and maintained in my spare time. I make my living through freelance projects.
If you support me with a small or generous donation, I can finance my hardware costs and spend more time on my open-source projects. Or I can give up my freelance work completely.

@mac-can

for the testing and bug-fixing of the code to make it more and more stable.

Current sponsors 2

@TravisJoe
@Torrox-GmbH-Co-KG

Past sponsors 3

@rusoku
@sbi-lm
@sanssecours

Featured work

  1. mac-can/RusokuCAN.dylib

    macOS® Driver and SDK for TouCAN USB Interfaces from Rusoku

    C++ 5
  2. mac-can/SerialCAN

    Library for CAN-over-Serial-Line Interfaces (SLCAN Protocol)

  3. mac-can/PCBUSB-Monitor

    CAN Monitor App for macOS®

    C 3
  4. mac-can/PCBUSB-Wrapper

    macOS® Wrapper Library for PCAN-USB Interfaces from Peak-System

    C++ 1
  5. mac-can/KvaserCAN-Library

    macOS® Driver and SDK for USB CAN Interfaces from Kvaser

    C++ 14

2% towards $1,000 per month goal

@TravisJoe @Torrox-GmbH-Co-KG

TravisJoe and 1 other sponsor this goal

Select a tier

$ a month

Choose a custom amount.

$1 a month

Select
  • Every dollar counts ❤️

$5 a month

Select
  • I can publish one HowTo instruction including a code snippet as a gist.

Your Benefits:

  • I will mention you on my blog (under the category "Sponsors").

$10 a month

Select
  • I can plan and track the tasks for the next month in the project board.

Your Benefits:

  • I will mention you on my blog (under the category "Sponsors").
  • I will follow you on GitHub and Twitter (if you have an account).

$50 a month

Select
  • I can write one section of the documentation (API reference) in the project Wiki.

Your Benefits:

  • I will mention you on my blog (under the category "Sponsors").
  • I will follow you on GitHub and Twitter (if you have an account).

$100 a month

Select
  • I can implement one new or one missing feature or replace a workaround with a resilient solution.

Your Benefits:

  • I will mention you on my blog (under the category "Sponsors").
  • I will follow you on GitHub and Twitter (if you have an account).
  • I will link you with your avatar image on my GitHub Pages site (on the "About" page).

$500 a month

Select
  • I can spend one Saturday afternoon to extend and to run the test suite. (One day I will make the test suite public, I promise!)

Your Benefits:

  • I will mention you on my blog (under the category "Sponsors").
  • I will follow you on GitHub and Twitter (if you have an account).
  • I will link you with your avatar image on my GitHub Pages site (on the "About" page).

$1,000 a month

Select
  • I can start / continue to work on a CAN Monitor App with SwiftUI (with a monthly workload of around 12 hours).

Your Benefits:

  • I will mention you on my blog (under the category "Sponsors").
  • I will follow you on GitHub and Twitter (if you have an account).
  • I will link you with your avatar image on my GitHub Pages site (on the "About" page).
  • I will link you with your avatar image on my GitHub Pages site (on the "Home" page).

$5,000 a month

Select
  • I can start / continue to work on higher-layer protocols like ISO/TP, UDS, CANopen (with a monthly workload of around 60 hours).

Your Benefits:

  • I will mention you on my blog (under the category "Sponsors").
  • I will follow you on GitHub and Twitter (if you have an account).
  • I will link you with your avatar image on my GitHub Pages site (on the "About" page).
  • I will link you with your avatar image on my GitHub Pages site (on the "Home" page).
  • I will announce your donation on social media (Twitter and LinkedIn).

$12,000 a month

Select
  • I can finally stop freelancing and fully focus on open-source projects😎 (to make CAN and CAN FD available on Mac, of course).

Your Benefits:

  • I will mention you on my blog (under the category "Sponsors").
  • I will follow you on GitHub and Twitter (if you have an account).
  • I will link you with your avatar image on my GitHub Pages site (on the "About" page).
  • I will link you with your avatar image on my GitHub Pages site (on the "Home" page).
  • I will announce your donation on social media (Twitter and LinkedIn).