ARM Pin mBed Pin LPCXpresso Pin Smoothieboard 1.0 Smoothieboard 1.5
(Proposed)
Comment
P0.0 P9 9 i2c1 sda i2c1 sda All: Internal I2C bus. Used for digipots and port expander.
P0.1 P10 10 i2c1 scl i2c1 scl All: Internal I2C bus. Used for digipots and port expander.
P0.2 USBTX 21 uart0 txd uart0 txd All: Used for ISP programming of the bootloader and for debugging.
P0.3 USBRX 22 uart0 rxd uart0 rxd All: Used for ISP programming of the bootloader and for debugging.
P0.4 P30 38 alpha_en_pin spare 1.5: recommended for encoder
note: also is rs485 rd2
P0.5 P29 39 alpha_dir_pin spare 1.5: recommended for encoder
note: also is rs485 td2
P0.6 P8 8 spi1 ssel spi1 ssel All: sdcard
P0.7 P7 7 spi1 sck spi1 sck All: sdcard
P0.8 P6 6 spi1 miso spi1 miso All: sdcard
P0.9 P5 5 spi1 mosi spi1 mosi All: sdcard
P0.10 P28 40 beta_en_pin spare
uart1 txd
1.5: connected to edison uart1 rxd
note: also i2c2 sda
P0.11 P27 41 beta_dir_pin spare
uart1 rxd
1.5: connected to edison uart1 txd
note: also i2c2 scl
P0.15 P13 13 spi0 sck spi0 sck
fpga sck
1.0: User spi port. used for rrd glcd
1.5: connected as master to fpga if populated, otherwise connected as slave to edison
P0.16 P14 14 spi0 ssel spi0 ssel
fpga ssel
1.0: User spi port. used for rrd glcd cs
1.5: connected as master to fpga if populated, otherwise connected as slave to edison
P0.17 P12 12 spi0 miso spi0 miso
fpga miso
1.0: User spi port
1.5: connected as master to fpga if populated, otherwise connected as slave to edison
P0.18 P11 11 spi0 mosi spi0 mosi
fpga mosi
1.0: User spi port. used for rrd glcd
1.5: connected as master to fpga if populated, otherwise connected as slave to edison
P0.19 - Pad17 gamma_en_pin mosfet5 1.5: free on 3 and 4 driver boards
note: also i2c3 sda on lpcxpresso e2prom
P0.20 - Pad18 gamma_dir_pin mosfet6 1.5: free on 3 and 4 driver boards
note: also i2c3 scl on lpcxpresso e2prom
P0.21 - 23 delta_en_pin servo1
P0.22 - 24 delta_dir_pin servo2 note: lpcxpresso led
P0.23 P15 15 hotend.thermistor_pin adc0 thermistor0
P0.24 P16 16 bed.thermistor_pin adc1 thermistor1
P0.25 P17 17 thermistor2 adc2 thermistor2
P0.26 P18 18 thermistor3 adc3 dac 1.5: not used for thermistor anymore
P0.27 - 25 i2c0 sda i2c0 sda All: User i2c port. Not used
P0.28 - 26 i2c0 scl i2c0 scl All: User i2c port. Not used
P0.29 31 37 USB-D+ USB-D+
P0.30 32 36 USB-D- USB-D-
P1.0 eth txd0 eth txd0
P1.1 eth txd1 eth txd1
P1.4 eth tx en eth tx en
P1.8 eth crs eth crs
P1.9 eth rxd0 eth rxd0
P1.10 eth rxd1 eth rxd1
P1.14 eth rx err eth rx err
P1.15 eth ref clk eth ref clk
P1.16 eth mdc eth mdc
P1.17 eth mdio eth mdio
P1.18 LED1 Pad1 led1 led1
P1.19 - Pad2 led2 led2
P1.20 LED2 Pad3 led3 led3
P1.21 LED3 Pad4 led4 led4
P1.22 - Pad5 3rd small fet alpha min endstop 1.0: spare on 3 and 4 driver boards
P1.23 LED4 Pad6 3rd large fet mosfet2 1.0: spare on 3 and 4 driver boards
P1.24 - Pad7 alpha_min_endstop mosfet3
P1.25 - Pad8 alpha_max_endstop alpha max endstop
P1.26 - Pad9 beta_min_endstop mosfet4
P1.27 - Pad10 beta_max_endstop spare
fpga clkin
1.5: clock output to fpga; recommended for rrd click/buzz if fpga not populated
P1.28 - Pad11 gamma_min_endstop gamma min endstop
P1.29 - Pad12 gamma_max_endstop gamma max endstop
P1.30 P19 19 spare beta min endstop 1.0: used for click button on rrd glcd
P1.31 P20 20 spare adc5 thermistor3 1.0: used for buzzer on rrd glcd
1.5: used for 4th thermistor
P2.0 P26 42 alpha_step_pin alpha step
P2.1 P25 43 beta_step_pin beta step
P2.2 P24 44 gamma_step_pin gamma step
P2.3 P23 45 delta_step_pin delta step
P2.4 P22 46 psu.output_pin alpha dir
P2.5 P21 47 bed.heater_pin beta dir
P2.6 - 48 fan.output_pin gamma dir
P2.7 - 49 hotend.heater_pin delta dir
P2.8 - 50 epsilon_step_pin epsilon step All: spare on 3 and 4 driver
P2.9 - Pad19 USB soft connect USB soft connect
P2.10 - 51 ISP button ISP button
P2.11 - 52 spare spare
fpga program
1.0: used for pause/kill/back pin on glcd
1.5: fpga reset pin; recommended for rrd click/buzz if fpga not populated
P2.12 - 53 pause button All: play/pause button
P2.13 - 27 epsilon_dir_pin epsilon dir All: spare on 3 and 4 driver
P3.25 - Pad13 spare 5v pwm out 1.0: used for encoder pin for all panels
P3.26 - Pad14 spare mosfet1 1.0: used for encoder pin for all panels
P4.28 - Pad15 play/pause led play/pause led
P4.29 - Pad16 epsilon_en_pin beta max endstop 1.0: spare on 3 and 4 driver

