Xpresso Smoothie

From RepRapWiki
Jump to: navigation, search

Crystal Clear action run.png
Xpresso Smoothie

Release status: experimental

Description A modular ARM electronics package.
License GPL
Author TopherMan, NoobMan
Based-on Arduino Mega Pololu Shield
Categories electronics, electronics development, surface-mount electronics, 32-bit board
CAD Models none
External Link Github

Xpresso Smoothie is an electronics package based on the LPCXpresso 1769, a development board using the LPC 1769, a powerful ARM Cortex-M3 processor running at 120 MHz. It is also compatible with the mbed 1768, though at a small cost of speed and features. It has been developed with the Smoothie firmware in mind. The package is still in development, and has been assembled. Testing is under way, and so far Revision 0 is fully functional.


Full Feature List

  • 12V or 24V compatible
  • 6x endstops, 3 with on-board opto circuitry
  • 5x headers for Pololu-style stepper drivers
  • 4x MOSFET power outputs, two of which are fuse protected for bed and extruder
  • 3x thermisors
  • Integrated MicroSD reader
  • Breakouts for I2C, ADC: 1 pin, GPIO: 3 pins, and on-board Ethernet

Differences when using mbed

  • Only 3 endstops, no on-board opto circuitry
  • 4 axes
  • 3 power outputs
  • Breakouts only for I2C and Ethernet
  • Slightly less powerful chip, 96 MHz instead of 120 MHz.

Current Status

Schematic, layout, and assembly for revision 0 is complete. Basic communication has been tested and works well, so after further testing and verification, this wiki will be expanded with instructions for assembly.



Parts List

Coming soon.

Assembly Instructions

Coming soon.

SMD components

Coming soon.

Through-hole components

Coming soon.

Daughter boards

Coming soon.

Jumper Settings

A variety of jumpers exist on the board, and need to be set based on your microcontroller and power needs. First, set the power jumper to either PSU or USB depending on your power needs. This powers the 3.3V regulator (and for the LPCXpresso also powers the microcontroller) from either the attached power supply or from the USB power. Other jumpers depend on which board you are using.

With LPCXpresso

  • Set jumper "3.3v to MCU"
  • Set jumper "5v from USB"
  • Do not set other jumpers

mbed using mbed's on-board USB

  • Set jumper "mbed Power 1 Connect"
  • Set jumper "mbed common enable"
  • Do not set other jumpers

mbed using XpressoSmoothie's USB

  • Set jumper "mbed Power 1 Connect"
  • Set jumper "mbed common enable"
  • Set jumper "Vgates to Vin"
  • Do not set other jumpers

Note that neither board author has used an mbed board, so we cannot advise on which of the two options above is preferable. If you have one and have tried it, please update this wiki to let us know.


Coming soon.

How to Use with LPCXpresso

Currently the board works best with Smoothie, though other firmwares may be ported to the mbed compiler in the future.

Flash the bootloader

For now, see Smoothie's page on flashing the bootloader. Note that if you don't have a dedicated FTDI cable, you can use an Arduino. Put a wire from ground to reset on the Arduino, power the LPCXpresso with its 3.3V line, and connect TX and RX to pins 1 and 0. Since pins on the LPC1769 are 5V tolerant, you can use any Arduino you'd like, not just a 3.3V one. Additionally, some arguments of the lpc21isp command may need to be adjusted, for example changing 230400 to 9600. Photo and more detailed instructions forthcoming.

Flash the firmware

Once you have successfully flashed the bootloader, you can place the microcontroller onto the board. To upload the firmware, first compile Smoothie as directed. (It's recommended that you use the "edge" branch since that is most up-to-date.) Place the flash card in your computer and copy the file "main.bin" from the folder LPC1768/ to the card and rename it to "firmware.bin". Place the SD card in the XpressoSmoothie board and power up. After a few moments, connect the USB from the board to your computer, and you should see a new USB mass storage device show up. You've successfully flashed the firmware!

Flashing new firmware after the first time

Now that you can connect to your board as a USBMSD, flashing is even simpler. Compile Smoothie, rename main.bin to firmware.bin, and transfer to the USB device. After pressing the reset button, the board should flash itself. To confirm, after the device attaches, check its root directory (where firmware.bin was). It should contain a file named firmware.cur.

Configure Smoothie

Configuration settings are stored in a plain text file called config in the SD card. You can find a sample XpressoSmoothie config file here in the XpressoSmoothie repository. Change the name to "config", adjust parameters and remove comments, and place on the SD card. On next reset Smoothie will apply these settings.

Use Smoothie

Smoothie can be used as a standard 3D printing package by attaching it to a host program and feeding it G-code line-by-line. Alternatively, it has a simple shell interface that can be used for standalone printing. Place G-code file on the SD card, and connect. You can either use cutecom (or similar) or in the root Smoothie directory run make console BAUD=<baudrate> CONSOLE=<device name>. From there you can feed it supported console commands.

How to Use with mbed

Not tested. See http://mbed.org/users/scotto/notebook/smoothie-firmware-for-mbed/ (and the bottom of http://smoothieware.org/flashing-the-bootloader). If an author ever gets his hands on an mbed this will be updated. Or update it yourself if you know.


Having problems? If it's board-related, feel free to contact Topherman or Noobman through PMs on the forum. If it's firmware related, Topherman may be able to help, but your best bet is heading over to Smoothieware's forum, Google Group, or IRC channel. They are all friendly and knowledgeable and ready to help!


TopherMan -- Initial design ideas and layout.

NoobMan -- Board layout, feature suggestions, endstop design, and making sure the board doesn't light on fire.