Rambo

From Geeetech Wiki
Revision as of 02:44, 30 October 2013 by Admin (talk | contribs) (Firmware)

Jump to: navigation, search

Summary

Rambo1.jpg

Rambo2.jpg

RAMBo (RepRap Arduino-compatible Mother Board) is an all in one RAMPS class motherboard targeting convenience, reliability, and performance.Our version is 1.1a.

Features

Logic

  • Arduino MEGA compatible Atmega2560 and Atmega32u2 processors are compatible with all RAMPS class firmwares
  • Crystals for both usb and mcu (timing accurate to 10ppm)
  • 4 Thermistor jacks
  • All extra pins broken out on both processors (allows using the 32u2 for LUFA AVR programmer, etc.)
  • 2 channel SDRAMPS compatible SPI breakout

Motor Drivers

  • 5 A4982 1/16th microstep motor drivers (A4984 1/8th prior to v1.1) (2 connectors on Z for Prusa Mendel and other dual Z printer designs)
  • Digital Trimpot for stepper current control
  • Current limit on driver IC VCC to prevent permanent latchup
  • Microstep mode configured by MCU through firmware (no jumpers needed)
  • Test points for driver control signals
  • Step and Direction pins are on their own ports for synchronous movement capability
  • Extra driver ports broke out for up to 3 additional drivers (some of the motor extension pins are shared with max endstop and a pin allocated for SPI-SS extensions)

PWM DC outputs (Extruders, Fans, Etc.)

  • 6 outputs
  • Low resistance mosfets for cool running
  • Indicator led for each channel

Power

  • Three independent power rails for flexible input power configurations
    • Heated Bed, 15A 12-24V (version earlier than 1.1 limted to 14A 16V due to fuse rating)
    • Extruders and fans, 5A 12-24V (fuse can be exchanged for up to 10A capacity) 10V-26V input voltage
    • Motors and logic, 5A 12-24V (fuse can be exchanged for up to 10A capacity) 10V-26V input voltage
  • Built in SMPS for 5V generation from Motor Power Input2

PCB

  • 4 layer
  • 2oz copper on all layers
  • High quality, High temperature FR4-TG130 PCB
  • Gold ENIG finishing

LCD panel support

There is now a fairly easy method for using a Smart Lcd with a Rambo board. See RamboLCD for instuctions.

Fuses and lockbits

32u2 fuses - BODLEVEL = 3V0; HWBE = [X]; DWEN = [ ]; RSTDISBL = [ ]; SPIEN = [X]; WDTON = [ ]; EESAVE = [ ]; BOOTSZ = 2048W_3800; BOOTRST = [ ]; CKDIV8 = [ ]; CKOUT = [ ]; SUT_CKSEL = EXTXOSC_8MHZ_XX_16KCK_4MS1

EXTENDED = 0xF4; HIGH = 0xD9; LOW = 0xEF

2560 Fuses BODLEVEL = 2V7; OCDEN = [ ]; JTAGEN = [ ]; SPIEN = [X]; WDTON = [ ]; EESAVE = [X]; BOOTSZ = 4096W_1F000; BOOTRST = [X]; CKDIV8 = [ ]; CKOUT = [ ]; SUT_CKSEL = EXTXOSC_8MHZ_XX_16KCK_65MS

EXTENDED = 0xFD; HIGH = 0xD0; LOW = 0xFF;

Lock bits for both only set BLB1 = LPM_SMP_DISABLE (0x0F).

Firmware

you need 12v on the control power input to be able to upload code to the board。 Support for RAMBo is in several firmwares. For Marlin you will at least need to set the following variables in configuration.h:

#define MOTHERBOARD 301

The TEMP_SENSOR needs to be set to match your configuration. For a Epcos 100K thermsitor on Extruder0 and HeatedBed:

#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 1

You will likely need to tune the PID and DEFAULT_ settings to mach your hardware.

For some computers you may also need to set #define BAUDRATE 115200 to get communications.

You can adjust the motor driver settings in Configuration_adv.h: #define MICROSTEP_MODES and #define DIGIPOT_MOTOR_CURRENT

USB Driver

Windows requires a driver to communicate with RAMBo. Download this file File:RAMBo USBdriver.zip and unzip it into a known location on your computer. In windows 7, plug in your RAMBo board, and let windows fail to find the driver. Then, go to the start menu, right click on computer and click properties. On the left, click on Device Manager. Scroll down to Unknown Devices, and right click on RAMBo. Choose Update driver. CLick on "Browse my computer for driver software", then click on "Let me pick from a list of device drivers on my computer", then click the button for "Have Disk" and then click browse and point it to the file you downloaded above.

Linux and Mac use the built in CDC driver. RAMBo should show as a option in your 3D printer control interface (/dev/ttyACM0 , etc.).

Maximum motor current

In version 1.0d R30 (4.99K) limited the current to ~1.65A. this is changed in revision 1.0e (3.33K) to raise the current limit to 2A. Version 1.0d assemblies can be patched to allow setting the increased current by soldering a 10K 0603 resistor in parallel (on top of) R30.

Heated bed maximum voltage

