SkillAgentSearch skills...

BeanMPX

Toyota's Bean Multiplex Communication Protocol for Arduino

Install / Use

/learn @fiztech-code/BeanMPX
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

BeanMPX

Bean muliplex is a communication protocol developed by Toyota for body control system in passenger cars. Its a single wire 12 volt serial communication. As bean multiplex isn't very common i created bean multiplex interpreter using an Arduino.

Why do this?

The ecu is responsible to feed information to the combination meter, if say the ecu was replaced for an aftermarket unit the temperature gauge will not work.

Demo: https://youtu.be/FXD5fauDTvY

Bridge: https://youtu.be/dopTZ3F5d6s

Circuit

Here is an example circuits to use for transmit/receive, the MCP2515 module integration can be ignored bean-mpx_circuit

Code

To begin work with BeanMPX, download the ZIP file and include it into the Arduino IDE. Next open the example sketch provided.

Init

There is optional parameter which can be set, its the Acknowledge Messages. BeanMPX can send acknowledge response to messages with a particular destination id. With bean.begin() function you can specify which pins to use for rx/tx also you can also set to use timer1(16bit) or timer2(8bit)

  bean.ackMsg((const uint8_t[]) {0xFE}, 1); // Acknowledge Messages, Length
  bean.begin(8, 9, 0); // rx pin, tx pin, timer (0 or 1);

Bean Multiplex repeated the message 3 times if no acknowledgement was received bean-mpx_serial-monitor.png

Receive

Receive message: memcpy into a buffer, 1st item is length of entire message, 2nd item is message type: R/T (Receive/Transmit), followed by entire bean frame.

Transmit

Sending message, requires Destination id, Message id, and Data. Priority, Message length, CRC, and End of Message bytes will be generated.

  bean.sendMsg(engTemp, sizeof(engTemp));
View on GitHub
GitHub Stars62
CategoryDevelopment
Updated1mo ago
Forks25

Languages

C++

Security Score

95/100

Audited on Mar 3, 2026

No findings