IP Library Granted Patent US 11,776,328
Granted Patent B2
US 11,776,328 · App. 16/985,649 · Granted Oct 3, 2023

Variable multiplexer for vehicle communication bus compatibility

Inventors: Xin Yang (Oakland, CA); Justin Tingao Xiao (San Francisco, CA); Harrison Riley Davis (Oakland, CA)
Assignee: Samsara Networks Inc.
G07C5/0808G07C5/008H03M13/096H04L12/40H04L67/12G07C2205/02H04L2012/40215H04L2012/40273
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,776,328
App. No.
16/985,649
Granted
Oct 3, 2023
Kind
B2
Abstract

Disclosed are systems, methods, and non-transitory computer-readable media for a variable multiplexer for vehicle communication bus compatibility. A device includes a variable multiplexer that can be electronically configured to a desired pinout configuration to provide compatibility with multiple vehicles. For example, the variable multiplexer may be electronically configured based on a pinout configuration used by the vehicle to connect pins in the device to the corresponding pins on the data link connector that provide the same specified function. The device may therefore use a single standardized cable with vehicles using a variety of pinout configurations.

Claims (61)

1. A method comprising:

detecting that a device has been connected to a communication bus implemented within a vehicle, the device being connected to the communication bus via a data link connector that includes a set of pins for communicating with the communication bus;

receiving data from the set of pins via the communication bus;

calculating a checksum value based on at least a portion of the data received via the data link connector from the communication bus and a hashing algorithm;

determining a pinout configuration for communicating with the communication bus based on the checksum value, the pinout configuration identifying a functionality of each pin from the set of pins; and

configuring a multiplexer within the device based on the pinout configuration for communicating with the communication bus via the data link connector.

2. The method of claim 1 , wherein determining the pinout configuration for communicating with the communication bus comprises:

transmitting an identifier associated with the vehicle to a remote computing system, the remote computing system maintaining a vehicle data index including data identifying pinout configurations for a plurality of vehicles; and

receiving, from the remote computing system, a response message identifying the pinout configuration for communicating with the communication bus.

3. The method of claim 2 , wherein the identifier is a Vehicle Identification Number (VIN).

4. The method of claim 1 , wherein determining the pinout configuration for communicating with the communication bus comprises:

initiating a listening mode during which the data transmitted via the communication bus is gathered by the device from the set of pins; and

determining the pinout configuration based on the data gathered from the set of pins.

5. The method of claim 4 , wherein determining the pinout configuration based on the data gathered from the set of pins comprises:

comparing the data received at each pin from among the set of pins to pinout configurations from a set of known pinout configurations for communicating with communication buses, yielding a comparison; and

determining, based on the comparison, that the data received at each pin is consistent with a first pinout configuration from the set of known pinout configurations.

6. The method of claim 4 , wherein determining the pinout configuration for communicating with the communication bus comprises:

calculating the checksum value based on a first piece of data gathered during the listening mode;

comparing the checksum value to a received checksum value that was received along with the first piece of data, yielding a comparison; and

determining whether the checksum value calculated based on the first piece of data gathered during the listening mode matches the received checksum value that was received along with the first piece of data.

7. The method of claim 6 , wherein calculating the checksum value based on the first piece of data gathered during the listening mode comprises:

using the first piece of data gathered during the listening mode as input into a hashing algorithm, yielding the checksum value, wherein the received checksum value was also calculated using the hashing algorithm.

8. The method of claim 1 , wherein detecting that the device has been connected to the communication bus implemented within a vehicle comprises:

detecting that the device has been connected directly to the data link connector.

9. The method of claim 1 , wherein detecting that the device has been connected to the communication bus implemented within a vehicle comprises:

detecting that the device has been connected to a second device that is directly connected to the data link connector.

10. The method of claim 1 , wherein the data link connector is a diagnostic port.

11. A system comprising:

one or more computer processors; and

one or more computer-readable mediums storing instructions that, when executed by the one or more computer processors, cause the system to perform operations comprising:

detecting that a device has been connected to a communication bus implemented within a vehicle, the device being connected to the communication bus via a data link connector that includes a set of pins for communicating with the communication bus;

receiving data from the set of pins via the communication bus;

