# RE-TM245P
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.

# Approaches

### 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.

https://github.com/mattthebaker/Smoothieware-CHMT

### 'Decap'
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

https://www.eevblog.com/forum/manufacture/neoden-tm245p-teardown-and-upgrade/
