CSS ELECTRONICS - CANmod.router: 4 x CAN to 1 x CAN (or USB) Converter

The CANmod.router lets you receive/transmit CAN data (Classical or FD) from/to 4 isolated secondary CAN buses via 1 primary CAN bus (or USB).

The compact module is 100% standalone (no PC required) and offers pro specs, daisy chaining and powerful configuration options.

It can e.g. be used with the CANedge, enabling you to log 5 x CAN buses (or beyond via daisy chaining).

The device can also be used as a powerful 4 x CAN FD to USB interface with free software/API tools.

Tip: Add the DB25-to-4x-DB9 for quick installation.

PLUG & PLAY
Connect up to 4 x CAN to receive / transmit the data via 1 x CAN (or USB) - no configuration required
COMPACT
7 x 2 x 5 CM. 75G. 7 LEDs. Supply via DB9/USB. 5-26 V. Mounting flanges. USB for config/FW and streaming
PRO SPECS
4 x CAN FD. Basic galvanic isolation. Silent mode. Zero data loss. 1 ms precision. Error frame support.
MUX MODE
Transport 4 x CAN via 1 x CAN. Easily demux data. Optionally transport via CAN FD for max throughput
SEAMLESS
Fully supported by CANedge/CANmod software/API tools. As if directly interfacing the 4 x CAN buses
CONFIGURABLE
Configure filters, prescalers, transmit lists, CAN IDs, bit rates and more via JSON config and GUI


Why is the CANmod.router useful?

In many use cases you need to receive/transmit data from multiple CAN buses - but you only have one CAN interface available. This is a common challenge in data acquisition, display integrations, network extensions and more.

For example, the CANedge lets you log 2 x CAN - but what if you need to log e.g. 5 x CAN?

You might then consider the below:

  1. Join CAN buses: Not an option (different bit-rates, ID conflicts, busload, …)
  2. Change logger: Too expensive (most loggers with >2 x CAN cost thousands of EUR)
  3. Use 3 x CANedges: Costly/complex (3 x logs, imperfect cross-device time sync)

None of the above are optimal - but the CANmod.router now offers the ideal solution. Learn more below!

 

MUX MODE

Transport muxed CAN data through tunnels

In mux-mode, traffic from/to the secondary CAN buses is routed through the primary CAN bus via tunnels (CAN frames that transport the original data). Muxed data received by a user CAN node (e.g. CANedge) can be easily demuxed to its original form via software/API tools.

canmod-router-mux-mode-can-bus-gateway-v3



Interface four CAN buses with just one CAN bus (or USB)

Receive/transmit data from/to 4 x CAN buses via 1 x CAN bus (or USB) - e.g. for use by CAN loggers, ECUs or via USB streaming.

  • 4 x CAN (incl. CAN FD) with basic galvanic isolation
  • Power via DB9 (5-26 V and DB9 cables) or USB (5V)
  • Independently configure each secondary CAN interface
  • Optional silent mode and independently customizable bit rates
  • Advanced message filters and prescalers
  • Configure transmit lists - and/or control via primary CAN
  • Support for CAN error frame logging
  • Quickly connect 4 x CAN via DB25-to-4x-DB9 adapter cable
  • Daisy chain multiple modules for 8, 12, 16, ... CAN channels
The CANmod.router module lets you connect up to four isolated CAN buses (incl. FD) via the DB25 connector - and route the data through one CAN bus via the DB9 connector (or via USB)
The optional DB25-to-4x-DB9 adapter cable enables plug & play connection of the secondary isolated CAN buses using our standard DB9 adapter cables
The CANmod.router module can e.g. be used as a plug & play add-on for the CANedge (powered via 2nd port) - letting you log 1 x CAN (via CH1) + 4 x CAN (via CH2)
The CANmod.router offers vast functionality and pro specs - yet it is extremely compact, measuring only 7 x 2 x 5 CM and weighing just 75 G
The USB interface lets you stream data from/to the 4 x CAN FD interfaces (via SavvyCAN or Python), as well as update/configure the device
You can easily daisy chain multiple CANmod.router modules to add e.g. log 8 x CAN on a CANedge CH2 - and/or mix in other CANmod devices
Need to extend multiple CAN buses from e.g. a remote area? Simply combine 2 x CANmod.routers in mux-mode to automatically mux/demux the data
 
 



Example: CANedge + CANmod.router = 5 x CAN bus data logger