calculating a checksum value based on at least a portion of the data received via the data link connector from the communication bus and a hashing algorithm;

determining a pinout configuration for communicating with the communication bus based on the checksum value, the pinout configuration identifying a functionality of each pin from the set of pins; and

configuring a multiplexer within the device based on the pinout configuration for communicating with the communication bus via the data link connector.

12. The system of claim 11 , wherein determining the pinout configuration for communicating with the communication bus comprises:

transmitting an identifier associated with the vehicle to a remote computing system, the remote computing system maintaining a vehicle data index including data identifying pinout configurations for a plurality of vehicles; and

receiving, from the remote computing system, a response message identifying the pinout configuration for communicating with the communication bus.

13. The system of claim 12 , wherein the identifier is a Vehicle Identification Number (VIN).

14. The system of claim 11 , wherein determining the pinout configuration for communicating with the communication bus comprises:

initiating a listening mode during which the data transmitted via the communication bus is gathered by the device from the set of pins; and

determining the pinout configuration based on the data gathered from the set of pins.

15. The system of claim 14 , wherein determining the pinout configuration based on the data gathered from the set of pins comprises:

comparing the data received at each pin from among the set of pins to pinout configurations from a set of known pinout configurations for communicating with communication buses, yielding a comparison; and

determining, based on the comparison, that the data received at each pin is consistent with a first pinout configuration from the set of known pinout configurations.

16. The system of claim 14 , wherein determining the pinout configuration for communicating with the communication bus comprises:

calculating the checksum value based on a first piece of data gathered during the listening mode;

comparing the checksum value to a received checksum value that was received along with the first piece of data, yielding a comparison; and

determining whether the checksum value calculated based on the first piece of data gathered during the listening mode matches the received checksum value that was received along with the first piece of data.

17. The system of claim 16 , wherein calculating the checksum value based on the first piece of data gathered during the listening mode comprises:

using the first piece of data gathered during the listening mode as input into a hashing algorithm, yielding the checksum value, wherein the received checksum value was also calculated using the hashing algorithm.

18. The system of claim 11 , wherein detecting that the device has been connected to the communication bus implemented within a vehicle comprises:

detecting that the device has been connected directly to the data link connector.

19. The system of claim 11 , wherein detecting that the device has been connected to the communication bus implemented within a vehicle comprises:

detecting that the device has been connected to a second device that is directly connected to the data link connector.

20. A non-transitory computer-readable medium storing instructions that, when executed by one or more computer processors of one or more computing devices, cause the one or more computing devices to perform operations comprising:

detecting that a device has been connected to a communication bus implemented within a vehicle, the device being connected to the communication bus via a data link connector that includes a set of pins for communicating with the communication bus;

receiving data from the set of pins via the communication bus;

calculating a checksum value based on at least a portion of the data received via the data link connector from the communication bus and a hashing algorithm;

determining a pinout configuration for communicating with the communication bus based on the checksum value, the pinout configuration identifying a functionality of each pin from the set of pins; and

configuring a multiplexer within the device based on the pinout configuration for communicating with the communication bus via the data link connector.

Assignments (2)
CHANGE OF NAME Recorded Jan 17, 2024
From: SAMSARA NETWORKS INC.
To: SAMSARA INC.
Reel/Frame 066154/0870 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 29, 2020
From: YANG, XIN; XIAO, JUSTIN TINGAO; DAVIS, HARRISON RILEY
To: SAMSARA NETWORKS INC.
Reel/Frame 054214/0291 →
Continuity (1)
Related Publication 20220044500A1 · Feb 10, 2022
Cited By (33)
US 12,197,610 US 12,213,090 US 12,228,944 US 12,253,617 US 12,256,021 US 12,260,616 US 12,269,498 US 12,289,181 US 12,306,010 US 12,327,445 US 12,328,639 US 12,344,168 US 12,346,712 US 12,367,718 US 12,426,007 US 12,445,285 US 12,450,329 US 12,479,446 US 12,501,178 US 12,511,947 US 12,524,314 US 12,534,097 US 12,561,624 US 12,565,143 US 12,626,200 US 12,630,050 US 12,646,402 US 12,651,529 US 12,662,152 US 12,665,989 US 12,671,464 US 12,675,419 US 12,701,004