Mazda Mods IV: First Mods

July 31, 2025

Intro

I just got back from a three-week roadtrip across the country, and I didn't want to make the trip without Bluetooth at least.

So I worked my butt off and got a bunch of stuff installed. Let's have a look!


Power

The mods need power, so I started by finishing up the installation of the custom fuse box. As a refresher, the power system...

The V3 fuse box looks like this:

Blender screenshot of the fuse box mounting bracket Fuse boxes mounted to the bracket
V3 mount with boxes mounted. The relay (for switched power) taps into the car's 12v outlet.

And here's what it looks like in the car:

Fuse box mounted inside car
Note: This isn't what the final install looks like.

The trickier part of the install was wiring into the car's battery. I had to take off wipers (and motor), the cowling, and remove a bunch of crud just to get at the firewall. Here are some pretty pictures:

Inside engine bay with bits hanging off
A bunch had to come out of the engine bay to get at the firewall
Wires running through rubber grommet
I routed my wires along the factory harness
Wire hooked up to car battery
Zip ties and wire loom to keep it safe. Note the fuse under the battery handle
Breaker installed in car
Breaker mounted in car for quick access
Wires inside wire loom running from breaker
Everything gets loomed and heatshrunk(shrinked?)

A voltmeter showed me that the battery and switched power was working as expected. With that, I had power all sorted out.


Bluetooth

An early prototype of the Bluetooth module was the first thing I made - it just used sample code from a library, a cigar lighter power adapter and an aux cord. I wanted something more sophisticated and integrated into the car.

I decided to split the Bluetooth functionality into two modules - the audio portion which handles device connection and audio streaming, and the controller which handles user input and displaying information. I started on the hardware side first:

Blender screenshot of car dash with displays Car dash piece with 3d printed display mounts
A 20x4 LCD display for bluetooth, and a small OLED display for the audio switcher
Back of display modules with wires visible Displays installed and working in car
Both modules are just a display and a rotary encoder/button

The install isn't the prettiest on account of my filament or CAD skills (Blender), but it works.

The software side was a whole other story. I wanted something that felt like a car bluetooth system - remember multiple devices, menus to connect and switch devices, display song info, etc.

LCD display showing song info and jarbled icons
Testing song info. There was some weird corruption with custom characters - could never replicate

I don't have many pretty pictures to show on the software development side of things - you can check the Github repo to see how it developed over time.

To talk briefly about how the system functions...

One thing that disappointed me was that I can't seem to get the current play time of playing songs - it seems like either my phone or the ESP32 I am using doesn't support it. Oh well.

Keep reading or jump down to see the Bluetooth in action.


Info Display

I wanted to see my fuel economy, estimated range, and coolant temperature - especially important when you are driving across the country. I'd done all the CAN sniffing I need to do - I just needed to hook up a display and install the CAN data sender. So I did.

PCB sticking out side of exposed panel in car
The CAN info sender sticks out the side for easy access
USB cable hooked into exposed PCB
... Easy access is useful when you need to update the software :)
Info display pried up with USB cable running into hole
The display microcontroller (ESP8266) is also easy to access

None of the buttons or switched on the panel are functional yet - I was in a rush to get everything installed before the trip and didn't care much to hook anything up yet. I had the breaker installed when I wanted to turn everything off.

Here's the info display and Bluetooth in action:

The dials are used to navigate through menus

Reverse Camera

I have a dashcam in my car. It has a front and rear camera, but I was waiting to install the rear camera so I could get a clean installation. I had some downtime on the farm so I tore apart the car and installed it:

Trunk of car with trim removed and wires visible Car side doors open with weatherstripping hanging off
The camera wires run all along the trim and behind the airbags

What's Next?

I'm happy with the install so far - things are finally coming together. However, it is a bit haphazard and needs some work:

Audio Switcher

I started work on the audio switcher before the trip, but didn't have time to finish it:
(I should probably learn a proper program for doing circuit diagrams :P)

Protoboard with components attached - no wires Wiring diagram overlay for components
Five inputs, one output, two demultiplexers, microcontroller (ESP8266)

CAN Sniffing

I also did a bit more CAN sniffing - I found a program called SavvyCAN and edited my logging code to emulate GVRET messages (by ripping code from here).

That let my goofy data center talk to SavvyCAN in realtime - much more useful than reading log files. Take a look:

You can see bits changing as I fiddle with the controls

What I learned from this is that there are no CAN messages when you press steering wheel buttons, meaning I can't use the CAN bus to detect when I try to skip, pause, rewind a song - I'll need to physically find which wires going into the radio control these (unless it is using some sort of LIN bus, which would be a huge PITA).

On the bright side, I found the CAN message for the odometer, which I will use to add a service/oil change reminder to the info display. On the not-bright side again, SavvyCAN likes to freeze as soon as I unleash the high-speed CAN bus onto it, which is annoying because I need to sniff the HS-CAN bus too. I might end up logging it to a file and loading it OR blacklisting certain IDs in the microcontroller if I can't get it to stop freezing.

I want to find the CAN messages for doors being opened (and show them on the info display), and other stuff I can't remember right now. If only I had blogs to look back at to see what I wanted to do...

Other Stuff

I'm not really sure what to do next. The audio switcher is a good place to start, or I could install the PA system, or the reverse proximity sensors, or the carputer, or this or that. Free country.


Closing/Conclusion/Summary

I have Bluetooth now and I can see how inefficiently I am driving (7.8L/100km). There's still a billion things I could do to the car...

But the summer is ending soon enough and I get to go back to school. I should probably update my portfolio. Or study C++ for Ubisoft NEXT and work on my engine. Or work on a game. Or simply explode.

Cat chilling on dash
Meow