February 23, 2019

XViCO Pioneer (X3) Board Reverse Engineering

Hardware


The XViCO board is based around an STM32F103RCT6, a 64-pin part.

Partial pinout:
1 - VBAT
2 - PC13 - Extruder ENable (R23 = 10k pullup to 3.3V) 
3 - PC14 - Extruder DIRection
4 - PC15 - Extruder STEP
5 - PD0 - 8MHz Crystal
6 - PD1 - 8MHz Crystal
7 - NRST - reset button
8 - PC0 - Z STEP
9 - PC1 - Z DIR
10 - PC2 (ADC123_IN12) - Extruder (hotend) Temp (R5 is 4.7k pullup to VDD)
11 - PC3 (ADC123_IN13) - Bed Temp (R14 is 4.7k pullup to VDD)
14 - PA0 - Bed heater MOSFET gate (7R030)
15 - PA1 - Hotend heater MOSFET gate (7R030)
16 -  PA2 - Q3 (CA2TF) - "B_FAN" header
17 - PA3 - Q4 (CA2TF) - "E_FAN" header
20 - PA4 (SPI1_NSS) - U38.1?
21 - PA5 (SPI1_SCK) - U38.6?
22 - PA6 (SPI1_MISO) - U38.2?
23 - PA7 (SPI1_MOSI) - U38.5?
24 - PC4 - Z ENable (R22 - 10k pullup to 3.3V)
25 - PC5 - Y STEP
26 - PB0 - Y DIRection
27 - PB1 - Y ENable (R21 - 10k pullup to 3.3V)
28 - PB2 - X STEP
29 I2C SCL
30 I2C SDA
33 - PB12 - X DIR
34 - PB13 - "Level"
35 - SPI2_MISO
36 -  SPI2_MOSI
37 - PC6 - X ENable (R20 - 10k pullup to 3.3V)
38 - PC7 - X Home
39 - PC8 - SD pin 3
40 - PC9 - SD pin 2
41 - PA8 - Y Home

42 - PA9 - "TX" on header. Function: USART1TX
43 - PA10 - "RX" on header. Function: USART1RX
44 - PA11 - Z Home switch (also USBDM, but not brought to header)
45 - PA12 - E Home (filament runout?) (also USBDP, but not brought to header)
46 - PA13 - "DO" on header. Function: JTMS-SWDIO
49 - PA14 - "CK" on header. Function: JTCK-SWCLK
50 - PA15 - SD pin 1
51 - PC10 - SD pin 9
52 - PC11 - SD pin 2
53 - PC12 - SD pin 5
54 - PD2 - SD pin 7
61 - PB8 - LCD

Other devices:
L5970D - 12V to 5V Buck regulator
LD1117 - 3.3V Linear regulator
Winbond 25Q64JVS10 - 64Mbit SPI Flash

BUP_5V header - connected to 5V rail and GND

SD pin 4 = GND
SD pin 6 = VCC

Firmware

I desoldered the Winbond flash device and dumped the firmware here. The STM32F103RCT6 firmware is here (many thanks to advice from Samuel Pinches!)

I looked for images in the firmware using Irfanview (thanks to this very handy blog entry!) and eventually, this image jumped out:



Well, that's something to go on! After some googling, I landed at another blog, which seemed to explain the situation well.

The logeek.cn site has schematics for an STM32F103-based 3D printer board, it's for a much more sophisticated unit. I suspect the XViCO board is cut down significantly from the original design.