# Mesa7c81 Mesa7c81 over SPI - WIP * Board: [Mesa7c81](https://github.com/multigcs/riocore/blob/main/riocore/boards/Mesa7c81/README.md) * Config-Path: None * Output-Path: /tmp/rio-test-build/Mesa7c81 * Toolchain: ise * Protocol: UDP ## Axis/Joints | Axis | Joint | Plugin | Home-Seq. | | --- | --- | --- | --- | | X | 0 | stepdir0 ([stepdir](https://github.com/multigcs/riocore/blob/main/riocore/plugins/stepdir/README.md)) | -2 | | X | 1 | stepdir1 ([stepdir](https://github.com/multigcs/riocore/blob/main/riocore/plugins/stepdir/README.md)) | -2 | | Y | 2 | stepdir2 ([stepdir](https://github.com/multigcs/riocore/blob/main/riocore/plugins/stepdir/README.md)) | 2 | | Z | 3 | stepdir3 ([stepdir](https://github.com/multigcs/riocore/blob/main/riocore/plugins/stepdir/README.md)) | 1 | ## Plugins | Type | Info | Instance | Image | | --- | --- | --- | --- | | [blink](https://github.com/multigcs/riocore/blob/main/riocore/plugins/blink/README.md) | blinking output pin | blink0 | | | [stepdir](https://github.com/multigcs/riocore/blob/main/riocore/plugins/stepdir/README.md) | step/dir output for stepper drivers | stepdir0, stepdir1, stepdir2, stepdir3 | | | [bitout](https://github.com/multigcs/riocore/blob/main/riocore/plugins/bitout/README.md) | singe bit output pin | bitout0, bitout1, bitout2, bitout3, bitout4, bitout5, bitout6 | | | [bitin](https://github.com/multigcs/riocore/blob/main/riocore/plugins/bitin/README.md) | single input pin | bitin0, bitin1, bitin2, bitin3, bitin4, bitin8, bitin5, bitin6, bitin7, bitin10, bitin12, bitin11, bitin9 | | | [modbus](https://github.com/multigcs/riocore/blob/main/riocore/plugins/modbus/README.md) | generic modbus plugin | mb0, mb1 | | | [signal](https://github.com/multigcs/riocore/blob/main/riocore/plugins/signal/README.md) | virtual signal | mainpower, waterflow_status, spindle, spindle | | | [freqin](https://github.com/multigcs/riocore/blob/main/riocore/plugins/freqin/README.md) | frequency input | waterflow | | | [w5500](https://github.com/multigcs/riocore/blob/main/riocore/plugins/w5500/README.md) | udp interface for host comunication | w55000 | |
# Pins | Plugin | ID | Name | Board | Alias | | --- | --- | --- | --- | --- | | blink | blink0 | led | P48 | | | stepdir | stepdir0 | step | P141 | | | | | dir | P139 | | | | | en | - | | | | stepdir1 | step | P137 | | | | | dir | P133 | | | | | en | - | | | | stepdir2 | step | P132 | | | | | dir | P131 | | | | | en | - | | | | stepdir3 | step | P127 | | | | | dir | P126 | | | | | en | - | | | bitout | bitout0 | bit | P142 | | | | bitout1 | bit | P134 | | | | bitout2 | bit | P82 | | | | bitout3 | bit | P81 | | | | bitout4 | bit | P80 | | | | bitout5 | bit | P79 | | | | bitout6 | bit | P138 | | | bitin | bitin0 | bit | P124 | | | | bitin1 | bit | P123 | | | | bitin10 | bit | P94 | | | | bitin11 | bit | P87 | | | | bitin12 | bit | P92 | | | | bitin2 | bit | P121 | | | | bitin3 | bit | P120 | | | | bitin4 | bit | P140 | | | | bitin5 | bit | P93 | | | | bitin6 | bit | P88 | | | | bitin7 | bit | P85 | | | | bitin8 | bit | P83 | | | | bitin9 | bit | P84 | | | modbus | mb0 | tx | P43 | | | | | rx | P41 | | | | | tx_enable | P44 | | | | mb1 | tx | P35 | | | | | rx | P34 | | | | | tx_enable | P40 | | | freqin | waterflow | freq | P78 | | | w5500 | w55000 | mosi | P15 | | | | | miso | P16 | | | | | sclk | P14 | | | | | sel | P56 | | | | | rst | P12 | | | | | intr | - | |
# Signals | Plugin | ID | Name | Dir | Hal-Pin | Type | Description | | --- | --- | --- | --- | --- | --- | --- | | bitout | bitout0 | senable.bit | <- | halui.machine.is-on | net | | | | bitout4 | Cooling-Water.bit | <- | iocontrol.0.user-enable-out | net | | | | bitout5 | Cooling-Air.bit | <- | iocontrol.0.coolant-mist | net | | | | bitout6 | chargepump.bit | <- | chargepump(4) | net | | | bitin | bitin0 | homeX1.bit | -> | joint.0.home-sw-in | net | | | | bitin1 | homeX2.bit | -> | joint.1.home-sw-in | net | | | | bitin10 | ServoX1.bit | -> | &motion.enable | net | | | | bitin11 | ServoY.bit | -> | &motion.enable | net | | | | bitin12 | ServoX2.bit | -> | &motion.enable | net | | | | bitin2 | homeY.bit | -> | joint.2.home-sw-in | net | | | | bitin3 | homeZ.bit | -> | joint.3.home-sw-in | net | | | | bitin5 | p24ok.bit | -> | &motion.enable | net | | | | bitin7 | touchprobe.bit | -> | motion.probe-input | net | | | | bitin9 | ServoZ.bit | -> | &motion.enable | net | | | modbus | mb0 | mb0.spindle_speed_fb_rps | -> | spindle.0.speed-in | net | | | | | mb0.spindle_speed_command | <- | spindle.0.speed-out | net | | | | | mb0.spindle_spindle_at_speed_tolerance | <- | 4.0 | setp | | | | | mb0.spindle_spindle_forward | <- | spindle.0.forward | net | | | | | mb0.spindle_spindle_reverse | <- | spindle.0.reverse | net | | | | | mb0.spindle_spindle_on | <- | spindle.0.on | net | | | signal | mainpower | Mainpower.value | <- | rio.mb1.power < 3600.0 | net | | | | spindle | Spindleload.value | <- | delay((rio.mb0.spindle_ampere < 4.0), 0, 2) | net | | | | waterflow_status | Waterflow.value | <- | rio.Waterflow.frequency > 3.0 | net | |
# Interface ## Host to FPGA | POS | SIZE | NAME | | --- | --- | --- | | 0 | 32bits | RX_HEADER | | 32 | 96bits | VAROUT96_MB0_TXDATA | | 128 | 96bits | VAROUT96_MB1_TXDATA | | 224 | 32bits | VAROUT32_STEPDIR0_VELOCITY | | 256 | 32bits | VAROUT32_STEPDIR1_VELOCITY | | 288 | 32bits | VAROUT32_STEPDIR2_VELOCITY | | 320 | 32bits | VAROUT32_STEPDIR3_VELOCITY | | 352 | 1bit | VAROUT1_STEPDIR0_ENABLE | | 353 | 1bit | VAROUT1_STEPDIR1_ENABLE | | 354 | 1bit | VAROUT1_STEPDIR2_ENABLE | | 355 | 1bit | VAROUT1_STEPDIR3_ENABLE | | 356 | 1bit | VAROUT1_BITOUT0_BIT | | 357 | 1bit | VAROUT1_BITOUT1_BIT | | 358 | 1bit | VAROUT1_BITOUT2_BIT | | 359 | 1bit | VAROUT1_BITOUT3_BIT | | 360 | 1bit | VAROUT1_BITOUT4_BIT | | 361 | 1bit | VAROUT1_BITOUT5_BIT | | 362 | 1bit | VAROUT1_BITOUT6_BIT | ## FPGA to Host | POS | SIZE | NAME | | --- | --- | --- | | 0 | 32bits | TX_HEADER | | 32 | 32bits | TIMESTAMP | | 64 | 96bits | VARIN96_MB0_RXDATA | | 160 | 96bits | VARIN96_MB1_RXDATA | | 256 | 32bits | VARIN32_STEPDIR0_POSITION | | 288 | 32bits | VARIN32_STEPDIR1_POSITION | | 320 | 32bits | VARIN32_STEPDIR2_POSITION | | 352 | 32bits | VARIN32_STEPDIR3_POSITION | | 384 | 32bits | VARIN32_WATERFLOW_FREQUENCY | | 416 | 1bit | VARIN1_BITIN0_BIT | | 417 | 1bit | VARIN1_BITIN1_BIT | | 418 | 1bit | VARIN1_BITIN2_BIT | | 419 | 1bit | VARIN1_BITIN3_BIT | | 420 | 1bit | VARIN1_BITIN4_BIT | | 421 | 1bit | VARIN1_BITIN8_BIT | | 422 | 1bit | VARIN1_BITIN5_BIT | | 423 | 1bit | VARIN1_BITIN6_BIT | | 424 | 1bit | VARIN1_BITIN7_BIT | | 425 | 1bit | VARIN1_BITIN10_BIT | | 426 | 1bit | VARIN1_BITIN12_BIT | | 427 | 1bit | VARIN1_BITIN11_BIT | | 428 | 1bit | VARIN1_BITIN9_BIT | | 429 | 1bit | VARIN1_WATERFLOW_VALID |
# LinuxCNC ## Hal-Graph ![halgraph](./halgraph.png)
# JSON-Config ``` { "name": "Mesa7c81", "boardcfg": "Mesa7c81", "async": true, "protocol": "UDP", "c_defines": { "SPI_SPEED": "BCM2835_SPI_CLOCK_DIVIDER_64" }, "_flashcmd": "./spiflash.sh rio-2048.bin", "flashcmd": "openFPGALoader -v -c usb-blaster --fpga-part xc6slx9tqg144 rio.bit -f", "breakouts": [ { "slot": "B", "breakout": "china-bob5x", "name": "bob1", "pos": [ -2510.0, 540.0 ], "rotate": 180 } ], "linuxcnc": { "_debug_info": true, "_gui": "axis", "gui": "qtdragon", "_vcp_type": "gladevcp", "ini": { "DISPLAY": { "MAX_FEED_OVERRIDE": 5.0, "MAX_LINEAR_VELOCITY": 150.0, "DEFAULT_LINEAR_VELOCITY": 100.0 }, "TRAJ": { "MAX_LINEAR_VELOCITY": 150.0, "DEFAULT_LINEAR_VELOCITY": 100.0 }, "EMCMOT": { "SERVO_PERIOD": 300000, "_SERVO_PERIOD": 1000000 } }, "machinetype": "mill", "net": [ { "comment": "if main-power > 3.6kw, disable motion", "source": "rio.mb1.power < 3600.0", "target": "&motion.enable" }, { "comment": "if waterflow < 3Hz, disable motion", "source": "rio.Waterflow.frequency > 3.0", "target": "&motion.enable" }, { "comment": "if spindle not at speed for 5sec, disable motion", "source": "delay(rio.mb0.spindle_at_speed, 0, 5)", "target": "&motion.enable" }, { "comment": "if spindle-current > 4A for 2sec, disable motion", "source": "delay((rio.mb0.spindle_ampere < 4.0), 0, 2)", "target": "&motion.enable" } ], "_setp": { "mpg.dongle.analog.jog": "1" }, "mxmpg": { "enable": false, "device": "/dev/ttyS0", "buttons": { "03": { "toggle-on": "halui.mist.on", "toggle-off": "halui.mist.off" }, "05": { "long": "halui.mdi-command-03" }, "enc01": { "long-toggle-on": "halui.machine.on", "long-toggle-off": "halui.machine.off" }, "enc03": { "long-toggle-on": "halui.home-all" } } }, "camjog": [ { "enable": false, "device": "rtsp://192.168.10.183:8554/cam", "tabname": "camjog-0", "height": "480" } ] }, "plugins": [ { "type": "blink", "pins": { "led": { "pin": "LED:L0", "modifier": [ { "type": "onerror", "invert": true, "pos": [ -1700.0, 1000.0 ] } ] } }, "uid": "blink0", "pos": [ -1580.0, 1000.0 ], "image": "led", "rotate": 0 }, { "type": "stepdir", "pins": { "dir": { "pin": "bob1:X:dir" }, "step": { "pin": "bob1:X:step" } }, "uid": "stepdir0", "pos": [ -2820.0, 300.0 ], "signals": { "velocity": { "net": "", "setp": "" }, "position": { "net": "", "setp": "" }, "enable": { "net": "", "setp": "" } }, "is_joint": true, "joint": { "scale": 2000.0, "ferror": 2.0, "min_ferror": 0.1, "max_velocity": 150.0, "max_acceleration": 400.0, "home_offset": -5.0, "min_limit": -4.0, "max_limit": 900.0 }, "axis": "X", "name": "X1", "pulse_len": 2.0, "image": "stepper", "rotate": 180 }, { "type": "stepdir", "pins": { "dir": { "pin": "bob1:Y:dir" }, "step": { "pin": "bob1:Y:step" } }, "pos": [ -2820.0, 570.0 ], "uid": "stepdir1", "signals": { "velocity": { "net": "", "setp": "" }, "position": { "net": "", "setp": "" }, "enable": { "net": "", "setp": "" } }, "is_joint": true, "joint": { "scale": 2000.0, "ferror": 2.0, "min_ferror": 0.1, "max_velocity": 150.0, "max_acceleration": 400.0, "home_offset": -5.0, "min_limit": -4.0, "max_limit": 900.0 }, "axis": "X", "name": "X2", "pulse_len": 2.0, "image": "stepper", "rotate": 180 }, { "type": "stepdir", "pins": { "dir": { "pin": "bob1:Z:dir" }, "step": { "pin": "bob1:Z:step" } }, "pos": [ -2820.0, 840.0 ], "uid": "stepdir2", "signals": { "velocity": { "net": "", "setp": "" }, "position": { "net": "", "setp": "" }, "enable": { "net": "", "setp": "" } }, "is_joint": true, "joint": { "scale": 2000.0, "ferror": 2.0, "min_ferror": 0.1, "max_velocity": 150.0, "max_acceleration": 400.0, "home": 0.0, "home_offset": -5.0, "min_limit": -4.0, "max_limit": 450.0 }, "axis": "Y", "name": "Y", "pulse_len": 2.0, "image": "stepper", "rotate": 180 }, { "type": "stepdir", "pins": { "dir": { "pin": "bob1:A:dir" }, "step": { "pin": "bob1:A:step" } }, "pos": [ -2820.0, 1110.0 ], "uid": "stepdir3", "signals": { "velocity": { "net": "", "setp": "" }, "position": { "net": "", "setp": "" }, "enable": { "net": "", "setp": "" } }, "is_joint": true, "joint": { "scale": -2000.0, "ferror": 2.0, "min_ferror": 0.1, "max_velocity": 150.0, "max_acceleration": 400.0, "home": 95.0, "home_offset": 100.0, "min_limit": 0.0, "max_limit": 100.0 }, "axis": "Z", "name": "Z", "pulse_len": 2.0, "image": "stepper", "rotate": 180 }, { "type": "bitout", "pins": { "bit": { "pin": "bob1:ALL:en", "modifier": [ { "type": "onerror", "pos": [ -2460.0, 1260.0 ] }, { "type": "invert", "pos": [ -2580.0, 1260.0 ] } ] } }, "uid": "bitout0", "pos": [ -2340.0, 1240.0 ], "signals": { "bit": { "net": "halui.machine.is-on", "setp": "" } }, "name": "senable" }, { "type": "bitout", "pins": { "bit": { "pin": "bob1:RELAIS:out" } }, "uid": "bitout1", "pos": [ -2370.0, 1000.0 ], "signals": { "bit": { "net": "", "setp": "" } }, "image": "relay", "rotate": 90 }, { "type": "bitin", "pins": { "bit": { "pin": "bob1:OPTO:in0" } }, "uid": "bitin0", "pos": [ -2220.0, 260.0 ], "signals": { "bit": { "net": "joint.0.home-sw-in", "setp": "" } }, "name": "homeX1", "image": "proximity", "rotate": -90 }, { "type": "bitin", "pins": { "bit": { "pin": "bob1:OPTO:in1" } }, "signals": { "bit": { "net": "joint.1.home-sw-in", "setp": "" } }, "name": "homeX2", "uid": "bitin1", "pos": [ -2290.0, 260.0 ], "image": "proximity", "rotate": -90 }, { "type": "bitin", "pins": { "bit": { "pin": "bob1:OPTO:in2" } }, "signals": { "bit": { "_net": "joint.2.home-sw-in,joint.2.neg-lim-sw-in", "net": "joint.2.home-sw-in", "setp": "" } }, "name": "homeY", "uid": "bitin2", "pos": [ -2360.0, 260.0 ], "image": "proximity", "rotate": -90 }, { "type": "bitin", "pins": { "bit": { "pin": "bob1:OPTO:in3" } }, "signals": { "bit": { "net": "joint.3.home-sw-in", "setp": "" } }, "name": "homeZ", "uid": "bitin3", "pos": [ -2430.0, 260.0 ], "image": "proximity", "rotate": -90 }, { "type": "bitin", "pins": { "bit": { "pin": "bob1:OPTO:in4" } }, "signals": { "bit": { "net": "", "setp": "" } }, "name": "salarm", "uid": "bitin4", "pos": [ -2530.0, 240.0 ], "image": "switch", "rotate": -90 }, { "type": "modbus", "tx_buffersize": 96, "rx_buffersize": 96, "pins": { "rx": { "pin": "MODBUS1:RX" }, "tx": { "pin": "MODBUS1:TX" }, "tx_enable": { "pin": "MODBUS1:TX_EN", "modifier": [ { "type": "invert", "pos": [ -2050.0, 1350.0 ] } ] } }, "uid": "mb0", "pos": [ -1910.0, 1290.0 ], "signals": { "spindle_speed_command": { "net": "spindle.0.speed-out", "setp": "" }, "spindle_speed_fb_rps": { "net": "spindle.0.speed-in", "setp": "" }, "spindle_speed_fb": { "display": { "section": "status", "group": "Spindle", "title": "RPM", "_type": "meter", "min": 0, "max": 24000, "size": 200, "region": [ [ 0, 6000, "gray" ], [ 6000, 20000, "green" ], [ 20000, 24000, "red" ] ] }, "net": "", "setp": "" }, "spindle_spindle_on": { "net": "spindle.0.on", "setp": "" }, "spindle_spindle_forward": { "net": "spindle.0.forward", "setp": "" }, "spindle_spindle_reverse": { "net": "spindle.0.reverse", "setp": "" }, "spindle_error_count": { "_display": { "title": "Modbus-Errors", "section": "status", "group": "Spindle", "type": "number" }, "net": "", "setp": "" }, "spindle_frq_set": { "net": "", "setp": "" }, "spindle_frq_get": { "net": "", "setp": "" }, "spindle_ampere": { "net": "", "setp": "", "display": { "title": "Load", "section": "status", "group": "Spindle", "type": "none", "height": 70, "min": 0.0, "max": 4.0 } }, "spindle_rpm": { "net": "", "setp": "" }, "spindle_dc_volt": { "net": "", "setp": "" }, "spindle_ac_volt": { "net": "", "setp": "" }, "spindle_max_freq": { "net": "", "setp": "" }, "spindle_base_freq": { "net": "", "setp": "" }, "spindle_freq_lower_limit": { "net": "", "setp": "" }, "spindle_rated_motor_voltage": { "net": "", "setp": "" }, "spindle_rated_motor_current": { "net": "", "setp": "" }, "spindle_rpm_at_50hz": { "net": "", "setp": "" }, "spindle_rated_motor_rev": { "net": "", "setp": "" }, "spindle_at_speed": { "net": "", "setp": "" }, "spindle_hycomm_ok": { "net": "", "setp": "" }, "spindle_spindle_at_speed_tolerance": { "setp": "4.0", "net": "" } }, "config": { "spindle": { "address": 1, "type": 101, "register": 0, "values": 1, "datatype": "float", "scale": 1.0, "unit": "", "error_values": "", "format": "d", "timeout": 150, "delay": 100, "priority": 0, "direction": "output" } }, "sub_pos": { "dev-1": [ -1680.0, 1290.0 ] } }, { "type": "modbus", "tx_buffersize": 96, "rx_buffersize": 96, "pins": { "rx": { "pin": "MODBUS0:RX" }, "tx": { "pin": "MODBUS0:TX" }, "tx_enable": { "pin": "MODBUS0:TX_EN", "modifier": [ { "type": "invert", "pos": [ -2060.0, 1200.0 ] } ] } }, "uid": "mb1", "pos": [ -1920.0, 1140.0 ], "signals": { "power": { "net": "", "setp": "", "display": { "title": "Power", "section": "status", "group": "Power-Usage", "type": "bar", "height": 70, "min": 0.0, "max": 3700.0, "size": 100, "region": [ [ 0, 20, "red" ], [ 20, 2500, "green" ], [ 2500, 3700, "red" ] ] } }, "power_total": { "net": "", "setp": "", "display": { "title": "Power-Total", "section": "status", "group": "Power-Usage", "type": "number" } }, "voltage": { "net": "", "setp": "" }, "voltage_valid": { "net": "", "setp": "" }, "voltage_errors": { "net": "", "setp": "" }, "current": { "net": "", "setp": "" }, "current_valid": { "net": "", "setp": "" }, "current_errors": { "net": "", "setp": "" }, "power_valid": { "net": "", "setp": "" }, "power_errors": { "net": "", "setp": "" }, "power_total_valid": { "net": "", "setp": "" }, "power_total_errors": { "net": "", "setp": "" } }, "config": { "voltage": { "address": 16, "type": 4, "register": 0, "datatype": "float", "values": 1, "scale": 1.0, "unit": "V", "error_values": "", "format": "0.1f", "timeout": 300, "delay": 150, "direction": "input", "priority": 0 }, "current": { "address": 16, "type": 4, "register": 8, "datatype": "float", "values": 1, "scale": 1.0, "unit": "A", "error_values": "", "format": "0.2f", "timeout": 300, "delay": 150, "direction": "input" }, "power": { "address": 16, "type": 4, "register": 18, "datatype": "float", "values": 1, "scale": 1.0, "unit": "W", "error_values": "", "format": "0.1f", "timeout": 300, "delay": 150, "direction": "input" }, "power_total": { "address": 16, "type": 4, "register": 256, "datatype": "float", "values": 1, "scale": 1.0, "unit": "kWh", "error_values": "", "format": "0.1f", "timeout": 300, "delay": 150, "direction": "input" } }, "sub_pos": { "dev-16": [ -1690.0, 1140.0 ] } }, { "type": "bitin", "pins": { "bit": { "pin": "C:P17", "modifier": [ { "type": "invert", "pos": [ -1310.0, 940.0 ] } ] } }, "uid": "bitin8", "pos": [ -1190.0, 940.0 ], "image": "opto", "rotate": 0 }, { "type": "bitin", "pins": { "bit": { "pin": "C:P14", "pull": "", "modifier": [ { "type": "invert", "pos": [ -1320.0, 840.0 ] } ] } }, "uid": "bitin5", "pos": [ -1190.0, 840.0 ], "signals": { "bit": { "net": "&motion.enable", "setp": "", "display": { "title": "24V-Power" } } }, "name": "p24ok", "image": "opto", "rotate": 0 }, { "type": "bitin", "pins": { "bit": { "pin": "C:P15", "pull": "" } }, "uid": "bitin6", "pos": [ -1190.0, 890.0 ], "signals": { "bit": { "net": "", "setp": "" } }, "image": "opto", "rotate": 0 }, { "type": "bitin", "pins": { "bit": { "pin": "C:P16", "modifier": [ { "type": "invert", "pos": [ -1410.0, 740.0 ] }, { "type": "debounce", "pos": [ -1290.0, 740.0 ] } ] } }, "uid": "bitin7", "pos": [ -1150.0, 670.0 ], "signals": { "bit": { "net": "motion.probe-input", "setp": "" } }, "name": "touchprobe", "rotate": 0, "image": "probe" }, { "type": "signal", "signals": { "value": { "net": "rio.mb1.power < 3600.0", "setp": "", "display": { "section": "status", "type": "rectled", "color": "green", "off_color": "red", "group": "MACHINE-STATUS" } } }, "uid": "mainpower", "vtype": "bool", "dir": "output", "name": "Mainpower", "pos": [ -935.056280954525, 989.5002251238182 ] }, { "type": "signal", "signals": { "value": { "net": "rio.Waterflow.frequency > 3.0", "setp": "", "display": { "title": "Waterflow", "section": "status", "group": "MACHINE-STATUS", "type": "rectled", "color": "green", "off_color": "red" } } }, "uid": "waterflow_status", "vtype": "bool", "dir": "output", "name": "Waterflow", "pos": [ -935.056280954525, 839.5002251238182 ] }, { "type": "signal", "signals": { "value": { "net": "delay(rio.mb0.spindle_at_speed, 0, 5)", "setp": "", "display": { "section": "status", "type": "rectled", "color": "green", "off_color": "red", "group": "MACHINE-STATUS" } } }, "uid": "spindle", "vtype": "bool", "dir": "output", "name": "Spindlespeed", "pos": [ -935.056280954525, 889.5002251238182 ] }, { "type": "signal", "signals": { "value": { "net": "delay((rio.mb0.spindle_ampere < 4.0), 0, 2)", "setp": "", "display": { "section": "status", "type": "rectled", "color": "green", "off_color": "red", "group": "MACHINE-STATUS" } } }, "uid": "spindle", "vtype": "bool", "dir": "output", "name": "Spindleload", "pos": [ -935.056280954525, 939.5002251238182 ] }, { "type": "bitin", "pins": { "bit": { "pin": "C:P1", "pull": "", "modifier": [ { "type": "debounce", "delay": 100.0, "pos": [ -940.0, 1090.0 ] }, { "type": "invert", "pos": [ -820.0, 1090.0 ] } ] } }, "pos": [ -700.0, 1070.0 ], "name": "ServoX1", "uid": "bitin10", "signals": { "bit": { "net": "&motion.enable", "setp": "" } } }, { "type": "bitin", "pins": { "bit": { "pin": "C:P2", "pull": "", "modifier": [ { "type": "debounce", "delay": 100.0, "pos": [ -940.0, 1160.0 ] }, { "type": "invert", "pos": [ -820.0, 1160.0 ] } ] } }, "pos": [ -700.0, 1140.0 ], "name": "ServoX2", "uid": "bitin12", "signals": { "bit": { "net": "&motion.enable", "setp": "" } } }, { "type": "bitin", "pins": { "bit": { "pin": "C:P3", "modifier": [ { "type": "debounce", "delay": 100.0, "pos": [ -940.0, 1230.0 ] }, { "type": "invert", "pos": [ -820.0, 1230.0 ] } ] } }, "pos": [ -700.0, 1210.0 ], "name": "ServoY", "uid": "bitin11", "signals": { "bit": { "net": "&motion.enable", "setp": "" } } }, { "type": "bitin", "pins": { "bit": { "pin": "C:P4", "modifier": [ { "type": "debounce", "delay": 100.0, "pos": [ -940.0, 1300.0 ] }, { "type": "invert", "pos": [ -820.0, 1300.0 ] } ] } }, "pos": [ -700.0, 1280.0 ], "name": "ServoZ", "uid": "bitin9", "signals": { "bit": { "net": "&motion.enable", "setp": "" } } }, { "type": "bitout", "pins": { "bit": { "pin": "C:P5", "modifier": [ { "type": "invert", "pos": [ -1300.0, 1030.0 ] } ] } }, "uid": "bitout2", "pos": [ -1180.0, 1010.0 ], "signals": { "bit": { "net": "", "setp": "" } }, "name": "sdr1", "image": "ssr2a", "rotate": 0 }, { "type": "bitout", "pins": { "bit": { "pin": "C:P6", "modifier": [ { "type": "invert", "pos": [ -1300.0, 1100.0 ] } ] } }, "uid": "bitout3", "pos": [ -1180.0, 1080.0 ], "name": "sdr2", "signals": { "bit": { "net": "", "setp": "" } }, "image": "ssr2a", "rotate": 0 }, { "type": "bitout", "pins": { "bit": { "pin": "C:P7", "modifier": [ { "type": "onerror", "pos": [ -1300.0, 1170.0 ] }, { "type": "invert", "pos": [ -1420.0, 1170.0 ] } ] } }, "uid": "bitout4", "pos": [ -1180.0, 1150.0 ], "name": "Cooling-Water", "signals": { "bit": { "net": "iocontrol.0.user-enable-out", "setp": "" } }, "image": "ssr2a", "rotate": 0 }, { "type": "bitout", "pins": { "bit": { "pin": "C:P8", "modifier": [ { "type": "invert", "pos": [ -1300.0, 1240.0 ] } ] } }, "uid": "bitout5", "pos": [ -1180.0, 1220.0 ], "name": "Cooling-Air", "signals": { "bit": { "net": "iocontrol.0.coolant-mist", "setp": "" } }, "image": "ssr2a", "rotate": 0 }, { "name": "Waterflow", "type": "freqin", "pins": { "freq": { "pin": "C:P9", "modifier": [ { "type": "debounce", "delay": 10.0, "pos": [ -1300.0, 1350.0 ] } ] } }, "freq_min": 2, "freq_max": 100, "uid": "waterflow", "signals": { "frequency": { "filters": [ { "type": "avg", "depth": 10 } ], "display": { "title": "Waterflow", "section": "status", "group": "Spindle", "type": "bar", "height": 70, "min": 0.0, "max": 10.0, "size": 100, "region": [ [ 0, 3, "red" ], [ 3, 4, "yellow" ], [ 4, 10, "green" ] ] }, "net": "", "setp": "" } }, "pos": [ -1140.0, 1310.0 ], "image": "flow", "rotate": 0 }, { "type": "bitout", "pins": { "bit": { "pin": "bob1:B:step" } }, "uid": "bitout6", "pos": [ -2510.0, 1030.0 ], "signals": { "bit": { "net": "chargepump(4)", "function": "", "setp": "" } }, "name": "chargepump", "image": "ssr", "rotate": 90 }, { "type": "w5500", "pins": { "sclk": { "pin": "SPI:SCLK" }, "sel": { "pin": "SPI:SEL" }, "miso": { "pin": "SPI:MOSI" }, "mosi": { "pin": "SPI:MISO" }, "rst": { "pin": "RPI:GPIO25" } }, "uid": "w55000", "pos": [ -1770.0, 470.0 ], "speed": 20000000, "gw": "192.168.11.1", "ip": "192.168.11.194", "image": "w5500", "rotate": 0 } ], "flow": { "view": { "pos": [ -2749, 179 ], "scale": 0.96 }, "board": { "pos": [ -1900.0, 580.0 ], "rotate": 90 }, "hal": { "joint": [ 1410.0, 300.0 ], "spindle": [ 1400.0, 100.0 ], "spindle.0": [ -668.1191259398493, 1436.6246582365002 ], "joint.4": [ 1380.0, 190.0 ], "joint.3": [ -898.1191259398493, 126.62465823650024 ], "joint.2": [ -898.1191259398493, 206.62465823650024 ], "joint.1": [ -898.1191259398493, 286.62465823650024 ], "joint.0": [ -898.1191259398493, 366.62465823650024 ], "misc": [ -678.1191259398493, 826.6246582365002 ] } }, "description": "Mesa7c81 over SPI - WIP", "comment": "The bitstream can be written via SPI, but you should have a USB Blaster handy so that you can flash via JTAG in an emergency.\n\nIt is also possible to operate this board with a W5500 via Ethernet, but flashing is then only possible via JTAG.\n\nSmartserial is not supported by RIO, but the 2 ports can be used for Modbus.", "url": "https://eusurplus.com/index.php?route=product/product&product_id=131", "toolchain": "ise", "family": "xc6", "type": "xc6slx9-2tqg144", "package": "tqg144", "clock": { "osc": "50000000", "speed": "100000000", "pin": "P50", "startup": "CClk" }, "slots": [ { "name": "SPI", "comment": "", "default": "", "pins": { "MOSI": { "pin": "P16", "pos": [ 446, 570 ], "direction": "all" }, "MISO": { "pin": "P15", "pos": [ 427, 570 ], "direction": "all" }, "SCLK": { "pin": "P14", "pos": [ 408, 570 ], "direction": "all" }, "SEL": { "pin": "P56", "pos": [ 408, 590 ], "direction": "all" } } }, { "name": "RPI", "comment": "", "default": "", "pins": { "GPIO14": { "pin": "P29", "pos": [ 560, 590 ], "direction": "all" }, "GPIO15": { "pin": "P27", "pos": [ 541, 590 ], "direction": "all" }, "GPIO18": { "pin": "P24", "pos": [ 522, 590 ], "direction": "all" }, "GPIO23": { "pin": "P21", "pos": [ 484, 590 ], "direction": "all" }, "GPIO24": { "pin": "P17", "pos": [ 465, 590 ], "direction": "all" }, "GPIO25": { "pin": "P12", "pos": [ 427, 590 ], "direction": "all" } } }, { "name": "EEPROM", "comment": "", "default": "", "pins": { "REBOOT": { "pin": "P67", "pos": [ 510, 420 ], "direction": "output" }, "MOSI": { "pin": "P64", "pos": [ 540, 420 ], "direction": "output" }, "MISO": { "pin": "P65", "pos": [ 560, 420 ], "direction": "input" }, "SCLK": { "pin": "P70", "pos": [ 580, 420 ], "direction": "output" }, "SEL": { "pin": "P38", "pos": [ 600, 420 ], "direction": "output" } } }, { "name": "LED", "comment": "", "default": "", "pins": { "L0": { "pin": "P48", "pos": [ 680, 262 ], "direction": "output" }, "L1": { "pin": "P47", "pos": [ 700, 262 ], "direction": "output" }, "L2": { "pin": "P46", "pos": [ 720, 262 ], "direction": "output" }, "L3": { "pin": "P45", "pos": [ 740, 262 ], "direction": "output" } } }, { "name": "MODBUS0", "comment": "", "default": "", "pins": { "RX": { "pin": "P34", "pos": [ 450, 700 ], "direction": "input" }, "TX": { "pin": "P35", "pos": [ 470, 700 ], "direction": "output" }, "TX_EN": { "pin": "P40", "pos": [ 490, 700 ], "direction": "output" } } }, { "name": "MODBUS1", "comment": "", "default": "", "pins": { "RX": { "pin": "P41", "pos": [ 650, 700 ], "direction": "input" }, "TX": { "pin": "P43", "pos": [ 670, 700 ], "direction": "output" }, "TX_EN": { "pin": "P44", "pos": [ 690, 700 ], "direction": "output" } } }, { "name": "A", "comment": "P1", "default": "", "pins": { "P1": { "pin": "P119", "pos": [ 115, 59 ], "direction": "all" }, "P2": { "pin": "P117", "pos": [ 134, 59 ], "direction": "all" }, "P3": { "pin": "P115", "pos": [ 153, 59 ], "direction": "all" }, "P4": { "pin": "P112", "pos": [ 172, 59 ], "direction": "all" }, "P5": { "pin": "P105", "pos": [ 191, 59 ], "direction": "all" }, "P6": { "pin": "P104", "pos": [ 210, 59 ], "direction": "all" }, "P7": { "pin": "P102", "pos": [ 229, 59 ], "direction": "all" }, "P8": { "pin": "P101", "pos": [ 248, 59 ], "direction": "all" }, "P9": { "pin": "P100", "pos": [ 267, 59 ], "direction": "all" }, "P10": { "pin": "P99", "pos": [ 286, 59 ], "direction": "all" }, "P11": { "pin": "P98", "pos": [ 305, 59 ], "direction": "all" }, "P12": { "pin": "P97", "pos": [ 324, 59 ], "direction": "all" }, "P13": { "pin": "P95", "pos": [ 343, 59 ], "direction": "all" }, "P14": { "pin": "P118", "pos": [ 115, 40 ], "direction": "all" }, "P15": { "pin": "P116", "pos": [ 134, 40 ], "direction": "all" }, "P16": { "pin": "P114", "pos": [ 153, 40 ], "direction": "all" }, "P17": { "pin": "P111", "pos": [ 172, 40 ], "direction": "all" } } }, { "name": "B", "comment": "P7", "default": "", "pins": { "P1": { "pin": "P143", "pos": [ 345, 733 ], "direction": "all" }, "P2": { "pin": "P141", "pos": [ 326, 733 ], "direction": "all" }, "P3": { "pin": "P139", "pos": [ 307, 733 ], "direction": "all" }, "P4": { "pin": "P137", "pos": [ 288, 733 ], "direction": "all" }, "P5": { "pin": "P133", "pos": [ 269, 733 ], "direction": "all" }, "P6": { "pin": "P132", "pos": [ 250, 733 ], "direction": "all" }, "P7": { "pin": "P131", "pos": [ 231, 733 ], "direction": "all" }, "P8": { "pin": "P127", "pos": [ 212, 733 ], "direction": "all" }, "P9": { "pin": "P126", "pos": [ 193, 733 ], "direction": "all" }, "P10": { "pin": "P124", "pos": [ 174, 733 ], "direction": "all" }, "P11": { "pin": "P123", "pos": [ 155, 733 ], "direction": "all" }, "P12": { "pin": "P121", "pos": [ 136, 733 ], "direction": "all" }, "P13": { "pin": "P120", "pos": [ 117, 733 ], "direction": "all" }, "P14": { "pin": "P142", "pos": [ 345, 752 ], "direction": "all" }, "P15": { "pin": "P140", "pos": [ 326, 752 ], "direction": "all" }, "P16": { "pin": "P138", "pos": [ 307, 752 ], "direction": "all" }, "P17": { "pin": "P134", "pos": [ 288, 752 ], "direction": "all" } } }, { "name": "C", "comment": "P2", "default": "", "pins": { "P1": { "pin": "P94", "pos": [ 464, 59 ], "direction": "all" }, "P2": { "pin": "P92", "pos": [ 483, 59 ], "direction": "all" }, "P3": { "pin": "P87", "pos": [ 502, 59 ], "direction": "all" }, "P4": { "pin": "P84", "pos": [ 521, 59 ], "direction": "all" }, "P5": { "pin": "P82", "pos": [ 540, 59 ], "direction": "all" }, "P6": { "pin": "P81", "pos": [ 559, 59 ], "direction": "all" }, "P7": { "pin": "P80", "pos": [ 578, 59 ], "direction": "all" }, "P8": { "pin": "P79", "pos": [ 597, 59 ], "direction": "all" }, "P9": { "pin": "P78", "pos": [ 616, 59 ], "direction": "all" }, "P10": { "pin": "P75", "pos": [ 635, 59 ], "direction": "all" }, "P11": { "pin": "P62", "pos": [ 654, 59 ], "direction": "all" }, "P12": { "pin": "P61", "pos": [ 673, 59 ], "direction": "all" }, "P13": { "pin": "P59", "pos": [ 692, 59 ], "direction": "all" }, "P14": { "pin": "P93", "pos": [ 464, 40 ], "direction": "all" }, "P15": { "pin": "P88", "pos": [ 483, 40 ], "direction": "all" }, "P16": { "pin": "P85", "pos": [ 502, 40 ], "direction": "all" }, "P17": { "pin": "P83", "pos": [ 521, 40 ], "direction": "all" } } } ] } ```