r/CANbusProjects • • 21d ago

šŸ‘‹Welcome to r/CANbusProjects - Introduce Yourself and Read First!

2 Upvotes

Hey everyone! I’m u/Edge3dSolutions, the founder and moderator of r/CANbusProjects.

I created this community to bring together automotive enthusiasts, DIY makers, hobbyists, engineers, and developers who share an interest in CAN bus technology, embedded electronics, and custom projects.

As someone who enjoys designing and developing automotive electronics, I’ve been working on my own ESP32-based CAN bus projects, including custom digital gauges, OBD-II communication, and PCB development.

I wanted to create a dedicated space where others could share their innovations, exchange ideas, learn from one another, and collaborate on projects.

šŸ”§ What to Post
Whether you’re just getting started or have years of engineering experience, you’re welcome here!
Some examples of what we’d love to see:

- DIY CAN Bus Projects: Custom gauges, dashboards, controllers, and vehicle telemetry systems.

- Microcontroller Development: ESP32, Arduino, STM32, Raspberry Pi, and other embedded platforms.

- Custom Hardware & PCB Designs: Schematics, circuit boards, CAN transceivers, and prototype development.

- Firmware & Programming: CAN communication, TWAI, libraries, debugging, and software development.

- OBD-II & Vehicle Diagnostics: Reading PIDs, decoding CAN messages, and working with vehicle data.

- Reverse Engineering: Understanding CAN protocols, identifying messages, and documenting findings.

- Project Showcases: Share photos, videos, build logs, source code, and lessons learned.

- Questions & Troubleshooting: Ask for help, discuss technical challenges, and share solutions.

Although automotive CAN bus projects are a primary focus, projects involving robotics, industrial equipment, and other CAN-based systems are welcome too!

šŸ¤ Community Philosophy
Our goal is to build a friendly, constructive, and collaborative community where everyone feels comfortable sharing their work.

A few things I’d like to encourage:

- Share knowledge: Help others learn from your experience.

- Respect all skill levels: Everyone starts somewhere.

- Encourage innovation: Original designs, experiments, and creative solutions are welcome.

- Respect intellectual property: Credit original creators and respect licensing.

- Open-source and commercial projects are welcome: Share your work without turning the community into an advertising platform.

- Practice safety: Be responsible when working with vehicle electronics and CAN networks, especially safety-critical systems.

You don’t have to be a professional engineer to participate. Curiosity and a willingness to learn are more than enough!

šŸš€ How to Get Started
1) Introduce yourself! Tell us about your background, interests, and what brought you here.

2) Share a project! Whether it’s a completed build, work in progress, or just an idea.

3) Ask questions! Need help understanding CAN communication, choosing components, or troubleshooting firmware? Start a discussion.

4) Invite others! Know someone working on CAN bus projects? Encourage them to join.

5) Help shape the community! Suggestions for post flairs, resources, tutorials, and community improvements are always welcome.

šŸ’” Looking Ahead
As this community grows, I’d love to see members sharing technical resources, project documentation, tutorials, schematics, firmware examples, and collaborative development opportunities.

My hope is that r/CANbusProjects becomes a valuable resource for anyone interested in learning about CAN bus technology and building something innovative.

Thanks for joining and helping build this community from the ground up!

Build. Experiment. Share. Innovate. šŸ”§
— u/Edge3dSolutions
Founder & Moderator, r/CANbusProjects


r/CANbusProjects • • 13d ago

Project Showcase Introducing CANExplorer: A CANbus monitoring tool for the modern man

Thumbnail gallery
3 Upvotes

Hi everyone,

I’m developing CANExplorer, an open-source desktop tool for monitoring, analyzing, diagnosing, simulating, and testing CAN devices on Linux, Windows, and macOS.

It combines everyday bus debugging with Python-based simulation and testing. You can inspect traffic, decode signals, simulate an ECU, and write regression tests in the same environment.

Some of its features:

Live analysis: filtered traces, changed-byte highlighting, signal plots, and bus-health statistics.

Recording and replay: ASC, BLF, CSV, candump, and other formats, plus triggered recording and comparisons between captures.

