Firmware: Hello World HID IN packet

This commit is contained in:
2025-12-27 19:38:54 -03:00
parent 21fff463b0
commit 3f8480976f
6 changed files with 58 additions and 6 deletions

View File

@@ -0,0 +1,22 @@
/*
* TelemetryPacket.hpp
*
* Created on: Dec 27, 2025
* Author: Gabriel
*/
#ifndef COMPONENTS_TELEMETRYPACKET_HPP_
#define COMPONENTS_TELEMETRYPACKET_HPP_
#include <cinttypes>
class __attribute__((packed)) TelemetryPacket {
public:
uint8_t report_id = 0x01;
uint32_t counter; // Increments every send
uint32_t timestamp_ms; // HAL_GetTick() value
char message[32]; // Text message
uint8_t padding[23]; // Pad to 63 bytes
};
#endif /* COMPONENTS_TELEMETRYPACKET_HPP_ */

View File

@@ -17,12 +17,21 @@
#include "Encoder_STM32.hpp" #include "Encoder_STM32.hpp"
#include "SoftTimer_STM32.hpp" #include "SoftTimer_STM32.hpp"
#include "Components/TelemetryPacket.hpp"
#include "main.h"
#include "usb_device.h"
#include "usbd_customhid.h"
extern USBD_HandleTypeDef hUsbDeviceFS;
void executableDispatch(void* _executable){ void executableDispatch(void* _executable){
Executable* executable = static_cast<Executable*>(_executable); Executable* executable = static_cast<Executable*>(_executable);
executable->execute(); executable->execute();
vTaskDelete(NULL); vTaskDelete(NULL);
} }
TelemetryPacket pkt;
void start(){ void start(){
printf("----------------INIT----------------\n"); printf("----------------INIT----------------\n");
printf("X and Y: %u, %u\n", (uint16_t)HAL_GetUIDw0(), (uint16_t)HAL_GetUIDw0()>>16); printf("X and Y: %u, %u\n", (uint16_t)HAL_GetUIDw0(), (uint16_t)HAL_GetUIDw0()>>16);
@@ -46,6 +55,19 @@ void start(){
// Init shared resources // Init shared resources
//Init components //Init components
pkt.counter = 0;
for(uint32_t i=0; i<32; i++){
pkt.message[i] = 33 + i;
}
for(uint32_t i=0; i<23; i++){
pkt.padding[i] = 0;
}
while(true){
pkt.counter++;
pkt.timestamp_ms = xTaskGetTickCount();
uint8_t result = USBD_CUSTOM_HID_SendReport(&hUsbDeviceFS, reinterpret_cast<uint8_t*>(&pkt), 64);
vTaskDelay(1000);
}
//Init tasks //Init tasks
vTaskDelete(nullptr); vTaskDelete(nullptr);

View File

@@ -296,10 +296,16 @@ TIM1.IPParameters=Channel-PWM Generation1 CH1 CH1N,Channel-PWM Generation2 CH2 C
TIM1.Prescaler=0 TIM1.Prescaler=0
TIM1.SourceBRKCOMP5=TIM_BREAKINPUTSOURCE_ENABLE TIM1.SourceBRKCOMP5=TIM_BREAKINPUTSOURCE_ENABLE
TIM1.SourceBRKCOMP6=TIM_BREAKINPUTSOURCE_ENABLE TIM1.SourceBRKCOMP6=TIM_BREAKINPUTSOURCE_ENABLE
USB.IPParameters=Sof_enable
USB.Sof_enable=ENABLE
USB_DEVICE.CLASS_NAME_FS=CUSTOM_HID USB_DEVICE.CLASS_NAME_FS=CUSTOM_HID
USB_DEVICE.IPParameters=VirtualMode,VirtualModeFS,CLASS_NAME_FS,USBD_CUSTOM_HID_REPORT_DESC_SIZE,USBD_CUSTOMHID_OUTREPORT_BUF_SIZE USB_DEVICE.CUSTOM_HID_FS_BINTERVAL=0x01
USB_DEVICE.IPParameters=VirtualMode,VirtualModeFS,CLASS_NAME_FS,USBD_CUSTOM_HID_REPORT_DESC_SIZE,USBD_CUSTOMHID_OUTREPORT_BUF_SIZE,MANUFACTURER_STRING,VID,PID_CUSTOMHID_FS,CUSTOM_HID_FS_BINTERVAL
USB_DEVICE.MANUFACTURER_STRING=IMBEL - Industria de Material Belico do Brasil
USB_DEVICE.PID_CUSTOMHID_FS=\ 0x1997
USB_DEVICE.USBD_CUSTOMHID_OUTREPORT_BUF_SIZE=64 USB_DEVICE.USBD_CUSTOMHID_OUTREPORT_BUF_SIZE=64
USB_DEVICE.USBD_CUSTOM_HID_REPORT_DESC_SIZE=38 USB_DEVICE.USBD_CUSTOM_HID_REPORT_DESC_SIZE=38
USB_DEVICE.VID=10684
USB_DEVICE.VirtualMode=CustomHid USB_DEVICE.VirtualMode=CustomHid
USB_DEVICE.VirtualModeFS=Custom_Hid_FS USB_DEVICE.VirtualModeFS=Custom_Hid_FS
VP_ADC1_TempSens_Input.Mode=IN-TempSens VP_ADC1_TempSens_Input.Mode=IN-TempSens

View File

@@ -62,10 +62,10 @@
* @{ * @{
*/ */
#define USBD_VID 1155 #define USBD_VID 10684
#define USBD_LANGID_STRING 1033 #define USBD_LANGID_STRING 1033
#define USBD_MANUFACTURER_STRING "STMicroelectronics" #define USBD_MANUFACTURER_STRING "IMBEL - Industria de Material Belico do Brasil"
#define USBD_PID 22352 #define USBD_PID 0x1997
#define USBD_PRODUCT_STRING "STM32 Custom Human interface" #define USBD_PRODUCT_STRING "STM32 Custom Human interface"
#define USBD_CONFIGURATION_STRING "Custom HID Config" #define USBD_CONFIGURATION_STRING "Custom HID Config"
#define USBD_INTERFACE_STRING "Custom HID Interface" #define USBD_INTERFACE_STRING "Custom HID Interface"

View File

@@ -402,7 +402,7 @@ USBD_StatusTypeDef USBD_LL_Init(USBD_HandleTypeDef *pdev)
hpcd_USB_FS.Init.dev_endpoints = 8; hpcd_USB_FS.Init.dev_endpoints = 8;
hpcd_USB_FS.Init.speed = PCD_SPEED_FULL; hpcd_USB_FS.Init.speed = PCD_SPEED_FULL;
hpcd_USB_FS.Init.phy_itface = PCD_PHY_EMBEDDED; hpcd_USB_FS.Init.phy_itface = PCD_PHY_EMBEDDED;
hpcd_USB_FS.Init.Sof_enable = DISABLE; hpcd_USB_FS.Init.Sof_enable = ENABLE;
hpcd_USB_FS.Init.low_power_enable = DISABLE; hpcd_USB_FS.Init.low_power_enable = DISABLE;
hpcd_USB_FS.Init.lpm_enable = DISABLE; hpcd_USB_FS.Init.lpm_enable = DISABLE;
hpcd_USB_FS.Init.battery_charging_enable = DISABLE; hpcd_USB_FS.Init.battery_charging_enable = DISABLE;

View File

@@ -54,6 +54,8 @@
/* Private variables ---------------------------------------------------------*/ /* Private variables ---------------------------------------------------------*/
/* USER CODE BEGIN PV */ /* USER CODE BEGIN PV */
#define CUSTOM_HID_EPIN_SIZE 0x40U
#define CUSTOM_HID_EPOUT_SIZE 0x40U
/* USER CODE END PV */ /* USER CODE END PV */
/** /**
* @} * @}
@@ -81,7 +83,7 @@
/*---------- -----------*/ /*---------- -----------*/
#define USBD_CUSTOM_HID_REPORT_DESC_SIZE 38U #define USBD_CUSTOM_HID_REPORT_DESC_SIZE 38U
/*---------- -----------*/ /*---------- -----------*/
#define CUSTOM_HID_FS_BINTERVAL 0x5U #define CUSTOM_HID_FS_BINTERVAL 0x01U
/****************************************/ /****************************************/
/* #define for FS and HS identification */ /* #define for FS and HS identification */