The CANedge supports 2 x CAN. By adding a CANmod.router, you can now log 1 x CAN (CH1) + 4 x CAN (CH2) - or beyond.

  • Power the CANmod.router via the CANedge 2nd port 5V
  • Maximise 4 x CAN throughput via CAN FD routing (mux-mode)
  • Easily demux routed data via MF4 converter or Python API
  • Control transmission on the 4 x CAN via CANedge
  • Use daisy chaining to log 1 + 8 x CAN, 1 + 12 x CAN (or beyond)

Tip: Check out muxed/demuxed MF4 sample data below.

How to deploy a CANedge + CANmod.router?

We provide a step-by-step guide for this setup in the CANedge Intro - below we provide a brief recap:

  1. Connect the CANmod.router to the CANedge 2nd port
  2. Set the CANedge CAN CH2 bit-rate to 1M/4M
  3. Set the CANedge 2nd port 5V power supply to enabled
  4. Optionally set bit-rates and filters on the CANmod.router

The CANedge can now record 1 x CAN (via CH1) + 4 x CAN (via CH2). The regular CH1 data and 'muxed' CH2 data is stored by the CANedge in MDF log files (*.MF4).

To DBC decode and analyze the data, you need to first demux the CH2 data. This can be done via the CANedge MF4 converter 'mdf2mdf' - similar to how you 'decompress' compressed MDF files. For details, see below.

Note: If you daisy chain CANmod.routers the process is the same, except that you set unique IDs per device.

How does the software demuxing work?

Tip: See also our sample MF4 data above.

Let us assume you use a CANedge + CANmod.router to log 1 x CAN (via CH1) + 4 x CAN (via CH2) via mux-mode.

Structure of the muxed MF4 data

If you open the raw MF4 in asammdf, you will see the CAN CH1 data stored as normal - while CAN CH2 contains muxed data. The muxed data comprises CAN FD frames, with the original 4 x CAN-S IDs/data packaged in the payload.

How to demux the data

To work with the data we need to first demux it. The simplest way is to use the MF4 converter 'mdf2mdf'. This can convert raw MF4 files (or MFC/MFE/MFM) to 'finalized' MF4 files. It can be used to decompress, decrypt - and demux - log files. The tool can be used via drag & drop, the CLI and in scripts.

If you open the demuxed MF4 you now see the following:

  • CAN CH1 is unchanged
  • CAN CH2 is now empty
  • CAN CH3-CH6 contain the original 4 x CAN-S frames

This is identical to what you would record if the CANedge itself had more CAN channels, with the original CAN IDs and payloads of the 4 x CAN-S unpacked into CAN CH3-CH6.

Note: You can also use our Python API to demux MF4 files.

Support in other software/APIs

The demuxed MF4 files are fully supported in all our software/API tools, incl. the asammdf GUI, MF4 converters, MF4 decoders, MATLAB, Python, Vector tools, dashboards etc.

Special case: Other device on CH2

You may connect both a CANmod.router and e.g. a CANmod.temp to a CANedge CH2. Here, the demuxed MF4 will include the CANmod.temp data in CAN CH2.

Special case: 2 x CANmod.router

If you need to record 1 + 8 x CAN, you can daisy-chain two CANmod.routers on CH2. One must be configured to use a different CAN ID for the muxed data (e.g. 0x11).

During demuxing, you can specify how to map IDs - e.g. ID 0x10 to CH3-CH6 and ID 0x11 to CH10-CH13.

Use Cases

The CANmod.router can be installed standalone in any CAN bus system - including e.g. as an add-on for the CANedge. Further, it can be used as a powerful 4 x CAN FD to USB interface.

OEM CAN bus telematics with 5 x CAN channels

Need to collect data from 5 x CAN buses across your vehicle fleet?

As an automotive OEM, you may want to use the CANedge3 to collect CAN data and upload it via 3G/4G to your own AWS S3 bucket. But what if you need to log e.g. 5 x CAN per vehicle? Here you can simply add the CANmod.router to the CANedge 2nd port in mux-mode to log 1 + 4 x CAN. Using the DB25-to-4x-DB9 adapter, you can quickly connect the 4 x CAN using our standard DB9 adapters. When the MF4 log files are uploaded to your cloud, they can be automatically 'demuxed' and DBC decoded via Lambda functions for e.g. creation of Parquet data lakes and Grafana dashboards.

 

Development & diagnostics via USB

Need to stream data from/to 4 x CAN / CAN FD via USB?

In development & diagnostics it is often useful to be able to stream data from/to multiple CAN buses in parallel. This normally requires very large/expensive CAN-to-USB interfaces and expensive software tools. However, with the CANmod.router you can stream 4 x CAN (incl. CAN FD) via USB using the 100% free SavvyCAN GUI or Python API. The latter enables any type of custom integration - e.g. visualization in Grafana-MQTT dashboards. Simply power the CANmod.router via USB and connect it to your CAN buses to start streaming. You can of course connect multiple CANmod.routers via separate USB COM ports to stream e.g. 8 x CAN, 12 x CAN etc.


Unlimited CAN channel logging via daisy chaining

Need to log 1 + 8 x CAN, 1 + 12 x CAN or beyond?

By using a single CANedge + CANmod.router, you can easily record 5 x CAN in total. However, you can also go beyond this by daisy chaining 2, 3 or more CANmod.routers. You can add filters/prescalers on each secondary CAN interface to customize what IDs you record (at what frequency), ensuring your CANedge can record everything without frame loss - and that your log file size remains optimized.


Physical CAN bus extension from remote area

Need to transport CAN data over long distances?

In some use cases, you may want to interface with CAN buses that are far away. For example, you may want to interface with 3 x maritime vessel engines from a bridge (e.g. for integration with a display) - but the cable distance would be 40 meters. It is not recommended to extend existing CAN buses beyond a few meters. However, you can safely deploy one CANmod.router (mux-mode) in the engine room to record the 3 x CAN - and connect it via a 40 meter DB9-DB9 cable to another CANmod.router (mux-mode) at the bridge. The muxed data from the engine room is demuxed in real-time by the bridge device. As a result, you can now interface each engine room CAN bus via the bridge CANmod.router's DB25 connector - as if you had a direct connection. You can even convert the bit-rates of each engine CAN bus in the process or filter/prescale some of the data if preferred.

FAQ

How does it work?

The CANmod.router is a small device that lets you connect up to four separate, isolated CAN buses (incl. CAN FD) via the DB25 connector. The data from/to these four CAN buses (CAN-S1, CAN-S2, CAN-S3, CAN-S4) is then 'routed' by the module through a single CAN bus (CAN-P) - or via a USB interface.

In practice, this means that you can interface with four separate CAN buses through a single interface - enabling powerful use cases, such as recording more CAN channels with a CAN logger (like the CANedge). For details see the CANmod.router Docs


Why choose the CANmod.router?

The CANmod.router is an extremely powerful device. Let us illustrate this via the two most common use cases:

CANedge add-on: Log 5 x CAN

The CANmod.router lets you log 5 x CAN via one CANedge. Previously, you had to use 3 x CANedge units with multiple downsides:

  1. Adding two 'extra' CANedge units is 300-1000 EUR more costly vs adding a CANmod.router
  2. With three CANedge units, your data is split across three SD cards, MF4 files etc - making data/device management complex
  3. The best cross-device time sync precision is 400 ms (via internal GPS) - versus 1 ms via the CANmod.router

4 x CAN-USB interface

The CANmod.router can be used as a 4 x CAN-to-USB interface (incl. CAN FD). This is powerful for multiple reasons:

  1. The CANmod.router is 50%+ lower cost vs. comparable CAN-USB interfaces
  2. The CANmod.router is 50%+ more compact vs. comparable CAN-USB interfaces
  3. The CANmod.router comes with 100% free software/API tools for streaming
  4. The software/API tools let you DBC decode and visualize data in real-time
  5. SavvyCAN lets you receive/send data from/to all 4 x CAN buses in one GUI window
  6. The Python API enables easy integration with custom systems like Raspberry Pis - e.g. for field deployments

In short, the CANmod.router offers a ton of functionality in a single device.

 

Performance considerations (CANedge + CANmod.router)

Note: The numbers stated below are preliminary/indicative and may change.

A common use case is to log 5 x CAN with a CANedge + CANmod.router - here we discuss performance considerations.

CAN channels

You can record any number of CAN channels with one CANedge by adding a daisy chain of CANmod.routers. You can add e.g. 10 x CANmod.routers to log 40+ CAN channels - the limitation is purely related to the combined frames/second (see below).

If you daisy chain CANmod.routers on the CANedge 2nd port, you may need to consider if the 5V supply is sufficient. If all CAN-S interfaces are in 'Monitoring' mode then it will suffice. If not, you may need to consider a separate supply.

Frames/second considerations

The primary thing to consider is the total #frames/second you need to record across all of the CAN channels.