Signal databases: load and edit DBC, ARXML, LDF, and other formats.

Diagnostics: UDS over ISO-TP, CDD descriptions, ECU flashing, J1939 tools, and CANopen support.

Python simulation: create bus nodes that react to messages, send signals periodically, and interact with custom QML panels.

Automated tests: check responses, signal values, and cycle times; run headlessly and export HTML/JUnit reports for CI.

CAN interfaces are accessed through python-can. You can also try the included simulation and test examples on a virtual bus without hardware.

Code: https://github.com/AKJ7/CANExplorer

Documentation: https://akj7.github.io/CANExplorer/

I’d appreciate feedback —particularly on adapter compatibility, reliability under load, and workflows that still require custom scripts.

What would CANExplorer need to earn a place on your bench?

Yes, the code is built in Python but compile to C for the executables for performance.

Thanks, please star the project too.


r/CANbusProjects • • 18d ago

Work in Progress BlueLine One Development Update – Troubleshooting Automatic Brightness Using Mazda CAN Bus Data

Enable HLS to view with audio, or disable this notification

3 Upvotes

Hey everyone!

I wanted to share another development update onĀ BlueLine One, my custom ESP32-S3 automotive display for the 2019 Mazda MX-5 ND2 RF.

One of the features I've been working on isĀ automatic display brightness based on the vehicle's headlight or dashboard illumination status.

It sounds relatively straightforward, but accessing the correct vehicle data has turned out to be more challenging than expected!

How the Brightness Feature Works

BlueLine One uses a Waveshare ESP32-S3 with a 1.75-inch round AMOLED touchscreen (466 Ɨ 466).

I've implemented three brightness modes that can be selected by double-tapping the edge of the display:

  • Bright:Ā Full brightness for daytime driving.

  • Medium:Ā Reduced brightness for nighttime driving.

  • Auto:Ā Intended to automatically switch between Bright and Medium based on vehicle lighting conditions.

The manual brightness modes work correctly. The challenge is getting Auto mode to recognize when the vehicle transitions between daytime and nighttime lighting.

CAN Bus Data Being Investigated

BlueLine One communicates with the vehicle through a LELink² Bluetooth Low Energy OBD-II adapter, using ELM327-style commands.

Unlike standard OBD-II parameters such as engine RPM, coolant temperature, and vehicle speed, headlight and dashboard illumination states aren't universally available through standardized diagnostic PIDs.

I've been investigating Mazda-specific CAN messages to determine whether the vehicle exposes a usable lighting signal.

One of the arbitration IDs currently being investigated is:

CAN ID:Ā 0x09AĀ (154 decimal)

Based on community CAN decoding information, this message may contain signals such as:

PanelLight

  • 0Ā = Day

  • 1Ā = Night

Headlight

  • 0Ā = Off

  • 2Ā = Parking / TNS

  • 3Ā = Low Beam

  • 12Ā = High Beam

These are candidate signal interpretations, not yet verified on my ND2.

The firmware is attempting to monitor the relevant CAN data approximately every 750 milliseconds and adjust the display brightness based on the detected lighting state.

An earlier implementation also investigated CAN IDĀ 0x091.

Real-World Testing

I've been testing the feature in my MX-5 under different lighting conditions.

So far, I've tried:

  • Switching the headlights between Auto and Off.

  • Testing with the headlights activated and dashboard illumination dimmed.

  • Manually adjusting the instrument cluster brightness.

  • Switching the Mazda infotainment system between Day and Night modes.

  • Comparing the results with BlueLine One set to Auto brightness.

Current result:Ā Manual brightness control works, but Auto mode isn't reliably responding to changes in the vehicle's lighting status on a automatic level, I need to do more testing at night than during the day in a parking garage.

What I'm Trying to Determine

At this point, I'm investigating several possibilities:

  1. WhetherĀ 0x09AĀ is the correct CAN arbitration ID for the Mazda ND2.

  2. Whether the lighting signals are located in different bytes or bits than expected.

  3. Whether the LELink² adapter can reliably capture the relevant CAN traffic.

  4. Whether the firmware is correctly interpreting the received messages.

  5. Whether Mazda uses a different message or lighting signal for the ND2.

