From 9c00357578cbf9be81043db8b4bd1c60eade53f6 Mon Sep 17 00:00:00 2001 From: AlkaMotors <37931458+AlkaMotors@users.noreply.github.com> Date: Sun, 29 Jan 2023 15:58:47 -0400 Subject: [PATCH 01/12] Add Skystars Butter to layout list (#319) * Add Skystars Butter to layout list --- src/sources/AM32/escs.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/sources/AM32/escs.json b/src/sources/AM32/escs.json index e3410867b..831c71840 100644 --- a/src/sources/AM32/escs.json +++ b/src/sources/AM32/escs.json @@ -127,6 +127,10 @@ "Wraith_32": { "name": "Wraith 32", "fileName": "WRAITH32" + }, + "KM55A_BUTTER": { + "name": "SkyStars Butter", + "fileName": "GD32E_SKYSTARS_KM55" } } } From 7698464754d4e21ad77fd06205da9e7348eb897f Mon Sep 17 00:00:00 2001 From: Chris L Date: Wed, 1 Feb 2023 02:27:46 +0100 Subject: [PATCH 02/12] Do not allow reading/flashing when radio is detected to be connected. Use MSP_STATUS to detect failsafe state. If RX_FAILSAFE is NOT detected, it means that the radio is on and connected. Due to changes in BF 4.3.x and moving forward issues might arise - especially with SPI receivers - where the communication might get flaky. This seems to be due to changes in the scheduler and interrupt handling. This may lead to corrupted flashes resulting in soft or full brick of the ESCs (recovery only possible via C2 interface). This is considered to be a workaround. Other functionality where BF communicates with the ESC such as for example direction changes are also affected, but obviously there is nothing that can be done about that in esc-configurator. --- src/Containers/App/index.jsx | 10 ++++++++++ src/changelog.json | 6 ++++++ src/settings.json | 2 +- src/translations/en/log.json | 1 + src/utils/Msp.js | 25 ++++++++++++++++++++++++- src/utils/Serial.js | 1 + 6 files changed, 43 insertions(+), 2 deletions(-) diff --git a/src/Containers/App/index.jsx b/src/Containers/App/index.jsx index 0c44433ca..5817faa93 100644 --- a/src/Containers/App/index.jsx +++ b/src/Containers/App/index.jsx @@ -440,6 +440,16 @@ class App extends Component { let connected = 0; this.setActions({ isReading: true }); + + // Prevent reading if radio is detected to be on + const status = await this.serial.getStatus(); + if(!status.armingDisableFlagsReasons.RX_FAILSAFE) { + this.addLogMessage('radioOn'); + this.setActions({ isReading: false }); + + return; + } + try { if(this.lastConnected === 0) { const escs = await this.serial.enable4WayInterface(); diff --git a/src/changelog.json b/src/changelog.json index acefba685..a83bb90f3 100644 --- a/src/changelog.json +++ b/src/changelog.json @@ -1,4 +1,10 @@ [ + { + "title": "Unreleased", + "items": [ + "Enhancement: Detect if radio is on and do not allow reading/flashing" + ] + }, { "title": "0.28.1", "items": [ diff --git a/src/settings.json b/src/settings.json index c9e7aaa02..112384365 100644 --- a/src/settings.json +++ b/src/settings.json @@ -1,5 +1,5 @@ { - "version": "v0.28.1", + "version": "v0.28.2-dev-1", "corsProxy": "https://cors.bubblesort.me/?", "availableLanguages": [ { diff --git a/src/translations/en/log.json b/src/translations/en/log.json index 576c177aa..5d8b5e2a3 100644 --- a/src/translations/en/log.json +++ b/src/translations/en/log.json @@ -9,6 +9,7 @@ "mspBuildInfo": "Running firmware released on: {{info}}", "mspBoardInfo": "Board: {{identifier}}, version: {{version}}", "mspUid": "Unique device ID received - 0x{{id}}", + "radioOn": "Your radio has been detected to be on! Reading and Flashing disabled. Turn off your radio and try again.", "mspFcInfo": "Flight controller info, identifier: {{id}} version: {{version}}", "portUsed": "Port already in use by another application - try re-connecting", "fourWayFailed": "Could not enable 4 way interface - reconnect flight controller", diff --git a/src/utils/Msp.js b/src/utils/Msp.js index 62e113f0a..63ecfaa4b 100644 --- a/src/utils/Msp.js +++ b/src/utils/Msp.js @@ -415,7 +415,21 @@ class Msp { config.i2cError = data.getUint16(2, 1); config.activeSensors = data.getUint16(4, 1); config.mode = data.getUint32(6, 1); - config.profile = data.getUint8(10); + config.currentProfile = data.getUint8(10); + config.averageSysytemLoadPercent = data.getUint16(11, 1); + + config.pidProfileCount = data.getUint8(13); + config.currentRateProfile = data.getUint8(14); + + config.byteCount = data.getUint8(15); + + config.armingDisableFlagsCount = data.getUint8(16 + config.byteCount); + config.armingDisableFlags = data.getUint32(17 + config.byteCount, 1); + + const rxFailsafe = (config.armingDisableFlags & (1 << 2)) === 0x04; + config.armingDisableFlagsReasons = { RX_FAILSAFE: rxFailsafe }; + + config.rebootRequired = data.getUint8(21 + config.byteCount); return config; } @@ -728,6 +742,15 @@ class Msp { return this.send(MSP.MSP_BOARD_INFO); } + /** + * Get Status + * + * @returns {Promise} + */ + getStatus() { + return this.send(MSP.MSP_STATUS); + } + /** * Get board info * diff --git a/src/utils/Serial.js b/src/utils/Serial.js index 1c687282b..6f908334a 100644 --- a/src/utils/Serial.js +++ b/src/utils/Serial.js @@ -237,6 +237,7 @@ class Serial { getFcVersion = () => this.msp.getFcVersion(); getFeatures = () => this.msp.getFeatures(); getMotorData = () => this.msp.getMotorData(); + getStatus = () => this.msp.getStatus(); getUid = () => this.msp.getUid(); spinAllMotors = (speed) => this.msp.spinAllMotors(speed); spinMotor = (index, speed) => this.msp.spinMotor(index, speed); From e65631ee93fc412bf2b8e3fd20491864d8f9fbd1 Mon Sep 17 00:00:00 2001 From: Chris Date: Tue, 7 Feb 2023 14:40:46 +0100 Subject: [PATCH 03/12] Add layout for upcoming Bluejay version 0.19 including power rating for 1S. #312 (#322) --- src/changelog.json | 3 ++- src/sources/Bluejay/eeprom.js | 4 ++++ src/sources/Bluejay/settings.js | 26 ++++++++++++++++++++- src/translations/en/common.json | 1 + src/translations/en/hints.json | 3 ++- src/utils/helpers/__tests__/Convert.test.js | 2 +- 6 files changed, 35 insertions(+), 4 deletions(-) diff --git a/src/changelog.json b/src/changelog.json index a83bb90f3..f215c894b 100644 --- a/src/changelog.json +++ b/src/changelog.json @@ -2,7 +2,8 @@ { "title": "Unreleased", "items": [ - "Enhancement: Detect if radio is on and do not allow reading/flashing" + "Enhancement: Detect if radio is on and do not allow reading/flashing", + "Bluejay: New layout including power settings" ] }, { diff --git a/src/sources/Bluejay/eeprom.js b/src/sources/Bluejay/eeprom.js index c2cc1bb08..455d9c4e1 100644 --- a/src/sources/Bluejay/eeprom.js +++ b/src/sources/Bluejay/eeprom.js @@ -162,6 +162,10 @@ const LAYOUT = { offset: 0x28, size: 1, }, + POWER_RATING: { + offset: 0x29, + size: 1, + }, LAYOUT: { offset: 0x40, diff --git a/src/sources/Bluejay/settings.js b/src/sources/Bluejay/settings.js index ae2cbb749..255341801 100644 --- a/src/sources/Bluejay/settings.js +++ b/src/sources/Bluejay/settings.js @@ -337,6 +337,24 @@ COMMON['205'] = { ], }; +COMMON['206'] = { + base: [ + ...COMMON['204'].base, + { + name: 'POWER_RATING', + type: 'enum', + label: 'escPowerRating', + options: [{ + value: '1', + label: '1S', + }, { + value: '2', + label: '2S+', + }], + }, + ], +}; + const INDIVIDUAL_SETTINGS_200 = [{ name: 'MOTOR_DIRECTION', type: 'enum', @@ -395,6 +413,7 @@ const INDIVIDUAL_SETTINGS_203 = [ ]; const INDIVIDUAL = { + '206': { base: INDIVIDUAL_SETTINGS_203 }, '205': { base: INDIVIDUAL_SETTINGS_203 }, '204': { base: INDIVIDUAL_SETTINGS_203 }, '203': { base: INDIVIDUAL_SETTINGS_203 }, @@ -445,13 +464,18 @@ DEFAULTS['204'] = { // v0.15 BRAKING_STRENGTH: 255, }; -DEFAULTS['205'] = { +DEFAULTS['205'] = { // unreleased ...DEFAULTS['204'], STARTUP_BEEP: 1, STARTUP_MELODY_WAIT_MS: 0, PWM_FREQUENCY: 24, }; +DEFAULTS['206'] = { // v0.19 + ...DEFAULTS['204'], + POWER_RATING: 2, +}; + const settings = { DEFAULTS, INDIVIDUAL, diff --git a/src/translations/en/common.json b/src/translations/en/common.json index 89013da67..99fab0d29 100644 --- a/src/translations/en/common.json +++ b/src/translations/en/common.json @@ -46,6 +46,7 @@ "escButtonWrite": "Write Settings", "buttonCancel": "Cancel", "escButtonSelect": "Flash", + "escPowerRading": "Power Rating", "defaultChangelogTitle": "Changelog", "changelogClose": "Close", "escDampingMode": "Damping mode (Complementary PWM)", diff --git a/src/translations/en/hints.json b/src/translations/en/hints.json index 898a6fb52..63a8eb858 100644 --- a/src/translations/en/hints.json +++ b/src/translations/en/hints.json @@ -34,5 +34,6 @@ "USE_HALL_SENSORS": "For speed controllers with a hall sensor input to be used with sensored motors.", "SINE_MODE_RANGE": "The amount of throttle in percent used for sinusoidal startup.", "BRAKE_STRENGTH": "The level of hold brake applied when brake on stop is enabled.", - "BRAKING_STRENGTH": "Maximum amount of braking applied (complementary PWM duty cycle)." + "BRAKING_STRENGTH": "Maximum amount of braking applied (complementary PWM duty cycle).", + "POWER_RATING": "If using EDT on 1S setups, the temperature readings will be off if this is not set to 1S. All setups with 2S and more do not need to change this setting." } diff --git a/src/utils/helpers/__tests__/Convert.test.js b/src/utils/helpers/__tests__/Convert.test.js index 5c9649b30..71dc1279f 100644 --- a/src/utils/helpers/__tests__/Convert.test.js +++ b/src/utils/helpers/__tests__/Convert.test.js @@ -12,7 +12,7 @@ test('settingsUint8Array', () => { const settingsObject = Convert.arrayToSettingsObject(settingsArray, layout); const keys = Object.keys(settingsObject); - expect(keys.length).toEqual(45); + expect(keys.length).toEqual(46); layout.MAIN_REVISION.size = 0; expect(() => Convert.arrayToSettingsObject(settingsArray, layout)).toThrow(); From e62c9e66fdb5a0714496c38e403344ef4d9dd4f7 Mon Sep 17 00:00:00 2001 From: Eike Ahmels Date: Wed, 8 Feb 2023 17:18:07 +0100 Subject: [PATCH 04/12] Am32 pincode verification (#325) * AM32: pincode verification instead of target names --- src/utils/FourWay.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/utils/FourWay.js b/src/utils/FourWay.js index 1792cd7d7..4b39228e3 100644 --- a/src/utils/FourWay.js +++ b/src/utils/FourWay.js @@ -373,8 +373,7 @@ class FourWay { * If not AM32, then very likely BLHeli_32, even if not - we can't * handle it. */ - const validNames = source.getValidNames(); - if(!validNames.includes(info.settings.NAME)) { + if(!Object.values(am32Eeprom.BOOT_LOADER_PINS).includes(info.meta.input)) { source = null; info.settings.NAME = 'BLHeli_32'; From ffa705498d51d64fc601584492c9cb496ee084fa Mon Sep 17 00:00:00 2001 From: Chris L Date: Thu, 9 Feb 2023 00:04:36 +0100 Subject: [PATCH 05/12] Attempt to improve BLHeli_32 and AM32 detection --- src/utils/FourWay.js | 32 ++++++++++++++++++++++++-------- src/utils/Hardware/MCU.js | 16 ++++++++++++++++ 2 files changed, 40 insertions(+), 8 deletions(-) diff --git a/src/utils/FourWay.js b/src/utils/FourWay.js index 4b39228e3..399cf80be 100644 --- a/src/utils/FourWay.js +++ b/src/utils/FourWay.js @@ -33,6 +33,8 @@ import { import FourWayHelper from './helpers/FourWay'; import MCU from './Hardware/MCU'; +import Silabs from './Hardware/Silabs'; +import Arm from './Hardware/Arm'; import { ACK, @@ -337,14 +339,29 @@ class FourWay { const info = Flash.getInfo(flash); try { - const mcu = new MCU(info.meta.interfaceMode, info.meta.signature); - const eepromOffset = mcu.getEepromOffset(); + console.log(info); + + let mcu = null; + try { + mcu = new MCU(info.meta.interfaceMode, info.meta.signature); + if (!mcu.class) { + console.debug('Unknown MCU class.'); + throw new UnknownPlatformError('Neither SiLabs nor Arm'); + } + } catch(e) { + console.log('Unknown interface', e); + throw new UnknownPlatformError('Neither SiLabs nor Arm'); + } + + console.log(mcu); let source = null; - if (info.isSiLabs) { + if (mcu.class === Silabs) { // Assume BLHeli_S to be the default source = blheliSSource; + const eepromOffset = mcu.getEepromOffset(); + info.layout = source.getLayout(); info.layoutSize = source.getLayoutSize(); info.settingsArray = (await this.read(eepromOffset, info.layoutSize)).params; @@ -361,9 +378,12 @@ class FourWay { } } - if (info.isArm) { + if (mcu.class === Arm) { + // Assume AM32 to be the default source = am32Source; + const eepromOffset = mcu.getEepromOffset(); + info.layout = source.getLayout(); info.layoutSize = source.getLayoutSize(); info.settingsArray = (await this.read(eepromOffset, info.layoutSize)).params; @@ -380,10 +400,6 @@ class FourWay { } } - if (!info.isArm && !info.isSiLabs){ - throw new UnknownPlatformError('Neither SiLabs nor Arm'); - } - /** * Try to guess firmware type if it was not properly set in the EEPROM */ diff --git a/src/utils/Hardware/MCU.js b/src/utils/Hardware/MCU.js index 5d7326079..45c8b78a0 100644 --- a/src/utils/Hardware/MCU.js +++ b/src/utils/Hardware/MCU.js @@ -46,6 +46,22 @@ class MCU { } } })(interfaceMode); + + this.class = ((interfaceMode) => { + switch(interfaceMode) { + case MODES.SiLBLB: { + return Silabs; + } + + case MODES.ARMBLB: { + return Arm; + } + + default: { + return null; + } + } + })(interfaceMode); } /** From 4f07a612244a2f491a3e2e75a91acb3630cc423f Mon Sep 17 00:00:00 2001 From: Chris L Date: Thu, 9 Feb 2023 13:13:36 +0100 Subject: [PATCH 06/12] Throw if mcu could not be fingerprinted --- src/utils/Errors.js | 9 +++++++++ src/utils/Hardware/MCU.js | 9 ++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/utils/Errors.js b/src/utils/Errors.js index bf05ea169..2849eef2a 100644 --- a/src/utils/Errors.js +++ b/src/utils/Errors.js @@ -40,6 +40,14 @@ class UnknownInterfaceError extends Error { } } +class UnknownSignatureError extends Error { + constructor(signature) { + super(`unknown signature: ${signature}`); + this.signature = signature; + this.name = 'UnknownSignatureError'; + } +} + class InvalidHexFileError extends Error { constructor(message) { super(message); @@ -94,5 +102,6 @@ export { SettingsVerificationError, TooManyParametersError, UnknownInterfaceError, + UnknownSignatureError, UnknownPlatformError, }; diff --git a/src/utils/Hardware/MCU.js b/src/utils/Hardware/MCU.js index 45c8b78a0..84be16f27 100644 --- a/src/utils/Hardware/MCU.js +++ b/src/utils/Hardware/MCU.js @@ -1,4 +1,7 @@ -import { UnknownInterfaceError } from '../Errors'; +import { + UnknownInterfaceError, + UnknownSignatureError, +} from '../Errors'; import { MODES } from '../FourWayConstants'; import { findMCU } from '../helpers/General'; @@ -62,6 +65,10 @@ class MCU { } } })(interfaceMode); + + if(!this.mcu) { + throw new UnknownSignatureError(signature); + } } /** From 388f04cebce03e79ce0d99b2338c61a429dbe6e2 Mon Sep 17 00:00:00 2001 From: Eike Ahmels Date: Tue, 21 Feb 2023 22:29:13 +0100 Subject: [PATCH 07/12] fix a bug, where you would get stuck, when the fc already is in 4way mode (#329) * Detect if in 4-way interface mode and attempt to reset back to MSP mode --- src/Containers/App/index.jsx | 36 +++++++++++++++++++++++++++++++++++- src/translations/en/log.json | 1 + src/utils/Errors.js | 8 ++++++++ src/utils/FourWay.js | 3 ++- 4 files changed, 46 insertions(+), 2 deletions(-) diff --git a/src/Containers/App/index.jsx b/src/Containers/App/index.jsx index 5817faa93..9037131b2 100644 --- a/src/Containers/App/index.jsx +++ b/src/Containers/App/index.jsx @@ -7,6 +7,7 @@ import i18next from 'i18next'; import BinToHex from 'bin-to-hex'; import { fetchHexCached } from '../../utils/Fetch'; +import { TimeoutError } from '../../utils/helpers/QueueProcessor'; import { getMasterSettings } from '../../utils/helpers/Settings'; import { delay } from '../../utils/helpers/General'; import MainApp from '../../Components/App'; @@ -22,6 +23,7 @@ import { loadSerialApi, loadSettings, } from '../../utils/LocalStorage'; +import { MessageNotOkError } from '../../utils/Errors'; const { availableLanguages, @@ -777,7 +779,39 @@ class App extends Component { } try { - const apiVersion = await this.serial.getApiVersion(); + let apiVersion = null; + + try { + apiVersion = await this.serial.getApiVersion(); + } catch(e) { + if (e instanceof TimeoutError) { + let hasResets = false; + let i = 0; + + try { + while ((await this.serial.getFourWayInterfaceInfo(i))) { + await this.serial.resetFourWayInterface(i); + i += 1; + } + } catch (ex) { + if (!(ex instanceof MessageNotOkError)) { + this.addLogMessage('resetEscFailedPowerCycle', { index: i + 1 }); + throw ex; + } + } finally { + hasResets = i > 0; + } + + if (hasResets) { + await this.serial.exitFourWayInterface(); + } + + apiVersion = await this.serial.getApiVersion(); + } else { + throw e; + } + } + this.addLogMessage('mspApiVersion', { version: apiVersion.apiVersion }); const fcVariant = await this.serial.getFcVariant(); diff --git a/src/translations/en/log.json b/src/translations/en/log.json index 5d8b5e2a3..bb2c646b4 100644 --- a/src/translations/en/log.json +++ b/src/translations/en/log.json @@ -22,6 +22,7 @@ "fetchingFilesFailed": "Failed fetching files for {{name}}", "readEscFailed": "Failed reading ESC {{index}}", "resetEscFailed": "Failed resetting ESC {{index}}", + "resetEscFailedPowerCycle": "Failed resetting ESC {{index}} - power cycle and try again", "writeSettingsFailed": "Failed writing settings to ESC {{index}}", "restoreSettingsFailed": "Failed restoring default settings on ESC {{index}}", "getFileFailed": "Could not get file for flashing.", diff --git a/src/utils/Errors.js b/src/utils/Errors.js index 2849eef2a..85632213c 100644 --- a/src/utils/Errors.js +++ b/src/utils/Errors.js @@ -91,6 +91,13 @@ class MissingParametersError extends Error { } } +class MessageNotOkError extends Error { + constructor(message) { + super(message); + this.name = 'MessageNotOkError'; + } +} + export { BufferLengthMismatchError, ConversionError, @@ -104,4 +111,5 @@ export { UnknownInterfaceError, UnknownSignatureError, UnknownPlatformError, + MessageNotOkError, }; diff --git a/src/utils/FourWay.js b/src/utils/FourWay.js index 399cf80be..913a70b51 100644 --- a/src/utils/FourWay.js +++ b/src/utils/FourWay.js @@ -4,6 +4,7 @@ import { BufferLengthMismatchError, EscInitError, InvalidHexFileError, + MessageNotOkError, SettingsVerificationError, TooManyParametersError, UnknownInterfaceError, @@ -313,7 +314,7 @@ class FourWay { return reject(e); } - return reject(new Error('Message not OK')); + return reject(new MessageNotOkError('Message not OK')); }; try { From 53666c1c2eec86ab3c9a46e69f444329b2ffebd9 Mon Sep 17 00:00:00 2001 From: Chris Date: Tue, 21 Feb 2023 23:22:24 +0100 Subject: [PATCH 08/12] Add more tunes #94 (#331) --- src/changelog.json | 2 ++ src/melodies.json | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/src/changelog.json b/src/changelog.json index f215c894b..eabe30ff2 100644 --- a/src/changelog.json +++ b/src/changelog.json @@ -2,6 +2,8 @@ { "title": "Unreleased", "items": [ + "Enhancement: More melodies", + "Enhancement: Detect if FC is in 4 way interface mode after reconnection and reset", "Enhancement: Detect if radio is on and do not allow reading/flashing", "Bluejay: New layout including power settings" ] diff --git a/src/melodies.json b/src/melodies.json index 82b8f67cb..f9842f823 100644 --- a/src/melodies.json +++ b/src/melodies.json @@ -77,6 +77,15 @@ "jingle4:b=200,o=5,d=4:d,32p,8d,32p,8d,p,c#,32p,8c#,32p,8c#,p,d,32p,8e,32p,a4,32p,8b4,32p,c,32p,8b4,64p,a4,32p,8g4,32p,2f#4" ] }, + { + "name":"The Chemical Brothers - Galvanize", + "tracks": [ + "Galvanize:d=16,o=3,b=104:8f,p,8f,p,8g,p,g5,4p,a#,8p,8a,8p,8g#", + "Galvanize:d=16,o=4,b=104:8f,p,8f,p,8g,8p,g,p,a,p,c5,a#,p,a#,a,a#,g,a,f", + "Galvanize:d=16,o=3,b=104:8b,p,8b,p,8b,8p,g5,p,a5,p,c6,a#5,p,a#5,a5,a#5,g5,a5,f5", + "Galvanize:d=16,o=3,b=104:8g,p,8g,p,8g,p,g5,4p,a#,8p,8a,8p,8g#" + ] + }, { "name": "Chiquitita - Abba", "tracks": [ @@ -171,6 +180,12 @@ "ievan_polkka_3:o=5,b=100,d=8:p,32f#.,64p,32f#.,64p,p,f#,p,f#,p,f#,p,32f.,64p,32f.,64p,p,f,p,f#,p,f#" ] }, + { + "name": "Maxwell the cat Theme", + "tracks": [ + "maxwell:d=32, f=16:d5,p,d5,p,d5,p,e5,p,f5,p,p,p,f5,p,p,p,b5,p,b5,p,b5,p,a5,p,g5,p,p,p,g5,p,p,p,c5,c5,c5,c5,c5,c5,p,a4,a4,a4,a4,a4,a4,p,e5,e5,e5,e5,e5,e5,p,c5,c5,c5,c5,c5,c5." + ] + }, { "name": "Mobilnik - Sergey Shnurov", "tracks": [ @@ -210,6 +225,15 @@ "never4:b=210,o=3,d=4:8d4,8e4,8g4,8d4,c4,c4,c4,d4,8p,8d4,8e4,8p,8g4,8p,8a4,8p,b4,b4,b4,e4,8e4,8f#4,8e4,8p,8d4,8e4,8g4,8e4,2a4,a4,2d5,8a4,8p,8d4,8p,8a4,8p,2f#4,2e4" ] }, + { + "name": "Owl City - Fireflies", + "tracks": [ + "Fireflies1:d=8,o=5,b=180:a#3,a#4,d6,a#3,a#4,a#5,p,d#,d#4,a#,f,d#,f,a#,p,d#,g#3,c,a#,c,d#,d#4,g#3,p,a#,c,a#,c4,a#,d#,f,a#3,a#4,d6,d,f4,a#,p,d#,d#4,a#4,f,d#,g#,g,d#,a#4,g#3,c,d#4,g#3,a#4,p,d#4,c,g#3,c,a#4,c4,d#,f", + "Fireflies2:d=8,o=4,b=180:4p,a#3,f.,16p,4f,d#,4f,4d#,4a#3,4p,4p,a#3,c.,16p,4c,a#3,4c,4d#,4f.,4p,4g,4f,d#,a#3.,16p,16a#3.,32p,4a#3,f,4d#,4c,1p,2p", + "Fireflies3:d=8,o=4,b=180:4p,a#3,f.,16p,4f,d#,4f,4d#,4a#3,4p,4p,a#3,c.,16p,4c,a#3,4c,4d#,4f.,4p,4g,4f,d#,a#3.,16p,16a#3.,32p,4a#3,f,4d#,4c,1p,2p", + "Fireflies4:d=8,o=4,b=180:4p,a#3,f.,16p,4f,d#,4f,4d#,4a#3,4p,4p,a#3,c.,16p,4c,a#3,4c,4d#,4f.,4p,4g,4f,d#,a#3.,16p,16a#3.,32p,4a#3,f,4d#,4c,1p,2p" + ] + }, { "name": "Pacman Theme", "tracks": [ @@ -285,6 +309,15 @@ "SouthHeaven:b=108,o=5,d=4:8d#3,8d#4,8a#4,8b4,d#,8b4,d,8a#4,8c#,8a4,8c#,c.,8d#3,8d#4,8a#4,8b4,d#,8b4,d,8a#4,8c#,8a" ] }, + { + "name": "Snap! - Rythm Is A Dancer", + "tracks": [ + "motor1:b=280,o=5,d=16:p,4e,p,4c,p,4d,p,4c,p,4f4,p,4f4,p,4a4,p,4f4,p,4g4,p,4g4,p,4b4,p,4g4,p,4a4,p,4a4,p,4c,p,4a4", + "motor2:b=280,o=4,d=32:8a,p,8a,p,8a,p,8a,p,8a,p,8a,p,8a,p,8a,p,8f,p,8f,p,8f,p,8f,p,8f,p,8f,p,8f,p,8f,p,8g,p,8g,p,8g,p,8g,p,8g,p,8g,p,8g,p,8g,p,8a,p,8a,p,8a,p,8a,p,8a,p,8a,p,8a,8p", + "motor3:b=280,o=4,d=32:8a,p,8a,p,8a,p,8a,p,8a,p,8a,p,8a,p,8a,p,8f,p,8f,p,8f,p,8f,p,8f,p,8f,p,8f,p,8f,p,8g,p,8g,p,8g,p,8g,p,8g,p,8g,p,8g,p,8g,p,8a,p,8a,p,8a,p,8a,p,8a,p,8a,p,8a,8p", + "motor4:b=280,o=5,d=16:4e,p,4c,p,4d,p,4c,p,4f4,p,4f4,p,4a4,p,4f4,p,4g4,p,4g4,p,4b4,p,4g4,p,4a4,p,4a4,p,4c,p,4a4,p" + ] + }, { "name": "Spider Dance - Undertale OST", "tracks": [ @@ -384,6 +417,15 @@ "WE_WISH_YOU:d=2,o=2,b=384:2c#4,16p,2a#4,16p,2a#4,16p,2a#4,16p,2b#5,16p,2b#5,16p,2d#4,16p,2c5,16p,2c5,16p,2c5,16p,2c#5,16p,2c#5,16p,2c#4,16p,2d4,16p,2d4,16p,2f#4,16p,2d#4,16p,2c#4,16p,2c#4,16p,2f#4,16p,2b#4,16p,2c#4,16p,1c#4" ] }, + { + "name":"Windows XP Startup Sound", + "tracks":[ + "WinXPStartup1:b=100,o=7,d=8:4f3.,4g#3.,4d#3", + "WinXPStartup2:b=100,o=7,d=8:4c4.,4d#4.,4a#3", + "WinXPStartup3:b=100,o=7,d=8:4g#4.,4g#4.,4d#4", + "WinXPStartup4:b=100,o=7,d=8:d#5,16d#4,a#4.,g#4,d#4,d#5,4a#4" + ] + }, { "name": "X-Files", "tracks": [ From 05f795101d95d74835fb4355153afe7ba4a10ac1 Mon Sep 17 00:00:00 2001 From: Chris L Date: Tue, 21 Feb 2023 23:25:29 +0100 Subject: [PATCH 09/12] Add label for ESC power rating --- src/translations/en/common.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/translations/en/common.json b/src/translations/en/common.json index 99fab0d29..b3d01ec2a 100644 --- a/src/translations/en/common.json +++ b/src/translations/en/common.json @@ -51,6 +51,7 @@ "changelogClose": "Close", "escDampingMode": "Damping mode (Complementary PWM)", "escBrakingStrength": "Maximum Braking Strength", + "escPowerRating": "ESC Power Rating", "homeExperimental": "This is an experimental web app to configure ESC firmware online.", "homeVersionInfo": "You will always find the latest stable version here. Currently the following firmware are supported:", "homeContributionHeader": "Contributing", From 8c0283cb2d10bfc4754a0f495a26db6488e4cae0 Mon Sep 17 00:00:00 2001 From: Chris Date: Thu, 23 Feb 2023 17:21:37 +0100 Subject: [PATCH 10/12] Feature/332 pwm settings (#333) * Add settings for variable and dynamic PWM #332 * Only check radio before reading via 4 way interface for the first time (not if it has already been connected suessfully) * Allow custom function to sanitize values if the value is depended on other values --- src/Components/Flash/CommonSettings/index.jsx | 8 ++- src/Containers/App/index.jsx | 18 +++--- src/changelog.json | 1 + src/settings.json | 2 +- src/sources/Bluejay/__tests__/index.test.js | 4 +- src/sources/Bluejay/eeprom.js | 8 +++ src/sources/Bluejay/index.js | 4 ++ src/sources/Bluejay/settings.js | 57 +++++++++++++++++++ src/translations/en/common.json | 3 + src/translations/en/hints.json | 4 +- src/utils/helpers/__tests__/Convert.test.js | 2 +- 11 files changed, 97 insertions(+), 14 deletions(-) diff --git a/src/Components/Flash/CommonSettings/index.jsx b/src/Components/Flash/CommonSettings/index.jsx index 49adcf48b..19f7dcd2f 100644 --- a/src/Components/Flash/CommonSettings/index.jsx +++ b/src/Components/Flash/CommonSettings/index.jsx @@ -156,9 +156,15 @@ function CommonSettings({ setting = settingOverride; } } - const value = availableSettings[setting.name]; const hint = i18n.exists(`hints:${setting.name}`) ? t(`hints:${setting.name}`) : null; + // Sanitize a value if it is depended on another value + let value = availableSettings[setting.name]; + if (description.sanitize) { + value = description.sanitize(value, availableSettings); + availableSettings[setting.name] = value; + } + switch (setting.type) { case 'bool': { return ( diff --git a/src/Containers/App/index.jsx b/src/Containers/App/index.jsx index 9037131b2..166921f90 100644 --- a/src/Containers/App/index.jsx +++ b/src/Containers/App/index.jsx @@ -443,13 +443,15 @@ class App extends Component { this.setActions({ isReading: true }); - // Prevent reading if radio is detected to be on - const status = await this.serial.getStatus(); - if(!status.armingDisableFlagsReasons.RX_FAILSAFE) { - this.addLogMessage('radioOn'); - this.setActions({ isReading: false }); - - return; + // Prevent reading if radio is detected to be on and not connected yet + if(!escs.connected) { + const status = await this.serial.getStatus(); + if(!status.armingDisableFlagsReasons.RX_FAILSAFE) { + this.addLogMessage('radioOn'); + this.setActions({ isReading: false }); + + return; + } } try { @@ -780,7 +782,7 @@ class App extends Component { try { let apiVersion = null; - + try { apiVersion = await this.serial.getApiVersion(); } catch(e) { diff --git a/src/changelog.json b/src/changelog.json index eabe30ff2..0ea68e7fd 100644 --- a/src/changelog.json +++ b/src/changelog.json @@ -5,6 +5,7 @@ "Enhancement: More melodies", "Enhancement: Detect if FC is in 4 way interface mode after reconnection and reset", "Enhancement: Detect if radio is on and do not allow reading/flashing", + "Bluejay: New layout including pwm settings", "Bluejay: New layout including power settings" ] }, diff --git a/src/settings.json b/src/settings.json index 112384365..78ee8cfbb 100644 --- a/src/settings.json +++ b/src/settings.json @@ -1,5 +1,5 @@ { - "version": "v0.28.2-dev-1", + "version": "v0.28.2-dev-2", "corsProxy": "https://cors.bubblesort.me/?", "availableLanguages": [ { diff --git a/src/sources/Bluejay/__tests__/index.test.js b/src/sources/Bluejay/__tests__/index.test.js index d7b5c599f..032b49be8 100644 --- a/src/sources/Bluejay/__tests__/index.test.js +++ b/src/sources/Bluejay/__tests__/index.test.js @@ -15,9 +15,9 @@ describe('Bluejay', () => { visibleIf.push(current.visibleIf); } } - - expect(visibleIf.length).toEqual(0); } + + expect(visibleIf.length).toEqual(2); }); it('should handle conditional visibility with custom settings', () => { diff --git a/src/sources/Bluejay/eeprom.js b/src/sources/Bluejay/eeprom.js index 455d9c4e1..65ac7dabe 100644 --- a/src/sources/Bluejay/eeprom.js +++ b/src/sources/Bluejay/eeprom.js @@ -166,6 +166,14 @@ const LAYOUT = { offset: 0x29, size: 1, }, + PWM_THRESHOLD_LOW: { + offset: 0x2A, + size: 1, + }, + PWM_THRESHOLD_HIGH: { + offset: 0x2B, + size: 1, + }, LAYOUT: { offset: 0x40, diff --git a/src/sources/Bluejay/index.js b/src/sources/Bluejay/index.js index b0bc7f9b8..306fffb04 100644 --- a/src/sources/Bluejay/index.js +++ b/src/sources/Bluejay/index.js @@ -31,6 +31,10 @@ class BluejaySource extends GithubSource { let pwm = ''; if(settings.PWM_FREQUENCY && settings.PWM_FREQUENCY !== 0xFF) { pwm = `, ${settings.PWM_FREQUENCY}kHz`; + + if(settings.PWM_FREQUENCY === 192) { + pwm = ', Dynamic PWM'; + } } const name = `${settings.NAME.trim()}`; diff --git a/src/sources/Bluejay/settings.js b/src/sources/Bluejay/settings.js index 255341801..55a2cbff0 100644 --- a/src/sources/Bluejay/settings.js +++ b/src/sources/Bluejay/settings.js @@ -355,6 +355,55 @@ COMMON['206'] = { ], }; +COMMON['207'] = { + base: [ + ...COMMON['206'].base, + { + name: 'PWM_FREQUENCY', + type: 'enum', + label: 'escPwmFrequencyBluejay', + options: [{ + value: 24, + label: '24kHz', + }, { + value: 48, + label: '48kHz', + }, { + value: 96, + label: '96kHz', + }, { + value: 192, + label: 'Dynamic', + }], + }, { + name: 'PWM_THRESHOLD_LOW', + type: 'number', + min: 0, + max: 100, + step: 1, + displayFactor: 100 / 255, + label: 'escPwmThresholdLow', + visibleIf: (settings) => ('PWM_FREQUENCY' in settings) && (parseInt(settings.PWM_FREQUENCY, 10) === 192), + sanitize: (value, settings) => { + if(value > settings.PWM_THRESHOLD_HIGH) { + return settings.PWM_THRESHOLD_HIGH; + } + + return value; + }, + }, { + name: 'PWM_THRESHOLD_HIGH', + type: 'number', + min: 0, + max: 100, + step: 1, + displayFactor: 100 / 255, + label: 'escPwmThresholdHigh', + visibleIf: (settings) => ('PWM_FREQUENCY' in settings) && (parseInt(settings.PWM_FREQUENCY, 10) === 192), + }, + ], +}; + const INDIVIDUAL_SETTINGS_200 = [{ name: 'MOTOR_DIRECTION', type: 'enum', @@ -413,6 +462,7 @@ const INDIVIDUAL_SETTINGS_203 = [ ]; const INDIVIDUAL = { + '207': { base: INDIVIDUAL_SETTINGS_203 }, '206': { base: INDIVIDUAL_SETTINGS_203 }, '205': { base: INDIVIDUAL_SETTINGS_203 }, '204': { base: INDIVIDUAL_SETTINGS_203 }, @@ -476,6 +526,13 @@ DEFAULTS['206'] = { // v0.19 POWER_RATING: 2, }; +DEFAULTS['207'] = { // v0.20 + ...DEFAULTS['206'], + PWM_FREQUENCY: 24, + PWM_THRESHOLD_LOW: 100, + PWM_THRESHOLD_HIGH: 150, +}; + const settings = { DEFAULTS, INDIVIDUAL, diff --git a/src/translations/en/common.json b/src/translations/en/common.json index b3d01ec2a..1035b6d66 100644 --- a/src/translations/en/common.json +++ b/src/translations/en/common.json @@ -89,6 +89,9 @@ "escStallProtection": "Stall Protection", "escTimingAdvance": "Timing Advance [degrees]", "escPwmFrequency": "PWM Frequency [kHz]", + "escPwmFrequencyBluejay": "PWM Frequency", + "escPwmThresholdLow": "PWM low threshold", + "escPwmThresholdHigh": "PWM high threshold", "escMotorKv": "Motor [Kv]", "escMotorPoles": "Motor Poles", "escBeepVolume": "Beeper Volume", diff --git a/src/translations/en/hints.json b/src/translations/en/hints.json index 63a8eb858..b07b2bc59 100644 --- a/src/translations/en/hints.json +++ b/src/translations/en/hints.json @@ -35,5 +35,7 @@ "SINE_MODE_RANGE": "The amount of throttle in percent used for sinusoidal startup.", "BRAKE_STRENGTH": "The level of hold brake applied when brake on stop is enabled.", "BRAKING_STRENGTH": "Maximum amount of braking applied (complementary PWM duty cycle).", - "POWER_RATING": "If using EDT on 1S setups, the temperature readings will be off if this is not set to 1S. All setups with 2S and more do not need to change this setting." + "POWER_RATING": "If using EDT on 1S setups, the temperature readings will be off if this is not set to 1S. All setups with 2S and more do not need to change this setting.", + "PWM_THRESHOLD_LOW": "Below this throttle, a 96kHz PWM signal will be used. Between low and high, a 48kHz PWM signal will beused.", + "PWM_THRESHOLD_HIGH": "Above this throttle, a 24kHz PWM signal will be used." } diff --git a/src/utils/helpers/__tests__/Convert.test.js b/src/utils/helpers/__tests__/Convert.test.js index 71dc1279f..a5c30abba 100644 --- a/src/utils/helpers/__tests__/Convert.test.js +++ b/src/utils/helpers/__tests__/Convert.test.js @@ -12,7 +12,7 @@ test('settingsUint8Array', () => { const settingsObject = Convert.arrayToSettingsObject(settingsArray, layout); const keys = Object.keys(settingsObject); - expect(keys.length).toEqual(46); + expect(keys.length).toEqual(48); layout.MAIN_REVISION.size = 0; expect(() => Convert.arrayToSettingsObject(settingsArray, layout)).toThrow(); From 7dc592283c49305a0d80c5b1c30552181b7bcec2 Mon Sep 17 00:00:00 2001 From: Chris Date: Thu, 23 Feb 2023 21:36:07 +0100 Subject: [PATCH 11/12] New Crowdin updates (#321) * Updated translations --- src/translations/cs/common.json | 5 +++++ src/translations/cs/hints.json | 5 ++++- src/translations/cs/log.json | 2 ++ src/translations/de/common.json | 5 +++++ src/translations/de/hints.json | 7 +++++-- src/translations/de/log.json | 2 ++ src/translations/es/common.json | 5 +++++ src/translations/es/hints.json | 7 +++++-- src/translations/es/log.json | 2 ++ src/translations/es/settings.json | 2 +- src/translations/fr/common.json | 5 +++++ src/translations/fr/hints.json | 7 +++++-- src/translations/fr/log.json | 2 ++ src/translations/it/common.json | 5 +++++ src/translations/it/hints.json | 7 +++++-- src/translations/it/log.json | 2 ++ src/translations/pl/common.json | 5 +++++ src/translations/pl/hints.json | 7 +++++-- src/translations/pl/log.json | 2 ++ src/translations/tr/common.json | 5 +++++ src/translations/tr/hints.json | 7 +++++-- src/translations/tr/log.json | 2 ++ src/translations/zh-CN/common.json | 5 +++++ src/translations/zh-CN/hints.json | 7 +++++-- src/translations/zh-CN/log.json | 2 ++ src/translations/zh-TW/common.json | 5 +++++ src/translations/zh-TW/hints.json | 7 +++++-- src/translations/zh-TW/log.json | 2 ++ 28 files changed, 108 insertions(+), 18 deletions(-) diff --git a/src/translations/cs/common.json b/src/translations/cs/common.json index fff1b573d..6791e8cdc 100644 --- a/src/translations/cs/common.json +++ b/src/translations/cs/common.json @@ -46,10 +46,12 @@ "escButtonWrite": "Zápis nastavení", "buttonCancel": "Zrušit", "escButtonSelect": "Nahrát", + "escPowerRading": "Jmenovitý výkon", "defaultChangelogTitle": "Seznam Změn", "changelogClose": "Zavřít", "escDampingMode": "Tlumící režim (doplňkový PWM)", "escBrakingStrength": "Maximální brzdná síla", + "escPowerRating": "ESC Power Rating", "homeExperimental": "Toto je experimentální webová aplikace pro online konfiguraci firmwaru ESC.", "homeVersionInfo": "Zde vždy najdete nejnovější stabilní verzi. V současné době je podporován následující firmware:", "homeContributionHeader": "Přispívání", @@ -87,6 +89,9 @@ "escStallProtection": "Ochrana proti zablokování", "escTimingAdvance": "Předstih [degrees]", "escPwmFrequency": "Frekvence PWM [kHz]", + "escPwmFrequencyBluejay": "PWM Frequency", + "escPwmThresholdLow": "PWM low threshold", + "escPwmThresholdHigh": "PWM high threshold", "escMotorKv": "Motor [Kv]", "escMotorPoles": "Póly motoru", "escBeepVolume": "Hlasitost pípání", diff --git a/src/translations/cs/hints.json b/src/translations/cs/hints.json index 225a1f79d..5f3acca99 100644 --- a/src/translations/cs/hints.json +++ b/src/translations/cs/hints.json @@ -34,5 +34,8 @@ "USE_HALL_SENSORS": "Pro regulátory otáček pro použití se senzorovými motory se vstupem Hallova čidla.", "SINE_MODE_RANGE": "Množství plynu v procentech použité pro sinusoidální startování.", "BRAKE_STRENGTH": "Úroveň přidržovací brzdy, která se použije při zapnutí brzdění.", - "BRAKING_STRENGTH": "Maximální brzdná síla (doplňkový brzdný cyklus PWM)." + "BRAKING_STRENGTH": "Maximální brzdná síla (doplňkový brzdný cyklus PWM).", + "POWER_RATING": "Pokud používáte EDT při nastaveních 1S, budou hodnoty teploty vypnuty, pokud nebudou nastaveny na 1S. Všechna nastavení s 2S a více není třeba měnit toto nastavení.", + "PWM_THRESHOLD_LOW": "Below this throttle, a 96kHz PWM signal will be used. Between low and high, a 48kHz PWM signal will beused.", + "PWM_THRESHOLD_HIGH": "Above this throttle, a 24kHz PWM signal will be used." } diff --git a/src/translations/cs/log.json b/src/translations/cs/log.json index 1dc62f0ed..274d378d2 100644 --- a/src/translations/cs/log.json +++ b/src/translations/cs/log.json @@ -9,6 +9,7 @@ "mspBuildInfo": "Spuštěný firmware byl vydán: {{info}}", "mspBoardInfo": "Deska: {{identifier}}, verze: {{version}}", "mspUid": "Obdrženo jedinečné ID zařízení - 0x{{id}}", + "radioOn": "Bylo zjištěno, že vaše rádio je zapnuto! Čtení a nahrávání je vypnuto. Vypněte rádio a zkuste to znovu.", "mspFcInfo": "Informace o letovém ovladači, identifikátor: {{id}} verze: {{version}}", "portUsed": "Port je již používán jinou aplikací - zkuste se znovu připojit", "fourWayFailed": "Nelze povolit 4 směrové rozhraní - znovu připojit řídící jednotku", @@ -21,6 +22,7 @@ "fetchingFilesFailed": "Nepodařilo se načíst soubory pro {{name}}", "readEscFailed": "Selhalo čtení ESC {{index}}", "resetEscFailed": "Resetování ESC {{index}} selhalo", + "resetEscFailedPowerCycle": "Failed resetting ESC {{index}} - power cycle and try again", "writeSettingsFailed": "Nepodařilo se zapsat nastavení do ESC {{index}}", "restoreSettingsFailed": "Obnovení výchozích nastavení na ESC {{index}} se nezdařilo", "getFileFailed": "Nelze získat soubor pro nahrávání.", diff --git a/src/translations/de/common.json b/src/translations/de/common.json index 3b8ddc7c8..3107d6df2 100644 --- a/src/translations/de/common.json +++ b/src/translations/de/common.json @@ -46,10 +46,12 @@ "escButtonWrite": "Einstellungen schreiben", "buttonCancel": "Abbrechen", "escButtonSelect": "Flashen", + "escPowerRading": "Eingangsspannung", "defaultChangelogTitle": "Changelog", "changelogClose": "Schließen", "escDampingMode": "Dämpfungsmodus (komplementäres PWM)", "escBrakingStrength": "Maximale Bremsstärke", + "escPowerRating": "Eingangsspannung", "homeExperimental": "Dies ist eine experimentelle Web-App, um ESC-Firmware online zu konfigurieren.", "homeVersionInfo": "Du findest hier immer die aktuellste Version. Im Moment werden folgende Firmwares unterstützt:", "homeContributionHeader": "Beitragen", @@ -87,6 +89,9 @@ "escStallProtection": "Blockierschutz", "escTimingAdvance": "Motor Timing [Grad]", "escPwmFrequency": "PWM-Frequenz [kHz]", + "escPwmFrequencyBluejay": "PWM-Frequenz", + "escPwmThresholdLow": "PWM unterer Schwellenwert", + "escPwmThresholdHigh": "PWM oberer Schwellenwert", "escMotorKv": "Motor [Kv]", "escMotorPoles": "Motor Pole", "escBeepVolume": "Beacon Lautstärke", diff --git a/src/translations/de/hints.json b/src/translations/de/hints.json index 3976d98ee..80dcd7cb6 100644 --- a/src/translations/de/hints.json +++ b/src/translations/de/hints.json @@ -29,10 +29,13 @@ "SERVO_NEUTRAL": "Im bidirektionalen Modus ist dies die Null-Position in Mikrosekunden.", "SERVO_DEAD_BAND": "Wird auf beiden Seiten der Servo Neutralstellung angewendet. Alles in diesem Bereich wird als Null interpretiert.", "LOW_VOLTAGE_CUTOFF": "Wenn aktiviert, wird die Stromversorgung zum Motor getrennt falls die Versorgungsspannung unter einen bestimmten Wert fällt.", - "LOW_VOLTAGE_THRESHOLD": "Spannungswert pro Zelle bei dem der Strom unterbrochen wird. Einheit in Volt x 100. Um bei 3.3V abzuschalten, gib 330 ein.", + "LOW_VOLTAGE_THRESHOLD": "Zellenspannung bei der die Stromzufuhr unterbrochen wird. Einheiten in 10mV. Um beispielsweise bei 3.3V zu unterbrechen muss 330 eingegeben werden.", "RC_CAR_REVERSING": "Nur für Bodenfahrzeuge. Überschreibt die Benutzereinstellungen und versetzt den ESC in den bidirektionalen Modus. Mit Doppeltipp, um den Motor rückwärts zu drehen.", "USE_HALL_SENSORS": "Für ESCs mit Hall-Sensoreingang, wenn Motoren mit Drehzahlgeber verwendet werden.", "SINE_MODE_RANGE": "Schub in Prozent für sinusförmigen Startup.", "BRAKE_STRENGTH": "Die Menge an Bremskraft die angewendet wird wenn \"Beim Stoppen der Motoren bremsen\" aktiviert ist.", - "BRAKING_STRENGTH": "Maximale Bremsstärke (komplementärer PWM-Arbeitszyklus)." + "BRAKING_STRENGTH": "Maximale Bremsstärke (komplementärer PWM-Arbeitszyklus).", + "POWER_RATING": "Bei Verwendung von EDT auf 1S Setups sind die Temperaturmessungen ausgeschaltet, falls die Einstellung nicht auf 1S gesetzt ist. Alle Setups mit 2S und mehr brauchen diese Einstellung nicht ändern.", + "PWM_THRESHOLD_LOW": "Unterhalb dieser Gasstellung wird mit 96kHz moduliert. Zwischen unteren und oberen Schwellenwert mit 48kHz.", + "PWM_THRESHOLD_HIGH": "Bei höherer Gasstellung wird eine PWM Frequenz von 24kHz verwendet." } diff --git a/src/translations/de/log.json b/src/translations/de/log.json index 15c419045..1209507d9 100644 --- a/src/translations/de/log.json +++ b/src/translations/de/log.json @@ -9,6 +9,7 @@ "mspBuildInfo": "Aktuelle Firmware veröffentlicht am: {{info}}", "mspBoardInfo": "Board: {{identifier}}, Version: {{version}}", "mspUid": "Eindeutige ID erhalten - 0x{{id}}", + "radioOn": "Deine Fernsteuerung wurde als eingeschalten erkannt. Bitte schalte diese aus und versuche es erneut.", "mspFcInfo": "Flug-controller Info, ID: {{id}} Version: {{version}}", "portUsed": "Port wird möglicherweise schon von einer anderen Anwendung verwendet - bitte neu anstecken", "fourWayFailed": "4-way interface konnte nicht aktiviert werden - bitte neu anstecken", @@ -21,6 +22,7 @@ "fetchingFilesFailed": "Fehler beim Abrufen der Dateien für {{name}}", "readEscFailed": "ESC {{index}} konnte nicht gelesen werden", "resetEscFailed": "Reset von ESC {{index}} fehlgeschlagen", + "resetEscFailedPowerCycle": "Fehler beim Zurücksetzen des ESC {{index}} - Stromzufuhr unterbrechen, wiederherstellen und erneut versuchen", "writeSettingsFailed": "Fehler beim Schreiben der Einstellungen auf ESC {{index}}", "restoreSettingsFailed": "Fehler beim Wiederherstellen der Standardeinstellungen auf ESC {{index}}", "getFileFailed": "Konnte Datei zum flashen nicht holen.", diff --git a/src/translations/es/common.json b/src/translations/es/common.json index d1e4a5c4f..85f246ed3 100644 --- a/src/translations/es/common.json +++ b/src/translations/es/common.json @@ -46,10 +46,12 @@ "escButtonWrite": "Escribir Configuración", "buttonCancel": "Cancelar", "escButtonSelect": "Flashear", + "escPowerRading": "Potencia nominal", "defaultChangelogTitle": "Registro de cambios", "changelogClose": "Cerrar", "escDampingMode": "Modo de amortiguación (PWM Complementario)", "escBrakingStrength": "Fuerza Máxima de Frenado", + "escPowerRating": "ESC Power Rating", "homeExperimental": "Esta es una aplicación web experimental para configurar ESC en línea.", "homeVersionInfo": "Siempre encontrará la última versión estable aquí. Actualmente se soportan los siguientes firmware:", "homeContributionHeader": "Contribuir", @@ -87,6 +89,9 @@ "escStallProtection": "Protección de Estanque", "escTimingAdvance": "Avance del Timing [degrees]", "escPwmFrequency": "Frecuencia de PWM [kHz]", + "escPwmFrequencyBluejay": "PWM Frequency", + "escPwmThresholdLow": "PWM low threshold", + "escPwmThresholdHigh": "PWM high threshold", "escMotorKv": "Motor [Kv]", "escMotorPoles": "Polos de Motor", "escBeepVolume": "Volumen del Beeper", diff --git a/src/translations/es/hints.json b/src/translations/es/hints.json index e0a7a8ec8..9cc42f8b8 100644 --- a/src/translations/es/hints.json +++ b/src/translations/es/hints.json @@ -29,10 +29,13 @@ "SERVO_NEUTRAL": "Para los modos bidireccionales esta es la posición cero del acelerador en microsegundos.", "SERVO_DEAD_BAND": "Aplicado a ambos lados del Neutral, cualquier cosa en este rango se considera de cero acelerador.", "LOW_VOLTAGE_CUTOFF": "Cuando está habilitado cortará energía al motor cuando el voltaje caiga por debajo del umbral de baja tensión.", - "LOW_VOLTAGE_THRESHOLD": "Nivel de voltaje por celda donde se corta. Unidades en voltios * 100. Para cortar a 3.3v introduzca 330 por ejemplo.", + "LOW_VOLTAGE_THRESHOLD": "Nivel de voltaje por celda donde se corta corriente. Unidades en voltios * 100. Para cortar a 3.3v introduzca 330 por ejemplo.", "RC_CAR_REVERSING": "Solo para vehículos terrestres. Anula la configuración del usuario y coloca los ESC en modo bidireccional con doble toque para controlar el tipo inverso.", "USE_HALL_SENSORS": "Para usar controladores de velocidad con sensor Hall para el uso de motores con sensores.", "SINE_MODE_RANGE": "La cantidad de acelerador en porcentaje usada para el arranque sinusoidal.", "BRAKE_STRENGTH": "El nivel de retención del freno aplicado cuando brake on stop está activado.", - "BRAKING_STRENGTH": "Máxima cantidad de frenadas aplicadas (ciclo de trabajo complementario de PWM)." + "BRAKING_STRENGTH": "Máxima cantidad de frenadas aplicadas (ciclo de trabajo complementario de PWM).", + "POWER_RATING": "Si se usa EDT en configuraciones 1S, las lecturas de temperatura se apagarán si no se establece en 1S. Todas las configuraciones con 2S y más no necesitan cambiar esta configuración.", + "PWM_THRESHOLD_LOW": "Below this throttle, a 96kHz PWM signal will be used. Between low and high, a 48kHz PWM signal will beused.", + "PWM_THRESHOLD_HIGH": "Above this throttle, a 24kHz PWM signal will be used." } diff --git a/src/translations/es/log.json b/src/translations/es/log.json index 25c2fe595..f3e4cb50e 100644 --- a/src/translations/es/log.json +++ b/src/translations/es/log.json @@ -9,6 +9,7 @@ "mspBuildInfo": "Ejecutando firmware liberado el: {{info}}", "mspBoardInfo": "Placa: {{identifier}}, versión: {{version}}", "mspUid": "ID único del dispositivo recibido - 0x{{id}}", + "radioOn": "¡Se ha detectado que tu radio está activada! Lectura y Flasheo desactivados. Apaga tu radio e inténtalo de nuevo.", "mspFcInfo": "Información del controlador de vuelo, identificador: {{id}} versión: {{version}}", "portUsed": "El puerto ya está en uso por otra aplicación - intente volver a conectar", "fourWayFailed": "No se pudo habilitar la interfaz de 4 vías - vuelve a conectar el controlador de vuelo", @@ -21,6 +22,7 @@ "fetchingFilesFailed": "No se pudo obtener archivos para {{name}}", "readEscFailed": "Error al leer el ESC {{index}}", "resetEscFailed": "Error al resetear el ESC {{index}}", + "resetEscFailedPowerCycle": "Failed resetting ESC {{index}} - power cycle and try again", "writeSettingsFailed": "Error al escribir ajustes en el ESC {{index}}", "restoreSettingsFailed": "Error al restaurar la configuración predeterminada en el ESC {{index}}", "getFileFailed": "No se pudo obtener el archivo para flashear.", diff --git a/src/translations/es/settings.json b/src/translations/es/settings.json index a8ee37d6d..7c7a4fab5 100644 --- a/src/translations/es/settings.json +++ b/src/translations/es/settings.json @@ -13,6 +13,6 @@ "enableAdvancedHint": "Añade ajustes avanzados como volcar el firmware.", "unstableVersions": "Mostrar pre-lanzamientos de firmware", "unstableVersionsHint": "Mostrar versiones inestables del firmware y pre-lanzamientos", - "skipCache": "Ignorar caché", + "skipCache": "Omitir caché", "skipCacheHint": "Activa esta opción si no ves la última versión en la selección del firmware." } diff --git a/src/translations/fr/common.json b/src/translations/fr/common.json index dc59550c5..9ead5118c 100644 --- a/src/translations/fr/common.json +++ b/src/translations/fr/common.json @@ -46,10 +46,12 @@ "escButtonWrite": "Écrire les paramètres", "buttonCancel": "Annuler", "escButtonSelect": "Installer", + "escPowerRading": "Power Rating", "defaultChangelogTitle": "Journal des modifications", "changelogClose": "Fermer", "escDampingMode": "Damping mode (Complementary PWM)", "escBrakingStrength": "Puissance de freinage maximum", + "escPowerRating": "ESC Power Rating", "homeExperimental": "Ceci est une application web expérimentale pour configurer le micrologiciel des ESC en ligne.", "homeVersionInfo": "Vous trouverez toujours ici la dernière version stable. Pour le moment ces micrologiciels sont supportés : ", "homeContributionHeader": "Contributions", @@ -87,6 +89,9 @@ "escStallProtection": "Stall Protection", "escTimingAdvance": "Timing Advance [degrees]", "escPwmFrequency": "PWM Frequency [kHz]", + "escPwmFrequencyBluejay": "PWM Frequency", + "escPwmThresholdLow": "PWM low threshold", + "escPwmThresholdHigh": "PWM high threshold", "escMotorKv": "Moteur [Kv]", "escMotorPoles": "Pôles moteur", "escBeepVolume": "Volume du bipeur", diff --git a/src/translations/fr/hints.json b/src/translations/fr/hints.json index f3bacdf92..3d6c7923c 100644 --- a/src/translations/fr/hints.json +++ b/src/translations/fr/hints.json @@ -29,10 +29,13 @@ "SERVO_NEUTRAL": "Postion neutre pour le mode bidirectionnel, en microsecondes.", "SERVO_DEAD_BAND": "Appliqué de chaque côté du neutre servo. Tout signal inclus dans cette bande est considéré comme zéro gaz.", "LOW_VOLTAGE_CUTOFF": "Quand activé, coupera l'alimentation du moteur lorsque la tension descend en dessous du seuil de basse tension.", - "LOW_VOLTAGE_THRESHOLD": "Niveau de tension par cellule où l'alimentation est coupée. Unités en volts * 100. Pour couper à 3,3v entrer 330 par exemple.", + "LOW_VOLTAGE_THRESHOLD": "Voltage level per cell where power is cut. Units in volts * 100. To cut off at 3.3v enter 330 for example.", "RC_CAR_REVERSING": "Pour véhicules terrestre uniquement. Remplace les paramètres de l'utilisateur et passe l'ESC en mode bidirectionnel avec double appui pour inverser le type de contrôle.", "USE_HALL_SENSORS": "For speed controllers with a hall sensor input to be used with sensored motors.", "SINE_MODE_RANGE": "The amount of throttle in percent used for sinusoidal startup.", "BRAKE_STRENGTH": "The level of hold brake applied when brake on stop is enabled.", - "BRAKING_STRENGTH": "Maximum amount of braking applied (complementary PWM duty cycle)." + "BRAKING_STRENGTH": "Maximum amount of braking applied (complementary PWM duty cycle).", + "POWER_RATING": "If using EDT on 1S setups, the temperature readings will be off if this is not set to 1S. All setups with 2S and more do not need to change this setting.", + "PWM_THRESHOLD_LOW": "Below this throttle, a 96kHz PWM signal will be used. Between low and high, a 48kHz PWM signal will beused.", + "PWM_THRESHOLD_HIGH": "Above this throttle, a 24kHz PWM signal will be used." } diff --git a/src/translations/fr/log.json b/src/translations/fr/log.json index 87a77f0a1..68399d6cf 100644 --- a/src/translations/fr/log.json +++ b/src/translations/fr/log.json @@ -9,6 +9,7 @@ "mspBuildInfo": "Fonctionne avec le micrologiciel sorti le : {{info}}", "mspBoardInfo": "Carte : {{identifier}}, version : {{version}}", "mspUid": "ID unique du périphérique reçue - 0x{{id}}", + "radioOn": "Your radio has been detected to be on! Reading and Flashing disabled. Turn off your radio and try again.", "mspFcInfo": "Infos de la carte de vol, identifiant : {{id}} version : {{version}}", "portUsed": "Le port est déjà utilisé par une autre application - essayez de reconnecter", "fourWayFailed": "Impossible d'activer l'interface 4 voies - reconnecter le contrôleur de vol", @@ -21,6 +22,7 @@ "fetchingFilesFailed": "Échec de la récupération des fichiers pour {{name}}", "readEscFailed": "Échec de la lecture de l'ESC {{index}}", "resetEscFailed": "Échec de la réinitialisation de l'ESC {{index}}", + "resetEscFailedPowerCycle": "Failed resetting ESC {{index}} - power cycle and try again", "writeSettingsFailed": "Échec de l'écriture des paramètres dans l'ESC {{index}}", "restoreSettingsFailed": "Échec de la restauration des paramètres par défaut de l'ESC {{index}}", "getFileFailed": "Impossible d'ouvrir le fichier pour l'écriture.", diff --git a/src/translations/it/common.json b/src/translations/it/common.json index 8ac0ad89d..cd6368f1e 100644 --- a/src/translations/it/common.json +++ b/src/translations/it/common.json @@ -46,10 +46,12 @@ "escButtonWrite": "Scrivi Impostazioni", "buttonCancel": "Cancella", "escButtonSelect": "Flash", + "escPowerRading": "Livello Potenza", "defaultChangelogTitle": "Log modifiche", "changelogClose": "Chiudi", "escDampingMode": "Modalità attenuazione (PWM Complementare)", "escBrakingStrength": "Forza Frenante Massima", + "escPowerRating": "ESC Power Rating", "homeExperimental": "Questa è un'app web sperimentale per configurare il firmware ESC online.", "homeVersionInfo": "Qui troverai sempre l'ultima versione stabile. Attualmente sono supportati i seguenti firmware:", "homeContributionHeader": "Contribuisci", @@ -87,6 +89,9 @@ "escStallProtection": "Protezione Stallo", "escTimingAdvance": "Avanzamento Timing [gradi]", "escPwmFrequency": "Frequenza PWM [kHz]", + "escPwmFrequencyBluejay": "PWM Frequency", + "escPwmThresholdLow": "PWM low threshold", + "escPwmThresholdHigh": "PWM high threshold", "escMotorKv": "Motore [Kv]", "escMotorPoles": "Poli Motore", "escBeepVolume": "Volume Beeper", diff --git a/src/translations/it/hints.json b/src/translations/it/hints.json index e9d09ca13..aaf4cee44 100644 --- a/src/translations/it/hints.json +++ b/src/translations/it/hints.json @@ -29,10 +29,13 @@ "SERVO_NEUTRAL": "Per le modalità bidirezionali questa è la posizione di zero acceleratore in microsecondi.", "SERVO_DEAD_BAND": "Applicato su entrambi i lati del Servo Neutral, qualsiasi cosa in questa gamma è considerata a zero acceleratore.", "LOW_VOLTAGE_CUTOFF": "Quando abilitato taglierà energia al motore quando la tensione scende al di sotto della soglia di bassa tensione.", - "LOW_VOLTAGE_THRESHOLD": "Livello di tensione per cella in cui viene interrotta l'alimentazione. Unità in volt * 100. Per interrompere a 3.3v immettere 330 ad esempio.", + "LOW_VOLTAGE_THRESHOLD": "Livello di tensione per cella per cui viene interrotta l'alimentazione. Ad esempio per interrompere a 3.3v, inserire 330 (unità in volt * 100).", "RC_CAR_REVERSING": "Solo per i veicoli di terra. Sovrascrive le impostazioni dell'utente e posiziona ESC in modalità bidirezionale con doppio tocco per invertire il tipo di controllo.", "USE_HALL_SENSORS": "Per i regolatori di velocità con sensore d'ingresso hall da utilizzare con motori sensored.", "SINE_MODE_RANGE": "La quantità di acceleratore in percentuale utilizzata per l'avvio sinusoidale.", "BRAKE_STRENGTH": "Il livello di tenuta del freno applicato quando il freno è attivato su stop.", - "BRAKING_STRENGTH": "Livello massimo di frenata applicata (ciclo di servizio PWM complementare)." + "BRAKING_STRENGTH": "Livello massimo di frenata applicata (ciclo di servizio PWM complementare).", + "POWER_RATING": "Se si utilizza EDT su impostazioni 1S, le letture della temperatura saranno disattivate se questa non è impostata su 1S. Tutte le configurazioni con 2S o più non hanno bisogno di cambiare questa impostazione.", + "PWM_THRESHOLD_LOW": "Below this throttle, a 96kHz PWM signal will be used. Between low and high, a 48kHz PWM signal will beused.", + "PWM_THRESHOLD_HIGH": "Above this throttle, a 24kHz PWM signal will be used." } diff --git a/src/translations/it/log.json b/src/translations/it/log.json index fdab2f64d..0472a86bd 100644 --- a/src/translations/it/log.json +++ b/src/translations/it/log.json @@ -9,6 +9,7 @@ "mspBuildInfo": "Firmware attuale rilasciato il: {{info}}", "mspBoardInfo": "Board: {{identifier}}, version: {{version}}", "mspUid": "ID unico dispositivo ricevuto - 0x{{id}}", + "radioOn": "La tua radio è stata rilevata come accesa! Lettura e Flash disabilitati. Spegni la tua radio e riprova.", "mspFcInfo": "Informazioni sul controllore di volo, identificatore: {{id}} versione: {{version}}", "portUsed": "Porta già in uso da un'altra applicazione - prova a riconnetterti", "fourWayFailed": "Impossibile abilitare l'interfaccia a 4 vie - riconnettere il controllore di volo", @@ -21,6 +22,7 @@ "fetchingFilesFailed": "Recupero file per {{name}} fallito", "readEscFailed": "Lettura ESC {{index}} fallita", "resetEscFailed": "Ripristino ESC {{index}} fallito", + "resetEscFailedPowerCycle": "Reset dell' ESC {{index}} fallito - riprova disconnettendo e riconnettendo l'alimentazione", "writeSettingsFailed": "Impossibile scrivere le impostazioni su ESC {{index}}", "restoreSettingsFailed": "Impossibile ripristinare le impostazioni predefinite su ESC {{index}}", "getFileFailed": "Impossibile ottenere il file da flashare.", diff --git a/src/translations/pl/common.json b/src/translations/pl/common.json index 76e5a3da7..71d84c756 100644 --- a/src/translations/pl/common.json +++ b/src/translations/pl/common.json @@ -46,10 +46,12 @@ "escButtonWrite": "Zapisz ustawienia", "buttonCancel": "Anuluj", "escButtonSelect": "Flash", + "escPowerRading": "Power Rating", "defaultChangelogTitle": "Lista zmian", "changelogClose": "Zamknij", "escDampingMode": "Tryb tłumienia (Uzupełniający PWM)", "escBrakingStrength": "Maksymalna siła hamowania", + "escPowerRating": "ESC Power Rating", "homeExperimental": "To jest eksperymentalna aplikacja internetowa do konfiguracji oprogramowania ESC online.", "homeVersionInfo": "Tutaj zawsze znajdziesz najnowszą stabilną wersję. Obecnie obsługiwane są następujące rodzaje oprogramowania sprzętowego:", "homeContributionHeader": "Współpraca", @@ -87,6 +89,9 @@ "escStallProtection": "Ochrona przed przeciągnięciem", "escTimingAdvance": "Przesunięcie faz [degrees]", "escPwmFrequency": "Częstotliwość PWM [kHz]", + "escPwmFrequencyBluejay": "PWM Frequency", + "escPwmThresholdLow": "PWM low threshold", + "escPwmThresholdHigh": "PWM high threshold", "escMotorKv": "Silnik [Kv]", "escMotorPoles": "Bieguny silnika", "escBeepVolume": "Głośność beeper-a", diff --git a/src/translations/pl/hints.json b/src/translations/pl/hints.json index bd1d7f212..3af2e5a81 100644 --- a/src/translations/pl/hints.json +++ b/src/translations/pl/hints.json @@ -29,10 +29,13 @@ "SERVO_NEUTRAL": "Dla trybów dwukierunkowych jest to pozycja zerowa przepustnicy w mikrosekundach.", "SERVO_DEAD_BAND": "W przypadku zastosowania po obu stronach Servo Neutral wszystko w tym zakresie jest uważane za zerową przepustnicę.", "LOW_VOLTAGE_CUTOFF": "Gdy włączone, zmniejszy się moc silnika, gdy napięcie spadnie poniżej progu niskiego napięcia.", - "LOW_VOLTAGE_THRESHOLD": "Poziom napięcia na komórkę, w której pobór mocy jest niwelowany. Jednostki w woltach * 100. Aby odciąć od wartości 3.3v należy na przykład wprowadzić 330.", + "LOW_VOLTAGE_THRESHOLD": "Voltage level per cell where power is cut. Units in volts * 100. To cut off at 3.3v enter 330 for example.", "RC_CAR_REVERSING": "Wyłącznie do pojazdów naziemnych. Zastępuje ustawienia użytkownika i umieszcza ESC w trybie dwukierunkowym z podwójnym dotknięciem, aby odwrócić kontrolę typu.", "USE_HALL_SENSORS": "Do regulatorów prędkości z wejściem czujnika Halla do stosowania z silnikami z czujnikami.", "SINE_MODE_RANGE": "Ilość przepustnicy w procentach użyta do sinusoidalnego rozruchu.", "BRAKE_STRENGTH": "Poziom wstrzymania hamulca zaciągniętego, gdy hamulec przy zatrzymaniu jest aktywny.", - "BRAKING_STRENGTH": "Maksymalna siła hamowania (dodatkowy cykl pracy PWM)." + "BRAKING_STRENGTH": "Maksymalna siła hamowania (dodatkowy cykl pracy PWM).", + "POWER_RATING": "If using EDT on 1S setups, the temperature readings will be off if this is not set to 1S. All setups with 2S and more do not need to change this setting.", + "PWM_THRESHOLD_LOW": "Below this throttle, a 96kHz PWM signal will be used. Between low and high, a 48kHz PWM signal will beused.", + "PWM_THRESHOLD_HIGH": "Above this throttle, a 24kHz PWM signal will be used." } diff --git a/src/translations/pl/log.json b/src/translations/pl/log.json index cb2adcc89..0ce26d825 100644 --- a/src/translations/pl/log.json +++ b/src/translations/pl/log.json @@ -9,6 +9,7 @@ "mspBuildInfo": "Aktualne oprogramowanie firmware wydane w dniu: {{info}}", "mspBoardInfo": "Płyta: {{identifier}}, wersja: {{version}}", "mspUid": "Otrzymano unikalny ID urządzenia - 0x{{id}}", + "radioOn": "Your radio has been detected to be on! Reading and Flashing disabled. Turn off your radio and try again.", "mspFcInfo": "Informacje o kontrolerze lotu, identyfikator: {{id}} wersja: {{version}}", "portUsed": "Port jest już używany przez inną aplikację - spróbuj ponownie połączyć", "fourWayFailed": "Nie można włączyć 4 kierunkowego interfejsu - podłącz ponownie kontroler lotu", @@ -21,6 +22,7 @@ "fetchingFilesFailed": "Nie udało się pobrać plików dla {{name}}", "readEscFailed": "Nie udało się odczytywać ESC {{index}}", "resetEscFailed": "Resetowanie ESC {{index}} nie powiodło się", + "resetEscFailedPowerCycle": "Failed resetting ESC {{index}} - power cycle and try again", "writeSettingsFailed": "Zapisywanie ustawień do ESC {{index}} nie powiodło się", "restoreSettingsFailed": "Nie udało się przywrócić domyślnych ustawień na ESC {{index}}", "getFileFailed": "Nie można otworzyć pliku do zapisu.", diff --git a/src/translations/tr/common.json b/src/translations/tr/common.json index 3f86268f2..0f8295097 100644 --- a/src/translations/tr/common.json +++ b/src/translations/tr/common.json @@ -46,10 +46,12 @@ "escButtonWrite": "Ayarı Kaydet", "buttonCancel": "İptal", "escButtonSelect": "Kaydet", + "escPowerRading": "Power Rating", "defaultChangelogTitle": "Değişim günlüğü", "changelogClose": "Kapat", "escDampingMode": "Sönümleme modu (Complementary PWM)", "escBrakingStrength": "Maksimum Frenleme Kuvveti", + "escPowerRating": "ESC Power Rating", "homeExperimental": "Bu site deneysel bir online ESC donanım yazılımı yapılandırma uygulamasıdır.", "homeVersionInfo": "Her zaman son kararlı sürüme burada bulabilirsiniz. Şimdilik aşağıdaki donanım yazılımları desteklenmektedir:", "homeContributionHeader": "Katkıda Bulunanlar", @@ -87,6 +89,9 @@ "escStallProtection": "Gecikme Koruması", "escTimingAdvance": "Zamanlama Avansı [degrees]", "escPwmFrequency": "PWM Frekansı [kHz]", + "escPwmFrequencyBluejay": "PWM Frequency", + "escPwmThresholdLow": "PWM low threshold", + "escPwmThresholdHigh": "PWM high threshold", "escMotorKv": "Motor [Kv]", "escMotorPoles": "Motor Kutupları", "escBeepVolume": "Bip Sesi", diff --git a/src/translations/tr/hints.json b/src/translations/tr/hints.json index ab1ad402d..4b4305ff1 100644 --- a/src/translations/tr/hints.json +++ b/src/translations/tr/hints.json @@ -29,10 +29,13 @@ "SERVO_NEUTRAL": "For bi-directional modes this is the zero throttle position in microseconds.", "SERVO_DEAD_BAND": "Applied to either side of Servo Neutral, anything in this range is considered zero throttle.", "LOW_VOLTAGE_CUTOFF": "When enabled will cut power to the motor when the voltage drops below the low voltage threshold.", - "LOW_VOLTAGE_THRESHOLD": "Voltage level per cell where power is cut. Units in volts * 10. To cut off at 3.3v enter 330 for example.", + "LOW_VOLTAGE_THRESHOLD": "Voltage level per cell where power is cut. Units in volts * 100. To cut off at 3.3v enter 330 for example.", "RC_CAR_REVERSING": "For ground vehicles only. Overrides user settings and places ESC into bi-directional mode with double tap to reverse type control.", "USE_HALL_SENSORS": "For speed controllers with a hall sensor input to be used with sensored motors.", "SINE_MODE_RANGE": "The amount of throttle in percent used for sinusoidal startup.", "BRAKE_STRENGTH": "The level of hold brake applied when brake on stop is enabled.", - "BRAKING_STRENGTH": "Maximum amount of braking applied (complementary PWM duty cycle)." + "BRAKING_STRENGTH": "Maximum amount of braking applied (complementary PWM duty cycle).", + "POWER_RATING": "If using EDT on 1S setups, the temperature readings will be off if this is not set to 1S. All setups with 2S and more do not need to change this setting.", + "PWM_THRESHOLD_LOW": "Below this throttle, a 96kHz PWM signal will be used. Between low and high, a 48kHz PWM signal will beused.", + "PWM_THRESHOLD_HIGH": "Above this throttle, a 24kHz PWM signal will be used." } diff --git a/src/translations/tr/log.json b/src/translations/tr/log.json index 4d3212ea9..6b6807e51 100644 --- a/src/translations/tr/log.json +++ b/src/translations/tr/log.json @@ -9,6 +9,7 @@ "mspBuildInfo": "Firmware dağıtım tarihi: {{info}}", "mspBoardInfo": "Board: {{identifier}}, version: {{version}}", "mspUid": "Alet Seri numarası - 0x{{id}}", + "radioOn": "Your radio has been detected to be on! Reading and Flashing disabled. Turn off your radio and try again.", "mspFcInfo": "Kontrolcu tanımlayıcı: {{id}} version: {{version}}", "portUsed": "Port başka bi uygulama tarafından kullanılıyor. Tekrar bağlanmayı deneyin", "fourWayFailed": "Could not enable 4 way interface - reconnect flight controller", @@ -21,6 +22,7 @@ "fetchingFilesFailed": "Failed fetching files for {{name}}", "readEscFailed": "Failed reading ESC {{index}}", "resetEscFailed": "Failed resetting ESC {{index}}", + "resetEscFailedPowerCycle": "Failed resetting ESC {{index}} - power cycle and try again", "writeSettingsFailed": "Failed writing settings to ESC {{index}}", "restoreSettingsFailed": "Failed restoring default settings on ESC {{index}}", "getFileFailed": "Could not get file for flashing.", diff --git a/src/translations/zh-CN/common.json b/src/translations/zh-CN/common.json index 6d45f2660..f78b08c80 100644 --- a/src/translations/zh-CN/common.json +++ b/src/translations/zh-CN/common.json @@ -46,10 +46,12 @@ "escButtonWrite": "写入设置", "buttonCancel": "取消", "escButtonSelect": "烧录", + "escPowerRading": "额定功率", "defaultChangelogTitle": "更新日志", "changelogClose": "关闭", "escDampingMode": "阻尼模式 (互补 PWM)", "escBrakingStrength": "最大刹车强度", + "escPowerRating": "ESC Power Rating", "homeExperimental": "这是一个实验性的 web 应用程序,可以在线配置 ESC 固件。", "homeVersionInfo": "您可以在这里找到最新的稳定版本。目前支持以下固件:", "homeContributionHeader": "贡献", @@ -87,6 +89,9 @@ "escStallProtection": "失速保护", "escTimingAdvance": "电机进角 [degrees]", "escPwmFrequency": "PWM 频率 [kHz]", + "escPwmFrequencyBluejay": "PWM Frequency", + "escPwmThresholdLow": "PWM low threshold", + "escPwmThresholdHigh": "PWM high threshold", "escMotorKv": "电机 [Kv]", "escMotorPoles": "电机极数", "escBeepVolume": "蜂鸣音量", diff --git a/src/translations/zh-CN/hints.json b/src/translations/zh-CN/hints.json index 4d4de8ea6..b8daf9ce9 100644 --- a/src/translations/zh-CN/hints.json +++ b/src/translations/zh-CN/hints.json @@ -29,10 +29,13 @@ "SERVO_NEUTRAL": "对于双向模式,这是零油门位置。", "SERVO_DEAD_BAND": "施加在伺服输入中位的两侧,这个范围内的任何信号都将被视为零。", "LOW_VOLTAGE_CUTOFF": "启用后,当电压降到低电压阈值以下时,将会切断电源。", - "LOW_VOLTAGE_THRESHOLD": "切断电源时每节电池的电压等级。电压单位为 *100伏。例如,要在在 3.3V 切断,请输入 330。", + "LOW_VOLTAGE_THRESHOLD": "切断电源时每节电池的电压等级。电压单位为 0.01 伏。例如,要在在 3.3V 切断,请输入 330。", "RC_CAR_REVERSING": "仅适用于地面车辆。将会覆盖用户设置,并将 ESC 设置为双向模式。", "USE_HALL_SENSORS": "用于与带有霍尔传感器输入的速度控制器来感应电机", "SINE_MODE_RANGE": "用于正弦式启动的油门量%", "BRAKE_STRENGTH": "当停止时刹车启用时的刹车等级", - "BRAKING_STRENGTH": "应用的最大刹车量 (互补 PWM 的占空比)。" + "BRAKING_STRENGTH": "应用的最大刹车量 (互补 PWM 的占空比)。", + "POWER_RATING": "如果在 1S 设备上使用 EDT ,若该选项未被设置为 1S 温度读数将被关闭。 所有 2S 及以上电压设备不需要更改此设置。", + "PWM_THRESHOLD_LOW": "Below this throttle, a 96kHz PWM signal will be used. Between low and high, a 48kHz PWM signal will beused.", + "PWM_THRESHOLD_HIGH": "Above this throttle, a 24kHz PWM signal will be used." } diff --git a/src/translations/zh-CN/log.json b/src/translations/zh-CN/log.json index 941a7c21e..3764edc6e 100644 --- a/src/translations/zh-CN/log.json +++ b/src/translations/zh-CN/log.json @@ -9,6 +9,7 @@ "mspBuildInfo": "运行已发布的固件: {{info}}", "mspBoardInfo": "主板: {{identifier}}, 版本: {{version}}", "mspUid": "已收到唯一设备ID - 0x{{id}}", + "radioOn": "您的遥控器已被检测到开启!读取和烧录已被禁用。请关闭您的遥控器,然后重试。", "mspFcInfo": "飞行控制器信息,标识符: {{id}} 版本: {{version}}", "portUsed": "端口已被另一个应用程序使用 - 请尝试重新连接", "fourWayFailed": "无法启用 4 路接口 - 请重新连接飞行控制器", @@ -21,6 +22,7 @@ "fetchingFilesFailed": "获取 {{name}} 文件失败", "readEscFailed": "读取 ESC {{index}} 失败", "resetEscFailed": "重置 ESC {{index}} 失败", + "resetEscFailedPowerCycle": "无法重置 ESC {{index}} - 重新上电,然后重试。", "writeSettingsFailed": "无法将设置写入到 ESC {{index}}", "restoreSettingsFailed": "无法将默认设置恢复至 ESC {{index}}", "getFileFailed": "无法打开要烧录的文件", diff --git a/src/translations/zh-TW/common.json b/src/translations/zh-TW/common.json index 1a39bba62..bce60ad36 100644 --- a/src/translations/zh-TW/common.json +++ b/src/translations/zh-TW/common.json @@ -46,10 +46,12 @@ "escButtonWrite": "寫入設定", "buttonCancel": "取消", "escButtonSelect": "燒錄", + "escPowerRading": "額定功率", "defaultChangelogTitle": "更新日志", "changelogClose": "關閉", "escDampingMode": "阻尼模式(互補 PWM)", "escBrakingStrength": "最大刹車强度", + "escPowerRating": "ESC Power Rating", "homeExperimental": "這是一額實驗性的 web 應用程序,可以在綫配置 ESC 固件。", "homeVersionInfo": "您可以在這裏找到最新的穩定版本。目前支援以下固件:", "homeContributionHeader": "貢獻", @@ -87,6 +89,9 @@ "escStallProtection": "失速保護", "escTimingAdvance": "電機近角 [degrees]", "escPwmFrequency": "PWM 頻率 [kHz]", + "escPwmFrequencyBluejay": "PWM Frequency", + "escPwmThresholdLow": "PWM low threshold", + "escPwmThresholdHigh": "PWM high threshold", "escMotorKv": "電機 [Kv]", "escMotorPoles": "電機極數", "escBeepVolume": "蜂鳴音量", diff --git a/src/translations/zh-TW/hints.json b/src/translations/zh-TW/hints.json index f05c3c3e2..e2015b4db 100644 --- a/src/translations/zh-TW/hints.json +++ b/src/translations/zh-TW/hints.json @@ -29,10 +29,13 @@ "SERVO_NEUTRAL": "对于双向模式,这是零油门位置。", "SERVO_DEAD_BAND": "施加在伺服輸入中位的兩側,這個範圍內的任何信號都將被視為零。", "LOW_VOLTAGE_CUTOFF": "啟用後,當電壓降到低電壓閾值以下時,將會切斷電源。", - "LOW_VOLTAGE_THRESHOLD": "切斷電源時每節電池的電壓等級。電壓單位為 *100伏。例如,要在在 3.3V 切斷,請輸入 330。", + "LOW_VOLTAGE_THRESHOLD": "切斷電源時每節電池的電壓等級。電壓單位為 0.01 伏。例如,要在在 3.3V 切斷,請輸入 330。", "RC_CAR_REVERSING": "僅適用於地面車輛。將會覆蓋用戶設置,并將 ESC 設置為雙向模式。", "USE_HALL_SENSORS": "用於與帶有霍爾傳感器輸入的速度控制器來感應電機", "SINE_MODE_RANGE": "用於正弦式啟動的油門量%", "BRAKE_STRENGTH": "當停止時剎車啟用時的剎車等級", - "BRAKING_STRENGTH": "應用的最大刹車量 (互補 PWM 的占空比)。" + "BRAKING_STRENGTH": "應用的最大刹車量 (互補 PWM 的占空比)。", + "POWER_RATING": "如果在 1S 設備上使用 EDT ,若該選項未被設置為 1S 溫度讀數將被關閉。所有 2S 及以上電壓設備不需要更改此設置。", + "PWM_THRESHOLD_LOW": "Below this throttle, a 96kHz PWM signal will be used. Between low and high, a 48kHz PWM signal will beused.", + "PWM_THRESHOLD_HIGH": "Above this throttle, a 24kHz PWM signal will be used." } diff --git a/src/translations/zh-TW/log.json b/src/translations/zh-TW/log.json index a2f75cdf6..94d9b26e2 100644 --- a/src/translations/zh-TW/log.json +++ b/src/translations/zh-TW/log.json @@ -9,6 +9,7 @@ "mspBuildInfo": "运行已发布的固件:{{info}}", "mspBoardInfo": "主板: {{identifier}}, 版本: {{version}}", "mspUid": "已收到唯一設備 ID - 0x{{id}}", + "radioOn": "您的遙控器已被檢測到開啟!讀取和燒錄已被禁用。請關閉您的遙控器,然後重試。", "mspFcInfo": "飞行控制器信息,标识符: {{id}} 版本: {{version}}", "portUsed": "埠口已被另一个应用程式使用 - 请尝试重新连接", "fourWayFailed": "无法启用 4 路接口 - 请重新连接飞行控制器", @@ -21,6 +22,7 @@ "fetchingFilesFailed": "獲取 {{name}} 資料失敗", "readEscFailed": "讀取 ESC {{index}} 失敗", "resetEscFailed": "重置 ESC {{index}} 失敗", + "resetEscFailedPowerCycle": "無法重啓 ESC {{index}} - 重新上電,然後重試。", "writeSettingsFailed": "無法將設定寫入到 {{index}}", "restoreSettingsFailed": "無法將默認設定恢復至 ESC {{index}}", "getFileFailed": "無法打開要燒錄的文件", From 80b9d1ae59cc39e842a58ac0ece302a021c972f1 Mon Sep 17 00:00:00 2001 From: Chris L Date: Thu, 23 Feb 2023 21:38:06 +0100 Subject: [PATCH 12/12] Bumped version numbers --- package.json | 2 +- src/changelog.json | 2 +- src/settings.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index e75e177b4..f86d97c4e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "esc-configurator", - "version": "0.28.1", + "version": "0.29.0", "private": false, "license": "AGPL-3.0", "dependencies": { diff --git a/src/changelog.json b/src/changelog.json index 0ea68e7fd..38ec9ea3b 100644 --- a/src/changelog.json +++ b/src/changelog.json @@ -1,6 +1,6 @@ [ { - "title": "Unreleased", + "title": "0.29.0", "items": [ "Enhancement: More melodies", "Enhancement: Detect if FC is in 4 way interface mode after reconnection and reset", diff --git a/src/settings.json b/src/settings.json index 78ee8cfbb..2c970a675 100644 --- a/src/settings.json +++ b/src/settings.json @@ -1,5 +1,5 @@ { - "version": "v0.28.2-dev-2", + "version": "v0.29.0", "corsProxy": "https://cors.bubblesort.me/?", "availableLanguages": [ {