From Roaddog Labs Docs

We're currently testing the Ulitmachine Archim 3D printer control package. This is a brief overview of how to load, configure and use Archim 3D printer controller package on a Roaddog Labs Bart Pro XL. I'll note any issues or peculiarities found in testing. Installing and configuring this board and software requires familiarity with the Arduino IDE. These docs are written using OS X to install and configure the software. Additions for other platforms are encouraged.

Archim started life as the Tiger Shark 3D printer controller then was forked into the Ambit and later changed to the current name, Archim. In the repo you will find references to Ambit particularly as the board definition used in the Arduino IDE.

Archim connectors.png


What is Archim?

Archim is the latest 3D printer controller from Ultimachine, creators of the original RAMPS and RAMBO 3d printer controller boards.

Archim Source Files

The source files for Archim including schematics, Gerbers and documentation are available at .

Archim Firmware

Main Repo

The main repo for the Marlin4Due for Archim is at

Roaddog Labs Repo

The repo specific to Roaddog Labs Bart Pro XL is at . This is a fork of the main repo that contains settings specific to the Bart PRo XL and is the references for these docs.

Archim Specs

ARM Cortex M3 ATSAM3X8E, 32 bit
Marlin4Due fork specific to Archim
Stepper Motor Drivers
5 Texas Instruments DRV8825 microstepper drivers, 2.5 amps, 1/32 microstepping. Dual connectors for Z axis
Heater Outputs
4 heater outputs using NXP 60 volt MOSFETS, PSMN7R0-60YS
Fan Control
2 fan control outputs using International Rectifier 30 volt MOSFETS, IRLML6346TRPBF
Power Supply Requirements
12-24 volts DC, 400 watts (Bart Pro XL uses 24 vdc); 3 input connectors, each fused, 5A motors, 5A heaters, 15A heated bed
Thermistor Inputs
4 thermistor inputs
End Stop Inputs
6 end stop inputs, X,Y,Z MIN and MAX
External Connections
USB, Micro SD, Serial, JTAG

Compiling the Firmware with OS X

Preparing the Arduino IDE

The board is flashed using the Arduino IDE. Use version 1.6.0 of the IDE, newer versions may not build. The Archim (Ambit) board definition will need to be copied from ArduinoAddons folder. The folder path in the repo is ArduinoAddons/Arduino_1.6.0/hardware/ultimachine . Copy the ultimachine folder to the hardware folder in your Arduino IDE installation. On Windows it's in your Program(x86) folder and on a Mac it's in your user documents folder. If you don't have a hardware folder in your Arduino installation you can create a directory named hardware under in your Arduino directory and copy the ulitmachine folder there. Restart the Arduino IDE if you have it open so the new board definition will be recognized.

Flashing the Controller

Preparing the Arduino Environment

The controller is flashed via the USB port. Connect your computer to the USB port on the controller. It's important to note that for this build we are using the older Arduino 1.6.0 IDE. If you don't have that you can get it at This is also a good time to make sure you don't have any apps open, for example a printer host, that could conflict with accessing the serial port on which the printer operates.

Ensure the Proper Java Runtime

You may also have to back date your Java install if you are using the Mavericks, Yosemite or El Capitan versions of OS X (or any Java SE 6 version, typically Lion and later). If you need the older version this dialog (or one like it) will appear.

Arduino need java dialog.png

I have both the older Java and the latest installed on the same computer (with all Arduino releases since 1.0.5) and all coexist fine. The dialog installs via software update though the direct link is at

Working in the Arduino Environment

Once you get the proper Java version installed, open the Arduino IDE. Open the Marlin.ino file in the Marlin folder of your firmware distribution from the IDE.

Opening Arduino Sketch

Once the sketch is open you'll need to choose the proper board configuration. Select Tools -- Board and at the bottom of the menu will be the board choice Ambit. This is one of those instances where the board is referred to as Ambit and not Archim. Select Ambit.

Selecting the Archim board definition

Once you have the board definition loaded, it's time to choose the serial port you'll use to connect the computer to the board. On a Mac it's going to be something like /dev/cu.usbmodem1421. The last four numbers may not be these but when the board is connected and the software open it should recognize the board. In my experience it tends to connect automatically though not always.

Selecting the serial port

If it doesn't connect or gives you a connection error you may need erase the processor on the controller manually. By doing this you will clear whatever is being stored in the processor but you were going to do that when you flashed the board anyway. To erase the firmware of the controller press and hold the erase button on the Archim. With the erase button pressed, press the reset button and hold both buttons for about 2 seconds. That will clear any previous flash and make the serial port available to use for programming.

Compiling the Firmware and Loading the Board

Now that the board is connected to the IDE you can compile and load the firmware to the board. If you are flashing a Roaddog Labs Bart or Bart Pro XL the respective configs should be ready to apply to the board by pressing the upload button in the IDE. The terminal window in the IDE will report any warnings or errors during compilation. When the compilation is complete the upload will start and unlike the 8 bit AVR based boards, the Archim will return data during the upload in the form of progress meters (using ASCII text) in the terminal window. Once it passes the tests the upload will show complete or return an error. If there are no errors at this point you can close the Arduino IDE and flashing is complete.

Board and Firmware Configuration Notes

The current config for the Roaddog Labs Bart Pro XL is based on settings used on the 8 bit AVR firmware using 1/16 micro stepping. The Archim is capable of 1/32 micro stepping though the current profile does not implement it.

The motor current is controlled with digital trim pots integrated into the board and programmed into the firmware. The default settings are in the configuration_adv.h file at 0.75 amps.

The current configuration is for a single extruder, max temp 250*C (E3D Lite v6), with a Semitec 104-GT2 100k ohm NTC thermistor (Marlin #5). The extruder is calibrated for an i3 Rework Gregs Wades geared extruder, 492 steps/mm @ 1/16 micro steps.

The heated bed is configured for a Makers Tool Works polyamide tape heater with integrated thermistor (Marlin #60).

The parts cooling fan controlled by the slicer is on the FAN port.

The E3D hot end cooling fan is controlled by the FAN1 port. It's firmware controlled to be on at full whenever the hot end is above 50* C. I've found that temp to be acceptable on our Rambo and Mini Rambo configs.

Issues and Workarounds

On boot with no firmware installed ports Heater2, Heater3 and FAN run 100%. After flashing with current firmware FAN stops running but Heater2 and Heater3 still run 100% and don't respond to M codes to turn off. The workaround was to dereference the pins to those MOSFETs. If your app requires those heaters to run you'll need to rereference those pins in the config. The issue has been reported.

You may need to power cycle the board after a flash to get the serial port released. Unplug the PSU for a few seconds then plug it back in. That should put the board in a state where it can connect again.

I've not been able to write or read to the SD card from Repetier Host or Octoprint. Still investigating.

Display support has not yet been implemented in the config.