All Projects → AK-Homberger → M5Stack-NMEA-2000-Display-CAN-BUS

AK-Homberger / M5Stack-NMEA-2000-Display-CAN-BUS

Licence: GPL-3.0 license
This repository shows how to use the M5Stack as NMEA 2000 Display and WiFi Gateway.

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to M5Stack-NMEA-2000-Display-CAN-BUS

Python Can
The can package provides controller area network support for Python developers
Stars: ✭ 580 (+1900%)
Mutual labels:  can-bus
Awesome Canbus
🚛 A curated list of awesome CAN bus tools, hardware and resources
Stars: ✭ 73 (+151.72%)
Mutual labels:  can-bus
Cannelloni
a SocketCAN over Ethernet tunnel
Stars: ✭ 141 (+386.21%)
Mutual labels:  can-bus
Cantools
CAN bus tools.
Stars: ✭ 935 (+3124.14%)
Mutual labels:  can-bus
Imbmw
BMW iBus .NET MF SDK and hardware
Stars: ✭ 50 (+72.41%)
Mutual labels:  can-bus
Can Utils
Linux-CAN / SocketCAN user space applications
Stars: ✭ 1,216 (+4093.1%)
Mutual labels:  can-bus
Pyvit
pyvit: Python Vehicle Interface Toolkit
Stars: ✭ 468 (+1513.79%)
Mutual labels:  can-bus
Python Udsoncan
Python implementation of UDS (ISO-14229) standard.
Stars: ✭ 209 (+620.69%)
Mutual labels:  can-bus
Rpi Can Logger
Project to log CAN bus data from a PiCAN2 and a GPS module
Stars: ✭ 68 (+134.48%)
Mutual labels:  can-bus
Sapog
Sapog - advanced multiplatform ESC firmware
Stars: ✭ 139 (+379.31%)
Mutual labels:  can-bus
Can
CAN driver and router
Stars: ✭ 31 (+6.9%)
Mutual labels:  can-bus
Robot Software
CVRA monorepo - All software running on our bots lives here
Stars: ✭ 39 (+34.48%)
Mutual labels:  can-bus
Can library
Multiplatform Arduino library for supporting the native CAN controller on Due (SAM3X) and Teensy 3.1 (K2X) as well as MCP2515 through SPI
Stars: ✭ 81 (+179.31%)
Mutual labels:  can-bus
Thingsboard Gateway
Open-source IoT Gateway - integrates devices connected to legacy and third-party systems with ThingsBoard IoT Platform using Modbus, CAN bus, BACnet, BLE, OPC-UA, MQTT, ODBC and REST protocols
Stars: ✭ 796 (+2644.83%)
Mutual labels:  can-bus
Libcanard
A compact implementation of the UAVCAN/CAN protocol in C for high-integrity real-time embedded systems
Stars: ✭ 151 (+420.69%)
Mutual labels:  can-bus
Seeed arduino can
Seeed Arduino CAN-BUS library - MCP2518FD&MCP2515&MCP2551
Stars: ✭ 535 (+1744.83%)
Mutual labels:  can-bus
Candb
Library for parsing CAN bus database description formats
Stars: ✭ 78 (+168.97%)
Mutual labels:  can-bus
Libuavcan
Portable reference implementation of the UAVCAN protocol stack in C++ for embedded systems and Linux.
Stars: ✭ 213 (+634.48%)
Mutual labels:  can-bus
Arduino Canbus Monitor
Can bus monitoring tool based on arduino and can bus shield. Implements CAN ASCII/SLCAN protocol compatible with Lawicel CAN232/CANUSB. Can be used for monitoring low speed CAN (interior can bus of most cars, less than 500kbps). For higher speeds serial port can become a bottleneck in case data density is high.
Stars: ✭ 163 (+462.07%)
Mutual labels:  can-bus
Can Bootloader
The bootloader used to flash our CAN-connected boards
Stars: ✭ 93 (+220.69%)
Mutual labels:  can-bus

M5Stack NMEA2000 Display for CAN BUS

This repository shows how to use the M5Stack as NMEA 2000 Display and WiFi Gateway. The M5Stack is receiving the data directly from the CAN bus.

The project requires the NMEA2000, NMEA2000_esp32 and NMEA0183 libraries from Timo Lappalainen: https://github.com/ttlappalainen

For the M5Stack the board software and library have to be installed: https://docs.m5stack.com/#/en/arduino/arduino_development

The M5Stack has only a limited number of GPIO pins available. The initial version used GPIO 2 (CAN TX) and GPIO 5 (CAN RX). That led to problems with the NMEA2000 bus due to signals on both lines during boot and flash time.

The new version (since version 0.2) is using GPIO 17 (TX) and GPIO 16 (RX) to avoid the problem.

The M5Stack can also work as WiFi Gateway to send NMEA 0183 messsages (TCP port 2222) via WiFi. Just set ENABLE_WIFI to "1" to enable. Change SSID/password accordingly.

The only external hardware is the CAN bus transceiver (Waveshare SN65HVD230). It is connected to 3,3 V, GND, CAN TX (GPIO 17) CAN RX (GPIO 16).

With the left two buttrons you can flip through the pages (5 pages currently) with differnt NMEA 2000 data. The right button is changing the backlight of the LCD.

Display1

Display2

Remove the 120 ohm resistor from the transceiver

For unknown reasons, many CAN bus transceivers for the ESP32 have a 120 Ohm resistor built into them. The resistor does not belong to the devices at the ends of the stub lines, but to the ends of the backbone cable.

Whether the transceiver contains a 120 ohm resistor can be determined either by looking at the circuit diagram or by measuring with the multimeter.

A knife tip is suitable for removing the SMD resistor. Use it to scratch or pry off the resistance. With the transceiver shown here, place the tip of the knife in front of the resistor (between the chip and the resistor) and support the knife against the chip. Then lever the tip against the resistance and use it to scratch / loosen / break the resistance. Whichever happens first.

Transceiver

It then looks like the picture. Then measure to be on the safe side. Without a 120 ohm resistor, the multimeter shows approx. 75 kOhm.

Updates:

  • 02.03.2021 - Version 0.3: Added changed source address check.
  • 01.03.2021 - Version 0.2: Changed CAN bus GPIOs.
  • 23:11.2019 - Version 0.1: Initial version.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].