Giter Site home page Giter Site logo

klippertoolboard's Issues

3 axis version

is it possible to add 3 steppers onto the board?
by tapping into 4more pins from th stm32f103?

this is needed for a pan/tilt function on my printer as well as the extruder,or can you bring out a version with 2 extra stepper motor driver inputs? (connection solderd directly on the stepstick)

don't need 3 boards on the gantry this way (weightsavings)

regards giel

JLCPCB BOM/POS

MWSA0503-100MT according to LCSC is discontinued so not available anymore.
There are 2 SMD Resistors (R4,R7) that don't even show up as parts.

L4 and U3 show as no inventory available. Any possibilities of changing the pcb so that other parts can replace them?

POS files for v0.62 not correct

There seem to be some issues with the JLCPCB pos files for 0.62:

image

Some components in the wrong places, and some rotated incorrectly, Cap upside down etc

I think I can correct most of it myself but I'm terrified of getting it all wrong!!

list of pins

hello, can you provide a full list of pins ??

MCP2542FD on HuvudTiny2

Do you think replacing the SN65HVD230 with MCP2542FD makes sense?

You have the CanHatFD; adding the MCP2542FD will extend the capability...

Also, what do you think about adding a rotary position encoder onto the back of the PCB? that way you could have a closed loop stepper driver.

STEP file of board assembly

Would it be possible to get a STEP file of the assembled board? This would really help with figuring out clearances on dense toolheads.

Free up space on PCB

You have so much crammed into this gem! If you need to free up space you might consider the following:

  • Eliminate 2 of the mounting holes. Leaving 2 diagonal holes should be sufficient for mounting.

  • Replace the MicroFit3 connector with one of the fancy NanoFit connectors.

Switching PSU on CanHatFD

If we could integrate a switching power supply to drop the V-In to 5v, we could avoid powering the Raspberry Pi over USB. I have not read much into the backpowering via the 5V pin; but, this is a feature you could consider.

Meanwell has a ready to use module: MDS15B-05 (18 ~ 36V in, 5V @ 3A out) Datasheet link: https://www.meanwell.com/webapp/product/search.aspx?prod=MDS15

They have a larger version as well: https://www.meanwell.com/webapp/product/search.aspx?prod=MDS20

I know they are on the larger side; but, they are usually fit and forget. No need to adjust the output voltage

Add connector labels

It might be early on but adding silkscreen labels for the intended use of all the connectors would be helpful.

Availability?

Are there still major shortages of chips or are these able to be produced?

Waveshare RS485 + Pi Zero W 2

Is this still an issue with the new Pi Zero W 2? The new Pi is 5x faster than the original. I am looking to use it with 1 toolhead w/ADXL. In the future, I'd like to upgrade to 2 toolheads w/ADXL.

The MCP2515 is a very common SPI connected CAN bus chip. It is a pretty bad options since it has very small buffers on chip and creates a lot of CPU load on the Raspberry Pi, and has a tendency to drop packet. It is not recommended if you use more than 1 or 2 boards or if you plan to use the accelerometer.

You have to run the CAN bus at 250kbits/s or possibly 500kbits/s. An older Pi, or a Pi Zero will not work reliably, it has to be a Pi3 or Pi4 or better.

[FR]Thermocouple support

Like many who are already using higher quality industrial sensors on their 3D printers.

This project was brought to my attention, as part of an ongoing effort to bring CAN Bus effectors to 3D printers.
With Marlin and Klipper firmwars in mind.

However, due to the need for reliability, thermocouple support is essential
Please consider a Thermocouple version

Higher Voltage version

Hi,

Really like this project.

Do you think it would be feasible to support a wider range of voltages, up to 48V or 60V for use with large machines and motors?

BL/Touch support

Its a good concept, for my particular use being able to add a bl touch in addition to an endstop would be useful, the touch could remove an additional 2-4 wires though it does require being able to supply 300ma at 5V briefly

Along the same lines, support for an inductive probe might instead of the touch would likely be preferred by some, because they're unlikely to both be used you might be able to save some space by overlapping the header footprints or selecting the supply voltage pin as either 5 or Vin via a solder jumper

Questions: Alternate TMC driver setup

What are you thoughts on using a TMC driver module with a low profile header? This way if the driver goes bad it can be quickly and easily replaced. This also allows us to upgrade the driver module to alternate versions.

