Rambo development

From RepRapWiki
Jump to: navigation, search

RAMBo Pages: RAMBo .:. RAMBo v1.0-1.1 .:. RAMBo v1.2 .:. RAMBo Firmware .:. RAMBo Development

This page contains information relevant to the development of the RAMBo PCB. You can find general info at Rambo.

Contents

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 ) RamboDigital pin 78 Ext2 20
5 PE3 ( OC3A/AIN1 ) Digital pin 5 (PWM) PWM-Ext 5
6 PE4 ( OC3B/INT4 ) Digital pin 2 (PWM) Fan 2, PWM-Ext 4
7 PE5 ( OC3C/INT5 ) Digital pin 3 (PWM) Bed Heater
8 PE6 ( T3/INT6 ) RamboDigital pin 79 Ext2 18
9 PE7 ( CLKO/ICP3/INT7 ) RamboDigital pin 80 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 ) RamboDigital pin 84 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 ) RamboDigital pin 85 Ext2 6
28 PG3 ( TOSC2 ) RamboDigital pin 71 Ext3 7
29 PG4 ( TOSC1 ) RamboDigital pin 70 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 ) RamboDigital pin 81 Ext2 14
48 PD5 ( XCK1 ) RamboDigital pin 82 Ext2 12
49 PD6 ( T1 ) RamboDigital pin 83 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 ) RamboDigital pin 72 Ext2 9
66 PJ3 ( PCINT12 ) RamboDigital pin 73 Ext2 11
67 PJ4 ( PCINT13 ) RamboDigital pin 75 Ext2 15
68 PJ5 ( PCINT14 ) RamboDigital pin 76 Ext2 17
69 PJ6 ( PCINT 15 ) RamboDigital pin 77 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 RamboDigital pin 74 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 5
91 PF6 ( ADC6/PCINT14 ) Analog pin 6 Analog-Ext 3
92 PF5 ( ADC5/TMS ) Analog pin 5 Analog-Ext 8
93 PF4 ( ADC4/TMK ) Analog pin 4 Analog-Ext 6
94 PF3 ( ADC3 ) Analog pin 3 Analog-Ext 4
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

Thermocouple and additional thermistors

You can use the Analog Extension header to connect thermistors and analog thermocouple amplifiers (example:AD595) to the RAMBo board. You can also connect thermocouple amplifiers that communicate via SPI or other bus.

You will need to configure your firmware for the pin change and new sensor type.

Analog Extension

Arduino Analog Pin

Analog-Ext location

GND

Analog-Ext 2

3

Analog-Ext 4

4

Analog-Ext 6

5

Analog-Ext 8

5V

Analog-Ext 1

6

Analog-Ext 3

7

Analog-Ext 5

9

Analog-Ext 7

Note that Analog-Ext 5 is shared with thermistor 3. That circuit may need modified if depending on Analog-Ext 5's use.

Source

Development is taking place on Github Latest stable release is in tags - Github tags

Programming Bootloaders

https://raw.githubusercontent.com/ultimachine/RAMBo/master/bootloaders/RAMBo-usbserial-DFU-combined-32u2.HEX

Example avrdude command with AVRISPmkII connected to the ICSP1 port for programming the 32u2 with replacement firmware.

avrdude  -v -v -c avrispmkII -P usb -patmega32u2 -Uefuse:w:0xF4:m -Uhfuse:w:0xD9:m -Ulfuse:w:0xEF:m -Ulock:w:0x0F:m -Uflash:w:RAMBo-usbserial-DFU-combined-32u2.HEX:i

https://raw.githubusercontent.com/arduino/Arduino/master/hardware/arduino/avr/bootloaders/stk500v2/stk500boot_v2_mega2560.hex

Example avrdude command with AVRISPmkII connected to the ICSP port for programming the 2560 with replacement firmware.

avrdude -v -v -c avrispmkII -P usb -pm2560 -Uflash:w:stk500boot_v2_mega2560.hex:i -Uefuse:w:0xFD:m -Uhfuse:w:0xD0:m -Ulfuse:w:0xFF:m -Ulock:w:0x0F:m

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).

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.

Changelog

  • 1.3L
    • Add TVS diode to motor outputs (prevents failure due to hot-plugging motor and excessive BEMF)
    • Add filter capacitors to motor outputs
    • Add ferrite bead to motor and logic/extruder power inputs
    • The varistor providing ESD to USB pathway is replaced with a TVS diode
    • Flyback diode on mosfets now 3A to reduce unique part count
    • Icoupler decoupling now 100nF at each power pin
    • Remove solder mask between QFN pins
    • Shrink 12.5mm capacitor drill size
    • New footprints for 0603 components
    • Silk screen fixes
  • 1.2g(p)
    • The varistor change from 1.2fp is now in the design and the solder mask is stopped for the component. (electrically the same as 1.2fp)
  • 1.2fp
    • Patch to 1.2f. Add varistor between USB GND and GND to shunt ESD to USB shield. Done by manually removing solder mask
  • 1.2f
    • Assembly yield improvements:
      • update 0402, 0603, SOT669, SOIC8, and QFN32 footprint
      • shrink motor connector drill size
      • remove stop from thermal vias
      • add overprint to paste layer for fuse holder
    • fix MX2 and MX3 silk screen reversed
    • schematic cleanup (no changes to nets)
  • 1.2e
    • shrink vias around motor drivers to improve yield in wave process
  • 1.2d
    • remove solder mask between Atmega2560 leads
    • minor rerouts
  • 1.2c
    • isolate USB
    • thermistor over voltage protection up to 24V.
    • add LC filter to analog power input
    • board power inputs now support up to 35V
    • VCC now from built in SMPS, pads are provided to disable SMPS for powering from alernate VCC source
    • rotate some auxiliary connectors and improve pad size for wave process
    • change mounting hole type to ease wave process (no more polyimide taping)
    • Seperate decoupling for each VDD pin on motor drivers
    • add freewheeling diodes to mosfets
    • new layer stackup
    • rework pcb edge noise rail
    • numerous routing and silk screen updates
    • through hole capacitors in case they ever need replaced
  • 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 Rambo_1_0
    • change R30 value
    • remove stop on vias and under drivers
    • clarify PS_ON and other silk screen fixes
  • 1.0d Initial release