This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

nRF51822 w/s110 7.1.0 supports revision 2 or no?

In the changelog for 7.1.0 is says:

"This version deprecates all previous 7.x.x versions"

But in the compatibility matrix, it seems like 7.1.0 is only supported by revision 3 chips, and SDK 7.1 is only supported by revision 3 chips.

Somehow, I have been using SDK 7.1 and s110 7.1.0 on the revision 2 nRF51822 in my older school Nordic developer kit with no problems, but now that it comes to flashing the s110 and my executable onto a device of my own design, despite JLinkExe (on the Mac w/GCC) flashing the s110 7.1.0 at 0x0 and my 7.1 compiled .out executable at 0x16000, I'm having problems with crashes in softdevice_handler.c that seem typical of some kind of mismatched SDK/firmware or unsupported firmware problem.

So does the 7.1.0 s110 image work on revision 2? My hardware ID is 003C, which indicates QFAA Gx0, which should have a pretty standard 256/16 pretty much identical to my older school Nordic developer kit (in which 7.1.0/7.1 seem to work fine).

Any thoughts?

I'm using a BLE module from Raytac that I erased via JLinkExe by:

"w4 4001e504 2 w4 4001e50c 1"

Is there something else special I should be doing to config the nRF51822 besides flashing in s110 and my executable?

My next step is to downgrade to a s110 and SDK version that match the compatibility chart, but it's a lot of work to refactor my GCC makefile on OSX to match the (substantially) different SDK directory layouts.

Thanks for reading!

  • It's supported - even tells you how to use the older boards with the 7.x kit. There's really nothing much different in there, the softdevice is the same, the 7.x kit is really mostly the same library code with the directory structure turned upside down. As long as the softdevice you're using matches the headers you're building with to call into it, you're fine.

    There may come a point that Nordic takes advantage of the silicon bugs they fixed in the rev 3 hardware either in the softdevice code or the library code, but if that happens, and it's not happened yet, they'll make it very clear.

    I can't suggest at all what your issue might be, but it's not a 7.1.0 hardware incompatibility issue.

  • Awesome, thanks for the confirmation. Is there something special I should be doing to flash the s110 7.1.0? I'm doing something like this:

    $ JLinkExe -device nrf51822 -if swd -speed 4000

    J-Link> loadbin s110_nrf51822_7.1.0_softdevice.hex 0

    I'm noticing old forum posts about having to split/convert the hex file into bin files. Is that necessary?

    Thank you for the help!

  • As it turns out, there wasn't anything special I needed to do, no splitting required, although looks like I should have been using loadfile instead of loadbin to be totally correct, but that wasn't the problem either. My problem turned out to be that I don't have GCC working properly. Everything was working, I just couldn't tell because run under GCC, my program throws exceptions that it doesn't throw when not under GCC. Related thread: https://devzone.nordicsemi.com/question/23721/what-is-the-right-way-to-flash-s110-710/

  • I solved my GCC problem by using just "symbol_file" to load symbols only to what was flashed by JLinkExe rather than using "file". Debugging no problem now! Yay!

Related