Example Module: https://www.digikey.com/en/products/detail/trinamic-motion-control-gmbh/TMC2209SILENTSTEPSTICK/10232488?utm_adgroup=Essen%20Deinki&utm_source=google&utm_medium=cpc&utm_campaign=Shopping_DK%2BSupplier_Other&utm_term=&utm_content=Essen%20Deinki

Example Low Profile Header: https://www.digikey.com/en/products/detail/samtec-inc/TLW-108-06-G-S/1105092

Other benefit, if you use taller headers for the TMC driver you can place component underneath to maximize footprint.

Timeout on wait for 'tmcuart_response' response

Using the Waveshare RS485 CAN HAT to control the Huvud board over CAN.

Tried both installation with Klipper master using current approach, as well as the updated approach on the klipper work-can-* branch.

Using the pins as described in your sample printer.cfg when attempting stepper moves (e.g. M83, G1 E50) the stepper successfully moves but shortly after Klipper crashes with the error Transition to shutdown state: Timeout on wait for 'tmcuart_response' response.

Any ideas?

Termination resistor

Do you suggest we always install a termination resistor on the board side? Why was it not included on the board?

Thanks!

USB details

Can you provide some documentation of the USB functionality? I only need 1 tool head board so I don't need the CAN to daisy chain it.

  1. How do I enable it?
  2. Do I need to use USB power lines in addition to the main power?

Thanks for an AMAZING board. Best idea ever.

Endstop inputs

Is it possible to add solder jumpers on the endstop inputs to disable pull-up resistors and RC filters so that these pins can be used as normal GPIOs? For example this can be used to connect servos or BLTouch.
image

Question: running this on a 12v system

Hello,

I like this idea and been looking for a solution for my Wanhao i3 v2.1.
Found this when I watched eddietheengineers video. He mentioned that he had issue with 12v system.
Could you add some type of heat sink to the board to alleviate the heat?

I have moded my printer with a BLTouth probe and dual 12v blowers for part cooling.

TIA
Daniel

Toolboard Klipper version?

Hello was not sure how to contact you other than on here. Does this board work with current master of klipper or does it require a branch version?

Timeout on Wait for identify_response

Hi,

I'm having trouble establishing serial with the toolboard, the board is detected by ~/klipper/scripts/canbus_query.py but klipper fails to see a identify_response on start up. I've pasted my configurations below, it is interfacing with the Waveshare RS485 CAN HAT

Created a socket
Wait for identify_response
Traceback (most recent call last):
File "/home/pi/klipper/klippy/serialhdl.py", line 65, in _get_identify_data
params = self.send_with_response(msg, 'identify_response')
File "/home/pi/klipper/klippy/serialhdl.py", line 249, in send_with_response
return src.get_response([cmd], self.default_cmd_queue)
File "/home/pi/klipper/klippy/serialhdl.py", line 306, in get_response
cmd_queue)
File "/home/pi/klipper/klippy/serialhdl.py", line 241, in raw_send_wait_ack
raise error("Serial connection closed")
error: Serial connection closed
Timeout on connect

My environment:

