R2C2 - Documentation

 

R2C2 electronic board is a new cutting edge technology for RepRap 3D printers. This board was developed with quality in mind.

The objective was to move the performance bottleneck of the RepRap 3D printers from the electronics to the mechanics! Now the sky is the limit Wink

RepRap 3D printers


This electronic board was developed for RepRap 3D printers: Mendel; Prusa; Huxley. However, we expect this electronic board to be used with other 3D printers, as Bobc did for use R2C2 to control his RapMan 3D printer. Bobc wrote all the information on RepRap wiki page: R2C2_For_Rapman. 

Important advantages


  • Just one board, a complete solution, to control your RepRap 3D printer (can also control any other 3D printer/laser/milling);
  • Plug and print - you will receive it completed assembled, tested, with proper versions of software and manuals on MicroSD card. No need to search on the web for the correct versions!
  • Hight speed printing and quality due to the cutting edge technology 32 bits ARM microcontroller running at 100MHz with fast integrated USB controller;
  • Heated Bed support;
  • MicroSD Card for stand alone printing (no need to be connected to a computer while printing) and to store board configurations in human readable text files.
  • Buzzer to alert user of the different states of the 3D printing process, like end of machine heating, start and end of printing, etc;
  • USB bootloader working as a USB Mass Storage device (works on Linux and Windows) - you will just need to copy/paste new firmwares to board as if is a USB pen flash;
  • Expansion header to support other functionalities like a second extruder for support material, support a laser to engrave/cut paper, wood, ABS, PLA, etc;
  • 24/12 volts power input. At 24 volts power losses on cables are lower providing faster heating making it quicker to start printing;
  • All the firmware were developed with OpenSource development tools: ARM GCC, ARM GDB, OpenOCD JTAG Programmer/Debugger and Eclipse. We intend to continue developing firmware and expansion modules, for adding new features. We envision the R2C2 to became the "Arduino" of the RepRap world.
  • Open Source: R2C2 source files of PCB, schematic and firmware are available on R2C2 Github account and so every user can take advantage and improve/adapt/hack R2C2 for his own purposes.
    Please go to Development page to know how to get the source files.

Specifications


R2C2 V1.0 specifications
Input power supply voltage
  • 12 to 24 volts
  • 1 orange LED to signal the power input

Microcontroller

 

  • ARM 32 bits
  • Running at 100MHz
  • 512 kbytes of flash memory
  • 64 kbytes of SRAM memory
  • USB 2.0 full-speed rate of 12 Mbit/s device, Host and OTG
  • 8 DMA channels
Stepper motor controllers
  • 4 stepper motors controllers for X, Y and Z axis plus E axis Extruder
  • 1/16 microstep for each axis
  • Current control of each axis of up to 1.6 amps
  • One red LED for each axis to show his activity
Extruder
  • Mosfet without dissipator can drive a maximum of 4A(*)
  • The NTC temperature sensor circuit is optimized for temperature values range of 150 - 300 ºC with a precision of 0.25ºC
  • 1 input for thermocouple temperature sensor board as alternative to the NTC temperature sensor. This functionality is selected on config.txt file on the MicroSD card)
  • 1 fan controller with variable speed. This controller can control up to a maximum of 75mA fan current.
  • 1 red LEDs showing the activity on the heater
Heated Bed
  • Mosfet with dissipator can drive a maximum of 9A(*).
  • The NTC temperature sensor circuit is optimized for temperature values range of 0 - 150 ºC with a precision of 0.25ºC
  • 1 red LED showing the activity on the heater
(*)Power Supply
  • The board can work between 24 and 12V, with a maximum source current of 9A at Ta=25ºC
  • It's always preferred use of 24V power supply, enabling less energy loss on cables leading to quicker element heating
  • The maximum power drive capability will be 220W @ 24V or 110W @ 12V
  • 1 orange LED light with the 3.3V 
Opto switchs
  • 3 opto switchs, one for each X, Y and Z axis
  • 3 green LEDs on the R2C2 board for showing the activity on the opto switches
  • 3 green LEDs on each opto switch board for showing the activity on the opto switches
Buzzer
  • 1 buzzer controlled with a PWM signal
MicroSD Card
  • 2Gbytes MicroSD Card wired on SPI BUS
  • DMA channel
USB
  • ARM integrated USB controller at full-speed rate of 12 Mbit/s
  • DMA channel
  • blue LED for signal USB successful connection (can also be used for any other functionality like debug)
Buttons
  • 1 button for reseting the board
  • 1 button for USB bootloader that can be used for any other functionality after boot
UART header
  • UART 3V3 header for connection of a FTDI cable like this one.
  • DMA channel
JTAG
  • ARM's standard 2x10 pin JTAG male connector for firmware flashing and debug
Expansion Header
  • 21 IO pins that shares other functionalities as:
    • 2 PWM and CAPTURE, with 32 bits resolution
    • 3 ADC with 12 bits resolution, 200 kHz maximum sampling rate, with DMA channel
    • 1 DAC with 10 bits resolution, 1 MHz maximum update rate, with DMA channel
    • 2 UART with 6.25 Mbit/s maximum data bit rate; with DMA channel
    • 1 SPI with 50 Mbit/s maximum data bit rate; with DMA channel
    • 1 Ethernet controller (need external Ethernet PHY) of 10 Mbit/s or 100 Mbit/s, with DMA channel

  • USB pins for use on USB device, Host or OTG
  • Power pins for +5V, +3V3 and +Vin (12 volts up to 24V)

