diff --git a/tests/platform/platform_test.c b/tests/platform/platform_test.c
new file mode 100644
index 00000000..7883a669
--- /dev/null
+++ b/tests/platform/platform_test.c
@@ -0,0 +1,78 @@
+/***************************************************************************
+ * Copyright (C) 2020 by Federico Izzo IU2NUO, Niccolò Izzo IU2KIN and *
+ * Silvano Seva IU2KWO *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 3 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, see *
+ ***************************************************************************/
+
+#include
+#include
+#include
+#include
+#include "gpio.h"
+#include "graphics.h"
+#include "hwconfig.h"
+#include "platform.h"
+
+void platform_test()
+{
+ gpio_togglePin(GREEN_LED);
+ OS_ERR os_err;
+ point_t pos_line1 = {0, 0};
+ point_t pos_line2 = {0, 9};
+ point_t pos_line3 = {0, 17};
+ color_t color_white = {255, 255, 255};
+ char *buf = "Platform Test";
+ gfx_print(pos_line1, buf, FONT_SIZE_1, TEXT_ALIGN_LEFT, color_white);
+ float vBat = platform_getVbat();
+ float micLevel = platform_getMicLevel();
+ float volumeLevel = platform_getVolumeLevel();
+ uint8_t currentCh = platform_getChSelector();
+ bool ptt = platform_getPttStatus();
+ char buf2[26] = "";
+ snprintf(buf2, sizeof(buf2), "bat:%.2f mic:%.2f", vBat, micLevel);
+ char buf3[26] = "";
+ snprintf(buf3, sizeof(buf3), "vol:%.2f ch:%d ptt:%s", volumeLevel, currentCh, ptt?"on":"off");
+ gfx_print(pos_line2, buf2, FONT_SIZE_1, TEXT_ALIGN_LEFT, color_white);
+ gfx_print(pos_line3, buf3, FONT_SIZE_1, TEXT_ALIGN_LEFT, color_white);
+ gfx_render();
+ while(gfx_renderingInProgress());
+ OSTimeDlyHMSM(0u, 0u, 0u, 250u, OS_OPT_TIME_HMSM_STRICT, &os_err);
+}
+
+int main(void)
+{
+ gpio_setMode(GREEN_LED, OUTPUT);
+
+ // Init the graphic stack
+ gfx_init();
+ platform_setBacklightLevel(255);
+
+ point_t origin = {0, SCREEN_HEIGHT / 2};
+ color_t color_yellow = {250, 180, 19};
+ char *buffer = "OpenRTX";
+
+ OS_ERR os_err;
+
+ // Task infinite loop
+ while(1)
+ {
+ gfx_clearScreen();
+ gfx_print(origin, buffer, FONT_SIZE_4, TEXT_ALIGN_CENTER, color_yellow);
+ //gfx_render();
+ //while(gfx_renderingInProgress());
+ platform_test();
+ OSTimeDlyHMSM(0u, 0u, 0u, 100u, OS_OPT_TIME_HMSM_STRICT, &os_err);
+ }
+}
diff --git a/tests/platform/print_gpio.c b/tests/platform/print_gpio.c
new file mode 100644
index 00000000..bbc1759e
--- /dev/null
+++ b/tests/platform/print_gpio.c
@@ -0,0 +1,82 @@
+/***************************************************************************
+ * Copyright (C) 2020 by Federico Izzo IU2NUO, Niccolò Izzo IU2KIN and *
+ * Silvano Seva IU2KWO *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 3 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, see *
+ ***************************************************************************/
+
+#include
+#include
+#include
+#include
+#include "gpio.h"
+#include "graphics.h"
+#include "hwconfig.h"
+#include "platform.h"
+
+void printBits(uint16_t value, point_t pos)
+{
+ char buf[16] = {0};
+
+ unsigned char i = 0;
+ for(; i < 15; i++)
+ {
+ buf[i] = '0';
+ if(value & (1 << i)) buf[i] += 1;
+ }
+
+ color_t color_white = {255, 255, 255};
+ gfx_print(pos, buf, FONT_SIZE_1, TEXT_ALIGN_LEFT, color_white);
+}
+
+int main(void)
+{
+ GPIOA->MODER = 0;
+ GPIOB->MODER = 0;
+ GPIOC->MODER = 0;
+ GPIOD->MODER = 0;
+ GPIOE->MODER = 0;
+
+ gpio_setMode(GREEN_LED, OUTPUT);
+ gpio_setMode(LCD_BKLIGHT, OUTPUT);
+
+ // Init the graphic stack
+ gfx_init();
+ platform_setBacklightLevel(255);
+
+ OS_ERR os_err;
+
+ // Task infinite loop
+ while(1)
+ {
+ gpio_togglePin(GREEN_LED);
+ gfx_clearScreen();
+
+ point_t pos_line1 = {0, 0};
+ point_t pos_line2 = {0, 17};
+ point_t pos_line3 = {0, 35};
+ point_t pos_line4 = {0, 53};
+ point_t pos_line5 = {0, 71};
+
+ printBits((GPIOA->IDR & 0x0000FFFF), pos_line1);
+ printBits((GPIOB->IDR & 0x0000FFFF), pos_line2);
+ printBits((GPIOC->IDR & 0x0000FFFF), pos_line3);
+ printBits((GPIOD->IDR & 0x0000FFFF), pos_line4);
+ printBits((GPIOE->IDR & 0x0000FFFF), pos_line5);
+
+ gfx_render();
+ while(gfx_renderingInProgress());
+ OSTimeDlyHMSM(0u, 0u, 0u, 100u, OS_OPT_TIME_HMSM_STRICT, &os_err);
+ }
+}