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
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.
- 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.
|R2C2 V1.0 specifications|
|Input power supply voltage|
|Stepper motor controllers|
|MicroSD Card |
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.
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.
If you are using Windows, download this driver.
We ship R2C2 with latest firmware version installed, you don't need to worry about this.
If you are looking for the sources of R2C2 firmware, please follow to R2C2 Development page.
We are keeping the latest hardware on R2C2 Hardware github account.
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.
NOTE: There is a working code also for Arduino, get it here.
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
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.