1.7 KiB


The end goal of this project is to convert a partially broken TM245P Pick and Place to OpenPNP while replacing as little hardware as possible. The difficulty in this is that the feeders and everything on the head are CAN bus controlled. In an effort to not replace these parts, the protocol will need to be reverse engineered.


Smoothieware Port

The Charmhigh conversion undertaken by others approaches leaving the controller largely intact and flashing a Smoothieware port onto the STM32. The repo notes suggest the Charmhigh used an STM32F4, which the TM245P also uses. Specifcally the STM32F407ZGT6.


In this approach the entire head unit will be bypassed. Ideally this could be accomplished by utilizing the existing IDC connector on the power/comm sub-board.

'CAN Bus'

Communication is done over the VP230 CAN Transceiver, though it doesn't look to be real CAN. Instead the STM32 USART1 is connected so it's doing Syncronous UART over CAN. So it's really just using the VP230 for differential signaling.

What's Done

  • Schematic of STM32 <-> VP230 (CAN Bus)
  • Verified STM32 read protection is in place :(

Bus Splitter

The bus_splitter directory contains a KiCAD project to attempt reverse engineering the protocol 'monkey-in-the-middle' style. It contains two CAN bus transceivers, with the UART in between them being passed to a set of header pins. The idea being the RX/TX pins can be attached to an external microcontroller, allowing message to be inspected, modified and/or passed through as is.

Further Reading