diff --git a/platform/drivers/audio/inputStream_Mod17.cpp b/platform/drivers/audio/inputStream_Mod17.cpp index 27f4cfcb..899c0af8 100644 --- a/platform/drivers/audio/inputStream_Mod17.cpp +++ b/platform/drivers/audio/inputStream_Mod17.cpp @@ -205,12 +205,12 @@ streamId inputStream_start(const enum AudioSource source, switch(source) { case SOURCE_MIC: - gpio_setMode(GPIOA, 2, INPUT_ANALOG); + gpio_setMode(AUDIO_MIC, INPUT_ANALOG); ADC2->SQR3 = 2; break; case SOURCE_RTX: - gpio_setMode(GPIOA, 1, INPUT_ANALOG); + gpio_setMode(BASEBAND_RX, INPUT_ANALOG); ADC2->SQR3 = 1; break; diff --git a/platform/drivers/audio/outputStream_Mod17.c b/platform/drivers/audio/outputStream_Mod17.c index 6c119bdf..d454fe43 100644 --- a/platform/drivers/audio/outputStream_Mod17.c +++ b/platform/drivers/audio/outputStream_Mod17.c @@ -110,8 +110,8 @@ streamId outputStream_start(const enum AudioSink destination, } /* Configure GPIOs */ - gpio_setMode(GPIOA, 4, INPUT_ANALOG); /* Baseband TX */ - gpio_setMode(GPIOA, 5, INPUT_ANALOG); /* Spk output */ + gpio_setMode(BASEBAND_TX, INPUT_ANALOG); /* Baseband TX */ + gpio_setMode(AUDIO_SPK, INPUT_ANALOG); /* Spk output */ /* * Enable peripherals diff --git a/platform/drivers/baseband/radio_Mod17.cpp b/platform/drivers/baseband/radio_Mod17.cpp index 41471cd9..185744c0 100644 --- a/platform/drivers/baseband/radio_Mod17.cpp +++ b/platform/drivers/baseband/radio_Mod17.cpp @@ -20,6 +20,8 @@ #include #include +#include +#include void radio_init(const rtxStatus_t *rtxState) { @@ -48,11 +50,12 @@ bool radio_checkRxDigitalSquelch() void radio_enableRx() { + gpio_clearPin(PTT_OUT); } void radio_enableTx() { - + gpio_setPin(PTT_OUT); } void radio_disableRtx() diff --git a/platform/drivers/display/SSD1306_Mod17.c b/platform/drivers/display/SSD1306_Mod17.c index 534599b7..8faf2abf 100644 --- a/platform/drivers/display/SSD1306_Mod17.c +++ b/platform/drivers/display/SSD1306_Mod17.c @@ -80,9 +80,9 @@ void display_init() gpio_clearPin(LCD_RS); gpio_clearPin(LCD_RST); /* Reset controller */ - delayMs(1); + delayMs(50); gpio_setPin(LCD_RST); - delayMs(5); + delayMs(50); gpio_clearPin(LCD_CS); diff --git a/platform/drivers/keyboard/keyboard_Mod17.c b/platform/drivers/keyboard/keyboard_Mod17.c index 2fb2426c..08fea3aa 100644 --- a/platform/drivers/keyboard/keyboard_Mod17.c +++ b/platform/drivers/keyboard/keyboard_Mod17.c @@ -28,7 +28,12 @@ void kbd_init() { - + gpio_setMode(ESC_SW, INPUT); + gpio_setMode(ENTER_SW, INPUT); + gpio_setMode(LEFT_SW, INPUT); + gpio_setMode(RIGHT_SW, INPUT); + gpio_setMode(UP_SW, INPUT); + gpio_setMode(DOWN_SW, INPUT); } void kbd_terminate() @@ -39,5 +44,13 @@ void kbd_terminate() keyboard_t kbd_getKeys() { keyboard_t keys = 0; + + if(gpio_readPin(ENTER_SW) == 1) keys |= KEY_ESC; + if(gpio_readPin(ESC_SW) == 1) keys |= KEY_ENTER; + if(gpio_readPin(LEFT_SW) == 1) keys |= KEY_LEFT; + if(gpio_readPin(RIGHT_SW) == 1) keys |= KEY_RIGHT; + if(gpio_readPin(UP_SW) == 1) keys |= KEY_UP; + if(gpio_readPin(DOWN_SW) == 1) keys |= KEY_DOWN; + return keys; } diff --git a/platform/targets/Module17/hwconfig.h b/platform/targets/Module17/hwconfig.h index 55d786d3..7d2d7b06 100644 --- a/platform/targets/Module17/hwconfig.h +++ b/platform/targets/Module17/hwconfig.h @@ -55,4 +55,21 @@ #define SPI2_SDO GPIOB,14 #define SPI2_SDI GPIOB,15 +/* Keyboard */ +#define ESC_SW GPIOD,1 +#define RIGHT_SW GPIOD,2 +#define UP_SW GPIOD,3 +#define DOWN_SW GPIOD,4 +#define LEFT_SW GPIOB,9 +#define ENTER_SW GPIOB,8 + +#define PTT_SW GPIOD,8 +#define PTT_OUT GPIOD,10 + +/* Audio */ +#define AUDIO_MIC GPIOA,2 +#define AUDIO_SPK GPIOA,5 +#define BASEBAND_RX GPIOA,1 +#define BASEBAND_TX GPIOA,4 + #endif diff --git a/platform/targets/Module17/platform.c b/platform/targets/Module17/platform.c index 4341006f..f08e0c67 100644 --- a/platform/targets/Module17/platform.c +++ b/platform/targets/Module17/platform.c @@ -34,6 +34,10 @@ void platform_init() gpio_setMode(PTT_LED, OUTPUT); gpio_setMode(SYNC_LED, OUTPUT); gpio_setMode(ERR_LED, OUTPUT); + + gpio_setMode(PTT_SW, INPUT); + gpio_setMode(PTT_OUT, OUTPUT); + gpio_clearPin(PTT_OUT); } void platform_terminate() @@ -66,12 +70,13 @@ int8_t platform_getChSelector() bool platform_getPttStatus() { - return false; + /* PTT line has a pullup resistor with PTT switch closing to ground */ + return (gpio_readPin(PTT_SW) == 0) ? true : false; } bool platform_pwrButtonStatus() { - return false; + return true; } void platform_ledOn(led_t led)