diff --git a/firmware/axl-stepper/src/axl b/firmware/axl-stepper/src/axl index 09e3e90667034d09f34bbe4041b3f395461fad8a..71bf90214692c6a2fb82d121708b91692648376a 160000 --- a/firmware/axl-stepper/src/axl +++ b/firmware/axl-stepper/src/axl @@ -1 +1 @@ -Subproject commit 09e3e90667034d09f34bbe4041b3f395461fad8a +Subproject commit 71bf90214692c6a2fb82d121708b91692648376a diff --git a/firmware/axl-stepper/src/main.cpp b/firmware/axl-stepper/src/main.cpp index 6628e5b52a66e647d673428e153254e74c1c82f4..85e02846ca9424d1467666aa9058eb9d66aecbd8 100644 --- a/firmware/axl-stepper/src/main.cpp +++ b/firmware/axl-stepper/src/main.cpp @@ -155,6 +155,38 @@ EP_ONDATA_RESPONSES onMotorSettingsData(uint8_t* data, uint16_t len){ Endpoint motorSettingsEP(&osap, "motorSettings", onMotorSettingsData); +// -------------------------------------------------------- 7: Home Routine + +EP_ONDATA_RESPONSES onHomeData(uint8_t* data, uint16_t len){ + uint16_t rptr = 0; + uint8_t axis = data[rptr ++]; + float rate = ts_readFloat32(data, &rptr); + float offset = ts_readFloat32(data, &rptr); + // alright alright, this would be sliq if we had a little async-cpp api, alas, + if(axl_isMoving()){ + return EP_ONDATA_REJECT; + } else { + axl_home(axis, rate, offset); + return EP_ONDATA_REJECT; + } +} + +#define LIMIT_PIN 23 +#define LIMIT_PORT 0 + +void axl_limitSetup(void){ + PORT->Group[LIMIT_PORT].DIRCLR.reg = (1 << LIMIT_PIN); + PORT->Group[LIMIT_PORT].PINCFG[LIMIT_PIN].bit.INEN = 1; + // pullup + PORT->Group[LIMIT_PORT].OUTSET.reg = (1 << LIMIT_PIN); +} + +boolean axl_checkLimit(void){ + return (PORT->Group[LIMIT_PORT].IN.reg & (1 << LIMIT_PIN)); +} + +Endpoint homeEP(&osap, "home", onHomeData); + // -------------------------------------------------------- Arduino Setup void setup() { @@ -164,6 +196,7 @@ void setup() { DEBUG2PIN_SETUP; // port begin vpUSBSerial.begin(); + vbUCBusDrop.begin(4); // setup stepper machine stepper_hw->init(false, 0.0F); stepper_hw->setMicrostep(4); @@ -186,6 +219,7 @@ void loop() { lastBlink = millis(); CLKLIGHT_TOGGLE; updateStatesEP(); + axl_printHomeState(); } } diff --git a/firmware/axl-stepper/src/osape b/firmware/axl-stepper/src/osape index bc18a89d155622fd8ab959773c0eb967cedd9383..97e593d51e42f77c12b9ed2ae561adc5136ae9cc 160000 --- a/firmware/axl-stepper/src/osape +++ b/firmware/axl-stepper/src/osape @@ -1 +1 @@ -Subproject commit bc18a89d155622fd8ab959773c0eb967cedd9383 +Subproject commit 97e593d51e42f77c12b9ed2ae561adc5136ae9cc