GithubHelp home page GithubHelp logo

bartlammers / turbocan Goto Github PK

View Code? Open in Web Editor NEW

This project forked from henrikssn/turbocan

1.0 1.0 1.0 3.79 MB

This is the official repository for the TurboCAN controller board, designed specifically for the Voron AfterBurner toolhead but can also be used on similar toolheads using NEMA17 steppers.

turbocan's Introduction

TurboCAN

Image of TurboCAN board

This is the official repository for the TurboCAN controller board, designed specifically for the Voron AfterBurner toolhead but can also be used on similar toolheads using NEMA17 steppers. The main benefit of this board is the capability to run the toolhead over just 4 wires (CAN, +24V, Ground) which greatly simplifies the wiring in the Voron v1 and v2 models.

Features

  • 1x Combined CAN-bus and 24V power port with polarity protection
  • 1x ADXL345 accelerometer for use with Klipper's input shaper feature
  • 1x 24V stepper stick mount and motor output
  • 3x 24V MOSFET fan0/fan1/heater outputs (up to 3A)
  • 2x 5V powered endstop inputs (marked X/Y), could be used for toolhead mounted endstops (microswitch or hall effect), filament runout sensor or 5V Z probe.
  • 1x 24V powered endstop input (marked Z) with built-in BAT42 diode, used for inductive probe on the AfterBurner but also supports microswitch based probing (e.g. Magprobe).
  • 1x Thermistor input with 4.7k pullup resistor
  • 1x USB-C port
  • 1x SWD debug port with BOOT0/RESET broken out
  • 5V 3A buck converter (available externally on X/Y endstops) and 3.3V 200mA linear regulator (internal only)
  • Power LED & Activity (PA1) LED

The board supports interfacing with Klipper both over CAN and USB-C (selectable when building the Klipper firmware).

Use cases

The TurboCAN board is actually not only useful as a toolhead board, here are some reasons why you want more of them:

  • Want even less wiring? TurboCAN fits on the back of any NEMA17 stepper, so you can mount TurboCAN boards on e.g. the A/B (or X/Y) steppers and run them over a shared CAN bus.
  • Need a USB to CAN interface? TurboCAN can do USB and CAN at the same time, so you can flash CandleLight firmware and use it as a USB-CAN interface.
  • Want input shaper but annoyed by the complicated SPI wiring needed for the ADXL345 board? Just use a spare TurboCAN board over USB(/CAN) instead.

Current status

WARNING: While the author has a working printer running a TurboCAN v0.1 board, this project is in early development, and most likely still has undiscovered issues. Build one at your own risk!

  • v0.1 boards ordered
  • v0.1 boards testing
    • LEDs
    • 3.3v LDO
    • SWD debug port
    • USB interface
    • Buck converter
    • Stepper stick
    • MOSFET outputs
    • CAN-bus + Flashing Klipper (CAN)
    • Thermistor input
    • X/Y endstop inputs
    • Z endstop input

Getting started

  1. Configure Klipper using make menuconfig:

Klipper menuconfig

  1. Put a jumper between BOOT0 and 3.3V and power cycle the board.

  2. Flash the TurboCAN board using make flash FLASH_DEVICE=1234:ABCD (replace USB vendor/product, you find them with lsusb).

  3. Connect the TurboCAN board using your favorite CAN bus interface (or use another TurboCAN board, see below).

  4. Run the klipper/scripts/canbus_query.py command to determine the CAN address. See Klipper docs for more info.

  5. Use the provided Klipper config as a starting point.

Changelog

v0.2

  • Errata fixes
    • LEDs are now mounted the right way.
    • R11 connected to R10/VSENSE.
    • SPI bus to the ADXL345 now have MISO/MOSI on the right pins.
    • Z probe input now has filtering and pullup resistor.
    • Reworked buck converter compensation circuitry.
    • Added CAN termination resistor.
  • Added 100uF bulk capacitor for 24V to mitigate voltage fluctuations due to long cables.
  • Thermistor resistor is now in 0805 package (was 0402) to simplify replacement to 1k (for PT1000 sensor).
  • Improved filtering of analog power domain to reduce ADC noise.

Errata

v0.1

  • LEDs are mounted backwards.
    • Workaround: Reverse them (or simply skip, they aren't essential).
  • R11 not connected to R10/VSENSE.
    • Workaround: Simple to bodge as R10 is next to it.
  • MISO and MOSI are swapped on the SPI bus to the ADXL345.
    • Workaround: Use software SPI.
  • Z probe input lacks filtering and pullup resistor
    • Workaround: Use MCU internal pullup.
  • Higher than optimal noise from the buck converter leading to noisy accelerometer readings.
    • Workaround: Doesn't need one, performance is still good enough for input shaper.
  • No CAN termination resistors on-board
    • Workaround: Mount a 0603 120Ohm resistor between the H/L legs of the CAN JST-XH connector on each end of the bus.
  • Thermistor readings are noisy (fluctuating 2-3C) with a PT1000 sensor
    • Workaround: Use a B3950 or replace the pullup resistor with a 1k 0.5%

Attribution

Although this was designed from scratch, it was inspired by the Huvud board made by Pontus Borg.

License

For compability with other Voron projects, all included files are licensed under the GNU GPL-3 license.

turbocan's People

Contributors

henrikssn avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

lady-ela

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.