A computer-implemented method (100, 200) of diagnosing a connection or communication issue with an industrial machine comprising: connecting a diagnostic system to an electronic processing system of an industrial machine, wherein the electronic processing system includes a CAN bus and a plurality of controllers connected to the CAN bus, the plurality of controllers programmed to run one or more software applications; performing a software check to obtain software data related to the software applications, wherein performing the software check includes determining if there are software dependencies between different ones of the plurality of controllers; performing a connectivity check to obtain connection status data for one or more of the controllers; performing a CAN bus check to obtain CAN bus data of the CAN bus, wherein the CAN bus check includes a controller response check and the controller response check includes determining the number of controllers and a graphical network topology of the controllers, requesting a response from each controller, providing the graphical network topology of the controllers, determining a fault by at least one of obtaining error counts from each controller, obtaining diagnostic trouble codes from each controller, and obtaining voltage readings for each controller; analyzing, by the diagnostic system, the software data, the connection status data, and the CAN bus data to determine a likely cause of the connection or communication issue with the industrial machine; displaying the location of the fault on the graphical network topology of the controllers; and outputting a solution to the industrial machine connection or communication issue to a technician based on the analyzed data. connecting a diagnostic system to an electronic processing system of an industrial machine, wherein the electronic processing system includes a CAN bus and a plurality of controllers connected to the CAN bus, the plurality of controllers programmed to run one or more software applications; performing a software check to obtain software data related to the software applications, wherein performing the software check includes determining if there are software dependencies between different ones of the plurality of controllers; performing a connectivity check to obtain connection status data for one or more of the controllers; performing a CAN bus check to obtain CAN bus data of the CAN bus, wherein the CAN bus check includes a controller response check and the controller response check includes determining the number of controllers and a graphical network topology of the controllers, requesting a response from each controller, providing the graphical network topology of the controllers, determining a fault by at least one of obtaining error counts from each controller, obtaining diagnostic trouble codes from each controller, and obtaining voltage readings for each controller; analyzing, by the diagnostic system, the software data, the connection status data, and the CAN bus data to determine a likely cause of the connection or communication issue with the industrial machine; displaying the location of the fault on the graphical network topology of the controllers; and outputting a solution to the industrial machine connection or communication issue to a technician based on the analyzed data.