E-Series LTE - Unable to add libraries via CLI?

Hey All,

Got my E-Series LTE Module up and running these past few weeks, however I’ve only been using libraries/sensor supported via web IDE. I want to add this external library (https://learn.sparkfun.com/tutorials/qwiic-distance-sensor-vl53l1x-hookup-guide) & use it’s sensor with my E-Series LTE Module (which is working perfectly on my arduino)

  • HOWEVER - when I try connecting via USB to add the external library the CLI claims my device is not registered. Particle Support told me to put into “Listening Mode” which I did - still the same results, I was reading that devices still need to be connected to the internet when connected via USB? Which doesn’t sound right since you force it into listening mode and disconnect from the

Has anyone else run into this issue? I haven’t seen exact instructions for adding libraries via CLI for the E-Series modules … any help appreciated, thanks!

What are you using as host OS?
Which command(s) did you use to add the libraries to your project?
Which command(s) did you use to flash the device?

Adding libraries to a project has nothing to do with the hardware you are using. Hence I’ve no idea why CLI would even mention the device being registered or not when importing the library.


When an external library complies with the current Arduino Libraries structure you can copy the library folder into the lib directory of your project (however the folder should be named like the library itself - in your case, you need to remove the _master part - and you should remove the examples subfolder).

There was also a support ticket filed about this. I was able to “particle library upload” the referenced lib, but only after changing the “name” field in the library.properties file to not have any spaces in it.

I have no idea whether the lib works with our devices as-is though.

Windows 10 - Surface Pro 5
*I’ve downloaded the zip folder for the library … where does it need to be located in order to be added/uploaded? The second command I used said “not found in directory C:\WINDOWS\System32” … so I’m still pretty confused.

I tried “particle library upload”
I tried “particle library add”

You should not run CLI inside \Windows\system32.

This is - as the name suggests - a system-relevant directory and you should not really be there (unless you absolutely know what you are doing :wink: )

You should rather be in a directory where you have non-privileged write access (e.g. \Users\[yourUser]\) or any other safe directory.

Also, if you want to upload a library you should execute the command from that path where the respective library.properties file is located (and that should not be \Windows\system32).

Next, in order to add a library to a project, you first need to have a project, which you’d create via particle project create (again not in \Windows\system32) - and that library must be available, which VL53L1X isn’t as long no-one has successfully uploaded it :wink:

Okay, so I went ahead and was able to create a blank “VL53L1X” in my users folder. I now see the src folder where the .h and .cpp files live. I’m attempting to add and upload the library that I would like - but still some issues like “Network error” which is because I’m not online in the airport … I will retry this once home. In the meantime I do have some more questions:

*what’s the difference between “add” and “upload”
*if Dave from TechSupport already added the library I want to use (SVL53L1X) can I just add this? Will I ever see it in the web IDE library search??
*in order for me to use this library and throw it onto my Particle boards must I export the files that I create/edit in the web IDE and then manually flash via CLI?

Let’s ask CLI

C:\>particle library --help
Manage firmware libraries
Usage: particle library <command>
Help:  particle help library <command>

  add      Add a library to the current project.
  create   Create a new library in the specified or current directory
  copy     Copy a library to the current project
  list     List libraries available
  migrate  Migrate a local library from v1 to v2 format
  search   Search available libraries
  upload   Uploads a private version of a library.
  publish  Publish a private library, making it public
  view     View details about a library

upload lets you push a library you have written to the cloud library repository, but only visible to your account (private). If you want to make it visible for others (public), you’d need to publish it after you uploaded it.
add on the other hand uses an already online available library in a project.

Yes, as explained above (private vs. public)

I can’t see such a library, so I’d guess you won’t either.

Nope, once you have uploaded a library you can use it just as any other library too.