Skip to the content
4 layers140 × 104 mmRemram, the printed circuit board in 3D

32bit STM32F7 based 3D printing controller using TMC2130 stepper driver

Size
140 × 104 mm
Copper layers
4
Thickness
1.6 mm
Parts
264
Nets
269
Pads
1,203
Tracks, vias
1,827, 551
Pours
35
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
27 Jul 2018
Updated
30 Apr 2020

Overview

Remram is an open-source printed circuit board by hasenbanck, from the hasenbanck/remram repository on GitHub. It is a 4-layer board of 140 × 104 mm with 264 parts on 269 nets, routed with 1,827 tracks and 551 vias.

It is built around the STM32F765VIT6, SN74LVC2G17DCKR and TMC2130-TA-T, with the ADUM4160BRW, TPS54308DDC and S310FA among its other parts. Its parts include 78 capacitors, 67 diodes, 65 resistors, 24 connectors and 10 ICs. It belongs with the STM32 boards of this library.

Main components

12

README

README.md

RemRam - 3D printer controller

RemRam v1.5

Features

  • 32bit STM32F765VI
    • 216 MHz
    • 512 KBytes RAM
    • 2 MBytes flash
  • 4x TMC2130 stepper driver
    • stealthChop
    • spreadCycle
    • coolStep
    • stallGuard
  • 24V main power rail
    • heatbed output (15A)
    • heater output (5A)
    • stepper driver and logic (5A)
  • 5V secondary power rail (3A)
    • FAN1 and FAN2
  • 2x 3.3V tertiary power rail (2x 0.5A)
    • MCU power (IO)
    • SD card power
  • Robust connectors
  • Quality, high powered MOSFET
  • 4 layer board with single side component placement

PCB design

Software used KiCad 5.0

Alternative Parts

You can substitute the TPS5408 with a TPS5402. In this case you also need to replace R4 with a Zero Ohm resistor.

Compiling the firmware

  1. Install Arduino
  2. Install the STM32 Core
  3. Optional for Serial over USB support: Update the STM32 Core using the git repository
  4. Download the current git branch of Marlin 2.0
  5. Open the Marlin project, select the "RemRam V1" board from the Marlin menue, edit the Marlin configuration file and build the project. You need to find the HEX or BIN file that Arduino creates and flash the firmware onto the board (See: "How to flash the firmware").

Configure Marlin

These are the board specific Configuration.h changes:

C
#define SERIAL_PORT 1 // 1 = UART connection on EXT3
                      // -1 = Serial over USB (see: Virtual COM Port Support (Serial over USB))
                      // You can also configure SERIAL_PORT_2

#define BAUDRATE 115200 // 115200 for UART on EXT3
                        // 1000000 for Serial over USB

#define MOTHERBOARD BOARD_REMRAM_V1

#define X_DRIVER_TYPE  TMC2130
#define Y_DRIVER_TYPE  TMC2130
#define Z_DRIVER_TYPE  TMC2130
#define E0_DRIVER_TYPE TMC2130

#define ENDSTOP_INTERRUPTS_FEATURE

#define SDSUPPORT

These are the board specific Configuration_adv.h changes:

C
#define MINIMUM_STEPPER_DIR_DELAY 20
#define MINIMUM_STEPPER_PULSE 0
#define MAXIMUM_STEPPER_RATE 400000

#if HAS_TRINAMIC

  // You can change ever value EXCEPT R_SENSE based on your setup.
  // Example values of my HEVO setup

  #define R_SENSE           0.12  // DO NOT CHANGE! Need to be 0.12 for RemRam V1
  #define HOLD_MULTIPLIER    0.3  // Scales down the holding current from run current
  #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256

  #define X_CURRENT          750  // rms current in mA. Multiply by 1.41 for peak current.
  #define X_MICROSTEPS       256  // 0..256

  #define Y_CURRENT          750
  #define Y_MICROSTEPS       256

  #define Z_CURRENT          750
  #define Z_MICROSTEPS       256

  #define E0_CURRENT         400
  #define E0_MICROSTEPS      256

src/pins/pins_REMRAM_V1.h

C
// Use only one or the other (you could damage the hardware otherwise!)
#define SDSS               57   // Onboard SD card reader
//#define SDSS              9   // LCD SD card reader

Of course you need to aditionally change the configuration files based on your particular printer setup.

Virtual COM Port Support (Serial over USB)

Virtual COM Port (also known as VCOM or CDC) support will land in the "official" STM32 arduino core with version 1.5.0. If you want to use VCOM feature earlier, you can use the the master branch of the offical core.

Have a look at the "Update the STM32 Core using the git repository" on how to update the STM32 arduino core with a custom git branch. You also have to select "CDC Full Speed" as USB interface inside Arduino to enable the CDC interface.

External SD card reader

