M2 Not Powering Up?


Bit confused on this one… I’ve been developing my gauge cluster program the past few weeks, and it was working well. Trying to use one of the M2 output pins to generate a signal to feedback to the ECU in place of a speed sensor. I had it connected to output 2, but was not getting an output on that pin. Looking at the below documents, it looked like I needed 12V in at pin 19 and ground to pin 26. Maybe that’s wrong? After hooking those up, my M2 does not turn on at all now… Something must have been damaged. Anyone have any thoughts here?

Just to clarify - no heat on the board anywhere, it seemed like it shut off instantly.


We’ll probably want to take a look at that unit. We’ll get in touch via email and ship out a new M2 along with a label to return the one you’ve got.

I think I know what is going on here though. 12VIO is an output only. This could be better clarified in the documentation and we’ll fix that. Not exactly sure what happens electrically when you apply 12V to UTD Pin 16/UTH Pin 23 AND 12VIO on 26 pin connector.

This thread goes into more details:

For your project, let’s go through the specifics:

Output 2 is a High side driver as shown on page 7 of schematic here.

This driver will let you toggle between GND and 12VIO. To actually enable that 12VIO, you want to bring 12Vio_EN signal high like this to close Q6:

digitalWrite(I_SENSE_EN, HIGH);

Hope that helps, we’ll be in touch.

Thanks Josh! I really appreciate the fast response.

In that case, it’s likely my coding that is wrong, and that’s why I have no output on that pin. I’m trying to use the 12V PWM functionality built into the M2 12VIO library. I can simply vary the frequency to simulate vehicle speed for the ECM. I’m learning as I go on Arduino…

M2IO.Init_12VIO(); // Initialize the M2I/O library
M2IO.Setpin_12VIO(2, ON, SOURCE, PWM_PIN, 100, 100);

This is the code I tried, in the setup section. A 100% PWM signal should just be a steady 12V I thought? Maybe something else is needed to turn it on.

EDIT: As a complete sketch, I think this is all that is needed to send a PWM output to the second output (physical pin 6 on 26 pin connector).

// Required libraries
#include “variant.h”
#include <M2_12VIO.h>
#include <pins_arduino.h>
#include <Arduino.h>
#include “M2_IO.h”
#include <pwm_lib.h>
M2_12VIO M2IO;

void setup() {
// put your setup code here, to run once:

M2IO.Init_12VIO(); // Initialize the M2I/O library
M2IO.Setpin_12VIO(2, ON, SOURCE, PWM_PIN, 100, 100);

void loop() {
// put your main code here, to run repeatedly: