Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for SEQURE S99, and new Rev. of S60P #1920

Open
wants to merge 39 commits into
base: dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
653a080
Add support for Sequre S99, copied S60P settings
jonasius May 26, 2024
1521b5e
Add S99
jonasius May 26, 2024
a3b7abb
Add Sequre S99 with correct bootloader offset
jonasius May 26, 2024
5ea42a8
Add whitespaces according to coding style
jonasius May 26, 2024
2c5d2a0
Add whitespaces according to coding style
jonasius May 26, 2024
a306de5
Merge branch 'Ralim:dev' into dev
jonasius Jun 1, 2024
e327be5
Correct debug menu "Tip R" to "Tip uV"
jonasius Jun 2, 2024
a2615a5
Use SettingsOptions::PDNegTimeout in FS2711 driver
jonasius Jun 2, 2024
31ff398
Correct debug menu "Tip R" to "Tip uV"
jonasius Jun 3, 2024
6e53d85
Rename Sequre_S60 folder to Sequre
jonasius Jun 6, 2024
6ef1fbd
Support for S99
jonasius Jun 6, 2024
da28492
Add define for USB_PD_TIMEOUT, the default value for PDNegTimeout
jonasius Jun 6, 2024
f5d6d8b
Add define for USB_PD_TIMEOUT, the default value for PDNegTimeout
jonasius Jun 6, 2024
8514edf
Fix clang-format code style mismatches
jonasius Jun 6, 2024
b772e1d
Add S99 to overview table
jonasius Jun 19, 2024
c8c36d2
Fix clang-format code style mismatches
jonasius Jun 19, 2024
a626d5a
Fix missing PD related description of menu items and messages for POW…
jonasius Jun 25, 2024
c776390
Add pins for S99 v1.5 and probably S60P v1.2
jonasius Jun 25, 2024
e911726
Add experimental detection of separate USB-PD I2C bus for S99 v1.5 an…
jonasius Jun 25, 2024
51e08f3
Fix clang-format issues
jonasius Jun 25, 2024
0d74f77
Code cleanup, always init both I2C bus
jonasius Jun 25, 2024
56b91ac
Add missing __HAL_RCC_GPIOB_CLK_ENABLE
jonasius Jun 25, 2024
e6a3f38
4x faster PWM, add Timer changes from #1926
jonasius Jun 25, 2024
69493ba
Add missing braces
jonasius Jun 27, 2024
6ad0b65
Correct README to Sequre S60, S60P and S99
jonasius Jun 27, 2024
4634fa8
Fix showing displayPowerMenu for POW_PD and POW_PD_EXT 2
jonasius Jun 28, 2024
f21630e
Enable/add DC support for S60P
jonasius Jun 28, 2024
693c1a3
Merge branch 'dev' into dev
jonasius Jun 28, 2024
fa3d4d4
Merge branch 'dev' into dev
discip Jul 11, 2024
ae21be2
Merge branch 'dev' into dev
discip Jul 11, 2024
e79687e
Set equal USB_PD_TIMEOUT for all Sequre irons
jonasius Aug 5, 2024
a2734ee
Fix i2c_probe function
jonasius Aug 5, 2024
fcb1b37
Merge branch 'dev' of https://github.com/jonasius/IronOS into dev
jonasius Aug 5, 2024
a132d37
Merge remote-tracking branch 'upstream/dev' into dev
jonasius Aug 7, 2024
e667189
Add MODEL_S99
jonasius Aug 7, 2024
4b340c5
Add THERMAL_RUNAWAY config values for S99
jonasius Aug 7, 2024
2679a79
Merge branch 'dev' into dev
discip Aug 24, 2024
b036da9
Merge branch 'dev' into dev
discip Sep 4, 2024
35fd2f5
Merge branch 'dev' into dev
discip Nov 7, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ jobs:
"Pinecilv2",
"S60",
"S60P",
"S99",
"TS101",
]
fail-fast: true
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ DOCKER_CMD=$(DOCKER_BIN) -f $(DOCKER_YML) run --rm builder
MKDOCS_YML=$(CURDIR)/scripts/IronOS-mkdocs.yml

# supported models
MODELS=TS100 TS80 TS80P Pinecil MHP30 Pinecilv2 S60 TS101 S60P # target names & dir names
MODELS=TS100 TS80 TS80P Pinecil MHP30 Pinecilv2 S60 TS101 S60P S99 # target names & dir names
MODELS_ML=Pinecil Pinecilv2 # target names
MODELS_MULTILANG=Pinecil_multi-lang Pinecilv2_multi-lang # dir names

Expand Down
31 changes: 31 additions & 0 deletions source/Core/BSP/Sequre_S60/Pins.h
Original file line number Diff line number Diff line change
Expand Up @@ -69,5 +69,36 @@
#define MOVEMENT_Pin GPIO_PIN_3
#define MOVEMENT_GPIO_Port GPIOA

#endif

#ifdef MODEL_S99

