diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2018-05-29 20:59:17 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2018-06-29 21:20:12 -0400 |
commit | d72516070644bbe7876ae002121913fc9e2b64ed (patch) | |
tree | 11289ac06c10fdf55125b88fd3feeeaac3e8f9e2 /klippy/extras/mcp4451.py | |
parent | cc6b4166600692cddf165468d5349dac0804890b (diff) | |
download | kutter-d72516070644bbe7876ae002121913fc9e2b64ed.tar.gz kutter-d72516070644bbe7876ae002121913fc9e2b64ed.tar.xz kutter-d72516070644bbe7876ae002121913fc9e2b64ed.zip |
mcp4451: Add initial support for programming the mcp4451 on lpc176x
Add support for programming smoothieboard current.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/extras/mcp4451.py')
-rw-r--r-- | klippy/extras/mcp4451.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/klippy/extras/mcp4451.py b/klippy/extras/mcp4451.py new file mode 100644 index 00000000..a7eda9aa --- /dev/null +++ b/klippy/extras/mcp4451.py @@ -0,0 +1,32 @@ +# MCP4451 digipot code +# +# Copyright (C) 2018 Kevin O'Connor <kevin@koconnor.net> +# +# This file may be distributed under the terms of the GNU GPLv3 license. +import mcu + +WiperRegisters = [0x00, 0x01, 0x06, 0x07] + +class mcp4451: + def __init__(self, config): + printer = config.get_printer() + self.mcu = mcu.get_printer_mcu(printer, config.get('mcu', 'mcu')) + self.i2c_addr = config.getint('i2c_address') + scale = config.getfloat('scale', 1., above=0.) + wipers = [None]*4 + for i in range(len(wipers)): + val = config.getfloat('wiper_%d' % (i,), None, + minval=0., maxval=scale) + if val is not None: + wipers[i] = int(val * 255. / scale + .5) + self.add_config_cmd(0x04, 0xff) + self.add_config_cmd(0x0a, 0xff) + for reg, val in zip(WiperRegisters, wipers): + if val is not None: + self.add_config_cmd(reg, val) + def add_config_cmd(self, reg, val): + self.mcu.add_config_cmd("i2c_send data=%02x%02x%02x" % ( + self.i2c_addr, (reg << 4) | ((val >> 8) & 0x03), val), is_init=True) + +def load_config_prefix(config): + return mcp4451(config) |