FreeJoy Versions Save

STM32F103 USB HID game device controller with flexible configuration

v1.7.1b0

2 years ago

Changes:

  • Added test support for MLX90363 sensor
  • Shift registers CLK signal unpined from PB3 (now shift registers should have separate clock signal from SPI sensors)
  • Axis to Buttons optimization

Fixes:

  • Fixed TLE sensors range mapping
  • Fixed SPI mode changes causing undesired behaviour
  • Fixed disabling buttons for HID report (buttons showing in device dispatcher)
  • Fixed edge conditions for axis with encoder source
  • Fixed dynamic deadband operation for calibrated axis
  • FIxed triggering of center button of RKJX sticks when pressing directional button
  • Fixed showing logical buttons mapped on POVs buttons

Note: Since shift registers clock signal no more can be combined with SPI sensors clock on PB3 pin this version of software may be incompatible with your hardware configuration. If your configuration dont use both SPI sensors and shift registers with PB3 pin for CLK then you won't need any hardware modifications and the software should work for you.

v1.7.1b3

2 years ago

Changes:

  • Added test support for MLX90363 sensor
  • Shift registers CLK signal unpined from PB3 (now shift registers should have separate clock signal from SPI sensors)
  • Axis to Buttons optimization

Fixes:

  • Fixed TLE sensors range mapping
  • Fixed SPI mode changes causing undesired behaviour
  • Fixed disabling buttons for HID report (buttons showing in device dispatcher)
  • Fixed edge conditions for axis with encoder source
  • Fixed dynamic deadband operation for calibrated axis
  • FIxed triggering of center button of RKJX sticks when pressing directional button
  • Fixed showing logical buttons mapped on POVs buttons

Note: Since shift registers clock signal no more can be combined with SPI sensors clock on PB3 pin this version of software may be incompatible with your hardware configuration. If your configuration dont use both SPI sensors and shift registers with PB3 pin for CLK then you won't need any hardware modifications and the software should work for you.

UPD. v1_7_1b1 fixed sensors axis flickering, axis offsets and axis center function UPD. v1_7_1b2 config loading stability improved UPD. v1_7_1b3 fixed reading buttons while buttons logic processing

v1.7.0b3

3 years ago

Changes:

  • Optimized I2C sensors reading algorithm
  • I2C pins moved to PB10 and PB11
  • Added one more PWM channel (now there are 4 channels)
  • Added PWM duty cycle control by axis value
  • Axes/buttons config now always dynamic (only used buttons and axes are shown in system)
  • Added test support for AS5048A sensor (thanks @gerh)
  • Added test support for TLE5012B sensor
  • Major USB architecture changes

Fixes:

  • Fixes for MLX90393 sensor operation
  • Fixed encoders behaviour with enabled shift modificators
  • Fixed MCP320x line operation
  • Fixed collision between PWM LED and SPI interface
  • Some workarounds with PWM LED blinking if internal ADC enabled
  • Some SPI communication fixes/improvements
  • Fixed makefile for ARMCC (thanks @wizhippo)
  • Fixed Discord/Teamspeak buttons mapping problem

Important note: WPF version of FreeJoyConfigurator is no more supported starting from this version. Use FreeJoyConfiguratorQt developed by @Reksotiv instead. Qt version of configurator support many features as:

  • Config backwards compatibility
  • Multilanguage support (English and Russian at the moment)
  • Changing GIU color themes
  • Binding buttons by pressing
  • and many more..

UPD. v1_7_0b1 fixed slider axes HID descriptor report UPD. v1_7_0b2 fixed HID descriptor for linux applications, logical buttons inversion, bootloader pins for bluepill, POV buttons mapping reverted to v1.6.3 state UPD. v1_7_0b3 fixed HID report sending for configurator parameters packets

v1.6.2b4

3 years ago

Changes:

  • Fixed range mapping for TLE501x sensors
  • Fixed errors in reading SPI sensors
  • Fixed non-atomic access to buttons reading function
  • Axis prescaler operation with no activation button
  • Axis centering now stored in config
  • Added debounce for axes to buttons
  • Axes from buttons extended to fullscale operation
  • Centering now affects on plus/minus functions for axes
  • Added POV with center for support of RKJXT1F series hats

UPD. v1.6.2b1 fixed ADC conversion issue causing raw value exceeding allowed range UPD. v1.6.2b2 fixed ADC channels mapping, dynamic buttons config and conflicts between SPI and shift registers UPD. v1.6.2b3 added delay for reading buttons to solve USB cold start issue UPD. v1.6.2b4 fixed encoder operation with shifts, continious SPI reading in bi-di mode

v1.6.0b6

3 years ago