Most RepRapDiscount based LCD modules come with an integrated SD card reader. You can use this reader, but because this system is 3.3V based, the signal to noise ration is higher. Meaning you will need a much better connection between the LCD module and the board. Crappy ribbon cables won't do it in most cases. Dropping the SPI speed AND using shielded ribbon cables is most likely needed to get a good signal integrity.

You can't use the onboard SD card reader and the LCD card reader at the same time. DO NOT insert a SD card in both slots at the same time, because this could lead to a hardware failure.

How to flash the firmware

Supported:

  • Using the Cortex Debug Header (SWD)
  • Using DFU over USB
  • Using UART on EXT-3 PIN 15 (TX) and PIN 16 (RX)

Cortex Debug Header

You can use the Cortex Debug Header to program the STM32 firmware and do step-by-step debugging.

This board only support SWD. SWO is not routed to the header, since we had to use the pin for a PWM output.

I personally use the SEGGER J-Link Edu Mini. But any 2€ Ebay flasher should work ("ST Link V2"). Please make sure that you have a adapter for the debug header!

The debug header is a 2x05 pin (1.27/0.05”).

DFU (USB)

https://www.st.com/en/development-tools/stsw-stm32080.html

Please pay attention that you don't just flash the HEX/BIN file, but the special DFU image file (*.dfu) you need to create with the "DFU file manager" tool. DfuSe will let you happily flash a HEX/BIN file, but the board won't boot without a propper DFU file.

Please read the "UM0412" user manual you can find at the above link.

UART

https://www.st.com/en/development-tools/flasher-stm32.html

LICENSE

CERN OHL version 1.2

The files under PCB/packages3d are excluded from this license and are provided under fair use terms for this open-source project.

Parts

264
QtyValueFootprintReferences
39100nFCapacitor_SMD:C_0603_1608MetricC11, C18, C19, C21, C22, C23, C24, C25, C27, C28, C31, C33, C34, C35, C38, C39 +23
36S310FADiode_SMD:D_SOD-123D32, D33, D34, D35, D36, D37, D38, D39, D40, D41, D42, D43, D44, D45, D46, D47 +20
24BAT54GWJDiode_SMD:D_SOD-123D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23, D24, D25 +8
1347kResistor_SMD:R_0603_1608MetricR23, R24, R48, R49, R52, R53, R56, R57, R60, R61, R62, R63, R64
11100Resistor_SMD:R_0603_1608MetricR8, R9, R12, R13, R16, R17, R21, R22, R33, R36, R37
114.7kResistor_SMD:R_0603_1608MetricR27, R28, R29, R30, R31, R32, R38, R39, R42, R43, R65
101kResistor_SMD:R_0603_1608MetricR3, R18, R19, R20, R34, R35, R40, R41, R44, R45
80.12Resistor_SMD:R_1206_3216MetricR46, R47, R50, R51, R54, R55, R58, R59
810uFCapacitor_SMD:C_0603_1608MetricC1, C3, C12, C14, C50, C59, C68, C77
870543-0002custom-footprints:70543-0002J11, J12, J13, J14, J15, J16, J18, J19
7100uFCapacitor_THT:CP_Radial_D6.3mm_P2.50mmC5, C6, C7, C48, C57, C66, C75
5100kResistor_SMD:R_0603_1608MetricR6, R10, R11, R14, R15
570543-0003custom-footprints:70543-0003J17, J20, J21, J22, J23
422nFCapacitor_SMD:C_0603_1608MetricC46, C55, C64, C73
4470nFCapacitor_SMD:C_0603_1608MetricC47, C56, C65, C74
4Mounting_Hole_PADMountingHole:MountingHole_3.5mm_PadMK1, MK2, MK3, MK4
4TMC2130-TAcustom-footprints:TQFP-48-1EP_7x7mm_P0.5mm_EP4.8x4.8mm-HeatsinkU7, U8, U9, U10
3100nFCapacitor_SMD:C_1812_4532MetricC8, C9, C10
322uFCapacitor_SMD:C_1206_3216MetricC13, C15, C16
33557-2custom-footprints:KEYSTONE-FUSE-3557-2F1, F2, F3
370543-0001custom-footprints:70543-0001J6, J7, J8
210kResistor_SMD:R_0603_1608MetricR25, R26
21uFCapacitor_SMD:C_0603_1608MetricC29, C30
22.2uFCapacitor_SMD:C_0603_1608MetricC36, C37
28pFCapacitor_SMD:C_0603_1608MetricC26, C32
2AP7365-33WG-7Package_TO_SOT_SMD:SOT-23-5U1, U3
2BUK9840-55Package_TO_SOT_SMD:SOT-223-3_TabPin2Q3, Q4
2Conn_02x05Connector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_VerticalJ5, J10
2MPZ1608S221AResistor_SMD:R_0603_1608MetricFB1, FB2
2PSMN1R2-30YLC,115custom-footprints:SOT-669_LFPAK_ThermalVias-1Q1, Q2
2SK310A-LTPDiode_SMD:D_SMAD5, D6
2SMAJ28ADiode_SMD:D_SMAD2, D3
1039531-1002custom-footprints:39531-1002J2
1100nFCapacitor_SMD:C_1206_3216MetricC4
1105kResistor_SMD:R_0603_1608MetricR2
110uFCapacitor_SMD:C_1206_3216MetricC2
113.3kResistor_SMD:R_0603_1608MetricR7
118uHcustom-footprints:L_Wuerth_WE-PDFL1
120021121-00010C4LFcustom-footprints:PinHeader_2x05_P1.27mm_Vertical_SMDJ9
12kResistor_SMD:R_0603_1608MetricR4
14.7uFCapacitor_SMD:C_0603_1608MetricC20
149.9Resistor_SMD:R_0603_1608MetricR5
14DB-P108-06custom-footprints:4DB-P108-06J1
1511kResistor_SMD:R_0603_1608MetricR1
167068-8000custom-footprints:67068-8000J3
175pFCapacitor_SMD:C_0603_1608MetricC17
1ADUM4160Package_SO:SOIC-16W_7.5x10.3mm_P1.27mmU5
1Conn_02x13_Odd_Evencustom-footprints:PinHeader_2x13_P2.54mm_VerticalJ4
1Hirose DM3Dcustom-footprints:microSD_HC_Hirose_DM3D-SFJ24
1IRLML6401Package_TO_SOT_SMD:SOT-23Q5
1LTST-C194KGKTLED_SMD:LED_0603_1608MetricD1
1LTST-C194KSKTLED_SMD:LED_0603_1608MetricD9
1Logo_Open_Hardware_LargeSymbol:OSHW-Logo2_14.6x12mm_SilkScreenLOGO1
1OS102011MA1QN1custom-footprints:SW_CuK_OS102011MA1QN1_SPDT_AngledSW2
1PTS645VL39-2Button_Switch_THT:SW_Tactile_SPST_Angled_PTS645Vx39-2LFSSW1
1S3A-13-FDiode_SMD:D_SMCD4
1S8401-46custom-footprints:S8401-46BT1
1SN74LVC2G17DCKRcustom-footprints:SOT-363_SC-70-6U4
1STM32F765VIT6custom-footprints:TQFP-100_14x14mm_P0.5mmU6
1TPS54308Package_TO_SOT_SMD:SOT-23-6U2
1TSX-3225 24.0000MF15X-AC3Crystal:Crystal_SMD_SeikoEpson_TSX3225-4Pin_3.2x2.5mmY1