NOTE The italicized pins are hardcoded and would need to be changed in the source code (P0.2, P0.3, P0.6 - P0.9, P0.29, P0.30, P2.9, P2.10) The rest are soft configurable in config.
v1.5 NOTES The blue tagged pins have had their function changed for Smoothieboard v1.5

Edison Pin Usage:

Chip Pin Module Pin Breakout Pin Arduino Pin Smoothieboard 1.5 Comment
GP109 55 J17.11 spi5 sck
GP110 53 J18.10 spi5 ssel a
GP111 51 J17.10 spi5 ssel b
GP114 59 J18.11 spi5 misi
GP115 57 J17.12 spi5 moso
GP129 63 J18.12 D4 connected to mcu reset
GP130 61 J18.13 D0 uart1 rx connected to mcu uart1 txd
GP131 46 J19.8 D1 uart1 tx connected to mcu uart1 rxd
GP77 60 J19.12 - host breakout: sd0 cd
GP78 58 J20.11 - host breakout: sd0 clk
GP79 62 J20.12 - host breakout: sd0 cmd
GP80 66 J20.13 - host breakout: sd0 d0
GP81 70 J20.14 - host breakout: sd0 d1
GP82 64 J19.13 - host breakout: sd0 d2
GP83 68 J19.14 - host breakout: sd0 d3
GP84 44 J20.8 - host breakout: sd0 clk fb
GP134 22 J20.3 - host breakout: uart2 rxd
GP135 27 J17.5 - host breakout: uart2 txd
GP40 52 J19.10 - panel breakout: spi2 sck
GP41 54 J20.10 - panel breakout: spi2 ssel
GP42 50 J20.9 - panel breakout: spi2 moso
GP43 56 J19.11 - panel breakout: spi2 misi
panel breakout: enc a
panel breakout: enc b
panel breakout: click
panel breakout: button
panel breakout: buzz

FPGA Pin Usage:

FPGA Pin Papilio Pin
One/Pro/Duo
Zpuino Pin Smoothieboard 1.5 Comment
B1.40P BH3 P62 mcu clkout
B1.40N osc in - osc in
B2.1P spi0 sck main fpga spi slave port
B2.1N fpga m0 tied high for serial slave programming
B2.3P spi0 mosi main fpga spi slave port
B2.3N spi0 miso main fpga spi slave port
B2.13P fpga m1 tied high for serial slave programming
B2.56P fpga init tied high to boot immediately
B2.65N spi0 ssel main fpga spi slave port

Summary:

  • 1.5 new functions: dac, 5v pwm out, edison uart, 2 servos; optional function (not populated and pins free by default): rs485
  • the 5 enable pins will go on an 8 pin i2c io expander (PCA9554B); MS1, MS2, and RESET/SLEEP stepper pins will have pull-ups to expander pins
  • expander pins unassigned: 0
  • mcu pins spared without fpga: 2
  • mcu pins spared without edison: 2
  • mcu pins unassigned: 0
  • functions unassigned: 0
  • for rrd display support recommended that rs485 pins be used for encoder and two fpga pins be used for buttons
  • balance: 0 mcu pins remaining
  • I'm pretty sure this is currently 1 pin short of full backwards compatibility