Posted by andreas.riegg
The PiFaceDigital driver does not handle the board config parameter correct. It fails when providing a value via config file as the conversion from string to integer misses.
Proposed solution is:
>>>>>
... from webiopi.utils.types import toint ... class PiFaceDigital(): def __init__(self, board=0): self.board = toint(board) mcp = MCP23S17(0, 0x20 + self.board) mcp.writeRegister(mcp.getAddress(mcp.IODIR, 0), 0x00) # Port A as output mcp.writeRegister(mcp.getAddress(mcp.IODIR, 8), 0xFF) # Port B as input mcp.writeRegister(mcp.getAddress(mcp.GPPU, 0), 0x00) # Port A PU OFF mcp.writeRegister(mcp.getAddress(mcp.GPPU, 8), 0xFF) # Port B PU ON self.mcp = mcp
<<<<<
WebIOPi version used? => 0.7
Python version used? => 2/3
Distro used? (WebIOPi has only been tested on Raspbian Wheezy) => Raspbian Wheezy
Raspberry Pi board revision? (1 or 2) => n/a
Posted by andreas.riegg
Proposed solution was not correct, this one should work:
... from webiopi.utils.types import toint ...
class PiFaceDigital(): def __init__(self, board=0): board = toint(board) mcp = MCP23S17(0, 0x20 + board) mcp.writeRegister(mcp.getAddress(mcp.IODIR, 0), 0x00) # Port A as output mcp.writeRegister(mcp.getAddress(mcp.IODIR, 8), 0xFF) # Port B as input mcp.writeRegister(mcp.getAddress(mcp.GPPU, 0), 0x00) # Port A PU OFF mcp.writeRegister(mcp.getAddress(mcp.GPPU, 8), 0xFF) # Port B PU ON self.mcp = mcp self.board = board