We recommend to stay below 6,000 frames/second in total (after filters/prescalers).

  • 90%+ of use cases will have far below 6,000 frames/second across 5 x CAN - even without filters/prescalers
  • Channel distribution is not relevant - it could e.g. be 1 x 4,000 frames/second + 4 x 500 frames/second (or any other mix)
  • The performance limit is higher - the 6,000 frames/second is mainly based on practical considerations (see below)
  • During the split-second creation of a new log file, the CANedge may loose frames if recording at very high data rates

Using filters and prescalers

Even if the combined #frames/second exceeds the limit, this is not necessarily an issue at all. The CANmod.router lets you configure filters and prescalers across each of the secondary CAN channels (similar to the CANedge). This means that you can record 4 x CAN channels that have a combined load of e.g. 10,000 frames/second - as long as you filter & prescale this sufficiently.

Practical considerations on file size, SD storage and upload speed

If you do record ~6,000 frames/second 24/7 you will accumulate 5+ MB/min (compressed), 300+ MB/hour, 7+ GB/day and 200+ GB/month. In other words, a CANedge with 32 GB will only store ~5 days of data before it deletes old files to free up space.

Of course, you can get around this by using a CANedge2/3 to upload log files when created. However, in practice the upload speed may make it difficult to offload data fast enough if you go beyond 6,000 frames/second (in particular in intermittent coverage).

To recap: We recommend to stay below 6,000 frames/second - and to use filters, prescalers and compression to optimize file size.

 

How to determine your combined #frames/second?

You may wonder if your use case can be handled by the CANedge + CANmod.router. The short answer is "yes!" in 95%+ of cases.

As explained, the limitation to consider is the #frames/second you need to log (after filters/prescalers) across all CAN buses.

To determine this, we recommend the below process:

  1. Record 5 min from each CAN bus with no filters via the CANedge CH1
  2. Convert each MF4 log file to CSV via our mdf2csv converter
  3. Open each CSV in Excel and note the #frames (count) and #seconds (last vs. first)
  4. Sum up the #frames/second across all CAN channels

If your total #frames/second is below ~6,000 then you are OK and it is mainly a matter of optimizing file size when you deploy.

If your total #frames/second is above ~6,000 then review each CAN bus to determine what messages can be filtered out or prescaled. After accounting for this, revisit the combined #frames/second to see if it is within the limits.

You can of course contact us for sparring on this.


Which adapter cables should I use?

We offer a number of useful adapter cables as options for the CANmod.router:

DB9-DB9/DB9 (Y splitter): This can e.g. be used to connect a CANmod.router to a CANedge 2nd port, enabling the CANedge to record 4 x CAN on CAN CH2. Further, you can add additional Y-splitters if you need to daisy chain more CANmod devices.

DB25-to-4x-DB9: This adapter can be used with the CANmod.router to enable the connection of four separate CAN buses. The advantage of this adapter is that the DB9 pinouts match the CiA 303-1 standard (like the CANedge DB9 connectors), meaning that you can directly use all of our standard DB9 adapter cables, such as our DB9-OBD2, DB9-J1939, DB9-M12 etc. You can even use dual-channel adapters like our J1939-DB9/DB9, OBD2-DB9/DB9 and DT06-DB9/DB9 adapters.

GENERAL 
FunctionalityThe device routes data from four isolated CAN buses (incl. FD) to one primary CAN bus (or USB)
IncludedCANmod.router module and USB dust cover (DB25-to-4x-DB9 adapter and USB adapter not included)
FirmwareSupports free firmware updates via USB for adding features
ConfigurationConfiguration files based on the popular open source JSON schema concept (similar to the CANedge)
SoftwareFree open source editor tool for easy device configuration (offline/online version available)
 Free open source SavvyCAN GUI for streaming of raw / DBC decoded data via USB
 Free open source Python API for streaming of raw / DBC decoded data via USB
SafetyCE, FCC, IC and RoHS certified (see the Docs for certificates)
Warranty1-year warranty
SupportFree, fast & high quality support
OriginDenmark
ROUTER MODES 
Mux-ModeTraffic from/to secondary CAN buses is muxed and transported through 'tunnels' via primary CAN bus
 Demuxing done via software/API tools to restore original CAN frames (channel IDs, CAN IDs, payloads)
 - CANmod software/API with demuxing: SavvyCAN, USB Python API
 - CANedge software/API with demuxing: MF4 Python API, mdf2mdf (and hence all CANedge tools)
