I am trying to use mbed to flash firmware onto my SKR V1.3 to get around controlling it using g-code due to personal needs but my firmware does nothing when flahsed. I’ve added custom pin definitions to PinNames.h in the TARGET_LPC13XX folder and after compiling it successfully to a firmware.bin file in platformio, I plug it in back into my board and it does nothing. The SKR V1.3 already has a bootloader on it which reads from the sd card so I don’t know why my motors won’t spin when I turn the board on with the below .cpp file.
main.cpp:
#include "mbed.h"
DigitalOut xEN(P2_1); //Pin 74 of LPC
DigitalOut xSTP(P2_2); //Pin 73 of LPC
DigitalOut xDIR(P2_6); //Pin 67 of LPC
int main() {
xDIR = 1; //Sets dir pin to high and direction to clockwise
//Should keep spinning till I unplug the SKR V1.3
while(1) {
xSTP = 1;
thread_sleep_for(0.002);
xSTP = 0;
thread_sleep_for(0.002);
}
}
Modified PinNames.h file:
/* mbed Microcontroller Library
* Copyright (c) 2006-2013 ARM Limited
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef MBED_PINNAMES_H
#define MBED_PINNAMES_H
#include "cmsis.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef enum {
PIN_INPUT,
PIN_OUTPUT
} PinDirection;
#define PORT_SHIFT 5
typedef enum {
// LPC1347 Pin Names
P0_0 = 0,
P0_1 = 1,
P0_2 = 2,
P0_3 = 3,
P0_4 = 4,
P0_5 = 5,
P0_6 = 6,
P0_7 = 7,
P0_8 = 8,
P0_9 = 9,
P0_10 = 10,
P0_11 = 11,
P0_12 = 12,
P0_13 = 13,
P0_14 = 14,
P0_15 = 15,
P0_16 = 16,
P0_17 = 17,
P0_18 = 18,
P0_19 = 19,
P0_20 = 20,
P0_21 = 21,
P0_22 = 22,
P0_23 = 23,
//Extra pin definitons I put her personally
P0_24 = 24, // Pin 08 - LPC1768
P0_25 = 25, // Pin 07 - LPC1768
P0_26 = 26, // Pin 06 - LPC1768
P0_27 = 27, // Pin 25 - LPC1768
P0_28 = 28, // Pin 24 - LPC1768
P0_29 = 29, // Pin 29 - LPC1768
P0_30 = 30, // Pin 47 - LPC1768
// Extra pins definitions I put there personally
P1_0 = 32, // Pin 95 - LPC1768
P1_1 = 33, // Pin 94 - LPC1768
P1_4 = 36, // Pin 93 - LPC1768
P1_8 = 40, // Pin 92 - LPC1768
P1_9 = 41, // Pin 91 - LPC1768
P1_10 = 42, // Pin 90 - LPC1768
P1_13 = 45,
P1_14 = 46,
P1_15 = 47,
P1_16 = 48,
//Extra pins definitions I put there personally
P1_17 = 49, // Pin 86 - LPC1768
P1_18 = 50, // Pin 32 - LPC1768
P1_19 = 51,
P1_20 = 52,
P1_21 = 53,
P1_22 = 54,
P1_23 = 55,
P1_24 = 56,
P1_25 = 57,
P1_26 = 58,
P1_27 = 59,
P1_28 = 60,
P1_29 = 61,
//extra pin I put in personally
P1_30 = 62, // Pin 21 - LPC1768
P1_31 = 63,
//Extra pins I put in personally
P2_0 = 64, // Pin 75 - LPC1768
P2_1 = 65, // Pin 74 - LPC1768
P2_2 = 66, // Pin 73 - LPC1768
P2_3 = 67, // Pin 70 - LPC1768
P2_4 = 68, // Pin 69 - LPC1768
P2_5 = 69, // Pin 68 - LPC1768
P2_6 = 70, // Pin 67 - LPC1768
P2_7 = 71, // Pin 66 - LPC1768
P2_8 = 72, // Pin 65 - LPC1768
P2_9 = 73, // Pin 64 - LPC1768
P2_10 = 74, // Pin 53 - LPC1768
P2_11 = 75, // Pin 52 - LPC1768
P2_12 = 76, // Pin 51 - LPC1768
P2_13 = 77, // Pin 50 - LPC1768
p1 = P0_0,
p2 = P0_11,
p3 = P0_12,
p4 = P0_13,
p5 = P0_14,
p6 = P1_31,
p8 = P0_16,
p9 = P0_22,
p10 = P0_23,
p13 = P1_29,
p14 = P1_21,
p15 = P0_8,
p16 = P0_9,
p17 = P1_24,
p18 = P0_4,
p19 = P1_13,
p20 = P1_14,
p21 = P1_22,
p22 = P0_17,
p23 = P0_5,
p24 = P0_21,
p25 = P0_19,
p26 = P0_18,
p27 = P1_15,
p28 = P1_16,
p29 = P1_25,
p30 = P1_19,
p33 = P0_20,
p34 = P0_2,
p35 = P1_26,
p36 = P1_27,
p37 = P1_20,
p38 = P1_23,
p39 = P0_7,
p40 = P1_28,
UART_TX = P0_19,
UART_RX = P0_18,
// Not connected
NC = (int)0xFFFFFFFF,
LED1 = p21,
LED2 = p21,
LED3 = p21,
LED4 = p21,
// Standard but not supported pins
USBTX = NC,
USBRX = NC,
} PinName;
typedef enum {
CHANNEL0 = PIN_INT0_IRQn,
CHANNEL1 = PIN_INT1_IRQn,
CHANNEL2 = PIN_INT2_IRQn,
CHANNEL3 = PIN_INT3_IRQn,
CHANNEL4 = PIN_INT4_IRQn,
CHANNEL5 = PIN_INT5_IRQn,
CHANNEL6 = PIN_INT6_IRQn,
CHANNEL7 = PIN_INT7_IRQn
} Channel;
typedef enum {
PullUp = 2,
PullDown = 1,
PullNone = 0,
Repeater = 3,
OpenDrain = 4,
PullDefault = PullDown
} PinMode;
#ifdef __cplusplus
}
#endif
#endif
SKR V1.3 schematic link: BIGTREETECH-SKR-V1.3/SKR-V1.3-SCH.pdf at master · bigtreetech/BIGTREETECH-SKR-V1.3 · GitHub