NMEA2K Display


I am only days into Arduino with a view for a specific project in mind. I am going through the tutorials and reading what I come across and doing the projects in the Uno starter kit. I don't have a strong background in electronics but I am a programmer, so I expect this to be a steep learning curve.

My target project is a stack of 3 or 5 independent small TFT screen's which each display different values read from a CAN Bus. Thus an instrument display on a yacht.

With my very limited reading and current investigation, it looks like a suitable architecture would be the Arduino Due with a CAN transceiver. Each display would be another Arduino with a TFT shield. They would all be networked using some form of communication so the Due can send the CAN values as they are read from the bus for the TFT to display. Thinking that the communications could be I2C, given I will need to run power cables to the devices.

I have found some suitable TFT shields and found some libraries that work with the NMEA2K so a lot of the ground work has already been done, so I want to make sure I have got the base architecture right.

I realize I need to walk before I can run, but learning to walk on the things that are most important to my end goal is a good place to start. Eg, there is (probably) no point learning WiFi networking if I am going to use I2C for the communications. Maybe no point in learning to write a driver library if I will not need to create one.

So asking for some advice on what the architecture could be for displaying CAN Bus data on multiple different TFT screens so I can start working out where to focus my time.

Thanks very much.

Actually your operating environment and I2C would be problematic. Boats/cars are noisy operating environments.

I'd get a module, like a Freematics or a Sparkfun can buss reader. Use a ESP32 to read the CAN bus device. I'd then send the info, WiFi to another ESP32 that I'd use to connect to 4 SPI display units. If the location of the display units is widely spaced, I'd just put an individual ESP32 to serve the remote display unit.

If you are going to roll your own CAN bus interface before you start get a CAN bus simulator. You'd send your requests to the simulator whiles working on the code. CAN bus simulators are expensive. But take a moment to think about the learning curve for CAN buss and what happens when you send a PID request that is incorrect. The issue will become what thing on your boat is going to get the incorrect request and how will that thing interpret the PID? Now the boat part that gets destroyed with the wrong PID code, on a boat, will cost more than a CAN buss simulator.

Thank you that was very helpful - knowing not to go down the I2C path helps :slight_smile:

There is a great NMEA 2k thread over here which I plan to read.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.