Hi guys,I'd be interested in hearing some opinion and/or discussion around development tools and UX. As we all know, creating BLE applications with any tool, is not especially easy. Not talking about learning platforms like the micro:bit. But for "real" development platforms in general.
This was one thing that I discovered when starting with Nordic: In spite of the ingenious design of SoftDevices and the SDK, the toolchain of the nRF products may not be the easiest to get your head around. There is no single download-to-rule-them-all or wizard-based code generators. There are overview tutorials and code examples to start with, where you usually choose an example that fits one of the peripherals you want to work with. But the moment you need to integrate more perihperals, as is most often the case with BLE applications, the next step may be a bit obscure. And fiddly.
Having worked a fair bit with the Atmel AVR, the difference was very tangible. Atmel had AVR studio, which was an integrated development and debugging platform. It included gcc and connected and updated external hardware tools automatically. Then Atmel Studio, also including the choice of which modules to include in your project and do some initialization housework at the click(s) of a button(s). There was also, the Imagecraft and CodeVision compilers/IDEs which had a setup wizard included; allowing you to setup peripherals like timers, GPIO and ADC without writing code.
The AVR range is of course not directly comparable to the nRF products in terms of features and performance.But what do you think - are there similar approaches that would benefit the nRF products? Maybe you think the tools are just fine, but agree that some more integrated tutorials and examples could be useful?What are your most appreciated features of a development toolchain?
Cheers and thanks;Eivind :-)
It is no secret that the nRF SDK toolchain has been confusing a lot of people, with build errors, environment set-up errors and missing tools. I had to help someone the other week as the tutorials he read and getting started assistant didn't tell him to install nrfjprog. Without it, he was getting the 'File not found" error. It's safe to say that process of setting up the toolchains and development tools could be a little bit easier for new users.
A single unified method of installing everything in one go would be a welcome feature for new user's looking to adopt the nRF SDK, as it's hard to be enthusiatic about a platform that you had to spend several days setting up as something went wrong.
I will say that Nordic have definitely tried hard to make the new SDK easier to set-up over the past year. When I got one of the early access nRF9160 DKs, getting everything set up and working was a lot more confusing than it is now and this was using a laptop that was already set-up to build for nRF52s. The addition of the SDK tutorials and Getting Started Assistant make the process much simpler.
I have never used AVR as I personally only left University and started working 2 years ago so my only experience is with the nRF5x and nRF91 series. Would I be wrong in saying that SEGGER Embedded Studio is a similar IDE to Atmel Studio? It sounds somewhat similar from your description and can even set-up peripherals as well.
Tutorials are always appreciated, so more tutorials that explore the set-up of the SDK, toolchain and basic introduction to the Zephyr Platform is definitely something that Nordic should work on in the background. I don't believe there is a such thing as too many tutorials and I appreciate that Zephyr has it's own list of example programs and documentation to demonstrate features on a generic level. I'm sure there is a way to flatten all issues on this forum into a list and develop tutorials around those most common issues or questions; maybe even just a simple FAQ for toolchain set-up.
I have not negligible experience programming MCUs, but Nordic has been my first swing at a real wireless protocol environment. It has not been friendly, but I can imagine worse. If I had a magic wand I would want maybe two things:
Other than that, it would be cool if they were a little more transparent - I'm trying to use SDK 17.x... why is this different from SDK 15.3.x? What are they trying to accomplish moving on to the newer version numbers? Maybe this is documented somewhere, but I haven't found it. As it is, I have been referencing pages in the infocenter that "Are not found in the bookmarks" - why such obscurity?
Have you looked at the new nRF Connect SDK - that's supposed to be the way forward, and to address some of the deficiencies of the old SDK approach ... ?
SmallerPond said: I'm trying to use SDK 17.x... why is this different from SDK 15.3.x?
But that's the same for any & every piece of software - they are always growing & developing.
You can see what's changed in the Release Notes.
Have a look at these blog pages.
Since you are already familiar with eclipse. See this page for working with eclipse GCC on nRF51 & nRF52