Particle Workbench did not install

Error: Command failed with exit code 1: /usr/sbin/code --install-extension particle.particle-vscode-pack
Extension ‘particle.particle-vscode-pack’ not found.
Make sure you use the full extension ID, including the publisher, e.g.: ms-dotnettools.csharp
Failed Installing Extensions: particle.particle-vscode-pack
Installing extensions…
at makeError (/tmp/.mount_ParticPj1rJa/resources/app.asar/node_modules/execa/lib/error.js:59:11)
at handlePromise (/tmp/.mount_ParticPj1rJa/resources/app.asar/node_modules/execa/index.js:114:26)
at processTicksAndRejections (internal/process/task_queues.js:94:5)
at async VSCodeInstallerLinux.installExtension (/tmp/.mount_ParticPj1rJa/resources/app.asar/src/installers/vscode/base.js:80:11)
at async installExtension (/tmp/.mount_ParticPj1rJa/resources/app.asar/src/electron.js:71:4)
at async /tmp/.mount_ParticPj1rJa/resources/app.asar/node_modules/@particle/async-utils/src/index.js:402:17
at async IpcMainImpl. (/tmp/.mount_ParticPj1rJa/resources/app.asar/src/electron.js:56:3)

Interesting. I wasn't aware that VSCode can manage extensions from the command line.
Running code --help reveals all of the options that code has available.

Were you using the Particle Workbench Installer or were you doing this directly in VSCode?

I would recommend installing VSCode manually and then installing Workbench within VSCode.

You could also run the following in a terminal after installing VSCode:

/usr/sbin/code --install-extension particle.particle-vscode-pack

@vsthose

one key bit of information you can share to help us troubleshoot is your environment configuration - specifically:

  • Operating System?
  • CPU Architecture (32/64 bit? arm?)
  • Home directory path
  • Contents of your .particle directory - ls -a ~/.particle (macOS / linux - bash, etc), get-childitem ~\AppData\Local\particle (windows - powershell)
1 Like

When I attempt to find the workbench extension from inside VSCode, It could never find it.

I am running Manjero and using the native port of VSCode for Manjero.

1 Like

I also use Manjaro.

Could you try using visual-studio-code-bin from the AUR instead? I’ve had better luck with it than using code from the community repo.

If you have yay installed you can use:

yay -S visual-studio-code-bin

Otherwise:

pamac build visual-studio-code-bin
1 Like

@nrobinson2000 I successfully installed Particle Workbench from Visual-Studio after switching to the AUR version of VSCode.

@m_m Running Manjaro 20, 64bit

Not sure what you are looking for in my .particle folder, but here:

drwx------ 34 todd todd   4096 Nov  9 06:50 ..
drwxr-xr-x  6 todd todd   4096 Nov  9 06:51 node-v12.16.1-linux-x64
drwxr-xr-x  3 todd todd   4096 Nov  9 06:51 tmp
drwxr-xr-x  7 todd todd   4096 Nov  9 06:51 toolchains
drwxr-xr-x  4 todd todd   4096 Nov  9 06:51 node_modules
-rw-r--r--  1 todd todd 482058 Nov  9 06:51 package-lock.json
drwxr-xr-x  5 todd todd   4096 Nov  9 06:51 .npm-cache
-rw-r--r--  1 todd todd     59 Nov  9 06:51 plugin-cache.json
-rw-r--r--  1 todd todd     55 Nov  9 06:51 autoupdate
-rw-------  1 todd todd     99 Nov  9 06:53 particle.config.json
drwxr-xr-x  7 todd todd   4096 Nov  9 06:53 .
-rw-r--r--  1 todd todd   1311 Nov  9 07:14 error.log

Once I had Particle Workbench installed, I went back to the Tracker Docs to attempt to get that installed. I have been using the web IDE all this time and using git and VSCode is alien to me.

BTW - is there a reason that the trackers do not show up as targets in the Particle Web IDE? That system is so much more convenient for collaboration - especially during lock downs and quarantines.

I was able download the firmware from github, however these instructions from the docs:

git clone git@github.com:particle-iot/tracker-edge.git 
cd tracker-edge
git submodule update --init --recursive

Do not work, Github does not like the credentials.

I was able to download the zip, unzip and import the project. Next though, Compiling the project fails:

  • Open Particle Workbench.
  • From the command palette, Particle: Import Project .
  • Run Particle: Configure Workspace for Device , select version 1.5.4-rc.1, 2.0.0-rc.3, or later, Tracker, and your device.
  • Run Particle: Compile and Flash .

The last statement says "Compile and Flash - There is no combined "Compile and Flash" on the version of Workbench I just downloaded, that I have to assume is the most current version. When I Compile, I get the following error:

Compiling code for tracker
Targeting version: 2.0.0-rc.4

Including:
    lib/bmi160/src/bmi160.h
    lib/bmi160/src/bmi160regs.h
    lib/cloud-service/src/background_publish.h
    lib/cloud-service/src/cloud_service.h
    lib/config-service/examples/rgb/rgb_dummy.h
    lib/config-service/src/config_service_nodes.h
    lib/config-service/src/config_service.h
    lib/config-service/src/murmur3.h
    lib/location-service/src/location_service.h
    lib/Thermistor/src/thermistor.h
    src/gnss_led.h
    src/motion_service.h
    src/temperature.h
    src/tracker_cellular.h
    src/tracker_config.h
    src/tracker_location.h
    src/tracker_motion.h
    src/tracker_rgb.h
    src/tracker_shipping.h
    src/tracker_sleep.h
    src/tracker.h
    lib/bmi160/src/bmi160.cpp
    lib/bmi160/test/main.cpp
    lib/cloud-service/src/background_publish.cpp
    lib/cloud-service/src/cloud_service.cpp
    lib/config-service/examples/rgb/main.cpp
    lib/config-service/examples/rgb/rgb_dummy.cpp
    lib/config-service/src/config_service.cpp
    lib/config-service/src/murmur3.cpp
    lib/location-service/src/location_service.cpp
    lib/location-service/test/main.cpp
    lib/Thermistor/test/main.cpp
    src/gnss_led.cpp
    src/main.cpp
    src/motion_service.cpp
    src/temperature.cpp
    src/tracker_cellular.cpp
    src/tracker_location.cpp
    src/tracker_motion.cpp
    src/tracker_rgb.cpp
    src/tracker_shipping.cpp
    src/tracker_sleep.cpp
    src/tracker.cpp
    project.properties

attempting to compile firmware
Compile failed: make -C ../modules/tracker/user-part all
make[1]: Entering directory '/firmware/modules/tracker/user-part'

mkdir -p target/
make -f ../../../modules/shared/nRF52840/build_linker_script.mk PREBUILD=1
make[2]: Entering directory '/firmware/modules/tracker/user-part'
Creating target/platform_user_ram.ld ...
make[2]: Leaving directory '/firmware/modules/tracker/user-part'