The heated bed circuit's voltage is limited by the RGEF1400 PTC fuse which is rated to 16V. If a higher voltage is required this fuse can be replaced with a jumper wire and off board fuse holder. Make sure that your wire and solder are sufficient to carry the high current of this rail.

Motor Current

The current for the stepper motors is set by firmware controlling the 8-bit digital potentiometer. The following formula from the Allegro datasheet describes how to set the reference voltage: ITripMAX = VREF/(8 X RS). RS, the value of the sense resistor on RAMBo is equal to 0.1<math>\Omega</math>. ITripMAX is the current the stepper motors are rated for. Ideally you should start with 70%-90% of maximum. You can verify the voltage for each driver by plugging the reference voltage (VREF) measured at the X_REF test point (Y_REF,etc for the other drivers) in the following formula:

<math> V_{Ref}= I_{TripMAX} \times 0.8</math>

Note the A4982 is set to be limited to 2A. This means the adjustable voltage range is 0 to 1.66 volts. The following formula will yield the 8-bit binary value, <math>W_v</math>, to be entered into firmware or directly over SPI.

<math>W_v = \frac{V_{Ref}}{1.66} \times 255</math>

Files

RAMBo-manual:

File:RAMBo-manual.pdf

RAMBo silk:

File:RAMBo0619silk.pdf

File:Controller final reprapdiscount.PDF


File:Rambo-LCD.pdf

Pins

The extension headers are in the format "Extension Name" "Pin Number" "Function". Example: MX1-5 Direction = "Motor Extension 1" "Pin 5".