Similar boards

  • 4 layers200 × 100 mmHeteromycin, the printed circuit board in 3D

    Heteromycin

    hasenbanck/heteromycin

    A 3D printer board using a powerfull STM32 MCU, TMC5160/TMC2160 driver and a Raspberry Pi or compatible SBC

    373 parts40
  • 2 layers50 × 50 mmStm32f765-breakout board, the printed circuit board in 3D

    Stm32f765-breakout board

    Prachannagven/stm32f765-facial-detection

    A project built around the STM32F765VIT6 chip to perform basic facial detection and to act as a flight controller for a micro drone.

    45 parts1
  • 4 layers162 × 100 mmIGBT board, the printed circuit board in 3D

    IGBT board

    paltatech/half-bridge

    TO247 half bridge module for EVs

    260 parts18
  • 2 layers60 × 46.5 mmCounter timer, the printed circuit board in 3D

    Counter timer

    theSusurrus/counter-hw

    35 parts
  • 2 layers21.5 × 6.4 mmNot a varta, the printed circuit board in 3D

    Not a varta

    wiretap-retro/Not-A-Varta-CR2032

    Similar to the "Not-A-Varta", but with a vertical CR2032 holder, and elongated mounting holes.

    4 parts50
  • 4 layers99 × 64 mmWSPR ease, the printed circuit board in 3D

    WSPR ease

    alanmimms/WSPR-ease

    Easy WSPR transmitter using ESP32C3 and not much else.

    182 parts1MIT
  • 2 layers56 × 81.5 mmPipette tool, the printed circuit board in 3D

    Pipette tool

    rodrigue-laboratory/pipette-tool-pcb

    bash kicad-cli pcb export gerbers pipettetool.kicadpcb --output fab/gerbers kicad-cli pcb export drill pipettetool.kicadpcb --output fab/gerbers --format excellon

    38 parts1BSD-3-Clause

Questions

How big is the Remram PCB?

It measures 140 × 104 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Remram use?

264 parts, built around the STM32F765VIT6, SN74LVC2G17DCKR, TMC2130-TA-T and ADUM4160BRW. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Remram KiCad files?

From the hasenbanck/remram repository on GitHub, at the commit this page was made from: the board is PCB/remram.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Remram design in my own project?

Its repository states no licence, so its author keeps all rights: ask hasenbanck before reusing the design.