#define KEY_B_Pin GPIO_PIN_1
#define KEY_B_GPIO_Port GPIOB
#define TMP36_INPUT_Pin GPIO_PIN_5
#define TMP36_INPUT_GPIO_Port GPIOA
#define TMP36_ADC1_CHANNEL ADC_CHANNEL_5
#define TMP36_ADC2_CHANNEL ADC_CHANNEL_5
#define TIP_TEMP_Pin GPIO_PIN_0
#define TIP_TEMP_GPIO_Port GPIOA
#define TIP_TEMP_ADC1_CHANNEL ADC_CHANNEL_0
#define TIP_TEMP_ADC2_CHANNEL ADC_CHANNEL_0
#define VIN_Pin GPIO_PIN_4
#define VIN_GPIO_Port GPIOA
#define VIN_ADC1_CHANNEL ADC_CHANNEL_4
#define VIN_ADC2_CHANNEL ADC_CHANNEL_4
#define KEY_A_Pin GPIO_PIN_0
#define KEY_A_GPIO_Port GPIOB
#define PWM_Out_Pin GPIO_PIN_8
#define PWM_Out_GPIO_Port GPIOB
#define PWM_Out_CHANNEL TIM_CHANNEL_3 // Timer 4; channel 3
#define SCL2_Pin GPIO_PIN_6
#define SCL2_GPIO_Port GPIOB
#define SDA2_Pin GPIO_PIN_7
#define SDA2_GPIO_Port GPIOB
// Pin gets pulled high on movement
#define MOVEMENT_Pin GPIO_PIN_3
#define MOVEMENT_GPIO_Port GPIOA

#endif
#endif /* BSP_MINIWARE_PINS_H_ */
33 changes: 32 additions & 1 deletion source/Core/BSP/Sequre_S60/configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@
// Vin_max = (3.3*(r1+r2))/(r2)
// vdiv = (32768*4)/(vin_max*10)

#if defined(MODEL_S60) + defined(MODEL_S60P) == 0
#if defined(MODEL_S60) + defined(MODEL_S60P)+defined(MODEL_S99) == 0
jonasius marked this conversation as resolved.
Show resolved Hide resolved
#error "No model defined!"
#endif

Expand Down Expand Up @@ -197,6 +197,37 @@
#define MODEL_HAS_DCDC // We dont have DC/DC but have reallly fast PWM that gets us roughly the same place
#endif /* S60P */

#ifdef MODEL_S99
#define VOLTAGE_DIV 460 // Default divider scaler
#define CALIBRATION_OFFSET 200 // Default adc offset in uV
#define PID_POWER_LIMIT 70 // Sets the max pwm power limit
#define POWER_LIMIT 0 // 0 watts default limit
#define MAX_POWER_LIMIT 70
#define POWER_LIMIT_STEPS 5
#define OP_AMP_GAIN_STAGE 536
#define TEMP_uV_LOOKUP_S60
#define USB_PD_VMAX 20 // Maximum voltage for PD to negotiate

#define HARDWARE_MAX_WATTAGE_X10 600

#define TIP_THERMAL_MASS 8 // X10 watts to raise 1 deg C in 1 second
#define TIP_THERMAL_INERTIA 128 // We use a large inertia value to smooth out the drive to the tip since its stupidly sensitive

#define TIP_RESISTANCE 20 //(actually 2.5 ish but we need to be more conservative on pwm'ing watt limit) x10 ohms

#define OLED_128x32
#define GPIO_VIBRATION
#define POW_PD_EXT 2
#define USB_PD_EPR_WATTAGE 0 /*No EPR*/
#define DEBUG_POWER_MENU_BUTTON_B 1
#define HAS_POWER_DEBUG_MENU
#define TEMP_NTC
#define I2C_SOFT_BUS_2 // For now we are doing software I2C to get around hardware chip issues
#define OLED_I2CBB2

#define MODEL_HAS_DCDC // We dont have DC/DC but have reallly fast PWM that gets us roughly the same place
#endif /* S99 */

#define FLASH_LOGOADDR (0x08000000 + (62 * 1024))
#define SETTINGS_START_PAGE (0x08000000 + (63 * 1024))

Expand Down
2 changes: 1 addition & 1 deletion source/Core/Drivers/Font.h
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ const uint8_t disconnectedTip[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x04, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
#endif

#if defined(MODEL_S60)+defined(MODEL_S60P) > 0
#if defined(MODEL_S60)+defined(MODEL_S60P)+defined(MODEL_S99) > 0
jonasius marked this conversation as resolved.
Show resolved Hide resolved
const uint8_t buttonA[] = {
// width = 42
// height = 16
Expand Down
5 changes: 4 additions & 1 deletion source/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ ALL_MINIWARE_MODELS=TS100 TS80 TS80P TS101
ALL_PINECIL_MODELS=Pinecil
ALL_PINECIL_V2_MODELS=Pinecilv2
ALL_MHP30_MODELS=MHP30
ALL_SEQURE_MODELS=S60 S60P
ALL_SEQURE_MODELS=S60 S60P S99
ALL_MODELS=$(ALL_MINIWARE_MODELS) $(ALL_PINECIL_MODELS) $(ALL_MHP30_MODELS) $(ALL_PINECIL_V2_MODELS) $(ALL_SEQURE_MODELS)

ifneq ($(model),$(filter $(model),$(ALL_MODELS)))
Expand Down Expand Up @@ -144,6 +144,9 @@ flash_size=62k
ifeq ($(model), S60P)
bootldr_size=0x5000
DEVICE_DFU_ADDRESS=0x08005000
else ifeq ($(model), S99)
bootldr_size=0x4c00
DEVICE_DFU_ADDRESS=0x08004c00
else
bootldr_size=0x4400
DEVICE_DFU_ADDRESS=0x08004400
Expand Down
2 changes: 1 addition & 1 deletion source/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ TRANSLATION_DIR="../Translations"
# AVAILABLE_LANGUAGES will be calculating according to json files in $TRANSLATION_DIR
AVAILABLE_LANGUAGES=()
BUILD_LANGUAGES=()
AVAILABLE_MODELS=("TS100" "TS80" "TS80P" "Pinecil" "MHP30" "Pinecilv2" "S60" "S60P" "TS101")
AVAILABLE_MODELS=("TS100" "TS80" "TS80P" "Pinecil" "MHP30" "Pinecilv2" "S60" "S60P" "S99" "TS101")
BUILD_MODELS=()

builder_info() {
Expand Down