Pin Number Pin Name Arduino Pin Name RAMBO Function
1 PG5 ( OC0B ) Digital pin 4 (PWM) PWM-Ext 6
2 PE0 ( RXD0/PCINT8 ) Digital pin 0 (PWM) (RX0) USB – serial comms, SER0 3
3 PE1 ( TXD0 ) Digital pin 1 (PWM) (TX0) USB – serial comms, SER0 4
4 PE2 ( XCK0/AIN0 ) Ext2 20
5 PE3 ( OC3A/AIN1 ) Digital pin 5 (PWM) PWM-Ext 5
6 PE4 ( OC3B/INT4 ) Digital pin 2 (PWM) PWM-Ext 4
7 PE5 ( OC3C/INT5 ) Digital pin 3 (PWM) Bed Heater
8 PE6 ( T3/INT6 ) Ext2 18
9 PE7 ( CLKO/ICP3/INT7 ) Ext2 16
10 VCC VCC VCC
11 GND GND GND
12 PH0 ( RXD2 ) Digital pin 17 (PWM) (RX2) Serial 7
13 PH1 ( TXD2 ) Digital pin 16 (PWM) (TX2) Serial 8
14 PH2 ( XCK2 ) Ext2 8
15 PH3 ( OC4A ) Digital pin 6 (PWM) Fan 1
16 PH4 ( OC4B ) Digital pin 7 (PWM) Heat 1
17 PH5 ( OC4C ) Digital pin 8 (PWM) Fan 0
18 PH6 ( OC2B ) Digital pin 9 (PWM) Heat 0
19 PB0 ( SS/PCINT0 ) Digital pin 53 (PWM)(SPI-SS) SPI-Ext SS 6
20 PB1 ( SCK/PCINT1 ) Digital pin 52 (PWM)(SCK) SPI-Ext SCK 5
21 PB2 ( MOSI/PCINT2 ) Digital pin 51 (PWM)(MOSI) SPI-Ext MOSI 4
22 PB3 ( MISO/PCINT3 ) Digital pin 50(MISO) SPI-Ext MISO 3
23 PB4 ( OC2A/PCINT4 ) Digital pin 10 (PWM) Z Min Endstop
24 PB5 ( OC1A/PCINT5 ) Digital pin 11 (PWM) Y Min Endstop
25 PB6 ( OC1B/PCINT6 ) Digital pin 12 (PWM) X Min Endstop
26 PB7 ( OC0A/OC1C/PCINT7 ) Digital pin 13 (PWM) LED, PWM-Ext 3
27 PH7 ( T4 ) Ext2 6
28 PG3 ( TOSC2 ) Ext3 7
29 PG4 ( TOSC1 ) Ext3 5
30 RESET RESET Reset
31 VCC VCC VCC
32 GND GND GND
33 XTAL2 XTAL2 XTAL2
34 XTAL1 XTAL1 XTAL1
35 PL0 ( ICP4 ) Digital pin 49 Y Direction
36 PL1 ( ICP5 ) Digital pin 48 X Direction
37 PL2 ( T5 ) Digital pin 47 Z Direction
38 PL3 ( OC5A ) Digital pin 46 (PWM) MX3-5 Direction
39 PL4 ( OC5B ) Digital pin 45 (PWM) MX2-5 Direction
40 PL5 ( OC5C ) Digital pin 44 (PWM) MX1-5 Direction
41 PL6 Digital pin 43 E0 Direction
42 PL7 Digital pin 42 E1 Direction
43 PD0 ( SCL/INT0 ) Digital pin 21 (SCL) I2C SCL
44 PD1 ( SDA/INT1 ) Digital pin 20 (SDA) I2C SDA
45 PD2 ( RXDI/INT2 ) Digital pin 19 (RX1) Serial 5
46 PD3 ( TXD1/INT3 ) Digital pin 18 (TX1) Serial 6
47 PD4 ( ICP1 ) Ext2 14
48 PD5 ( XCK1 ) Ext2 12
49 PD6 ( T1 ) Ext2 10
50 PD7 ( T0 ) Digital pin 38 Digipot SS
51 PG0 ( WR ) Digital pin 41 X Microstep2
52 PG1 ( RD ) Digital pin 40 X Microstep1
53 PC0 ( A8 ) Digital pin 37 X Step
54 PC1 ( A9 ) Digital pin 36 Y Step
55 PC2 ( A10 ) Digital pin 35 Z Step
56 PC3 ( A11 ) Digital pin 34 E0 Step
57 PC4 ( A12 ) Digital pin 33 E1 Step
58 PC5 ( A13 ) Digital pin 32 MX1-4 Step
59 PC6 ( A14 ) Digital pin 31 MX2-4 Step
60 PC7 ( A15 ) Digital pin 30 Z Max, MX3-4 Step
61 VCC VCC VCC
62 GND GND GND
63 PJ0 ( RXD3/PCINT9 ) Digital pin 15 (RX3) Serial 9
64 PJ1 ( TXD3/PCINT10 ) Digital pin 14 (TX3) Serial 10
65 PJ2 ( XCK3/PCINT11 ) Ext2 9
66 PJ3 ( PCINT12 ) Ext2 11
67 PJ4 ( PCINT13 ) Ext2 15
68 PJ5 ( PCINT14 ) Ext2 17
69 PJ6 ( PCINT 15 ) Ext2 19
70 PG2 ( ALE ) Digital pin 39 Y Microstep2
71 PA7 ( AD7 ) Digital pin 29 X Enable
72 PA6 ( AD6 ) Digital pin 28 Y Enable
73 PA5 ( AD5 ) Digital pin 27 Z Enable
74 PA4 ( AD4 ) Digital pin 26 E0 Enable
75 PA3 ( AD3 ) Digital pin 25 E1 Enable
76 PA2 ( AD2 ) Digital pin 24 X Max, MX3-3 Enable
77 PA1 ( AD1 ) Digital pin 23 Y Max, MX2-3 Enable
78 PA0 ( AD0 ) Digital pin 22 MX1-3 Enable
79 PJ7 Ext2 13
80 VCC VCC VCC
81 GND GND GND
82 PK7 ( ADC15/PCINT23 ) Analog pin 15 Y Microstep1
83 PK6 ( ADC14/PCINT22 ) Analog pin 14 Z Microstep1
84 PK5 ( ADC13/PCINT21 ) Analog pin 13 Z Microstep2
85 PK4 ( ADC12/PCINT20 ) Analog pin 12 E0 Microstep2
86 PK3 ( ADC11/PCINT19 ) Analog pin 11 E0 Microstep1
87 PK2 ( ADC10/PCINT18 ) Analog pin 10 E1 Microstep2
88 PK1 ( ADC9/PCINT17 ) Analog pin 9 E1 Microstep1
89 PK0 ( ADC8/PCINT16 ) Analog pin 8 Analog-Ext 1
90 PF7 ( ADC7/PCINT15 ) Analog pin 7 Thermistor 3, Analog-Ext 2
91 PF6 ( ADC6/PCINT14 ) Analog pin 6 Analog-Ext 3
92 PF5 ( ADC5/TMS ) Analog pin 5 Analog-Ext 4
93 PF4 ( ADC4/TMK ) Analog pin 4 Analog-Ext 5
94 PF3 ( ADC3 ) Analog pin 3 Analog-Ext 6
95 PF2 ( ADC2 ) Analog pin 2 Thermistor 2
96 PF1 ( ADC1 ) Analog pin 1 Thermistor 1
97 PF0 ( ADC0 ) Analog pin 0 Thermistor 0
98 AREF Analog Reference
99 GND GND GND
100 AVCC VCC VCC

Fuses

RAMBo has 3 replaceable fuses. The small white fuse holders are Little Fuse OMNI-BLOCK fuse holders. They are compatible with NANO2 Fuses. Fast or very fast acting are recommended. An example part number for replacement fuses is 0448005.MR F2 supplies the motors and on-board power supply. F3 supplies the extruder heater and fan outputs. F4 is a 15A ATO (the type found in many automotives). F4 supplies the heated bed output.

Changelog

  • 1.1b
    • change stepper driver to A4982 and microstepping options are now 1,1/2,1/4,1/16
    • change Fan1 output mosfet to SOT23 package and add another identical circuit to expand to 6 mosfet outputs
    • change heated bed fuse from PTC to ATO (auto blade) fuse increasing heated bed rail max voltage to match others (24V max recommended PSU)
    • additional decoupling caps
    • change license to match Arduino's published requirements
  • 1.0e
    • change R30 value
    • remove stop on vias and under drivers
    • clarify PS_ON and other silk screen fixes
  • 1.0d Initial release

How to buy

Click here to buy RAMBo V1.1a