CAN BUS (CAN-S) 
Channels4 x CAN channels (incl. CAN FD support)
IsolationBasic galvanic isolation (easily connect CAN buses not subject to high voltage differences)
StandardISO 11898: Compliant with CAN (between 5K and 1 Mbit/s baud rates) and CAN FD (1M, 2M, 4M, 5M)
ProtocolsReceive/transmit raw data from/to CAN based protocols (J1939, CANopen, NMEA 2000, OBD2, UDS, ...)
IdentifiersCompliant with CAN specifications 2.0A (11-Bit ID) and 2.0B (29-Bit ID)
RetransmissionRetransmission of frames that have lost arbitration or been disturbed by errors
Transceiver ProtectionProtection: +/- 25kV HBM ESD, +/-12kV IEC ESD, +/-14 V bus fault, short circuit
 Common mode input voltage: +/-12V
 TXD dominant timeout (prevents network blocking in the event of a failure)
CAN BUS (CAN-P) 
Channels1 x CAN channel (incl. CAN FD support)
ModesThe device can either broadcast the data onto the CAN bus - or provide it on-request
StandardISO 11898: Compliant with CAN (between 5K and 1 Mbit/s baud rates) and CAN FD (1M, 2M, 4M, 5M)
IdentifiersCompliant with CAN specifications 2.0A (11-Bit ID) and 2.0B (29-Bit ID)
TerminationTermination can be toggled via switch below DB9 connector
RetransmissionRetransmission of frames that have lost arbitration or been disturbed by errors
Transceiver ProtectionProtection: +/- 25kV HBM ESD, +/-12kV IEC ESD, +/-14 V bus fault, short circuit
 Common mode input voltage: +/-12V
 TXD dominant timeout (prevents network blocking in the event of a failure)
CONFIG (CAN-S) 
IndependenceEach secondary CAN channel can be independently configured (router mode is set globally)
Bit RateSelect between standard bit rates (5K to 1M) or use custom bit-timing
Bit-Rate Auto-DetectBit rates can be set manually (auto-detection pending FW)
Silent ModeConfigurable silent mode: Restricted (acknowledge only) or monitoring (zero transmission)
Filters32 regular/extended ID filters per channel (mask, acceptance, rejection)
PrescalersPrescale CAN frames to record e.g. by time (per X ms) or by data (e.g. if byte X or Y changes)
TransmitTransmit lists of up to 16 CAN frames per channel (single-shot/periodic)
 Transmission can also be directly controlled from the CAN-P interface
CAN Error FramesSupport for logging CAN error frames (bit-stuffing, form, CRC, bit, acknowledgement)
CONFIG (CAN-P) 
Bit RateSelect between standard bit rates (standard: 5K to 1M, FD: 1M to 4M) or use custom bit-timing
Identifier CustomizationIndividually configure each CAN ID (11-bit or 29-bit)
OTHER 
PrecisionCross-channel precision of 1 ms
Frames/SecondMux-mode: Route 8,000+ frames/second (Classical CAN) - see FAQ for details
ELECTRICAL 
Input Supply+5V to +26V DC via the DB9 connector (power via pin 1 or pin 9)
 Alternatively power via USB (for updating firmware/config or for streaming data in real-time)
Power ConsumptionExtremely low (<1W) - no risk of battery drainage
ProtectionReverse voltage protection on CAN-bus supply
 Transient voltage event protection on supply lines
MECHANICAL 
Enclosure & WeightCompact aluminium enclosure: 65 x 48 x 24 mm (W x L x H excl. flanges & connectors). 75 grams
Connector (Front)1 x Standard D-sub 9 (DB9) connector
Connector (Back)1 x D-sub 25 (DB25) connector
Pin-OutSee the product manual for the DB9/DB25 connector pin-outs
USBStandard mini USB connector for config/FW updates and streaming (USB cable available as option)
LEDsModule status via 7 external LEDs: Power, CAN-P, Memory, CAN-S1, CAN-S2, CAN-S3, CAN-S4
TemperatureOperating temperature: -25degC to +70degC
IP RatingIP Rating 40
MountingModule can be mounted via e.g. velcro strips or mounting kit
Tecnologix offre supporto gestito direttamente dal Team di sviluppo.
Non esitare a metterti in contatto con i nostri esperti.
Basta chiedere qui

Technical Support

Tecnologix offers support which is directly handled by development team. Do not hesitate to get in touch with our experts.

Just ask here