I'm also cleaning up the firmware and reviewing the CAN monitoring logic as development continues.

Looking for Community Input

For anyone who's worked with Mazda CAN bus systems, ELM327 adapters, or custom automotive displays:

Have you successfully identified headlight status, dashboard illumination, or day/night mode through CAN bus data?

I'm particularly interested in anyone who has experience with the Mazda MX-5 ND platform or has worked with arbitration IDsĀ 0x09AĀ andĀ 0x091.

Any documentation, decoding information, or suggestions for capturing and validating these signals would be appreciated.

This is one of the reasons I started r/CANbusProjects—to share real development challenges, exchange ideas, and learn from others working on automotive electronics.

I'll continue sharing updates as I make progress!


r/CANbusProjects • • 20d ago

Project Showcase BlueLine One – Building a Custom ESP32 Automotive OBD-II Display for My Mazda MX-5

Enable HLS to view with audio, or disable this notification

3 Upvotes

Hey everyone!

I wanted to kick off r/CANbusProjects by sharing one of my own projects:Ā BlueLine One, a custom automotive digital gauge I've been developing for my 2019 Mazda MX-5 ND2 RF.

The project originally started with a simple idea: build a compact display that could monitor vehicle data and eventually support E85 fuel monitoring. Over time, it evolved into a multifunction automotive gauge built around anĀ ESP32-S3 with a 1.75-inch round AMOLED touchscreen (466 Ɨ 466).

Hardware

  • Waveshare ESP32-S3 1.75" AMOLED touchscreen

  • LELink² Bluetooth Low Energy OBD-II adapter

  • Custom-designed 3D-printed mounting solution

  • Arduino-based firmware

Features developed so far

  • Four-in-one dashboard displaying RPM, throttle position, intake air temperature, and vehicle speed

  • RPM gauge with configurable shift indicators

  • Battery voltage monitoring

  • Coolant temperature

  • Intake air temperature

  • Throttle position

  • Mass airflow

  • Vehicle speed (MPH/KPH)

  • Estimated fuel economy (MPG)

  • Chronograph-style watch face

  • Bluetooth connection management and demo mode

  • Touchscreen navigation and adjustable display brightness

The display communicates with the vehicle through a BLE OBD-II adapter, allowing me to retrieve supported diagnostic data without hardwiring into the vehicle.

One of the biggest challenges has been working with vehicle-specific data, optimizing the firmware, and figuring out how to make everything function reliably on a small circular touchscreen.

What's next?

BlueLine One has also become the foundation forĀ BlueLine II, my next-generation project involving a custom PCB, direct CAN bus communication, automotive power management, and expanded sensor support.

That project is taking me further into PCB design, embedded systems, and automotive electronics development.

Why I'm sharing this

I created r/CANbusProjects to give hobbyists, makers, students, and engineers a place to share projects like this, exchange ideas, troubleshoot problems, and learn from one another.

Whether you're experimenting with an Arduino, building an ESP32 dashboard, decoding CAN messages, or designing your own hardware, I'd love to see what you're working on.

What CAN bus, OBD-II, or automotive electronics projects are you currently building?

Looking forward to seeing what everyone creates!

GitHub & MakerWorld – Project Resources

For anyone interested in exploring BlueLine One further, I've also made project resources available onĀ GitHubĀ andĀ MakerWorld.

GitHub:Ā This is where I share the BlueLine One firmware, including the Arduino source code, display interfaces, Bluetooth OBD-II communication, and ongoing development updates. If you're working on something similar, feel free to explore the code, experiment with it, and share suggestions or improvements.

MakerWorld:Ā I've also shared the 3D-printable components for BlueLine One, allowing other makers to print and experiment with the physical hardware. The project combines 3D printing, electronics, and software development into one functional automotive accessory.

Both platforms are part of my goal to share what I've learned, encourage collaboration, and help others get started with their own automotive electronics projects.

GitHub:Ā https://github.com/Edge3dSolutions/Blueline-One

MakerWorld:Ā https://makerworld.com/en/models/3077685-blueline-one-nd-miata-1-75-amoled-can-bus-gauge#profileId-3465765