diff --git a/app/src/processing/app/SketchController.java b/app/src/processing/app/SketchController.java index 89f1a35167f..392422c5923 100644 --- a/app/src/processing/app/SketchController.java +++ b/app/src/processing/app/SketchController.java @@ -709,6 +709,10 @@ private boolean upload(String suggestedClassName, boolean usingProgrammer) throw UploaderUtils uploaderInstance = new UploaderUtils(); Uploader uploader = uploaderInstance.getUploaderByPreferences(false); + if (uploader == null) { + editor.statusError(tr("Please select a Port before Upload")); + return false; + } EditorConsole.setCurrentEditorConsole(editor.console); diff --git a/arduino-core/src/cc/arduino/UploaderUtils.java b/arduino-core/src/cc/arduino/UploaderUtils.java index ec27b496148..108d7c137b3 100644 --- a/arduino-core/src/cc/arduino/UploaderUtils.java +++ b/arduino-core/src/cc/arduino/UploaderUtils.java @@ -50,7 +50,11 @@ public Uploader getUploaderByPreferences(boolean noUploadPort) { BoardPort boardPort = null; if (!noUploadPort) { - boardPort = BaseNoGui.getDiscoveryManager().find(PreferencesData.get("serial.port")); + String port = PreferencesData.get("serial.port"); + if (port == null || port.isEmpty()) { + return null; + } + boardPort = BaseNoGui.getDiscoveryManager().find(port); } return new UploaderFactory().newUploader(target.getBoards().get(board), boardPort, noUploadPort); diff --git a/build/shared/lib/preferences.txt b/build/shared/lib/preferences.txt index e777627af3d..7e7fd7c381c 100644 --- a/build/shared/lib/preferences.txt +++ b/build/shared/lib/preferences.txt @@ -267,7 +267,8 @@ programmer = arduino:avrispmkii upload.using = bootloader upload.verify = true -serial.port=COM1 +#default port is empty to prevent running AVRDUDE before Port selected (issue #7943) +serial.port= serial.databits=8 serial.stopbits=1 serial.parity=N