Changes:

  • HID bootloader (improved software updating algorithm)
  • Buttons logic completely reworked
  • Timer functionality for buttons (delay before pressing and press duration)
  • Sequential non-latching buttons
  • Logic buttons inversion option
  • Button output disabling option
  • Axis trimming by buttons
  • Axis centering by buttons (helicopter-style trimming)
  • Axis prescaler
  • Combined axes activation by button
  • Prescaler activation by button
  • "Equal" function for combined axes
  • Encoders as axes sources
  • High-resolution (fast) encoder support
  • Improved ADC performance
  • Improved shift registers stability

Migrating from v1.5.x without a programmer device For updating FreeJoy v1.5.x to v1.6.0 run FreeJoy Configurator v1.5.x and upload Bootloader.bin file from the archive to the device. Then the new firmware can be uploaded via FreeJoy Configurator v1.6.0 as described in wiki

UPD. v1.6.0b4 fixed missing 1st encoder pulse at direction change for encoder_4x UPD. v1.6.0b5 fixed shift registers operation with encoders connected UPD. v1.6.0b6 button operation when shift exists but not pressed

v1.5.1b7

4 years ago

Changes:

  • Now it is possible to set one Latch pin to several shift register chains
  • Support of ADS1115 external ADCs
  • Support of AS5600 sensor in I2C mode
  • Support of 3-axis MLX90393 sensor in SPI mode
  • Support of all MCP32xx external ADCs(изменено)
  • Migration to AC6 compiler
  • A lot of bugfixes and improvements

Please note that connection of many I2C devices may reduce overall performance of the controller

UPD. v1.5.1b4 fixed SCK pin conflict between MLX90393 and shift registers UPD. v1.5.1b5 fixed button's states errors when there is an encoder connected to shift register UPD. v1.5.1b6 fixed center offset when axis center calibrated not to zero UPD. v1.5.1b7 fixed single LED operation and raw buttons output

v1.4.1b5

4 years ago

Changes:

  • Added dynamic deadband
  • Added sequential buttons (mapped to same physical button and pressed sequentially)
  • Influence of microcontroller periphery to ADC conversion reduced (especially if TLE sensors are used)
  • Added axis offset by angle (with 15 degrees step)
  • 3 configurable PWM pins for lightning
  • Up to 24 leds (single and matrix) mappable to buttons states

UPD. v1.4.1b3: fixed USB crash if no analog axis if defined UPD. v1.4.1b4: improved ADC performance UPD. v1.4.1b5: fixed LED matrix algorithm

v1.3.4b3

4 years ago

Changes:

  • Added PID settings
  • Dynamic HID descriptor
  • Added 4th (highest) level for axes filter
  • Encoders connection to matrix of buttons (common pin should be connected to Row)
  • Button matrix row and columns were swapped. Now common pin for buttons is Row.

Notes:

  • PID changing is only needed for devices of different types (with different config). If devices have same config there is no need to change PID, all of them will be detected by PC
  • Dynamic HID descriptor means all unused buttons and axes will be removed from HID descriptor. Buttons for POVs, shifts and buttons mapped to axes also will be hidden.

UPD. v1.3.4b2 fixed POV diagonals pressing UPD2. v1.3.4b3 fixed buttons report data processing

v1.3.3b5

4 years ago

Features:

  • Migration to SPL to reduce program size and improve performance
  • Splitting buttons to physical and logical
  • Widely configurable shift modification for buttons (5 shifts maximum)
  • Optimizing serial devices reading algorithms (like using DMA for SPI)
  • New axes configuration logic
  • Combined axes function
  • Buttons/encoders to axes
  • Improved encoders algorithm
  • Encoders maximum number reduced to 16 to increase performance
  • Radio buttons functionality
  • Shift registers pull up and pull down selecting

Fixes:

  • Axes to buttons errors
  • Magnet offset function added to all axes
  • Optimization of HID

UPD. Hotfix 1.3.3b3: Fixed shift registers functionality and bootloader. Flash this version by ST-Link only. UPD2. Hotfix 1.3.3b5: Fixed buttons bouncing at long time holding

v1.02

4 years ago

Features:

  • Added support for shift registers 74HC165 and CD4021
  • Added support for TLE5010/5011 sensors
  • AxesToButtons function now work for both analog axes and digital sensors
  • Axes output can be disabled without disabling overlaying features (like AxesToButtons)
  • Axis resolution now can be set from 1 bit to 12 bits
  • Magnet offset option for magnetic field sensors

Fixes:

  • Fixed bootloader maximum flash size
  • Fixed config exchange
  • Fixed errors in axes data exchange
  • Improved encoder algorithm
  • Fixed axis inversion setting

This version should be flashed by programmer with Chip Erase option. Hex file should be used for flashing by programmer