Git Product home page Git Product logo

prntrboardv2's Introduction

PrntrBoard V2

PrntrBoard V2 is the next iteration of my 3D printer controller design. The V1 was very good, except it had one major drawback - the stepper drivers were soldered on the board which would make the design expensive. This V2 design has 6 replaceable motor drivers. While traditional RAMPS based boards use pin headers to house the driver boards, I'm using PCIe 1x slots. This design has several advantages:

  • the driver PCB layout can be more flexible as there are fewer constraints on the driver board dimensions
  • drivers are placed vertically on the board which allows for more efficient space utilization as well as more efficient cooling
  • PCIe 1x slots have 36 pins which allows for greater design flexibility

Picture of rev-1 KiCad Rendering

Project Status

The following functionality has been verified on the rev1 prototype board with Marlin firmware:

  • TMC2660 and TMC2209 drivers working and able to move motors
  • Endstops
  • Heaters and thermistor inputs
  • LCD interface with 12864 panel from FYSETC and REPRAP Discount Graphics Panel.
  • Micro SD-card interface
  • EEPROM
  • Fan control

Features of the board:

  • up to 6x replaceable stepper motor drivers
  • 32-bit Arm processor with floating point support running at 168MHz (STM32F407)
  • up to 6 thermistors or 6 thermocouples for temperature control
  • 4 power heaters (1 bed and up to 3 extruder heaters) with PWM power control
  • 5 low power PWM connectors with selectable voltage (5V vs 12-24V) for fans or LEDs
  • 8 end stops with option to use stall detection from the stepper drivers on 6 of them
  • micro-sd card support with SDIO for fast file transfer
  • 2 extra serial ports for WiFi and or smart LCD screen control
  • RAMPS LCD screen support
  • Marlin 2.0 firmware or Smoothieware V1.0, RRF port in progress, Klipper port in progress.
  • 4 extra fan connectors (2x5V and 2x12-24V)
  • Input voltage: 12-24V
  • CAN bus connector contributed by ArkadiuszRaj.

Picture of rev-1 prototype

Drivers

High power driver using Trinamic TMC2660. Should support up to 2.5A RMS current per phase with forced cooling. Supports stall detection. Driver current is adjustable via SPI.

KiCad rendering of the 2660 driver board 2660 r2 driver board

Versatile "economy" driver using Trinamic TMC2209. Should support up to 1.8A RMS current per phase with forced cooling. Supports stall detection. Driver current is adjustable via UART.

KiCad rendering of the 2209 driver board2209 r6 driver board

High voltage driver (up to 42V) using Trinamic TMC2130. Should support up to 1.1A RMS current per phase with forced cooling. Supports stall detection. Driver current is adjustable via SPI. The driver board has separate power terminal.

KiCad rendering of the 2130 driver board

Very high current driver design using TMC5161 and TMC2160 with external MOSFETS are also possible. In addition an adapter board for Pololu style stepper drivers is planned for backwards compatibility with old drivers.

Software

Marlin v2 is working on the board. I have a port of Smoothieware V1. Klipper is functional with some [fixes] (https://github.com/ghent360/klipper). RepRepFirmware ports is in early stages and not yet functional.

Visit my blog for status updates on the development of the board.

prntrboardv2's People

Contributors

arkadiuszraj avatar ghent360 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

prntrboardv2's Issues

Blog seems down.

So it looks like you're blog https://blog.pcbxprt.com/index.php/category/prntrboard/ is inaccessible to me. I wanted to see your updates as i wanted to build one myself but pinging you're blog doesn't respond down detector says it's down and chrome and Firefox can't reach it. If you don't use the blog anymore then removing the links would be a good idea.

RRF compatibility

Hello,

First of all congrats for this work.
As a foreword I want to express my openness in helping porting of the STM RRF to support this board. I am interested in assembling of this board for my purposes but to do so (make RRF running) I think small modifications are necessary.

  • enable CAN to allow using Duet3 modules. This can be done by small remapping of GPIO (PD0-1 for CAN, move ST5/6_STEP to PE7-8 and combine U_MIN/Z_MAX inputs with SWDIO/SWCLK lines)
  • resign from EXP1/EXP2 in favor of 4-pin TFT screen connection (like PanelDue) as I think those EXPs are ancient interface nowadays:)
  • add Wi-Fi by mimicking available adapters of NodeMCU/esp8266

I plan to use your design in future to control my Voron2.4 printer, which uses 6 motors to drive 3 axes. Thus I will need CAN to talk to Duet3 1LC for hotend. That is simpler than supporting 8x PCIe slots.

Why DC converter module is not vertically installed using something like 2.54 2x4 headers? Can you share background of this decision to place it horizontally?

I also think adding second converter in parallel, converting VIN to 12V to allow selection of this voltage to drive fans - much much cheaper fans as broadly available on computer market.

