diff --git a/platform/drivers/audio/audio_Mod17.c b/platform/drivers/audio/audio_Mod17.c
index dbe72c8a..fff59869 100644
--- a/platform/drivers/audio/audio_Mod17.c
+++ b/platform/drivers/audio/audio_Mod17.c
@@ -14,6 +14,16 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
+ * As a special exception, if other files instantiate templates or use *
+ * macros or inline functions from this file, or you compile this file *
+ * and link it with other works to produce a work based on this file, *
+ * this file does not by itself cause the resulting work to be covered *
+ * by the GNU General Public License. However the source code for this *
+ * file must still be made available in accordance with the GNU General *
+ * Public License. This exception does not invalidate any other reasons *
+ * why a work based on this file might be covered by the GNU General *
+ * Public License. *
+ * *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, see *
***************************************************************************/
@@ -25,30 +35,37 @@
void audio_init()
{
+ gpio_setMode(SPK_MUTE, OUTPUT);
+ gpio_setMode(MIC_MUTE, OUTPUT);
+ gpio_setMode(MIC_GAIN, OUTPUT);
+ gpio_setPin(SPK_MUTE); //Off = logic high
+ gpio_clearPin(MIC_MUTE); //Off = logic low
+ gpio_setPin(MIC_GAIN); // gain = 40 dB
}
void audio_terminate()
{
-
+ gpio_setPin(SPK_MUTE);
+ gpio_clearPin(MIC_MUTE);
}
void audio_enableMic()
{
-
+ gpio_setPin(MIC_MUTE);
}
void audio_disableMic()
{
-
+ gpio_clearPin(MIC_MUTE);
}
void audio_enableAmp()
{
-
+ gpio_clearPin(SPK_MUTE);
}
void audio_disableAmp()
{
-
+ gpio_setPin(SPK_MUTE);
}
diff --git a/platform/drivers/baseband/radio_Mod17.cpp b/platform/drivers/baseband/radio_Mod17.cpp
index 185744c0..edeb91e7 100644
--- a/platform/drivers/baseband/radio_Mod17.cpp
+++ b/platform/drivers/baseband/radio_Mod17.cpp
@@ -14,6 +14,16 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
+ * As a special exception, if other files instantiate templates or use *
+ * macros or inline functions from this file, or you compile this file *
+ * and link it with other works to produce a work based on this file, *
+ * this file does not by itself cause the resulting work to be covered *
+ * by the GNU General Public License. However the source code for this *
+ * file must still be made available in accordance with the GNU General *
+ * Public License. This exception does not invalidate any other reasons *
+ * why a work based on this file might be covered by the GNU General *
+ * Public License. *
+ * *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, see *
***************************************************************************/
@@ -23,13 +33,17 @@
#include
#include
+enum opstatus radioStatus; // Current operating status
+
void radio_init(const rtxStatus_t *rtxState)
{
(void) rtxState;
+ radioStatus = OFF;
}
void radio_terminate()
{
+ radioStatus = OFF;
}
void radio_tuneVcxo(const int16_t vhfOffset, const int16_t uhfOffset)
@@ -50,11 +64,13 @@ bool radio_checkRxDigitalSquelch()
void radio_enableRx()
{
+ radioStatus = RX;
gpio_clearPin(PTT_OUT);
}
void radio_enableTx()
{
+ radioStatus = TX;
gpio_setPin(PTT_OUT);
}
@@ -65,7 +81,8 @@ void radio_disableRtx()
void radio_updateConfiguration()
{
-
+ if(radioStatus == RX) radio_enableRx();
+ if(radioStatus == TX) radio_enableTx();
}
float radio_getRssi()
@@ -75,5 +92,5 @@ float radio_getRssi()
enum opstatus radio_getStatus()
{
- return OFF;
+ return radioStatus;
}
diff --git a/platform/targets/Module17/hwconfig.h b/platform/targets/Module17/hwconfig.h
index 7d2d7b06..203224ea 100644
--- a/platform/targets/Module17/hwconfig.h
+++ b/platform/targets/Module17/hwconfig.h
@@ -15,6 +15,16 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
+ * As a special exception, if other files instantiate templates or use *
+ * macros or inline functions from this file, or you compile this file *
+ * and link it with other works to produce a work based on this file, *
+ * this file does not by itself cause the resulting work to be covered *
+ * by the GNU General Public License. However the source code for this *
+ * file must still be made available in accordance with the GNU General *
+ * Public License. This exception does not invalidate any other reasons *
+ * why a work based on this file might be covered by the GNU General *
+ * Public License. *
+ * *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, see *
***************************************************************************/
@@ -42,34 +52,37 @@
#define BAT_NONE
/* Signalling LEDs */
-#define PTT_LED GPIOE,13
-#define SYNC_LED GPIOE,14
-#define ERR_LED GPIOE,15
+#define PTT_LED GPIOC,8
+#define SYNC_LED GPIOC,9
+#define ERR_LED GPIOA,8
/* Display */
-#define LCD_RST GPIOB,11
-#define LCD_RS GPIOB,12
-#define LCD_CS GPIOB,10
-#define LCD_BKLIGHT GPIOE,15
+#define LCD_RST GPIOC,7
+#define LCD_RS GPIOC,6
+#define LCD_CS GPIOB,14
+//#define LCD_BKLIGHT GPIOE,15
#define SPI2_CLK GPIOB,13
-#define SPI2_SDO GPIOB,14
+#define SPI2_SDO GPIOB,9 //UNUSED
#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 ESC_SW GPIOB,8
+#define RIGHT_SW GPIOB,11
+#define UP_SW GPIOB,10
+#define DOWN_SW GPIOC,2
+#define LEFT_SW GPIOC,3
+#define ENTER_SW GPIOB,12
-#define PTT_SW GPIOD,8
-#define PTT_OUT GPIOD,10
+#define PTT_SW GPIOC,13
+#define PTT_OUT GPIOD,2
/* Audio */
-#define AUDIO_MIC GPIOA,2
-#define AUDIO_SPK GPIOA,5
+#define AUDIO_MIC GPIOA,2
+#define AUDIO_SPK GPIOA,5
#define BASEBAND_RX GPIOA,1
#define BASEBAND_TX GPIOA,4
+#define SPK_MUTE GPIOB,1
+#define MIC_MUTE GPIOC,4
+#define MIC_GAIN GPIOC,5
#endif
diff --git a/platform/targets/Module17/platform.c b/platform/targets/Module17/platform.c
index f08e0c67..a4c07f01 100644
--- a/platform/targets/Module17/platform.c
+++ b/platform/targets/Module17/platform.c
@@ -38,6 +38,8 @@ void platform_init()
gpio_setMode(PTT_SW, INPUT);
gpio_setMode(PTT_OUT, OUTPUT);
gpio_clearPin(PTT_OUT);
+
+ audio_init();
}
void platform_terminate()