========= Last MCU build config =========
CONFIG_LOW_LEVEL_OPTIONS=y
# CONFIG_MACH_AVR is not set
# CONFIG_MACH_ATSAM is not set
# CONFIG_MACH_ATSAMD is not set
# CONFIG_MACH_LPC176X is not set
CONFIG_MACH_STM32=y
# CONFIG_MACH_PRU is not set
# CONFIG_MACH_LINUX is not set
# CONFIG_MACH_SIMU is not set
CONFIG_STEP_DELAY=2
CONFIG_BOARD_DIRECTORY="stm32"
CONFIG_MCU="stm32f103xe"
CONFIG_CLOCK_FREQ=72000000
CONFIG_FLASH_START=0x8000800
CONFIG_FLASH_SIZE=0x10000
CONFIG_RAM_START=0x20000000
CONFIG_RAM_SIZE=0x5000
CONFIG_STACK_SIZE=512
CONFIG_STM32_SELECT=y
CONFIG_MACH_STM32F103=y
# CONFIG_MACH_STM32F207 is not set
# CONFIG_MACH_STM32F401 is not set
# CONFIG_MACH_STM32F405 is not set
# CONFIG_MACH_STM32F407 is not set
# CONFIG_MACH_STM32F429 is not set
# CONFIG_MACH_STM32F446 is not set
# CONFIG_MACH_STM32F031 is not set
# CONFIG_MACH_STM32F042 is not set
# CONFIG_MACH_STM32F070 is not set
CONFIG_MACH_STM32F1=y
CONFIG_HAVE_STM32_USBFS=y
CONFIG_HAVE_STM32_CANBUS=y
# CONFIG_STM32_FLASH_START_2000 is not set
# CONFIG_STM32_FLASH_START_5000 is not set
# CONFIG_STM32_FLASH_START_7000 is not set
# CONFIG_STM32_FLASH_START_8800 is not set
# CONFIG_STM32_FLASH_START_10000 is not set
CONFIG_STM32_FLASH_START_800=y
# CONFIG_STM32_FLASH_START_0000 is not set
CONFIG_STM32_CLOCK_REF_8M=y
# CONFIG_STM32_CLOCK_REF_12M is not set
# CONFIG_STM32_CLOCK_REF_16M is not set
# CONFIG_STM32_CLOCK_REF_25M is not set
# CONFIG_STM32_CLOCK_REF_INTERNAL is not set
CONFIG_CLOCK_REF_FREQ=8000000
CONFIG_STM32F0_TRIM=16
CONFIG_CANSERIAL=y
# CONFIG_STM32_USB_PA11_PA12 is not set
# CONFIG_STM32_SERIAL_USART1 is not set
# CONFIG_STM32_SERIAL_USART2 is not set
# CONFIG_STM32_SERIAL_USART3 is not set
# CONFIG_STM32_CANBUS_PA11_PA12 is not set
CONFIG_STM32_CANBUS_PB8_PB9=y
CONFIG_CANBUS_FREQUENCY=500000
CONFIG_USB_VENDOR_ID=0x1d50
CONFIG_USB_DEVICE_ID=0x614e
CONFIG_USB_SERIAL_NUMBER_CHIPID=y
CONFIG_USB_SERIAL_NUMBER="12345"
# CONFIG_CUSTOM_STEP_DELAY is not set
CONFIG_INITIAL_PINS=""
CONFIG_HAVE_GPIO=y
CONFIG_HAVE_GPIO_ADC=y
CONFIG_HAVE_GPIO_SPI=y
CONFIG_HAVE_GPIO_I2C=y
CONFIG_HAVE_GPIO_HARD_PWM=y
CONFIG_HAVE_GPIO_BITBANGING=y
CONFIG_HAVE_STRICT_TIMING=y
CONFIG_HAVE_CHIPID=y
CONFIG_INLINE_STEPPER_HACK=y
=======================

/boot/config.txt

dtparam=spi=on
dtoverlay=mcp2515-can0,oscillator=12000000,interrupt=25,spimaxfrequency=2000000
dtoverlay=spi1-1cs

/etc/network/interfaces.d/can0

auto can0
iface can0 can static
bitrate 500000
up ifconfig $IFACE txqueuelen 128

Thanks!

Can hat power back feed?

Wanted to ask if you have considered adding a 24 to 5v regulator to the can hat possibly with two jumpers (one positive, one negative) which would feed 5v back into the pi to power it. thus eliminating the need for the micro usb or usb c cable to power the pi. Jumpers so it could be easily disabled or bypassed if that made sense for a given application.

Just thinking aloud as I am running pi 3b+ on my machines and utilize a small buck converter on the gpio pins (04,06) for power. Given the hat design photographed I would need to change some of my setup should I ever try to utilize a setup on par with what you have demonstrated here. but eliminating the extra dangling buck converter would be a nice to have.

Thermister accuracy at low temperatures ( E3D V6 )

I have an issue with the thermister reading at low temperatures ( below 10 degrees celcius ). When I start up Klipper shuts down through an ADC threshold error, I have to blast the hot end with a heat gun to get the firmware to start. It seems the thermister on my 0.61 board is out by about 10 degrees at lower temperatures compared to the bed temps but fine at higher temperatures.

The pertinent bits from my extruder section are:

heater_pin: head0:PA6
sensor_type: ATC Semitec 104GT-2
sensor_pin: head0:PA0
pullup_resistor: 2200
min_temp: 0
max_temp: 300

Anyone else find this, or am I configuring something wrong? The sensor type is carried forward from my old non-toolboard config so I know is accurate.

Steathburner

Heyho,