Manual

The manual is divided in two parts:

  • Installation Manual - provides information on about how to test, install R2C2 and calibrate R2C2 electronics kit PLUS.
  • User Manual - provides information on how to print and use the ReplicatorG R2C2 software for daily printing.

Software


ReplicatorG R2C2 is a simple and user friendly software costumized for R2C2 that you can use to operate your 3D Printer (or other machines). It let's you visualize a 3D model/file that you downloaded from web or that you designed, you can scale or reposition the model and finally hit the print button.

We ship R2C2 with ReplicatorG R2C2 software on MicroSD card. You can also download the ReplicatorG R2C2 software by choosing the correct link according to your operating system (OS) : Linux; Windows.

If you are using Windows, download this driver.

We are keeping the latest software on R2C2 Software github account. Original ReplicatorG home page is here.

Firmware


We ship R2C2 with latest firmware version installed, you don't need to worry about this.

Latest firmware: R2C2_RepRap_firmware_v1.0.3.bin
This firmware binary file is ready to update R2C2 by using R2C2 USB bootloader.

If you are looking for the sources of R2C2 firmware, please follow to R2C2 Development page.

Hardware


We are keeping the latest hardware on R2C2 Hardware github account.

Tecnical details


FAST 32 bits ARM microcontroller


Since this microcontroller is a 32 bits ARM, runs at 100MHz, have integrated USB controller and have DMA, it makes possible to print at very high speeds and with better quality because the system doesn't suffer from slooowwww processing as reported here and here.

For comparition, the original RepRap electronics uses an AVR 8 bits running at 16MHz, without DMA.

USB 2.0 full-speed controller


The ARM microcontroller on this board support USB 2.0 full-speed rate of 12 Mbit/s and the firmware implements a Serial Port over USB, meaning all current RepRap software will be able to control the board as usual on actual RepRap electronics. The real communications speed is not limited to Serial port value but instead to the USB 2.0 full-speed rate of 12 Mbit/s.

The firmware also implements a "native" USB mode meaning the board is auto-detected and user don't need to configure Serial port on PC, as happens now with RepRap electronics and software. This is a step in direction of a simple 3D printer, plug and play and with less configuration options for users.

USB flash drive

It's possible to make the board working as being a USB flash drive. That way, user will be able to quick copy and paste the configuration files to the board (inside on board MicroSD Card). Also user manuals of the board itself and source files will be stored on the MicroSD Card.

USB bootloader as USB flash drive for firmware updates

The R2C2 board have an USB bootloader that works as an USB flash drive. This way users will be able to easily and quickly update new firmware versions.

Read more on R2C2 USB bootloader page.

USB full-speed support

A demonstration software were developed using Libusb (OpenSource and works on Linux and Windows) which identifies the board on PC USB bus and send and receive a stream of data using USB bulk transfers. Get the code here.

Here is a screenshot of the demonstration software working:

NOTE: There is a working code also for Arduino, get it here.

MicroSD Card


There is a MicroSD Card on R2C2 that works as board internal memory and stores GCodes files, letting printer working standalone (without the need to be connected to a computer while printing).

MicroSD Card also stores "config.txt" file with configurations like print area size, steps per mm and maximum feed rate. Now you can configure your 3D printer just by editing a txt file - no more need to build the firmware sources and program the microcontroller.

Current configuration file "config.txt" for my RepRap Mendel (printing at 100mm/s):

# Config file for RepRap 3D printer machines
#
# Tested on a RepRap Mendel with a Wade Extruder
#

# Number of step for each milimeter
steps_per_mm_x = 80
steps_per_mm_y = 80
steps_per_mm_z = 6400
steps_per_mm_e = 36

# Max feed rate of the machine
maximum_feedrate_x = 6000
maximum_feedrate_y = 6000
maximum_feedrate_z = 60
maximum_feedrate_e = 3000

# very slow speed for fine search
search_feedrate_x = 120
search_feedrate_y = 120
search_feedrate_z = 60
search_feedrate_e = 1600

# slow speed for initial search
homing_feedrate_x = 600
homing_feedrate_y = 600
homing_feedrate_z = 60

# direction of travel to find "home" endstop
# +1 = move in positive, -1 = move negative
home_direction_x = -1
home_direction_y = -1
home_direction_z = -1

# the coordinates to set when home found
home_pos_x = 0
home_pos_y = 0
home_pos_z = 0

# set to 1 if there is a dump position, for priming extruder
have_dump_pos = 0
rest_pos_x = 0
rest_pos_y = 0

# set to 1 if there is a rest position, e.g. at end print, temperature wait
have_rest_pos = 1
rest_pos_x = 120    
rest_pos_y = 120

# set to 1 if there is a wipe position
have_wipe_pos = 0
wipe_pos_x = 0
wipe_pos_y = 0

# size of print area
printing_vol_x = 120
printing_vol_y = 120
printing_vol_z = 85

# options
wait_on_temp=1

Buzzer


The buzzer is used to alert user of the different states of the 3D printing process, like the end of heating the machine, start and end of 3D the printing, etc.

The buzzer is controlled with a PWM signal and the duty-cycle and frequency can be changed - different sounds can be generated.

Share this