Stuck on compilation error while setting up new ESP32 board

I'm stuck and could use a little help. I've used Arduino before for a few projects, but it's been several years and I'm rusty. I just bought an ESP32 board and am trying to upload the most basic LED blink sketch, but it fails to compile and I can't determine why.

Freenove (the board manufacturer) included some documentation, and I followed it as carefully as possible. As far as I can tell, the CH34x USB to Serial Driver installed successfully, I have all of the recommended settings defined properly in the Arduino IDE, and the right serial port chosen (/dev/cu.usbserial-110). The latter does not look like the example format shown in Freenove's setup docs (which is COM27), but it presented itself when I connected the board and granted permission for my Macbook to connect to it, so it seems kind of likely to be the one.

Some pertinent details:

  • OS: macOS Tahoe 26.0.1
  • Board: Freenove ESP32 WROOM
  • Arduino IDE: 2.3.6

Here's my sketch:

#define PIN_LED 2

void setup() {
  // put your setup code here, to run once:
  pinMode(PIN_LED, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(PIN_LED, HIGH);
  delay(1000);
  digitalWrite(PIN_LED, LOW);
  delay(1000);
}

When I try to upload, I get the following debug output, and the process fails.

FQBN: esp32:esp32:esp32:UploadSpeed=115200
Using board 'esp32' from platform in folder: /Users/twarr/Library/Arduino15/packages/esp32/hardware/esp32/3.3.1
Using core 'esp32' from platform in folder: /Users/twarr/Library/Arduino15/packages/esp32/hardware/esp32/3.3.1

/usr/bin/env bash -c "[ ! -f \"/Users/twarr/Documents/Arduino/sketch_oct6a\"/partitions.csv ] || cp -f \"/Users/twarr/Documents/Arduino/sketch_oct6a\"/partitions.csv \"/Users/twarr/Library/Caches/arduino/sketches/F89682EF324F691ADB0DDC3AAD803EB5\"/partitions.csv"
/usr/bin/env bash -c "[ -f \"/Users/twarr/Library/Caches/arduino/sketches/F89682EF324F691ADB0DDC3AAD803EB5\"/partitions.csv ] || [ ! -f \"/Users/twarr/Library/Arduino15/packages/esp32/hardware/esp32/3.3.1/variants/esp32\"/partitions.csv ] || cp \"/Users/twarr/Library/Arduino15/packages/esp32/hardware/esp32/3.3.1/variants/esp32\"/partitions.csv \"/Users/twarr/Library/Caches/arduino/sketches/F89682EF324F691ADB0DDC3AAD803EB5\"/partitions.csv"
/usr/bin/env bash -c "[ -f \"/Users/twarr/Library/Caches/arduino/sketches/F89682EF324F691ADB0DDC3AAD803EB5\"/partitions.csv ] || cp \"/Users/twarr/Library/Arduino15/packages/esp32/hardware/esp32/3.3.1\"/tools/partitions/default.csv \"/Users/twarr/Library/Caches/arduino/sketches/F89682EF324F691ADB0DDC3AAD803EB5\"/partitions.csv"
/usr/bin/env bash -c "[ -f \"/Users/twarr/Documents/Arduino/sketch_oct6a\"/bootloader.bin ] && cp -f \"/Users/twarr/Documents/Arduino/sketch_oct6a\"/bootloader.bin \"/Users/twarr/Library/Caches/arduino/sketches/F89682EF324F691ADB0DDC3AAD803EB5\"/sketch_oct6a.ino.bootloader.bin || ( [ -f \"/Users/twarr/Library/Arduino15/packages/esp32/hardware/esp32/3.3.1/variants/esp32\"/bootloader.bin ] && cp \"/Users/twarr/Library/Arduino15/packages/esp32/hardware/esp32/3.3.1/variants/esp32\"/bootloader.bin \"/Users/twarr/Library/Caches/arduino/sketches/F89682EF324F691ADB0DDC3AAD803EB5\"/sketch_oct6a.ino.bootloader.bin || \"/Users/twarr/Library/Arduino15/packages/esp32/tools/esptool_py/5.1.0\"/esptool --chip esp32 elf2image --flash-mode dio --flash-freq 80m --flash-size 4MB -o \"/Users/twarr/Library/Caches/arduino/sketches/F89682EF324F691ADB0DDC3AAD803EB5\"/sketch_oct6a.ino.bootloader.bin \"/Users/twarr/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.5-129cd0d2-v4/esp32\"/bin/bootloader_qio_80m.elf )"
esptool v5.1.0
Creating ESP32 image...
Merged 2 ELF sections.
Successfully created ESP32 image.
/usr/bin/env bash -c "[ ! -f \"/Users/twarr/Documents/Arduino/sketch_oct6a\"/build_opt.h ] || cp -f \"/Users/twarr/Documents/Arduino/sketch_oct6a\"/build_opt.h \"/Users/twarr/Library/Caches/arduino/sketches/F89682EF324F691ADB0DDC3AAD803EB5\"/build_opt.h"
/usr/bin/env bash -c "[ -f \"/Users/twarr/Library/Caches/arduino/sketches/F89682EF324F691ADB0DDC3AAD803EB5\"/build_opt.h ] || : > \"/Users/twarr/Library/Caches/arduino/sketches/F89682EF324F691ADB0DDC3AAD803EB5\"/build_opt.h"
/usr/bin/env bash -c ": > '/Users/twarr/Library/Caches/arduino/sketches/F89682EF324F691ADB0DDC3AAD803EB5/file_opts'"
/usr/bin/env bash -c "cp -f \"/Users/twarr/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.5-129cd0d2-v4/esp32\"/sdkconfig \"/Users/twarr/Library/Caches/arduino/sketches/F89682EF324F691ADB0DDC3AAD803EB5\"/sdkconfig"
Detecting libraries used...
/Users/twarr/Library/Arduino15/packages/esp32/tools/esp-x32/2411/bin/xtensa-esp32-elf-g++ -c @/Users/twarr/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.5-129cd0d2-v4/esp32/flags/cpp_flags -w -Os -Werror=return-type -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10607 -DARDUINO_ESP32_DEV -DARDUINO_ARCH_ESP32 -DARDUINO_BOARD="ESP32_DEV" -DARDUINO_VARIANT="esp32" -DARDUINO_PARTITION_default -DARDUINO_HOST_OS="macosx" -DARDUINO_FQBN="esp32:esp32:esp32:UploadSpeed=115200,CPUFreq=240,FlashFreq=80,FlashMode=qio,FlashSize=4M,PartitionScheme=default,DebugLevel=none,PSRAM=disabled,LoopCore=1,EventsCore=1,EraseFlash=none,JTAGAdapter=default,ZigbeeMode=default" -DESP32=ESP32 -DCORE_DEBUG_LEVEL=0 -DARDUINO_RUNNING_CORE=1 -DARDUINO_EVENT_RUNNING_CORE=1 -DARDUINO_USB_CDC_ON_BOOT=0 @/Users/twarr/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.5-129cd0d2-v4/esp32/flags/defines -I/Users/twarr/Documents/Arduino/sketch_oct6a -iprefix /Users/twarr/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.5-129cd0d2-v4/esp32/include/ @/Users/twarr/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.5-129cd0d2-v4/esp32/flags/includes -I/Users/twarr/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.5-129cd0d2-v4/esp32/qio_qspi/include -I/Users/twarr/Library/Arduino15/packages/esp32/hardware/esp32/3.3.1/cores/esp32 -I/Users/twarr/Library/Arduino15/packages/esp32/hardware/esp32/3.3.1/variants/esp32 @/Users/twarr/Library/Caches/arduino/sketches/F89682EF324F691ADB0DDC3AAD803EB5/build_opt.h @/Users/twarr/Library/Caches/arduino/sketches/F89682EF324F691ADB0DDC3AAD803EB5/file_opts /Users/twarr/Library/Caches/arduino/sketches/F89682EF324F691ADB0DDC3AAD803EB5/sketch/sketch_oct6a.ino.cpp -o /dev/null
Generating function prototypes...
/Users/twarr/Library/Arduino15/packages/esp32/tools/esp-x32/2411/bin/xtensa-esp32-elf-g++ -c @/Users/twarr/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.5-129cd0d2-v4/esp32/flags/cpp_flags -w -Os -Werror=return-type -w -x c++ -E -CC -DF_CPU=240000000L -DARDUINO=10607 -DARDUINO_ESP32_DEV -DARDUINO_ARCH_ESP32 -DARDUINO_BOARD="ESP32_DEV" -DARDUINO_VARIANT="esp32" -DARDUINO_PARTITION_default -DARDUINO_HOST_OS="macosx" -DARDUINO_FQBN="esp32:esp32:esp32:UploadSpeed=115200,CPUFreq=240,FlashFreq=80,FlashMode=qio,FlashSize=4M,PartitionScheme=default,DebugLevel=none,PSRAM=disabled,LoopCore=1,EventsCore=1,EraseFlash=none,JTAGAdapter=default,ZigbeeMode=default" -DESP32=ESP32 -DCORE_DEBUG_LEVEL=0 -DARDUINO_RUNNING_CORE=1 -DARDUINO_EVENT_RUNNING_CORE=1 -DARDUINO_USB_CDC_ON_BOOT=0 @/Users/twarr/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.5-129cd0d2-v4/esp32/flags/defines -I/Users/twarr/Documents/Arduino/sketch_oct6a -iprefix /Users/twarr/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.5-129cd0d2-v4/esp32/include/ @/Users/twarr/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.5-129cd0d2-v4/esp32/flags/includes -I/Users/twarr/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.5-129cd0d2-v4/esp32/qio_qspi/include -I/Users/twarr/Library/Arduino15/packages/esp32/hardware/esp32/3.3.1/cores/esp32 -I/Users/twarr/Library/Arduino15/packages/esp32/hardware/esp32/3.3.1/variants/esp32 @/Users/twarr/Library/Caches/arduino/sketches/F89682EF324F691ADB0DDC3AAD803EB5/build_opt.h @/Users/twarr/Library/Caches/arduino/sketches/F89682EF324F691ADB0DDC3AAD803EB5/file_opts /Users/twarr/Library/Caches/arduino/sketches/F89682EF324F691ADB0DDC3AAD803EB5/sketch/sketch_oct6a.ino.cpp -o /private/var/folders/lm/pjzkvbgd15b50dn94wrjc5l00000gn/T/1003691323/sketch_merged.cpp
/Users/twarr/Library/Arduino15/packages/builtin/tools/ctags/5.8-arduino11/ctags -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives /private/var/folders/lm/pjzkvbgd15b50dn94wrjc5l00000gn/T/1003691323/sketch_merged.cpp

Compiling sketch...
/Users/twarr/Library/Arduino15/packages/esp32/tools/esp-x32/2411/bin/xtensa-esp32-elf-g++ -MMD -c @/Users/twarr/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.5-129cd0d2-v4/esp32/flags/cpp_flags -w -Os -Werror=return-type -DF_CPU=240000000L -DARDUINO=10607 -DARDUINO_ESP32_DEV -DARDUINO_ARCH_ESP32 "-DARDUINO_BOARD=\"ESP32_DEV\"" "-DARDUINO_VARIANT=\"esp32\"" -DARDUINO_PARTITION_default "-DARDUINO_HOST_OS=\"macosx\"" "-DARDUINO_FQBN=\"esp32:esp32:esp32:UploadSpeed=115200,CPUFreq=240,FlashFreq=80,FlashMode=qio,FlashSize=4M,PartitionScheme=default,DebugLevel=none,PSRAM=disabled,LoopCore=1,EventsCore=1,EraseFlash=none,JTAGAdapter=default,ZigbeeMode=default\"" -DESP32=ESP32 -DCORE_DEBUG_LEVEL=0 -DARDUINO_RUNNING_CORE=1 -DARDUINO_EVENT_RUNNING_CORE=1 -DARDUINO_USB_CDC_ON_BOOT=0 @/Users/twarr/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.5-129cd0d2-v4/esp32/flags/defines -I/Users/twarr/Documents/Arduino/sketch_oct6a -iprefix /Users/twarr/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.5-129cd0d2-v4/esp32/include/ @/Users/twarr/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.5-129cd0d2-v4/esp32/flags/includes -I/Users/twarr/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.5-129cd0d2-v4/esp32/qio_qspi/include -I/Users/twarr/Library/Arduino15/packages/esp32/hardware/esp32/3.3.1/cores/esp32 -I/Users/twarr/Library/Arduino15/packages/esp32/hardware/esp32/3.3.1/variants/esp32 @/Users/twarr/Library/Caches/arduino/sketches/F89682EF324F691ADB0DDC3AAD803EB5/build_opt.h @/Users/twarr/Library/Caches/arduino/sketches/F89682EF324F691ADB0DDC3AAD803EB5/file_opts /Users/twarr/Library/Caches/arduino/sketches/F89682EF324F691ADB0DDC3AAD803EB5/sketch/sketch_oct6a.ino.cpp -o /Users/twarr/Library/Caches/arduino/sketches/F89682EF324F691ADB0DDC3AAD803EB5/sketch/sketch_oct6a.ino.cpp.o
Compiling libraries...
Compiling core...
/usr/bin/env bash -c "echo -DARDUINO_CORE_BUILD > '/Users/twarr/Library/Caches/arduino/sketches/F89682EF324F691ADB0DDC3AAD803EB5/file_opts'"
Using precompiled core: /Users/twarr/Library/Caches/arduino/cores/930b43e0e5ffb9e8235c9dbff3b71fc4/core.a
/usr/bin/env bash -c ": > '/Users/twarr/Library/Caches/arduino/sketches/F89682EF324F691ADB0DDC3AAD803EB5/file_opts'"
Linking everything together...
/Users/twarr/Library/Arduino15/packages/esp32/tools/esp-x32/2411/bin/xtensa-esp32-elf-g++ -Wl,--Map=/Users/twarr/Library/Caches/arduino/sketches/F89682EF324F691ADB0DDC3AAD803EB5/sketch_oct6a.ino.map -L/Users/twarr/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.5-129cd0d2-v4/esp32/lib -L/Users/twarr/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.5-129cd0d2-v4/esp32/ld -L/Users/twarr/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.5-129cd0d2-v4/esp32/qio_qspi -Wl,--wrap=esp_panic_handler @/Users/twarr/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.5-129cd0d2-v4/esp32/flags/ld_flags @/Users/twarr/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.5-129cd0d2-v4/esp32/flags/ld_scripts -Wl,--start-group /Users/twarr/Library/Caches/arduino/sketches/F89682EF324F691ADB0DDC3AAD803EB5/sketch/sketch_oct6a.ino.cpp.o /Users/twarr/Library/Caches/arduino/cores/930b43e0e5ffb9e8235c9dbff3b71fc4/core.a @/Users/twarr/Library/Arduino15/packages/esp32/tools/esp32-arduino-libs/idf-release_v5.5-129cd0d2-v4/esp32/flags/ld_libs -Wl,--end-group -Wl,-EL -o /Users/twarr/Library/Caches/arduino/sketches/F89682EF324F691ADB0DDC3AAD803EB5/sketch_oct6a.ino.elf
/Users/twarr/Library/Arduino15/packages/esp32/tools/esptool_py/5.1.0/esptool --chip esp32 elf2image --flash-mode dio --flash-freq 80m --flash-size 4MB --elf-sha256-offset 0xb0 -o /Users/twarr/Library/Caches/arduino/sketches/F89682EF324F691ADB0DDC3AAD803EB5/sketch_oct6a.ino.bin /Users/twarr/Library/Caches/arduino/sketches/F89682EF324F691ADB0DDC3AAD803EB5/sketch_oct6a.ino.elf
esptool v5.1.0
Creating ESP32 image...
Merged 2 ELF sections.
Successfully created ESP32 image.
python3 /Users/twarr/Library/Arduino15/packages/esp32/hardware/esp32/3.3.1/tools/gen_esp32part.py -q /Users/twarr/Library/Caches/arduino/sketches/F89682EF324F691ADB0DDC3AAD803EB5/partitions.csv /Users/twarr/Library/Caches/arduino/sketches/F89682EF324F691ADB0DDC3AAD803EB5/sketch_oct6a.ino.partitions.bin
signal: killed

Compilation error: signal: killed

I can't tell if it doesn't like that last python3 command, or if that's a red herring and something else happened or is not configured properly.

Please let me know if you have any suggestions for what to try next, anything I might have missed, or if I need to include any additional information to help troubleshoot. Thanks so much!

Hi @misterbungle. Do you have the "System Integrity Protection" feature disabled in your configuration of macOS?:

I ask because another community member reported encountering a "signal: killed" error, and was able to determine that it was caused by a quirk of the code signing of the command line tool Arduino IDE was using at the time, and how macOS treats application with that type of signing when the "System Integrity Protection" feature is disabled:

Hi @ptillisch - thank you so much for your reply, and I appreciate your time and effort!

Unfortunately, that didn't seem to affect the problem. I hadn't heard of System Integrity Protection before, so it has been enabled by default. I disabled it temporarily to see if that had any effect, but it didn't change the error that I reported above. I did not try removing the signature from the binary per the update in the post you shared (let me know if you think that's worth a shot).

A few other bits of evidence that may or may not be of interest:

  • After reboot, the serial port shown in Arduino IDE > Tools > Port: changed from the previous /dev/cu.usbserial-110 to /dev/cu.usbserial-10. The former port was still selected in the menu, even though it apparently didn't exist anymore. I selected the new /dev/cu.usbserial-10 option before trying to upload my code again. Not sure if that means anything, but my assumption is that it's a clue the board is successfully connecting to my computer (which I haven't been super confident about).
  • I tried simply clicking the Verify button rather than Upload, and I get what (at least at a glance) appears to be the same output and fatal compilation error.
  • While rebooting after disabling System Integrity Protection, I got a couple of system popups (screenshots below). I attempted, but I'm not 100% confident, that I resolved those. Not sure if they seem related to this or not?


I'm not really sure what to try next. Freenove, the board manufacturer, does have a technical support email that I can contact, but aside from that, please let me know if you have any other ideas. Thanks again!