platformio / platform-nordicnrf51

Nordic nRF51: development platform for PlatformIO
https://registry.platformio.org/platforms/platformio/nordicnrf51
Apache License 2.0
20 stars 25 forks source link

support for nordic sdk as framework #24

Open zerog2k opened 5 years ago

zerog2k commented 5 years ago

We have support for arduino and mbed frameworks, but would like to investigate support for using nordics nrf5 sdk (hals/drivers, etc).

I think I understand about 80% of what needs to be done, but may need some help on polishing, patching, and packaging.

Curious how many folks would be interested in such an effort?

Related question would be if it is possible for a user/board to specify a certain revision of the framework (sdk). Reason being is that nrf51 devices support maximum of nrf5 sdk 12.3.0, whereas nrf52 support latest versions. (nrf5 sdk version also dictates which softdevice is used, if ble softdevice is required, but i think this can be tied to and encapsulated into the framework logic?)

vshymanskyy commented 5 years ago

+++

tlongeri commented 5 years ago

+1

SebasScript commented 5 years ago

+1, having the Nordic SDK as a framework would be great

ASL07 commented 5 years ago

Very interesting stuff, let me know if I can help

mactabish commented 5 years ago

Is work being started on this? Very interested in using native NRF sdk on PIO.

baneageorge commented 5 years ago

@zerog2k Hi Jens, any chance we get in touch?

trembel commented 5 years ago

+1, would be very nice

andersliland commented 5 years ago

+1, would be very nice

andrealongobardi85 commented 5 years ago

+1

davidlimhk commented 5 years ago

+1

superhappychris commented 4 years ago

+1 yes please!

hpssjellis commented 4 years ago

Can someone comment on any progress that has been done to implement the Nordic SDK. I have an online docker that has all three of: Platformio, Nordic SDK and Openthread, working individually but have no idea how to integrate the three. Any suggestions would be appreciated.

The github is here my-gitpod-of-openthread

Or just click on the button below to load the Gitpod docker (Needs a Github or Gitlab login)

Open in Gitpod

Openthread can generate a .hex file for the Nordic nRF52840 USB Dongle to be installed using nrf-connect for desktop

The Nordic SDK can generate .bin or .hex files for installing either using the Arduino IDE (with a bit of command line hack) or nrf-connect for desktop.

PlatformIO Client is installed and works great when connected with a local machine remote agent.

zerog2k commented 4 years ago

I'm not aware of anyone actively working on this. I was trying to gauge interest and find others who could help support such a thing, but I have not really done much on nrf51 in a while - seems like most have moved to nrf52+ (although there are quite a few limited devices out there in the wild still using nrf51)

knud commented 4 years ago

I've been doing both nRF51 and nRF52 work with the latest SDKs that support either, so 12.3 and 16, respectively, as of today. I would really like to get away from Eclipse as the environment and am considering PlatformIO. Would be willing to help since I might have learned useful things just getting the nRF51 stuff going (which was for a RedBear Nano v1, nRF51822).

hpssjellis commented 4 years ago

@knud please look here on platformIO community

I am having some success with various nRF52840 boards But having issues reassigning pins that aren't pre-defined for the Arduino 33 BLE. Any pin assigned I can reassign just confused if a nRF52840 SOC pin that hasn't been used by Arduino but is used by one of the other boards.

knud commented 4 years ago

@hpssjellis Thanks for the quick ping back.

My interest is not only various dev kit/eval boards, but custom boards. I have several I’ve developed and the obvious, first step is to do a custom pin mapping thing. With the SDK that’s pretty straightforward.

I’ll have to dig into how the boards supported for nRF52 on PIO are specified before I can be of much use. Coming late to the party, so to speak... and have not yet done too much with PIO...

hpssjellis commented 4 years ago

@knud I made a pin map spreadsheet for the Nano33Ble, Nordic and makerdairy nrf52840 dongles and the particle xenon. It will have a few errors but should be a starting point. I just need to know how to get one undefined pin working and should be fine from there.

https://github.com/hpssjellis/everything-nrf52840-usb-dongles/blob/master/images/general-pins03.ods

zerog2k commented 4 years ago

I think I had documented or summarized my thoughts on how to setup a new sdk for an existing platform somewhere a year or so ago, let me see if I can dig it up. Unless perhaps someone has created a better tutorial. (I think this was why I was initially asking if anyone was already working on this, or had a shared group of interest who could help with parts of this.)

edit, found it: https://community.platformio.org/t/custom-framework-development-guidance/4716/2

zerog2k commented 4 years ago

I'm recollecting that one of the hurdles might have been how to (re-)distribute the nordic sdk automatically from platformio sdk/framework builds. If nothing else, I'm guessing it should be somehow possible to have a scripted download helper, or at the worst, require user to download and deploy the sdk into some location. Perhaps someone here has experience or knowledge about restributing the nordic nrf5* sdks? Possibly related is the handling of softdevices. However, I'm sure that we could collectively come up with a creative solution that satisfies all of this.

(as a side note, I think even the nrf5 sdk 12.3.0 for example will need some patches, I myself had found a bug [typo in one of the proprietary radio functions] or maybe two in the sdk, and nordic basically said they would not be releasing even fixes to old sdks).

edit: good news: looks like sdk >= 13 can be easily redistributed: https://devzone.nordicsemi.com/nordic/nordic-blog/b/blog/posts/introducing-nordics-new-software-licensing-schemes bad news: looks like sdk < 13 (looking at you nrf51 sdk 12.3) may be a bit trickier. Might be best to stay with zephyr, arduino, or mbed toolkits/frameworks for this. https://devzone.nordicsemi.com/f/nordic-q-a/18902/redistributing-the-sdk-as-personal-github-repo

edit2: this may be another route (I just became aware of this ;): https://github.com/NordicSemiconductor/nrfx

hpssjellis commented 4 years ago

Glad both @knud and @zerog2k are interested in this. My approach is probably going to be to get as many nRF52840 boards working as I can using the Arduino IDE and the Nano 33 BLE bootloader, which does work very well PlatformIO. Then write code to activate the dead pins on the other boards. How to get these other boards working on PlatformIO I might leave to the experts as I am still fairly new to PlatformIO.

adrianschlatter commented 4 years ago

+1 from my side.

Zhurakovsky commented 3 years ago

+++

optimiseddesign commented 3 years ago

Yes please!

johanneskopf commented 3 years ago

+1

pingdan32 commented 3 years ago

++++++

MakeSenseIoT commented 3 years ago

Yes please!

RoelandMatthijssens commented 2 years ago

+1

rroels commented 2 years ago

+1

andy-kogsys commented 2 years ago

Yes please!

hannesweisbach commented 2 years ago

+1

daanstevenson commented 2 years ago

+1

TauqirH commented 2 years ago

wen sdk support

danysz commented 2 years ago

+1

zapta commented 2 years ago

+1

JeffResc commented 2 years ago

+1

TauqirH commented 2 years ago

+100

arslanmughal99 commented 1 year ago

+1

ilhangrn commented 11 months ago

+1