is it possible to hook up a chamber thermistor on the board ?
and is it possible to control led via the board ? (5v excluding)
and can i read a tacho signal ?

and wen it is possible how ?

Thank you

Question: Endstop Header VCC

Would it be possible to jumper the VCC on the .6x revision to support either 3.3V or 5V? Depending on the hardware used this would allow for broader support.

JLCSMT_Sample_BOM1

LCSC Part C21190, the UNIROYAL 1k resistor is in there twice once in line 17 once in 18, with Designators R4 and R6 respectively, shouldn't they go into one line?
I think you have the description with a capital K in the one and the non cap k in the other so the automated BOM put it into two lines.

image

Documentation updates for V0.61 version of board

Hello! I love the Huvud boards--I have a ton of the V0.50 on my printers and just installed the first V0.61 on a printer last night! There were a few gotchas/clarifications as more people install this:

Add flashing instructions
-8Mhz clock for make menuconfig build
-Add note -- if the wrong bootloader option is selected and you try to flash the Huvud, it will not work--need to flash the bootloader again using an ST-Link

Updated pin descriptions:
Extruder
Step: PB3
Dir: PB4
Enable: PB5
Uart TX: PA9
uart (RX): PA10

Thermistor 1 - PA0
Thermistor 2 - PA1
Heater - PA6
Fan 1 - PA7
Fan 0 - PA8
Endstop 1 - PB10
Endstop 2 - PB11
Endstop 3 - PB12
ADXL CS pin - PB1
Diag for TMC2209? - PA15

Future design iteration suggestion - Angled Pin Header

Just a suggestion for a future iteration.

The pin headers for the ST-LINK programming are taller than the surrounding connections.
I have a Voron 2.4 and I use the Huvud board on the X/Y (A/B) motors.
If the gantry is crooked (which can happen if the printer is off and you lean on the back gantry rail like an idiot)...
and you go to home, you can crash the back rail into the bottom plate.

Since the pins of the header are the highest point, they impact first and they bend.

Picture below was AFTER I had straightened most of them, they were essentially bent down on top of each other.
I'm shocked I didn't fry the board by shorting power and ground.

Next iteration maybe use a 90 degree header so these pins aren't the first thing to hit if a stepper goes too low?

20230318_151928

Steps required to restore a damaged bootloader

I bought a used Huvud board that I accidentally bricked with a bad flash update, it had an old version of CanBoot on it from the previous owner and I compiled Klipper with the wrong bootloader offset (2k instead of 8k), and the CanBoot bootloader happily overwrote part of itself while flashing.

I didn't find any clear documentation on how to restore the bootloader on the Huvud but have been looking at the datasheet for the STM32F103 and it seems this chip does not support bootloader recovery through USB, only UART. And those UART pins are in use by the stepper driver I believe, while the pins that go to the jumper header block are used for the stock bootloader?

Am I right in thinking that the chip would have to be desoldered to be reflashed?

ISOTP or ISOBus (J1939) for CAN protocol

Hi, I was reading the Klipper CAN code and noticed that it is not using any protocols to send anything more then 8 bytes. This is not error proof especially for the "Waveshare Raspberry Pi CAN hat", the packets can be lost or go out of order.
I mainlined J1939 support to the Linux kernel, in case you are interested to implement it for Klipper - ping me, i'll try to help you.

Accelerometer?

Klipper semi-recently added support for using an accelerometer to help calibrate the input shaper. It would be awesome to have one built into this board (space and CAN bus bandwidth permitting).

Minimal components for just stepper motor control?

I was wondering what are the minimal components needed if you just want a CAN stepper motor controller? Also would the firmware be okay if only the functionality for the stepper motor is populated?

Inductive probe?

Does this board support an inductive probe (Omron)? Vorons use a 3-wire inductive probe or Klicky. Add this connector and everyone will want to use the board. It's more important than endstops which are not on the toolhead.

Adapt design to RPI pico (rp2040 chip)

Do you think it would be difficult or even feasible to adapt the design to make use of the rp2040 chip rather than the stm32? It seems the stm32s are impossible to buy at the moment and one can pick up single units of the pi pico for about โ‚ฌ1. I think the one potential issue is that the pico doesn't have a native CAN implementation but it seems there are multiple implementations of it using the PIO pins.

Just wanted to get your thoughts on the possibility of the above, I am very interested in building a few of these boards but sourcing the parts is not super easy in the current environment :P

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.