Skip to content

Additional Can Protocols, including Io Expansion#6

Open
xtitoris wants to merge 19 commits intorusefi-masterfrom
io-expander-support
Open

Additional Can Protocols, including Io Expansion#6
xtitoris wants to merge 19 commits intorusefi-masterfrom
io-expander-support

Conversation

@xtitoris
Copy link
Owner

@xtitoris xtitoris commented Feb 22, 2026

Implemented additional CAN protocols

AFR:

  • Haltech W2B
  • EcuMaster L2C
  • Emtron ELC
  • Link Lambda2Can
  • Motec LTC

EGT:

  • AEMNet 2224
  • Haltech TCA
  • EcuMaster Classic
  • EcuMaster Black
  • Emtron ETC4
  • Link TCCXX
  • Motec E888

IO Expanders:

  • Haltech IO12 (sending and receiving)
  • EcuMaster SwitchBoard (sending and receiving)
  • Motec E888 (only sending, could not find enough info on received dataframes)
  • Emtron EIC16M (only sending, does not have any outputs)
  • Microsquirt IoBox (sending and receiving, based on @dron0gus branch)

Added canbus speed selection for f1_dual_rev1, as several protocols need 1Mbps
Updated ini file to allow configuring all of that
Created dbc files for all of the protocols
Bench-tested with synthetic messages for sending and receiving data

@xtitoris
Copy link
Owner Author

@dron0gus: I think here it would be a bit easier to review, as it is already synced with main rusefi branch.
@rusefillc, @mck1117: Any additional comments are welcome

@mck1117
Copy link

mck1117 commented Feb 22, 2026

it is not feasible to review a +4171 -425 PR in one shot

@rusefillc
Copy link

@xtitoris this is very impressive but :(

But unfortunately things are somewhere between unhealthy and worse - see https://github.com/mck1117/wideband/pulls

@rusefillc
Copy link

@rusefillc
Copy link

A smaller independent effort could be adjustable CAN bad rate

magic uint8_t mode is scary/fragile, I would rather that be an enum class

But again, I have no idea how any of this could move forward in light of all the above mentioned drama

const CANConfig& GetCanConfig(uint8_t mode) {
    mode &= 0x03;
    switch (mode) {
        case 0:

@xtitoris
Copy link
Owner Author

magic uint8_t mode is scary/fragile, I would rather that be an enum class

Ah, yes, forgot to clean this up.

@xtitoris
Copy link
Owner Author

it is not feasible to review a +4171 -425 PR in one shot

Yes, but it is possible to give it a cursory glance, and discuss things, like how to best split it up into more feasible chunks, or any other thoughts on the matter.

@xtitoris xtitoris force-pushed the io-expander-support branch from d18ec4f to 51ade7f Compare February 24, 2026 04:24
@xtitoris xtitoris force-pushed the rusefi-master branch 3 times, most recently from bf1ba82 to 835dada Compare February 24, 2026 04:29
@xtitoris xtitoris force-pushed the io-expander-support branch from 51ade7f to 530fe9f Compare February 24, 2026 04:30
@xtitoris xtitoris force-pushed the io-expander-support branch from 530fe9f to 600a4ad Compare February 24, 2026 04:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants