Hi,
I am working on a new development board that uses the Insight SIP ISP4520.
The ISP4520 is basically a Nordic nRF52832 and a Semtech SX126x put together into one SoC. If the prototypes are working well, the boards will be on sale from early 2020 on.
I tried to use the existing nRF52 package (the Adafruit version), but I have problems, because neither the bootloader nor the pin-definitions of the existing variants work well with the ISP4520.
I created my own package that fixes all the issues that I had and I can load and use it in ArduinoIDE by adding it to the Additional Boards Manager URLs.
But I don’t want to use ArduinoIDE, as I do all my dev projects with PlatformIO.
I know how I create a custom platform to PlatformIO, but I struggle to define a custom package. It seems that all I can use are the packages on Service End for Bintray, JCenter, GoCenter, and ChartCenter | JFrog.
Any way to create a custom package with a custom platform, so that I can use PlatformIO for my new board? I tried to find out how the platforms load the packages, but get stuck at FRAMEWORK_DIR = platform.get_package_dir("framework-arduinoadafruitnrf52")
How can I replace that to load a custom package from Github?
Thank you for the "friendly’ welcome.
What I kindly asked for is if it is possible to use a custom package instead of “approved” existing ones.
The problems I have with the existing nRF52 package are
need changed bootloader written by me (secure,)
need include specific LoRa library for this chip in the package
requirement to not be linked to Adafruit brand
A more helpful answer would be appreciated, even if it is just a NO, it is not possible because of…
If it’s just that then the docs tell you the solution: Redirecting... as a per-project directive. Note that you need a package.json file in your repo to describe the package. This is all more explained in the docs (Custom Platform & Board — PlatformIO latest documentation) and the existing packages. Example:
I missed the option to override the default package with env:override_framework per project.
I did already the custom platform.json for my package
But I was hoping to have a project independant solution, where a custom platform could load a custom package from a location different than bintray.com.
Thanks for your fast reply and I hope you have a solution for me.
But if you already have your custom platform you can modify your platform.json to add your package repository to packageRepositories. (or additionally remove all package repositories but yours, but then you’ll have to provide all needed tools like toolchain-gccarmnoneabi, uploads etc…)
As an example you can look at the linked ones (example)
Now I am stuck with the fact that on PlatformIO the Adafruit Arduino framework is still on release 0.13.0, but on ArduinoIDE it is upgraded to release 0.14.0 - 2019.09.27
No need, I solved it. And I don’t care when the Adafruit platform will be updated.
Putting this platform into the .platformio\platforms folder and run pio platform install circuitrocks and all is setup and my custom package with custom platform is up and running.
And my package is based on the latest Adafruit nRF52 Arduino version 0.14.0 - 2019.09.27 and not 2 releases behind.
Again PlatformIO ROCKS!!!
Thank you very much guys for giving this development IDE to us for free!
If our board is a success, I might come back here next year and ask you to make this platform a contributed platform.