dac084S085: SPI DAC DAC084S085 implementation (#5134)
Alligator Board Rev2 tested config sample. Add example configuration file for Alligator board rev.3. Signed-off-by: Lorenzo Franco <lorenzo.franco@lorenzing.com>
This commit is contained in:
parent
b0a24a4458
commit
7c964e5fdf
|
@ -0,0 +1,147 @@
|
|||
# This file contains common pin mappings for Alligator (Rev.2) board.
|
||||
# To use this config, the firmware should be compiled for the Arduino
|
||||
# Due.
|
||||
|
||||
# Remember flash procedure:
|
||||
# sudo /etc/init.d/alligator-manager --erase
|
||||
# sudo bossac -e -w -v -b -R -i -p ttyAMA0 klipper.bin
|
||||
# See alligator github for alligator manager:
|
||||
# https://github.com/3Dartists/alligator-manager
|
||||
|
||||
# See docs/Config_Reference.md for a description of parameters.
|
||||
|
||||
[static_digital_output DRV8825_microstepping]
|
||||
pins:PC10
|
||||
pins:PC29
|
||||
pins:PC19
|
||||
pins:PC18
|
||||
|
||||
[dac084S085 stepper_digipot]
|
||||
enable_pin: PB14
|
||||
spi_bus: spi0
|
||||
# Scale the config so that the channel value can be specified in amps.
|
||||
# (For Alligator v2.0 boards, use 2.50)
|
||||
scale: 2.50
|
||||
# Channel A in this example is X, B is Y, C is Z, D is E0,1,2,3.
|
||||
channel_A: 1.5
|
||||
channel_B: 1.5
|
||||
channel_C: 1.5
|
||||
channel_D: 1.0
|
||||
# channel D will be the current used by all extruders if> 1
|
||||
|
||||
[stepper_x]
|
||||
step_pin: PB24
|
||||
dir_pin: !PB25
|
||||
enable_pin: !PA15
|
||||
microsteps: 32 # number of microstep 16, 32
|
||||
rotation_distance: 16
|
||||
endstop_pin: ^!PC5
|
||||
position_endstop: -30
|
||||
position_max: 220
|
||||
position_min: -30
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_y]
|
||||
step_pin: PB22
|
||||
dir_pin: !PB23
|
||||
enable_pin: !PA15
|
||||
microsteps: 32
|
||||
rotation_distance: 16
|
||||
endstop_pin: ^!PC3
|
||||
position_endstop: -8
|
||||
position_min: -8
|
||||
position_max: 220
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_z]
|
||||
step_pin: PC27
|
||||
dir_pin: PC28
|
||||
enable_pin: !PA15
|
||||
microsteps: 32
|
||||
rotation_distance: 4
|
||||
endstop_pin: ^!PC2
|
||||
position_endstop: 0
|
||||
position_max: 240
|
||||
position_min: -1
|
||||
|
||||
[extruder]
|
||||
step_pin: PC25
|
||||
dir_pin: PC26
|
||||
enable_pin: !PA15
|
||||
microsteps: 32
|
||||
rotation_distance: 7
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: PA1
|
||||
sensor_pin: PA16 # PA16(near mcu) or PA24(near ethernet)
|
||||
sensor_type: ATC Semitec 104NT-4-R025H42G
|
||||
control: pid
|
||||
pid_kp: 15.572
|
||||
pid_ki: 0.446
|
||||
pid_kd: 136.064
|
||||
min_temp: 0
|
||||
max_temp: 270
|
||||
|
||||
#[extruder1]
|
||||
#step_pin: PD3
|
||||
#dir_pin: !PD2
|
||||
#enable_pin: !PA15
|
||||
#microsteps: 32
|
||||
#heater_pin: PC22
|
||||
#sensor_pin: PB25
|
||||
|
||||
#[extruder2]
|
||||
#step_pin: PD7
|
||||
#dir_pin: !PD6
|
||||
#enable_pin: !PA15
|
||||
#microsteps: 32
|
||||
#heater_pin: PC21
|
||||
#sensor_pin: PC28
|
||||
|
||||
#[extruder3]
|
||||
#step_pin: PD9
|
||||
#dir_pin: !PD8
|
||||
#enable_pin: !PA15
|
||||
#microsteps: 32
|
||||
#heater_pin: PA29
|
||||
#sensor_pin: PC5
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: PA0
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: PA24 # PA16(near mcu) or PA24(near ethernet)
|
||||
control: pid
|
||||
pid_kp: 73.517
|
||||
pid_ki: 1.132
|
||||
pid_kd: 1193.728
|
||||
min_temp: 0
|
||||
max_temp: 130
|
||||
|
||||
[fan]
|
||||
pin: PA7
|
||||
|
||||
#[heater_fan fan1]
|
||||
#pin: PA5
|
||||
#heater: extruder
|
||||
|
||||
[output_pin BEEPER_pin]
|
||||
pin: PB19
|
||||
pwm: True
|
||||
value: 0
|
||||
shutdown_value: 0
|
||||
cycle_time: 0.1
|
||||
scale: 1000
|
||||
|
||||
[mcu]
|
||||
serial: /dev/ttyAMA0
|
||||
|
||||
[printer]
|
||||
kinematics: cartesian
|
||||
max_velocity: 300
|
||||
max_accel: 1000
|
||||
max_z_velocity: 20
|
||||
max_z_accel: 100
|
||||
|
||||
#[bltouch]
|
||||
#sensor_pin: ^PC6
|
||||
#control_pin: PC4
|
|
@ -0,0 +1,135 @@
|
|||
# This file contains common pin mappings for Alligator (Rev.3) board.
|
||||
# To use this config, the firmware should be compiled for the Arduino
|
||||
# Due.
|
||||
|
||||
# Remember flash procedure:
|
||||
# sudo /etc/init.d/alligator-manager --erase
|
||||
# sudo bossac -e -w -v -b -R -i -p ttyAMA0 klipper.bin
|
||||
# See alligator github for alligator manager:
|
||||
# https://github.com/3Dartists/alligator-manager
|
||||
|
||||
# See docs/Config_Reference.md for a description of parameters.
|
||||
|
||||
[static_digital_output DRV8825_microstepping]
|
||||
pins:PC10
|
||||
pins:PC29
|
||||
pins:PC19
|
||||
pins:PC18
|
||||
|
||||
[dac084S085 stepper_digipot]
|
||||
enable_pin: PD2
|
||||
spi_bus: spi0
|
||||
# Scale the config so that the channel value can be specified in amps.
|
||||
# (For Alligator v3.0 boards, use 2.50)
|
||||
scale: 2.50
|
||||
# Channel A in this example is X, B is Y, C is Z, D is E0,1,2,3.
|
||||
channel_A: 1.5
|
||||
channel_B: 1.5
|
||||
channel_C: 1.5
|
||||
channel_D: 1.0
|
||||
# channel D will be the current used by all extruders if> 1
|
||||
|
||||
[stepper_x]
|
||||
step_pin: PB24
|
||||
dir_pin: !PB25
|
||||
enable_pin: !PA15
|
||||
microsteps: 32 # number of microstep 16, 32
|
||||
rotation_distance: 16
|
||||
endstop_pin: ^!PC5
|
||||
position_endstop: -30
|
||||
position_max: 220
|
||||
position_min: -30
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_y]
|
||||
step_pin: PB22
|
||||
dir_pin: !PB23
|
||||
enable_pin: !PC28
|
||||
microsteps: 32
|
||||
rotation_distance: 16
|
||||
endstop_pin: ^!PC3
|
||||
position_endstop: -8
|
||||
position_min: -8
|
||||
position_max: 220
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_z]
|
||||
step_pin: PB20
|
||||
dir_pin: PB21
|
||||
enable_pin: !PA29
|
||||
microsteps: 32
|
||||
rotation_distance: 4
|
||||
endstop_pin: ^!PC2
|
||||
position_endstop: 0
|
||||
position_max: 240
|
||||
position_min: -1
|
||||
|
||||
[extruder]
|
||||
step_pin: PB18
|
||||
dir_pin: PB19
|
||||
enable_pin: !PC27
|
||||
microsteps: 32
|
||||
rotation_distance: 7
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: PA19
|
||||
sensor_pin: PC25
|
||||
sensor_type: ATC Semitec 104NT-4-R025H42G
|
||||
control: pid
|
||||
pid_kp: 15.572
|
||||
pid_ki: 0.446
|
||||
pid_kd: 136.064
|
||||
min_temp: 0
|
||||
max_temp: 270
|
||||
|
||||
#[extruder1]
|
||||
#step_pin: PB17
|
||||
#dir_pin: !PB14
|
||||
#enable_pin: !PD6
|
||||
#microsteps: 32
|
||||
#heater_pin: PC22
|
||||
#sensor_pin: PA29
|
||||
|
||||
#[extruder2]
|
||||
#step_pin: PB12
|
||||
#dir_pin: !PB13
|
||||
#enable_pin: !PD8
|
||||
#microsteps: 32
|
||||
#heater_pin: PC21
|
||||
#sensor_pin: PC28
|
||||
|
||||
#[extruder3]
|
||||
#step_pin: PB15
|
||||
#dir_pin: !PB16
|
||||
#enable_pin: !PD9
|
||||
#microsteps: 32
|
||||
#heater_pin: PA29
|
||||
#sensor_pin: PB25
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: PA0
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: PA8
|
||||
control: pid
|
||||
pid_kp: 73.517
|
||||
pid_ki: 1.132
|
||||
pid_kd: 1193.728
|
||||
min_temp: 0
|
||||
max_temp: 130
|
||||
|
||||
[fan]
|
||||
pin: PA7
|
||||
|
||||
#[heater_fan fan1]
|
||||
#pin: PA5
|
||||
#heater: extruder
|
||||
|
||||
[mcu]
|
||||
serial: /dev/ttyAMA0
|
||||
|
||||
[printer]
|
||||
kinematics: cartesian
|
||||
max_velocity: 300
|
||||
max_accel: 1000
|
||||
max_z_velocity: 20
|
||||
max_z_accel: 100
|
|
@ -0,0 +1,25 @@
|
|||
# SPI DAC DAC084S085 implementation
|
||||
#
|
||||
# Copyright (C) 2021 Lorenzo Franco <lorenzo.franco@lorenzing.com>
|
||||
#
|
||||
# This file may be distributed under the terms of the GNU GPLv3 license.
|
||||
|
||||
from . import bus
|
||||
|
||||
class dac084S085:
|
||||
def __init__(self, config):
|
||||
self.spi = bus.MCU_SPI_from_config(
|
||||
config, 1, pin_option="enable_pin", default_speed=10000000)
|
||||
scale = config.getfloat('scale', 1., above=0.)
|
||||
for chan, name in enumerate("ABCD"):
|
||||
val = config.getfloat('channel_%s' % (name,), None,
|
||||
minval=0., maxval=scale)
|
||||
if val is not None:
|
||||
self.set_register(chan, int(val * 255. / scale))
|
||||
def set_register(self, chan, value):
|
||||
b1 = (chan << 6) | (1 << 4) | ((value >> 4) & 0x0f)
|
||||
b2 = (value << 4) & 0xf0
|
||||
self.spi.spi_send([b1, b2])
|
||||
|
||||
def load_config_prefix(config):
|
||||
return dac084S085(config)
|
|
@ -95,6 +95,8 @@ CONFIG ../../config/generic-printrboard-g2.cfg
|
|||
|
||||
# Printers using the sam3x8e
|
||||
DICTIONARY sam3x8e.dict
|
||||
CONFIG ../../config/generic-alligator-r2.cfg
|
||||
CONFIG ../../config/generic-alligator-r3.cfg
|
||||
CONFIG ../../config/generic-archim2.cfg
|
||||
CONFIG ../../config/generic-radds.cfg
|
||||
CONFIG ../../config/generic-ruramps-v1.3.cfg
|
||||
|
|
Loading…
Reference in New Issue