BTW, have you verified PCB with STM32F7 cpu?

Appreciate your comments.

Regards

Arkadiusz

StepStick driver considerations

Did another small thing, found inside PR #11

obraz

Questions:

  • shall DIAG output of the stepstick (TMC one) be connected to Alarm1?
  • what is purpose of CFG1-3 pins on the PCI slot? i.e PrntrBoard do not use them.
  • what is the purpose of this small eeprom on drive board?

Fix EXP2 pin 4

EXP2 pin 4 is currently not connected. With the recent addition of the CAN interface we have spare GPIO pins and we can add a connection for that pin.

This pin is needed for the WiFi add-on board.

FD-CAN or not...

First of all thx!!!! After dowloading gcc-arm-none-eabi-10-2020-q4-major-aarch64 onto my little ARM machine, compilation of RRF works smoothly.

Now The Part To Discusss.

Duet3 uses CAN. Hardware-wise it is prepared for another standard: FD-CAN.
With current PrntrBoardV2 update there is simple CAN interface, not the flexible data-rate alternatve.
I mean both STM32 and the TJA chip supports CAN up to 1 or 2 Mbps.

Personally I do not believe that FD-CAN is really needed to adress hotend board and sychronize extruder steps with other kinematics. But I have started to think. For whole planned Duet CAN' ecosystem maybe it is worth to use FD CAN. But it is not so easy to get such a chip from STM32 family.

What can I do? While awaiting for the prototype of my variant, I will most probably buy Duet 3 Toolboard 1LC and give it a try. I mean will try to connect it via old school CAN.

If this will work, that will be superb.
If not - then I guess switch to STM32H7 would be necessary.

With this issue I wanted to make you aware of my doubts on this topic.

WiFi Addon

PR already provided #7

ESP-12F used, to allow usage of DWC. Connected to main board via SPI2 exposed on EXT1/2 ports
Local USB to easly update firmware of the ESP.
As EXT1/2 do not provide 3V3 I have put also local dc-dcconverter.

obraz

obraz

Some thought about usability, installation, ergonomics

Albeit the height of the driver card is relatively small the issue to me is the how to bend cables vertically.
So I came with idea to rotate the driver, exposing motor port to the right side. Why? as on this side there are motror supply voltage pins.

This way the cables came from the side, easier for installation and tying them.
As for start, I did checking the most complicated (to me) circuit, ie. 2130. nd that is how it looks.

obraz

No components bodies rendered as I wanted to show you how the power tracke look like.

BTW, what do you think about changing TMC from C328952 to C465947, i.e. QFN-36_EP_5.0x6.0x0.5P package?

Folders structure enhancement

I suggest to add following folder structure

  • (one folder per product)

    • Manufacture

      • schematics.pdf
      • ibom.html
      • gerbers.zip
      • bom.csv
      • placement.csv

This is complete data for the ordering boards as well as assembly. Such a product manufacture' subfolder then represents "release" data content. If you agree I can start with making order following this suggestion.

PCB review

After applying #10 I think it is a highest time for board review.

  • proper track widths and clearances
  • proper via sizes and clearances
  • via to pad minimal distances for low connection impedance
  • and so on...

sd-card i/o rework & fix

At the moment the sd-card connector is broken (missing CS pin connection).
We can:

  1. Move the sd-card to use hardware SPI1, freeing the SPI3 pins.
  2. Scrounge some new pin for the CS connection
  3. Switch the sd-card back to 1 bit SDIO and scrounge for pins.

Downside of #1 and #2 is that I need new bootloader to read sd-card via SPI. Not a terribly big issue.
Downside for #2 and #3 is that we are short on pins again &^%@#$%^!

Best to probably byte the bullet on the bootloader and do #1, we'll have a few extra IO pins, which is nice.

StepStick better air flow

The distance between driver boards mounted vertically is 20mm. With the StepStick adapter, this does not leave a lot of room for heat sink on top of the driver. In addition on the bottom there is a wall of jumpers used for SPI/CFG switching, which would prevent air flow and installing heat sink on the bottom.

We should consider moving the SPI/CFG jumpers out of the way. Not a trivial task because there is not a whole lot of real estate left on the board. This will also break how these are traditionally organize on RAMPS boards and will require extra documentation.

Schematic library missing

Symbols in schematics cannot be normally displayed, showing rectangles with question marks. When double-clicking the part and the icon button at "Symbol - Library Reference", an error message prompts saying Library file '.....\PrntrBoardV2\hardware\10018784-10210TLF.lib' not found. Use the Manage Symbol Libraries dialog to fix the path (or remove the library). Maybe there should be a library file named "10018784-10210TLF.lib" but not uploaded to the repository?

Screenshots are as follows:

image

image

Many thanks!

Document the StepStick adapter

Write a document describing the configuration jumper options for the various StepStick format drivers that can be supported with this adapter.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.