make -C ../../../user 
make[2]: Entering directory '/firmware/user'
Building cpp file: src/tracker_rgb.cpp
Invoking: ARM GCC CPP Compiler
mkdir -p ../build/target/user/platform-26-msrc/
arm-none-eabi-gcc -DSTM32_DEVICE -DnRF52840 -DNRF52840_XXAA -DPLATFORM_THREADING=1 -DPLATFORM_ID=26 -DPLATFORM_NAME=tracker -DPLATFORM_GEN=3 -DUSBD_VID_SPARK=0x2B04 -DUSBD_PID_DFU=0xD01A -DUSBD_PID_CDC=0xC01A -DSPARK_PLATFORM -g3 -gdwarf-2 -Os -mcpu=cortex-m4 -mthumb -mabi=aapcs -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -DINCLUDE_PLATFORM=1 -DSOFTDEVICE_PRESENT=1 -DS140 -DPRODUCT_ID=26 -DPRODUCT_FIRMWARE_VERSION=65535 -D_WIZCHIP_=W5500 -DUSE_STDPERIPH_DRIVER -DDFU_BUILD_ENABLE -DLFS_CONFIG=lfs_config.h -DSYSTEM_VERSION_STRING=2.0.0-rc.4 -DRELEASE_BUILD -I./inc -I../wiring/inc -I../system/inc -I../services/inc -I../third_party/nanopb/nanopb -I../communication/inc -I../hal/inc -I../hal/shared -I../hal/src/tracker -I../hal/network/lwip/cellular -I../hal/src/nRF52840 -I../hal/src/armv7 -I../hal/src/nRF52840 -I../hal/src/nRF52840/lwip -I../hal/src/nRF52840/freertos -I../hal/src/nRF52840/mbedtls -I../hal/src/nRF52840/littlefs -I../hal -I../hal/src/nRF52840/posix -I../hal/network -I../hal/network/api -I../hal/network/lwip -I../hal/network/lwip/posix -I../hal/network/lwip/wiznet -I../hal/network/ncp -I../hal/network/ncp/at_parser -I../hal/network/util -I../third_party/lwip/lwip/src/include -I../third_party/freertos/freertos/FreeRTOS/Source/include -I../third_party/nrf5_sdk/nrf5_sdk/external/freertos/portable/GCC/nrf52 -I../third_party/nrf5_sdk/nrf5_sdk/external/freertos/portable/CMSIS/nrf52 -I../third_party/wiznet_driver/wiznet_driver/Ethernet -I../gsm0710muxer/gsm0710muxer/include -I../platform/shared/inc -I../third_party/nrf5_sdk -I../third_party/nrf5_sdk/nrf5_sdk/components/toolchain/cmsis/include -I../third_party/nrf5_sdk/nrf5_sdk/modules/nrfx -I../third_party/nrf5_sdk/nrf5_sdk/modules/nrfx/drivers -I../third_party/nrf5_sdk/nrf5_sdk/modules/nrfx/drivers/include -I../third_party/nrf5_sdk/nrf5_sdk/modules/nrfx/hal -I../third_party/nrf5_sdk/nrf5_sdk/modules/nrfx/mdk -I../third_party/nrf5_sdk/nrf5_sdk/modules/nrfx/hal -I../third_party/nrf5_sdk/nrf5_sdk/modules/nrfx/drivers/src/prs -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/util -I../third_party/nrf5_sdk/nrf5_sdk/components/softdevice/s140/headers -I../third_party/nrf5_sdk/nrf5_sdk/components/softdevice/s140/headers/nrf52 -I../third_party/nrf5_sdk/nrf5_sdk/components/softdevice/common -I../third_party/nrf5_sdk/nrf5_sdk/components/softdevice/mbr/nrf52840/headers -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/fstorage -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/experimental_section_vars -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/atomic -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/crc32 -I../third_party/nrf5_sdk/nrf5_sdk/integration/nrfx/legacy -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/delay -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/log -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/log -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/log/src -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/experimental_section_vars -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/atomic -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/delay -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/queue -I../third_party/nrf5_sdk/nrf5_sdk/components/softdevice/common -I../third_party/nrf5_sdk/nrf5_sdk/components/softdevice/s140 -I../third_party/nrf5_sdk/nrf5_sdk/components/softdevice/s140/headers -I../third_party/nrf5_sdk/nrf5_sdk/components/softdevice/s140/headers/nrf52 -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/fifo -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/atomic_fifo -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/strerror -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/fstorage -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/atomic_flags -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/usbd -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/usbd/class/cdc -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/usbd/class/cdc/acm -I../third_party/nrf5_sdk/nrf5_sdk/components/ble/common -I../third_party/nrf5_sdk/nrf5_sdk/components/ble/nrf_ble_gatt -I../third_party/nrf5_sdk/nrf5_sdk/components/ble/ble_advertising -I../third_party/nrf5_sdk/nrf5_sdk/components/nfc/t2t_lib -I../third_party/nrf5_sdk/nrf5_sdk/components/nfc/platform -I../third_party/nrf5_sdk/nrf5_sdk/components/nfc/ndef/generic/message -I../third_party/nrf5_sdk/nrf5_sdk/components/nfc/ndef/generic/record -I../third_party/nrf5_sdk/nrf5_sdk/components/nfc/ndef/lauchapp -I../third_party/nrf5_sdk/nrf5_sdk/components/nfc/ndef/text -I../third_party/nrf5_sdk/nrf5_sdk/components/nfc/ndef/uri -I../third_party/nrf5_sdk/nrf5_sdk/external/nrf_cc310/include -I../third_party/nrf5_sdk/nrf5_sdk/external/utf_converter -I../third_party/littlefs/littlefs -I../third_party/miniz/miniz -I../platform/MCU/nRF52840/inc -I../dynalib/inc -Isrc -I./libraries -Ilib/bmi160/src -Ilib/config-service/src -Ilib/Thermistor/src -Ilib/location-service/src -Ilib/cloud-service/src -I. -MD -MP -MF ../build/target/user/platform-26-msrc/tracker_rgb.o.d -ffunction-sections -fdata-sections -Wall -Wno-switch -Wno-error=deprecated-declarations -fmessage-length=0 -fno-strict-aliasing -DSPARK=1 -DPARTICLE=1 -Wundef -DSTART_DFU_FLASHER_SERIAL_SPEED=14400 -DSTART_YMODEM_FLASHER_SERIAL_SPEED=28800 -DSPARK_PLATFORM_NET=QUECTEL -fno-builtin-malloc -fno-builtin-free -fno-builtin-realloc  -DLOG_INCLUDE_SOURCE_INFO=1 -DPARTICLE_USER_MODULE -DUSER_FIRMWARE_IMAGE_SIZE=0x20000 -DUSER_FIRMWARE_IMAGE_LOCATION=0xD4000 -DMODULAR_FIRMWARE=1 -DMODULE_VERSION=6 -DMODULE_FUNCTION=5 -DMODULE_INDEX=1 -DMODULE_DEPENDENCY=4,1,2007 -DMODULE_DEPENDENCY2=0,0,0 -D_GNU_SOURCE -DLOG_MODULE_CATEGORY="\"app\""  -fno-exceptions -fno-rtti -fcheck-new -std=gnu++14 -c -o ../build/target/user/platform-26-msrc/tracker_rgb.o src/tracker_rgb.cpp

Building cpp file: src/tracker.cpp
Invoking: ARM GCC CPP Compiler
mkdir -p ../build/target/user/platform-26-msrc/
arm-none-eabi-gcc -DSTM32_DEVICE -DnRF52840 -DNRF52840_XXAA -DPLATFORM_THREADING=1 -DPLATFORM_ID=26 -DPLATFORM_NAME=tracker -DPLATFORM_GEN=3 -DUSBD_VID_SPARK=0x2B04 -DUSBD_PID_DFU=0xD01A -DUSBD_PID_CDC=0xC01A -DSPARK_PLATFORM -g3 -gdwarf-2 -Os -mcpu=cortex-m4 -mthumb -mabi=aapcs -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -DINCLUDE_PLATFORM=1 -DSOFTDEVICE_PRESENT=1 -DS140 -DPRODUCT_ID=26 -DPRODUCT_FIRMWARE_VERSION=65535 -D_WIZCHIP_=W5500 -DUSE_STDPERIPH_DRIVER -DDFU_BUILD_ENABLE -DLFS_CONFIG=lfs_config.h -DSYSTEM_VERSION_STRING=2.0.0-rc.4 -DRELEASE_BUILD -I./inc -I../wiring/inc -I../system/inc -I../services/inc -I../third_party/nanopb/nanopb -I../communication/inc -I../hal/inc -I../hal/shared -I../hal/src/tracker -I../hal/network/lwip/cellular -I../hal/src/nRF52840 -I../hal/src/armv7 -I../hal/src/nRF52840 -I../hal/src/nRF52840/lwip -I../hal/src/nRF52840/freertos -I../hal/src/nRF52840/mbedtls -I../hal/src/nRF52840/littlefs -I../hal -I../hal/src/nRF52840/posix -I../hal/network -I../hal/network/api -I../hal/network/lwip -I../hal/network/lwip/posix -I../hal/network/lwip/wiznet -I../hal/network/ncp -I../hal/network/ncp/at_parser -I../hal/network/util -I../third_party/lwip/lwip/src/include -I../third_party/freertos/freertos/FreeRTOS/Source/include -I../third_party/nrf5_sdk/nrf5_sdk/external/freertos/portable/GCC/nrf52 -I../third_party/nrf5_sdk/nrf5_sdk/external/freertos/portable/CMSIS/nrf52 -I../third_party/wiznet_driver/wiznet_driver/Ethernet -I../gsm0710muxer/gsm0710muxer/include -I../platform/shared/inc -I../third_party/nrf5_sdk -I../third_party/nrf5_sdk/nrf5_sdk/components/toolchain/cmsis/include -I../third_party/nrf5_sdk/nrf5_sdk/modules/nrfx -I../third_party/nrf5_sdk/nrf5_sdk/modules/nrfx/drivers -I../third_party/nrf5_sdk/nrf5_sdk/modules/nrfx/drivers/include -I../third_party/nrf5_sdk/nrf5_sdk/modules/nrfx/hal -I../third_party/nrf5_sdk/nrf5_sdk/modules/nrfx/mdk -I../third_party/nrf5_sdk/nrf5_sdk/modules/nrfx/hal -I../third_party/nrf5_sdk/nrf5_sdk/modules/nrfx/drivers/src/prs -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/util -I../third_party/nrf5_sdk/nrf5_sdk/components/softdevice/s140/headers -I../third_party/nrf5_sdk/nrf5_sdk/components/softdevice/s140/headers/nrf52 -I../third_party/nrf5_sdk/nrf5_sdk/components/softdevice/common -I../third_party/nrf5_sdk/nrf5_sdk/components/softdevice/mbr/nrf52840/headers -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/fstorage -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/experimental_section_vars -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/atomic -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/crc32 -I../third_party/nrf5_sdk/nrf5_sdk/integration/nrfx/legacy -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/delay -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/log -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/log -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/log/src -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/experimental_section_vars -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/atomic -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/delay -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/queue -I../third_party/nrf5_sdk/nrf5_sdk/components/softdevice/common -I../third_party/nrf5_sdk/nrf5_sdk/components/softdevice/s140 -I../third_party/nrf5_sdk/nrf5_sdk/components/softdevice/s140/headers -I../third_party/nrf5_sdk/nrf5_sdk/components/softdevice/s140/headers/nrf52 -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/fifo -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/atomic_fifo -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/strerror -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/fstorage -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/atomic_flags -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/usbd -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/usbd/class/cdc -I../third_party/nrf5_sdk/nrf5_sdk/components/libraries/usbd/class/cdc/acm -I../third_party/nrf5_sdk/nrf5_sdk/components/ble/common -I../third_party/nrf5_sdk/nrf5_sdk/components/ble/nrf_ble_gatt -I../third_party/nrf5_sdk/nrf5_sdk/components/ble/ble_advertising -I../third_party/nrf5_sdk/nrf5_sdk/components/nfc/t2t_lib -I../third_party/nrf5_sdk/nrf5_sdk/components/nfc/platform -I../third_party/nrf5_sdk/nrf5_sdk/components/nfc/ndef/generic/message -I../third_party/nrf5_sdk/nrf5_sdk/components/nfc/ndef/generic/record -I../third_party/nrf5_sdk/nrf5_sdk/components/nfc/ndef/lauchapp -I../third_party/nrf5_sdk/nrf5_sdk/components/nfc/ndef/text -I../third_party/nrf5_sdk/nrf5_sdk/components/nfc/ndef/uri -I../third_party/nrf5_sdk/nrf5_sdk/external/nrf_cc310/include -I../third_party/nrf5_sdk/nrf5_sdk/external/utf_converter -I../third_party/littlefs/littlefs -I../third_party/miniz/miniz -I../platform/MCU/nRF52840/inc -I../dynalib/inc -Isrc -I./libraries -Ilib/bmi160/src -Ilib/config-service/src -Ilib/Thermistor/src -Ilib/location-service/src -Ilib/cloud-service/src -I. -MD -MP -MF ../build/target/user/platform-26-msrc/tracker.o.d -ffunction-sections -fdata-sections -Wall -Wno-switch -Wno-error=deprecated-declarations -fmessage-length=0 -fno-strict-aliasing -DSPARK=1 -DPARTICLE=1 -Wundef -DSTART_DFU_FLASHER_SERIAL_SPEED=14400 -DSTART_YMODEM_FLASHER_SERIAL_SPEED=28800 -DSPARK_PLATFORM_NET=QUECTEL -fno-builtin-malloc -fno-builtin-free -fno-builtin-realloc  -DLOG_INCLUDE_SOURCE_INFO=1 -DPARTICLE_USER_MODULE -DUSER_FIRMWARE_IMAGE_SIZE=0x20000 -DUSER_FIRMWARE_IMAGE_LOCATION=0xD4000 -DMODULAR_FIRMWARE=1 -DMODULE_VERSION=6 -DMODULE_FUNCTION=5 -DMODULE_INDEX=1 -DMODULE_DEPENDENCY=4,1,2007 -DMODULE_DEPENDENCY2=0,0,0 -D_GNU_SOURCE -DLOG_MODULE_CATEGORY="\"app\""  -fno-exceptions -fno-rtti -fcheck-new -std=gnu++14 -c -o ../build/target/user/platform-26-msrc/tracker.o src/tracker.cpp
In file included from src/tracker.h:26,
                 from src/tracker.cpp:19:
lib/location-service/src/location_service.h:21:10: fatal error: ubloxGPS.h: No such file or directory
   21 | #include "ubloxGPS.h"
      |          ^~~~~~~~~~~~
compilation terminated.
../build/module.mk:274: recipe for target '../build/target/user/platform-26-msrc/tracker.o' failed
make[2]: *** [../build/target/user/platform-26-msrc/tracker.o] Error 1
make[2]: Leaving directory '/firmware/user'
../../../build/recurse.mk:11: recipe for target 'user' failed
make[1]: *** [user] Error 2
make[1]: Leaving directory '/firmware/modules/tracker/user-part'
../build/recurse.mk:11: recipe for target 'modules/tracker/user-part' failed
make: *** [modules/tracker/user-part] Error 2
Error: Command failed with exit code 1: /home/todd/.vscode/extensions/particle.particle-vscode-core-1.12.6/src/cli/bin/linux/amd64/particle cloud compile tracker --target 2.0.0-rc.4 --no-update-check

Compiling code for tracker
Targeting version: 2.0.0-rc.4

(Omitted included because of 32000 character limit)

attempting to compile firmware
Compile failed: make -C ../modules/tracker/user-part all
make[1]: Entering directory '/firmware/modules/tracker/user-part'

mkdir -p target/
make -f ../../../modules/shared/nRF52840/build_linker_script.mk PREBUILD=1
make[2]: Entering directory '/firmware/modules/tracker/user-part'
Creating target/platform_user_ram.ld ...
make[2]: Leaving directory '/firmware/modules/tracker/user-part'

make -C ../../../user 
make[2]: Entering directory '/firmware/user'
Building cpp file: src/tracker_rgb.cpp
Invoking: ARM GCC CPP Compiler
mkdir -p ../build/target/user/platform-26-msrc/
arm-none-eabi-gcc -DSTM32_DEVICE -DnRF52840 -DNRF52840_XXAA -DPLATFORM_THREADING=1 -DPLATFORM_ID=26 -DPLATFORM_NAME=tracker -DPLATFORM_GEN=3 -DUSBD_VID_SPARK=0x2B04 -DUSBD_PID_DFU=0xD01A -DUSBD_PID_CDC=0xC01A -DSPARK_PLATFORM -g3 -gdwarf-2 -Os -mcpu=cortex-m4 -mthumb -mabi=aapcs -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -DINCLUDE_PLATFORM=1 -DSOFTDEVICE_PRESENT=1 -DS140 -DPRODUCT_ID=26 -DPRODUCT_FIRMWARE_VERSION=65535 -D_WIZCHIP_=W5500 -DUSE_STDPERIPH_DRIVER -DDFU_BUILD_ENABLE -DLFS_CONFIG=lfs_config.h -DSYSTEM_VERSION_STRING=2.0.0-rc.4 -DRELEASE_BUILD -I./inc -DSPARK=1 -DPARTICLE=1 -Wundef -DSTART_DFU_FLASHER_SERIAL_SPEED=14400 -DSTART_YMODEM_FLASHER_SERIAL_SPEED=28800 -DSPARK_PLATFORM_NET=QUECTEL -fno-builtin-malloc -fno-builtin-free -fno-builtin-realloc  -DLOG_INCLUDE_SOURCE_INFO=1 -DPARTICLE_USER_MODULE -DUSER_FIRMWARE_IMAGE_SIZE=0x20000 -DUSER_FIRMWARE_IMAGE_LOCATION=0xD4000 -DMODULAR_FIRMWARE=1 -DMODULE_VERSION=6 -DMODULE_FUNCTION=5 -DMODULE_INDEX=1 -DMODULE_DEPENDENCY=4,1,2007 -DMODULE_DEPENDENCY2=0,0,0 -D_GNU_SOURCE -DLOG_MODULE_CATEGORY="\"app\""  -fno-exceptions -fno-rtti -fcheck-new -std=gnu++14 -c -o ../build/target/user/platform-26-msrc/tracker_rgb.o src/tracker_rgb.cpp

Building cpp file: src/tracker.cpp
Invoking: ARM GCC CPP Compiler
mkdir -p ../build/target/user/platform-26-msrc/
arm-none-eabi-gcc -DSTM32_DEVICE -DnRF52840 -DNRF52840_XXAA -DPLATFORM_THREADING=1 -DPLATFORM_ID=26 -DPLATFORM_NAME=tracker -DPLATFORM_GEN=3 -DUSBD_VID_SPARK=0x2B04 -DUSBD_PID_DFU=0xD01A -DUSBD_PID_CDC=0xC01A -DSPARK_PLATFORM -g3 -gdwarf-2 -Os -mcpu=cortex-m4 -mthumb -mabi=aapcs -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -DINCLUDE_PLATFORM=1 -DSOFTDEVICE_PRESENT=1 -DS140 -DPRODUCT_ID=26 -DPRODUCT_FIRMWARE_VERSION=65535 -D_WIZCHIP_=W5500 -DUSE_STDPERIPH_DRIVER -DDFU_BUILD_ENABLE -DLFS_CONFIG=lfs_config.h -DSYSTEM_VERSION_STRING=2.0.0-rc.4 -DRELEASE_BUILD -I./inc -I......
I../third_party/miniz/miniz -I../platform/MCU/nRF52840/inc -I../dynalib/inc -Isrc -I./libraries -Ilib/bmi160/src -Ilib/config-service/src -Ilib/Thermistor/src -Ilib/location-service/src -Ilib/cloud-service/src -I. -MD -MP -MF ../build/target/user/platform-26-msrc/tracker.o.d -ffunction-sections -fdata-sections -Wall -Wno-switch -Wno-error=deprecated-declarations -fmessage-length=0 -fno-strict-aliasing -DSPARK=1 -DPARTICLE=1 -Wundef -DSTART_DFU_FLASHER_SERIAL_SPEED=14400 -DSTART_YMODEM_FLASHER_SERIAL_SPEED=28800 -DSPARK_PLATFORM_NET=QUECTEL -fno-builtin-malloc -fno-builtin-free -fno-builtin-realloc  -DLOG_INCLUDE_SOURCE_INFO=1 -DPARTICLE_USER_MODULE -DUSER_FIRMWARE_IMAGE_SIZE=0x20000 -DUSER_FIRMWARE_IMAGE_LOCATION=0xD4000 -DMODULAR_FIRMWARE=1 -DMODULE_VERSION=6 -DMODULE_FUNCTION=5 -DMODULE_INDEX=1 -DMODULE_DEPENDENCY=4,1,2007 -DMODULE_DEPENDENCY2=0,0,0 -D_GNU_SOURCE -DLOG_MODULE_CATEGORY="\"app\""  -fno-exceptions -fno-rtti -fcheck-new -std=gnu++14 -c -o ../build/target/user/platform-26-msrc/tracker.o src/tracker.cpp
In file included from src/tracker.h:26,
                 from src/tracker.cpp:19:
lib/location-service/src/location_service.h:21:10: fatal error: ubloxGPS.h: No such file or directory
   21 | #include "ubloxGPS.h"
      |          ^~~~~~~~~~~~
compilation terminated.
../build/module.mk:274: recipe for target '../build/target/user/platform-26-msrc/tracker.o' failed
make[2]: *** [../build/target/user/platform-26-msrc/tracker.o] Error 1
make[2]: Leaving directory '/firmware/user'
../../../build/recurse.mk:11: recipe for target 'user' failed
make[1]: *** [user] Error 2
make[1]: Leaving directory '/firmware/modules/tracker/user-part'
../build/recurse.mk:11: recipe for target 'modules/tracker/user-part' failed
make: *** [modules/tracker/user-part] Error 2
	at makeError (/home/todd/.vscode/extensions/particle.particle-vscode-core-1.12.6/node_modules/execa/lib/error.js:59:11)
	at handlePromise (/home/todd/.vscode/extensions/particle.particle-vscode-core-1.12.6/node_modules/execa/index.js:114:26)
	at runMicrotasks (<anonymous>)
	at processTicksAndRejections (internal/process/task_queues.js:94:5)

Again, I am not used to using VSCode and Github and would much prefer to use the Web IDE as it is much more familiar, if there is a way to get the new Tracker devices to show up as targets in the Web IDE, I would be very grateful to be pointed in the right direction.

Thanks!

I’m not sure why the tutorial suggests Particle: Compile and Flash, when you should really be using Particle: Compile application (local) or Particle: Flash application (local). Also as you can see in the screenshot, there are two buttons for compiling and flashing the current project (it will not autosave the current file, however).


I’ve opened a pull request to update the tutorial: https://github.com/particle-iot/docs/pull/1127

When I try the (local) compile, I get this:

> Executing task: make -f '/home/todd/.particle/toolchains/buildscripts/1.9.2/Makefile' compile-user -s <


:::: COMPILING APPLICATION

which: no crc32 in (/home/todd/.vscode/extensions/particle.particle-vscode-core-1.12.6/src/cli/bin/linux/amd64:/home/todd/.particle/toolchains/gcc-arm/9.2.1/bin:/home/todd/.particle/toolchains/buildtools/1.1.1:/home/todd/.particle/toolchains/openocd/0.11.2-adhoc6ea4372.0/bin:/home/todd/.local/bin:/home/todd/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/var/lib/flatpak/exports/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/var/lib/snapd/snap/bin:/var/lib/flatpak/exports/bin:/usr/lib/jvm/default/bin)
../build/common-tools.mk:26: *** "crc32 tool is not found".  Stop.
make: *** [compile-user] Error 2
The terminal process "/bin/bash '-c', 'make -f '/home/todd/.particle/toolchains/buildscripts/1.9.2/Makefile' compile-user -s'" failed to launch (exit code: 2).

Press any key to close the terminal.

And I have the toolchain installed for deviceOS@2.0.0-rc.4

There are several packages you must install to use the full functionality of Workbench on Linux.

The easiest way to install these packages would be to install neopo, my unofficial tool for doing Workbench things from the command line. Not only will it install the packages, but you will also get the neopo utility which you may find useful:

bash <(curl -sL neopo.xyz/install)

On Manjaro/Arch:

yay -S neopo-git

Insstalling now. However, this appears to be a very invasive procedure. This is installing and compiling what seems to be hundreds of packages and replacing packages I already had.

Alright, invasive installation finished. Tried to (local) compile again:

> Executing task: make -f '/home/todd/.particle/toolchains/buildscripts/1.9.2/Makefile' compile-user -s <


:::: COMPILING APPLICATION

Creating /home/todd/Documents/Particle/tracker-edge-develop/target/2.0.0-rc.4/tracker/platform_user_ram.ld ...
In file included from /home/todd/Documents/Particle/tracker-edge-develop//src/tracker.h:26,
                 from /home/todd/Documents/Particle/tracker-edge-develop//src/tracker.cpp:19:
/home/todd/Documents/Particle/tracker-edge-develop/lib/location-service/src/location_service.h:21:10: fatal error: ubloxGPS.h: No such file or directory
   21 | #include "ubloxGPS.h"
      |          ^~~~~~~~~~~~
compilation terminated.
make[3]: *** [../build/target/user/platform-26-m/tracker-edge-develop/src/tracker.o] Error 1
make[2]: *** [user] Error 2
make[1]: *** [modules/tracker/user-part] Error 2
make: *** [compile-user] Error 2
The terminal process "/bin/bash '-c', 'make -f '/home/todd/.particle/toolchains/buildscripts/1.9.2/Makefile' compile-user -s'" terminated with exit code: 2.

Press any key to close the terminal.

ubloxGPS.h should be located at lib/gps-ublox/src/ubloxGPS.h. It is a git submodule, so if you downloaded the .ZIP I doubt it was included.

Can you try to clone the repo again but with https?

git clone https://github.com/particle-iot/tracker-edge 
cd tracker-edge
git submodule update --init --recursive

I have looked up "neopo-git" Why does Particle Workbench NOT work correctly unless your community package is installed? It seems that Particle Workbench SHOULD be fully configured just from installing it into VSCode?

[todd@todd-latitude7280 tracker-edge]$ git submodule update --init --recursive
Submodule 'lib/AM1805' (https://github.com/particle-iot/AM1805.git) registered for path 'lib/AM1805'
Submodule 'lib/can-mcp25x' (https://github.com/particle-iot/can-mcp25x.git) registered for path 'lib/can-mcp25x'
Submodule 'lib/gps-nmea-parser' (https://github.com/particle-iot/gps-nmea-parser.git) registered for path 'lib/gps-nmea-parser'
Submodule 'lib/gps-ublox' (https://github.com/particle-iot/gps-ublox.git) registered for path 'lib/gps-ublox'
Cloning into '/home/todd/tracker-edge/lib/AM1805'...
Cloning into '/home/todd/tracker-edge/lib/can-mcp25x'...
Cloning into '/home/todd/tracker-edge/lib/gps-nmea-parser'...
Cloning into '/home/todd/tracker-edge/lib/gps-ublox'...
Submodule path 'lib/AM1805': checked out 'b210a066d83dfcfacf5a0e171426d4c11e8d7dcf'
Submodule path 'lib/can-mcp25x': checked out 'e0e6e3911018de89887d24500cc0e31a1b177686'
Submodule path 'lib/gps-nmea-parser': checked out '30ade3c67be709d731550f330b194a0ea4d9239c'
Submodule path 'lib/gps-ublox': checked out '90c2a5eb2b9f708eda5827e47240c79af4535528'

I still get this:

> Executing task: make -f '/home/todd/.particle/toolchains/buildscripts/1.9.2/Makefile' compile-user -s <


:::: COMPILING APPLICATION

Creating /home/todd/Documents/Particle/tracker-edge-develop/target/2.0.0-rc.4/tracker/platform_user_ram.ld ...
In file included from /home/todd/Documents/Particle/tracker-edge-develop//src/tracker.h:26,
                 from /home/todd/Documents/Particle/tracker-edge-develop//src/tracker.cpp:19:
/home/todd/Documents/Particle/tracker-edge-develop/lib/location-service/src/location_service.h:21:10: fatal error: ubloxGPS.h: No such file or directory
   21 | #include "ubloxGPS.h"
      |          ^~~~~~~~~~~~
compilation terminated.
make[3]: *** [../build/target/user/platform-26-m/tracker-edge-develop/src/tracker.o] Error 1
make[2]: *** [user] Error 2
make[1]: *** [modules/tracker/user-part] Error 2
make: *** [compile-user] Error 2
The terminal process "/bin/bash '-c', 'make -f '/home/todd/.particle/toolchains/buildscripts/1.9.2/Makefile' compile-user -s'" terminated with exit code: 2.

Particle doesn’t officially support Manjaro/Arch. They do provide some hints for Ubuntu and Fedora.

Over the years I’ve collected knowledge and solutions for using Particle on Linux, and packaged them into neopo, which supports many distributions.

I have spent countless hours ensuring that neopo works in more environments than Particle could ever care about. I apologize for not recommending the AUR method first. The universal installer can appear “invasive”, but in reality neopo has minimal impact on the system.

I understand that you are having a rough introduction with Workbench and neopo, but as a Linux user would you expect anything less? I have personally have experienced nearly every Workbench/CLI issue imaginable, but I have found solutions to those problems and incorporated them into neopo so that others don’t have to.

Have you tried cleaning the project?

Particle: Clean application & DeviceOS (local)

or

neopo clean # If in tracker-edge
neopo clean tracker-edge # Absolute/relative path can also be used

I realized I was working off two different folders as the original project installed into "tracker-edge-develop" and your code and git clone was just "tracker-edge", I remedied this and made sure your suggestions and the submodules and the cleaning were all done to "tracker-edge"

Now I get:

> Executing task: make -f '/home/todd/.particle/toolchains/buildscripts/1.9.2/Makefile' compile-user -s <


:::: COMPILING APPLICATION

In file included from /home/todd/tracker-edge/lib/cloud-service/src/cloud_service.h:40:0,
                 from /home/todd/tracker-edge/lib/config-service/src/config_service.h:23,
                 from /home/todd/tracker-edge//src/tracker_rgb.h:19,
                 from /home/todd/tracker-edge//src/tracker_rgb.cpp:19:
/home/todd/tracker-edge/lib/cloud-service/src/background_publish.h: In member function 'bool BackgroundPublish::try_lock()':
/home/todd/tracker-edge/lib/cloud-service/src/background_publish.h:65:39: error: 'class RecursiveMutex' has no member named 'try_lock'
         bool try_lock() {return mutex.try_lock();};
                                       ^
In file included from /home/todd/tracker-edge/lib/config-service/src/config_service.h:23:0,
                 from /home/todd/tracker-edge//src/tracker_rgb.h:19,
                 from /home/todd/tracker-edge//src/tracker_rgb.cpp:19:
/home/todd/tracker-edge/lib/cloud-service/src/cloud_service.h: At global scope:
/home/todd/tracker-edge/lib/cloud-service/src/cloud_service.h:43:15: error: redeclaration of 'SUCCESS'
     SUCCESS = 0,
               ^
In file included from ../hal/src/stm32f2xx/pinmap_impl.h:20:0,
                 from ../hal/inc/pinmap_hal.h:64,
                 from ../hal/inc/gpio_hal.h:31,
                 from ../hal/src/stm32f2xx/platform_headers.h:16,
                 from ./inc/application.h:38,
                 from ./inc/Particle.h:5,
                 from /home/todd/tracker-edge//src/tracker_rgb.cpp:17:
../platform/MCU/STM32F2xx/CMSIS/Device/ST/Include/stm32f2xx.h:289:26: note: previous declaration 'ErrorStatus SUCCESS'
 typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus;
                          ^
In file included from /home/todd/tracker-edge//src/tracker_rgb.cpp:20:0:
/home/todd/tracker-edge//src/tracker_cellular.h:34:23: error: 'CellularSignal' has not been declared
         int getSignal(CellularSignal &signal, unsigned int max_age=TRACKER_CELLULAR_DEFAULT_MAX_AGE_SEC);
                       ^
/home/todd/tracker-edge//src/tracker_cellular.h:51:9: error: 'CellularSignal' does not name a type
         CellularSignal _signal;
         ^
/home/todd/tracker-edge//src/tracker_rgb.cpp: In function 'void rgb_control_timer_cb()':
/home/todd/tracker-edge//src/tracker_rgb.cpp:67:13: error: 'CellularSignal' was not declared in this scope
             CellularSignal signal;
             ^
/home/todd/tracker-edge//src/tracker_rgb.cpp:69:54: error: 'signal' was not declared in this scope
             if(TrackerCellular::instance().getSignal(signal))
                                                      ^
make[3]: *** [../build/target/user/platform-6-m/tracker-edge/src/tracker_rgb.o] Error 1
make[2]: *** [user] Error 2
make[1]: *** [modules/photon/user-part] Error 2
make: *** [compile-user] Error 2
The terminal process "/bin/bash '-c', 'make -f '/home/todd/.particle/toolchains/buildscripts/1.9.2/Makefile' compile-user -s'" terminated with exit code: 2.

Press any key to close the terminal.

Is the project configured for tracker and the correct deviceOS version?

neopo configure tracker 2.0.0-rc.4

That was it!
When I rebuilt the folders I needed to reset the deviceOS and tracker… It compiled successfully.

However, trying to flash. I have already had my /dev/ttyUSB01 setup in the UUCP group to talk to pycom chips, but Particle is telling me this:

> Executing task: make -f '/home/todd/.particle/toolchains/buildscripts/1.9.2/Makefile' flash-all -s <


:::: PUTTING DEVICE INTO DFU MODE

▌ Getting device information...You are missing the permissions to access USB devices without root.

Not sure how to set up my serial ports any differently than I already have?