release_notes.txt 358 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256
  1. nRF5 SDK v17.0.2
  2. ------------------------
  3. Release Date: September, 2020
  4. This SDK release is a bug fix release replacing nRF5 SDK v17.0.0.
  5. This version contains the latest MDK (v8.35.0) with a bug fix that properly handles errata
  6. on future devices with unknown HW ID.
  7. If you are using v17.0.0 for development, it is strongly recommended to switch to v17.0.2.
  8. Highlights:
  9. - Added support for version 7.2.0 of SoftDevices S112, S113, S132, and S140.
  10. - Added workarounds for anomalies 211 and 223.
  11. - Added new nrfx v1.8.6 with a new MDK.
  12. See 'Compatibility of SES projects'.
  13. The following toolchains/devices have been used for testing and verification:
  14. - ARM: MDK-ARM version 5.25
  15. - GCC: GCC ARM Embedded 9.2019q4.major
  16. - IAR: IAR Workbench 7.80.4
  17. - SES: SES 4.50
  18. ****
  19. Compatibility of SES projects:
  20. Updates and fixes in the MDK used by Segger Embedded Studio break backwards compatibility
  21. with old SES project files.
  22. To use old projects in combination with this version of the SDK (MDK),
  23. make the following updates:
  24. 1. In the flash_placement.xml file:
  25. MemorySegment name must be changed from "RAM" to "RAM1":
  26. <MemorySegment name="RAM1" start="$(RAM_PH_START)" size="$(RAM_PH_SIZE)">
  27. 2. In the .emProject file:
  28. In "linker_section_placements_segments" you must refer to "RAM1", replacing "RAM":
  29. linker_section_placements_segments="FLASH RX 0x0 0x100000;RAM1 RWX 0x20000000 0x40000"
  30. *****
  31. Note for IAR 8 users:
  32. (Libraries for IAR 8 require wchar_t to be of size 32 bits while IAR 7 requires 16 bits).
  33. To run a project using IAR 8, follow these intructions:
  34. 1. Open the IAR project in IAR 8. The IAR workbench will automatically generate an IAR 8 compatible project file.
  35. 2. If the project contains one of the precompiled libraries listed below, replace it
  36. with the IAR 8 compatible alternative (there are no projects targeting nRF51 in this SDK).
  37. 3. Save the project.
  38. 4. When building the project, you might get the warning: "The header file 'cmsis_iar.h' is obsolete and should not be used. [...]".
  39. - The problem is described in DevZone post: https://devzone.nordicsemi.com/f/nordic-q-a/31123/iar-ewarm-8-22-1-complains-about-cmsis_iar-h
  40. The solution is to remove all occurrences of #include <cmsis_iar.h>.
  41. The affected libraries are:
  42. - micro-ecc crypto:
  43. - IAR7: Includes library located in the folder named “…_iar\…”.
  44. - IAR8: Switch to using the library from the folder named “…_armgcc\…”.
  45. - nrf_cc310, nrf_cc310_bl, and nrf_oberon:
  46. - IAR7: Link to a library where “short_wchar” is part of the folder name.
  47. - IAR8: Link to a library without “short_wchar” in the folder name.
  48. - Gazell, NFC Tag, and 802.15.4:
  49. - IAR7: Includes the library where the file name ends with “_iar”.
  50. - IAR8: Switch to using the library with similar file name that ends with “_gcc”.
  51. *****
  52. Supported SoftDevices:
  53. - S112 v7.2.x
  54. - S113 v7.2.x
  55. - S122 v8.x.x
  56. - S132 v7.2.x
  57. - S140 v7.2.x
  58. - S212 v6.1.x
  59. - S312 v6.1.x
  60. - S332 v6.1.x
  61. - S340 v6.1.x
  62. Supported boards:
  63. - PCA10040
  64. - PCA10040E (nRF52810 emulation on PCA10040)
  65. - PCA10056
  66. - PCA10056E (nRF52811 emulation on PCA10056)
  67. - PCA10100 (support in selected examples)
  68. - PCA10100E (nRF52820 emulation on PCA10100)
  69. - PCA10059 (support in selected examples)
  70. - D52DK1 from Garmin Canada (only for ANT examples)
  71. - PCA10112 (nRF52840 with the nRF2140 front-end chip)
  72. For other devices and boards, see the SDK documentation, section "Using
  73. the SDK with other boards".
  74. *** New features
  75. *****************
  76. ** Drivers and libraries **
  77. - nrfx has been updated to version 1.8.6.
  78. For details, see .\modules\nrfx\changelog.md.
  79. ** DTM **
  80. - Added support for new commands added in Bluetooth Core Specification 5.1 and 5.2.
  81. - You can now use a vendor-specific command to control the output power on the nRF21540 PA/LNA chip at runtime.
  82. *** Changes
  83. ***********
  84. ** Drivers and libraries **
  85. - Radio Test Example:
  86. Updated the radio_test_init() implementation to enable calling it multiple times.
  87. Documented how to use the API from radio_test.h directly.
  88. ** USB **
  89. - Added an optional workaround for anomaly 211.
  90. If `NRFX_USBD_USE_WORKAROUND_FOR_ANOMALY_211 = 1` is set,
  91. the USB stack will handle cases of waking up not preceeded by a resume signal.
  92. - Added a workaround for anomaly 223 in nrfx_usbd.h.
  93. The workaround fixes a possible but unlikely case where USB might be in incorrect state after power-on.
  94. - Implemented a bug fix on USB HID related to usage with MacOS.
  95. The USB stack has been fixed to update the HID report buffer when idle mode is set to a non-zero value.
  96. This fixes the issues with USB HID Composite Example on macOS devices.
  97. *** Bug fixes
  98. ****************
  99. ** nrfx/MDK **
  100. - Added a new nrfx version that includes a new MDK.
  101. The MDK contains a fix for an issue where it would not properly handle errata
  102. on future devices with unknown HW ID.
  103. The bug was introduced in nRF5 SDK v17.0.0.
  104. ** Proprietary **
  105. - Enhanced ShockBurst library:
  106. - Fixed a bug in ESB PRX related to ACK payload.
  107. When there is only one ACK payload, it sends the same payload twice.
  108. ** Crypto **
  109. - nrf_crypto:
  110. - Added nrf_oberon v3.0.6 with the following bug fixes:
  111. - Fixed alignment issues when wrapping SHA-1 and SHA-256 contexts inside other context types.
  112. - Added missing symbol for HKDF/HMAC using SHA-1.
  113. - Added extra parameter check in nrf_crypto_ecc_byte_order_invert to prevent undefined behavior
  114. when invalid input is given.
  115. ** Bluetooth Low Energy **
  116. - Fixed a potential variable overflow in the Queued Writes library.
  117. *** Known Issues
  118. ****************
  119. ** General **
  120. - The workaround for Anomaly 198 for nRF52840 SPIM3 peripheral
  121. that has been implemented in nrfx_spim cannot be used with a SoftDevice.
  122. Flag NRFX_SPIM3_NRF52840_ANOMALY_198_WORKAROUND_ENABLED must be set to zero.
  123. The workaround based on a dedicated RAM block for SPIM3 must be used instead.
  124. - usbd_msc example has a limitation. With setting "APP_USBD_CONFIG_EVENT_QUEUE_ENABLE = 0", when USB
  125. cable is unplugged and re-plugged, the application goes into an endless loop.
  126. This is due to an issue in the unsupported block device library.
  127. ** BLE **
  128. - GATTC: the ble_gattc_service_t::uuid field is incorrectly populated
  129. in the BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP event if the
  130. sd_ble_gattc_primary_services_discover() or sd_ble_gattc_read()
  131. are called when a Primary Service Discovery by Service UUID is already ongoing.
  132. When the application has called sd_ble_gattc_primary_services_discover(),
  133. it should wait for the BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP event before calling
  134. sd_ble_gattc_primary_services_discover() or sd_ble_gattc_read().
  135. - The TFTP Background DFU example has known instabilities.
  136. - BLE Interactive CLI example: the command to set a custom ATT MTU only takes
  137. effect on the subsequent connection and the updated MTU parameter is not
  138. maintained in further connections with the same peer, even when bonded.
  139. - ANT Shared Channels example: when testing BLE connection with an Android device,
  140. the link is terminated by Android due to unhandled LL requests.
  141. - Bluetooth ANCS example: when connected from iPhone and pressing DK buttons,
  142. the example may assert before the BLE link is authenticated.
  143. ** Crypto **
  144. - The nrf_crypto CLI example may fail when using ecc private key converted
  145. from raw function for specific curve types.
  146. ** Drivers and libraries **
  147. - The SAADC driver does not handle detection limits 'high' and 'low' correctly
  148. if SAADC resolution is greater than 10 bits.
  149. - USBD:
  150. - The library may handle Remote Wakeup incorrectly.
  151. - Issuing a SET_ADDRESS(0) request does not cause the device to change
  152. its state to default.
  153. - The device does not STALL when a DATA transaction is received outside of SETUP.
  154. It ACKs instead.
  155. - LEDS_OFF, LEDS_ON, LED_IS_ON, LEDS_INVERT, LEDS_CONFIGURE macros defined in boards.h
  156. work only with pins on port 0
  157. ---------------------------------------------------------------------------
  158. nRF5 SDK v17.0.0
  159. ------------------------
  160. Release Date: June, 2020
  161. Highlights:
  162. - Added support for a new chip: nRF52820
  163. - Added support for a new SoftDevice: S122
  164. (size-optimized central-only Bluetooth Low Energy SoftDevice)
  165. - Added a driver for the new RF front-end module nRF21540
  166. - Removed IoT components and examples
  167. - Removed Keil 4 support
  168. The following toolchains/devices have been used for testing and verification:
  169. - ARM: MDK-ARM version 5.25
  170. - GCC: GCC ARM Embedded 9.2019q4.major
  171. - IAR: IAR Workbench 7.80.4
  172. - SES: SES 4.50
  173. *****
  174. Note for IAR 8 users:
  175. (Libraries for IAR 8 require wchar_t to be of size 32 bits while IAR 7 requires 16 bits).
  176. To run a project using IAR 8, follow these intructions:
  177. - Open the IAR project in IAR 8. The IAR workbench will automatically generate an IAR 8 compatible project file.
  178. - If the project contains one of the precompiled libraries listed below, replace it
  179. with the IAR 8 compatible alternative (there are no projects targeting nRF51 in this SDK).
  180. - Save the project.
  181. - When building the project, you might get the warning: "The header file 'cmsis_iar.h' is obsolete and should not be used. [...]".
  182. - The problem is described in DevZone post: https://devzone.nordicsemi.com/f/nordic-q-a/31123/iar-ewarm-8-22-1-complains-about-cmsis_iar-h
  183. The solution is to remove all occurrences of #include <cmsis_iar.h>.
  184. The affected libraries are:
  185. - micro-ecc crypto:
  186. - IAR7: Includes library located in the folder named “…_iar\…”.
  187. - IAR8: Switch to using the library from the folder named “…_armgcc\…”.
  188. - nrf_cc310, nrf_cc310_bl, and nrf_oberon:
  189. - IAR7: Link to a library where “short_wchar” is part of the folder name.
  190. - IAR8: Link to a library without “short_wchar” in part of the folder name.
  191. - Gazell, NFC Tag, and 802.15.4:
  192. - IAR7: Includes the library where the file name ends with “_iar”.
  193. - IAR8: Switch to using the library with similar file name that ends with “_gcc”.
  194. *****
  195. Supported SoftDevices:
  196. - S112 v7.x.x
  197. - S113 v7.x.x
  198. - S122 v8.x.x
  199. - S132 v7.x.x
  200. - S140 v7.x.x
  201. - S212 v6.1.x
  202. - S312 v6.1.x
  203. - S332 v6.1.x
  204. - S340 v6.1.x
  205. Supported boards:
  206. - PCA10040
  207. - PCA10040E (nRF52810 emulation on PCA10040)
  208. - PCA10056
  209. - PCA10056E (nRF52811 emulation on PCA10056)
  210. - PCA10100 (support in selected examples)
  211. - PCA10100E (nRF52820 emulation on PCA10100)
  212. - PCA10059 (support in selected examples)
  213. - D52DK1 from Garmin Canada (only for ANT examples)
  214. - PCA10112 (nRF52840 with the nRF2140 front-end chip)
  215. For other devices and boards, see the SDK documentation, section "Using
  216. the SDK with other boards".
  217. *** New features
  218. *****************
  219. ** Drivers and libraries **
  220. - nRF21540 Front-End Module support:
  221. - New driver supporting the nRF21540 RF front-end module
  222. can be found in '.\driver_ext\nrf21540\'
  223. - The DTM and Radio Test examples have been updated
  224. to include the nRF21540 driver (only GPIO control has been tested).
  225. - Workaround handling Errata 1 for nRF21540 is not included as part of
  226. the driver and must be applied separately.
  227. - Radio Test example:
  228. - Extended the 'start_tx_modulated_carrier' command with an additional
  229. option for setting the specific number of packets to transmit.
  230. - Added printing of the received packet statistics in the 'print_rx' command handler.
  231. - nrfx:
  232. - Updated version to 1.8.4.
  233. - Added support of the nRF52820 device.
  234. - Added new SAADC driver backported from nrfx 2.2.0 branch.
  235. - nrf_cc310:
  236. - Updated version to 0.9.13.
  237. - Bugfix release with new mechanism for enabling and disabling the hardware
  238. and for interrupt masking. See Migration Guide for details.
  239. - nrf_cc310_bl
  240. - Updated version to 0.9.13.
  241. - Bugfix release with new mechanism for interrupt masking.
  242. - nrf_oberon
  243. - Updated version to 3.0.5.
  244. - General version update supporting more nRF5 architectures.
  245. - Addition of header files for the mbedcrypto frontend.
  246. See Migration Guide for details.
  247. - USB: added support for nRF52820.
  248. *** Changes
  249. ***********
  250. ** Drivers and libraries **
  251. - Radio Test example: refactored to use the Radio HAL module (nrf_radio.h) functions.
  252. - nrfx: see the nrfx 1.8.4 changelog in modules/nrfx/CHANGELOG.md.
  253. ** Crypto **
  254. - nrf_cc310 library now automates enabling and disabling of CryptoCell hardware
  255. and interrupts. It is no longer done in nrf_crypto. See Migration Guide for details.
  256. ** NFC **
  257. - T4T: allowed dynamic R/W NDEF message buffer changing.
  258. Now you can change the NDEF buffer in any protocol state,
  259. without having to disable the T4T emulation.
  260. - T4T: added pointer to the NDEF message buffer for the 'NDEF Updated' event.
  261. ** Bluetooth Low Energy **
  262. - Scanning Module: removed the 'Scan Request' event
  263. that is irrelevant for the scanner role.
  264. - External Tile library: integrated a new library version.
  265. ** DTM **
  266. - Updated DTM to support the nRF52820 device.
  267. - Added new example targets:
  268. - pca10100e: for nRF52820 emulation on pca10100.
  269. - pca10112: a version for a development kit with the nRF52840 device
  270. and the nRF2140 front-end chip.
  271. *** Bug fixes
  272. ****************
  273. ** Drivers and libraries **
  274. - nrfx: see the nrfx 1.8.4 changelog in modules/nrfx/CHANGELOG.md.
  275. - Fixed a bug where FDS garbage collection ran on more pages than necessary,
  276. causing unnecessary flash wear.
  277. ** ANT **
  278. - ANT Shared Channels example (slave project): fixed array size check.
  279. ** NFC **
  280. - T4T: fixed detecting of the end of reading NDEF message procedure
  281. (NFC_T4T_EVENT_NDEF_READ).
  282. - T4T: fixed an issue where NDEF Read event was triggered even when
  283. NDEF Message was empty.
  284. ** Bluetooth Low Energy **
  285. - Fixed nrf_sd_def.h file contents in all SoftDevices
  286. (in some cases, the definitions in this file were outdated).
  287. - External Tile library: fixed a few minor issues.
  288. - Nordic UART Service: added a null-pointer check in the
  289. notification transmitted handler.
  290. - Fixed a vulnerability issue reported by IOActive where malformed
  291. advertising data could be used to attack a device that does scanning.
  292. The fix is included in ble_advdata_search() in ble_advdata.c where
  293. an extra check has been added to ensure that the length values specified
  294. within the advertising packet are within the boundary of the advertising packet.
  295. ** DFU **
  296. - SES will now return a linker error if the bootloader is too large.
  297. - Fixed a bug that caused SD+BL updates to fail if the SD had signature boot validation.
  298. - Fixed an error in the code that booted the app, which could happen
  299. with certain optimization settings.
  300. - Fixed a false positive assert that could sometimes happen after a reset
  301. during an upgrade.
  302. - Fixed a bug that caused compilation errors when building with a board with no buttons.
  303. ** DTM **
  304. - DTM reports regarding Max Octets are now correct for devices without long range support.
  305. ** USB **
  306. - Fixed issues and optimized app_usbd_string_desc.
  307. - Fixed issues in USB CLI backend when handling a port close.
  308. ** Proprietary **
  309. - Gazell: fixed an assertion that would be sometimes generated after
  310. a packet transmission.
  311. - ESB: fixed a bug in the nrf_esb_pop_tx function where packages would get sent anyway
  312. in certain situations.
  313. *** Known Issues
  314. ****************
  315. ** General **
  316. - The workaround for Anomaly 198 for nRF52840 SPIM3 peripheral
  317. that has been implemented in nrfx_spim cannot be used with a SoftDevice.
  318. Flag NRFX_SPIM3_NRF52840_ANOMALY_198_WORKAROUND_ENABLED must be set to zero.
  319. The workaround based on a dedicated RAM block for SPIM3 must be used instead.
  320. - usbd_msc example has a limitation.
  321. With setting "APP_USBD_CONFIG_EVENT_QUEUE_ENABLE = 0",
  322. when USB cable is unplugged and re-plugged, the application goes into an endless loop.
  323. This is due to an issue in the unsupported block device library.
  324. ** Bluetooth Low Energy **
  325. - GATTC: the ble_gattc_service_t::uuid field is incorrectly populated
  326. in the BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP event if the
  327. sd_ble_gattc_primary_services_discover() or sd_ble_gattc_read()
  328. are called when a Primary Service Discovery by Service UUID is already ongoing.
  329. When the application has called sd_ble_gattc_primary_services_discover(),
  330. it should wait for the BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP event before calling
  331. sd_ble_gattc_primary_services_discover() or sd_ble_gattc_read().
  332. - BLE Interactive CLI example: the command to set a custom ATT MTU only takes
  333. effect on the subsequent connection and the updated MTU parameter is not
  334. maintained in further connections with the same peer, even when bonded.
  335. - ANT Shared Channels example: when testing a Bluetooth Low Energy connection
  336. with an Android device, the link is terminated by Android due to unhandled LL requests.
  337. - Bluetooth ANCS example: when connected from iPhone and pressing DK buttons,
  338. the example may assert before the Bluetooth Low Energy link is authenticated.
  339. ** Crypto **
  340. - The nrf_crypto CLI example may fail when using an ECC private key converted
  341. from raw function for specific curve types.
  342. ** Drivers and libraries **
  343. - The SAADC driver (from nrfx 1.8.x) does not handle detection limits 'high' and 'low'
  344. correctly if SAADC resolution is greater than 10 bits.
  345. SAADC driver ported from nrfx 2.2.x is not affected by this.
  346. - USBD:
  347. - The library may handle Remote Wakeup incorrectly.
  348. - Issuing a SET_ADDRESS(0) request does not cause the device to change
  349. its state to default.
  350. - The device does not STALL when a DATA transaction is received outside of SETUP.
  351. It ACKs instead.
  352. - The following macros defined in boards.h work only with pins on port 0:
  353. - LEDS_OFF
  354. - LEDS_ON
  355. - LED_IS_ON
  356. - LEDS_INVERT
  357. - LEDS_CONFIGURE
  358. - The low_power_pwm library does not correctly initialize GPIOs
  359. that are placed on PORT1 in the low_power_pwm_init function.
  360. This indirectly affects the led_softblink library and can also affect
  361. the DFU open bootloader.
  362. ==============================
  363. nRF5 SDK v16.0.0
  364. ------------------------
  365. Release Date: October, 2019
  366. Highlights:
  367. - Added support for a new chip: nRF52833
  368. - Added support for new BLE SoftDevices version 7, as well as the new SoftDevice S113.
  369. - Added an external Tile BLE library and a corresponding example
  370. demonstrating the "find me" feature.
  371. - App Timer v2 is now out of experimental and replaces the legacy App Timer
  372. in all examples.
  373. The following toolchains/devices have been used for testing and verification:
  374. - ARM: MDK-ARM version 5.25
  375. - GCC: GCC ARM Embedded 7.2018q2.update
  376. - IAR: IAR Workbench 7.80.4
  377. - SES: SES 4.18
  378. *****
  379. Note for IAR 8 users:
  380. (Libraries for IAR 8 require wchar_t to be of size 32 bits while IAR 7 requires 16 bits).
  381. To run a project using IAR 8, follow these intructions:
  382. - Open the IAR project in IAR 8. The IAR workbench will automatically generate an IAR 8 compatible project file.
  383. - If the project contains one of the precompiled libraries listed below, replace it
  384. with the IAR 8 compatible alternative (there are no projects targeting nRF51 in this SDK).
  385. - Save the project.
  386. - When building the project, you might get the warning: "The header file 'cmsis_iar.h' is obsolete and should not be used. [...]".
  387. - The problem is described in DevZone post: https://devzone.nordicsemi.com/f/nordic-q-a/31123/iar-ewarm-8-22-1-complains-about-cmsis_iar-h
  388. The solution is to remove all occurrences of #include <cmsis_iar.h>.
  389. The affected libraries are:
  390. - micro-ecc crypto:
  391. - IAR7: Includes library located in the folder named “…_iar\…”.
  392. - IAR8: Switch to using the library from the folder named “…_armgcc\…”.
  393. - nrf_cc310, nrf_cc310_bl, and nrf_oberon:
  394. - IAR7: Link to a library where “short_wchar” is part of the folder name.
  395. - IAR8: Link to a library without “short_wchar” in part of the folder name.
  396. - Gazell, NFC Tag, and 802.15.4:
  397. - IAR7: Includes the library where the file name ends with “_iar”.
  398. - IAR8: Switch to using the library with similar file name that ends with “_gcc”.
  399. *****
  400. Supported SoftDevices:
  401. - S112 v7.x.x
  402. - S113 v7.x.x
  403. - S132 v7.x.x
  404. - S140 v7.x.x
  405. - S212 v6.1.x
  406. - S312 v6.1.x
  407. - S332 v6.1.x
  408. - S340 v6.1.x
  409. Supported boards:
  410. - PCA10040
  411. - PCA10040E (nRF52810 emulation on PCA10040)
  412. - PCA10056
  413. - PCA10056E (nRF52811 emulation on PCA10056)
  414. - PCA10100 (support in selected examples)
  415. - PCA10059 (support in selected examples)
  416. - D52DK1 from Garmin Canada (only for ANT examples)
  417. For other devices and boards, see the SDK documentation, section "Using
  418. the SDK with other boards".
  419. *** New features
  420. *****************
  421. ** Drivers and libraries **
  422. - nRF52833: added USB support - both USB device hardware driver and USB Device library.
  423. - Radio Test Example: added a project for nRF52833.
  424. ** BLE**
  425. - Added a new library GATT Queue which can be used for buffering GATT procedures when
  426. the SoftDevice cannot process them immediately. It can be used with, for example,
  427. Indications, Read or Write Requests etc. The queued procedure is automatically
  428. retried when events from the SoftDevice indicate that it can be processed.
  429. Most of the GATT Client libraries use this module.
  430. - Added support for the new SoftDevice S113 in selected BLE examples.
  431. - Improved Database Discovery Module design to enable multiple instances,
  432. for example to perform independent discovery on each connection.
  433. - BLE Interactive CLI Example: added discovery of 128-bit UUID Services and
  434. Characteristics at the first attempt.
  435. - Advertising Module: improved dynamic advertising data update, no additional buffer
  436. is needed now - swap buffer was introduced within the module implementation.
  437. - Added a new external BLE library: Tile, and a corresponding example: ble_app_tile.
  438. The project implements proprietary GATT services for demonstrating the
  439. "find me" feature.
  440. The integrated modules include source code as well as a precompiled linkable library.
  441. ** DFU **
  442. - Updated documentation with information on Secure Boot and platform architecture
  443. security.
  444. ** NFC **
  445. - Added support for new chip: nRF52833. Added corresponding projects in selected
  446. examples.
  447. ** USB **
  448. - APP_USBD_BCD_VER_MAKE macro now includes a sub-minor version parameter.
  449. - Feature reports functionality is now supported in HID generic class.
  450. ** Proprietary **
  451. - ESB: added support for the new chip nRF52833.
  452. - Gazell: added support for nRF52810 and nRF52811.
  453. ** DTM **
  454. - Updated Direct Test Mode to support nRF52833.
  455. *** Changes
  456. ***********
  457. ** Drivers and libraries **
  458. - app_timer: App Timer v2 moved out of experimental. It is updated and
  459. API-compatible with the old implementation making it easy to replace.
  460. All SDK examples using App Timer are updated to use the new version.
  461. - libuarte:
  462. - libuarte moved out of experimental.
  463. - nrf_libuarte renamed to nrf_libuarte_drv (file names and API).
  464. - Added option to use an app_timer instance for RX timeout instead of the TIMER or
  465. RTC peripheral.
  466. - nrf_cli: CLI now automatically adds an `\r` character before each printed `\n`
  467. character. This feature can be switched off in sdk_config with flag
  468. `NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF`.
  469. - FDS: FDS-specific error codes have been moved so their values do not overlap with
  470. other error codes.
  471. Also, NRF_SUCCESS is now used instead of FDS_SUCCESS.
  472. ** Crypto **
  473. - Updated OPTIGA Trust X library code and example.
  474. - Updated the nrf_oberon library version to 3.0.1, changing the API prefixes from
  475. occ_* to ocrypto_*.
  476. ** BLE **
  477. - Peer Manager:
  478. - Changed the pm_peer_data_* API to use uint32_t length variables instead of
  479. uint16_t.
  480. - The flash cleaning algorithm in peer_manager_handler now also runs garbage
  481. collection if other users of FDS have deleted data.
  482. - The fds_error member variable has been removed from PM events.
  483. - Added a LESC flag to pm_conn_sec_status_t.
  484. - Add a new function pm_sec_is_sufficient() where the security state of the
  485. connection is checked against a reference security state.
  486. - Function pm_sec_is_sufficient() is now used internally when responding
  487. to slave security requests.
  488. - pm_handler has been augmented with new event handlers based on
  489. pm_sec_is_sufficient().
  490. - Advertising Module: removed obsolete API.
  491. - ble_conn_state: Added a LESC flag to connection state (i.e. whether LESC was used
  492. for bonding/pairing). It can be false even if LESC was used.
  493. See Peer Manager for a completely accurate reporting of LESC.
  494. - BLE Central UART Example: added support for Windows-type line end characters.
  495. - Running Speed and Cadence Example: added handling of the Database Discovery Available
  496. event.
  497. - Heart Rate Example:
  498. - Changed default configuration for nRF52810 and nRF52811.
  499. - Service Change Characteristic disabled.
  500. - Disabled protection against repeated pairing attempts in Peer Manager.
  501. - FDS: Reduced number of virtual flash pages to use.
  502. ** DFU **
  503. - Bootloader start address is now placed in UICR at compile time, and the MBR page is
  504. populated at runtime. This is to mitigate problems with flashing
  505. where the MBR was erased.
  506. - The MBR folders have been merged into a single folder since the MBR is identical for
  507. all nRF52 variants.
  508. - The bootloader now disallows upgrading the SoftDevice to another family
  509. (e.g. s140 -> s113).
  510. - nrf_bootloader_app_start() can no longer be called from an interrupt handler.
  511. - BLE DFU: Disconnect link when aborting DFU (OP_ABORT).
  512. - The bootloader will now wait a configurable number of milliseconds before each chip
  513. reset. Configured with NRF_BL_RESET_DELAY_MS.
  514. - Added a configuration option for disabling a debug port: NRF_BL_DEBUG_PORT_DISABLE.
  515. - When the bootloader is compiled in a configuration where the app does not need access
  516. to the settings page, the page itself, not just the backup, is locked before booting
  517. the app.
  518. ** USB **
  519. - USB driver: all changes listed here:
  520. https://github.com/NordicSemiconductor/nrfx/blob/v1.8.0/CHANGELOG.md
  521. - USB libraries: APP_USBD_AUDIO_AC_IFACE_SUBTYPE_OUTPUT_TERNINAL
  522. has been renamed to APP_USBD_AUDIO_AC_IFACE_SUBTYPE_OUTPUT_TERMINAL.
  523. - bDescriptorSubType field in app_usbd_audio_ac_iface_header_desc_t struct
  524. has been renamed to bDescriptorSubtype.
  525. - bmRequest field in app_usbd_cdc_notify_t struct has been renamed to bRequest.
  526. - bmRequest field in app_usbd_setup_t struct has been renamed to bRequest.
  527. - New values have been added to app_usbd_msc_subclass_t and app_usbd_msc_req_t enums.
  528. - Terminal link in AS Interface Descriptor has been added as a parameter
  529. for the APP_USBD_AUDIO_GLOBAL_DEF macro.
  530. *** Bug fixes
  531. ****************
  532. ** Drivers and libraries **
  533. - FDS: fixed two bugs where a power loss at very specific times during garbage
  534. collection could corrupt the file system, making FDS unable to initialize and return
  535. FDS_ERR_NO_PAGES on initialization.
  536. - FDS: fixed a bug that prevented using the last word of a flash page to save a record.
  537. ** ANT **
  538. - Fixed a bug in ANT-FS Library, where incoming burst frames could be incorrectly
  539. handled due to wrong bitfield checking.
  540. ** NFC **
  541. - Fixed a bug where the Tag could respond to an ALL_REQ frame with incorrect timing when
  542. in the sleep state.
  543. This bug would occur after the Tag received an SLP_REQ frame and when an ALL_REQ frame
  544. was received shortly after - in a time shorter than what was configured
  545. in the NFCT FRAMEDELAYMAX register (in Type 4 Tag default configuration: 4.8 ms).
  546. ** BLE **
  547. - Eddystone: fixed bug for handling 0.625 unit in advertising interval.
  548. - Advertising Module: fixed a bug where a secondary PHY configuration might get
  549. overwritten.
  550. - Advertising Data Encoder: fixed a bug causing underflow of a return value
  551. of the parsing function when malformed data was provided as input.
  552. - Nordic UART Service: fixed a bug where incorrect Characteristic CCCD
  553. was checked on connection event.
  554. - Database Discovery: fixed counting of discovered services.
  555. - Fixed a bug where "available" events (indicating the module is ready
  556. for the next discovery process) were not triggered.
  557. - BLE Interactive CLI Example: fixed a bug where not all
  558. GATT Characteristics and Descriptors were discovered when a short ATT MTU was used.
  559. - Peer Manager:
  560. - Fixed a bug where peer ranks would not work after deleting all peers.
  561. - Fixed a bug where the indications for service changed would be dropped
  562. if they were sent at the same time as an MTU exchange.
  563. ** DFU **
  564. - Fixed a bug where resuming a DFU procedure with a disconnect (but no reset)
  565. in-between could leave the bootloader in a semi-locked state.
  566. - Fixed an issue where write protection of the application was not applied.
  567. *** Known Issues
  568. ****************
  569. ** General **
  570. - The workaround for Anomaly 198 for nRF52840 SPIM3 peripheral
  571. that has been implemented in nrfx_spim cannot be used with a SoftDevice.
  572. Flag NRFX_SPIM3_NRF52840_ANOMALY_198_WORKAROUND_ENABLED must be set to zero.
  573. The workaround based on a dedicated RAM block for SPIM3 must be used instead.
  574. ** BLE **
  575. - GATTC: the ble_gattc_service_t::uuid field is incorrectly populated
  576. in the BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP event if the
  577. sd_ble_gattc_primary_services_discover() or sd_ble_gattc_read()
  578. are called when a Primary Service Discovery by Service UUID is already ongoing.
  579. When the application has called sd_ble_gattc_primary_services_discover(),
  580. it should wait for the BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP event before calling
  581. sd_ble_gattc_primary_services_discover() or sd_ble_gattc_read().
  582. - The TFTP Background DFU example has known instabilities.
  583. - The Tile example disconnects when notifications in the Tile service are on
  584. and the application sends the first Battery Level notification.
  585. - BLE Interactive CLI example: the command to set a custom ATT MTU only takes
  586. effect on the subsequent connection and the updated MTU parameter is not
  587. maintained in further connections with the same peer, even when bonded.
  588. - ANT Shared Channels example: when testing BLE connection with an Android device,
  589. the link is terminated by Android due to unhandled LL requests.
  590. - Bluetooth ANCS example: when connected from iPhone and pressing DK buttons,
  591. the example may assert before the BLE link is authenticated.
  592. ** Crypto **
  593. - The nrf_crypto CLI example may fail when using ecc private key converted
  594. from raw function for specific curve types.
  595. ** Drivers and libraries **
  596. - The SAADC driver does not handle detection limits 'high' and 'low' correctly
  597. if SAADC resolution is greater than 10 bits.
  598. - USBD:
  599. - The library may handle Remote Wakeup incorrectly.
  600. - Issuing a SET_ADDRESS(0) request does not cause the device to change
  601. its state to default.
  602. - The device does not STALL when a DATA transaction is received outside of SETUP.
  603. It ACKs instead.
  604. ** IoT **
  605. - The MQTT example does not compile when run on PCA10040 with commissioning
  606. enabled (COMMISSIONING_ENABLED=1).
  607. - DTLS example: the server and the client application of the DTLS example should
  608. not be run on two kits. Instead, either the server or the client application
  609. should be run against the PC application as described in the documentation.
  610. ===========================================
  611. nRF5 SDK v15.3.0
  612. ------------------------
  613. Release Date: Week 7, 2019
  614. Highlights:
  615. - Added support for a new chip - nRF52811.
  616. - Added support for two new ANT SoftDevices: S312 targeting nRF52810 and nRF52832, and S340 targeting nRF52840.
  617. - Added back support for the ANT SoftDevice S332 v6.1.1, as well as updated the latest SoftDevices S112, S132, S140 and S212 v6.1.1.
  618. - Updated the SDFU solution with ANT transport layer.
  619. - Updated DTM to support nRF52811, and updated the existing code to correctly handle Anomaly 172.
  620. The following toolchains/devices have been used for testing and verification:
  621. - ARM: MDK-ARM version 5.25
  622. - GCC: GCC ARM Embedded 7.2018q2.update
  623. - IAR: IAR Workbench 7.80.4
  624. - SES: SES 4.12
  625. Note: The selected GCC version has shown instabilities when using the Link Time Optimization feature, and using the feature is not recommended.
  626. *****
  627. Note for IAR 8 users:
  628. (Libraries for IAR 8 require wchar_t to be of size 32 bits while IAR 7 requires 16 bits).
  629. To run a project using IAR 8, follow these intructions:
  630. - Open the IAR project in IAR 8. The IAR workbench will automatically generate an IAR 8 compatible project file.
  631. - If the project contains one of the precompiled libraries listed below, replace it with the IAR 8 compatible alternative
  632. (there are no projects targeting nRF51 in this SDK).
  633. - Save the project.
  634. - When building the project, you might get the warning: "The header file 'cmsis_iar.h' is obsolete and should not be used. [...]".
  635. - The problem is described in DevZone post: https://devzone.nordicsemi.com/f/nordic-q-a/31123/iar-ewarm-8-22-1-complains-about-cmsis_iar-h
  636. The solution is to remove all occurrences of #include <cmsis_iar.h>.
  637. The affected libraries are:
  638. - micro-ecc crypto:
  639. - IAR7: Includes library located in the folder named “…_iar\…”.
  640. - IAR8: Switch to using the library from the folder named “…_armgcc\…”.
  641. - nrf_cc310, nrf_cc310_bl, and nrf_oberon:
  642. - IAR7: Link to a library where “short_wchar” is part of the folder name.
  643. - IAR8: Link to a library without “short_wchar” in part of the folder name.
  644. - Gazell, NFC Tag, and 802.15.4:
  645. - IAR7: Includes the library where the file name ends with “_iar”.
  646. - IAR8: Switch to using the library with similar file name that ends with “_gcc”.
  647. *****
  648. Supported SoftDevices:
  649. - S112 v6.1.x
  650. - S132 v6.1.x
  651. - S140 v6.1.x
  652. - S212 v6.1.x
  653. - S312 v6.1.x
  654. - S332 v6.1.x
  655. - S340 v6.1.x
  656. Supported boards:
  657. - PCA10040
  658. - PCA10040E (nRF52810 emulation on PCA10040)
  659. - PCA10056
  660. - PCA10056E (nRF52811 emulation on PCA10056)
  661. - PCA10059 (support in selected examples)
  662. - D52DK1 from Garmin Canada (only for ANT examples)
  663. For other devices and boards, see the SDK documentation, section "Using
  664. the SDK with other boards".
  665. *** New features
  666. *****************
  667. ** ANT **
  668. - Added the new ANT Secure DFU Bootloader example.
  669. The example demonstrates how to use the new ANT transport with Secure DFU components
  670. (with support only for SES and GCC toolchains).
  671. - Removed legacy ANT bootloader solution.
  672. ** Drivers and libraries **
  673. - nrf_cli can now prompt and autocomplete both sorted and unsorted subcommands.
  674. - nrf_libuarte and nrf_libuarte_async now support multiple instances.
  675. ** BLE**
  676. - nrf_ble_lesc (part of the Peer Manager) now supports the LESC OOB pairing mode.
  677. The ble_nfc_pairing_reference_c example demonstrates how to pass the OOB data to the module.
  678. ** DFU **
  679. - Added the option to perform signature validation of the application on each boot.
  680. This functionality requires nrfutil version 5.0.0 or higher.
  681. - The DFU procedure can now mandate strictly increasing application versions.
  682. - Added the option to send applications that will not be activated, but will remain in slot 1 ("external applications").
  683. This functionality requires nrfutil version 5.0.0 or higher.
  684. - Added masking of GPREGRET and GPREGRET2 registers, enabling the upper 3 bytes of each register to be used by the application independently of the bootloader.
  685. ** Crypto **
  686. - Added nrf_crypto backend support for Infineon OPTIGA™ Trust X devices (selected features).
  687. - Added new example to showcase Infineon OPTIGA Trust X functionality: examples/crypto/ifx_optiga_custom_example.
  688. *** Changes
  689. ************
  690. ** DFU **
  691. - Turned off Link Time Optimization in all DFU projects due to instabilities in the supported GCC compiler.
  692. ** Drivers and libraries **
  693. - nrf_cli: CLI will now automatically add the `\r` character before each printed `\n` character.
  694. This feature can be switched off in sdk_config using flag `NRF_FPRINTF_FLAG_AUTOMATIC_CR_ON_LF`.
  695. - USB: A complete list of changes is available under this link: https://github.com/NordicSemiconductor/nrfx/blob/a0dcb1350f6798f12479921a0a376d00e2316fd4/CHANGELOG.md
  696. ** NFC **
  697. - The NFC libraries (nfc_t2t_lib and nfc_t4t_lib) now use the NFCT driver instead of the NFC HAL modules (hal_nfc_t2t and hal_nfc_t4t).
  698. The NFCT driver is a part of nrfx repository.
  699. - Replaced hal_nfc_t2t and hal_nfc_t4t components with the nrfx_nfct driver.
  700. - Added the NFC platform module (nfc_platform) to abstract runtime environment specific implementation from the driver.
  701. HFCLK activation, required for NFC to operate correctly, is managed in this module.
  702. - Removed the nfc_fixes.h file with NFC workaround description. The content of this file was moved to nrfx_nfct.h.
  703. ** Crypto **
  704. - nrf_oberon, nrf_cc310, and nrf_cc310_bl libraries have changed naming and placement compared to the previous release.
  705. They are now available in the following folder scheme:
  706. - GCC and IAR 8.x: lib/<arch>/hard-float/<lib_name>.a
  707. - IAR 7.80.x: lib/<arch>/hard-float/short-wchar/<lib_name>.a
  708. - Keil: lib/<arch>/hard-float/short-wchar/<lib_name>.lib
  709. Due to this naming convention change, updated nrf_cc310 and nrf_cc310_bl library version to 0.9.12.
  710. Due to this naming convention change, updated nrf_oberon library version to 2.0.7.
  711. - Changed ECC Public Key Validation from "Full" to "Partial" in nrf_crypto backend for ARM CC310.
  712. This improves LESC pairing and ECDSA verify timing.
  713. *** Bug fixes
  714. ****************
  715. ** Drivers and libraries **
  716. - nrf_cli: The module can now be used with terminals with no standard background color (for example, white).
  717. - USB: Fixed a bug where USB IRQ was not cleared after unplugging the USB cable.
  718. - Fixed an issue where NRF_LOG_INIT(timestamp, frequency) failed to compile if the logger was disabled.
  719. - Fixed a compilation failure issue when using NRF_LOG_HEXDUMP_WARNING.
  720. - Fixed a scenario where the emulated project delay function (nrfx_coredep_delay_us) did not work correctly.
  721. ** BLE **
  722. - Peer Manager:
  723. - Slave Security Requests received during a pairing or encryption procedure will now be ignored (to align with the BLE specification).
  724. - Fixed a bug where Peer Manager would misinterpret a peer central's ability to resolve resolvable addresses in directed advertisements.
  725. - Fixed a bug where Peer Manager would sometimes give a fatal error if the link disconnected during a pairing procedure.
  726. - Fixed a bug where flash could be full but no Peer Manager event was sent.
  727. - Fixed a bug where Peer Manager would silently drop Service Changed indications if an ATT MTU exchange was happening at the same time.
  728. - Eddystone:
  729. - Fixed a bug where EID was not correctly updated.
  730. - Fixed bug where factory reset would not work correctly when followed by an immediate disconnect.
  731. ** DFU **
  732. - Various security improvements and fixes.
  733. - Fixed various bugs in background DFU.
  734. - Fixed bugs that appeared when combining transports (for example, UART + BLE).
  735. ** DTM **
  736. - Fixed a bug which made the workaround for nRF52840 Anomaly 172 non-functional.
  737. ** Serialization **
  738. - Fixed an issue with HCI transport sending redundant bytes on certain packet payloads containing escape codes.
  739. - Fixes in serialization codecs.
  740. *** Known Issues
  741. ****************
  742. ** General **
  743. - Programming and debugging the nRF52811 chip may require an update of the J-Link firmware in order to recognize the new chip.
  744. - The workaround for Anomaly 198 for nRF52840 SPIM3 peripheral that has been implemented in nrfx_spim cannot be used with a SoftDevice.
  745. Flag NRFX_SPIM3_NRF52840_ANOMALY_198_WORKAROUND_ENABLED must be set to zero.
  746. The workaround based on a dedicated RAM block for SPIM3 must be used instead.
  747. ** BLE **
  748. - GATTC: the ble_gattc_service_t::uuid field is incorrectly populated in the BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP event
  749. if the sd_ble_gattc_primary_services_discover() or sd_ble_gattc_read() are called when a Primary Service Discovery by Service UUID is already ongoing.
  750. When the application has called sd_ble_gattc_primary_services_discover(), it should wait for the BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP event before calling sd_ble_gattc_primary_services_discover() or sd_ble_gattc_read().
  751. - The TFTP Background DFU example has known instabilities.
  752. ** Drivers and libraries **
  753. - The SAADC driver does not handle detection limits 'high' and 'low' correctly if SAADC resolution is greater than 10 bits.
  754. - USBD:
  755. - The library may handle Remote Wakeup incorrectly.
  756. - Issuing a SET_ADDRESS(0) request does not cause the device to change its state to default.
  757. - The device does not STALL when a DATA transaction is received outside of SETUP. It ACKs instead.
  758. ** IoT **
  759. - For Linux kernels >= 4.12, The BLE_6LOWPAN_LEGACY_MODE configuration parameter must be set to 0 (the default is 1).
  760. The default value must be kept for Linux kernels < 4.12.
  761. With this configuration set up incorrectly, the examples do not work and are difficult to debug.
  762. ======================================================================
  763. nRF5 SDK v15.2.0
  764. ------------------------
  765. Release Date: Week 37, 2018
  766. This SDK release is an update replacing the non-published nRF5 SDK release v15.1.0.
  767. The main updates compared to v15.1.0 are summarized in the last three points of the Highlights section.
  768. Highlights:
  769. - Added support for the new SoftDevices S140, S132, and S112 v6.1.0.
  770. - Added new targets for running S112 on nRF52832 (PCA10040).
  771. - Updated ESB library to support all nRF52 devices (nRF52810, nRF52832 (Rev.1 & Rev.2), and nRF52840).
  772. - Updated SDFU to include nRF52810 target (PCA10040E).
  773. - Released nrf_log in production quality.
  774. - Removed the workaround in nrf_sdh.c overriding the default priority level on SWI interrupt SD_EVT_IRQn and RADIO_NOTIFICATION_IRQn used by the SoftDevice.
  775. - Changed the default interrupt priority level for the peripherals from 7 to 6. This is done to be aligned with the priority of the SWI coming from the SoftDevice.
  776. - Fixed an interoperability issue with some Windows 10 versions when bonded and using directed advertising.
  777. Note: Due to compatibility issues, you must run the upgrade using nRF Connect Desktop v2.5.0 or later when testing the Bluetooth examples in nRF5 SDK v15.2.0.
  778. The following toolchains/devices have been used for testing and verification:
  779. - ARM: MDK-ARM version 5.18a
  780. - GCC: GCC ARM Embedded 6.3 2017-q2-update
  781. - IAR: IAR Workbench 7.80.4 (IAR 8 - see note below)
  782. - SES: SES 3.40
  783. *****
  784. Note for IAR 8 users:
  785. (Libraries for IAR 8 require wchar_t to be of size 32 bits while IAR 7 requires 16 bits).
  786. To run a project using IAR 8, follow these intructions:
  787. - Open the IAR project in IAR 8. The IAR workbench will automatically generate an IAR 8 compatible project file.
  788. - If the project contains one of the precompiled libraries listed below, replace it with the IAR 8 compatible alternative
  789. (there are no projects targeting nRF51 in this SDK).
  790. - Save the project.
  791. - When building the project, you might get the warning: "The header file 'cmsis_iar.h' is obsolete and should not be used. [...]".
  792. - The problem is described in DevZone post: https://devzone.nordicsemi.com/f/nordic-q-a/31123/iar-ewarm-8-22-1-complains-about-cmsis_iar-h
  793. The solution is to remove all occurrences of #include <cmsis_iar.h>.
  794. The affected libraries are:
  795. - micro-ecc crypto:
  796. - IAR7: Includes library located in the folder named “…_iar\…”.
  797. - IAR8: Switch to using the library from the folder named “…_armgcc\…”.
  798. - nrf_cc310, nrf_cc310_bl, and nrf_oberon:
  799. - IAR7: Includes the library where “_short_wchar_” is part of the file name.
  800. - IAR8: Switch to using the library with similar naming, but where the “short_wchar” is removed.
  801. - Gazell, NFC Tag, and 802.15.4:
  802. - IAR7: Includes the library where the file name ends with “_iar”.
  803. - IAR8: Switch to using the library with similar file name that ends with “_gcc”.
  804. *****
  805. Supported SoftDevices:
  806. - S112 v6.1.x
  807. - S132 v6.1.x
  808. - S140 v6.1.x
  809. - S212 v5.0.x
  810. Supported boards:
  811. - PCA10040
  812. - PCA10040E (nRF52810 emulation on PCA10040)
  813. - PCA10056
  814. - PCA10059 (support in selected examples)
  815. - D52DK1 from Garmin Canada (only for ANT examples)
  816. For other devices and boards, see the SDK documentation, section "Using
  817. the SDK with other boards".
  818. *** New features
  819. *****************
  820. ** BLE **
  821. - Added new targets to demonstrate the use of S112 on nRF52832 (PCA10040).
  822. - Added "Property Read" for the Object Transfer Service client (ble_app_ots_c).
  823. - Added a Scanning Module to simplify scanning for BLE devices in central role.
  824. - Peer Manager:
  825. - peer_manager_handler.h: There are now standard event handlers available to users of the Peer Manager.
  826. The event handlers provide features like logging, automatically securing the link, and automatically
  827. deleting the oldest bond if the flash is full.
  828. - PM_RA_PROTECTION_ENABLED: The Peer Manager can now be configured to reject repeated security requests
  829. from peers that failed pairing.
  830. - PM_LESC_ENABLED: Improved LESC support.
  831. - PM_LOG_ENABLED: Added error and warning level logging messages to the Peer Manager.
  832. - PM_EVT_FLASH_GARBAGE_COLLECTION_FAILED: Added new event.
  833. - PM_PEER_DATA_ID_CENTRAL_ADDR_RES: Added automatic storing of the peer's Central Address Resolution value during bonding.
  834. - pm_peer_id_list(): Added a new function for creating lists of Peer IDs, including some filtering.
  835. - Added LESC support to the following examples: ble_app_hrs, ble_app_hrs_c, and ble_app_gls.
  836. - Added support for nRF52840 (PCA10056) in the beacon example (ble_app_beacon).
  837. - Added Swift Pair support to the HID mouse example (ble_app_hids_mouse).
  838. - Battery Service: Added the possibility to notify a reconnected, bonded peer of an updated battery level.
  839. This feature is demonstrated in the Immediate Alert Server example.
  840. ** Crypto **
  841. - EdDSA: Added support for Edwards-curve Digital Signature Algorithm (Ed25519).
  842. - In documentation, added a table showing supported nrf_crypto backends for different examples:
  843. http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v15.2.0/nrf_crypto_default_backends.html
  844. ** DFU/Bootloader **
  845. - Added a new target to the SDFU example to demonstrate SDFU running on nRF52810 (PCA10040E). In a single bank update, there is only
  846. about 60 kB of flash available. This restricts what can be updated.
  847. - The bootloader settings page is now backed up before being updated. This increases protection from corruption caused by chance events
  848. (for example, power failure) and malicious apps.
  849. - The advertising interval of BLE DFU can now be configured in sdk_config (NRF_DFU_BLE_ADV_INTERVAL).
  850. - The size of the application data area that is left alone by the bootloader can now be configured
  851. in sdk_config (NRF_DFU_APP_DATA_AREA_SIZE).
  852. - The bootloader code now supports most of nrf_crypto backends. However, the size of the binary will likely be too large if other backends
  853. are used, so you will need to accomodate by increasing the size of the bootloader.
  854. ** USB **
  855. - Added response/no response to an IN token on ISO IN endpoint with a ZLP when no data is ready. This can be set with USBD_CONFIG_ISO_IN_ZLP.
  856. - Added support for configuration string ID.
  857. - Added an option to give priority to isochronous transfers using USBD_CONFIG_DMASCHEDULER_ISO_BOOST.
  858. - Implemented SOF event callback in interrupt for classes.
  859. - Added an enum and get function for a selected protocol (boot or report) in HID. Implemented a SET_PROTOCOL propagation mechanism using
  860. on_set_protocol methods. Buffers can now be cleared after the SET_PROTOCOL command using clear_buffer methods.
  861. - Redesigned the idle report mechanism in HID. It now allows a callback function and handles multiple report IDs.
  862. - Added an option to send a ZLP on write with the same size as the endpoint in CDC ACM class using APP_USBD_CDC_ACM_ZLP_ON_EPSIZE_WRITE.
  863. - Implemented macros to set interval for individual endpoints. See APP_USBD_EP_WITH_INTERVAL.
  864. - Transfers in Audio class can now be started in SOF interrupt set in the app_usbd_audio_sof_interrupt_register function.
  865. *** Changes
  866. ************
  867. ** BLE **
  868. - Increased the length of the advertising name for the Running Speed and Cadence sensor example (ble_app_rscs) to make it easy to verify
  869. that it is using the extended advertising.
  870. - Included the Scanning module into all BLE examples. This aligns how scanning is performed in these examples.
  871. - Updated the NFC pairing examples (ble_app_hids_keyboard_pairing_nfc, ble_app_hrs_nfc_pairing, ble_nfc_pairing_reference) to start using
  872. the LESC functionality in the Peer Manager (which uses the nrf_ble_lesc module).
  873. - Removed the manual handling of credits for the Object Transfer Service (ble_app_ots and ble_app_ots_c). Most use cases now work faster
  874. and simpler when the SoftDevice is controlling it.
  875. - Updated the API documentation for advertising_init in the Advertising module (ble_advertising). It was clarified that UUID arrays were not
  876. copied into the Advertising module.
  877. - Advertising module (ble_advertising) is no longer dependent on the fstorage module.
  878. - Changed the ANCS example (ble_app_ancs_c) so that it no longer performs service discovery after connecting to an already bonded peer.
  879. - Lowered the advertising interval in the Eddystone example (ble_app_eddystone), because some advertising packets would be lost when combined
  880. with the timeslot API.
  881. - Reduced the maximum supported value for advertising interval in Eddystone from 20000 to 16384. If a higher value is set, the SoftDevice returns
  882. an error code that asserts the application.
  883. - Peer Manager:
  884. - Various improvements to documentation.
  885. - The Peer Manager will now take less space for the same features.
  886. - To decrease complexity, the Peer Manager no longer uses the 'reserve' functionality in FDS, meaning that PM_EVT_STORAGE_FULL
  887. events will come slightly later if bonds cannot be stored during bonding.
  888. - Error event parameters now specify whether the error code is to be interpreted as an FDS_ error or an NRF_ error.
  889. - Peers without a stored rank are now never returned from pm_peer_ranks_get().
  890. - The function pm_peer_data_load() now fills the array even when returning NRF_ERROR_DATA_SIZE.
  891. - Enabled internal LESC key handling through PM_LESC_ENABLED. Function pm_lesc_public_key_set() is now deprecated because of this change.
  892. - All examples using the Peer Manager now use the new standard event handlers.
  893. While some examples implement custom behavior, all examples do the following:
  894. - Log Peer Manager events (at different log levels).
  895. - Encrypt immediately on connection with bonded peers.
  896. - Delete old bonds to make room for new peer data.
  897. - Some examples supporting central mode disconnect when link encryption fails. Look for functions calling pm_handler_disconnect_on_sec_failure().
  898. - The ble_app_bms example will now request for security procedure to be initiated if the Central does not initiate it.
  899. - Updated examples with directed advertisement to take into account Central Address Resolution value.
  900. ** IEEE 802.15.4 **
  901. - Updated the radio test example to support 802.15.4 radio modes.
  902. ** Crypto **
  903. - Updated documentation about RAM requirements on mbed TLS.
  904. - Added endianness change Curve25519 (to little endian).
  905. - Removed the following defines. A compile error is shown if they are enabled in a configuration:
  906. - NRF_CRYPTO_BACKEND_CC310_BL_HASH_LITTLE_ENDIAN_DIGEST_ENABLED
  907. - NRF_CRYPTO_BACKEND_CC310_BL_ECC_LITTLE_ENDIAN_ENABLED
  908. - NRF_CRYPTO_BACKEND_MICRO_ECC_LITTLE_ENDIAN_ENABLED
  909. - NRF_CRYPTO_BACKEND_NRF_SW_HASH_LITTLE_ENDIAN_DIGEST_ENABLED
  910. - nrf_crypto micro-ecc backend: Moved ECDH public key validation from the key convert function to ECDH compute
  911. (moved from nrf_crypto_backend_micro_ecc_public_key_from_raw to nrf_crypto_backend_micro_ecc_ecdh_compute).
  912. - Upgraded nrf_cc310 and nrf_cc310_bl to version 0.9.10 including minor changes to some default configurations.
  913. - Removed micro-ecc library/mbed TLS from BLE LESC examples for better user experience.
  914. - micro-ecc library prevented a working compilation in a fresh LESC example (requires external download).
  915. - mbed TLS significantly increases compilation time in the project, even if it is not configured as the enabled nrf_crypto backend.
  916. ** DFU and Bootloader **
  917. - Updated documentation about how to change the existing SDFU project, so that the application can be uploaded without signature verification,
  918. but at the same time to keep the signature verification when updating a SoftDevice and/or bootloader.
  919. - The bootloader now does not use app_timer, which saves flash space.
  920. - The bootloader now does the endian-conversion in code, instead of relying on endian-conversion in nrf_crypto.
  921. ** Drivers and libraries **
  922. - Changed the peripherals' default interrupt priority level from 7 to 6.
  923. - Included new version of nrfx (v1.1.0). For the nrfx changelog, see https://github.com/NordicSemiconductor/nrfx/blob/master/CHANGELOG.md
  924. - nrf_log:
  925. - Updated to production quality.
  926. - You can now store/load the filtering configuration in FDS.
  927. - You can now control one backend from another.
  928. - nrf_cli: Added support for terminal meta keys.
  929. ** Proprietary **
  930. - Updated ESB library to support all current variants of nRF52. This mainly involves adding proper handling of Errata related to the radio.
  931. - Added a function to skip the next packet in the TX queue. This was previously a function used internally in the module under another name.
  932. ** USB **
  933. - Moved USBD strings configuration to sdk_config.
  934. - Rebuilt MSC class write procedure.
  935. - Moved APP_USBD_CONFIG_LOG_ENABLED to nrf_log settings.
  936. - HID report protocol is now default after reset.
  937. - HID default idle rate after reset can now be defined.
  938. - OUT transfers are now dropped when clearing stall on endpoint.
  939. - SET_ADDRESS command is now defined as a separate event in app_usbd. It does not change the state of the device anymore.
  940. - EP0 is now disabled until USB RESET condition is detected.
  941. - HID OUT reports are now limited to 63 bytes of data + 1 byte reserved for report ID.
  942. *** Bug fixes
  943. ****************
  944. ** BLE **
  945. - Fixed a bug in the BLE UART client (ble_app_uart_c) where it would check the wrong error code when issuing multiple write commands.
  946. - Fixed a bug in the ANCS example (ble_app_ancs) where app_timer was included too many times.
  947. - Fixed a bug in the Advertising module (ble_advertising) where a comment referred to seconds instead of 10 ms.
  948. - Fixed a bug in the LESC connection example (ble_app_multirole_lesc) where the procedure for connection parameter update would not be started
  949. immediately upon connection.
  950. - Fixed a bug where a precompiled hex was missing for Immediate Alert Server (ble_app_ias) and Service Changed server (ble_app_gatts) examples.
  951. - Fixed a bug in the Radio Notification Event Handler (ble_radio_notification) where a missing include stopped it from compiling.
  952. - Fixed a bug in the BLE Interactive Command Line Interface Example in service discovery procedure.
  953. - Fixed a bug in the Alert Notification Service, where it was not possible to enable notifications for an unread alert.
  954. - Peer Manager:
  955. - Fixed a bug where the event PM_EVT_FLASH_GARBAGE_COLLECTED was also sent when garbage collection failed.
  956. - Fixed a bug in pm_next_peer_id_get() where it could report a peer with no data attached to it if used during bonding.
  957. - Fixed a bug where peer data would not be written because the internal retry mechanism failed after two attempts.
  958. - Fixed a bug where pairing (no bonding) could happen with an already bonded peer without triggering a PM_EVT_CONN_SEC_CONFIG_REQ event.
  959. - Fixed several documentation bugs related to error codes.
  960. - Eddystone:
  961. - Fixed a bug where the default TX power was set to 0 instead of using the DEFAULT_FRAME_TX_POWER define.
  962. - Fixed a bug where an invalid reference of a variable could cause incorrect data to be sent.
  963. ** IEEE 802.15.4 **
  964. - Adjusted CCA threshold value to be correct for nRF52840 Rev. 1 (different from what was available on the Engineering sample).
  965. - Implemented a fix for Anomaly 153 (temperature correction of RSSI measurement): added an API in RAL module for calculating the corrected RSSI value.
  966. ** Drivers and libraries **
  967. - Fixed a bug in the SPI manager where app_timer was included too many times.
  968. - Fixed a wrapping issue in the Ring Buffer library.
  969. ** DFU/Bootloader **
  970. - Fixed a bug where the watchdog feeding in the bootloader did not happen during a certain FW activation.
  971. ** DTM **
  972. - Added support for 8 dB on nRF52840 targets.
  973. - Implemented the workaround for nRF52840 Anomaly 172 which caused the device to fail a test with interference in co-channels (RF-PHY/RCV/BV-29-C).
  974. ** Proprietary **
  975. - Fixed a bug in bytewise_bit_swap where it was harder to backport the implementation to nRF51.
  976. - Fixed a bug in nrf_esb_pop_tx where the packet queue would occasionally be corrupted.
  977. - Added shutdown of the system timer as the workaround for Anomaly 78 and to save energy.
  978. ** NFC **
  979. - Integrated fixes from EMVCo test suite (improved interoperability).
  980. - Added automatic fix for Anomaly 181.
  981. - Fixed a bug where HFCLK was requested too early for nRF52840 Rev. 1 chip.
  982. - Changed the way the fixes for chip errata are switched: use chip defines from MDK instead of board defines (simplifying usage of custom boards).
  983. ** USB **
  984. - Removed redundant barriers in USBD HAL.
  985. - Fixed a bug in HID library where the report descriptor was limited to 64 bytes.
  986. - Fixed a bug where USBD was not able to wake up after SOF event.
  987. - Fixed a bug where the SET_ADDRESS command was not processed in time.
  988. - USB application library (stack) now properly supports a situation when the HOST requests a descriptor but sets wLength Setup field to 0.
  989. *** Known Issues
  990. ****************
  991. ** BLE **
  992. - Peer Manager:
  993. - When a link is already secured and the peer sends a slave security request for a higher level of security, the request will not be honored.
  994. - Service Changed indications might be silently dropped without being sent if the attempt to send them happens during an ATT MTU exchange.
  995. - Service Changed indications might be silently dropped if the flash is full when the Service Changed flag is being stored in flash.
  996. ** BLE IOT **
  997. - Neighbor discovery module for lwIP requires the on-link flag in the router advertisement to be set to create a SLAAC address from the prefix.
  998. However, RFC 7668 (https://tools.ietf.org/html/rfc7668) requires this bit to be zero. Therefore, the nd6.c from lwIP source has been modified
  999. to relax this check.
  1000. - There are some issues when using the IoT examples against Linux Kernel 4.12+ that cause the kernel to only work with one 6LoWPAN connection.
  1001. If more than one kit is connected using 6LoWPAN, none of the nodes will be accessible.
  1002. - Scheduler has been included in most IoT examples to avoid race conditions found when using the lwIP stack, more precisely the TCP examples.
  1003. The issue was that the TCP client would stop working after about 15 hours. However, when using mbed TLS, the use of scheduler is not possible.
  1004. Therefore, the MQTT client examples might be affected by this issue.
  1005. - The use of security, both with TLS and DTLS, should be treated as experimental.
  1006. - MQTT examples cannot be used with commissioning on nRF52832. There is not enough RAM to accommodate both TLS and the commissioning service.
  1007. - If enabled, RTT logs in IoT bootloader might not be printed before resetting.
  1008. - The background_dfu example does not work.
  1009. ** Drivers and libraries **
  1010. - SAADC driver is not handling detection limits: high and low correctly if SAADC resolution is greater than 10 bits.
  1011. - In the radio test example, modulated packets will only have the requested content in the first two bytes.
  1012. Further bytes have random values.
  1013. - In the radio test example, start_duty_cycle_modulated_tx is not working as intended.
  1014. The actual duty cycle on air is not what was requested in the command.
  1015. ** USBD **
  1016. - Due to Anomaly 199, the USBD driver blocks code execution during EasyDMA transfer (for stability).
  1017. - USBD BLE UART FreeRTOS example is not working when combined with Nordic UART Service Client example.
  1018. ========================================================================
  1019. nRF5 SDK v15.1.0
  1020. ------------------------
  1021. Release Date: Week 34, 2018
  1022. Highlights:
  1023. - Added support for the new SoftDevices S140, S132, and S112 v6.1.0.
  1024. - Added new targets for running S112 on nRF52832 (PCA10040).
  1025. - Updated ESB library to support all nRF52 devices (nRF52810, nRF52832 (Rev.1 & Rev.2), and nRF52840).
  1026. - Updated SDFU to include nRF52810 target (PCA10040E).
  1027. - Released nrf_log in production quality.
  1028. Note: Due to compatibility issues, you must run the upgrade using nRF Connect Desktop v2.5.0 or later when testing the Bluetooth examples in nRF5 SDK v15.1.0.
  1029. The following toolchains/devices have been used for testing and verification:
  1030. - ARM: MDK-ARM version 5.18a
  1031. - GCC: GCC ARM Embedded 6.3 2017-q2-update
  1032. - IAR: IAR Workbench 7.80.4 (IAR 8 - see note below)
  1033. - SES: SES 3.40
  1034. *****
  1035. Note for IAR 8 users:
  1036. (Libraries for IAR 8 require wchar_t to be of size 32 bits while IAR 7 requires 16 bits).
  1037. To run a project using IAR 8, follow these intructions:
  1038. - Open the IAR project in IAR 8. The IAR workbench will automatically generate an IAR 8 compatible project file.
  1039. - If the project contains one of the precompiled libraries listed below, replace it with the IAR 8 compatible alternative
  1040. (there are no projects targeting nRF51 in this SDK).
  1041. - Save the project.
  1042. - When building the project, you might get the warning: "The header file 'cmsis_iar.h' is obsolete and should not be used. [...]".
  1043. - The problem is described in DevZone post: https://devzone.nordicsemi.com/f/nordic-q-a/31123/iar-ewarm-8-22-1-complains-about-cmsis_iar-h
  1044. The solution is to remove all occurrences of #include <cmsis_iar.h>.
  1045. The affected libraries are:
  1046. - micro-ecc crypto:
  1047. - IAR7: Includes library located in the folder named “…_iar\…”.
  1048. - IAR8: Switch to using the library from the folder named “…_armgcc\…”.
  1049. - nrf_cc310, nrf_cc310_bl, and nrf_oberon:
  1050. - IAR7: Includes the library where “_short_wchar_” is part of the file name.
  1051. - IAR8: Switch to using the library with similar naming, but where the “short_wchar” is removed.
  1052. - Gazell, NFC Tag, and 802.15.4:
  1053. - IAR7: Includes the library where the file name ends with “_iar”.
  1054. - IAR8: Switch to using the library with similar file name that ends with “_gcc”.
  1055. *****
  1056. Supported SoftDevices:
  1057. - S112 v6.1.x
  1058. - S132 v6.1.x
  1059. - S140 v6.1.x
  1060. - S212 v5.0.x
  1061. Supported boards:
  1062. - PCA10040
  1063. - PCA10040E (nRF52810 emulation on PCA10040)
  1064. - PCA10056
  1065. - PCA10059 (support in selected examples)
  1066. - D52DK1 from Garmin Canada (only for ANT examples)
  1067. For other devices and boards, see the SDK documentation, section "Using
  1068. the SDK with other boards".
  1069. *** New features
  1070. *****************
  1071. ** BLE **
  1072. - Added new targets to demonstrate the use of S112 on nRF52832 (PCA10040).
  1073. - Added "Property Read" for the Object Transfer Service client (ble_app_ots_c).
  1074. - Added a Scanning Module to simplify scanning for BLE devices in central role.
  1075. - Peer Manager:
  1076. - peer_manager_handler.h: There are now standard event handlers available to users of the Peer Manager.
  1077. The event handlers provide features like logging, automatically securing the link, and automatically
  1078. deleting the oldest bond if the flash is full.
  1079. - PM_RA_PROTECTION_ENABLED: The Peer Manager can now be configured to reject repeated security requests
  1080. from peers that failed pairing.
  1081. - PM_LESC_ENABLED: Improved LESC support.
  1082. - PM_LOG_ENABLED: Added error and warning level logging messages to the Peer Manager.
  1083. - PM_EVT_FLASH_GARBAGE_COLLECTION_FAILED: Added new event.
  1084. - Added LESC support to the following examples: ble_app_hrs, ble_app_hrs_c, and ble_app_gls.
  1085. - Added support for nRF52840 (PCA10056) in the beacon example (ble_app_beacon).
  1086. - Added Swift Pair support to the HID mouse example (ble_app_hids_mouse).
  1087. - Battery Service: Added the possibility to notify a reconnected, bonded peer of an updated battery level.
  1088. This feature is demonstrated in the Immediate Alert Server example.
  1089. ** Crypto **
  1090. - EdDSA: Added support for Edwards-curve Digital Signature Algorithm (Ed25519).
  1091. - In documentation, added a table showing supported nrf_crypto backends for different examples:
  1092. http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v15.1.0/nrf_crypto_default_backends.html
  1093. ** DFU/Bootloader **
  1094. - Added a new target to the SDFU example to demonstrate SDFU running on nRF52810 (PCA10040E). In a single bank update, there is only
  1095. about 60 kB of flash available. This restricts what can be updated.
  1096. - The bootloader settings page is now backed up before being updated. This increases protection from corruption caused by chance events
  1097. (for example, power failure) and malicious apps.
  1098. - The advertising interval of BLE DFU can now be configured in sdk_config (NRF_DFU_BLE_ADV_INTERVAL).
  1099. - The size of the application data area that is left alone by the bootloader can now be configured
  1100. in sdk_config (NRF_DFU_APP_DATA_AREA_SIZE).
  1101. - The bootloader code now supports most of nrf_crypto backends. However, the size of the binary will likely be too large if other backends
  1102. are used, so you will need to accomodate by increasing the size of the bootloader.
  1103. ** USB **
  1104. - Added response/no response to an IN token on ISO IN endpoint with a ZLP when no data is ready. This can be set with USBD_CONFIG_ISO_IN_ZLP.
  1105. - Added support for configuration string ID.
  1106. - Added an option to give priority to isochronous transfers using USBD_CONFIG_DMASCHEDULER_ISO_BOOST.
  1107. - Implemented SOF event callback in interrupt for classes.
  1108. - Added an enum and get function for a selected protocol (boot or report) in HID. Implemented a SET_PROTOCOL propagation mechanism using
  1109. on_set_protocol methods. Buffers can now be cleared after the SET_PROTOCOL command using clear_buffer methods.
  1110. - Redesigned the idle report mechanism in HID. It now allows a callback function and handles multiple report IDs.
  1111. - Added an option to send a ZLP on write with the same size as the endpoint in CDC ACM class using APP_USBD_CDC_ACM_ZLP_ON_EPSIZE_WRITE.
  1112. - Implemented macros to set interval for individual endpoints. See APP_USBD_EP_WITH_INTERVAL.
  1113. - Transfers in Audio class can now be started in SOF interrupt set in the app_usbd_audio_sof_interrupt_register function.
  1114. *** Changes
  1115. ************
  1116. ** BLE **
  1117. - Increased the length of the advertising name for the Running Speed and Cadence sensor example (ble_app_rscs) to make it easy to verify
  1118. that it is using the extended advertising.
  1119. - Included the Scanning module into all BLE examples. This aligns how scanning is performed in these examples.
  1120. - Updated the NFC pairing examples (ble_app_hids_keyboard_pairing_nfc, ble_app_hrs_nfc_pairing, ble_nfc_pairing_reference) to start using
  1121. the LESC functionality in the Peer Manager (which uses the nrf_ble_lesc module).
  1122. - Removed the manual handling of credits for the Object Transfer Service (ble_app_ots and ble_app_ots_c). Most use cases now work faster
  1123. and simpler when the SoftDevice is controlling it.
  1124. - Updated the API documentation for advertising_init in the Advertising module (ble_advertising). It was clarified that UUID arrays were not
  1125. copied into the Advertising module.
  1126. - Advertising module (ble_advertising) is no longer dependent on the fstorage module.
  1127. - Changed the ANCS example (ble_app_ancs_c) so that it no longer performs service discovery after connecting to an already bonded peer.
  1128. - Lowered the advertising interval in the Eddystone example (ble_app_eddystone), because some advertising packets would be lost when combined
  1129. with the timeslot API.
  1130. - Reduced the maximum supported value for advertising interval in Eddystone from 20000 to 16384. If a higher value is set, the SoftDevice returns
  1131. an error code that asserts the application.
  1132. - Peer Manager:
  1133. - Various improvements to documentation.
  1134. - The Peer Manager will now take less space for the same features.
  1135. - To decrease complexity, the Peer Manager no longer uses the 'reserve' functionality in FDS, meaning that PM_EVT_STORAGE_FULL
  1136. events will come slightly later if bonds cannot be stored during bonding.
  1137. - Error event parameters now specify whether the error code is to be interpreted as an FDS_ error or an NRF_ error.
  1138. - Peers without a stored rank are now never returned from pm_peer_ranks_get().
  1139. - The function pm_peer_data_load() now fills the array even when returning NRF_ERROR_DATA_SIZE.
  1140. - Enabled internal LESC key handling through PM_LESC_ENABLED. Function pm_lesc_public_key_set() is now deprecated because of this change.
  1141. - All examples using the Peer Manager now use the new standard event handlers.
  1142. While some examples implement custom behavior, all examples do the following:
  1143. - Log Peer Manager events (at different log levels).
  1144. - Encrypt immediately on connection with bonded peers.
  1145. - Delete old bonds to make room for new peer data.
  1146. - Some examples supporting central mode disconnect when link encryption fails. Look for functions calling pm_handler_disconnect_on_sec_failure().
  1147. - The ble_app_bms example will now request for security procedure to be initiated if the Central does not initiate it.
  1148. ** IEEE 802.15.4 **
  1149. - Updated the radio test example to support 802.15.4 radio modes.
  1150. ** Crypto **
  1151. - Updated documentation about RAM requirements on mbed TLS.
  1152. - Added endianness change Curve25519 (to little endian).
  1153. - Removed the following defines. A compile error is shown if they are enabled in a configuration:
  1154. - NRF_CRYPTO_BACKEND_CC310_BL_HASH_LITTLE_ENDIAN_DIGEST_ENABLED
  1155. - NRF_CRYPTO_BACKEND_CC310_BL_ECC_LITTLE_ENDIAN_ENABLED
  1156. - NRF_CRYPTO_BACKEND_MICRO_ECC_LITTLE_ENDIAN_ENABLED
  1157. - NRF_CRYPTO_BACKEND_NRF_SW_HASH_LITTLE_ENDIAN_DIGEST_ENABLED
  1158. - nrf_crypto micro-ecc backend: Moved ECDH public key validation from the key convert function to ECDH compute
  1159. (moved from nrf_crypto_backend_micro_ecc_public_key_from_raw to nrf_crypto_backend_micro_ecc_ecdh_compute).
  1160. - Upgraded nrf_cc310 and nrf_cc310_bl to version 0.9.10 including minor changes to some default configurations.
  1161. ** DFU and Bootloader **
  1162. - Updated documentation about how to change the existing SDFU project, so that the application can be uploaded without signature verification,
  1163. but at the same time to keep the signature verification when updating a SoftDevice and/or bootloader.
  1164. - The bootloader now does not use app_timer, which saves flash space.
  1165. - The bootloader now does the endian-conversion in code, instead of relying on endian-conversion in nrf_crypto.
  1166. ** Drivers and libraries **
  1167. - Included new version of nrfx (v1.1.0). For the nrfx changelog, see https://github.com/NordicSemiconductor/nrfx/blob/master/CHANGELOG.md
  1168. - nrf_log:
  1169. - Updated to production quality.
  1170. - You can now store/load the filtering configuration in FDS.
  1171. - You can now control one backend from another.
  1172. - nrf_cli: Added support for terminal meta keys.
  1173. ** Proprietary **
  1174. - Updated ESB library to support all current variants of nRF52. This mainly involves adding proper handling of Errata related to the radio.
  1175. - Added a function to skip the next packet in the TX queue. This was previously a function used internally in the module under another name.
  1176. ** USB **
  1177. - Moved USBD strings configuration to sdk_config.
  1178. - Rebuilt MSC class write procedure.
  1179. - Moved APP_USBD_CONFIG_LOG_ENABLED to nrf_log settings.
  1180. - HID report protocol is now default after reset.
  1181. - HID default idle rate after reset can now be defined.
  1182. - OUT transfers are now dropped when clearing stall on endpoint.
  1183. - SET_ADDRESS command is now defined as a separate event in app_usbd. It does not change the state of the device anymore.
  1184. - EP0 is now disabled until USB RESET condition is detected.
  1185. - HID OUT reports are now limited to 63 bytes of data + 1 byte reserved for report ID.
  1186. *** Bug fixes
  1187. ****************
  1188. ** BLE **
  1189. - Fixed a bug in the BLE UART client (ble_app_uart_c) where it would check the wrong error code when issuing multiple write commands.
  1190. - Fixed a bug in the Eddystone example (ble_app_eddystone) where the default TX power was set to 0 directly
  1191. instead of using the DEFAULT_FRAME_TX_POWER define.
  1192. - Fixed a bug in the ANCS example (ble_app_ancs) where app_timer was included too many times.
  1193. - Fixed a bug in the Advertising module (ble_advertising) where a comment referred to seconds instead of 10 ms.
  1194. - Fixed a bug in the LESC connection example (ble_app_multirole_lesc) where the procedure for connection parameter update would not be started
  1195. immediately upon connection.
  1196. - Fixed a bug where a precompiled hex was missing for Immediate Alert Server (ble_app_ias) and Service Changed server (ble_app_gatts) examples.
  1197. - Fixed a bug in the Radio Notification Event Handler (ble_radio_notification) where a missing include stopped it from compiling.
  1198. - Fixed a bug in the BLE Interactive Command Line Interface Example in service discovery procedure.
  1199. - Fixed a bug in the Alert Notification Service, where it was not possible to enable notifications for an unread alert.
  1200. - Peer Manager:
  1201. - Fixed a bug where the event PM_EVT_FLASH_GARBAGE_COLLECTED was also sent when garbage collection failed.
  1202. - Fixed a bug in pm_next_peer_id_get() where it could report a peer with no data attached to it if used during bonding.
  1203. - Fixed a bug where peer data would not be written because the internal retry mechanism failed after two attempts.
  1204. - Fixed several documentation bugs related to error codes.
  1205. ** IEEE 802.15.4 **
  1206. - Adjusted CCA threshold value to be correct for nRF52840 Rev. 1 (different from what was available on the Engineering sample).
  1207. - Implemented a fix for Anomaly 153 (temperature correction of RSSI measurement): added an API in RAL module for calculating the corrected RSSI value.
  1208. ** Drivers and libraries **
  1209. - Fixed a bug in the SPI manager where app_timer was included too many times.
  1210. - Fixed a wrapping issue in the Ring Buffer library.
  1211. ** DTM **
  1212. - Added support for 8 dB on nRF52840 targets.
  1213. - Implemented the workaround for nRF52840 Anomaly 172 which caused the device to fail a test with interference in co-channels (RF-PHY/RCV/BV-29-C).
  1214. ** Proprietary **
  1215. - Fixed a bug in bytewise_bit_swap where it was harder to backport the implementation to nRF51.
  1216. - Fixed a bug in nrf_esb_pop_tx where the packet queue would occasionally be corrupted.
  1217. - Added shutdown of the system timer as the workaround for Anomaly 78 and to save energy.
  1218. ** NFC **
  1219. - Integrated fixes from EMVCo test suite (improved interoperability).
  1220. - Added automatic fix for Anomaly 181.
  1221. - Fixed a bug where HFCLK was requested too early for nRF52840 Rev. 1 chip.
  1222. - Changed the way the fixes for chip errata are switched: use chip defines from MDK instead of board defines (simplifying usage of custom boards).
  1223. ** USB **
  1224. - Removed redundant barriers in USBD HAL.
  1225. - Fixed a bug in HID library where the report descriptor was limited to 64 bytes.
  1226. - Fixed a bug where USBD was not able to wake up after SOF event.
  1227. - Fixed a bug where the SET_ADDRESS command was not processed in time.
  1228. *** Known Issues
  1229. ****************
  1230. ** BLE **
  1231. - Peer Manager:
  1232. - When a link is already secured and the peer sends a slave security request for a higher level of security, the request will not be honored.
  1233. - Service Changed indications might be silently dropped without being sent if the attempt to send them happens during an ATT MTU exchange.
  1234. ** BLE IOT **
  1235. - Neighbor discovery module for lwIP requires the on-link flag in the router advertisement to be set to create a SLAAC address from the prefix.
  1236. However, RFC 7668 (https://tools.ietf.org/html/rfc7668) requires this bit to be zero. Therefore, the nd6.c from lwIP source has been modified
  1237. to relax this check.
  1238. - There are some issues when using the IoT examples against Linux Kernel 4.12+ that cause the kernel to only work with one 6LoWPAN connection.
  1239. If more than one kit is connected using 6LoWPAN, none of the nodes will be accessible.
  1240. - Scheduler has been included in most IoT examples to avoid race conditions found when using the lwIP stack, more precisely the TCP examples.
  1241. The issue was that the TCP client would stop working after about 15 hours. However, when using mbed TLS, the use of scheduler is not possible.
  1242. Therefore, the MQTT client examples might be affected by this issue.
  1243. - The use of security, both with TLS and DTLS, should be treated as experimental.
  1244. - MQTT examples cannot be used with commissioning on nRF52832. There is not enough RAM to accommodate both TLS and the commissioning service.
  1245. - If enabled, RTT logs in IoT bootloader might not be printed before resetting.
  1246. - The background_dfu example does not work.
  1247. ** Drivers and libraries **
  1248. - SAADC driver is not handling detection limits: high and low correctly if SAADC resolution is greater than 10 bits.
  1249. - In the radio test example, modulated packets will only have the requested content in the first two bytes.
  1250. Further bytes have random values.
  1251. - In the radio test example, start_duty_cycle_modulated_tx is not working as intended.
  1252. The actual duty cycle on air is not what was requested in the command.
  1253. ** USBD **
  1254. - Due to Anomaly 199, the USBD driver blocks code execution during EasyDMA transfer (for stability).
  1255. ========================================================================
  1256. nRF5 SDK v15.0.0
  1257. ------------------------
  1258. Release Date: Week 12, 2018
  1259. Highlights:
  1260. - Full support for nRF52840 and production quality of libraries and examples for this device.
  1261. - Support for the new SoftDevices S140, S132, and S112 v6.0.0.
  1262. - Peripheral drivers now use nrfx.
  1263. - Extensive rework of the DFU functionality.
  1264. - Extensive rework of the cryptography library (nrf_crypto).
  1265. - USB firmware is now in production quality.
  1266. - Serialization of SoftDevices S140, S132, and S112 v6.0.0.
  1267. - IEEE 802.15.4 protocol in production quality.
  1268. - Included nrf_oberon crypto library with standard Nordic 5-clause license.
  1269. The following toolchains/devices have been used for testing and
  1270. verification:
  1271. - ARM: MDK-ARM version 5.18a
  1272. - GCC: GCC ARM Embedded 6.3 2017-q2-update
  1273. - IAR: IAR Workbench 7.80.4 (IAR 8 - see note below)
  1274. - SES: SES 3.34
  1275. - Linux: Ubuntu 17.04, Kernel 4.10.0.
  1276. - Jlink: 6.22g
  1277.     
  1278. *****
  1279. Note for IAR 8 users:
  1280. Libraries for IAR 8 require wchar_t to be of size 32 bits while IAR 7 requires 16 bits.
  1281. To run a project using IAR 8, follow these intructions:
  1282.  - Open the IAR project in IAR 8. The IAR workbench will automatically generate an IAR 8 compatible project file.
  1283.  - If the project contains one of the precompiled libraries listed below, replace it with the IAR 8 compatible alternative
  1284.    (there are no projects targeting nRF51 in this SDK).
  1285.  - Save the project.
  1286.  - When building the project, you might get the warning: "The header file 'cmsis_iar.h' is obsolete and should not be used. ....".
  1287.    The problem is described in DevZone post: https://devzone.nordicsemi.com/f/nordic-q-a/31123/iar-ewarm-8-22-1-complains-about-cmsis_iar-h
  1288.    The solution is to remove all occurrences of #include <cmsis_iar.h>.
  1289. The affected libraries are
  1290. - micro-ecc crypto:
  1291.     - IAR 7: Includes the library located in the folder named "…_iar\…".
  1292.     - IAR 8: Switch to using the library from the folder named "…_armgcc\…".
  1293. - nrf_cc310, nrf_cc310_bl, and nrf_oberon:
  1294.     - IAR 7: Includes the library where "_short_wchar_" is part of the file name.
  1295.     - IAR 8: Switch to using the library with similar naming, but where the "short_wchar" is removed.
  1296. - Gazell, NFC Tag, and 802.15.4:
  1297.     - IAR 7: Includes the library where the file name ends with "_iar".
  1298.     - IAR 8: Switch to using the library with similar file name that ends with "_gcc".
  1299. *****
  1300.  
  1301. Supported SoftDevices:
  1302. - S112 v6.0.x
  1303. - S132 v6.0.x
  1304. - S140 v6.0.0
  1305. - S212 v5.0.x
  1306.      
  1307. Supported boards:
  1308. - PCA10040
  1309. - PCA10040E (nRF52810 emulation on PCA10040)
  1310. - PCA10056
  1311. - PCA10059 (support in selected examples)
  1312. - Dynastream's D52DK1 (only for ANT examples)
  1313.      
  1314. For other devices and boards, see the SDK documentation, section "Using
  1315. the SDK with other boards".
  1316.      
  1317.  
  1318. *** New features
  1319. *****************
  1320.  
  1321. ** IEEE 802.15.4 **
  1322. - Added support for SES toolchain.
  1323.  
  1324. ** ANT **
  1325. - Added support for SES and GCC toolchains in the following examples:
  1326.     - ANT-FS Client
  1327.     - ANT Bootloader/DFU
  1328.  
  1329. ** BLE **
  1330. - Added support for the new SoftDevices S140, S132, and S112 v6.0.0. For more information about SoftDevice v6.0.0, refer to the SoftDevice documentation.
  1331. - Extended advertising and selection of advertising PHYs can now be configured using the advertising module (ble_advertising).
  1332. - Running Speed and Cadence Service Application (ble_app_rscs) now advertises using extended advertising. Note that this makes it incompatible with devices that do not support extended advertising.
  1333. - Added multilink support for a selected group of BLE services (including separate GATT context for each connected client).
  1334.     - Affected services:
  1335.         - Human Interface Device Service: ble_hids.
  1336.         - Nordic UART Service: ble_nus.
  1337.         - Immediate Alert Service: ble_ias.
  1338.         - Battery Service: ble_bas.
  1339.     - Added BLE Link Context Manager module
  1340.     - Modified the Immediate Alert Application to show this feature.
  1341. - Added a new application: BLE Interactive Command Line Interface Example.
  1342. - Added Device Information Service client. This module can be used to read any characteristic of Device Information Service.
  1343.     - Modified the Running Speed and Cadence Collector example application (ble_app_rscs) to show the use of this module.
  1344. - Immediate Alert Service client example application (ble_app_ias_c) is no longer experimental.
  1345. - Immediate Alert Service server example application (ble_app_ias) is no longer experimental.
  1346. - GATT Service Client Example Application (ble_app_gatts_c) is no longer experimental.
  1347. - GATT Service Server Example Application (ble_app_gatts) is no longer experimental.
  1348. - Improved the test description documentation for Continuous Glucose Monitoring Service Example Application (ble_app_cgms). It now showcases more capabilities of the application and how to test them.
  1349. - ble_conn_state: Added new function ble_conn_state_for_each_set_user_flag() which calls a function for each flag in a collection that is set.
  1350. - Peer Manager:
  1351.     - Two new configuration parameters to disable functionality to save space:
  1352.         - PM_SERVICE_CHANGED_ENABLED to enable/disable Service Changed sending. This must be enabled if Service Changed is enabled in the GATT database.
  1353.         - PM_PEER_RANKS_ENABLED to enable/disable the tracking of peer ranks.
  1354.     - The relevant APIs have gained the error code NRF_ERROR_NOT_SUPPORTED if the function is called when the configuration is disabled.
  1355. - Added NRF_SDH_BLE_GAP_DATA_LENGTH configuration (under nrf_sdh_ble) to configure BLE data length negotiated by the nrf_ble_gatt module.
  1356. - Added BLE LESC module as experimental.
  1357.  
  1358. ** BLE IOT **
  1359.  - Added support for the nRF52840 (PCA10056 board) with the use of the S140 SoftDevice.
  1360.  
  1361. ** NFC **
  1362.  - Added support for SES toolchain in the Adafruit Tag Reader Example.
  1363. ** Crypto **
  1364.  - Production quality nrf_crypto interface that supports software and hardware backends (using the CC310 hardware accelarator in nRF52840 devices).
  1365.  - nrf_crypto API supports the following cryptographic family of algorithms (subject to support in nrf_crypto backends):
  1366.     - AES (CBC, CTR, CFB, ECB, CBC_MAC, CMAC)
  1367.     - AEAD (CCM, CCM*, EAX, GCM, ChaCha-Poly)
  1368.     - ECC (Elliptic Curve Cryptography)
  1369.         - Key generation
  1370.         - Key validation
  1371.         - Key conversions (from/to raw format)
  1372.     - ECDH (multiple curves)
  1373.     - ECDSA (multiple curves)
  1374.     - SHA-2 family hash
  1375.     - HMAC
  1376.     - HKDF
  1377.     - RNG using AES CTR or through dedicated hardware/sofware (on nRF52840)
  1378.     - Experimental Ed25519 support (available through the nrf_crypto_ecdsa API)
  1379.  - nrf_crypto API support for dynamic memory management by configuration:
  1380.     - User-specified macros to NRF_CRYPTO_ALLOC and NRF_CRYPTO_FREE
  1381.     - Stack allocation (using alloca)
  1382.     - C dynamic allocation (malloc)
  1383.     - SDK Memory Manager (nrf_malloc)
  1384.  - nrf_crypto backends include the following:
  1385.     - Cifra
  1386.     - mbed TLS
  1387.     - micro-ecc
  1388.     - nrf_cc310
  1389.     - nrf_cc310_bl (code size optimized, to use in Secure DFU)
  1390.     - nRF HW (for RNG)
  1391.     - nrf_oberon
  1392.     - nRF software (legacy)
  1393.  - Examples of nrf_crypto usage with the option to change the nrf_crypto backends.
  1394.  - Test example to verify the cryptographic routines and APIs through standardized test vectors.
  1395.  
  1396. ** DFU/Bootloader **
  1397.  - SoftDevice independence:
  1398.      - Only the BLE bootloader is now dependent on the SoftDevice. The others depend only on the MBR (which is now part of the SDK).
  1399.      - The DFU now supports updating applications that do not use the SoftDevice. Such an application must be compiled to be placed above the MBR.
  1400.  - The DFU protocol has been extended to support new messages:
  1401.      - Protocol version - To retrieve information about the protocol version.
  1402.      - Firmware version - To retrieve information (size, version) about each piece of firmware on the chip.
  1403.      - Hardware version - To retrieve information (flash/RAM size, page size) about the hardware.
  1404.      - DFU Abort - To instruct the bootloader to abort the DFU procedure and reset the device.
  1405.  - Configurable security: New configuration parameters to turn on and off version checking and signature checking of application transfers. Added a new example using the new configurations (open_bootloader).
  1406.  - DFU Trigger (USB): Added a library to allow DFU mode to be triggered through USB in the application. The library is used in the new ble_connectivity example that uses USB CDC ACM.
  1407.  - Added optional skipping of application CRC check. CRC check can be skipped on wakeup from System Off or on special value written to GPREGRET2 register.
  1408.  - Added watchdog support to the bootloader. If application had enabled watchdog before resetting to the bootloader, it is fed in the bootloader.
  1409.  
  1410.  ** Drivers and libraries **
  1411.  - Added support for wildcards in the CLI module.
  1412.  - Added TWI sensor module.
  1413.  - Added drivers for sensors on Thingy:52 (LPS22HB, BH1745, HTS221, CCS811, SX1509B, LIS2DH12).
  1414.  - Added the nrfx project as a set of default drivers and provided a legacy layer for supporting deprecated API.
  1415.  - Added support for filtering log messages on instance level in the logger module. Instance level logging added to nrf_balloc, nrf_queue, and nrf_atfifo.
  1416.  - Added new logger backends for writing logs to flash: flashlog backend for storing logs in standard operation, crashlog backend for dumping logs on error condition. Added CLI commands for controlling data stored in flash.
  1417.  - Added optional timestamp formatting in the logger. 
  1418.  - Added new implementation of app_timer (libraries/timer/experimental/app_timer2.c) which does not use SWI, uses less RAM and flash, and has modular, simpler design. It shares the same API as the legacy implementation. The new implementation is used by bootloaders and peripheral/CLI.
  1419.  - Added bsp_cli module to send BSP events through CLI.
  1420.  - Added nrf_atflags module for atomic manipulation of bit fields.
  1421.  - Added improved CLI UART backend called libUARTE. This backend is recommended when the CLI must exchange big amounts of data fast, for example when CLI is used with a script.
  1422.  
  1423. ** Serialization **
  1424. - Added serialization of the S112, S132, and S140 v6.0.0 SoftDevices.
  1425. - Added serialization connectivity application for PCA10059 using USB CDC ACM as the transport layer.
  1426.  
  1427. ** USB **
  1428. - Added example with the SoftDevice and USB (usbd_ble_uart).
  1429. - Added configuration of the self-powered descriptor bit (APP_USBD_CONFIG_SELF_POWERED).
  1430. - Added buffering of transfers in CDC.
  1431. - Added configuration of power in a descriptor (APP_USBD_CONFIG_MAX_POWER).
  1432. - Added option to specify the CDC ACM protocol.
  1433. - Added dummy interface class.
  1434. - Implemented USBD power event processing in app_usbd event queue.
  1435. - Implemented different ways of processing SOF events:
  1436.     - Normal - SOF events are pushed normally into the event queue.
  1437.     - Compress - SOF events are counted and bound with other events or executed when the queue is empty. This prevents the queue from filling up with SOF events.
  1438.     - Interrupt - SOF events are processed in the interrupt.
  1439. - Implemented Get Output Report in HID class.
  1440. - New SoftDevice API used for USB power events.
  1441. - Button events can now be sent through CLI in the usbd_cdc_acm, usbd_hid_composide, and usbd_hid generic examples.
  1442.  
  1443.  
  1444. *** Changes
  1445. ************
  1446.  
  1447. ** ANT **
  1448.  - Added welcome message to all ANT examples. Logging is enabled by default in all of them.
  1449.  - Removed obsolete module: ant_stack_config. The ANT SoftDevice Handler module has taken over its functionality.
  1450.  
  1451. ** BLE **
  1452.  - Minor improvements to consistency of BLE examples main functions (comments, function call ordering, function names).
  1453.  - BLE examples changed to use the Queued Write module (nrf_ble_qwr). Applications must explicitly configure characteristics to accept long writes. See app_ble_qwr for an example of this. This fixes a problem where peers could cause our devices to assert by issuing long writes.
  1454.  - BLE examples changed to use the Power Management library. Most examples now call nrf_pwr_mgmt_run() instead of sd_app_evt_wait().
  1455.  - Eddystone modules have been moved from components/libraries to components/ble.
  1456.  - ble_app_uart changed to have 247-byte MTU, up from 64.
  1457.  - Peer Manager:
  1458.      - The members of pm_conn_sec_procedure_t have been renamed from PM_LINK_SECURED_PROCEDURE_* to PM_CONN_SEC_PROCEDURE_*.
  1459.      - The following functions have gained new error codes:
  1460.          - pm_conn_secure()
  1461.          - pm_peer_data_store()
  1462.          - pm_peer_ranks_get()
  1463.          - pm_peer_rank_highest()
  1464.  
  1465. ** BLE IOT **
  1466.  - Minor updates in TFTP background DFU modules to align with changed DFU libraries.
  1467.  
  1468. ** Crypto **
  1469.  - nrf_crypto APIs have been changed to use big-endian only.
  1470.     - Previous versions of nrf_crypto used little-endian ordering to conform to BLE requirements in LESC.
  1471.       This has now been changed to big-endian everywhere. There are conversion functions available to
  1472.       change between little-endian and big-endian input/output.
  1473.     - See the Migration Guide for details.
  1474.  - nrf_crypto memory management has changed extensively.
  1475.     - See the Migration Guide for details.
  1476.  - nrf_crypto configuration of frontends and backends is now primarily done through sdk_config.h.
  1477.     - See the Migration Guide for details.
  1478.  
  1479. ** DFU/Bootloader **
  1480.  - Configuration parameters (sdk_config) have changed. See the Migration Guide for details.
  1481.  - Refactoring: The DFU/bootloader code has been extensively refactored.
  1482.      - The split between DFU and bootloader has been improved.
  1483.         - New events from DFU.
  1484.         - Resetting has been moved from DFU to bootloader, based on DFU events.
  1485.         - Much of the code in nrf_dfu_utils has been extracted into the new nrf_bootloader_fw_activation and nrf_bootloader_dfu_timers modules.
  1486.      - Request handling module:
  1487.         - The dfu_req_handling module has been renamed to nrf_dfu_req_handler and moved to components/libraries/bootloader/dfu.
  1488.         - The request handling now uses app_scheduler and is entirely asynchronous and executed in the main context.
  1489.         - The init command validation was refactored out and into two new modules nrf_dfu_validation and nrf_dfu_ver_validation.
  1490.      - The Serial transport is now called UART.
  1491.      - The shared parts of the USB and UART transports have been placed in a separate module nrf_dfu_serial.
  1492.      - Most of the assembly code in bootloader_app_start has been replaced with C code and extracted into a separate file nrf_bootloader_app_start_final.
  1493.      - Examples:
  1494.         - The secure bootloader examples have been moved into a 'secure_bootloader' folder.
  1495.         - The experimental ANT bootloader has been moved into an 'experimental' folder.
  1496.         - The USB secure bootloader is no longer experimental.
  1497.  - Bootloader examples have been reorganized. Examples "bootloader_secure_ble", "bootloader_secure_serial", and "experimental_bootloader_secure_usb" have been merged into "secure_bootloader" with projects for each transport and board.
  1498.  - Write protection of the bootloader: Before booting the app, the bootloader will write-protect the flash areas of the bootloader and MBR (using BPROT on nRF52832/nRF52810 and ACL on nRF52840).
  1499.      - The BLE Buttonless SVCI interface needs access to the bootloader settings page from the application, so there is a new configuration parameter to specify whether that page should be part of the protection.
  1500.      - The SVCI interface will now return NRF_ERROR_FORBIDDEN if using the interface when the page is protected.
  1501.  - WDT compatibility: The bootloader will feed the WDT if the app has started it.
  1502.  - BLE DFU:
  1503.      - The BLE DFU bootloader now explicitly requests the preferred connection interval upon connection. The minimum and maximum connection intervals can be set in sdk_config.h.
  1504.      - The BLE DFU bootloader will use long ATT MTUs and data length extension when the host supports these features. This increases DFU transfer speed considerably.
  1505.      - Several stability improvements over different transport configurations.
  1506.  - USB serial number: The serial number of the USB bootloaders has changed to be the same as the default BLE address (found under DEVICEADDR in FICR).
  1507.  - New crypto backend for nRF52840: The bootloaders for nRF52840 use the hardware crypto backend (CC310) instead of micro-ecc.
  1508.  
  1509. ** Drivers and libraries **
  1510.  - The way peripheral drivers are handled in the SDK has been reorganized:
  1511.      - Replaced existing drivers with the "external" drivers from nrfx project. See https://github.com/NordicSemiconductor/nrfx/blob/master/README.md for more information on nrfx.
  1512.      - New drivers from nrfx are located in "..\modules\nrfx".
  1513.      - Drivers replaced by nrfx are removed from "..\components\driver_nrf".
  1514.      - A glue layer is added to make the nrfx driver compatible with SDK and the SoftDevice.
  1515.  - Refactored I2S driver.
  1516.  - New reliable delay implementation.
  1517.  - Added CLI commands to nrf_balloc and nrf_queue which print out the status of all instances present in the system.
  1518.  - CLI built-in root commands: cli_stats, colors, and echo have been changed to subcommands: cli colors, cli echo, and cli stats.
  1519. - The CMSIS-SVD files with device descriptions have been moved from the "..\svd" folder to the "..\modules\nrfx\mdk" folder.
  1520.  - Infineon OPTIGA:
  1521.      - Replaced "crypto\ifx_optiga_auth" example with the new one: "crypto\ifx_optiga_ecdsa_simple".
  1522.      - Updated related libraries from the "external\infineon" directory.
  1523.      - Replaced support for Infineon OPTIGA Trust E HSM with Infineon OPTIGA Trust X HSM.
  1524.      - Added support for IAR toolchain.
  1525.  
  1526. ** Proprietary **
  1527.  - New Gazell functionalities:
  1528.      - Transmission statistics gathering - counts successful packet transactions and timeouts on each of the RF channels.
  1529.      - External analog frontend module control - generates TX/RX signals during transmission/receiving, which can be used to control the external PA/LNA module.
  1530.  - Updated gzll_ack_payload examples with the example usage of the new Gazell features.
  1531.  - Dynamic changes of TX attempts and TX power parameters are now allowed when the Gazell stack is enabled.
  1532. - Removed the nRF52840 project from ble_app_gzll example (removed "pca10056" folder).
  1533.  
  1534. ** NFC **
  1535.  - Type 2 Tag Library:
  1536.     - Modified Dynamic Memory structure of the Tag. Added Terminator TLV to indicate that there is no more relevant user data after NDEF TLV.
  1537.  - Type 4 Tag HAL:
  1538.     - Modified Frame Wait Time setting to support full range available on the nRF52840 Rev. 1 chip.
  1539.  - Type 4 Tag Library:
  1540.     - Modified behavior of the NFC_T4T_EVENT_NDEF_READ event: the event is always triggered when the last byte of the NDEF File is sent to an NFC Reader device - even if the Reader repeats the read operation multiple times in one session, i.e. before the Reader sends a DESELECT or SLP_REQ frame.
  1541.  - NFC BLE pairing library: modified to support multiple connections.
  1542.  - BLE/NFC examples: updated application behavior to comply with NFC Forum user experience recommendations.
  1543.  - NFC libraries which can enable nrf_log independently (using sdk_config.h) register the logger instance conditionally, i.e. only if nrf_log is enabled in the sdk_config.h
  1544.  
  1545. ** USB **
  1546.  - app_usbd_init: when called with NULL configuration structure or NULL ev_handler member of a structure, the default event handler will be used.
  1547.  - app_usbd_init: removed clock initialization.
  1548.  - Descriptors are now generated on the fly using simple stackless thread code.
  1549.  - Added a warning for wrong interface order.
  1550.  - Combined USB CDC ACM driver for all examples into one.
  1551.  
  1552.    
  1553. *** Bugfixes
  1554. ****************
  1555.  
  1556. ** ANT **
  1557.  - Added missing logger backends to all examples.
  1558.  
  1559. ** BLE **
  1560.   - Fixed a bug in ble_app_uart where Data Length update requests would be handled twice.
  1561.   - Fixed a bug in ble_app_uart and ble_app_uart_c where the "start" message in the main function was not followed by a line feed. This could make the applications seem unresponsive.
  1562.   - Fixed a bug in ble_app_cgms where properties of the characteristics were not configured.
  1563.   - Fixed a bug in ble_app_cgms where directed advertising was enabled by the advertising module but was ignored by the application. Directed advertising is now disabled.
  1564.   - Fixed a bug in ble_app_cgms where advertising was triggered twice when deleting bonds. The second call to advertising start would cause the example to assert on the busy error.
  1565.   - Fixed a bug in ble_app_gls  where the seconds field of the glucose measurement was never updated.
  1566.   - Fixed a bug in ble_tps where documentation for ble_tps_tx_power_level_set() was describing another unrelated function.
  1567.   - Fixed a bug in most main.c files where fds garbage collection fds_gc() would retry upon returning FDS_ERR_BUSY. However, this function call will never return FDS_ERR_BUSY.
  1568.   - Fixed a bug in nrf_ble_gatts_c where setting NRF_LOG_DEFAULT_LEVEL to debug (4) would cause an assert because it was not registered with the logger module (NRF_LOG_MODULE_REGISTER();)
  1569.   - Added missing Errata workaround to Direct Test Mode (DTM) on nRF52840.
  1570.   - Peer Manager:
  1571.       - Fixed the bonded flag in pm_conn_sec_status_get().
  1572.       - Fixed a performance bug in peer_database.c.
  1573.       - Split the error code NRF_ERROR_INVALID_STATE from pm_conn_secure() that could have two different meanings.
  1574.  
  1575. ** BLE IOT **
  1576.   - Corrected logging module name, such that logs could be enabled in the LWIP platform module.
  1577.   - Fixed a reassembly bug in BSD socket module.
  1578.   - Fixed flushing of ports when the kit disconnects. Added API to flush the ports.
  1579.   - Added handling of BLE_L2CAP_EVT_CH_SDU_BUF_RELEASED event to generate the BLE_IPSP_EVT_CHANNEL_DATA_TX_COMPLETE in case link disconnection occured before the TX was complete.
  1580.   - Resolved an issue with MQTT/lwIP packets stuck in a TX queue. Now forcing out enqueued data before close.
  1581.   - Conformed to MQTT specification in the use of QoS flag in MQTT connect.
  1582.  
  1583. ** DFU/Bootloader **
  1584.   - Bootloaders for nRF52840 now support bootloader updates (if used with the new MBR or SoftDevice).
  1585.   
  1586. ** Drivers and libraries **
  1587.   - Extended input pin configuration in the GPIOTE driver: configuration of GPIOTE INPUT pin added, which does not change the current GPIO configuration.
  1588.   - CLI module - fixed echo command behavior. When echo is off, the command will not be printed after log print.
  1589.   - Logger modules - stability fixes (including https://devzone.nordicsemi.com/f/nordic-q-a/31178/bug-nrf_log_frontend-m_log_data-buffer-overflow).
  1590.   - More changes in drivers can be found in the modules/nrfx directory in the CHANGELOG.md file.
  1591. ** Proprietary **
  1592.  - Gazell stack:
  1593.     - Fixed a bug with high current consumption in disabled state, related with TIMER issue 78.
  1594.     - Fixed a bug with reenabling Gazell stack after the SoftDevice activity.
  1595.  - Gazell Pairing Library:
  1596.     - Fixed a bug with unreserved flash memory region for the Host ID.
  1597.     - Fixed a bug with wrong initialization of database flash memory page on nRF52 chips.
  1598.  
  1599. ** NFC **
  1600.  - Type 2 Tag Library:
  1601.     - Modified Dynamic Memory content of the Tag. Dynamic Lock Bytes use proper values now.
  1602.     - Updated CC1 byte setting (one of the Type 2 Tag Reserved bytes) according to the new NFC Forum Type 2 Tag Technical Specification v1.0.
  1603.  - Type 2 Tag HAL:
  1604.     - Handling of erroneous NFC-A data frames (with parity and CRC errors) has been improved.
  1605. ** USB **
  1606.  - Fixed a bug in USB CDC ACM class where the APP_USBD_CDC_ACM_USER_EVT_PORT_OPEN event was not raised.
  1607.  - Fixed a bug in USB CDC ACM class where RX stopped working after the port was closed or the cable was detached.
  1608.  - Fixed a bug in USB MSC where it could not satisfy the number of required bytes by the host.
  1609.  - Fixed a bug in app_usbd.c where APP_USBD_EVT_DRV_RESUME event was raised after a reset instead of APP_USBD_EVT_DRV_RESET.
  1610.  - Fixed a bug in HID class where Remote Wake Up was not properly handled.
  1611.  - Fixed a bug in nrf_drv_usbd_transfer_out_drop() where it was clearing an isochronous endpoint.
  1612.  - Fixed a bug in app_usbd_core.c where transfer status was not checked during EP0 processing.
  1613.  - FTPAN-171 workaround has been implemented.
  1614.  - FTPAN-199 workaround has been implemented.
  1615.  - Fixed minor issues.
  1616.  
  1617. *** Known Issues
  1618. ****************
  1619.  
  1620. ** Missing feature on nRF52840 **
  1621.   - ANT protocol support is missing due to ANT SoftDevices not available for this device.
  1622.   - FreeRTOS
  1623.   - ESB
  1624.  
  1625. ** BLE **
  1626.  - BLE LESC module should be treated as experimental, even though it has not been marked as such.
  1627. - Eddystone example should be treated as experimental on nRF52840.
  1628.  
  1629. ** BLE IOT **
  1630.  - Neighbor discovery module for lwIP requires the on-link flag in the
  1631.    router advertisement to be set in order to create a SLAAC address
  1632.    from the prefix. However, RFC 7668 (https://tools.ietf.org/html/rfc7668)
  1633.    requires this bit to be zero. Therefore, the nd6.c from lwIP source
  1634.    has been modified to relax this check.
  1635.  - There are some issues when using the IoT examples against Linux
  1636.    Kernel 4.12+ which causes the kernel to only work with one 6LoWPAN
  1637.    connection. If more than one kit is connected using 6LoWPAN, none of
  1638.    the nodes will be accessible.
  1639.  - Scheduler has been included in most IoT examples to avoid race
  1640.    conditions found when using the lwIP stack, more precisely the TCP
  1641.    examples.
  1642.    The issue was that the TCP client stopped working after about 15
  1643.    hours. However, when using mbed TLS, the use of scheduler is not
  1644.    possible.
  1645.    Therefore, the MQTT client examples might be affected by this issue.
  1646.  - The use of security, both with TLS and DTLS, should be treated as
  1647.    experimental.
  1648.  - MQTT examples cannot be used with commissioning on nRF52832. There is not enough
  1649.    RAM to accommodate both TLS and the commissioning service.
  1650.  - If enabled, RTT logs in IoT bootloader might not be printed before resetting.
  1651.  
  1652. ** DFU/Bootloader **
  1653.  - Changing the backend for nrf_crypto in sdk_config.h alone is not sufficient
  1654.    because the relevant files are not included in the build and include paths.
  1655.    See the Migration Guide for a walkthrough of changing from the µECC to the
  1656.    Oberon backend.
  1657.  - ble_app_buttonless_dfu will silently hang during bootup if a compatible
  1658.    bootloader, i.e. the BLE bootloader, is not present.
  1659. - SES will not detect whether the debug bootloader is too large, instead it will place the code in the MBR params page. To make SES detect this, add the following line in flash_placement.xml:
  1660.   <ProgramSection load="no" name=".reserved_flash_tail" start="$(FLASH_START)+$(FLASH_SIZE)" size="$(FLASH_PH_SIZE)-$(FLASH_START)-$(FLASH_SIZE)" />
  1661. Place this line immediately after:
  1662. <ProgramSection alignment="4" load="Yes" runin=".tdata_run" name=".tdata" />
  1663. The production bootloader is not affected by this issue.
  1664. - nrfutil version 3.5.0 has an optional argument to increase the time delay "--connect-delay <seconds>".
  1665. It is recommended to set this value to 10 when Serial DFU (UART / USB) is performed for large images (SoftDevice + Application or SoftDevice + Bootloader + Application).
  1666. - You may experience some instability with the µECC library in IAR due to faulty decoding of symbol information. Compile the µECC library without symbol information to fix these issues.
  1667. ** Proprietary **
  1668.  - Gazell stack for all devices is working with sensitivity reduced by 3 dB due to the RADIO issues 102, 106, 107, and 143.
  1669.  
  1670. ** NFC **
  1671.  - NFC Type 2 and Type 4 Tag HAL modules require using TIMER 4 on nRF52840 and nRF52832 chips.
  1672.  
  1673. ** USBD **
  1674.  - For the sake of stability, the USBD driver blocks code execution during EasyDMA transfer.
  1675.  - Isochronous transfers must be processed as fast as possible, but using the event queue may postpone SOF processing too long if the CPU is busy. In such situations, isochronous transfers should be started inside a SOF interrupt. Configure APP_USBD_CONFIG_SOF_HANDLING_MODE as interrupt. The implementation of special SOF interrupt callbacks is subject of the future updates.
  1676.  
  1677. ** Drivers and Libraries **
  1678.  - SAADC driver is not handling detection limits: high and low correctly if SAADC resolution is greater than 10 bits.
  1679. - The following examples do not have Keil 4 support: nrf_cc310, nrf_cc310_bl, ifx_optiga_ecdsa_simple.
  1680. ========================================================================
  1681. nRF5 SDK v14.2.0
  1682. ------------------------
  1683. Release Date: Week 46, 2017
  1684. Highlights:
  1685. - Support for the new S112 SoftDevice v5.1.0.
  1686. The following toolchains/devices have been used for testing and
  1687. verification:
  1688. - ARM: MDK-ARM version 5.18a
  1689. - GCC: GCC ARM Embedded 4.9 2015q3
  1690. - IAR: IAR Workbench 7.80.4
  1691. - SES: SES 3.30
  1692. - Linux: Ubuntu 17.04, Kernel 4.10.0.
  1693. - Jlink: 6.20d
  1694. Supported SoftDevices:
  1695. - S112 v5.1.x
  1696. - S132 v5.0.x (for v5.1.x, see the note below)
  1697. - S140 v5.0.0-2.alpha
  1698. - S212 v5.0.x
  1699. - S332 v5.0.x
  1700. S132 compatibility:
  1701. The newly released S132 SoftDevice v5.1.0 is drop-in compatible with
  1702. S132 v5.0.0, which is included in this SDK release.
  1703. However, there are some limitations that you must be aware of when
  1704. replacing the included SoftDevice with the new one:
  1705. - In S132 v5.1.0, the SoftDevice RAM usage is reduced. Examples that are
  1706. optimized on RAM usage return a warning that the application RAM start
  1707. address can be lowered. The examples work as before but are not fully
  1708. optimized on RAM usage.
  1709. - The test images in examples\dfu\secure_dfu_test_images are tightly
  1710. connected with the precompiled HEX files located in
  1711. examples\dfu\bootloader_secure_ble\hex. Therefore, they cannot be used
  1712. in combination with the new SoftDevice.
  1713. Supported boards:
  1714. - PCA10040E (nRF52810 emulation on PCA10040)
  1715. - PCA10040
  1716. - PCA10056 (limited support; see the "Scope for the nRF52840 chip" section)
  1717. - Dynastream's D52DK1 (only for ANT examples)
  1718. For other devices and boards, see the SDK documentation, section "Using
  1719. the SDK with other boards".
  1720. *** Scope for the nRF52840 chip
  1721. ********************************
  1722. All examples and libraries for the new chip must be treated as
  1723. experimental.
  1724. Some examples have not been ported to run on nRF52840. Check the
  1725. existing example projects to see which targets are supported.
  1726. The following SDK features are supported on the new nRF52840 chip:
  1727. - IEEE 802.15.4 stack library with an example
  1728. - Most BLE, hardware peripheral, and NFC examples (with some
  1729. exceptions; see the available example projects for details)
  1730. - Peripheral HAL and drivers (both for existing and new peripherals)
  1731. - Cryptography library including CryptoCell CC310 backend
  1732. - NFC Type 2 Tag and Type 4 Tag
  1733. - Secure DFU (only with micro-ecc backend)
  1734. - DTM including support for the new Bluetooth 5 features
  1735. - Gazell
  1736. The following SDK features are not supported on the new nRF52840 chip:
  1737. - ANT
  1738. - Eddystone
  1739. - ESB
  1740. - FreeRTOS
  1741. - IoT components
  1742. - Serialization of the S140 SoftDevice v5.0.0-2.alpha
  1743. *** New features
  1744. *****************
  1745. ** BLE **
  1746. - Added support for the S112 SoftDevice v5.1.0.
  1747. ** Crypto **
  1748. - Added a makefile for compiling the micro-ecc library with a "soft"
  1749. FPU ABI (required for nRF52810, which does not have hardware FPU
  1750. support).
  1751. ** Drivers and libraries **
  1752. - Added support for a "soft" FPU ABI in the Task Manager library
  1753. (required for nRF52810, which does not have hardware FPU support).
  1754. *** Changes
  1755. ************
  1756. ** Drivers and libraries **
  1757. - TWI Transaction Manager: Added support for passing the TWI
  1758. configuration in function nrf_twi_mngr_perform(). Pass NULL if you do
  1759. not want to use this new feature.
  1760. - Command Line Interface: Added support for commands longer than 255
  1761. characters.
  1762. *** Bugfixes
  1763. ****************
  1764. ** Drivers and libraries **
  1765. - Fixed "echo" command behavior in nrf_cli.
  1766. - Fixed a bug in nrf_ringbuf where allocation protection failed on a
  1767. second attempt to allocate a buffer in use.
  1768. - Fixed a compile error in the Task Manager library when stack guard is
  1769. off.
  1770. - Fixed invalid module names in logger output when LTO was used in the
  1771. GCC compiler.
  1772. - Fixed a bug in the logger where output could get corrupted when
  1773. logging was interrupted by NRF_LOG_PROCESS() (for example, flushing
  1774. in error handler).
  1775. ** DTM **
  1776. - Fixed a bug preventing certain TX power values to be set.
  1777. - Set the PDU header payload type field of coded PHY 0xFF packets to
  1778. 0x04 instead of 0x03 to make the 0xFF packets valid.
  1779. *** Known Issues
  1780. ****************
  1781. ** BLE **
  1782. - When working on the emulated nRF52810 target, if you change the
  1783. optimization level and/or add the logging functionality, the project
  1784. might not compile or fail at runtime due to not enough flash
  1785. available for FDS or Peer Manager.
  1786. - All Bluetooth applications not using the nrf_queued_write module will
  1787. assert when a peer sends a Write request with the opcode 'cancel all
  1788. operations' (BLE_GATTS_OP_EXEC_WRITE_REQ_CANCEL), after the
  1789. SoftDevice call to sd_ble_gatts_rw_authorize_reply. This SoftDevice
  1790. call, for the opcode 'cancel all operations', returns
  1791. NRF_INVALID_PARAMS if the gatt_status is not BLE_GATT_STATUS_SUCCESS.
  1792. ** BLE IOT **
  1793. - Neighbor discovery module for lwIP requires the on-link flag in the
  1794. router advertisement to be set in order to create a SLAAC address
  1795. from the prefix. However, RFC 7668 (https://tools.ietf.org/html/rfc7668)
  1796. requires this bit to be zero. Therefore, the nd6.c from lwIP source
  1797. has been modified to relax this check.
  1798. - There are some issues when using the IoT examples against Linux
  1799. Kernel 4.12+ which causes the kernel to only work with one 6LoWPAN
  1800. connection. If more than one kit is connected using 6LoWPAN, none of
  1801. the nodes will be accessible.
  1802. - Scheduler has been included in most IoT examples to avoid race
  1803. conditions found when using lwIP stack, more precisely the TCP
  1804. examples.
  1805. The issue was that the TCP client stopped working after about 15
  1806. hours. However, when using mbedTLS, the use of scheduler is not
  1807. possible.
  1808. Therefore, the MQTT client examples might be affected by this issue.
  1809. - The use of security, both with TLS and DTLS, should be treated as
  1810. experimental.
  1811. - MQTT examples cannot be used with commissioning. There is not enough
  1812. RAM to accommodate both TLS and the commissioning service.
  1813. ** NFC **
  1814. - NFC Type 2 and Type 4 Tag HAL modules require using TIMER 4 on
  1815. nRF52832.
  1816. - Some mobile phone apps cannot write Type 4 Tag ("NFC Tools" and
  1817. "TagWriter" v4.1 seem to be okay to use).
  1818. ** USB (experimental) **
  1819. - MSC implementation does not stall when the host requires more bytes
  1820. than are available in the selected descriptor. It is not a problem
  1821. for any tested driver on Windows and Linux, but still violates the
  1822. specification.
  1823. - During high USB traffic, in rare cases, communication might hang or
  1824. the endpoint data might be transferred twice. See PAN 104.
  1825. ** Drivers and libraries **
  1826. - SAADC driver is not handling detection limits 'high' and 'low'
  1827. correctly if SAADC resolution is greater than 10 bits.
  1828. ========================================================================
  1829. nRF5 SDK v14.1.0
  1830. ------------------------
  1831. Release Date: Week 42, 2017
  1832. Highlights:
  1833. - Integrated nRF5 IoT SDK into nRF5 SDK. Subsequent updates of IoT components will be available through nRF5 SDK.
  1834. This release marks IoT SDK v1.0.0. The IoT SDK is no longer prototype.
  1835. - Added Segger Embedded Studio (SES) IDE support.
  1836. - The new SoC nRF52810 supported for the BLE examples using the new S112 SoftDevice and for a few peripheral examples.
  1837. Examples targeting this new device are located in the 'PCA10040E' folder.
  1838. For more details, see 'Developing for nRF52810' in the SDK documentation.
  1839. - Support for the new S112 SoftDevice.
  1840. Added new S112 target for most of the Bluetooth Peripheral examples.
  1841. - The NFC library includes an API change that may need extra attention. See Changes -> NFC BLE Pairing Library.
  1842. The following toolchains/devices have been used for testing and
  1843. verification:
  1844. - SES: SES 3.30
  1845. - ARM: MDK-ARM version 5.18a
  1846. - GCC: GCC ARM Embedded 4.9 2015q3
  1847. - IAR: IAR Workbench 7.80.4
  1848. - Linux: Ubuntu 17.04, Kernel 4.10.0. (for the 6LoWPAN Border Router)
  1849. - J-link: 6.20d
  1850. Supported SoftDevices:
  1851. - S112 v5.1.0-2.alpha
  1852. - S132 v5.0.x
  1853. - S140 v5.0.0-2.alpha
  1854. - S212 v5.0.x
  1855. - S332 v5.0.x
  1856. Supported boards:
  1857. - PCA10040E (nRF52810 emulation on PCA10040)
  1858. - PCA10040
  1859. - PCA10056 (limited support; see the "Scope for the nRF52840 chip" section)
  1860. - Dynastream's D52DK1 (only for ANT examples)
  1861. For other devices and boards, see the SDK documentation, section "Using
  1862. the SDK with other boards".
  1863. *** Scope for the nRF52840 chip
  1864. ********************************
  1865. All examples and libraries for the new chip must be treated as
  1866. experimental.
  1867. Some examples have not been ported to run on nRF52840. Check the
  1868. existing example projects to see which targets are supported.
  1869. The following SDK features are supported on the new nRF52840 chip:
  1870. - IEEE 802.15.4 stack library with an example
  1871. - Most BLE, hardware peripheral, and NFC examples (with some
  1872. exceptions; see the available example projects for details)
  1873. - Peripheral HAL and drivers (both for existing and new peripherals)
  1874. - Cryptography library including CryptoCell CC310 backend
  1875. - NFC Type 2 Tag and Type 4 Tag
  1876. - Secure DFU (only with micro-ecc backend)
  1877. - DTM including support for the new Bluetooth 5 features
  1878. - Gazell
  1879. The following SDK features are not supported on the new nRF52840 chip:
  1880. - ANT
  1881. - Eddystone
  1882. - ESB
  1883. - FreeRTOS
  1884. - IoT components
  1885. - Serialization of the S140 SoftDevice v5.0.0-2.alpha
  1886. *** New features
  1887. *****************
  1888. ** Common **
  1889. - Added support for the new chip nRF52810.
  1890. - New example flash_fstorage added to examples\peripheral\flash_fstorage.
  1891. This example shows how to use the nrf_fstorage library.
  1892. - New example flash_fds added to examples\peripheral\flash_fds.
  1893. This example shows how to use the FDS library.
  1894. - Added support in Segger Embedded Studio and armgcc for editing the sdk_config.h file in the external graphical editor (CMSIS Configuration Wizard).
  1895. ** BLE **
  1896. - Bluetooth Peripheral examples now support the S112 SoftDevice.
  1897. S112 is designed to work with the new SoC nRF52810. Examples targeting this new device are located in folder 'PCA10040E'.
  1898. See SDK documentation for more details.
  1899. - Added support for IPSP (Internet Protocol Support Profile).
  1900. IPSP is now based on production-quality SoftDevice S132 v5.0.0. The IPSP is, also, a qualified profile.
  1901. The IPSP service uses L2CAP Connection Oriented Channels to transfer data between devices.
  1902. - The profile implementation added to components\ble\ble_services.
  1903. - The IPSP Acceptor example added to examples\ble_peripheral\ble_app_ipsp_acceptor.
  1904. - The IPSP Initiator example added to examples\ble_central\ble_app_ipsp_initiator.
  1905. - Added all IoT components, including BLE 6LoWPAN, Nordic's IPv6 Stack, CoAP, MQTT, DFU over TFTP, lwIP port on nRF platform, and others.
  1906. - Changes in these components in comparison to IoT SDK v0.9.0 are described in the Changes section of the release notes.
  1907. - The SDK now supports firmware upgrade over TFTP (IPv6).
  1908. - This mechanism for updating the firmware was earlier available in the IoT SDK, and is now a part of the nRF SDK.
  1909. - New example app_ble_gatts added to examples\ble_central\experimental\ble_app_gatts.
  1910. This application can be used to test the Service Changed indications together with app_ble_gatts_c.
  1911. - Added S332 projects in Heart Rate Sensor and Heart Rate Collector examples.
  1912. ** ANT **
  1913. - Added support for the new SoftDevices: S212 v5.0.x and S332 v5.0.x.
  1914. - Added S332 examples: 'Ant Shared Channels' and 'ANT and BLE Heart Rate Monitor Relay Application'.
  1915. - Added S332 projects in ANT Message Types and ANT Bootloader examples.
  1916. ** NFC **
  1917. - Dynamic NFCID1 configuration in Type 2 and Type 4 Tag libraries.
  1918. ** USB (Experimental) **
  1919. NOTE: The USB implementation is currently experimental and work in progress. Because of this, the code base and APIs
  1920. will change in-between SDK versions and will not necessarily be backwards compatible. This also applies to minor and
  1921. bugfix versions. Migration notes might not be complete for these changes.
  1922. - nrf_drv_usbd:
  1923. - New API function nrf_drv_usbd_ep_dtoggle_clear() implemented.
  1924. - app_usbd:
  1925. - Added a new function app_usbd_sof_timestamp_get() and its configuration APP_USBD_PROVIDE_SOF_TIMESTAMP.
  1926. This function may be used to stamp the timing of the logger messages.
  1927. - Interface selection mechanism provided.
  1928. Currently, every class that contains alternate interface settings requires the class methods
  1929. iface_select, iface_deselect, and iface_selection_get to be implemented.
  1930. No action is required if only the classes provided in the SDK are used.
  1931. - New event implemented:
  1932. APP_USBD_EVT_STATE_CHANGED – called when the state of USB interface is updated.
  1933. ** DTM **
  1934. - Added support for the new SoC nRF52810.
  1935. ** Serialization **
  1936. - Added solution for serialization of the combined BLE and ANT SoftDevice, using the ble_ant_app_hrm example as the use case.
  1937. - Added BLE connectivity (S132) support for nRF52810 (emulated on PCA10040).
  1938. ** Drivers and libraries **
  1939. - Added examples: UART and SAADC for nRF52810.
  1940. Examples targeting this new chip are located in the 'PCA10040E' folder. See SDK documentation for more details.
  1941. - Added the sorted list module (nrf_sortlist).
  1942. ** IOT **
  1943. - Added experimental examples under the "examples\iot" folder and libraries in the "components\iot" folder.
  1944. They show the usage of IPv6 over Bluetooth low energy using IPSP and 6LoWPAN. The demonstrated protocols include:
  1945. - BSD Sockets,
  1946. - UDP and TCP,
  1947. - DTLS and TLS,
  1948. - CoAP and Secure CoAP,
  1949. - MQTT and Secure MQTT,
  1950. - TFTP and LWM2M,
  1951. - Device Firmware Upgrade (DFU) over TFTP,
  1952. - DNS, ICMP, and SNTP.
  1953. *** Changes
  1954. ************
  1955. ** BLE **
  1956. - BLE event handler priorities have changed (BLE_OBSERVER_PRIO).
  1957. - The order of some module BLE event handlers has been changed. This means that compiling
  1958. new sdk_config.h files with old modules might lead to crashes.
  1959. - A new priority has been added, and all BLE applications have been changed to have
  1960. the new priority (NRF_SDH_BLE_OBSERVER_PRIO_LEVELS has been changed from 3 to 4).
  1961. This means that compiling new main files with old sdk_config.h files will not work
  1962. unless NRF_SDH_BLE_OBSERVER_PRIO_LEVELS is set to 4 or more.
  1963. - Peer Manager
  1964. - Added a new event PM_EVT_CONN_SEC_PARAMS_REQ and a new function pm_conn_sec_params_reply()
  1965. to allow setting security parameters for individual security procedures. Calling
  1966. pm_conn_sec_params_reply() is optional.
  1967. - Added a new configuration parameter PM_CENTRAL_ENABLED which removes the pairing functionality
  1968. for the central role when turned off, saving code size.
  1969. - Added a new informational event PM_EVT_SLAVE_SECURITY_REQ. No further Peer Manager action is
  1970. expected from the user in response to this event.
  1971. - Added a new event PM_EVT_FLASH_GARBAGE_COLLECTED which indicates that garbage collection has happened
  1972. in the flash storage, possibly freeing up space for new bonds.
  1973. - Added new function pm_address_resolve() for resolving BLE addresses.
  1974. - NFC BLE Pairing Library
  1975. - Added library support for the PM_EVT_CONN_SEC_PARAMS_REQ event from the Peer Manager.
  1976. NOTE:
  1977. ----------------------------------------
  1978. After the change in Peer Manager priority, this change in API was necessary to properly support all pairing modes.
  1979. Action: Call the nfc_ble_pair_on_pm_params_req() function inside the Peer Manager event handler in response to the
  1980. PM_EVT_CONN_SEC_PARAMS_REQ event:
  1981. case PM_EVT_CONN_SEC_PARAMS_REQ:
  1982. {
  1983. // Send event to the NFC BLE pairing library as it may dynamically alternate
  1984. // security parameters to achieve highest possible security level.
  1985. err_code = nfc_ble_pair_on_pm_params_req(p_evt);
  1986. APP_ERROR_CHECK(err_code);
  1987. } break;
  1988. ------------------------------------------
  1989. - The Heart Rate Application with BLE Pairing Using NFC Pairing Library now requires LESC
  1990. pairing to enable Heart Rate notifications.
  1991. - The LESC example now generates the DH key in the main thread so as not to hold up the
  1992. SoftDevice's BLE event queue.
  1993. ** BLE IoT **
  1994. - Changes from the previous IoT SDK v0.9.0 release:
  1995. - The 6LoWPAN library has been rewritten to adopt the new S132 v5.0.0 SoftDevice providing L2CAP Connection Oriented Channels feature.
  1996. The library is now distributed in source code format and not as a precompiled library.
  1997. - API breakers in many of the components including BLE IPSP, BLE 6LoWPAN, MQTT, nRF lwIP driver port, and background DFU.
  1998. - Deprecated the cloud examples. Cloud services used in them were not suitable any more.
  1999. The protocol features required to connect to a cloud are included and supported.
  2000. - lwIP external component has been updated to version 2.0.2.
  2001. - mbedTLS external component has been updated to version 2.4.2.
  2002. ** NFC **
  2003. - Removed the SoftDevice from the Writable NDEF Message example.
  2004. This example no longer requires the SoftDevice.
  2005. - All NFC libraries now have static configuration in the sdk_config.h file.
  2006. ** USB (experimental) **
  2007. - nrf_drv_usbd:
  2008. - Endpoint transfers are no longer aborted inside the USB RESET handler,
  2009. any transfer is now aborted when an endpoint is disabled.
  2010. - The nrf_drv_usbd_transfer_out_drop() function now does not start any dummy transfer – the endpoint is cleared by
  2011. writing correct values to SIZE.EPOUT registers or backdoor interface for the sample chip.
  2012. - Transfer can be started on a stalled endpoint.
  2013. In the previous version, NRF_ERROR_FORBIDDEN error was returned.
  2014. However, the possibility to stall the endpoint and prepare the answer that will be sent
  2015. after the stall is cleared by the HOST appeared to be widely used in MSC.
  2016. - Function rename: usbd_drv_ep_abort -> nrf_drv_usbd_ep_abort.
  2017. - app_usbd:
  2018. - All endpoints but 0 are disabled when the device is not configured.
  2019. This matches USB requirements.
  2020. - Function app_usbd_active_check provided – this allows to check whether
  2021. there is any active USB traffic or interface is suspended.
  2022. The macros APP_USB_STATE_BASE and APP_USBD_STATE_SUSPENDED_MASK removed.
  2023. The app_usbd_state_t enumeration now provides no information about suspended states.
  2024. Use app_usbd_active_check function whenever the SUSPEND state was checked via app_usbd_core_state_get function.
  2025. - The SETUP event processing cleaned up, normalized, and documented.
  2026. Clear rules for the order in which a class and default handlers are called.
  2027. - Functions app_usbd_core_ep_(handled_)transfer() and app_usbd_core_setup_data_(handled_)transfer()
  2028. unified and replaced by app_usbd_ep_(handled_)transfer functions:
  2029. app_usbd_core_ep_transfer() -> app_usbd_ep_transfer()
  2030. app_usbd_core_ep_handled_transfer() -> app_usbd_ep_handled_transfer()
  2031. app_usbd_core_setup_data_transfer() -> app_usbd_ep_transfer()
  2032. app_usbd_core_setup_data_handled_transfer() -> app_usbd_ep_handled_transfer()
  2033. - Classes implementation:
  2034. - Audio class implementation aligned to use the new alternate interface selection functionality.
  2035. - MSC class implementation error handling totally rebuilt to match the specification.
  2036. Now, it is stable and passes all USB precertification tests (with one small warning to be corrected in the future).
  2037. ** Crypto **
  2038. - Infineon Optiga Trust E communication library and authentication example are now in production quality.
  2039. ** Drivers and libraries **
  2040. - Command Line Interface (CLI) library is now in production quality.
  2041. - Logger (nrf_log) can process logs after panic mode.
  2042. - app_twi modules renamed to nrf_twi_mngr. Translation layer (app_twi.h) kept for backward compatibility.
  2043. *** Bugfixes
  2044. ****************
  2045. ** BLE **
  2046. - Peer Manager:
  2047. - Fixed a bug where a bonded and encrypted link could have invalid peer ID when the
  2048. Central uses a random non-resolvable address.
  2049. - Fixed a bug where the Service Changed state was always reported as "true" when
  2050. changed.
  2051. - Fixed a bug where peer rank was not written during pm_peer_rank_highest() if the
  2052. highest ranked peer was deleted and the peer ID was reused, or if the peer rank
  2053. value was manually changed or deleted.
  2054. - Fixed a bug where pm_conn_sec_status() would incorrectly return false for bonded field when
  2055. called during the PM_EVT_CONN_SEC_SUCCEEDED event for a reconnected bonded peer.
  2056. - Fixed a bug where pm_conn_secure() would return an undocumented error code if called
  2057. multiple times before the first procedure has completed.
  2058. - Fixed the ordering of events from pm_peers_delete(). The PM_EVT_PEERS_DELETE_SUCCEEDED
  2059. will now arrive after all PM_EVT_PEER_DELETE_SUCCEEDED events.
  2060. - Fixed a bug in ble_app_queued_writes where the characteristic would use the BLE UUID type
  2061. instead of a vendor type.
  2062. - Fixed a bug in ble_app_gls where the connection handle would be unassigned before the
  2063. disconnect call is issued (The connection handle is needed for the disconnect call).
  2064. - Fixed a bug in ble_app_gls where the Record Access Control Point indications would not be retried if an indication procedure was already in progress.
  2065. - Fixed a bug in ble_app_ancs_c where a missing C++ guard prevented it from compiling
  2066. correctly using C++.
  2067. - Fixed the LESC example so that it properly handles simultaneous security operations on both
  2068. links (numeric match and DHKEY generation).
  2069. - Fixed a bug in ble_app_ias_c where receiving a "Mild Alert" would print "No Alert" on the log, and "No Alert" would print "Mild Alert".
  2070. - Fixed a bug in ble_app_cgms where the connection handle would be set to invalid before calling sd_ble_gap_disconnect(). This would cause the call to fail and the app would assert.
  2071. - Fixed a bug in ble_app_hids_keyboard and ble_app_hids_mouse where the battery reading done before the connection was secured could cause the app to assert.
  2072. - Fixed a bug in ble_app_multirole_lesc where it would not handle PHY update requests.
  2073. - Fixed a bug that could prevent FDS from working properly when using the new nrf_fstorage_nvmc backend.
  2074. - Fixed a bug that could prevent FDS from working properly when using the nrf_fstorage_sd backend with the SoftDevice disabled.
  2075. - Keil will no longer delete the SoftDevice HEX file if the flash_softdevice target is compiled.
  2076. ** Crypto **
  2077. - Enforced the alignment on nrf_crypto buffers for signature types.
  2078. - Removed an unused file (nrf_crypto.c) that would cause compilation errors for some users.
  2079. ** DFU **
  2080. - Added a workaround for updating SoftDevices with changed size (from SDK 12.x.y -> 14.1.x). See configuration parameter NRF_DFU_WORKAROUND_PRE_SDK_14_1_0_SD_BL_UPDATE.
  2081. ** NFC **
  2082. - Type 4 Tag HAL:
  2083. - Handling of erroneous NFC-A data frames (with parity and CRC errors) has been
  2084. improved.
  2085. ** USB (Experimental) **
  2086. - HAL:
  2087. - Function nrf_usbd_dtoggle_set() is fixed. The previous version was not functional.
  2088. It was working in the examples thanks to the fact that nrf_usbd_dtoggle_get()
  2089. function was called before every nrf_usbd_dtoggle_set().
  2090. ** Drivers and libraries **
  2091. - Fixed a bug where SPI MISO was missing a pulldown.
  2092. Currently, the pulldown status can be configured with the SDK configuration parameter: NRF_SPI_DRV_MISO_PULLUP_CFG.
  2093. - Fixed a bug where the length parameters passed to macro NRF_LOG_HEXDUMP_DEBUG were not calculated correctly.
  2094. - Fixed a bug where a user could receive a "wrong configuration" error during the compilation of SPI driver.
  2095. - Fixed a bug where extern "C" was not terminated correctly in the Logger module.
  2096. - Fixed a bug in the PPI example where Timer 2 was not generating a CC event every odd second.
  2097. - Fixed the header guard in the ble_l2cap_conn.h file.
  2098. - Fixed a bug where nrf_log could crash when heavily loaded.
  2099. - Fixed the pwm_library example which was not working correcly when compiled with highest optimization on IAR.
  2100. ** Serialization **
  2101. - Fixed encoding of ble_gap_data_length_params_t and ble_gap_data_length_limitation_t structures.
  2102. - Fixed encoding of ble_gap_evt_auth_status_t::lesc.
  2103. - Fixed serialization of GATT MTU value
  2104. (https://devzone.nordicsemi.com/question/165596/scanner-doesnt-work-on-nrf52832sdk-14/)
  2105. - Fixed improper configuration of scheduler event size in serialized examples
  2106. (https://devzone.nordicsemi.com/question/166657/serialization-for-s132-5x-triggers-buffer-overflow-in-event-scheduling/)
  2107. *** Known Issues
  2108. ****************
  2109. ** BLE **
  2110. - When working on the emulated nRF52810 target, if you change the optimization level and/or add the logging functionality, the project might not compile or fail at runtime due to not enough flash available for FDS or Peer Manager.
  2111. - All Bluetooth applications not using the nrf_queued_write module will assert when a peer sends a Write request with the opcode 'cancel all operations' (BLE_GATTS_OP_EXEC_WRITE_REQ_CANCEL), after the SoftDevice call to sd_ble_gatts_rw_authorize_reply. This SoftDevice call, for the opcode 'cancel all operations', returns NRF_INVALID_PARAMS if the gatt_status is not BLE_GATT_STATUS_SUCCESS.
  2112. ** BLE IOT **
  2113. - Neighbor discovery module for lwIP requires the on-link flag in the router advertisement to be set in order to create a SLAAC address from the prefix. However, RFC 7668 (https://tools.ietf.org/html/rfc7668) requires this bit to be zero. Therefore, the nd6.c from lwIP source has been modified to relax this check.
  2114. - There are some issues when using the IoT examples against Linux Kernel 4.12+ which causes the kernel to only work with one 6LoWPAN connection. If more than one kit is connected using 6LoWPAN, none of the nodes will be accessible.
  2115. - Scheduler has been included in most IoT examples to avoid race conditions found when using lwIP stack, more precisely the TCP examples.
  2116. The issue was that the TCP client stopped working after about 15 hours. However, when using mbedTLS, the use of scheduler is not possible.
  2117. Therefore, the MQTT client examples might be affected by this issue.
  2118. - The use of security, both with TLS and DTLS, should be treated as experimental.
  2119. - MQTT examples cannot be used with commissioning. There is not enough RAM to accommodate both TLS and the commissioning service.
  2120. ** NFC **
  2121. - NFC Type 2 and Type 4 Tag HAL modules require using TIMER 4 on nRF52832.
  2122. - Some mobile phone apps cannot write Type 4 Tag ("NFC Tools" and "TagWriter" v4.1
  2123. seem to be okay to use).
  2124. ** USB (experimental) **
  2125. - MSC implementation does not stall when the host requires more bytes than are available in the selected descriptor. It is not a problem for any tested driver on Windows and Linux, but still violates the specification.
  2126. - During high USB traffic, in rare cases, communication might hang or the endpoint data might be transferred twice. See PAN 104.
  2127. ** Drivers and libraries **
  2128. - SAADC driver is not handling detection limits 'high' and 'low' correctly if SAADC resolution is greater than 10 bits.
  2129. ========================================================================
  2130. nRF5 SDK v14.1.0-1.alpha
  2131. ------------------------
  2132. Release Date: Week 32, 2017
  2133. Highlights:
  2134. - Integrated what was previously known as nRF5 IoT SDK into nRF5 SDK. Subsequent updates of IoT components will be available through nRF5 SDK.
  2135. - Migrated IoT components to use L2CAP Connection Oriented Channels feature of S132 v5.0.0.
  2136. The following toolchains/devices have been used for testing and
  2137. verification:
  2138. - ARM: MDK-ARM version 5.18a
  2139. - GCC: GCC ARM Embedded 4.9 2015q3
  2140. - IAR: IAR Workbench 7.80.4
  2141. - Linux: Ubuntu 17.04, Kernel 4.10.0.
  2142. Supported SoftDevices:
  2143. - S132 v5.0.x
  2144. - S140 v5.0.0-2.alpha
  2145. - S212 v4.0.x
  2146. Supported boards:
  2147. - PCA10040
  2148. - PCA10056 (limited support; see the "Scope for the nRF52840 chip" section)
  2149. - Dynastream's D52DK1 (only for ANT examples)
  2150. For other devices and boards, see the SDK documentation, section "Using
  2151. the SDK with other boards".
  2152. *** Scope for the nRF52840 chip
  2153. ********************************
  2154. All examples and libraries for the new chip must be treated as
  2155. experimental.
  2156. Some examples have not been ported to run on nRF52840. Check the
  2157. existing example projects to see which targets are supported.
  2158. The following SDK features are supported on the new nRF52840 chip:
  2159. - IEEE 802.15.4 stack library with an example
  2160. - Most BLE, hardware peripheral, and NFC examples (with some
  2161. exceptions; see the available example projects for details)
  2162. - Peripheral HAL and drivers (both for existing and new peripherals)
  2163. - Cryptography library including CryptoCell CC310 backend
  2164. - NFC Type 2 Tag and Type 4 Tag
  2165. - Secure DFU (only with micro-ecc backend)
  2166. - DTM including support for the new Bluetooth 5 features
  2167. The following SDK features are not supported on the new nRF52840 chip:
  2168. - ANT
  2169. - ESB and Gazell
  2170. - FreeRTOS
  2171. - Eddystone
  2172. - Serialization of the S140 SoftDevice v5.0.0-2.alpha
  2173. *** New features
  2174. *****************
  2175. ** BLE **
  2176. - Added support for IPSP (Internet Protocol Support Profile). The IPSP service uses L2CAP Connection Oriented Channels to transfer data between devices.
  2177. - Implementation added to components\ble\ble_services.
  2178. - IPSP Acceptor example added to examples\ble_peripheral\ble_app_ipsp_acceptor.
  2179. - IPSP Initiator example added to examples\ble_central\ble_app_ipsp_initiator.
  2180. ** Drivers and libraries **
  2181. - Added experimental examples under the "examples\iot" folder and libraries in the "components\iot" folder that show the usage of IPv6 over Bluetooth Smart using IPSP and 6LoWPAN. The demonstrated protocols include:
  2182. - BSD Sockets,
  2183. - UDP and TCP,
  2184. - DTLS and TLS,
  2185. - CoAP and Secure CoAP,
  2186. - MQTT and Secure MQTT,
  2187. - TFTP and LWM2M,
  2188. - Device Firmware Upgrade (DFU) over TFTP,
  2189. - DNS, ICMP, and SNTP.
  2190. *** Changes
  2191. ************
  2192. ** BLE IOT **
  2193. - Changes from the previous nRF5 IoT SDK 0.9.0 release
  2194. - The 6LoWPAN library has been rewritten to adopt the new S132 v5.0.0 SoftDevice providing L2CAP Connection Oriented Channels. The library is now distributed in source code format and not as a precompiled library.
  2195. - LWIP external component has been updated to version 2.0.2.
  2196. - mbedTLS external component has been updated to version 2.4.2.
  2197. *** Known Issues
  2198. ****************
  2199. ** Overall **
  2200. - In the UART peripheral example, only a line feed (LF) is output on startup and when resetting the board.
  2201. - Serialized Direct Test Mode does not report RX packet count correctly.
  2202. ** BLE **
  2203. - It is possible that the Peer Manager may return corrupt data when attempting to read the GATT attributes table under some circumstances when FDS CRC checks are enabled.
  2204. - In the Multiperipheral Example, LED 3 will toggle when writing any non-zero value to it. Also, two notifications instead of one are received on the Button Characteristic (0x1524) when pressing Button 1.
  2205. - For all serialized applications, the MTU size (NRF_SDH_BLE_GATT_MAX_MTU_SIZE in sdk_config.h) should be kept at the default level. Changing this value makes the application non-functional as the connectivity application uses static size buffers.
  2206. - Eddystone Beacon Application - LED indication might differ from what is described in documentation under the Testing section.
  2207. ** BLE IOT **
  2208. - Neighbor discovery module for lwIP requires the on-link flag in the router advertisement to be set in order to create a SLAAC address from the prefix. However, RFC 7668 (https://tools.ietf.org/html/rfc7668) requires this bit to be zero. Therefore, the nd6.c from lwIP source has been modified to relax this check.
  2209. - There are some issues using the IoT examples against Linux Kernel 4.12+ which causes the kernel to only work with one 6LoWPAN connection. If more than one kit is connected using 6LoWPAN, none of the nodes will be accessible.
  2210. ** ANT **
  2211. - Most ANT examples do not have the nrf_log backend in the project files, so enabling logging does not have any effect.
  2212. ** NFC **
  2213. - NFC Type 2 and Type 4 Tag HAL modules require using TIMER4 on nRF52832.
  2214. - Some mobile phone apps cannot write Type 4 Tag (the "NFC Tools" app seems to
  2215. be okay to use).
  2216. - BLE peripheral examples with NFC pairing work as expected only with Android 7.1.2.
  2217. ** DFU **
  2218. - Downgrading from nRF5 SDK v14.0.0 to nRF5 SDK v13.0.0 has been observed to cause the v13.0.0 bootloader to corrupt itself (Upgrading works as expected).
  2219. - The S140 SoftDevice currently does not support updating of the bootloader.
  2220. - The CTX pin (P0.07) should be grounded to run the Serial Secure DFU on both nRF52832 and nRF52840 boards.
  2221. - BLE/Serial Secure DFU only supports nrfutil 2.3.0.
  2222. - For nRF52840, a combined SoftDevice and application update on Serial transport fails when using nrfutil 2.3.0. Running a single SoftDevice and application update sequentially works as expected.
  2223. ** USB **
  2224. - USB driver Anomaly 104 solution is very unstable in IAR compilation with high optimization level.
  2225. ========================================================================
  2226. nRF5 SDK v14.0.0
  2227. ------------------------
  2228. Release Date: Week 31, 2017
  2229. Highlights:
  2230. - Added nRF52810 peripheral driver support.
  2231. - Added support for the latest SoftDevice (S132 v5.0.0).
  2232. - Added a new BLE example, Object Transfer Service, that shows how to set up and use the L2CAP Connection Oriented Channels feature of S132 v5.0.0.
  2233. - Updated Direct Test Mode (DTM) to support the new features of Bluetooth 5.
  2234. - Added a new NFC example: ISO-DEP raw mode.
  2235. - Buttonless DFU feature is now in production quality.
  2236. - Added USB CDC as a transport layer for DFU (Experimental, only nRF52840).
  2237. - Added a library and examples that show how to integrate and use the Infineon OPTIGA Trust E hardware security module.
  2238. - Refactored the logging system (nrf_log) to support multiple independent backends and dynamic logs filtering.
  2239. - Refactored the console (nrf_cli). The console can now act as one of the logger backends. Bluetooth UART is now a supported transport (using the ble_nus service).
  2240. The following toolchains/devices have been used for testing and
  2241. verification:
  2242. - ARM: MDK-ARM version 5.18a
  2243. - GCC: GCC ARM Embedded 4.9 2015q3
  2244. - IAR: IAR Workbench 7.80.4
  2245. Supported SoftDevices:
  2246. - S132 v5.0.x
  2247. - S140 v5.0.0-2.alpha
  2248. - S212 v4.0.x
  2249. Supported boards:
  2250. - PCA10040
  2251. - PCA10056 (limited support; see the "Scope for the nRF52840 chip" section)
  2252. - Dynastream's D52DK1 (only for ANT examples)
  2253. For other devices and boards, see the SDK documentation, section "Using
  2254. the SDK with other boards".
  2255. *** Scope for the nRF52840 chip
  2256. ********************************
  2257. All examples and libraries for the new chip must be treated as
  2258. experimental.
  2259. Some examples have not been ported to run on nRF52840. Check the
  2260. existing example projects to see which targets are supported.
  2261. The following SDK features are supported on the new nRF52840 chip:
  2262. - IEEE 802.15.4 stack library with an example
  2263. - Most BLE, hardware peripheral, and NFC examples (with some
  2264. exceptions; see the available example projects for details)
  2265. - Peripheral HAL and drivers (both for existing and new peripherals)
  2266. - Cryptography library including CryptoCell CC310 backend
  2267. - NFC Type 2 Tag and Type 4 Tag
  2268. - Secure DFU (only with micro-ecc backend)
  2269. - DTM including support for the new Bluetooth 5 features
  2270. The following SDK features are not supported on the new nRF52840 chip:
  2271. - ANT
  2272. - ESB and Gazell
  2273. - FreeRTOS
  2274. - Eddystone
  2275. - Serialization of the S140 SoftDevice v5.0.0-2.alpha
  2276. *** New features
  2277. *****************
  2278. ** Common **
  2279. - SoftDevice Handler:
  2280. - Can now register 'state event observers' that are notified when the SoftDevice state changes.
  2281. - Can now register 'request event observers' that are notified when a change of the SoftDevice state is requested.
  2282. - Console:
  2283. - Advanced cooperation with the Logger module (nrf_log). Console can work as a logger backend.
  2284. - Added support for static and dynamic subcommands.
  2285. - Easy-to-use macros for creating commands and subcommands.
  2286. - Added a smart auto-completion feature for commands and subcommands.
  2287. - Added a convenient help handler.
  2288. - Added support for multiline commands.
  2289. - Added support for text edition using the following keys: Left, Right, End, Home, and Insert.
  2290. - Implemented transport layers include: Bluetooth, USB CDC ACM, UART, RTT.
  2291. ** BLE **
  2292. - Added support the for the latest SoftDevice (S132 v5.0.0).
  2293. - Object Transfer Service added as experimental. The Object Transfer service uses L2CAP Connection Oriented Channels to transfer data between devices.
  2294. - Client implementation added to components\ble\ble_services.
  2295. - Server implementation added to components\ble\ble_services.
  2296. - Central client example application added to examples\ble_central\experimental\ble_ots_c.
  2297. - Peripheral server example application added to examples\ble_peripheral\experimental\ble_app_ots.
  2298. - GATT Service client added as experimental. The GATT Service client is used to receive Service Changed indications from the connected peer.
  2299. - Services featured in the Proximity example are now also accessible as stand-alone service examples.
  2300. - Immediate Alert Service client example application added as experimental.
  2301. - Immediate Alert Service server example application added as experimental.
  2302. - Link Loss Service server example application added as experimental.
  2303. - Added BLE transport Command Line Interface. An example "ble_app_cli" can be found in the 'experimental' folder.
  2304. ** NFC **
  2305. - Added a new example showing how to use the NFC Type 4 Tag library in raw ISO-DEP mode: NFC UART Example.
  2306. - Added a new pairing mode in the NFC BLE pairing library that supports OOB pairing in both "Secure Connections" and "Legacy" modes.
  2307. - Added flash support in the Writable NDEF Message Example - after the NDEF update operation, the new tag content is stored in flash.
  2308. ** DFU **
  2309. - Added production quality buttonless bootloader with support for bond sharing.
  2310. - Added configurable inactivity timeout timer that automatically resets the device in case no new commands are received before the timeout triggers. Default value is 120 seconds.
  2311. - Added support for USB CDC as a new transport layer for DFU (Experimental, only for nRF52840).
  2312. ** DTM **
  2313. - Added support for new Bluetooth 5 features LE 2M and LE Coded PHY.
  2314. - Added support for nRF52840 devices.
  2315. ** Drivers and libraries **
  2316. - Added a new example that demonstrates strong cryptographic authentication using the Infineon OPTIGA Trust E hardware security module.
  2317. This example uses the following two new libraries located in the 'external' folder:
  2318. - Infineon OPTIGA Trust E command library that provides a high-level API to access cryptographic and security-related functions.
  2319. - Infineon I2C Protocol Stack library that enables communication with Infineon OPTIGA Trust E and is placed on top of the TWI transaction manager (app_twi).
  2320. - Added Stack guard module that allows for enabling stack violation control.
  2321. - Added Task Manager module, a simple co-operative scheduler.
  2322. - Added fprintf module that can be used for writing C strings.
  2323. - Added Ring Buffer module that provides functions to manage a ring buffer.
  2324. - Added Memory Object module that allows for creating and managing memory object pools.
  2325. *** Changes
  2326. ************
  2327. ** Common **
  2328. - All examples are modified to use the new SoftDevice Handler (nrf_sdh).
  2329. ** BLE **
  2330. - BLE Connection Parameter module supports multiple peripheral links.
  2331. - BLE ATT MTU example uses nrf_cli for the user interface.
  2332. ** NFC **
  2333. - Improved the Type 4 Tag library interoperability (added support for fragmented command APDUs and fixed DID field handling).
  2334. - NDEF record and message definition macros are defined as automatic data (used to be static).
  2335. ** DFU **
  2336. - Serial DFU has been updated to be production quality.
  2337. ** Proprietary **
  2338. - ESB: Added workarounds for several anomalies that were impacting performance for certain addresses.
  2339. - ESB: Added functionality to update certain radio parameters while ESB is running:
  2340. - uint32_t nrf_esb_set_retransmit_delay(uint16_t delay);
  2341. - uint32_t nrf_esb_set_retransmit_count(uint16_t count);
  2342. - uint32_t nrf_esb_set_bitrate(nrf_esb_bitrate_t bitrate);
  2343. - uint32_t nrf_esb_reuse_pid(uint8_t pipe);
  2344. - Gazell: Released in production quality, added workarounds for RADIO anomalies.
  2345. ** Serialization **
  2346. - Added S132 v5.0.0 support. Removed support for S140 5.0.0-2.alpha.
  2347. ** Drivers and libraries **
  2348. - Reworked and improved the fstorage library (now called nrf_fstorage).
  2349. - Now supports operation with no SoftDevice.
  2350. - Now supports operation when the SoftDevice is present and its state changes.
  2351. - Refactored nrf_log to support multiple backends. Each backend has independent, dynamic filtering of logs.
  2352. - Refactored nrf_cli to act as the logger backend. Improved user interface with smart auto-completion and easy commands addition.
  2353. - Updated drivers to work with the nRF52810 device.
  2354. - Updated Flash data storage (FDS).
  2355. - Can now work with no SoftDevice by using the nrf_fstorage_nvmc backend.
  2356. - The 'Chunk' functionality has been removed.
  2357. *** Bugfixes
  2358. ****************
  2359. ** BLE **
  2360. - Fixed a bug where the multiperipheral example would not be able to connect to more than one link.
  2361. ** NFC **
  2362. - Implemented several fixes in Type 2 and Type 4 libraries (fixed nfc_t4t_parameter_set function, removed nRF52 startup code and FPU support from library compilation).
  2363. ** Drivers and libraries **
  2364. - Fixed potential overflow in the watchdog timer (WDT) driver initialization.
  2365. - Fixed wrong header guard in nrf_nvic.h (https://devzone.nordicsemi.com/question/121041/incorrect-header-guard-in-nrf_nvich/).
  2366. - Fixed a bug where nrf_drv_spi_uninit did not clear an event (https://devzone.nordicsemi.com/question/116308/spi-init-triggers-old-nrf_spim_event_end).
  2367. - Implemented a fix for nrf_drv_spi - no pulldown on MISO line.
  2368. *** Known Issues
  2369. ****************
  2370. ** Overall **
  2371. - In the UART peripheral example, only a line feed (LF) is output on startup and when resetting the board.
  2372. - Serialized Direct Test Mode does not report RX packet count correctly.
  2373. ** BLE **
  2374. - It is possible that the Peer Manager may return corrupt data when attempting to read the GATT attributes table under some circumstances when FDS CRC checks are enabled.
  2375. - In the Multiperipheral Example, LED 3 will toggle when writing any non-zero value to it. Also, two notifications instead of one are received on the Button Characteristic (0x1524) when pressing Button 1.
  2376. - For all serialized applications, the MTU size (NRF_SDH_BLE_GATT_MAX_MTU_SIZE in sdk_config.h) should be kept at the default level. Changing this value makes the application non-functional as the connectivity application uses static size buffers.
  2377. - Eddystone Beacon Application - LED indication might differ from what is described in documentation under the Testing section.
  2378. ** ANT **
  2379. - Most ANT examples do not have the nrf_log backend in the project files, so enabling logging does not have any effect.
  2380. ** NFC **
  2381. - NFC Type 2 and Type 4 Tag HAL modules require using TIMER4 on nRF52832.
  2382. - Some mobile phone apps cannot write Type 4 Tag (the "NFC Tools" app seems to
  2383. be okay to use).
  2384. - BLE peripheral examples with NFC pairing work as expected only with Android 7.1.2.
  2385. ** DFU **
  2386. - Downgrading from nRF5 SDK v14.0.0 to nRF5 SDK v13.0.0 has been observed to cause the v13.0.0 bootloader to corrupt itself (Upgrading works as expected).
  2387. - The S140 SoftDevice currently does not support updating of the bootloader.
  2388. - The CTX pin (P0.07) should be grounded to run the Serial Secure DFU on both nRF52832 and nRF52840 boards.
  2389. - BLE/Serial Secure DFU only supports nrfutil 2.3.0.
  2390. - For nRF52840, a combined SoftDevice and application update on Serial transport fails when using nrfutil 2.3.0. Running a single SoftDevice and application update sequentially works as expected.
  2391. ** USB **
  2392. - USB driver Anomaly 104 solution is very unstable in IAR compilation with high optimization level.
  2393. ========================================================================
  2394. nRF5 SDK v13.1.0
  2395. ------------------------
  2396. Release Date: Week 27, 2017
  2397. Highlights:
  2398. - Added support for the SoftDevice S332 v4.0.x.
  2399. - Added serialization solution for the combined BLE and ANT SoftDevice.
  2400. The following toolchains/devices have been used for testing and
  2401. verification:
  2402. - ARM: MDK-ARM version 5.18a
  2403. - GCC: GCC ARM Embedded 4.9 2015q3
  2404. - IAR: IAR Workbench 7.80.4
  2405. Supported SoftDevices:
  2406. - S132 v4.0.x
  2407. - S140 v5.0.0-2.alpha
  2408. - S212 v4.0.x
  2409. - S332 v4.0.x
  2410. Supported boards:
  2411. - PCA10040
  2412. - PCA10056 (limited support; see the "Scope for the nRF52840 chip" section)
  2413. - Dynastream's D52DK1 (only for ANT examples)
  2414. For other devices and boards, see the SDK documentation, section "Using
  2415. the SDK with other boards".
  2416. *** Scope for the nRF52840 chip
  2417. ********************************
  2418. All examples and libraries for the new chip must be treated as
  2419. experimental.
  2420. Some examples have not been ported to run on nRF52840. Check the
  2421. existing example projects to see which targets are supported.
  2422. The following SDK features are supported on the new nRF52840 chip:
  2423. - New 804.15.4 stack library with an example
  2424. - Most BLE, hardware peripheral, and NFC examples (with some
  2425. exceptions; see the available example projects for details)
  2426. - Peripheral HAL and drivers (both for existing and new peripherals)
  2427. - Cryptography library including CryptoCell CC310 backend
  2428. - NFC Type 2 Tag and Type 4 Tag
  2429. - Secure DFU (only with micro-ecc backend)
  2430. - Serialization of the S140 SoftDevice v5.0.0-2.alpha with UART
  2431. The following SDK features are not supported on the new nRF52840 chip yet:
  2432. - ANT
  2433. - DTM
  2434. - ESB and Gazell
  2435. - FreeRTOS
  2436. - Eddystone
  2437. *** New features
  2438. *****************
  2439. ** BLE **
  2440. - Added S332 projects in Heart Rate Sensor and Heart Rate Collector examples.
  2441. ** ANT **
  2442. - Added support the for the new SoftDevice S332 v4.0.x.
  2443. - Added S332 examples: 'Ant Shared Channels' and 'ANT and BLE Heart Rate Monitor Relay Application'.
  2444. - Added an S332 project for the D52DK1 Development Kit in the ANT Message Types example.
  2445. ** Serialization **
  2446. - Added a solution for serialization of combined BLE and ANT SoftDevice
  2447. using the ble_ant_app_hrm example as the use case.
  2448. *** Changes
  2449. ************
  2450. ** ANT **
  2451. - Removed the nrf_sd_def.h file. It will be now distributed just like the rest of SoftDevice header files through
  2452. https://www.thisisant.com
  2453. *** Bugfixes
  2454. *************
  2455. ** Drivers and libraries **
  2456. - Fixed a potential overflow in watchdog timer (WDT) driver initialization.
  2457. *** Known Issues
  2458. *****************
  2459. ** Overall **
  2460. - Updating the MDK requires to manually copy the header and linker files
  2461. into the SDK folder (ARM Keil uVision 4, IAR Workbench, ARMGCC).
  2462. - When uploading an application to an nRF52 IC using nrfjprog, you must
  2463. provide the "--reset/-r" argument or powercycle the board.
  2464. ** BLE **
  2465. - Some examples might have excessively verbose logging.
  2466. - Examples that use the Peer Manager might assert when deleting bonds,
  2467. because advertising is started twice.
  2468. - In the Proximity Application, writing "High Alert" to the AlertLevel
  2469. characteristic of the Link Loss Service does not trigger a high alert
  2470. when the link is lost.
  2471. - When an Android device is used as a peripheral, it sends slave
  2472. security request with the MITM bit set. The central applications in
  2473. the SDK will reject the security request (Pairing Failed) because
  2474. they do not support MITM.
  2475. - Advertisement intervals in the Eddystone Beacon Application are not
  2476. verified. Clients must ensure that the configured advertisement
  2477. interval is within the valid range. Note that EID/eTLM configurations
  2478. might require advertisement intervals to be larger than the default value.
  2479. ** NFC **
  2480. - NFC Type 2 and Type 4 Tag HAL modules require using TIMER4 on nRF52832.
  2481. - Type 2 Tag on nRF52840 chips might fail unpredictably.
  2482. - Some mobile phone apps cannot write Type 4 Tag ("NFC Tool" seems to
  2483. be okay to use).
  2484. ========================================================================
  2485. nRF5 SDK v13.0.0
  2486. ------------------------
  2487. Release Date: Week 11, 2017
  2488. Highlights:
  2489. - Implemented a new license scheme for the SDK distribution. See the
  2490. documentation folder for details.
  2491. - Updated the Bluetooth and ANT examples to support the newest
  2492. SoftDevices S132 v4.0.2, S140 v5.0.0-2.alpha, and S212 v4.0.0.
  2493. - Included a new 804.15.4 stack library with an example.
  2494. - Released the Eddystone example and the NFC Type 4 Tag stack in
  2495. production quality.
  2496. - Added workarounds for the nRF52832 anomaly 109 (DMA: DMA access
  2497. transfers might be corrupted).
  2498. - Added serialization of the ANT S212 SoftDevice v4.0.0 (experimental).
  2499. - Added an example showing secure DFU with UART transport layer.
  2500. - This release does not support nRF51.
  2501. - This release does not support the S332 SoftDevice.
  2502. The following toolchains/devices have been used for testing and
  2503. verification:
  2504. - ARM: MDK-ARM version 5.18a
  2505. - GCC: GCC ARM Embedded 4.9 2015q3
  2506. - IAR: IAR Workbench 7.60.2
  2507. Supported SoftDevices:
  2508. - S132 v4.0.2
  2509. - S140 v5.0.0-2.alpha
  2510. - S212 v4.0.0
  2511. Supported boards:
  2512. - PCA10040
  2513. - PCA10056 (limited support; see the "Scope for the nRF52840 chip" section)
  2514. - Dynastream's D52DK1 (only for ANT examples)
  2515. For other devices and boards, see the SDK documentation, section "Using
  2516. the SDK with other boards".
  2517. *** Scope for the nRF52840 chip
  2518. ********************************
  2519. All examples and libraries for the new chip must be treated as
  2520. experimental.
  2521. Some examples have not been ported to run on nRF52840. Check the
  2522. existing example projects to see which targets are supported.
  2523. The following SDK features are supported on the new nRF52840 chip:
  2524. - New 804.15.4 stack library with an example
  2525. - Most BLE, hardware peripheral, and NFC examples (with some
  2526. exceptions; see the available example projects for details)
  2527. - Peripheral HAL and drivers (both for existing and new peripherals)
  2528. - Cryptography library including CryptoCell CC310 backend
  2529. - NFC Type 2 Tag and Type 4 Tag
  2530. - Secure DFU (only with micro-ecc backend)
  2531. - Serialization of the S140 SoftDevice v5.0.0-2.alpha with UART
  2532. The following SDK features are not supported on the new nRF52840 chip yet:
  2533. - ANT
  2534. - DTM
  2535. - ESB and Gazell
  2536. - FreeRTOS
  2537. - Eddystone
  2538. *** New features
  2539. *****************
  2540. ** BLE **
  2541. - Added an experimental BLE Multiperipheral example
  2542. (experimental_ble_app_multiperipheral) that uses the proprietary LED
  2543. Button Service to show how a peripheral device can manage connections
  2544. with multiple peers simultaneously.
  2545. ** ANT **
  2546. - Added serialization for S212 v4.0.0. With this solution, an ANT
  2547. application can run on any architecture, without the SoftDevice. All
  2548. SoftDevice API calls are transported via UART to an nRF52 device that
  2549. runs the ANT connectivity application (examples\connectivity\experimental_ant)
  2550. and the S212 SoftDevice. The ANT I/O example demonstrates the new
  2551. serialization solution (examples\ant\ant_io_demo, see targets:
  2552. "ser_s212_uart"). Note that the serialized solution does not support
  2553. the new API calls added in S212 v4.0.0.
  2554. The SDK folders with the ANT serialization implementation are not
  2555. marked as experimental, because the paths would be too long.
  2556. - Added a new ANT Frequency Agility example
  2557. (examples\ant\experimental\ant_frequency_agility).
  2558. ** 804.15.4 **
  2559. - Added a full 802.15.4 stack implementation to the SDK. The library
  2560. (components\experimental_802_15_4) is available only for nRF52840
  2561. devices. The MAC layer API is located in
  2562. components\experimental_802_15_4\api\MAC. The example application is
  2563. located in examples\802_15_4\experimental\wireless_uart.
  2564. - Added an experimental Wireless UART example (wireless_uart) that shows
  2565. how to use the new 804.15.4 stack.
  2566. ** NFC **
  2567. - Added two experimental examples that show NFC pairing (BLE Pairing
  2568. Using NFC - experimental_ble_nfc_pairing_reference and
  2569. ble_nfc_pairing_reference_c).
  2570. ** DFU **
  2571. - Added support for serial/UART and an example for a secure DFU
  2572. bootloader using UART (experimental).
  2573. - Implemented SoftDevice major version checks for certain upgrade types.
  2574. - Implemented a delayed reset after the DFU: After a SoftDevice,
  2575. bootloader, or SoftDevice and bootloader update, a timer will start.
  2576. If no new update is initiated before its expiration, the device will
  2577. look for a valid application and launch it.
  2578. - Added a new set of error codes (extended error codes) that the DFU
  2579. target may send as a response to the DFU controller to convey the
  2580. reason for a failure.
  2581. ** Serialization **
  2582. - Added serialization support for the ANT S212 SoftDevice v4.0.0
  2583. (experimental). See the ANT section for details.
  2584. ** Drivers and libraries **
  2585. - Added workarounds for the nRF52832 anomaly 109 (DMA: DMA access
  2586. transfers might be corrupted). Affected drivers: PWM, SPIM, TWIM,
  2587. SPIS, and TWIS.
  2588. - Added several new libraries:
  2589. - Command line interface (CLI) library: Console that supports
  2590. various serial interfaces (UART, RTT, USB CDC ACM).
  2591. See the usage example in examples/peripheral/cli.
  2592. - GFX library: Graphics library that supports simple operations like
  2593. drawing circles, lines, rectangles, or bitmaps and printing
  2594. strings. GFX uses an LCD driver interface. Two implementations for
  2595. popular TFTs have been added (ILI9341, ST7735).
  2596. See the usage example in examples/peripheral/gfx.
  2597. - Serial port library: Module for handling UART communication. It
  2598. supports multibyte transfers, time-outs, and buffering of data.
  2599. The module is a replacement for app_uart.
  2600. See the usage example in examples/peripheral/serial.
  2601. - SPI transaction manager: Module for managing thread-safe access to
  2602. the SPI driver. The module supports scheduling transactions that
  2603. consist of multiple transfers. See the usage example in
  2604. examples/peripheral/spi_master_using_nrf_spi_mngr.
  2605. - Error code to string converter (STRERR): Module for converting
  2606. error codes to strings. The module is used by nrf_log.
  2607. - Added two drivers for TFT LCDs: ILI9341 and ST7735.
  2608. *** Changes
  2609. ************
  2610. ** BLE **
  2611. - Updated all BLE examples to use the nRF Connect PC application
  2612. (replacing Master Control Panel).
  2613. - Modified all BLE example to have logging enabled by default, to make
  2614. testing and debugging the SDK examples more consistent. Note that
  2615. logging greatly increases power consumption. Therefore, logging should
  2616. be disabled in any final product or when performing power profiling
  2617. tests.
  2618. - Updated the Eddystone example so that it can be released in production
  2619. quality.
  2620. - Updated all BLE examples to support the newest SoftDevices S132 v4.0.2
  2621. and S140 v5.0.0-2.alpha.
  2622. - Updated the Peer Manager to handle more than eight links.
  2623. - Updated all BLE examples to use the GATT module.
  2624. - Updated the GATT module to handle Data Length update related events.
  2625. - Improved the Alert Notification example application to more clearly
  2626. convey the Alert Notification Service. Increased the verbosity on UART
  2627. instead of relying only on the LEDs.
  2628. - Removed the experimental label from the Running Speed and Cadence
  2629. central example application.
  2630. - Cleaned up the use of RX/TX in the Nordic UART Service (NUS) to match
  2631. the terminology used in external tools (nRF Connect, nRF Toolbox).
  2632. - Modified the BLE UART example to enable the use of long ATT_MTU.
  2633. ** DFU **
  2634. - Updated the experimental BLE Buttonless DFU Service to use the
  2635. RAM-retention register to enter bootloader mode instead of flash
  2636. access.
  2637. - Updated the experimental BLE Buttonless DFU Service to use the
  2638. Secure-DFU UUID (16-bit proprietary Nordic UUID).
  2639. - Updated the BLE Buttonless DFU characteristic to use a new
  2640. vendor-specific base UUID (0x8EC9xxxx-F315-4F60-9FB8-838830DAEA50).
  2641. The UUID changed to 0x8EC90003-F315-4F60-9FB8-838830DAEA50.
  2642. - Changed the BLE Buttonless DFU characteristic from notification to
  2643. indication.
  2644. - Changed the minimum version requirement for nrfutil to v2.2.0.
  2645. ** NFC **
  2646. - Updated the NFC Type 4 Tag library so that it can be released in
  2647. production quality. The library was moved to components\nfc\t4t_lib.
  2648. The example that shows the Type 4 Tag library is located in
  2649. examples\nfc\writable_ndef_msg.
  2650. - Updated the BLE Heart Rate Collector Example with NFC Pairing and the
  2651. HID Keyboard Application with BLE pairing using NFC to use the NFC BLE
  2652. Pairing library (nfc_pair_lib).
  2653. - Updated the BSP NFC Module so that it can be used without restrictions
  2654. together with Type 2 and Type 4 Tag libraries.
  2655. ** Serialization **
  2656. - Updated serialization to support the latest BLE SoftDevices S132
  2657. v4.0.2 and S140 v5.0.0-2.alpha.
  2658. ** Drivers and libraries **
  2659. - Updated the implementation of app_uart.
  2660. - Moved the static configuration of app_timer to sdk_config.h.
  2661. - Updated several hardware drivers:
  2662. - nrf_drv_power: Added initial support for USB plugging with SoftDevice.
  2663. - nrf_drv_pwm: Allowed for playbacks to be started using PPI.
  2664. - nrf_drv_spi: Added an abort function.
  2665. - nrf_drv_twi: Added a function for checking if the driver is busy.
  2666. - nrf_drv_uart: Added a function for checking the receiver state.
  2667. - nrf_drv_csense: Extended the driver to perform measurements using
  2668. SAADC. COMP is still supported, but it is not recommended for
  2669. production (see anomaly 84).
  2670. *** Bugfixes
  2671. *************
  2672. - Fixed several bugs in secure DFU to prevent handling invalid updates.
  2673. - Updated secure DFU on nRF52840 to utilize the entire 1 MB of flash, up
  2674. from the old (unintended) limitation of 512 KB.
  2675. - Fixed a bug where ble_app_hrs_rscs_relay would not dispatch
  2676. advertising time-out events to the advertising module.
  2677. - Fixed a bug where ble_app_uart would not handle the disconnected event
  2678. if it was received before a service discovery was completed.
  2679. - Fixed a bug where ble_app_pwr_profiling did not initialize the button
  2680. module.
  2681. - Fixed a bug where ble_app_proximity would not always trigger "High
  2682. Alert" on the AlertLevel characteristic when the link was lost.
  2683. - Fixed a bug where ble_app_uart would be blocked if app_uart_put
  2684. returned an error.
  2685. - Fixed a bug where Peer Manager corrupted FDS data in flash.
  2686. - Fixed a bug where FDS records updated with fds_record_update() would
  2687. not be garbage collected.
  2688. - Fixed an unaligned access error in FDS when using certain compiler
  2689. options in GCC.
  2690. - Fixed a bug in FDS where a missing swap page went undetected.
  2691. - Fixed the tick update method in FreeRTOS.
  2692. - Fixed a bug where wake-on-field functionality would not work with Type
  2693. 2 and Type 4 Tag libraries.
  2694. - Several bugfixes and improvements on drivers:
  2695. - nrf_drv_timer: Fixed a bug in NRF_TIMER_IS_BIT_WIDTH_VALID.
  2696. - nrf_drv_saadc: Fixed a bug where nrf_drv_saadc_calibrate_offset()
  2697. enabled a wrong interrupt.
  2698. - nrf_drv_pwm: Fixed inaccurate description of the
  2699. NRF_DRV_PWM_FLAG_LOOP flag.
  2700. *** Known Issues
  2701. *****************
  2702. ** BLE **
  2703. - If the S132 SoftDevice is configured with 0 Peripheral roles and 0
  2704. Central roles, sd_ble_enable() may corrupt up to 8 bytes above the
  2705. returned app_ram_base. For applications having such a configuration,
  2706. set the application RAM start to 8 bytes or more above the returned
  2707. app_ram_base.
  2708. ** DFU **
  2709. - The S140 SoftDevice currently does not support updating the bootloader.
  2710. - Secure DFU (serial):
  2711. - nrfutil currently does not support sending combined zip images
  2712. (SD+APP, SD+BL+APP, BL+SD). Use individually generated zip-images
  2713. instead.
  2714. - The device will not automatically boot the application after a
  2715. SoftDevice update. Reset the device manually.
  2716. - Secure DFU (BLE): Updates of SD+BL+APP may time out between the SD+BL
  2717. and APP stage on certain Android phones. Investigate the time-out
  2718. value with respect to your mobile app and consider increasing it.
  2719. ------------------------------------------------------------------------
  2720. nRF5 SDK v13.0.0-1.alpha
  2721. ------------------------
  2722. Release Date: Week 50, 2016
  2723. This release is an alpha release and should ONLY be used for the
  2724. following purposes:
  2725. - Exploring and trying out the new Bluetooth 5 features available
  2726. with the new SoftDevices.
  2727. - Trying out new features on the nRF52840 chip.
  2728. Highlights:
  2729. - Updated the BLE ATT_MTU Throughput Example (ble_app_att_mtu_throughput)
  2730. to showcase a PHY data rate of 2 Ms/s and coded PHY for long-range
  2731. transmission.
  2732. - Updated the cryptography library to include a CryptoCell CC310
  2733. backend (API changes compared to SDK 12.2.0).
  2734. - Updated the BLE LE Secure Connections Multirole Example
  2735. (ble_app_multirole_lesc) to use the CryptoCell CC310 backend of the
  2736. cryptography library (available only for nRF52840).
  2737. - Added serialization of the new SoftDevices S132 v5.0.0-1.alpha and
  2738. S140 v5.0.0-1.alpha. Added USB CDC ACM serial as transport layer.
  2739. - Dropped support for nRF51 Series devices.
  2740. - Dropped support for RTX.
  2741. The following toolchains/devices have been used for testing and
  2742. verification:
  2743. - ARM: MDK-ARM version 5.18a
  2744. - GCC: GCC ARM Embedded 4.9 2015q3
  2745. - IAR: IAR Workbench 7.30.4
  2746. Supported SoftDevices:
  2747. - S140 v5.0.0-1.alpha
  2748. - S132 v5.0.0-1.alpha
  2749. - S212 v2.0.0
  2750. - S332 v2.0.0
  2751. Supported boards:
  2752. - PCA10040
  2753. - PCA10056 (limited support; see the "Scope for the nRF52840" section)
  2754. - Dynastream's N5DK1 (only for ANT examples)
  2755. For other devices and boards, see the SDK documentation, section "Using
  2756. the SDK with other boards".
  2757. *** Scope for the nRF52840 chip
  2758. ********************************
  2759. All examples and libraries for the new chip must be treated as
  2760. experimental.
  2761. Some examples have not been ported to run on nRF52840. Check the
  2762. existing example projects to see which targets are supported.
  2763. The following SDK features are supported on the new nRF52840 chip:
  2764. - Most BLE, hardware peripheral, and NFC examples (with some
  2765. exceptions; see the available example projects for details)
  2766. - Peripheral HAL and drivers (both for existing and new peripherals)
  2767. - Cryptography library including CryptoCell CC310 backend
  2768. - NFC Type 2 Tag and Type 4 Tag
  2769. - Secure DFU (only with micro-ecc backend)
  2770. - Serialization of the SoftDevices S132 v5.0.0-1.alpha and
  2771. S140 v5.0.0-1.alpha with UART and USB CDC ACM transport layers
  2772. The following SDK features are not supported on the new nRF52840 chip yet:
  2773. - ANT
  2774. - DTM
  2775. - ESB and Gazell
  2776. - FreeRTOS
  2777. - Eddystone
  2778. *** New features
  2779. *****************
  2780. ** BLE **
  2781. - Updated the BLE ATT_MTU Throughput Example to demonstrate the use of
  2782. Bluetooth 5 features:
  2783. - PHY data rate of 2 Ms/s (nRF52832 and nRF52840)
  2784. - Coded PHY for long-range transmission (nRF52840 only)
  2785. ** NFC **
  2786. - Added a layer of abstraction for NFC OOB pairing, the NFC BLE Pairing
  2787. Library (nfc_ble_pair_lib).
  2788. - Added a central and a peripheral NFC BLE example that use the new NFC
  2789. BLE Pairing Library:
  2790. - Heart Rate Collector Application with NFC pairing (ble_app_hrs_nfc_c,
  2791. to be used with the Adafruit shield)
  2792. - BLE Peripheral example: Heart Rate Application with BLE pairing
  2793. using NFC Pairing Library (ble_app_hrs_nfc_pairing_lib)
  2794. ** Cryptography **
  2795. - Added a backend to the cryptography library that supports the ARM
  2796. CryptoCell 310 hardware-accelerated cryptography engine.
  2797. - Updated the LE Secure Connections Multirole Example to showcase how
  2798. to use the cryptography library with the CryptoCell CC310 backend
  2799. (nRF52840 only).
  2800. ** Serialization **
  2801. - Added serialization of the new SoftDevices S132 v5.0.0-1.alpha and
  2802. S140 v5.0.0-1.alpha.
  2803. - Added the transport layer USB CDC ACM (nRF52840 only).
  2804. *** Changes
  2805. ************
  2806. ** Drivers and libraries **
  2807. - Refactored the RNG driver.
  2808. ** BLE **
  2809. - Fixed a bug in the Multi-link Example where disconnecting all central
  2810. links would disable the app_button module.
  2811. - Fixed two bugs in the Buttonless DFU Template Application:
  2812. - The example now has writable set on the Control Point characteristic.
  2813. - The example is now using the correct part of the flash, enabling
  2814. flashing when a bootloader is present.
  2815. - Fixed a bug in the ANCS Client Application where NULL-termination of a
  2816. received attribute could happen outside its allocated buffer.
  2817. - Fixed a bug in the ANCS Client Application where using RFU attribute
  2818. IDs could cause illegal memory access.
  2819. - Modified the LE Secure Connections Multirole Example to prevent
  2820. creation of a second link to the same peer simultaneously.
  2821. ** NFC **
  2822. - Fixed a bug in NFC Type 2 and Type 4 Tag HAL where NFC would hang when
  2823. the chip was woken up from SYSTEM_OFF and HFXO was started before NFCT
  2824. requested it.
  2825. ** Serialization **
  2826. - UART and HCI UART transports have been optimized to better utilize
  2827. EasyDMA.
  2828. *** Known Issues
  2829. ****************
  2830. ** Overall **
  2831. - Updating the MDK requires to manually copy the header and linker files
  2832. into the SDK folder (ARM Keil uVision 4, IAR Workbench, ARMGCC).
  2833. - When uploading an application to an nRF52 IC using nrfjprog, you must
  2834. provide the "--reset/-r" argument or powercycle the board.
  2835. ** BLE **
  2836. - Some examples might have excessively verbose logging.
  2837. - Examples that use the Peer Manager might assert when deleting bonds,
  2838. because advertising is started twice.
  2839. - In the Proximity Application, writing "High Alert" to the AlertLevel
  2840. characteristic of the Link Loss Service does not trigger a high alert
  2841. when the link is lost.
  2842. - When an Android device is used as a peripheral, it sends slave
  2843. security request with the MITM bit set. The central applications in
  2844. the SDK will reject the security request (Pairing Failed) because
  2845. they do not support MITM.
  2846. - Advertisement intervals in the Eddystone Beacon Application are not
  2847. verified. Clients must ensure that the configured advertisement
  2848. interval is within the valid range. Note that EID/eTLM configurations
  2849. might require advertisement intervals larger than the default value.
  2850. ** NFC **
  2851. - NFC Type 2 and Type 4 Tag HAL modules require using TIMER4 on nRF52832.
  2852. - Type 2 Tag on nRF52840 chips might fail unpredictably.
  2853. - Some mobile phone apps cannot write Type 4 Tag ("NFC Tool" seems to
  2854. be okay to use).
  2855. ========================================================================
  2856. nRF5 SDK v12.2.0
  2857. ----------------
  2858. Release Date: Week 49, 2016
  2859. Highlights:
  2860. - Added an NFC Type 4 Tag stack (experimental).
  2861. - Replaced the existing Eddystone example with a new implementation.
  2862. - Added experimental support for the new nRF52840 chip. See the section
  2863. "Scope for the nRF52840" for information about which SDK features are
  2864. supported on the new chip.
  2865. The following toolchains/devices have been used for testing and
  2866. verification:
  2867. - ARM: MDK-ARM version 5.18a
  2868. - GCC: GCC ARM Embedded 4.9 2015q3
  2869. - IAR: IAR Workbench 7.30.4
  2870. Supported SoftDevices:
  2871. - S130 v2.0.1
  2872. - S132 v3.0.0
  2873. - S212 v2.0.0
  2874. - S332 v2.0.0
  2875. Supported boards:
  2876. - PCA10028
  2877. - PCA10031
  2878. - PCA10040
  2879. - PCA10056 (limited support; see the "Scope for the nRF52840" section)
  2880. - PCA20006 (only for beacon examples)
  2881. - Dynastream's N5DK1 (only for ANT examples)
  2882. For other devices and boards, see the SDK documentation, section "Using
  2883. the SDK with other boards".
  2884. *** Scope for the nRF52840 chip
  2885. ********************************
  2886. Support for the new development board PCA10056 has been added.
  2887. All examples and libraries for the new chip should be treated as
  2888. experimental.
  2889. The following SDK features are supported on the new nRF52840 chip:
  2890. - Most BLE, hardware peripheral, and NFC examples (with some
  2891. exceptions; see the available example projects for details)
  2892. - Peripheral HAL and drivers (both for existing and new peripherals)
  2893. - Library supporting CC310 CryptoCell
  2894. - NFC Type 2 Tag and Type 4 Tag
  2895. The following SDK features are not supported on the new nRF52840 chip:
  2896. - ANT
  2897. - Secure DFU
  2898. - Serialization
  2899. - DTM
  2900. - ESB and Gazell
  2901. - RTX and FreeRTOS
  2902. - Eddystone
  2903. *** New features
  2904. *****************
  2905. ** Drivers and libraries **
  2906. - Added a SysTick driver.
  2907. - Added a queue module (nrf_queue).
  2908. - Added a memory block allocator module (nrf_balloc).
  2909. - Added an atomic operations module (nrf_atomic, nRF52 Series only).
  2910. - Added an atomic FIFO module (app_atfifo, nRF52 Series only).
  2911. - Added a power management module (nrf_pwr_mgmt).
  2912. - Added an asynchronous SD card driver using SPI.
  2913. - Ported fatfs for nRF5 (external library).
  2914. *** nRF52840 specific updates ***
  2915. - Added a USB device stack and the following USB classes: HID, MSC,
  2916. CDC ACM, Audio.
  2917. - Added a QSPI driver for external memories.
  2918. - Added support for 2 UART instances.
  2919. - Added support for 4 PWM instances.
  2920. - Added support for more GPIO (48 pins).
  2921. ** BLE **
  2922. - Integrated the Eddystone project from GitHub, replacing the existing
  2923. Eddystone Beacon example. The new implementation follows the
  2924. specification at https://github.com/google/eddystone (commit 97225a9
  2925. from Sep 28, 2016). The new Eddystone library and example supports both
  2926. nRF51 and nRF52 (experimental).
  2927. - Added an example to demonstrate ATT throughput with long ATT_MTU and
  2928. DLE (experimental).
  2929. - Added a GATT module that encapsulates the long ATT_MTU feature.
  2930. - Extended the Apple Notification Center Service (ANCS) Service module
  2931. and example application:
  2932. - Added 'notification actions' that depend on the app (for example,
  2933. marking a new email as read or dialing up a missed call).
  2934. - Added functionality to retrieve app attributes, which allows to
  2935. get the name of the app that provided a notification.
  2936. - Extended the Continuous Glucose Monitoring Service (CGMS) example
  2937. application to handle greater, lesser, or equal filtering for the
  2938. Record Access control point.
  2939. - Updated the BLE examples to no longer attempt to re-initiate bonding
  2940. if encryption fails due to a missing or wrong key.
  2941. ** NFC **
  2942. - Added support for NFC Type 4 Tag with both read and write NDEF
  2943. access (experimental).
  2944. - Added support for raw ISO-DEP transmission protocol mode.
  2945. - Added Type 4 Tag support to the Adafruit Tag Reader example.
  2946. ** Cryptography **
  2947. - Added support for the ARM CryptoCell 310 hardware-accelerated
  2948. cryptography engine.
  2949. - Added examples to show how to use the hardware-accelerated
  2950. cryptography functionality.
  2951. *** Changes
  2952. ************
  2953. ** Overall **
  2954. - Changed the default interrupt priorities for nRF52 to be the same as
  2955. the SoftDevice event priority.
  2956. - Prefixed error codes with "NRF_".
  2957. - Fixed a bug in the clock driver where the driver was failing to handle
  2958. two requests coming from the same source.
  2959. - Removed nRF52 support for RTX. RTX is now supported on nRF51 chips
  2960. only.
  2961. - Updated the example Secure DFU images. They are now created with the
  2962. debug flag enabled.
  2963. - Modified the SoftDevice header files nrf_soc.h and nrf_nvic.h to
  2964. support PCA10056 (nRF52840).
  2965. - Split up the files located in the examples\bsp folder to new locations:
  2966. components\libraries\bsp and components\boards.
  2967. ** Drivers and libraries **
  2968. - Updated the RNG driver so that it supports the SoftDevice being
  2969. enabled and disabled. Removed the function nrf_drv_rng_pool_capacity().
  2970. - Changed the API for function app_button_is_pushed() (located in
  2971. app_button.h).
  2972. - Extended the app_gpiote API to support more than 32 pins. Removed
  2973. unimplemented functions from the API.
  2974. - Extended the nrf_gpio API to support more than 32 pins. Removed
  2975. functions that referred to 8-bit ports (for example,
  2976. nrf_gpio_port_read).
  2977. - Removed the function nrf_drv_adc_gpio_to_ain() from the
  2978. nrf_drv_adc API.
  2979. - Removed the function nrf_drv_comp_gpio_to_ain() from the
  2980. nrf_drv_comp API.
  2981. - Removed the function nrf_drv_saadc_gpio_to_ain() from the
  2982. nrf_drv_saadc API.
  2983. ** BLE **
  2984. - Fixed an issue that would cause some central examples to fail when
  2985. restarting scanning using a whitelist.
  2986. - Updated the Peer Manager modules to return NRF_ERROR_STORAGE_FULL
  2987. instead of NRF_ERROR_NO_MEM.
  2988. - The field "peer_id" in the Peer Manager structure
  2989. "pm_peer_data_bonding_t" has been renamed to "peer_ble_id".
  2990. - Fixed an issue where the Database Discovery Module would not
  2991. re-initialize properly upon successive discoveries.
  2992. - Fixed an issue where the Database Discovery Module would fail to
  2993. discover the extended properties descriptor and the characteristic
  2994. user description descriptors.
  2995. - Fixed an issue where the Apple Notification Center Service (ANCS)
  2996. example application could crash if the connecting iPhone disconnected
  2997. immediately after connecting.
  2998. ** NFC **
  2999. - Modified the Adafruit NFC Shield library to support reading Type 2 and
  3000. Type 4 Tags.
  3001. - Improved performance of the Adafruit library in Type 2 Tag reader mode
  3002. (faster read).
  3003. - Added LE Secure Connections OOB values encoding in ble_pair_msg.
  3004. - Enabled dynamic update of the TK value in ble_pair_msg.
  3005. *** Known Issues
  3006. ****************
  3007. ** Overall **
  3008. - Updating the MDK requires to manually copy the header and linker files
  3009. into the SDK folder (ARM Keil uVision 4, IAR Workbench, ARMGCC).
  3010. - When uploading an application to an nRF52 IC using nrfjprog, you must
  3011. provide the "--reset/-r" argument or powercycle the board.
  3012. - RTX is not supported on nRF52 chips.
  3013. ** BLE **
  3014. - Some examples might have excessively verbose logging.
  3015. - In the Proximity Application, writing "High Alert" to the AlertLevel
  3016. characteristic of the Link Loss Service does not trigger a high alert
  3017. when the link is lost.
  3018. - When an Android device is used as a peripheral, it sends slave
  3019. security request with the MITM bit set. The central applications in
  3020. the SDK will reject the security request (Pairing Failed) because
  3021. they do not support MITM.
  3022. - Eddystone Beacon Application:
  3023. - Advertisement intervals are not verified. Clients must ensure that
  3024. the configured advertisement interval is within the valid range.
  3025. Note that EID/eTLM configurations might require advertisement
  3026. intervals larger than the default value.
  3027. - Caution: On nRF51 devices, eTLM calculation takes around 500 ms
  3028. and is performed once per EID slot in the same interrupt level
  3029. priority as the 'Unlock' functionality. Therefore, if multiple EID
  3030. slots and an eTLM slot are configured, the client might not be able
  3031. to unlock a beacon that has an eTLM slot and uses the default
  3032. advertisement interval. To resolve this issue, increase the
  3033. advertisement interval.
  3034. - Buttonless DFU Template Application (experimental):
  3035. - The project setup of the example is wrong and does not fit into the
  3036. available space below the DFU bootloader. To fix this problem,
  3037. change the IROM1 size from 0x61000 to 0x59000. In addition, comment
  3038. out the code section that reserves a codepage at 0x7E000 for MBR
  3039. parameters. For details, see
  3040. https://devzone.nordicsemi.com/question/100609/sdk-12-bootloader-erased-after-programming/
  3041. - To switch to DFU mode, you must write to the DFU control point.
  3042. However, this characteristic is set as read only. Add the following
  3043. code line to enable the write property:
  3044. char_md.char_props.write = 1;
  3045. For details, see
  3046. https://devzone.nordicsemi.com/question/93414/sdk12-ble_app_buttonless_dfu/#95079
  3047. ** NFC **
  3048. - NFC Type 2 and Type 4 Tag HAL modules require using TIMER4 on nRF52832.
  3049. - Type 2 Tag on nRF52840 chips might fail unpredictably.
  3050. - Some mobile phone apps cannot write Type 4 Tag ("NFC Tool" seems to be
  3051. okay to use).
  3052. ========================================================================
  3053. nRF5 SDK v12.1.0
  3054. ----------------
  3055. Release Date: Week 40, 2016
  3056. Highlights:
  3057. - Added serialization of the S132 SoftDevice v3.0.0. Serialization of S130 is now deprecated.
  3058. - Included the latest MDK v8.9.0 with a crucial workaround for nRF52832 Errata 108:
  3059. http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.nrf52832.Rev1.errata/anomaly_832_108.html
  3060. The following toolchains/devices have been used for testing and verification:
  3061. - ARM: MDK-ARM version 5.18a
  3062. - GCC: GCC ARM Embedded 4.9 2015q3
  3063. - IAR: IAR Workbench 7.30.4
  3064. Supported SoftDevices:
  3065. - S130 v2.0.1
  3066. - S132 v3.0.0
  3067. - S212 v2.0.0
  3068. - S332 v2.0.0
  3069. Supported IC revisions:
  3070. - nRF51422/nRF51822 IC revision 3
  3071. - nRF52832 IC revision 1
  3072. Supported boards:
  3073. - PCA10028
  3074. - PCA10031
  3075. - PCA10040
  3076. - PCA20006 (only for beacon examples)
  3077. - Dynastream's D52 Starter Kit (only for ANT examples)
  3078. - Arduino Primo v2.1 (board header only)
  3079. For other devices and boards, see the SDK documentation, section "Using the SDK with other boards".
  3080. *** New features
  3081. ****************
  3082. ** Overall **
  3083. - Serialization of the S132 SoftDevice v3.0.
  3084. *** Changes
  3085. ***********
  3086. ** Overall **
  3087. - Includes the latest Nordic MDK v8.9.0.
  3088. - Small documentation updates.
  3089. *** Known issues
  3090. ****************
  3091. ** Overall **
  3092. - Updating the MDK requires to manually copy the header and linker files
  3093. into the SDK folder (ARM Keil uVision 4, IAR Workbench, ARMGCC).
  3094. - When uploading an application to an nRF52 IC using nrfjprog, you must
  3095. provide the "--reset/-r" argument or powercycle the board.
  3096. ** BLE **
  3097. - When performing service discoveries after a reconnect,
  3098. ble_db_discovery might fail to initialize. Refer to this link for a fix:
  3099. https://devzone.nordicsemi.com/question/92452/nrf52-ble_db_discovery-failed-to-initialize-correctly-when-repeats-the-service-discovery/
  3100. - The "UART/Serial Port Emulation over BLE" (ble_app_uart) example
  3101. does not compile with nrf_log enabled (missing nrf_log sources)
  3102. - Some examples might have excessively verbose logging.
  3103. - Performing pairing without bonding will cause examples to assert. To
  3104. fix this, make sure the call to pm_peer_rank_highest() during
  3105. PM_EVT_CONN_SEC_SUCCEEDED happens only when the procedure is
  3106. PM_LINK_SECURED_PROCEDURE_BONDING.
  3107. - When an Android device is used as a peripheral, it sends slave
  3108. security request with the MITM bit set. The central applications in
  3109. the SDK will reject the security request (Pairing Failed) because
  3110. they do not support MITM.
  3111. ** Secure DFU **
  3112. - nRF Toolbox for iPhone:
  3113. - When an error occurs, nRF Toolbox does not automatically
  3114. disconnect. You must therefore reset the board manually to
  3115. disconnect before you can connect again.
  3116. - It is not possible to abort a transfer when the device connection
  3117. is lost.
  3118. - On resumption, nRF Toolbox does not call execute, which makes it
  3119. impossible to resume a transfer.
  3120. - When transferring a combined SoftDevice and bootloader image, the
  3121. bootloader might not be updated.
  3122. - On nRF52 devices, the DFU operation is sometimes reported as
  3123. completed, even though the device is not updated.
  3124. ** NFC **
  3125. - NFC Type 2 Tag HAL requires using TIMER4 on nRF52832.
  3126. ------------------------------------------------------------------------
  3127. nRF5 SDK v12.0.0
  3128. ----------------
  3129. Release Date: Week 35, 2016
  3130. Highlights:
  3131. - Added a secure DFU bootloader example and bootloader libraries.
  3132. This is an improved implementation that replaces the legacy DFU.
  3133. - Added an implementation of the Continuous Glucose Monitoring
  3134. Service (CGMS).
  3135. - Added support for the S132 SoftDevice v3.0.0.
  3136. - Added support for the S212 and S332 SoftDevices v2.0.0.
  3137. - Added a capacitive sensor driver and library (csense).
  3138. - Added Gazell support on nRF52 (experimental).
  3139. - Added new SDK configuration header files to manage static
  3140. configuration of an application.
  3141. - Overhauled the log subsystem.
  3142. - Removed support for the PCA10036 board and nRF52832 Engineering A
  3143. and B MCUs.
  3144. - Included a critical MDK update (v8.7.1).
  3145. - Added support for the CMSIS DSP library.
  3146. - Missing feature: Serialization of the latest S132 SoftDevice v3.0.0
  3147. API (work in progress).
  3148. The following toolchains/devices have been used for testing and
  3149. verification:
  3150. - ARM: MDK-ARM version 5.18a
  3151. - GCC: GCC ARM Embedded 4.9 2015q3
  3152. - IAR: IAR Workbench 7.30.4
  3153. Supported SoftDevices:
  3154. - S130 v2.0.1
  3155. - S132 v3.0.0
  3156. - S212 v2.0.0
  3157. - S332 v2.0.0
  3158. Supported IC revisions:
  3159. - nRF51422/nRF51822 IC revision 3
  3160. - nRF52832 IC revision 1
  3161. - nRF52832 Engineering C
  3162. Supported boards:
  3163. - PCA10028
  3164. - PCA10031
  3165. - PCA10040
  3166. - PCA20006 (only for beacon examples)
  3167. - Dynastream's D52 Starter Kit (only for ANT examples)
  3168. - Arduino Primo v2.1 (board header only)
  3169. For other devices and boards see the SDK documentation, section
  3170. "Using the SDK with other boards".
  3171. *** New features
  3172. ****************
  3173. ** Overall **
  3174. - Added a secure DFU bootloader example and bootloader libraries. This
  3175. is an improved implementation that replaces the legacy DFU. The
  3176. example includes support for cryptographically signed operations.
  3177. ** Drivers and libraries **
  3178. - Added a capacitive sensor driver and library for nRF51 and nRF52
  3179. based systems.
  3180. - Added an app_timer profiler to get maximum operation queue usage.
  3181. - Reduced RAM usage in app_timer and changed the app_timer_cnt_get
  3182. function (see the migration note in the Timer library documentation).
  3183. - Added pull-up configuration to the TWIS driver.
  3184. - Added an FFT FPU example with the CMSIS DSP library.
  3185. ** BLE **
  3186. - Added a Continuous Glucose Monitoring Service (CGMS) implementation,
  3187. including an example application (experimental).
  3188. - Added a Bond Management Service (BMS) implementation, including an
  3189. example application (experimental).
  3190. - Expanded APIs to support Privacy 1.2.
  3191. - Updated Direct Test Mode (DTM), including support for nRF52.
  3192. ** ANT **
  3193. - Added new examples: Continuous Waveform Mode, High Duty Search and
  3194. Background Scanning, and Time Synchronization.
  3195. ** NFC **
  3196. - Added an NFC BSP module (bsp_nfc) and an example showing the usage of
  3197. NFC as a wakeup source.
  3198. ** Proprietary **
  3199. - Gazell: Ported examples and library to nRF52 (experimental).
  3200. *** Changes
  3201. ***********
  3202. ** Overall **
  3203. - Added a new log system across all SDK sources. Replaced printf and
  3204. the old log system.
  3205. ** Drivers and libraries **
  3206. - Unified the configuration subsystem and moved configuration to one
  3207. file (sdk_config.h).
  3208. - Changed the NRF51 and NRF52 ifdefs in drivers to peripheral related
  3209. ifdefs.
  3210. - Improved the PWM library (app_pwm): SET/CLEAR tasks instead of TOGGLE
  3211. in nRF52.
  3212. - Updated the TWI driver to de-configure GPIO pins in the uninit
  3213. function (power-saving change).
  3214. - Unified field names in HAL.
  3215. - FreeRTOS fixes:
  3216. - Fixed invalid assertion.
  3217. - Improved tickless mode.
  3218. - Simplified the TWI sensor example.
  3219. - Added PCA10031 support to the led_softblink and low_power_pwm
  3220. examples.
  3221. ** Serialization **
  3222. - No support.
  3223. ** BLE **
  3224. - Removed the Device Manager modules. All example applications now use
  3225. the Peer Manager.
  3226. - Removed the pstorage module. All example applications now use the
  3227. fstorage module.
  3228. ** ANT **
  3229. - Moved the following examples from experimental to production level:
  3230. - Advanced Burst
  3231. - Asynchronous Transmitter
  3232. - Continuous Scanning Controller
  3233. - Debug
  3234. - Message Types
  3235. - Relay
  3236. - Search Sharing
  3237. - Search Uplink
  3238. ** NFC **
  3239. - Moved BLE OOB Pairing Data encoding to a separate module
  3240. (nfc_ble_oob_advdata).
  3241. - Modified nfc_t2t_lib and hal_nfc_t2t to conform with Nordic's
  3242. coding standard.
  3243. *** Fixed issues
  3244. ****************
  3245. ** Drivers and libraries **
  3246. - APP_FIFO: Fixed an issue with app_fifo_write writing one byte even
  3247. though it was requested to write zero bytes.
  3248. - APP_BUTTON: Memory improvements.
  3249. - GPIOTE: Fixed handler pointer checking.
  3250. - PDM: Fixed high power usage and unexpected restart after calling
  3251. nrf_drv_pdm_stop().
  3252. - QDEC: Fixed QDEC un-initialization sequence.
  3253. - SAADC: Added missing channel calibration.
  3254. - SAADC: Fixed high power consumption and burst mode (oversampling
  3255. without external trigger).
  3256. - SPI: Fixed STOPPED interrupt handling.
  3257. - SPIS: Fixed registers in get function of the amount of TX and RX done.
  3258. - TWI: Fixed misc sending bytes and misleading error codes.
  3259. - TWI: Added pin toggling functionality configuration during init (pin
  3260. toggling sequence during init may cause issues with some devices).
  3261. - UART: Fixed data corruption at 1 Mbaud and race conditions.
  3262. - DELAY: Fixed nrf_delay_us(0) case.
  3263. ** BLE **
  3264. - Fixed an issue where BLE example applications could assert if Button
  3265. 2 was held to start advertising while in a connection.
  3266. - Fixed several minor documentation mistakes that could make testing
  3267. the BLE examples less clear.
  3268. ** ANT **
  3269. - Fixed channel type setup in the following examples: Broadcast, Multi
  3270. Channels, and Continuous Scanning Controller.
  3271. ** NFC **
  3272. - NDEF Text record: Fixed UTF selection.
  3273. - NDEF message size calculation.
  3274. *** Known issues
  3275. ****************
  3276. ** Overall **
  3277. - Updating the MDK requires to manually copy the header and linker files
  3278. into the SDK folder (ARM Keil uVision 4, IAR Workbench, ARMGCC).
  3279. - When uploading an application to an nRF52 IC using nrfjprog, you must
  3280. provide the "--reset/-r" argument or powercycle the board.
  3281. ** BLE **
  3282. - Some examples might have excessively verbose logging.
  3283. - Performing pairing without bonding will cause examples to assert. To
  3284. fix this, make sure the call to pm_peer_rank_highest() during
  3285. PM_EVT_CONN_SEC_SUCCEEDED happens only when the procedure is
  3286. PM_LINK_SECURED_PROCEDURE_BONDING.
  3287. - When an Android device is used as a peripheral, it sends slave
  3288. security request with the MITM bit set. The central applications in
  3289. the SDK will reject the security request (Pairing Failed) because
  3290. they do not support MITM.
  3291. ** Secure DFU **
  3292. - nRF Toolbox for iPhone:
  3293. - When an error occurs, nRF Toolbox does not automatically
  3294. disconnect. You must therefore reset the board manually to
  3295. disconnect before you can connect again.
  3296. - It is not possible to abort a transfer when the device connection
  3297. is lost.
  3298. - On resumption, nRF Toolbox does not call execute, which makes it
  3299. impossible to resume a transfer.
  3300. - When transferring a combined SoftDevice and bootloader image, the
  3301. bootloader might not be updated.
  3302. - On nRF52 devices, the DFU operation is sometimes reported as
  3303. completed, even though the device is not updated.
  3304. ** NFC **
  3305. - NFC Type 2 Tag HAL requires using TIMER4 on nRF52832.
  3306. ========================================================================
  3307. nRF5 SDK v11.0.0
  3308. ----------------
  3309. Release date: Week 10, 2016
  3310. Highlights:
  3311. - Combined SDK supporting both the nRF51 and the nRF52 Series
  3312. - Moved Peer Manager out of experimental
  3313. - Moved NFC libraries out of experimental and added support for low
  3314. power mode
  3315. - Added drivers for all nRF52 peripherals
  3316. - Added serialization of the S132 and S130 SoftDevices
  3317. - Added support for SoftDevices S130 v2.0.0, S132 v2.0.0, S212 v0.9.x,
  3318. and S332 v0.9.x
  3319. - Replaced the Enhanced ShockBurst library with a new implementation
  3320. (based on µESB)
  3321. - Included a critical MDK update (v8.5.0)
  3322. - Removed support for CMSIS Packs
  3323. The following toolchains/devices have been used for testing and
  3324. verification:
  3325. - ARM: MDK-ARM version 5.16a
  3326. - GCC: GCC ARM Embedded 4.9 2015q1
  3327. - IAR: IAR Workbench 7.30.4
  3328. Supported SoftDevices:
  3329. - S130 v2.0.0
  3330. - S132 v2.0.0
  3331. - S212 v0.9.x
  3332. - S332 v0.9.x
  3333. Supported IC revisions:
  3334. - nRF51 IC revision 3
  3335. - nRF52 IC revision 1
  3336. - nRF52 Engineering C
  3337. - nRF52 Engineering A and Engineering B (see Compatibility)
  3338. Supported boards:
  3339. - PCA10028
  3340. - PCA10031
  3341. - PCA10036 (see Compatibility)
  3342. - PCA10040 (see Compatibility)
  3343. - PCA20006 (only for beacon examples)
  3344. For other devices and boards, see the SDK documentation, section
  3345. "Using the SDK with other boards".
  3346. Compatibility:
  3347. The SoftDevices that are supported in this SDK are not compatible
  3348. out-of-the-box with nRF52 Engineering A and Engineering B (the
  3349. IC revisions present on all versions of PCA10036 and on PCA10040
  3350. v0.9.0).
  3351. However, you can use the latest SoftDevices on Engineering A and B
  3352. nRF52 chips for development purposes if you implement the
  3353. workaround for anomaly 73 (TIMER: Event lost, see
  3354. http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.nrf52/dita/nrf52/errata.html).
  3355. *** New features
  3356. ****************
  3357. ** Drivers and libraries **
  3358. - Added a COMP driver (nRF52 only)
  3359. ** BLE **
  3360. - Extended the Peer Manager functionality:
  3361. - Added an additional data unit (Peer Rank) that can be used for
  3362. tracking which bonds are most (and least) recently used
  3363. - Added support for LE Secure Connections in Peer Manager
  3364. (experimental)
  3365. - Added an example application for LE Secure Connections (experimental,
  3366. support for Keil5, IAR, and GCC only)
  3367. ** ANT **
  3368. - Added new examples (experimental):
  3369. - Advanced Burst
  3370. - Asynchronous Transmitter
  3371. - Continuous Scanning Controller
  3372. - Debug Demo
  3373. - IO Demo
  3374. - Message Types
  3375. - Search Sharing
  3376. - Search Uplink
  3377. - ANT OTA bootloader application now uses the SoCLibrary API to perform
  3378. NVIC operations instead of direct operations
  3379. - Added multiprotocol examples for the S332 SoftDevice:
  3380. - Heart Rate Monitor Relay Application
  3381. - Shared Channels (experimental)
  3382. ** Serialization **
  3383. - Added serialization of the S130 and S132 v2.0.0 SoftDevices
  3384. ** NFC **
  3385. - Added a generic NDEF message parser that can parse NDEF messages to
  3386. the format that is used by the generic NFC NDEF message builder
  3387. - Added a module and example for creating NDEF text records
  3388. - Added and modified NFC pairing examples (experimental):
  3389. - HID Keyboard Application with BLE pairing using NFC (new)
  3390. - Heart Rate Application with BLE pairing using NFC (improved user
  3391. experience)
  3392. ** Proprietary **
  3393. - Added a Low Power Transmitter/Receiver example for ESB
  3394. *** Changes
  3395. ***********
  3396. ** Overall **
  3397. - Support for CMSIS Packs has been removed. The SDK is delivered as zip
  3398. file only.
  3399. ** Drivers and libraries **
  3400. - The MSB and LSB macros have been renamed to MSB_32 and LSB_32. Code
  3401. using these macros should be changed to use either the 16- or the
  3402. 32-bit variant.
  3403. ** BLE **
  3404. - Multi-instance handling of Service client modules has been greatly
  3405. improved. The client examples now handle service discovery in the main
  3406. application context. The main application context must manage which
  3407. client instance belongs to which connection link.
  3408. - The Multi-link Example has been modified to demonstrate multiple
  3409. client instances in a better way.
  3410. - The ble_app_multilink_peripheral example has been removed.
  3411. ble_app_blinky now acts as the peripheral for ble_app_multilink_central.
  3412. - Heart Rate Application with RTX: Support for nRF52 has been removed.
  3413. - The Peer Manager is no longer experimental.
  3414. - The following BLE examples now use Peer Manager:
  3415. - Central:
  3416. Running Speed and Cadence Collector (ble_app_rscs_c)
  3417. - Central and Peripheral:
  3418. BLE Relay (ble_app_hrs_rscs_relay)
  3419. BLE LE Secure Connections Multirole (ble_app_multirole_lesc)
  3420. - Peripheral:
  3421. Alert Notification (ble_app_alert_notification)
  3422. Proximity (ble_app_proximity)
  3423. Glucose (ble_app_gls)
  3424. HID Keyboard Application with BLE pairing using NFC (experimental_ble_app_hids_keyboard_pairing_nfc)
  3425. - The behavior of Peer Manager and Device Manager has changed to reject
  3426. pairing requests from already bonded peer centrals.
  3427. - Several BLE peripheral examples now support the S332 SoftDevice.
  3428. - Minor bugfixes in DFU.
  3429. ** ANT **
  3430. - The ANT bootloader was aligned to MBR version 2.0.0.
  3431. - The following ANT examples now support the S332 SoftDevice
  3432. (experimental):
  3433. - ANT Bootloader/DFU
  3434. - Message Types
  3435. ** NFC **
  3436. - The Adafruit Tag Reader Example has been extended to show added NDEF
  3437. parsing functionality.
  3438. - The NFC Type 2 Tag HAL was improved with a workaround for supporting
  3439. low power mode.
  3440. ** Proprietary **
  3441. - A new implementation of the Enhanced ShockBurst (ESB) protocol
  3442. supporting both nRF51 and nRF52 has been added.
  3443. *** Fixed issues
  3444. ****************
  3445. ** Drivers and libraries **
  3446. - GPIOTE: Fixed the problem of lost events in low-accuracy sense toggle
  3447. mode
  3448. - SAADC: Added functionality to use one AIN with multiple channels
  3449. - UART: Fixed a glitch on TX pin when initializing the driver
  3450. - UART: Fixed the problem that TX bytes were sent in wrong order in
  3451. app_uart_fifo
  3452. ** BLE **
  3453. - Removed a vulnerability in Peer Manager and Device Manager that would
  3454. allow malicious attackers to overwrite the bonding information of a
  3455. bonded device
  3456. ** ANT **
  3457. - Fixed the handling of send-until-success request types in the ANT
  3458. request controller
  3459. - Fixed an ant_evt_t structure member alignment bug
  3460. ** NFC **
  3461. - Fixed the NFC examples to work when the UART logger is enabled
  3462. - Fixed a buffer leakage bug in the module for creating
  3463. application/vnd.bluetooth.le.oob records
  3464. *** Known issues
  3465. ****************
  3466. ** Drivers and libraries **
  3467. - Using the NVIC API directly and not through a SoftDevice causes
  3468. problems, especially when NVIC_EnableIRQ or NVIC_DisableIRQ are called
  3469. from critical sections.
  3470. ** BLE **
  3471. - All BLE examples have been tested only on PCA10028 and PCA10040.
  3472. - BLE Examples that use pairing are incompatible with examples in SDK
  3473. version 6.1 and earlier that do not use pairing.
  3474. ** ANT **
  3475. - Previous versions of the ANT DFU example are incompatible with the ANT
  3476. S212/S332 SoftDevices version 0.9.x.
  3477. ** NFC **
  3478. - NFCT requires using TIMER4 on nRF52832.
  3479. ** FPU **
  3480. - When the FPU is in use, it triggers the FPU_IRQn interrupt when one of
  3481. the six exception flags (IDC, IXC, UFC, OFC, DZC, IOC) is set.
  3482. The FPU interrupt will always set the pending flag (even if the
  3483. interrupt is not enabled), irrespective of whether the user is
  3484. interested in the exception bit.
  3485. The pending flag then prevents the SoftDevice from going into low
  3486. power mode when sd_app_evt_wait() is called.
  3487. Therefore, always clear the exception bits and the pending interrupt
  3488. before calling sd_app_evt_wait(). See the code below for an example
  3489. implementation.
  3490. FPU exception bit definition:
  3491. http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0553a/BABBFJEC.html
  3492. Example code:
  3493. {
  3494. // Set bit 7 and bits 4..0 in the mask to one (0x ...00 1001 1111)
  3495. #define FPU_EXCEPTION_MASK 0x0000009F
  3496. ...
  3497. /* Clear exceptions and PendingIRQ from the FPU unit */
  3498. __set_FPSCR(__get_FPSCR() & ~(FPU_EXCEPTION_MASK));
  3499. (void) __get_FPSCR();
  3500. NVIC_ClearPendingIRQ(FPU_IRQn);
  3501. /* Call SoftDevice Wait For event */
  3502. error_code = sd_app_evt_wait();
  3503. }
  3504. ========================================================================
  3505. nRF5 SDK v11.0.0-2.alpha
  3506. ------------------------
  3507. Release date: Week 51, 2015
  3508. Highlights:
  3509. - Common SDK supporting both the nRF51 and the nRF52 Series
  3510. - Added support for SoftDevices S130 v2.0.0, S132 v2.0.0, and S212 v0.5.1
  3511. - Permanently removed support for SoftDevices S110 and S120
  3512. - Temporarily removed support for ANTBLE SoftDevices
  3513. - Enhanced Peer Manager and FDS modules
  3514. - Enhanced DFU module
  3515. - Configured nrf_log to use UART by default
  3516. - Added HardFault handler
  3517. - Added drivers for nRF52 peripherals: nrf_drv_i2s, nrf_drv_pdm,
  3518. nrf_drv_pwm
  3519. - Enhanced drivers to work for both nRF51 and nRF52: nrf_drv_twi,
  3520. nrf_drv_spi, nrf_drv_uart, nrf_drv_timer, nrf_drv_ppi, nrf_drv_clock
  3521. - Added FreeRTOS and RTX support for nRF52
  3522. - Added NFC modules: Type 2 Tag parser, generic NDEF message builder,
  3523. new NFC records and messages
  3524. - Added support for Adafruit PN532 NFC shield to provide NFC Forum
  3525. Device (Poller) functionality
  3526. - Improved support for NFC: enhanced NFC Type 2 Tag library and
  3527. Connection Handover module
  3528. The following toolchains/devices have been used for testing and
  3529. verification:
  3530. - ARM: MDK-ARM version 5.16a
  3531. - GCC: GCC ARM Embedded 4.9 2015q1
  3532. - IAR: IAR Workbench 7.30.4
  3533. - Windows XP SP3 32-bit
  3534. - Windows 7 SP1 64-bit
  3535. - Windows 8.1
  3536. Supported SoftDevices:
  3537. - S130 v2.0.0-7.alpha
  3538. - S132 v2.0.0-7.alpha
  3539. - S210 v5.0.0
  3540. - S212 v0.5.1.alpha
  3541. Supported boards:
  3542. - PCA10028
  3543. - PCA10031
  3544. - PCA10036
  3545. - PCA10040
  3546. - PCA20006 (only for beacon examples)
  3547. - Dynastream's N5DK1 (only for ANT examples)
  3548. For other devices and boards, see the SDK documentation, section "Using
  3549. the SDK with other boards".
  3550. Drivers and libraries:
  3551. New features:
  3552. - Added driver and example for PWM peripheral (nrf_drv_pwm).
  3553. - Added driver and example for I2S peripheral (nrf_drv_i2s).
  3554. - Added driver for PDM peripheral (nrf_drv_pdm).
  3555. - Enhanced nrf_drv_twi and nrf_drv_spi to support AUTOLOG and
  3556. triggering transfers from PPI.
  3557. - Added double buffering of RX buffers to nrf_drv_uart.
  3558. - Extended nrf_drv_timer to support more compare channels and low
  3559. power counter mode in nRF52.
  3560. - Extended nrf_drv_ppi API to support forks.
  3561. - Added support for FreeRTOS and RTX on nRF52.
  3562. - Simplified SPI and SPIS examples.
  3563. Fixed issues:
  3564. - In certain cases, FreeRTOS on nRF51 kept interrupts disabled after
  3565. context switch (see https://devzone.nordicsemi.com/question/57993/tickless-freertos-in-sdk-100-app_uart).
  3566. Known issues:
  3567. - The FreeRTOS nRF51 port has a wrong assertion during system startup.
  3568. If you are using assertions, you can safely ignore it. Alternatively,
  3569. comment out line 188 in port_cmsis.c.
  3570. Changes:
  3571. - Enhanced nrf_drv_clock driver (asynchronous clock management).
  3572. Serialization:
  3573. - Work in progress; not included in this release.
  3574. ANT:
  3575. New features:
  3576. - Added support for the S212 SoftDevice v0.5.1.alpha.
  3577. - Added ANT DFU support for nRF52.
  3578. Known issues:
  3579. - When using the ANT OTA Updater v1.2. for nRF52, there is a flash
  3580. memory address limitation of 0x40000 (256 KB) for the application.
  3581. BLE:
  3582. Changes:
  3583. - All BLE examples have been tested only on PCA10028 and PCA10040.
  3584. - The S13x SoftDevice v2.0.0-7.alpha is configurable, which leads to a
  3585. variable RAM setup:
  3586. - Added a macro to the softdevice_handler module to check the RAM
  3587. configuration against the SoftDevice parameters.
  3588. - Added a wrapper function for the sd_enable function to the
  3589. softdevice_handler module, which can output the required RAM
  3590. start address if the one passed to the SoftDevice is not
  3591. correct.
  3592. - DFU:
  3593. - Added an experimental nRF52 bootloader.
  3594. - Updated the SoftDevice initalization according to API changes in
  3595. S132 v2.0.0-7.alpha.
  3596. - Updated to MBR version v2.0.0-1 alpha.
  3597. - Introduced nrf_log as default logging module (UART) in all BLE
  3598. examples.
  3599. - Peer Manager & FDS have received incremental improvements and bug
  3600. fixes.
  3601. Known issues:
  3602. - In the HRS/RSCS Relay example, button presses do not have any effect.
  3603. - ble_app_cts_c requires an increased UART_TX_BUF_SIZE. The size can be
  3604. set in nrf_log.c.
  3605. - DTM for nRF52 does not support long packets according to the
  3606. Bluetooth 4.2 specification.
  3607. - Inconsistent behavior in DFU with devices running Android v6.0.1.
  3608. - The BLE and serial DFU examples do not work when using CMSIS Packs.
  3609. Use the zip version of the SDK instead.
  3610. NFC:
  3611. New features:
  3612. - Added a Type 2 Tag parser.
  3613. - Added a generic NFC NDEF message builder (the builder is used to
  3614. implement all specific records and messages).
  3615. - Added modules to create Windows LaunchApp records, Android
  3616. Application Records, and common application launch messages. Added
  3617. an associated example.
  3618. - Ported the Adafruit NFC library for the Adafruit PN532 Shield, which
  3619. provides NFC Forum Device capabilities. Added an associated example
  3620. to read tags.
  3621. - Added modules to create application/vnd.bluetooth.le.oob records,
  3622. application/vnd.bluetooth.ep.oob records, ac records, Hs records,
  3623. and BLE pairing messages.
  3624. Changes:
  3625. - Improved the NFC Type 2 Tag library: tested and power-optimized the
  3626. library and enhanced it with RTT logger capability.
  3627. - Re-implemented NFC URI record and message. Refactored the associated
  3628. example.
  3629. - Enhanced and re-implemented the NFC Connection Handover solution
  3630. (pairing using NFC).
  3631. - Re-implemented the BLE NFC pairing example.
  3632. Known issues:
  3633. - NFC examples do not work when UART logger is enabled.
  3634. ========================================================================
  3635. nRF51 SDK v10.0.0
  3636. -----------------
  3637. Release date: Week 46, 2015
  3638. Highlights:
  3639. - New BLE Peer Manager (experimental), replacement for the BLE Device
  3640. Manager
  3641. - FreeRTOS support
  3642. - New ANT modules, additional examples, and new and expanded ANT+
  3643. profiles
  3644. - Support for Dynastream's N5 Starter Kit
  3645. - Three new BLE Services
  3646. - Precompiled HEX files
  3647. The following toolchains/devices have been used for testing and
  3648. verification:
  3649. - ARM: MDK-ARM version 5.14.0.0 and 5.16a
  3650. - GCC: GCC ARM Embedded 4.9 2015q1
  3651. - IAR: IAR Workbench 7.30.4
  3652. - Windows XP SP3 32-bit
  3653. - Windows 7 SP1 64-bit
  3654. - Windows 8.1
  3655. Supported SoftDevices:
  3656. - S110 v8.0.0
  3657. - S120 v2.1.0
  3658. - S130 v1.0.0
  3659. - S210 v5.0.0
  3660. - S310 v3.0.0
  3661. Supported boards:
  3662. - PCA10028
  3663. - PCA10031
  3664. - Dynastream's N5DK1 (only for ANT examples)
  3665. For other devices and boards, see the SDK documentation, section "Using
  3666. the SDK with other boards".
  3667. Changes:
  3668. Drivers and libraries:
  3669. New features:
  3670. - Ported FreeRTOS to run on nRF51. Added two FreeRTOS examples: one
  3671. to run on bare metal and one running a BLE HRS example using the
  3672. S110 and S130 SoftDevices.
  3673. - Added a TWI transaction manager module for managing access to an
  3674. I2C bus. Added an example that uses this module to control two
  3675. sensors on the same I2C bus.
  3676. - Added an example that shows how to use the TWI driver.
  3677. - Added a low-power PWM module (software-controlled low-accuracy
  3678. PWM). Added an example that shows how to use this module.
  3679. - Added an LED softblink module that uses the low-power PWM. Added
  3680. an example that shows how to use this module.
  3681. - Ported app_uart to use the UART driver and moved it to the
  3682. libraries folder.
  3683. - Ported app_gpiote to use the GPIOTE driver.
  3684. - Added nrf_log, a logging module that supports printf and that can
  3685. use either UART or SEGGER RTT as transport medium.
  3686. Fixed issues:
  3687. - Mailbox module moved out of serialization.
  3688. - Bug fixes in app_timer module.
  3689. - App_timer module no longer requires to define the number of
  3690. timers used in the application.
  3691. - Bug fixes in PWM module.
  3692. Changes:
  3693. - FIFO library: Extended APIs for multi-byte read and write to the
  3694. FIFO.
  3695. - Memory Manager module:
  3696. - Extended number of block categories to 7 (from 3).
  3697. - More RAM-efficient management of memory blocks.
  3698. - Added a diagnostic function to help determine the right
  3699. configuration needed for the application.
  3700. Serialization:
  3701. New features:
  3702. - Added a command for resetting the connectivity chip.
  3703. ANT:
  3704. New features:
  3705. - Added the following new ANT modules:
  3706. - ant_encryption
  3707. - ant_key_manager
  3708. - ant_search_config
  3709. - Extended/changed the following existing ANT modules:
  3710. - ant_channel_config
  3711. - ant_stack_config
  3712. - ant_state_indicator
  3713. - Refactored the ANT/ANT+ examples and profiles to make them look more
  3714. similar to the BLE profiles and examples:
  3715. - The following ANT+ profiles have been extracted and extended:
  3716. Bicycle Power (ant_bpwr), Bicycle Speed & Cadence (ant_bsc),
  3717. Stride Based Speed & Distance (ant_sdm)
  3718. - All ANT+ examples have been refactored to use extracted
  3719. profiles.
  3720. - All ANT+/ANT examples have been refactored to use created
  3721. modules.
  3722. - Added three new ANT examples:
  3723. - ant_scalable
  3724. - ant_scalable_encrypted
  3725. - ant_scan_and_forward
  3726. BLE:
  3727. - Added an experimental module named Peer Manager. This module will
  3728. eventually replace the existing Device Manager. The new Peer Manager
  3729. improves on the Device Manager in multiple ways, mainly by
  3730. supporting concurrent central and peripheral connections.
  3731. - Added an experimental flash memory module named Flash Data Storage
  3732. (FDS), which greatly reduces the need for time-consuming write and
  3733. clear operations. When using FDS, data can be arbitrarily long or
  3734. short (within about a page). All pieces of data are tagged with
  3735. types, which makes it easy to version data.
  3736. - Updated the experimental HRS/RSCS Relay example:
  3737. - It now uses the new Peer Manager instead of the Device Manager.
  3738. Therefore, it now supports bonding in both central and peripheral
  3739. roles.
  3740. - It uses the new nrf_log module, which can use SEGGER RTT.
  3741. - Removed the app_s130_demo example.
  3742. - Added an experimental example supporting the Eddystone beacon
  3743. format.
  3744. - Added the BLE Connection State module, which keeps track of certain
  3745. states of each connection (for example, whether it is encrypted) and
  3746. can also keep track of user-defined states.
  3747. - Added the Mapped Flags module, which keeps track of flags that are
  3748. mapped to keys. It is used by the BLE Connection State module.
  3749. - Added ble_gatt_db.h (containing a GATT service structure) and
  3750. modified ble_db_discovery module to use it.
  3751. BLE Services:
  3752. - Updated the Bluetoothds_template application (experimental) to be
  3753. compatible with Bluetooth Developer Studio v1.0 and the Nordic
  3754. Semiconductor NRF5X v1.1.8 plugin.
  3755. - Added three new services:
  3756. - Location Navigation Service (experimental)
  3757. - Proprietary LED Button Service (experimental)
  3758. - Nordic UART Client Service (experimental)
  3759. Fixed issues:
  3760. - App_pwm occasionally gives inverted signal.
  3761. Known issues:
  3762. - Device Manager is not supported in multi-role S130 operation.
  3763. - Device Manager works in peripheral or central only operation on
  3764. S130. This must be decided at compile time.
  3765. - The DFU over BLE example has been tested to work with a minimum
  3766. connection interval of 11.25 ms. The application cannot handle
  3767. connection intervals lower than 11.25 ms and may undergo a system
  3768. reset in the middle of a firmware update.
  3769. Workaround: If you face unexpected disconnects during the firmware
  3770. update process, consider increasing the connection
  3771. interval used by the master.
  3772. - The old manual procedure for testing buttonless DFU, as specified in
  3773. the documentation, can lead to the DFU process hanging or returning
  3774. an error when used with Master Control Panel 3.8 and newer.
  3775. - Bootloader binaries (.bin files) generated with the GCC makefile
  3776. should not be used. Instead, generate the bootloader bin files using
  3777. nrfutils, found on GitHub.
  3778. ========================================================================
  3779. nRF52 SDK v0.9.2
  3780. ----------------
  3781. Release date: Week 42, 2015
  3782. This is an amendment to nRF52 SDK v0.9.1.
  3783. Highlights:
  3784. - New targets to enable the two near field communication (NFC)
  3785. examples to run on the new PCA10040 development board with
  3786. nRF52832 IC rev. Engineering B.
  3787. Libraries:
  3788. - Extended the NFC HAL layer of the NFC library to support the NFCT
  3789. peripherial for both the chip version delivered with the nRF52
  3790. Preview Development Kit (Engineering A: QFAA-AA0, QFAA-AC0,
  3791. CGAA-AA0) and the chip version delivered with the nRF52 Development
  3792. Kit (Engineering B: QFAA-BA0, QFAA-BB0, CHAA-AA0, CHAA-AB0).
  3793. Examples:
  3794. - Added PCA10040 as target bord for the following examples:
  3795. - Heart Rate Example with pairing over NFC
  3796. - NFC URL Record Application
  3797. Known issues/workarounds:
  3798. - To use the software workarounds implemented for PCA10036 (part
  3799. of nRF52 Preview Development Kit), globally define
  3800. HAL_NFC_ENGINEERING_A_FTPAN_WORKAROUND in your project.
  3801. - The TIMER4 peripheral is used to implement one of the workarounds
  3802. for PCA10036. This workaround is not used for PCA10040.
  3803. - The ble_app_hrs_pairing_nfc example is unable to wake up from
  3804. system off.
  3805. ========================================================================
  3806. nRF52 SDK v0.9.1
  3807. ----------------
  3808. Release date: Week 29, 2015
  3809. This is an amendment to nRF52 SDK v0.9.0.
  3810. Highlights:
  3811. - Support for near field communication (NFC)
  3812. Libraries/Services:
  3813. - Added a library that supports Type 2 NFC-A tag functionality in
  3814. read-only state
  3815. - Added a module to generate NFC NDEF messages for BLE pairing over NFC
  3816. - Added a module to generate NFC NDEF messages with an URI record type
  3817. - Extended the ble_advdata module
  3818. Examples:
  3819. - Added ble_app_hrs_pairing_nfc example that demonstrates pairing over
  3820. NFC (with S132 SoftDevice)
  3821. - Added record_url NFC example that demonstrates exposing a URL record
  3822. (without SoftDevice)
  3823. Limitations:
  3824. - The current version of the NFC library uses TIMER4.
  3825. - The ble_app_hrs_pairing_nfc example has been tested only with Samsung
  3826. Galaxy S6.
  3827. - If the path to the SDK directory is too long, compilation in Keil fails.
  3828. To work around this problem, move the SDK higher in the folder tree
  3829. or use shorter folder names.
  3830. ========================================================================
  3831. nRF51 SDK v9.0.0
  3832. ----------------
  3833. Release Date: Week 28, 2015
  3834. Highlights:
  3835. - Support for S210 SoftDevice v5.0.0
  3836. - Support for S310 SoftDevice v3.0.0
  3837. - Documentation moved to Infocenter
  3838. - DFU Signing using Elliptic Curve Cryptography added as experimental
  3839. - Available in the zip file only
  3840. - Running Speed and Cadence relay example showing concurrent
  3841. central/peripheral functionality of S130
  3842. The following toolchains/devices have been used for testing and verification:
  3843. - ARM: MDK-ARM version 5.14.0.0
  3844. - GCC: GCC ARM Embedded 4.9 2015q1
  3845. - IAR: IAR Workbench 7.20
  3846. - Windows XP SP3 32-bit
  3847. - Windows 7 SP1 64-bit
  3848. - Windows 8.1
  3849. Supported SoftDevices:
  3850. - S110 v8.0.0
  3851. - S120 v2.1.0
  3852. - S130 v1.0.0
  3853. - S210 v5.0.0
  3854. - S310 v3.0.0
  3855. Supported boards:
  3856. - PCA10028
  3857. - PCA10031
  3858. For other devices and boards, see the SDK documentation, section
  3859. "Using the SDK with other boards".
  3860. Changes:
  3861. - Flash access module has been refactored (pstorage).
  3862. ANT:
  3863. - Both the S310 and the S210 SoftDevices now support an extended
  3864. number of ANT channels (16).
  3865. Libraries:
  3866. - Heart Rate Monitor Profile
  3867. - ANT stack configuration
  3868. - ANT channel configuration
  3869. - ANT channel state indicator
  3870. - ANT pulse simulator
  3871. Examples:
  3872. - The ANT HRM examples have been refactored.
  3873. - The Bicycle Power examples (ant_bicycle_pwr) support S310.
  3874. ANT + BLE (S310):
  3875. The following examples were added:
  3876. - Bluetooth LE and ANT combined heart rate example (ble_ant_app_hrm).
  3877. - Experimental ANT Shared Channels (experimental_ant_shared_channel_master_to_master,
  3878. experimental_ant_shared_channel_slave).
  3879. BLE:
  3880. - Advertising module has a new mode: Low Duty Cycle Directed Advertising.
  3881. - Running Speed and Cadence Client added as experimental.
  3882. - Bluetooth Developer Studio template added as experimental.
  3883. - Heart Rate Sensor example (ble_app_hrs) supports S310.
  3884. - Running Speed and Cadence example (ble_app_rscs) supports S310.
  3885. - Combined Peripheral and Central example added as experimental.
  3886. - DFU Signing using Elliptic Curve Cryptography added as experimental
  3887. (using the same elliptic curve and hashing algorithm as Bluetooth
  3888. Low Energy 4.2 Secure Connections).
  3889. Fixed issues:
  3890. - Pstorage now supports updates of bond split across two pages.
  3891. - Advertising module can be set to infinite time-out.
  3892. - Corrected clock source in BLE multiactivity beacon example.
  3893. - Serialization HCI transport layer: Receiving packet-buffer is not
  3894. freed while sending ACK or NACK.
  3895. Known issues:
  3896. - Device Manager is not supported in multi-role S130 operation.
  3897. - Device Manager works in peripheral or central only operation on
  3898. S130. This must be decided at compile time.
  3899. - The DFU over BLE example has been tested to work with a minimum
  3900. connection interval of 11.25 ms. The application cannot handle
  3901. connection intervals lower than 11.25 ms and may undergo a system
  3902. reset in the middle of a firmware update.
  3903. Workaround: If you face unexpected disconnects during the firmware
  3904. update process, consider increasing the connection interval used
  3905. by the master.
  3906. - App_pwm occasionally gives inverted signal.
  3907. - The old manual procedure for testing buttonless DFU, as specified in
  3908. the documentation, can lead to the DFU process hanging or returning
  3909. an error when used with Master Control Panel 3.8 and newer.
  3910. ========================================================================
  3911. nRF52 SDK v0.9.0
  3912. ----------------
  3913. Release date: 17.06.2015
  3914. Highlights:
  3915. - Support for PCA10036 board v1.0.0 with nRF52832 QFAAAA
  3916. - Support for S132 SoftDevice v1.0.0-3.alpha (hex included)
  3917. - Support for S212 SoftDevice v0.2.0-1.alpha
  3918. - Support for Keil5 without CMSIS Packs
  3919. - Support for GCC
  3920. - Same structure as nRF51 SDK v8.1.0
  3921. - New peripheral drivers
  3922. - Documentation moved to Infocenter
  3923. The following toolchains/devices have been used for testing and verification:
  3924. - ARM: MDK-ARM version 5.14.0.0
  3925. - GCC: GCC ARM Embedded 4.9 2015q1
  3926. - Windows 7 SP1 64-bit
  3927. Supported SoftDevices:
  3928. - S132 v1.0.0-3.alpha
  3929. - S212 v0.2.0-1.alpha
  3930. Supported boards:
  3931. - PCA10036 v1.0.0
  3932. Examples:
  3933. - Most examples are ported from nRF51 SDK v8.1.0
  3934. - BLE examples run with the S132 SoftDevice
  3935. - ANT examples run with the S212 SoftDevice
  3936. - The following examples are included:
  3937. - BLE peripheral examples
  3938. - BLE central example
  3939. - New BLE combined central and peripheral example
  3940. - ANT examples
  3941. - HW peripheral examples
  3942. - New SAADC example
  3943. - New TWI master with TWI slave example
  3944. - BLE/serial DFU bootloader
  3945. - Direct Test Mode Application
  3946. Drivers:
  3947. - Includes all drivers from nRF51 SDK v8.1.0
  3948. - New drivers:
  3949. - SPI driver that supports SPI and SPIM
  3950. - UART driver that supports UART and UARTE
  3951. - SAADC HAL driver
  3952. - TWI slave driver
  3953. - SAADC driver
  3954. Libraries/Services:
  3955. - Same functionality as for nRF51 SDK v8.1.0
  3956. - The following libraries and services are included:
  3957. - BLE libraries
  3958. - BLE Services
  3959. - Transport Services
  3960. - Other libraries/components
  3961. Known issues:
  3962. - Device might reset when a Bluetooth link layer procedure and flash operation happens in parallel.
  3963. - Inconsistent behavior with Nexus devices running Android v5.1.1, for example:
  3964. - DFU fails
  3965. - Link loss might reset the nRF52 device
  3966. (such behavior might occur with other devices as well)
  3967. - After a power cycle, a UART lockup between Segger J-Link and nRF52 might occur
  3968. - Before a serial DFU operation or DTM can be executed, "nrfjprog --reset" must be run
  3969. ========================================================================
  3970. nRF51 SDK v. 8.1.1
  3971. ------------------
  3972. This is a supplement to the nRF51 SDK v8.1.0 release notes.
  3973. This release does not include any code changes compared to nRF51 SDK v8.1.0., except for a minor addition that is described in the "Changes" section.
  3974. Fixed issues:
  3975. - Project does not compile if nrf_drv_ppi is used together with SoftDevice S110, S120 or S210.
  3976. Issue exists only in CMSIS PACK release.
  3977. Changes:
  3978. - Released new SoftDevice packs: nRF_SoftDevice_S110.8.0.1, nRF_SoftDevice_S120.2.0.1 and
  3979. nRF_SoftDevice_S210.4.0.1-5 with updated nrf_sd_def.h.
  3980. Supported SoftDevices:
  3981. - S110 8.0.0
  3982. - S120 2.0.0
  3983. - S130 1.0.0
  3984. - S210 4.0.1
  3985. ========================================================================
  3986. nRF51 SDK v8.1.0
  3987. ----------------
  3988. Highlights:
  3989. - Support for SoftDevice S130 v1.0.0
  3990. - Serialization supporting SoftDevice S110, S120, and S130
  3991. - ANCS updated and no longer in experimental state
  3992. - GCC updated to new version: ARMGCC 4.9 q1-2015
  3993. - DFU example now has support for IAR and GCC
  3994. The following toolchains/devices have been used for testing and verification:
  3995. - ARM: MDK-ARM version 4.72.10, 5.13.0.0, 5.14.0.0
  3996. - GCC: gcc-arm-embedded 4.9 2015q1
  3997. - IAR: IAR Embedded Workbench for ARM version 7.20.2
  3998. - Windows XP SP3 32-bit
  3999. - Windows 7 SP1 64-bit
  4000. - Windows 8.1
  4001. Supported devices:
  4002. - This SDK is optimized for IC revision 3.
  4003. For details, see the "nRF51 Series Compatibility Matrix" document (ATTN-51) available on
  4004. www.nordicsemi.com.
  4005. Note 1: To run the ANT examples, you must use an nRF51422 device.
  4006. Note 2: Some of the examples using the SoftDevice will not fit on the 128 kB variant of the
  4007. chip.
  4008. Supported SoftDevices:
  4009. - S110 8.0.0
  4010. - S120 2.0.0
  4011. - S130 1.0.0
  4012. - S210 4.0.1
  4013. Supported boards:
  4014. - PCA10028
  4015. - PCA10031
  4016. For other devices and boards, see the SDK documentation, section "Using the SDK with other
  4017. boards", or use SDK v6.x.x.
  4018. Changes:
  4019. ANT + BLE (dual stack):
  4020. - Not included in this release due to conflicting interface between SoftDevice S310 and S110. Use SDK v7.2.0 for S310 support.
  4021. - S310 support will be reintroduced in a future release.
  4022. BLE:
  4023. - SoftDevices:
  4024. - Support for S130 v1.0.0.
  4025. - Serialization:
  4026. - Fully serialized S110, S120, and S130 API.
  4027. - Modules/Services:
  4028. - New button module (bsp_btn_ble) that enables functionality such as disconnect, turn off whitelist, go to sleep.
  4029. - Advertising module now supports scan response data
  4030. - Examples:
  4031. - ANCS example is no longer in experimental state.
  4032. Proprietary:
  4033. - IAR support for proprietary examples.
  4034. Peripheral drivers & libraries:
  4035. - New peripheral drivers: TWI, SWI, and GPIOTE.
  4036. - New PWM driver. PWM example updated to use the driver.
  4037. Fixed issues:
  4038. - NRFFOSDK-2044: Fixed issue in app_gpiote.
  4039. - NRFFOSDK-3855: Fixed issue in Current Time Service.
  4040. Known issues:
  4041. - Device Manager is not supported in multirole S130 operation.
  4042. - Device Manager works in peripheral or central only operation on S130. This must be decided at compile time.
  4043. - The DFU over BLE example has been tested to work with a minimum connection interval of
  4044. 11.25 ms. The application cannot handle connection intervals lower than 11.25 ms and may
  4045. undergo a system reset in the middle of a firmware update.
  4046. Workaround: If you face unexpected disconnects during the firmware update process, consider
  4047. increasing the connection interval.
  4048. - ANT:
  4049. - NRFFOSDK-755: HRM TX buttons example may report wrong total elapsed time.
  4050. - BLE:
  4051. - A few APIs of the Device Manager are not implemented. Also, documentation providing
  4052. examples of how the API can be used is missing.
  4053. - NRFFOSDK-2824: Device Manager (pstorage) does not support update of bond split across two
  4054. pages.
  4055. - Proprietary:
  4056. - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box
  4057. with the nRF51 ESB examples. This is due to:
  4058. - The legacy examples do not use "payload in ACK".
  4059. - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
  4060. - The examples do not use dynamic payload length.
  4061. The legacy examples need to add the following to work with the nRF51 examples:
  4062. hal_nrf_setup_dynamic_payload(0xFF);
  4063. hal_nrf_enable_dynamic_payload(true);
  4064. hal_nrf_enable_ack_payload(true);
  4065. hal_nrf_set_rf_channel(10);
  4066. In addition, the legacy PTX example must add code for handling the payloads received in ACK.
  4067. - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy
  4068. Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and
  4069. channel tables require adjustment.
  4070. - Timeslot period: Edit the gzll_params.h file used in the nRF24Lxx projects or use the
  4071. nrf_gzll_set_timeslot_period() function in the nRF51 projects
  4072. (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
  4073. - Channel table: Edit the gzll_params.h file used in the nRF24Lxx projects or use the
  4074. nrf_gzll_set_channel_table() function in the nRF51 projects.
  4075. - Gazell does not support "Low Power Host mode" (Host mode 1).
  4076. ========================================================================
  4077. nRF51 SDK v8.0.0
  4078. ----------------
  4079. Highlights:
  4080. - Support for the latest S110, S120, and S130 SoftDevices. (S310 is not supported.)
  4081. - SoftDevices included in the SDK.
  4082. - Greatly increased driver and HAL coverage.
  4083. - New service client and profile example: Current Time Service/Time Profile.
  4084. - IAR support for most examples.
  4085. The following toolchains/devices have been used for testing and verification:
  4086. - ARM: MDK-ARM Version 4.72.10, 5.13.0.0, 5.14.0.0
  4087. - GCC: gcc-arm-embedded 4.7 2013q1
  4088. - IAR: IAR Embedded Workbench for ARM version 7.20.2
  4089. - Windows XP SP3 32-bit
  4090. - Windows 7 SP1 64-bit
  4091. - Windows 8.1
  4092. Supported devices:
  4093. - This SDK is optimized for IC revision 3.
  4094. For details, see the "nRF51 Series Compatibility Matrix" document (ATTN-51) available on
  4095. www.nordicsemi.com.
  4096. Note 1: To run the ANT examples, you must use an nRF51422 device.
  4097. Note 2: Some of the examples using the SoftDevice will not fit on the 128 kB variant of the
  4098. chip.
  4099. Supported SoftDevices:
  4100. - S110 8.0.0
  4101. - S120 2.0.0
  4102. - S130 0.9.0-1.alpha
  4103. - S210 4.0.1
  4104. Supported boards:
  4105. - PCA10028
  4106. - PCA10031
  4107. For other devices and boards, see the SDK documentation, section "Using the SDK with other
  4108. boards", or use SDK v6.x.x.
  4109. Changes:
  4110. Toolchain/IDE:
  4111. - The nRF51 SDK now supports the following toolchains in most examples:
  4112. - Keil 5.14 (with packs)
  4113. - Keil 5.14 (without packs)
  4114. - Keil 4.72.10
  4115. - ARM GCC 4.7 2013q1
  4116. - IAR 7.20.2
  4117. - The supported SoftDevices are now included in the SDK and can be flashed directly from
  4118. Keil, as a separate target.
  4119. ANT + BLE (dual stack):
  4120. - Removed support for the S310 SoftDevice for BLE API compatibility reasons. For support,
  4121. use SDK v7.2.0.
  4122. BLE:
  4123. - SoftDevices:
  4124. - The SDK now supports the S110 SoftDevice v8.0.0.
  4125. - The SDK now supports the S120 SoftDevice v2.0.0.
  4126. - The SDK now supports the S130 SoftDevice v0.9.0-1.alpha.
  4127. - Serialization:
  4128. - Serialization support has been removed. For support, use SDK v7.2.0 with appropriate
  4129. SoftDevices.
  4130. - Modules/Services:
  4131. - Added a new advertising module (ble_advertising) that provides automatic handling of
  4132. directed/fast/slow advertising, with and without whitelist.
  4133. - Nordic UART Service (ble_nus), detached from the UART over BLE Example.
  4134. - Added Current Time Service Client (ble_cts_c).
  4135. - Service Changed characteristic has been implemented for DFU, so that the indication is
  4136. sent when transitioning between application and bootloader.
  4137. - Implemented a mechanism for sharing of IRK and LTK from application to bootloader.
  4138. This allows for whitelist advertising and reconnection in DFU mode using existing
  4139. keys.
  4140. - Examples:
  4141. - The UART over BLE Example is no longer experimental.
  4142. - Added a Time Profile (ble_app_cts_c) example using the Current Time Service Client
  4143. implementation.
  4144. Drivers/Libraries:
  4145. - Added hardware abstraction layer for the following hardware peripherals:
  4146. - ADC (Analog-to-digital converter)
  4147. - CLOCK (Clock management)
  4148. - LPCOMP (Low power comparator)
  4149. - PPI (Programmable Peripheral Interconnect)
  4150. - QDEC (Quadrature decoder)
  4151. - RNG (Random number generator)
  4152. - RTC (Real time counter)
  4153. - TIMER (Timer/counter)
  4154. - WDT (Watchdog timer)
  4155. - Added drivers for the following peripherals:
  4156. - CLOCK (Clock management)
  4157. - LPCOMP (Low power comparator)
  4158. - PPI (Programmable Peripheral Interconnect)
  4159. - QDEC (Quadrature decoder)
  4160. - RNG (Random number generator)
  4161. - RTC (Real time counter)
  4162. - TIMER (Timer/counter)
  4163. - WDT (Watchdog timer)
  4164. - Added modules:
  4165. - app_simple_timer (Simple timer based on TIMER1)
  4166. Hardware Examples:
  4167. - Added:
  4168. - adc_simple (NRF_ADC)
  4169. - clock (NRF_DRV_CLOCK)
  4170. - lpcomp (NRF_DRV_LPCOMP)
  4171. - qdec (NRF_DRV_QDEC)
  4172. - simple_timer (APP_SIMPLE_TIMER)
  4173. - wdt (NRF_DRV_WDT)
  4174. - Modified:
  4175. - ppi (NRF_DRV_PPI)
  4176. - rng (NRF_DRV_RNG)
  4177. - rtc (NRF_DRV_RTC)
  4178. - timer (NRF_DRV_TIMER)
  4179. Fixed issues:
  4180. - Fixed pstorage issue where different applications could write to the same page.
  4181. Known issues:
  4182. - The DFU over BLE example has been tested to work with a minimum connection interval of
  4183. 11.25 ms. The application cannot handle connection intervals lower than 11.25 ms and may
  4184. undergo a system reset in the middle of a firmware update.
  4185. Workaround: If you face unexpected disconnects during the firmware update process, consider
  4186. increasing the connection interval used by the master.
  4187. - ANT:
  4188. - NRFFOSDK-755: HRM TX buttons example may report wrong total elapsed time
  4189. - BLE:
  4190. - A few APIs of the Device Manager are not implemented. Also, documentation providing
  4191. examples of how the API can be used is missing.
  4192. - NRFFOSDK-2824: Device Manager (pstorage) does not support update of bond split across two
  4193. pages.
  4194. - Proprietary:
  4195. - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box
  4196. with the nRF51 ESB examples. This is due to:
  4197. - The legacy examples do not use "payload in ACK".
  4198. - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
  4199. - The examples do not use dynamic payload length.
  4200. The legacy examples need to add the following to work with the nRF51 examples:
  4201. hal_nrf_setup_dynamic_payload(0xFF);
  4202. hal_nrf_enable_dynamic_payload(true);
  4203. hal_nrf_enable_ack_payload(true);
  4204. hal_nrf_set_rf_channel(10);
  4205. In addition, the legacy PTX example must add code for handling the payloads received in ACK.
  4206. - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy
  4207. Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and
  4208. channel tables require adjustment.
  4209. - Timeslot period: Edit the gzll_params.h file used in the nRF24Lxx projects or use the
  4210. nrf_gzll_set_timeslot_period() function in the nRF51 projects
  4211. (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
  4212. - Channel table: Edit the gzll_params.h file used in the nRF24Lxx projects or use the
  4213. nrf_gzll_set_channel_table() function in the nRF51 projects.
  4214. - Gazell does not support "Low Power Host mode" (Host mode 1).
  4215. ========================================================================
  4216. nRF51 SDK v7.2.0
  4217. ----------------
  4218. Following toolchains/devices have been used for testing and verification:
  4219. - ARM: MDK-ARM Version 5.12, 5.13
  4220. - GCC: gcc-arm-embedded 4.7 2013q1
  4221. - IAR: no support in this release
  4222. - Windows XP SP3 32-bit
  4223. - Windows 7 SP1 64-bit
  4224. - Windows 8.1
  4225. Supported devices
  4226. - This SDK is optimized for IC revision 3.
  4227. For details, see the "nRF51 Series Compatibility Matrix" document (ATTN-51) available on
  4228. www.nordicsemi.com.
  4229. Note 1: To run the ANT examples, you must use an nRF51422 device.
  4230. Note 2: Some of the examples using the SoftDevice will not fit on the 128 kB variant of the
  4231. chip.
  4232. Note 3: Some of the serialization examples are too big to be compiled using the free version
  4233. of Keil.
  4234. Supported SoftDevices:
  4235. - S110 7.1.0
  4236. - S120 1.0.1
  4237. - S130 0.5.0-1.alpha
  4238. - S210 4.0.1
  4239. - S310 2.0.1
  4240. Supported boards:
  4241. - PCA10028
  4242. - PCA10031
  4243. - S110 connectivity support for Wavetek WT51822
  4244. For other devices and boards, see the SDK documentation, section "Using the SDK with other
  4245. boards", or use SDK v6.x.x.
  4246. Changes:
  4247. - ANT:
  4248. - ANT-FS client example: Added callback to allow applications to execute custom code while
  4249. waiting for the burst to complete
  4250. - Major rework on ANT DFU example
  4251. - Added new ANT hub-2-hub/shared channel example
  4252. - Added S310 target support for DTM example
  4253. - BLE DFU is now supported for S310
  4254. Fixed issues:
  4255. - ANT:
  4256. - ANT-FS: Fixed bug with transfer sequence number error causing download failures
  4257. - ANT-FS: Fixed bug where upon exhaustion of m_retry, the link time-out has been mistakenly
  4258. disabled by a burst transfer
  4259. - Fixed issue in linker script for S310
  4260. - Fixed memory corruption issue by using dedicated buffers for ANT and BLE stack events
  4261. respectively on S310
  4262. - Fixed an issue where the ANT OTA Updater application v0.8 would not support hex files
  4263. with code size larger than 65535 bytes
  4264. Known issues:
  4265. - SEGGER J-Link software has some issues with Keil.
  4266. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for details.
  4267. - Keil 5.13 may issue a warning about missing packs even when all Nordic Semiconductor packs are
  4268. correctly installed.
  4269. - The DFU over BLE example has been tested to work with a minimum connection interval of
  4270. 11.25 ms. The application cannot handle connection intervals lower than 11.25 ms and may
  4271. undergo a system reset in the middle of a firmware update.
  4272. Workaround: If you face unexpected disconnects during the firmware update process, consider
  4273. increasing the connection interval used by the master.
  4274. - ANT:
  4275. - NRFFOSDK-755: HRM TX buttons example may report wrong total elapsed time
  4276. - BLE:
  4277. - NRFFOSDK-3135: S120 examples: RAM is limited to 16 kB, because S120 V1.0.1 does not
  4278. support utilizing the whole flash on the QFACAB chip
  4279. - NRFFOSDK-119: Only the ble_app_proximity_low_power and ble_app_hrs applications are power
  4280. optimized
  4281. - S120 examples: Flash clear operation may fail when connected. Impact of this in the S120
  4282. examples is that if the peer loses the bond and a rebonding occurs, flash clear fails and
  4283. a DM_EVT_DEVICE_CONTEXT_STORED event is notified with a failure.
  4284. - A few APIs of the Device Manager are not implemented. Also, documentation providing
  4285. examples of how the API can be used is missing.
  4286. - NRFFOSDK-2824: Device Manager (pstorage) does not support update of bond split across two
  4287. pages.
  4288. - Proprietary:
  4289. - Temperature example does not give sane output values. This is a hardware-related issue
  4290. described in PAN_028 and will be fixed in future silicon.
  4291. - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box
  4292. with the nRF51 ESB examples. This is due to:
  4293. - The legacy examples do not use "payload in ACK".
  4294. - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
  4295. - The examples do not use dynamic payload length.
  4296. The legacy examples need to add the following to work with the nRF51 examples:
  4297. hal_nrf_setup_dynamic_payload(0xFF);
  4298. hal_nrf_enable_dynamic_payload(true);
  4299. hal_nrf_enable_ack_payload(true);
  4300. hal_nrf_set_rf_channel(10);
  4301. In addition, the legacy PTX example must add code for handling the payloads received in ACK.
  4302. - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy
  4303. Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and
  4304. channel tables require adjustment.
  4305. - Timeslot period: Edit the gzll_params.h file used in the nRF24Lxx projects or use the
  4306. nrf_gzll_set_timeslot_period() function in the nRF51 projects
  4307. (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
  4308. - Channel table: Edit the gzll_params.h file used in the nRF24Lxx projects or use the
  4309. nrf_gzll_set_channel_table() function in the nRF51 projects.
  4310. - Gazell does not support "Low Power Host mode" (Host mode 1).
  4311. ========================================================================
  4312. nRF51 SDK v7.1.0
  4313. ----------------
  4314. Following toolchains/devices have been used for testing and verification:
  4315. - ARM: MDK-ARM Version 5.12
  4316. - GCC: gcc-arm-embedded 4.7 2013q1
  4317. - IAR: no support in this release
  4318. - Windows XP SP3 32-bit
  4319. - Windows 7 SP1 64-bit
  4320. - Windows 8.1
  4321. Tested with devices:
  4322. - nRF51422 QFACAB
  4323. For others devices, use SDK 6.x.x.
  4324. Supported SoftDevices:
  4325. - S110 7.1.0
  4326. - S120 1.0.1
  4327. - S130 0.5.0-1.alpha
  4328. - S210 4.0.1
  4329. - S310 2.0.0
  4330. Supported boards:
  4331. - PCA10028
  4332. - PCA10031
  4333. - S110 connectivity support for Wavetek WT51822
  4334. For other boards, use SDK V6.x.x.
  4335. Changes:
  4336. - Experimental support for over-the-air firmware update using the ANT radio protocol
  4337. - New experimental example ANT relay demo
  4338. - Support for S310 ANT+BLE version 2.0.0
  4339. - Re-introduce Device Firmware Update via UART
  4340. - BLE DFU single bank support for bootloader+softdevice update
  4341. Fixed issues:
  4342. - NRFFOSDK-3119 Fixed issue in app_timer where issuing start/stop from interrupt context caused long delays
  4343. Known issues:
  4344. - SEGGER J-Link software has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
  4345. - The DFU over BLE example has been tested to work with a minimum connection interval of 11.25 ms. The application cannot handle connection intervals lower than 11.25 ms and may undergo a system reset in the middle of a firmware update.
  4346. Workaround: If you face unexpected disconnects during the firmware update process, consider increasing the connection interval used by the master
  4347. ANT
  4348. - The OTA Updater application v.0.8 does not support hex files with code size larger than 65535 bytes.
  4349. - NRFFOSDK-366: ANT-FS host: download sometimes fails when downloading a large file
  4350. - NRFFOSDK-755: HRM TX buttons example may report wrong total elapsed time
  4351. BLE
  4352. - NRFFOSDK-3135: S120 examples: RAM is limited to 16 kB, because S120 V1.0.1 does not support utilizing the whole flash on the QFACAB chip
  4353. - NRFFOSDK-119: Only the ble_app_proximity_low_power and ble_app_hrs applications are power optimized
  4354. - S120 examples: Flash clear operation may fail when connected. Impact of this in the S120 examples is that if the peer loses the bond and a rebonding occurs, flash clear fails and a DM_EVT_DEVICE_CONTEXT_STORED event is notified with a failure.
  4355. - A few APIs of the Device Manager are not implemented. Also, documentation providing examples of how the API can be used is missing.
  4356. - NRFFOSDK-2824: Device Manager (pstorage) does not support update of bond split across two pages.
  4357. Proprietary:
  4358. - Temperature example does not give sane output values. This is a hardware-related issue described in PAN_028 and will be fixed in future silicon.
  4359. - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
  4360. - The legacy examples do not use "payload in ACK".
  4361. - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
  4362. - The examples do not use dynamic payload length.
  4363. The legacy examples need to add the following to work with the nRF51 examples:
  4364. hal_nrf_setup_dynamic_payload(0xFF);
  4365. hal_nrf_enable_dynamic_payload(true);
  4366. hal_nrf_enable_ack_payload(true);
  4367. hal_nrf_set_rf_channel(10);
  4368. In addition, the legacy PTX example must add code for handling the payloads received in ACK.
  4369. - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and channel tables require adjustment.
  4370. - Timeslot period: Edit the gzll_params.h file used in the nRF24Lxx projects or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
  4371. - Channel table: Edit the gzll_params.h file used in the nRF24Lxx projects or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
  4372. - Gazell does not support "Low Power Host mode" (Host mode 1).
  4373. ========================================================================
  4374. nRF51 SDK v. 7.0.1
  4375. ------------------
  4376. This is a supplement to the nRF51 SDK v7.0.0 release notes.
  4377. This release does not include any code changes compared to nRF51 SDK v7.0.0, except for a minor addition that is described in the "Changes" section.
  4378. Fixed issues:
  4379. - Replaced DeviceFamilyPack v1.1.3, which has a wrong URL, with DeviceFamilyPack v1.1.4.
  4380. - Added a version field to Pack examples descriptions (NordicSemiconductor.nRF_Examples.pdsc).
  4381. - Added missing Nordic Semiconductor nRF51 MDK installer to the repository distribution (nRF51_SDK_x.x.x_xxxxxxx.zip).
  4382. - Added missing message sequence charts to the documentation.
  4383. - Changed incorrect description of supported SoftDevices in the release notes (see below for the correct list of supported SoftDevices).
  4384. Changes:
  4385. - Added all the register and bitfields for the SPIM peripheral (present in the nRF51802 device) to the HAL header files and replaced the pack nRF_Drivers v1.0.0 with nRF_Drivers v1.1.0.
  4386. Supported SoftDevices:
  4387. - S110 7.1.0
  4388. - S120 1.0.1
  4389. - S130 0.5.0-1.alpha
  4390. - S210 4.0.1
  4391. nRF51 SDK v7.0.0
  4392. ----------------
  4393. Following toolchains/devices have been used for testing and verification:
  4394. - ARM: MDK-ARM Version 5.12
  4395. - GCC: gcc-arm-embedded 4.7 2013q1
  4396. - IAR: no support in this release
  4397. - Windows XP SP3 32-bit
  4398. - Windows 7 SP1 64-bit
  4399. - Windows 8.1
  4400. Tested with devices:
  4401. - nRF51422 QFACAB
  4402. For others devices, use SDK 6.x.x.
  4403. Supported SoftDevices:
  4404. - S110 7.1.0
  4405. - S120 1.0.0 S120 1.0.1
  4406. - S130 0.5.0-1.alpha
  4407. - S210 4.0.1
  4408. - S310 1.0.0
  4409. Supported boards:
  4410. - PCA10028
  4411. - PCA10031
  4412. - S110 connectivity support for Wavetek WT51822
  4413. For other boards, use SDK V6.x.x.
  4414. Changes:
  4415. - New folder structure
  4416. - Moved from installer to CMSIS pack format
  4417. - Added support for PCA100028 and PCA10031
  4418. - Deprecated support for previous boards
  4419. - Added support for RTX tickless
  4420. ANT
  4421. - Changed the ANT examples to support S210 SoftDevice v4.0.1
  4422. - Added experimental Background Scanning example
  4423. ANT + BLE (Dual stack)
  4424. - Removed support for S310 SoftDevice (for support, use SDK v6.x.x)
  4425. BLE
  4426. - DFU: Added experimental mechanism to exchange encryption keys between application and BootLoader
  4427. - DFU: Added identification of firmware versions in the init packet
  4428. - Added experimental BLE nRF UART example
  4429. - Added experimental ANCS example
  4430. - Added experimental example demonstrating usage of S130 SoftDevice
  4431. - Added HRS example with RTX
  4432. Proprietary
  4433. - Deprecated the following examples (for support, use SDK v6.x.x):
  4434. * ADNS2080 Mouse Sensor Driver Application
  4435. * Cherry8x16 Keyboard Application
  4436. * Button Debouncer Example
  4437. * nRF6350 Radio Configuration Example
  4438. * PWM Analyzer Example
  4439. * Motor Control Example
  4440. * TWI Master Example
  4441. Fixed issues:
  4442. - NRFFOSDK-362: Reset button won't work after programming without cycling the target power
  4443. - NRFFOETT-205: The nRF51822 installer will not run if no C:\ drive exists - No installer
  4444. - NRFFOSDK-236: When the bundled J-Link OB CDC driver installation dialog appears, the error message "Failed to install driver (Timeout occurred)" might appear - No installer
  4445. - NRFFOSDK-363: Flashing software using SEGGER is NOT possible when the device is in SYSTEM_OFF mode
  4446. Known issues:
  4447. - SEGGER J-Link software has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
  4448. - The DFU over BLE example has been tested to work with a minimum connection interval of 11.25 ms. The application cannot handle connection intervals lower than 11.25 ms and may undergo a system reset in the middle of a firmware update.
  4449. Workaround: If you face unexpected disconnects during the firmware update process, consider increasing the connection interval used by the master
  4450. ANT
  4451. - NRFFOSDK-366: ANT-FS host: download sometimes fails when downloading a large file
  4452. - NRFFOSDK-755: HRM TX buttons example may report wrong total elapsed time
  4453. BLE
  4454. - NRFFOSDK-3135: S120 examples: RAM is limited to 16 kB, because S120 V1.0.1 does not support utilizing the whole flash on the QFACAB chip
  4455. - NRFFOSDK-119: Only the ble_app_proximity_low_power and ble_app_hrs applications are power optimized
  4456. - S120 examples: Flash clear operation may fail when connected. Impact of this in the S120 examples is that if the peer loses the bond and a rebonding occurs, flash clear fails and a DM_EVT_DEVICE_CONTEXT_STORED event is notified with a failure.
  4457. - A few APIs of the Device Manager are not implemented. Also, documentation providing examples of how the API can be used is missing.
  4458. - NRFFOSDK-2824: Device Manager (pstorage) does not support update of bond split across two pages.
  4459. Proprietary:
  4460. - NRFFOSDK-1769: Not all examples have makefiles, nor have they been tested with the new toolchain. Expect minor compilation issues.
  4461. - Temperature example does not give sane output values. This is a hardware-related issue described in PAN_028 and will be fixed in future silicon.
  4462. - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
  4463. - The legacy examples do not use "payload in ACK".
  4464. - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
  4465. - The examples do not use dynamic payload length.
  4466. The legacy examples need to add the following to work with the nRF51 examples:
  4467. hal_nrf_setup_dynamic_payload(0xFF);
  4468. hal_nrf_enable_dynamic_payload(true);
  4469. hal_nrf_enable_ack_payload(true);
  4470. hal_nrf_set_rf_channel(10);
  4471. In addition, the legacy PTX example must add code for handling the payloads received in ACK.
  4472. - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and channel tables require adjustment.
  4473. - Timeslot period: Edit the gzll_params.h file used in the nRF24Lxx projects or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
  4474. - Channel table: Edit the gzll_params.h file used in the nRF24Lxx projects or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
  4475. - Gazell does not support "Low Power Host mode" (Host mode 1).
  4476. ========================================================================
  4477. nRF51 SDK v. 6.1.0
  4478. ------------------
  4479. Following toolchains/devices have been used for testing and verification:
  4480. - ARM: MDK-ARM Version 5.10.x/5.11.x
  4481. - GCC: gcc-arm-embedded 4.7 2013q1
  4482. - IAR: Embedded Workbench for ARM 6.60
  4483. - Windows XP SP3 32 bit
  4484. - Windows 7 SP1 64 bit
  4485. - Windows 8.0/8.1
  4486. Tested with devices:
  4487. - nRF51822 QFAAG0
  4488. - nRF51822 QFAAGC
  4489. - nRF51822 QFAAFA
  4490. - nRF51422 QFAAE0
  4491. For others devices, use SDK 4.x.x
  4492. Supported SoftDevices:
  4493. - S110 7.0.0
  4494. - S120 1.0.0
  4495. - S210 3.0.0
  4496. - S310 1.0.0
  4497. Supported boards:
  4498. - PCA10000 v1.0 (Only for use with Master Emulator)
  4499. - PCA10000 v2.1.0 and 2.2.0
  4500. - PCA10001 v2.1.0 and 2.2.0
  4501. - PCA10004 v2.1.0
  4502. - PCA10005 v2.1.0 and 2.2.0
  4503. - PCA10003 v3.0.0
  4504. Changes:
  4505. - Added Keil 5 uvprojx files for most example projects.
  4506. - Extended GCC support, most examples now supplied with Makefiles.
  4507. ANT
  4508. - None.
  4509. ANT + BLE (Dual stack)
  4510. - None.
  4511. BLE
  4512. - Device firmware upgrade with support for OTA update of SoftDevice, app and bootloader is no longer in experimental status.
  4513. - Buttonless bootloader mode, enter bootloader mode via over-the-air command (see ble_app_hrs example, using ble_app_hrs_dfu.uvproj project).
  4514. - Device manager (BLE bond handling) for S110 and S120 are no longer in experimental status.
  4515. - db_discovery module (for GATT database discovery) for S120 is no longer in experimental status.
  4516. - New reliable transport layer for S110 SoftDevice serialization.
  4517. - Example ble_app_hrs_c (heart rate collector) for S120 is no longer in experimental status.
  4518. - Example ble_app_multilink_central for S120 is no longer in experimental status.
  4519. - Example ble_app_multilink_peripheral for S110 is no longer in experimental status.
  4520. - Experimental examples ble_app_ancs and ble_app_multiactivity have been deprecated from this release.
  4521. - Experimental example ble_app_uart for pca10001 has been deprecated from this release.
  4522. Proprietary
  4523. - None.
  4524. Fixed issues:
  4525. - NRFFOSDK-2884: Fixed issue in app_button module (function app_button_is_pushed).
  4526. - NRFFOSDK-1341: Added missing characteristic in Blood Glucose application.
  4527. - NRFFOSDK-2859: Removed redundant code in Blood Glucose application.
  4528. - NRFFOSDK-2557: Fixed some doxygen documentation errors.
  4529. Known issues:
  4530. - When flashing from Keil 4, a pop-up might appear stating "Cannot Load Flash Device Description !".
  4531. Solution:
  4532. - Write new flash algorithm settings to the uvopt file.
  4533. Press ALT+F7 to open "Options for Target" dialog.
  4534. Select "Options for Target" -> "Utilities".
  4535. Press "Settings" button to see flashing algorithms.
  4536. Verify that "nRF51xxx" is in the list of flashing algorithms, if not add it by pressing the "Add" button.
  4537. Exit and save settings by pressing "OK". This is also important to do if you did find the "nRF51xxx" in the list of flashing algorithms.
  4538. - If you have an existing KEIL project target set to use device variant "nRF51", a pop-up might appear stating that you have to "update your device selection".
  4539. Solution:
  4540. Press ALT+F7 to open "Options for Target" dialog.
  4541. Select "Options for Target" -> "Device".
  4542. Choose "Nordic nRF51 Series Devices" from the Database list.
  4543. Select the variant of the nRF51 chip that is used for the KEIL project target.
  4544. - When using J-Link software prior to version 4.66, a warning might appear when entering "Options for Target" -> "Debug" -> "Settings". The warning indicates that the device is unknown to the specific version of the J-Link software.
  4545. Solution: Upgrade J-Link software to version 4.66 or later.
  4546. - Segger J-Link software has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
  4547. - On some Windows XP machines, J-Link CDC installer fails producing an error message saying it could not find JLinkCDCDriver_x86.msi.
  4548. Solution: Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
  4549. - NRFFOETT-205 - The nRF51822 installer will not run if no C:\ drive exists
  4550. - NRFFOSDK-236 - When the bundled J-Link OB CDC driver installation dialog appears, the error message "Failed to install driver (Timeout occurred)" might appear . Ignore it.
  4551. - NRFFOSDK-362 - Reset button won't work after programming without cycling the target power.
  4552. - NRFFOSDK-363 - Flashing software using SEGGER is NOT possible when the device is in SYSTEM_OFF mode
  4553. Solution: Wake-up the current application from SYSTEM_OFF before flashing a new application.
  4554. - The DFU over BLE example has been tested to work with a minimum connection interval of 11.25 ms.
  4555. This application will not be able to handle connection intervals lower than 11.25 ms and may undergo a system reset in the middle of a firmware update.
  4556. Workaround: If you face unexpected disconnects during firmware update process, consider increasing the connection interval used by the master.
  4557. ANT
  4558. - NRFFOSDK-366 - ANT-FS host: download sometimes fails when downloading a large file.
  4559. - NRFFOSDK-755 - HRM TX buttons example may report wrong total elapsed time.
  4560. BLE
  4561. - NRFFOSDK-119 - Only the "....\sdk\nrf5822\Board\nrf6310\ble\ble_app_pwr_profiling\","....\sdk\nrf5822\Board\pca10001\ble\ble_app_proximity\ ", and "....\sdk\nrf5822\Board\pca10001\ble\ble_app_hrs\ " applications are power optimized.
  4562. - S120 Examples: Flash clear operation may fail when connected. Impact of this in the S120 examples is that if peer loses the bond and a re-bonding occurs, flash clear fails, and DM_EVT_DEVICE_CONTEXT_STORED event is notified with a failure.
  4563. - Device manager has a few APIs unimplemented. Also documentation providing examples of how API can be used is missing.
  4564. - NRFFOSDK-2824: Device manager (pstorage) doesn't support update of bond split across two pages.
  4565. Proprietary:
  4566. - NRFFOSDK-1769: Not all examples have makefiles, nor have they been tested with the new toolchain. Expect minor compilation issues.
  4567. - Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
  4568. - Temperature example does not give sane output values. This is hardware related issue described in PAN_028 and will be fixed in future silicon.
  4569. - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
  4570. - The legacy examples do not use "payload in ACK".
  4571. - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
  4572. - The examples do not use dynamic payload length.
  4573. The legacy examples need to add the following in order to work with the nRF51 examples:
  4574. hal_nrf_setup_dynamic_payload(0xFF);
  4575. hal_nrf_enable_dynamic_payload(true);
  4576. hal_nrf_enable_ack_payload(true);
  4577. hal_nrf_set_rf_channel(10);
  4578. In addition, the legacy PTX example must add code for handling the payloads received in ACK.
  4579. - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and channel tables require adjustment.
  4580. - Timeslot period: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
  4581. - Channel table: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
  4582. - Gazell does not support "Low Power Host mode" (Host mode 1).
  4583. ========================================================================
  4584. nRF51 SDK v. 6.0.0
  4585. ------------------
  4586. Following toolchains/devices have been used for testing and verification:
  4587. - ARM: MDK-ARM Version 5.10.x/5.11.x
  4588. - GCC: gcc-arm-embedded 4.7 2013q1
  4589. - IAR: Embedded Workbench for ARM 6.60
  4590. - Windows XP SP3 32 bit
  4591. - Windows 7 SP1 64 bit
  4592. - Windows 8.0/8.1
  4593. Tested with devices:
  4594. - nRF51822 QFAAG0
  4595. - nRF51822 QFAAGC
  4596. - nRF51822 QFAAFA
  4597. - nRF51422 QFAAE0
  4598. For others devices, use SDK 4.x.x
  4599. Supported SoftDevices:
  4600. - S110 7.0.0
  4601. - S120 1.0.0
  4602. - S210 3.0.0
  4603. - S310 1.0.0
  4604. Supported boards:
  4605. - PCA10000 v1.0 (Only for use with Master Emulator)
  4606. - PCA10000 v2.1.0 and 2.2.0
  4607. - PCA10001 v2.1.0 and 2.2.0
  4608. - PCA10004 v2.1.0
  4609. - PCA10005 v2.1.0 and 2.2.0
  4610. - PCA10003 v3.0.0
  4611. Changes:
  4612. - Added partial support for Keil 5 uvprojx files.
  4613. ANT
  4614. - None
  4615. ANT + BLE (Dual stack)
  4616. BLE
  4617. - New module device manager replaces bond manager for storing persistent data
  4618. - Experimental device manager support for s120 (BLE central)
  4619. - S110 serialization solution has been reworked
  4620. - 100% s110 BLE APIs are now serialized
  4621. - S110 support for application concurrent multiprotocol radio access
  4622. - Pstorage module: Added API for doing range updates
  4623. - Experimental: Device firmware upgrade now supports updating both SoftDevice and bootloader for s110
  4624. Proprietary
  4625. - Enhanced ShockBurst: Added nrf_esb_reuse_pid() function to API, giving "reuse payload" functionality.
  4626. - Gazell: Added "suspend" mode enabling sharing of radio and PPI.
  4627. - Gazell: HW resources are released when Gazell is being disabled or entering suspend mode.
  4628. - Gazell: HW resources are reconfigured when Gazell is being enabled or exiting from suspend mode.
  4629. Fixed issues:
  4630. - NRFFOSDK-2542 - SoftDevice related documentation for S110, S120 and S310 BLE stack is not consistent. When looking up SoftDevice application interface or message sequence charts, it is possible that one is looking at incorrect interface. Recommendation hence is to look at SoftDevice headers to ensure correct appplication interface. This is also applicable for Serialization library references. This will be fixed in next release.
  4631. - SDK documentation has been splitted into 4 seperate documents with a common index page.
  4632. ANT
  4633. - None
  4634. ANT + BLE (Dual stack)
  4635. - S310 Heart Rate Relay Example: Bonding does not always function as expected. If bonding is enabled using compiler flag it is recommended to perform service discovery before bonding to minimize chances of unexpected behaviour.
  4636. BLE
  4637. Proprietary
  4638. - Enhanced ShockBurst/Gazell: Received packets in Host/PRX mode with CRC error can no longer return ACK to device.
  4639. - NRFFOSDK-2470: app_timer - Fixed issue where starting and stopping the timer repeatedly caused errors in the module
  4640. Known issues:
  4641. - When flashing from Keil 4, a pop-up might appear stating "Cannot Load Flash Device Description !".
  4642. Solution:
  4643. - Write new flash algorithm settings to the uvopt file.
  4644. Press ALT+F7 to open "Options for Target" dialog.
  4645. Select "Options for Target" -> "Utilities".
  4646. Press "Settings" button to see flashing algorithms.
  4647. Verify that "nRF51xxx" is in the list of flashing algorithms, if not add it by pressing the "Add" button.
  4648. Exit and save settings by pressing "OK". This is also important to do if you did find the "nRF51xxx" in the list of flashing algorithms.
  4649. - If you have an existing KEIL project target set to use device variant "nRF51", a pop-up might appear stating that you have to "update your device selection".
  4650. Solution:
  4651. Press ALT+F7 to open "Options for Target" dialog.
  4652. Select "Options for Target" -> "Device".
  4653. Choose "Nordic nRF51 Series Devices" from the Database list.
  4654. Select the variant of the nRF51 chip that is used for the KEIL project target.
  4655. - When using J-Link software prior to version 4.66, a warning might appear when entering "Options for Target" -> "Debug" -> "Settings". The warning indicates that the device is unknown to the specific version of the J-Link software.
  4656. Solution: Upgrade J-Link software to version 4.66 or later.
  4657. - Segger J-Link software has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
  4658. - On some Windows XP machines, J-Link CDC installer fails producing an error message saying it could not find JLinkCDCDriver_x86.msi.
  4659. Solution: Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
  4660. - NRFFOETT-205 - The nRF51822 installer will not run if no C:\ drive exists
  4661. - NRFFOSDK-236 - When the bundled J-Link OB CDC driver installation dialog appears, the error message "Failed to install driver (Timeout occurred)" might appear . Ignore it.
  4662. - NRFFOSDK-362 - Reset button won't work after programming without cycling the target power.
  4663. - NRFFOSDK-363 - Flashing software using SEGGER is NOT possible when the device is in SYSTEM_OFF mode
  4664. Solution: Wake-up the current application from SYSTEM_OFF before flashing a new application.
  4665. - The DFU over BLE example has been tested to work with a minimum connection interval of 11.25 ms.
  4666. This application will not be able to handle connection intervals lower than 11.25 ms and may undergo a system reset in the middle of a firmware update.
  4667. Workaround: If you face unexpected disconnects during firmware update process, consider increasing the connection interval used by the master.
  4668. ANT
  4669. - NRFFOSDK-366 - ANT-FS host: download sometimes fails when downloading a large file.
  4670. - NRFFOSDK-755 - HRM TX buttons example may report wrong total elapsed time.
  4671. BLE
  4672. - NRFFOSDK-119 - Only the "....\sdk\nrf5822\Board\nrf6310\ble\ble_app_pwr_profiling\","....\sdk\nrf5822\Board\pca10001\ble\ble_app_proximity\ ", and "....\sdk\nrf5822\Board\pca10001\ble\ble_app_hrs\ " applications are power optimized.
  4673. - S120 Examples: Flash clear operation may fail when connected. Impact of this in the S120 examples is that if peer loses the bond and a re-bonding occurs, flash clear fails, and DM_EVT_DEVICE_CONTEXT_STORED event is notified with a failure.
  4674. - Device manager has a few APIs unimplemented. Also documentation providing examples of how API can be used is missing.
  4675. - NRFFOSDK-2824: Device manager (pstorage) doesn't support update of bond split across two pages.
  4676. Proprietary:
  4677. - NRFFOSDK-1769: Not all examples have makefiles, nor have they been tested with the new toolchain. Expect minor compilation issues.
  4678. - Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
  4679. - Temperature example does not give sane output values. This is hardware related issue described in PAN_028 and will be fixed in future silicon.
  4680. - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
  4681. - The legacy examples do not use "payload in ACK".
  4682. - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
  4683. - The examples do not use dynamic payload length.
  4684. The legacy examples need to add the following in order to work with the nRF51 examples:
  4685. hal_nrf_setup_dynamic_payload(0xFF);
  4686. hal_nrf_enable_dynamic_payload(true);
  4687. hal_nrf_enable_ack_payload(true);
  4688. hal_nrf_set_rf_channel(10);
  4689. In addition, the legacy PTX example must add code for handling the payloads received in ACK.
  4690. - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and channel tables require adjustment.
  4691. - Timeslot period: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
  4692. - Channel table: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
  4693. - Gazell does not support "Low Power Host mode" (Host mode 1).
  4694. ========================================================================
  4695. nRF51 SDK v. 5.2.0
  4696. ------------------
  4697. Following toolchains/devices have been used for testing and verification:
  4698. - ARM: MDK-ARM Version 5.10.x
  4699. - GCC: gcc-arm-embedded 4.7 2013q1
  4700. - IAR: Embedded Workbench for ARM 6.60
  4701. - Windows XP SP3 32 bit
  4702. - Windows 7 SP1 64 bit
  4703. - Windows 8.0/8.1
  4704. - The BLE example applications for HID Keyboard and HID Mouse have been tested with HID host running on Windows 8.1.
  4705. Tested with devices:
  4706. - nRF51822 QFAAG0
  4707. - nRF51822 QFAAGC
  4708. - nRF51822 QFAAFA
  4709. - nRF51422 QFAAE0
  4710. For others devices, use SDK 4.x.x
  4711. Supported SoftDevices:
  4712. - S110 6.0.0
  4713. - S120 1.0.0-1.alpha
  4714. - S210 3.0.0
  4715. - S310 1.0.0
  4716. Supported boards:
  4717. - PCA10000 v1.0 (Only for use with Master Emulator)
  4718. - PCA10000 v2.1.0 and 2.2.0
  4719. - PCA10001 v2.1.0 and 2.2.0
  4720. - PCA10004 v2.1.0
  4721. - PCA10005 v2.1.0 and 2.2.0
  4722. - PCA10003 v3.0.0
  4723. Changes:
  4724. - app_button module: Detect both push and release, instead of just push
  4725. - Persistent storage (pstorage) module:
  4726. - Support for writing to used memory regions with the new update API.
  4727. - Support for clearing single blocks.
  4728. - Added get_status API to identify pending flash operations.
  4729. ANT
  4730. - None
  4731. ANT + BLE (Dual stack)
  4732. - Support for s310 SoftDevice added.
  4733. - Heart rate monitor example project support added.
  4734. - Added Device Firmware Update (DFU) example for s310.
  4735. BLE
  4736. - New experimental device manager module for managing bonds on s120.
  4737. - Beacon example added. It is available at nrf51822\Board\nrf6310\s110\ble_app_beacon
  4738. and nrf51822\Board\pca10001\s110\ble_app_beacon.
  4739. - Multiple GATT clients: The Database Discovery module available in
  4740. nrf51822\Board\nrf6310\s120\experimental\common folder can now be used to
  4741. discover two GATT services at the peer.
  4742. - Serialized s110 advertisement example has been removed.
  4743. - HID Keyboard application modified to send upper case letters on pressing Button 2.
  4744. Proprietary
  4745. - None
  4746. Fixed issues:
  4747. ANT
  4748. - None
  4749. ANT + BLE (Dual stack)
  4750. - None
  4751. BLE
  4752. - NRFFOSDK-1897: Glucose: Fixed bug where authentication was not initiated when connecting to already bonded master.
  4753. - NRFFOSDK-2318: Glucose Feature values had incorrect values for 'General Device Fault Supported', 'Time fault Supported', and 'Multiple Bond Supported'. This has been fixed.
  4754. - ANCS: The advertising interval of the Apple Notification Center Client example application is reduced to 25 ms. Previously it was 250 ms which made it hard to discover from the peer device.
  4755. - NRFFOSDK-2357: Blood Pressure application changed to check if indication is enabled before attempting to send an indication to the peer
  4756. - NRFFOSDK-2336: HID Keyboard application fixed to send the correct Input Report bytes when in Boot Mode.
  4757. - Fixed issue in bond manager related to clearing of whitelist on deleting all bonds.
  4758. - NRFFOSDK-2162: New pstorage get_status API used to allow for flash access to be completed before system off.
  4759. Proprietary
  4760. - NRFFOETT-644 - Gazell / ESB: Fixed some documentation issues.
  4761. Known issues:
  4762. - NRFFOSDK-2542 - SoftDevice related documentation for S110, S120 and S310 BLE stack is not consistent. When looking up SoftDevice application interface or message sequence charts, it is possible that one is looking at incorrect interface. Recommendation hence is to look at SoftDevice headers to ensure correct appplication interface. This is also applicable for Serialization library references. This will be fixed in next release.
  4763. - When flashing from Keil 4, a pop-up might appear stating "Cannot Load Flash Device Description !".
  4764. Solution:
  4765. - Write new flash algorithm settings to the uvopt file.
  4766. Press ALT+F7 to open "Options for Target" dialog.
  4767. Select "Options for Target" -> "Utilities".
  4768. Press "Settings" button to see flashing algorithms.
  4769. Verify that "nRF51xxx" is in the list of flashing algorithms, if not add it by pressing the "Add" button.
  4770. Exit and save settings by pressing "OK". This is also important to do if you did find the "nRF51xxx" in the list of flashing algorithms.
  4771. - If you have an existing KEIL project target set to use device variant "nRF51", a pop-up might appear stating that you have to "update your device selection".
  4772. Solution:
  4773. Press ALT+F7 to open "Options for Target" dialog.
  4774. Select "Options for Target" -> "Device".
  4775. Choose "Nordic nRF51 Series Devices" from the Database list.
  4776. Select the variant of the nRF51 chip that is used for the KEIL project target.
  4777. - When using J-Link software prior to version 4.66, a warning might appear when entering "Options for Target" -> "Debug" -> "Settings". The warning indicates that the device is unknown to the specific version of the J-Link software.
  4778. Solution: Upgrade J-Link software to version 4.66 or later.
  4779. - Segger J-Link software has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
  4780. - On some Windows XP machines, J-Link CDC installer fails producing an error message saying it could not find JLinkCDCDriver_x86.msi.
  4781. Solution: Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
  4782. - NRFFOETT-205 - The nRF51822 installer will not run if no C:\ drive exists
  4783. - NRFFOSDK-236 - When the bundled J-Link OB CDC driver installation dialog appears, the error message "Failed to install driver (Timeout occurred)" might appear . Ignore it.
  4784. - NRFFOSDK-362 - Reset button won't work after programming without cycling the target power.
  4785. - NRFFOSDK-363 - Flashing software using SEGGER is NOT possible when the device is in SYSTEM_OFF mode
  4786. Solution: Wake-up the current application from SYSTEM_OFF before flashing a new application.
  4787. - The DFU over BLE example has been tested to work with a minimum connection interval of 11.25 ms.
  4788. This application will not be able to handle connection intervals lower than 11.25 ms and may undergo a system reset in the middle of a firware update.
  4789. Workaround: If you face unexpected disconnects during firmware update process, consider increasing the connection interval used by the master.
  4790. ANT
  4791. - NRFFOSDK-366 - ANT-FS host: download sometimes fails when downloading a large file.
  4792. - NRFFOSDK-755 - HRM TX buttons example may report wrong total elapsed time.
  4793. ANT + BLE (Dual stack)
  4794. - S310 Heart Rate Relay Example: Bonding does not always function as expected. If bonding is enabled using compiler flag it is recommended to perform service discovery before bonding to minimize chances of unexpected behavior.
  4795. BLE
  4796. - NRFFOSDK-119 - Only the "....\sdk\nrf5822\Board\nrf6310\ble\ble_app_pwr_profiling\","....\sdk\nrf5822\Board\pca10001\ble\ble_app_proximity\ ", and "....\sdk\nrf5822\Board\pca10001\ble\ble_app_hrs\ " applications are power optimized.
  4797. - NRFFOSDK-472 - Bonding information in flash are not erased during programming of a new application.
  4798. (If the bonding information is not erased manually - by pressing button 1 during start-up - the new application might assert. )
  4799. - S120 Examples: Flash clear operation may fail when connected. Impact of this in the S120 examples is that if peer loses the bond and a re-bonding occurs, flash clear fails, and DM_EVT_DEVICE_CONTEXT_STORED event is notified with a failure.
  4800. - Device manager is an experimental module and has a few APIs unimplemented. Also documentation providing examples of how API can be used is missing.
  4801. Proprietary:
  4802. - NRFFOSDK-1769: Not all examples have makefiles, nor have they been tested with the new toolchain. Expect minor compilation issues.
  4803. - Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
  4804. - Temperature example does not give sane output values. This is hardware related issue described in PAN_028 and will be fixed in future silicon.
  4805. - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
  4806. - The legacy examples do not use "payload in ACK".
  4807. - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
  4808. - The examples do not use dynamic payload length.
  4809. The legacy examples need to add the following in order to work with the nRF51 examples:
  4810. hal_nrf_setup_dynamic_payload(0xFF);
  4811. hal_nrf_enable_dynamic_payload(true);
  4812. hal_nrf_enable_ack_payload(true);
  4813. hal_nrf_set_rf_channel(10);
  4814. In addition, the legacy PTX example must add code for handling the payloads received in ACK.
  4815. - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and channel tables require adjustment.
  4816. - Timeslot period: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
  4817. - Channel table: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
  4818. - Gazell does not support "Low Power Host mode" (Host mode 1).
  4819. ========================================================================
  4820. nRF51 SDK v. 5.1.0
  4821. ------------------
  4822. Following toolchains/devices have been used for testing and verification:
  4823. - ARM: MDK-ARM Version 5.0.5.x
  4824. - GCC: gcc-arm-embedded 4.7 2013q1
  4825. - IAR: Embedded Workbench for ARM 6.60
  4826. - Windows XP SP3 32 bit
  4827. - Windows 7 SP1 64 bit
  4828. - Windows 8.0/8.1
  4829. - The BLE example applications for HID Keyboard and HID Mouse have been tested with HID host running on Windows 8.1.
  4830. Tested with devices:
  4831. - nRF51822 QFAAGC (For others, use SDK 4.x.x)
  4832. - nRF51822 QFAAFA (For others, use SDK 4.x.x)
  4833. - nRF51422 QFAADA (For others, use SDK 4.x.x)
  4834. Supported SoftDevices:
  4835. - S110 6.0.0
  4836. - S120 0.8.0-2.alpha
  4837. - S210 3.0.0-3.beta
  4838. - S310 1.0.0-2.alpha
  4839. Supported boards:
  4840. - PCA10000 v1.0 (Only for use with Master Emulator)
  4841. - PCA10000 v2.1.0 and 2.2.0
  4842. - PCA10001 v2.1.0 and 2.2.0
  4843. - PCA10004 v2.1.0
  4844. - PCA10005 v2.1.0 and 2.2.0
  4845. Changes:
  4846. - Moved and renamed SoftDevice header folders:
  4847. from nrf51822/Include/ble/softdevice to nrf51822/Include/s110
  4848. from nrf51422/Include/ble/softdevice to nrf51422/Include/s210
  4849. - Added SoftDevice headers for s120 and s310 at:
  4850. nrf51822/Include/s120
  4851. nrf51422/Include/s310
  4852. - Moved ANT examples from nrf51422/Board/<board name>/ant to nrf51422/Board/<board name>/s210
  4853. - Moved s110 SoftDevice examples from nrf51822/Board/<board name>/ble to nrf51822/Board/<board name>/s110
  4854. - Added folder for s310 examples in nrf51422/Board/<board name>/s310
  4855. - Added folder for s120 SoftDevice examples in nrf51822/Board/<board name>/s120
  4856. ANT
  4857. - The flash layout settings of all ANT examples have been adapted to suit the new flash layout of S210 SoftDevice.
  4858. BLE
  4859. - Added experimental Multilink (up to 8) Central example which uses s120 SoftDevice.
  4860. - Added experimental Heart Rate collector example which uses s120 SoftDevice.
  4861. - Added prototype iBeacon example.
  4862. Proprietary
  4863. Fixed issues:
  4864. - NRFFOETT-671: Added support for creating new nRF51 projects in Keil 5.
  4865. ANT
  4866. - NRFFOETT-438: The API documentation of S210 SoftDevice is now correctly structured in the SDK documentation.
  4867. BLE
  4868. Proprietary
  4869. Known issues:
  4870. - When flashing from Keil 4, a pop-up might appear stating "Cannot Load Flash Device Description !".
  4871. Solution:
  4872. - Write new flash algorithm settings to the uvopt file.
  4873. Press ALT+F7 to open "Options for Target" dialog.
  4874. Select "Options for Target" -> "Utilities".
  4875. Press "Settings" button to see flashing algorithms.
  4876. Verify that "nRF51xxx" is in the list of flashing algorithms, if not add it by pressing the "Add" button.
  4877. Exit and save settings by pressing "OK". This is also important to do if you did find the "nRF51xxx" in the list of flashing algorithms.
  4878. - If you have an existing KEIL project target set to use device variant "nRF51", a pop-up might appear stating that you have to "update your device selection".
  4879. Solution:
  4880. Press ALT+F7 to open "Options for Target" dialog.
  4881. Select "Options for Target" -> "Device".
  4882. Choose "Nordic nRF51 Series Devices" from the Database list.
  4883. Select the variant of the nRF51 chip that is used for the KEIL project target.
  4884. - When using J-Link software prior to version 4.66, a warning might appear when entering "Options for Target" -> "Debug" -> "Settings". The warning indicates that the device is unknown to the specific version of the J-Link software.
  4885. Solution: Upgrade J-Link software to version 4.66 or later.
  4886. - Segger J-Link software has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
  4887. - On some Windows XP machines, J-Link CDC installer fails producing an error message saying it could not find JLinkCDCDriver_x86.msi.
  4888. Solution: Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
  4889. - NRFFOETT-205 - The nRF51822 installer will not run if no C:\ drive exists
  4890. - NRFFOSDK-236 - When the bundled J-Link OB CDC driver installation dialog appears, the error message "Failed to install driver (Timeout occurred)" might appear . Ignore it.
  4891. - NRFFOSDK-362 - Reset button won't work after programming without cycling the target power.
  4892. - NRFFOSDK-363 - Flashing software using SEGGER is NOT possible when the device is in SYSTEM_OFF mode
  4893. Solution: Wake-up the current application from SYSTEM_OFF before flashing a new application.
  4894. - The DFU over BLE example has been tested to work with a minimum connection interval of 11.25 ms.
  4895. This application will not be able to handle connection intervals lower than 11.25 ms and may undergo a system reset in the middle of a firware update.
  4896. Workaround: If you face unexpected disconnects during firmware update process, consider increasing the connection interval used by the master.
  4897. ANT
  4898. - NRFFOSDK-366 - ANT-FS host: download sometimes fails when downloading a large file.
  4899. - NRFFOSDK-755 - HRM TX buttons example may report wrong total elapsed time.
  4900. BLE
  4901. - NRFFOSDK-119 - Only the "....\sdk\nrf5822\Board\nrf6310\ble\ble_app_pwr_profiling\","....\sdk\nrf5822\Board\pca10001\ble\ble_app_proximity\ ", and "....\sdk\nrf5822\Board\pca10001\ble\ble_app_hrs\ " applications are power optimized.
  4902. - NRFFOSDK-472 - Bonding information in flash are not erased during programming of a new application.
  4903. (If the bonding information is not erased manually - by pressing button 1 during start-up - the new application might assert. )
  4904. - NRFFOSDK-2162 - Heart Rate application for PCA10001 possible inconsistent system attributes on power cycle. It is possible that the system attributes on power cycle are not consistent with the ones updated during previous connection.
  4905. Proprietary:
  4906. - NRFFOSDK-1769: Not all examples have makefiles, nor have they been tested with the new toolchain. Expect minor compilation issues.
  4907. - Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
  4908. - Temperature example does not give sane output values. This is hardware related issue described in PAN_028 and will be fixed in future silicon.
  4909. - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
  4910. - The legacy examples do not use "payload in ACK".
  4911. - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
  4912. - The examples do not use dynamic payload length.
  4913. The legacy examples need to add the following in order to work with the nRF51 examples:
  4914. hal_nrf_setup_dynamic_payload(0xFF);
  4915. hal_nrf_enable_dynamic_payload(true);
  4916. hal_nrf_enable_ack_payload(true);
  4917. hal_nrf_set_rf_channel(10);
  4918. In addition, the legacy PTX example must add code for handling the payloads received in ACK.
  4919. - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and channel tables require adjustment.
  4920. - Timeslot period: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
  4921. - Channel table: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
  4922. - Gazell does not support "Low Power Host mode" (Host mode 1).
  4923. ========================================================================
  4924. nRF51 SDK v. 5.0.0
  4925. ------------------
  4926. Following toolchains/devices have been used for testing and verification:
  4927. - ARM: MDK-ARM Version 4.72.1.0
  4928. - GCC: gcc-arm-embedded 4.7 2013q1
  4929. - IAR: embedded workbench for ARM 6.60
  4930. - Windows XP SP3 32 bit
  4931. - Windows 7 SP1 64 bit
  4932. - Windows 8.0/8.1
  4933. - The BLE example applications for HID Keyboard and HID Mouse have been tested with HID host running on Windows 8.1.
  4934. Tested with devices:
  4935. - nRF51822 QFAAGC (For others, use SDK 4.x.x)
  4936. - nRF51822 QFAAFA (For others, use SDK 4.x.x)
  4937. - nRF51422 QFAADA (For others, use SDK 4.x.x)
  4938. Supported SoftDevices:
  4939. - S110 6.0.0-3 Beta
  4940. - Expected to be Compatible with SoftDevice S110 V6.0.0 production version
  4941. Supported boards:
  4942. - PCA10000 v1.0 (Only for use with Master Emulator)
  4943. - PCA10000 v2.1.0 and 2.2.0
  4944. - PCA10001 v2.1.0 and 2.2.0
  4945. - PCA10004 v2.1.0
  4946. - PCA10005 v2.1.0
  4947. NOTE: The ANT examples in this release will only work on nRF51422 QFAADA engineering samples.
  4948. Currently no official boards/kits exist that work with these examples.
  4949. Changes:
  4950. - Added pstorage module for handling asynchronous non-volatile memory (flash) access via SoftDevice API
  4951. - Existing BLE event handler has been extended into the new SoftDevice handler module. The new SoftDevice handler module allows for fetching SoC, BLE and ANT events
  4952. - Restructured documentation
  4953. ANT
  4954. BLE
  4955. - Changes for support of S110 V6.0.0-3 Beta
  4956. - Added Apple Notification Center in experimental
  4957. Proprietary
  4958. - SPI slave driver and example code added
  4959. - Include new ESB library which uses the same peripherals as the S110 SoftDevice
  4960. Fixed issues:
  4961. ANT
  4962. BLE
  4963. Proprietary
  4964. Known issues:
  4965. - Creating a blank project with Keil V5.0 it is not possible to choose the nRF51 series.
  4966. Solution:
  4967. Start new projects by making a copy of any existing keil project from the SDK
  4968. - If you have an existing KEIL project target set to use device variant "nRF51", a pop-up might appear stating that you have to "update your device selection".
  4969. Solution:
  4970. Press ALT+F7 to open "Options for Target" dialog.
  4971. Select "Options for Target" -> "Device".
  4972. Choose "Nordic nRF51 Series Devices" from the Database list.
  4973. Select the variant of the nRF51 chip that is used for the KEIL project target.
  4974. - When using J-Link software prior to version 4.66, a warning might appear when entering "Options for Target" -> "Debug" -> "Settings". The warning indicates that the device is unknown to the specific version of the J-Link software.
  4975. Solution: Upgrade J-Link software to version 4.66 or later.
  4976. - Segger J-Link software has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
  4977. - On some Windows XP machines, J-Link CDC installer fails producing an error message saying it could not find JLinkCDCDriver_x86.msi.
  4978. Solution: Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
  4979. - NRFFOETT-205 - The nRF51822 installer will not run if no C:\ drive exists
  4980. - NRFFOSDK-236 - When the bundled J-Link OB CDC driver installation dialog appears, the error message "Failed to install driver (Timeout occurred)" might appear . Ignore it.
  4981. - NRFFOSDK-362 - Reset button won't work after programming without cycling the target power.
  4982. - NRFFOSDK-363 - Flashing software using SEGGER is NOT possible when the device is in SYSTEM_OFF mode
  4983. Solution: Wake-up the current application from SYSTEM_OFF before flashing a new application.
  4984. - The DFU over BLE example has been tested to work with a minimum connection interval of 11.25 ms.
  4985. This application will not be able to handle connection intervals lower than 11.25 ms and may undergo a system reset in the middle of a firware update.
  4986. Workaround: If you face unexpected disconnects during firmware update process, consider increasing the connection interval used by the master.
  4987. ANT
  4988. - NRFFOETT-438 - Documentation on S210 SoftDevice API wrongly structured. All SoftDevice functions appear as SVCALL in the Doxygen page.
  4989. - NRFFOSDK-366 - ANT-FS host: download sometimes fails when downloading a large file.
  4990. - NRFFOSDK-755 - HRM TX buttons example may report wrong total elapsed time.
  4991. BLE
  4992. - NRFFOSDK-119 - Only the "....\sdk\nrf5822\Board\nrf6310\ble\ble_app_pwr_profiling\","....\sdk\nrf5822\Board\pca10001\ble\ble_app_proximity\ ", and "....\sdk\nrf5822\Board\pca10001\ble\ble_app_hrs\ " applications are power optimized.
  4993. - NRFFOSDK-472 - Bonding information in flash are not erased during programming of a new application.
  4994. (If the bonding information is not erased manually - by pressing button 1 during start-up - the new application might assert. )
  4995. - NRFFOSDK-2162 - Heart Rate application for PCA10001 possible inconsistent system attributes on power cycle. It is possible that the system attributes on power cycle are not consistent with the ones updated during previous connection.
  4996. Proprietary:
  4997. - NRFFOSDK-1769: Not all examples have makefiles, nor have they been tested with the new toolchain. Expect minor compilation issues.
  4998. - Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
  4999. - Temperature example does not give sane output values. This is hardware related issue described in PAN_028 and will be fixed in future silicon.
  5000. - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
  5001. - The legacy examples do not use "payload in ACK".
  5002. - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
  5003. - The examples do not use dynamic payload length.
  5004. The legacy examples need to add the following in order to work with the nRF51 examples:
  5005. hal_nrf_setup_dynamic_payload(0xFF);
  5006. hal_nrf_enable_dynamic_payload(true);
  5007. hal_nrf_enable_ack_payload(true);
  5008. hal_nrf_set_rf_channel(10);
  5009. In addition, the legacy PTX example must add code for handling the payloads received in ACK.
  5010. - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and channel tables require adjustment.
  5011. - Timeslot period: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
  5012. - Channel table: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
  5013. - Gazell does not support "Low Power Host mode" (Host mode 1).
  5014. ========================================================================
  5015. nRF51 SDK v. 4.4.2
  5016. ------------------
  5017. Following toolchains/devices have been used for testing and verification:
  5018. - ARM: MDK-ARM Version 4.72.1.0
  5019. - GCC: gcc-arm-embedded 4.7 2013q1
  5020. - IAR: embedded workbench for ARM 6.60
  5021. - N51822 QFAACA on PCA10004 module on nRF6310 motherboard
  5022. - N51822 QFAAFA on PCA10005 module on nRF6310 motherboard
  5023. - Windows XP SP3 32 bit
  5024. - Windows 7 SP1 64 bit
  5025. - Windows 8.0/8.1
  5026. - BLE SoftDevice Version : s110_nrf51822_5.2.1
  5027. - The BLE example applications for HID Keyboard and HID Mouse have been tested with HID host running on Windows 8.1.
  5028. - Supported boards in nRF51 SDK v. 4.4.2:
  5029. - PCA10000 v1.0 (Only for use with Master Emulator)
  5030. - PCA10000 v2.0.0
  5031. - PCA10001 v1.0 through v2.1.0
  5032. - PCA10003 v1.0 through v2.0.0
  5033. - PCA10004 v1.0 through v2.0.0
  5034. - PCA10005 v1.0 through v2.1.0
  5035. - PCA10006 v1.0 through v2.0.0
  5036. - PCA10007 v1.0 through v2.0.0
  5037. - PCA10014 v1.0
  5038. - PCA10018 v1.0.0 through v1.1.0
  5039. Changes:
  5040. ANT
  5041. None
  5042. BLE
  5043. - Removed ble_dfu_send_hex.exe from device_firmware_update experimental folder. Similar feature is now available in latest Master Control Panel application.
  5044. Proprietary
  5045. None
  5046. Fixed issues:
  5047. - NRFFOSDK-1750 - Added PAN-11 workaround in PPI, PWM, and Simple PWM motor control examples.
  5048. - NRFFOSDK-1633 - Added PAN-56 workaround in TWI master driver.
  5049. ANT
  5050. None
  5051. BLE
  5052. - NRFFOSDK-1025 - The field max_len in rep_char_add signature in ble_hids.c has been corrected to uint16_t.
  5053. - NRFFOSDK-1921 - In case IRK is distrubuted by a peer using public address whitelist is updated for both IRK and address.
  5054. - NRFFOSDK-1899 - System attributes re-initialized on rebonding.
  5055. - NRFFOSDK-1900 - Removed false detection of DIV collisions.
  5056. - NRFFOSDK-1993 - Increased buffer in hci_mem_pool_internal.h fix the serialization examples.
  5057. Proprietary
  5058. None
  5059. Known issues:
  5060. - If you have an existing KEIL project target set to use device variant "nRF51", a pop-up might appear stating that you have to "update your device selection".
  5061. Solution:
  5062. Press ALT+F7 to open "Options for Target" dialog.
  5063. Select "Options for Target" -> "Device".
  5064. Choose "Nordic nRF51 Series Devices" from the Database list.
  5065. Select the variant of the nRF51 chip that is used for the KEIL project target.
  5066. - When using J-Link software prior to version 4.66, a warning might appear when entering "Options for Target" -> "Debug" -> "Settings". The warning indicates that the device is unknown to the specific version of the J-Link software.
  5067. Solution: Upgrade J-Link software to version 4.66 or later.
  5068. - Segger J-Link software has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
  5069. - On some Windows XP machines, J-Link CDC installer fails producing an error message saying it could not find JLinkCDCDriver_x86.msi.
  5070. Solution: Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
  5071. - NRFFOETT-205 - The nRF51822 installer will not run if no C:\ drive exists
  5072. - NRFFOSDK-236 - When the bundled J-Link OB CDC driver installation dialog appears, the error message "Failed to install driver (Timeout occurred)" might appear . Ignore it.
  5073. - NRFFOSDK-362 - Reset button won't work after programming without cycling the target power.
  5074. - NRFFOSDK-363 - Flashing software using SEGGER is NOT possible when the device is in SYSTEM_OFF mode
  5075. Solution: Wake-up the current application from SYSTEM_OFF before flashing a new application.
  5076. - The DFU over BLE example has been tested to work with a minimum connection interval of 11.25 ms.
  5077. This application will not be able to handle connection intervals lower than 11.25 ms and may undergo a system reset in the middle of a firware update.
  5078. Workaround: If you face unexpected disconnects during firmware update process, consider increasing the connection interval used by the master.
  5079. ANT
  5080. - NRFFOETT-438 - Documentation on S210 SoftDevice API wrongly structured. All SoftDevice functions appear as SVCALL in the Doxygen page.
  5081. - NRFFOSDK-366 - ANT-FS host: download sometimes fails when downloading a large file.
  5082. - NRFFOSDK-755 - HRM TX buttons example may report wrong total elapsed time.
  5083. BLE
  5084. - NRFFOSDK-119 - Only the "....\sdk\nrf5822\Board\nrf6310\ble\ble_app_pwr_profiling\","....\sdk\nrf5822\Board\pca10001\ble\ble_app_proximity\ ", and "....\sdk\nrf5822\Board\pca10001\ble\ble_app_hrs\ " applications are power optimized.
  5085. - NRFFOSDK-472 - Bonding information in flash are not erased during programming of a new application.
  5086. (If the bonding information is not erased manually - by pressing button 1 during start-up - the new application might assert. )
  5087. Proprietary:
  5088. - NRFFOSDK-1769: Not all examples have makefiles, nor have they been tested with the new toolchain. Expect minor compilation issues.
  5089. - Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
  5090. - Temperature example does not give sane output values. This is hardware related issue described in PAN_028 and will be fixed in future silicon.
  5091. - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
  5092. - The legacy examples do not use "payload in ACK".
  5093. - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
  5094. - The examples do not use dynamic payload length.
  5095. The legacy examples need to add the following in order to work with the nRF51 examples:
  5096. hal_nrf_setup_dynamic_payload(0xFF);
  5097. hal_nrf_enable_dynamic_payload(true);
  5098. hal_nrf_enable_ack_payload(true);
  5099. hal_nrf_set_rf_channel(10);
  5100. In addition, the legacy PTX example must add code for handling the payloads received in ACK.
  5101. - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and channel tables require adjustment.
  5102. - Timeslot period: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
  5103. - Channel table: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
  5104. - Gazell does not support "Low Power Host mode" (Host mode 1).
  5105. ========================================================================
  5106. nRF51 SDK v. 4.4.1
  5107. ------------------
  5108. Following toolchains/devices have been used for testing and verification:
  5109. - ARM: MDK-ARM Version 4.71.2
  5110. - GCC: gcc-arm-embedded 4.7 2013q1
  5111. - IAR: embedded workbench for ARM 6.60
  5112. - N51422 QFAACA on PCA10003 evaluation kit board
  5113. - N51822 QFAACA on PCA10004/5 module on nRF6310 motherboard
  5114. - Windows XP SP3 32 bit
  5115. - Windows 7 SP1 64 bit
  5116. - BLE SoftDevice Version : s110_nrf51822_5.2.1
  5117. - The BLE example applications for HID Keyboard and HID Mouse have been tested with HID host running on Windows 8.1 Preview.
  5118. Changes:
  5119. - DFU documentation improved.
  5120. ANT
  5121. None
  5122. BLE
  5123. - NRFFOSDK-1759: Example IAR application for Heart Rate Service added.
  5124. - NRFFOSDK-1271: Speed and Cadence Control Point added to Cycling Speed and Cadence Service.
  5125. Proprietary
  5126. - ESB: Improved tolerance to delayed interrupts.
  5127. Fixed issues:
  5128. - NRFFOSDK-1592: Risk of losing timer interrupts when the resolution of the timer is very high, e.g. 1 ms resolution, is now fixed.
  5129. ANT
  5130. None
  5131. BLE
  5132. - NRFFOETT-399: An IRK is added to the bond manager's whitelist only if the address type of the master is 'resolvable'.
  5133. - NRFFOETT-552: DTM application is now implementing PCN_083
  5134. - NRFFOSDK-1828: Key refresh was triggering a link failure when re-bonding to a master. This is now fixed.
  5135. - NRFFOETT-571: Premature disconnection scenario handling added to bond manager. Previously this was resulting in system attributes of a master to be cleared.
  5136. Proprietary
  5137. - ESB: The nrf_esb_tx_failed() callback function was never called when dynamic acknowledgement was used. This is now fixed.
  5138. Known issues:
  5139. - If you have an existing KEIL project target set to use device variant "nRF51", a pop-up might appear stating that you have to "update your device selection".
  5140. Solution:
  5141. Press ALT+F7 to open "Options for Target" dialog.
  5142. Select "Options for Target" -> "Device".
  5143. Choose "Nordic nRF51 Series Devices" from the Database list.
  5144. Select the variant of the nRF51 chip that is used for the KEIL project target.
  5145. - When using J-Link software prior to version 4.66, a warning might appear when entering "Options for Target" -> "Debug" -> "Settings". The warning indicates that the device is unknown to the specific version of the J-Link software.
  5146. Solution: Upgrade J-Link software to version 4.66 or later.
  5147. - Segger J-Link software has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
  5148. - On some Windows XP machines, J-Link CDC installer fails producing an error message saying it could not find JLinkCDCDriver_x86.msi.
  5149. Solution: Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
  5150. - NRFFOETT-205 - The nRF51822 installer will not run if no C:\ drive exists
  5151. - NRFFOSDK-236 - When the bundled J-Link OB CDC driver installation dialog appears, the error message "Failed to install driver (Timeout occurred)" might appear . Ignore it.
  5152. - NRFFOSDK-362 - Reset button won't work after programming without cycling the target power.
  5153. - NRFFOSDK-363 - Flashing software using SEGGER is NOT possible when the device is in SYSTEM_OFF mode
  5154. Solution: Wake-up the current application from SYSTEM_OFF before flashing a new application.
  5155. - The DFU over BLE example has been tested to work with a minimum connection interval of 11.25 ms.
  5156. This application will not be able to handle connection intervals lower than 11.25 ms and may undergo a system reset in the middle of a firware update.
  5157. Workaround: If you face unexpected disconnects during firmware update process, consider increasing the connection interval used by the master.
  5158. ANT
  5159. - NRFFOETT-438 - Documentation on S210 SoftDevice API wrongly structured. All SoftDevice functions appear as SVCALL in the Doxygen page.
  5160. - NRFFOSDK-366 - ANT-FS host: download sometimes fails when downloading a large file.
  5161. - NRFFOSDK-755 - HRM TX buttons example may report wrong total elapsed time.
  5162. BLE
  5163. - NRFFOSDK-119 - Only the "....\sdk\nrf5822\Board\nrf6310\ble\ble_app_pwr_profiling\","....\sdk\nrf5822\Board\pca10001\ble\ble_app_proximity\ ", and "....\sdk\nrf5822\Board\pca10001\ble\ble_app_hrs\ " applications are power optimized.
  5164. - NRFFOSDK-472 - Bonding information in flash are not erased during programming of a new application.
  5165. (If the bonding information is not erased manually - by pressing button 1 during start-up - the new application might assert. )
  5166. Proprietary:
  5167. - NRFFOSDK-1769: Not all examples have makefiles, nor have they been tested with the new toolchain. Expect minor compilation issues.
  5168. - Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
  5169. - Temperature example does not give sane output values. This is hardware related issue described in PAN_028 and will be fixed in future silicon.
  5170. - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
  5171. - The legacy examples do not use "payload in ACK".
  5172. - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
  5173. - The examples do not use dynamic payload length.
  5174. The legacy examples need to add the following in order to work with the nRF51 examples:
  5175. hal_nrf_setup_dynamic_payload(0xFF);
  5176. hal_nrf_enable_dynamic_payload(true);
  5177. hal_nrf_enable_ack_payload(true);
  5178. hal_nrf_set_rf_channel(10);
  5179. In addition, the legacy PTX example must add code for handling the payloads received in ACK.
  5180. - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and channel tables require adjustment.
  5181. - Timeslot period: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
  5182. - Channel table: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
  5183. - Gazell does not support "Low Power Host mode" (Host mode 1).
  5184. ========================================================================
  5185. nRF51 SDK v. 4.4.0
  5186. ------------------
  5187. Following toolchains/devices have been used for testing and verification:
  5188. - ARM: MDK-ARM Version 4.71.2
  5189. - GCC: gcc-arm-embedded 4.7 2013q1
  5190. - N51422 QFAACA on PCA10003 evaluation kit board
  5191. - N51822 QFAACA on PCA10004/5 module on nRF6310 motherboard
  5192. - Windows XP SP3 32 bit
  5193. - Windows 7 SP1 64 bit
  5194. - BLE SoftDevice Version : s110_nrf51822_5.2.1
  5195. - The BLE example applications for HID Keyboard and HID Mouse have been tested with HID host running on Windows 8.
  5196. Changes:
  5197. - Device Firmware Update example released as part of the main SDK.
  5198. - Added support for image transfer over BLE.
  5199. - HCI Transport Layer used for serial transfer.
  5200. - Note: This example is implemented to work on nRF6310 motherboard because it uses Button 7 to enter bootloader mode on reset.
  5201. This is because Button 0 and Button 1 are used by other SDK applications as wakeup buttons.
  5202. If this example is to be changed to work for evaluation kit board, then this should be taken into consideration.
  5203. - PC application examples for performing firmware updates using HCI and BLE added in nrf6310\device_firmware_updates\experimental folder.
  5204. - UICR Configuration example added to the SDK. It can be found in nrf6310\uicr_config_example folder.
  5205. ANT
  5206. None
  5207. BLE
  5208. - NRFFOETT-507: ble_app_dtm missing bytes on UART fixed.
  5209. - NRFFOSDK-73 : HID keyboard application will now send one key press per notification.
  5210. Proprietary
  5211. None
  5212. Fixed issues:
  5213. ANT
  5214. None
  5215. BLE
  5216. - NRFFOSDK-1432: Buffer overflow issue in ble_bondmngr_sys_attr_store() function fixed.
  5217. - NRFFOETT-339: CCCD values (System Atributes) are now restored on reconnection to a known master only after the link is encrypted.
  5218. Proprietary
  5219. None
  5220. Known issues:
  5221. - If you have an existing KEIL project target set to use device variant "nRF51", a pop-up might appear stating that you have to "update your device selection".
  5222. Solution:
  5223. Press ALT+F7 to open "Options for Target" dialog.
  5224. Select "Options for Target" -> "Device".
  5225. Choose "Nordic nRF51 Series Devices" from the Database list.
  5226. Select the variant of the nRF51 chip that is used for the KEIL project target.
  5227. - When using J-Link software prior to version 4.66, a warning might appear when entering "Options for Target" -> "Debug" -> "Settings". The warning indicates that the device is unknown to the specific version of the J-Link software.
  5228. Solution: Upgrade J-Link software to version 4.66 or later.
  5229. - Segger J-Link software has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
  5230. - On some Windows XP machines, J-Link CDC installer fails producing an error message saying it could not find JLinkCDCDriver_x86.msi.
  5231. Solution: Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
  5232. - NRFFOETT-205 - The nRF51822 installer will not run if no C:\ drive exists
  5233. - NRFFOSDK-236 - When the bundled J-Link OB CDC driver installation dialog appears, the error message "Failed to install driver (Timeout occurred)" might appear . Ignore it.
  5234. - NRFFOSDK-362 - Reset button won't work after programming without cycling the target power.
  5235. - NRFFOSDK-363 - Flashing software using SEGGER is NOT possible when the device is in SYSTEM_OFF mode
  5236. Solution: Wake-up the current application from SYSTEM_OFF before flashing a new application.
  5237. - NRFFOSDK-1774: During SDK installation, chosing custom install location for SDK examples will create Start Menu shortcuts that point to Keil installation location.
  5238. - NRFFOSDK-1592: There is a risk of losing timer interrupts when the resolution of the timer is very high, e.g. 1 ms resolution.
  5239. - The DFU over BLE example has been tested to work with a minimum connection interval of 11.25 ms.
  5240. This application will not be able to handle connection intervals lower than 11.25 ms and may undergo a system reset in the middle of a firware update.
  5241. Workaround: If you face unexpected disconnects during firmware update process, consider increasing the connection interval used by the master.
  5242. ANT
  5243. - NRFFOETT-438 - Documentation on S210 SoftDevice API wrongly structured. All SoftDevice functions appear as SVCALL in the Doxygen page.
  5244. - NRFFOSDK-366 - ANT-FS host: download sometimes fails when downloading a large file.
  5245. - NRFFOSDK-755 - HRM TX buttons example may report wrong total elapsed time.
  5246. BLE
  5247. - NRFFOETT-399 - The bond manager will use distrubted IRK in its whitelist regardless of the type of central's address and should actually use the irk if distributed and if the central's address is not public, and not random_static and not random_private_non_resovable.
  5248. - NRFFOSDK-119 - Only the "....\sdk\nrf5822\Board\nrf6310\ble\ble_app_pwr_profiling\","....\sdk\nrf5822\Board\pca10001\ble\ble_app_proximity\ ", and "....\sdk\nrf5822\Board\pca10001\ble\ble_app_hrs\ " applications are power optimized.
  5249. - NRFFOSDK-472 - Bonding information in flash are not erased during programming of a new application.
  5250. (If the bonding information is not erased manually - by pressing button 1 during start-up - the new application might assert. )
  5251. Proprietary:
  5252. - NRFFOSDK-1769: Not all examples have makefiles, nor have they been tested with the new toolchain. Expect minor compilation issues.
  5253. - Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
  5254. - Temperature example does not give sane output values. This is hardware related issue described in PAN_028 and will be fixed in future silicon.
  5255. - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
  5256. - The legacy examples do not use "payload in ACK".
  5257. - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
  5258. - The examples do not use dynamic payload length.
  5259. The legacy examples need to add the following in order to work with the nRF51 examples:
  5260. hal_nrf_setup_dynamic_payload(0xFF);
  5261. hal_nrf_enable_dynamic_payload(true);
  5262. hal_nrf_enable_ack_payload(true);
  5263. hal_nrf_set_rf_channel(10);
  5264. In addition, the legacy PTX example must add code for handling the payloads received in ACK.
  5265. - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and channel tables require adjustment.
  5266. - Timeslot period: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
  5267. - Channel table: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
  5268. - Gazell does not support "Low Power Host mode" (Host mode 1).
  5269. ========================================================================
  5270. nRF51 SDK v. 4.3.0
  5271. ------------------
  5272. Following toolchains/devices have been used for testing and verification:
  5273. - ARM: MDK-ARM Version 4.60
  5274. - GCC: gcc-arm-embedded 4.7 2013q1
  5275. - N51422 QFAACA on PCA10003 evaluation kit board
  5276. - N51822 QFAACA on PCA10004/5 module on nRF6310 motherboard
  5277. - Windows XP SP3 32 bit
  5278. - Windows 7 SP1 64 bit
  5279. - BLE SoftDevice Version : s110_nrf51822_5.2.0
  5280. Changes:
  5281. - Supported GCC toolchain switched from CodeSourcery to gcc-arm-embedded.
  5282. - New gcc startup file, linker scripts, and makefiles.
  5283. - Updated CMSIS header files in Include/gcc to the latest revision (3.20).
  5284. - Makefile target "all" now runs "clean" and "debug" targets instead of incremental "release" target.
  5285. - nrf.h requires projects to have a define for a chip to enable some needed workarounds.
  5286. - SDK examples now support PCA10000 v2.0.0. To make the examples work on the older PCA10000 v1.0, the UART pins need to be remapped in the pca10000.h header file.
  5287. For v1.0
  5288. #define RX_PIN_NUMBER 3
  5289. #define TX_PIN_NUMBER 1
  5290. #define CTS_PIN_NUMBER 2
  5291. #define RTS_PIN_NUMBER 0
  5292. For v2.0.0
  5293. #define RX_PIN_NUMBER 11
  5294. #define TX_PIN_NUMBER 9
  5295. #define CTS_PIN_NUMBER 10
  5296. #define RTS_PIN_NUMBER 8
  5297. ANT
  5298. - ANT examples have been updated to support the newest UART API.
  5299. BLE
  5300. - HCI Transport Layer from Bluetooth Specification v4.0 introduced for BLE S110 Serialized Applications.
  5301. - BLE S110 Serialization Examples released as part of the main SDK.
  5302. - Updated serialized ble_app_advertising and ble_app_hrs to use app_scheduler.
  5303. - Connection Parameter update module : Added possibility to request different connection parameters multiple times. A new event, BLE_CONN_PARAMS_EVT_SUCCEEDED has been created. Event handler implementation needs to take this into account, especially if they were implemented to trigger a disconnect regardless of the type of event.
  5304. - Added Makefile and Eclipse project file for ble_app_hrs.
  5305. - Changed hard coded flash pages to be FICR CODESIZE dependent.
  5306. Proprietary
  5307. - Gazell:
  5308. - Added Gazell Pairing Host source code and board example. Backwards compatible with nRF24L Gazell Pairing Device and Host modules.
  5309. - Added function nrf_gzll_set_auto_disable(uint32_t num_ticks), to disable Gazell after a number of timeslots.
  5310. - Added function nrf_gzll_get_tick_count().
  5311. - Gazell Pairing Device now uses nrf_gzll_get_tick_count() in order to implement a delay. This reduces current consumption.
  5312. - Default sync_lifetime value has been increased to 3*channel_table_size*number_of_timeslots_per_channel. This improves performance in high-interference environments. Current users who are satisfied with the performance may wish to maintain the minimum value of 1*channel_table_size*number_of_timeslots_per_channel, in order to avoid any slight increase in current consumption.
  5313. - Enhanced ShockBurst:
  5314. - ESB PTX now calls nrf_esb_tx_success() callback instead of nrf_esb_tx_failed() for NOACK packets.
  5315. - Fix in nrf_esb_set_mode()
  5316. - Information concerning backwards compatibility with nRF24L devices has been moved to the User Guide.
  5317. Fixed issues:
  5318. - Examples doing flash writes were not waiting for writes to finish.
  5319. ANT
  5320. - NRFFOSDK-1312 - Changed ANTFS_TRANSMIT_POWER define in antfs.h from 0 to 3. The define previously had an incorrect definition which set the power value to -20dBm instead of 0dBm even though the comment indicated 0dBm.
  5321. BLE
  5322. - NRFFOETT-402 - DFU Bootloader application in experimental project now sets stack pointer correctly before executing reset vector of application.
  5323. Proprietary
  5324. - NRFFOETT-301 - Radio example uses obsolete RADIO_TXPOWER_TXPOWER_Neg40dBm definition.
  5325. - Fixed issue in TWI HW driver. Event was not cleared before waiting it to get cleared.
  5326. - Floating point ABI used by Makefiles was incorrect. Now using mabi-float=soft.
  5327. - Gazell/ESB: Fixed set_mode() functionality.
  5328. - Gazell GCC board examples startup and run correctly with the GCC libraries.
  5329. - A Gazell Device nows stop the RSSI measurement when no ACK is received, improving the base current consumption.
  5330. Known issues:
  5331. - If you have an existing KEIL project target set to use device variant "nRF51", a pop-up might appear stating that you have to "update your device selection".
  5332. Solution:
  5333. Press ALT+F7 to open "Options for Target" dialog.
  5334. Select "Options for Target" -> "Device".
  5335. Choose "Nordic nRF51 Series Devices" from the Database list.
  5336. Select the variant of the nRF51 chip that is used for the KEIL project target.
  5337. - When using J-Link software prior to version 4.66, a warning might appear when entering "Options for Target" -> "Debug" -> "Settings". The warning indicates that the device is unknown to the specific version of the J-Link software.
  5338. Solution: Upgrade J-Link software to version 4.66 or later.
  5339. - Segger J-Link software has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
  5340. - On some Windows XP machines, J-Link CDC installer fails producing an error message saying it could not find JLinkCDCDriver_x86.msi.
  5341. Solution: Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
  5342. - NRFFOETT-205 - The nRF51822 installer will not run if no C:\ drive exists
  5343. - NRFFOSDK-236 - When the bundled J-Link OB CDC driver installation dialog appears, the error message "Failed to install driver (Timeout occurred)" might appear . Ignore it.
  5344. - NRFFOSDK-362 - Reset button won't work after programming without cycling the target power.
  5345. - NRFFOSDK-363 - Flashing software using SEGGER is NOT possible when the device is in SYSTEM_OFF mode
  5346. Solution: Wake-up the current application from SYSTEM_OFF before flashing a new application.
  5347. ANT
  5348. - NRFFOETT-438 - Documentation on S210 SoftDevice API wrongly structured. All SoftDevice functions appear as SVCALL in the Doxygen page.
  5349. - NRFFOSDK-366 - ANT-FS host: download sometimes fails when downloading a large file.
  5350. - NRFFOSDK-755 - HRM TX buttons example may report wrong total elapsed time.
  5351. BLE
  5352. - NRFFOETT-399 - The bond manager will use distrubted IRK in its whitelist regardless of the type of central's address and should actually use the irk if distributed and if the central's address is not public, and not random_static and not random_private_non_resovable.
  5353. - NRFFOSDK-1432 - A buffer overflow has been discovered in the BLE bond manager upon system attributes store. Workaround, define BLE_BONDMNGR_MAX_BONDED_MASTERS in ble_bondmngr_cfg.h to be 1 higher than the number of bond required by the applicaiton.
  5354. - NRFFOSDK-119 - Only the "....\sdk\nrf5822\Board\nrf6310\ble\ble_app_pwr_profiling\","....\sdk\nrf5822\Board\pca10001\ble\ble_app_proximity\ ", and "....\sdk\nrf5822\Board\pca10001\ble\ble_app_hrs\ " applications are power optimized.
  5355. - NRFFOSDK-472 - Bonding information in flash are not erased during programming of a new application.
  5356. (If the bonding information is not erased manually - by pressing button 1 during start-up - the new application might assert. )
  5357. Proprietary:
  5358. - Not all examples have makefiles, nor have they been tested with the new toolchain. Expect minor compilation issues.
  5359. - Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
  5360. - Temperature example does not give sane output values. This is hardware related issue described in PAN_028 and will be fixed in future silicon.
  5361. - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
  5362. - The legacy examples do not use "payload in ACK".
  5363. - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
  5364. - The examples do not use dynamic payload length.
  5365. The legacy examples need to add the following in order to work with the nRF51 examples:
  5366. hal_nrf_setup_dynamic_payload(0xFF);
  5367. hal_nrf_enable_dynamic_payload(true);
  5368. hal_nrf_enable_ack_payload(true);
  5369. hal_nrf_set_rf_channel(10);
  5370. In addition, the legacy PTX example must add code for handling the payloads received in ACK.
  5371. - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and channel tables require adjustment.
  5372. - Timeslot period: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
  5373. - Channel table: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
  5374. - Gazell does not support "Low Power Host mode" (Host mode 1).
  5375. ========================================================================
  5376. nRF51 SDK v. 4.2.0
  5377. ------------------
  5378. Following toolchains/devices have been used for testing and verification:
  5379. - ARM: MDK-ARM Version 4.60
  5380. - N51422 QFAACA on PCA10003 evaluation kit board
  5381. - N51822 QFAACA on PCA10004/5 module on nRF6310 motherboard
  5382. - Windows XP SP3 32 bit
  5383. - Windows 7 SP1 64 bit
  5384. - BLE SoftDevice Version : s110_nrf51822_5.1.0
  5385. Changes:
  5386. ANT
  5387. BLE
  5388. - NRFFOSDK-623 - BLE S110 DFU Bootloader prototype added to experimental folder.
  5389. - NRFFOSDK-996 - Delete of individual bonds in Bond Manager. API extension.
  5390. Validity check of stored bond added to Bond Manager API.
  5391. - NRFFOSDK-745 - Extended BLE S110 Serialized API.
  5392. Added serialized Heartrate example to exprimental folder.
  5393. Proprietary
  5394. Fixed issues:
  5395. - NRFFOSDK-1015 - nRFgo Display lock up after a reset
  5396. ANT
  5397. BLE
  5398. - NRFFOSDK-486 - All applications using bond manager will assert when the maximum number of bonded masters is passed.
  5399. Proprietary
  5400. Known issues:
  5401. - If you have an existing KEIL project target set to use device variant "nRF51", a pop-up might appear stating that you have to "update your device selection".
  5402. Solution:
  5403. Press ALT+F7 to open "Options for Target" dialog.
  5404. Select "Options for Target" -> "Device".
  5405. Choose "Nordic nRF51 Series Devices" from the Database list.
  5406. Select the variant of the nRF51 chip that is used for the KEIL project target.
  5407. - When using J-Link software prior to version 4.66, a warning might appear when entering "Options for Target" -> "Debug" -> "Settings". The warning indicates that the device is unknown to the specific version of the J-Link software.
  5408. Solution: Upgrade J-Link software to version 4.66 or later.
  5409. - Segger J-Link software has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
  5410. - On some Windows XP machines, J-Link CDC installer fails producing an error message saying it could not find JLinkCDCDriver_x86.msi.
  5411. Solution: Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
  5412. - NRFFOETT-205 - The nRF51822 installer will not run if no C:\ drive exists
  5413. - NRFFOSDK-236 - When the bundled J-Link OB CDC driver installation dialog appears, the error message "Failed to install driver (Timeout occurred)" might appear . Ignore it.
  5414. - NRFFOSDK-362 - Reset button won't work after programming without cycling the target power.
  5415. - NRFFOSDK-363 - Flashing software using SEGGER is NOT possible when the device is in SYSTEM_OFF mode
  5416. Solution: Wake-up the current application from SYTEM_OFF before flashing a new application.
  5417. ANT
  5418. - NRFFOSDK-366 - ANT-FS host: download sometimes fails when downloading a large file.
  5419. - NRFFOSDK-755 - HRM TX buttons example may report wrong total elapsed time.
  5420. BLE
  5421. - NRFFOSDK-119 - Only the "....\sdk\nrf5822\Board\nrf6310\ble\ble_app_pwr_profiling\","....\sdk\nrf5822\Board\pca10001\ble\ble_app_proximity\ ", and "....\sdk\nrf5822\Board\pca10001\ble\ble_app_hrs\ " applications are power optimized.
  5422. - NRFFOSDK-472 - Bonding information in flash are not erased during programming of a new application.
  5423. (If the bonding information is not erased manually - by pressing button 1 during start-up - the new application might assert. )
  5424. Proprietary:
  5425. - Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
  5426. - Temperature example does not give sane output values. This is hardware related issue described in PAN_028 and will be fixed in future silicon.
  5427. - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
  5428. - The legacy examples do not use "payload in ACK".
  5429. - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
  5430. - The examples do not use dynamic payload length.
  5431. The legacy examples need to add the following in order to work with the nRF51 examples:
  5432. hal_nrf_setup_dynamic_payload(0xFF);
  5433. hal_nrf_enable_dynamic_payload(true);
  5434. hal_nrf_enable_ack_payload(true);
  5435. hal_nrf_set_rf_channel(10);
  5436. In addition, the legacy PTX example must add code for handling the payloads received in ACK.
  5437. - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and channel tables require adjustment.
  5438. - Timeslot period: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
  5439. - Channel table: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
  5440. - Gazell does not support "Low Power Host mode" (Host mode 1).
  5441. ========================================================================
  5442. nRF51 SDK v. 4.1.0
  5443. ------------------
  5444. Following toolchains/devices have been used for testing and verification:
  5445. - ARM: MDK-ARM Version 4.60
  5446. - N51422 QFAACA on PCA10003 evaluation kit board
  5447. - N51822 QFAACA on PCA10004/5 module on nRF6310 motherboard
  5448. - Windows XP SP3 32 bit
  5449. - Windows 7 SP1 64 bit
  5450. - BLE SoftDevice Version : s110_nrf51822_5.0.0
  5451. Changes:
  5452. - nRF51 device variant removed from KEIL device database and replaced with nRF51 series specific devices.
  5453. - Added nrf6310_experimental folder to the nRF51 SDK which contains examples and modules under development.
  5454. - Experimental version of the SoftDevice S110 serialization API with examples.
  5455. - Removed obsolete Master Emulator firmware from the release (nrf51822\Board\pca10000\ble\master_emulator\MEFW_nRF51822_firmware.hex).
  5456. - Renamed twi_sw_master_example to twi_master_example
  5457. ANT
  5458. BLE
  5459. - Updated SoftDevice S110 specific documentation to include message sequence charts.
  5460. Proprietary
  5461. Fixed issues:
  5462. - NRFFOETT-257 - twi_master_clear_bus() functionality fix done.
  5463. - NRFFOSDK-953 - twi_hw_master.c functionality fix done.
  5464. ANT
  5465. BLE
  5466. - NRFFOSDK-758 - Button 1 does not wake up Bluetooth examples applications. To erase bonding information from system-off mode, press both button 0 and button 1.
  5467. Proprietary
  5468. Known issues:
  5469. - If you have an existing KEIL project target set to use device variant "nRF51", a pop-up might appear stating that you have to "update your device selection".
  5470. Solution:
  5471. Press ALT+F7 to open "Options for Target" dialog.
  5472. Select "Options for Target" -> "Device".
  5473. Choose "Nordic nRF51 Series Devices" from the Database list.
  5474. Select the variant of the nRF51 chip that is used for the KEIL project target.
  5475. - When using J-Link software prior to version 4.66, a warning might appear when entering "Options for Target" -> "Debug" -> "Settings". The warning indicates that the device is unknown to the specific version of the J-Link software.
  5476. Solution: Upgrade J-Link software to version 4.66 or later.
  5477. - Segger J-Link software has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
  5478. - On some Windows XP machines, J-Link CDC installer fails producing an error message saying it could not find JLinkCDCDriver_x86.msi.
  5479. Solution: Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
  5480. - NRFFOETT-205 - The nRF51822 installer will not run if no C:\ drive exists
  5481. - NRFFOSDK-236 - When the bundled J-Link OB CDC driver installation dialog appears, the error message "Failed to install driver (Timeout occurred)" might appear . Ignore it.
  5482. - NRFFOSDK-362 - Reset button won't work after programming without cycling the target power.
  5483. - NRFFOSDK-363 - Flashing software using SEGGER is NOT possible when the device is in SYSTEM_OFF mode
  5484. Solution: Wake-up the current application from SYTEM_OFF before flashing a new application.
  5485. ANT
  5486. - NRFFOSDK-366 - ANT-FS host: download sometimes fails when downloading a large file.
  5487. - NRFFOSDK-755 - HRM TX buttons example may report wrong total elapsed time.
  5488. BLE
  5489. - NRFFOSDK-119 - Only the "....\sdk\nrf5822\Board\nrf6310\ble\ble_app_pwr_profiling\","....\sdk\nrf5822\Board\pca10001\ble\ble_app_proximity\ ", and "....\sdk\nrf5822\Board\pca10001\ble\ble_app_hrs\ " applications are power optimized.
  5490. - NRFFOSDK-472 - Bonding information in flash are not erased during programming of a new application.
  5491. (If the bonding information is not erased manually - by pressing button 1 during start-up - the new application might assert. )
  5492. - NRFFOSDK-486 - All applications using the bond manager will assert when the maximum number of bonded masters is passed. See proximity application documentation.
  5493. Proprietary:
  5494. - Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
  5495. - Temperature example does not give sane output values. This is hardware related issue described in PAN_028 and will be fixed in future silicon.
  5496. - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
  5497. - The legacy examples do not use "payload in ACK".
  5498. - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
  5499. - The examples do not use dynamic payload length.
  5500. The legacy examples need to add the following in order to work with the nRF51 examples:
  5501. hal_nrf_setup_dynamic_payload(0xFF);
  5502. hal_nrf_enable_dynamic_payload(true);
  5503. hal_nrf_enable_ack_payload(true);
  5504. hal_nrf_set_rf_channel(10);
  5505. In addition, the legacy PTX example must add code for handling the payloads received in ACK.
  5506. - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and channel tables require adjustment.
  5507. - Timeslot period: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
  5508. - Channel table: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
  5509. - Gazell does not support "Low Power Host mode" (Host mode 1).
  5510. ========================================================================
  5511. nRF51 SDK v. 4.0.1
  5512. ------------------
  5513. Following toolchains/devices have been used for testing and verification:
  5514. - ARM: MDK-ARM Version 4.60
  5515. - N51422 QFAACA on PCA10006 module on nRF6310 motherboard
  5516. - N51822 QFAACA on PCA10001 evaluation kit board
  5517. - Windows XP SP3 32-bit
  5518. - Windows 7 SP1 64-bit
  5519. - BLE SoftDevice Version : s110_nrf51822_4.0.0-2.beta
  5520. Changes:
  5521. - Adressed poor search functionality in the documentation by upgrading used Doxygen version and adding a CHM version of the documentation.
  5522. Proprietary
  5523. - ESB/Gazell: A hard PLL rampdown is now implemented which shortens the TX to RX switching time to match nRF24L devices.
  5524. Fixed issues:
  5525. - NRFFOSDK-801 - Project memory layout was incorrect for S110 4.0.0 targets.
  5526. - NRFFOETT-249 - gcc_nrf51_s110.ld had wrong SoftDevice size.
  5527. ANT
  5528. BLE
  5529. - NRFFOSDK-807 - Made changes to the default assert handler.
  5530. - NRFFOSDK-800 - Bug when switching between BLE and Gazell mode on buttons presses fixed.
  5531. - NRFFOETT-225 - DTM didn't work with Tescom TC3000C and R&S CBT.
  5532. - NRFFOETT-262 - Evaluation kit BLE examples had button pin pullup resistors disabled.
  5533. - NRFFOSDK-804 - Excluded ble_sps.c and ble_sps.h from release as they have not been fully implemented.
  5534. Proprietary
  5535. - ESB/Gazell: The peripherals are no longer prepared for use by the nrf_esb_init() and nrf_gzll_init() functions. This is performed in the SystemInit() function.
  5536. Known issues:
  5537. - Segger JLink has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
  5538. On some Windows XP machines JLink CDC installer fails with error message saying it could not find JLinkCDCDriver_x86.msi.
  5539. Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
  5540. - NRFFOETT-205 - The nRF51 SDK installer will not run if no C:\ drive exists
  5541. - NRFFOSDK-236 - When the bundled JLink OB CDC driver installation dialog appears, it might pop up an error saying "Failed to install driver (Timeout occurred)". Ignore it.
  5542. - NRFFOSDK-362 - Reset button won't work after programming without cycling the target power
  5543. - NRFFOSDK-363 - Flashing a software using SEGGER is NOT possible when the device is in SYSTEM_OFF mode (implies to wake-up the current application from SYTEM_OFF before flashing a new application)
  5544. ANT
  5545. - NRFFOSDK-366 - ANT-FS host: download some times fails when downloading large file.
  5546. - NRFFOSDK-755 - HRM TX buttons example may report wrong total elapsed time.
  5547. BLE
  5548. - NRFFOSDK-119 - Only the "....\sdk\nrf5822\Board\nrf6310\ble\ble_app_pwr_profiling\","....\sdk\nrf5822\Board\pca10001\ble\ble_app_proximity\ ", and "....\sdk\nrf5822\Board\pca10001\ble\ble_app_hrs\ " applications are power optimized
  5549. - NRFFOSDK-472 - Bonding information in flash are not erased during programming of a new application
  5550. If the bonding information are not erased manually - by pressing button 1 during start-up - the new application might assert.
  5551. - NRFFOSDK-486 - All applications using bond manager will assert when the maximum number of bonded masters is passed - See proximity application documentation.
  5552. - NRFFOSDK-758 - Button 1 does not wake up Bluetooth examples applications. To erase bonding information from system-off mode, press on both button 0 and button 1.
  5553. - NRFFOSDK-759 - Unable to switch to BLE mode from gazell mode in Multiprotocol application
  5554. Proprietary:
  5555. - Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
  5556. - Temperature example does not give sane output values. This is hardware related issue described in PAN_028 and will be fixed in future silicon.
  5557. - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
  5558. - The legacy examples do not use "payload in ACK".
  5559. - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
  5560. - The examples do not use dynamic payload length.
  5561. The legacy examples need to add the following in order to work with the nRF51 examples:
  5562. hal_nrf_setup_dynamic_payload(0xFF);
  5563. hal_nrf_enable_dynamic_payload(true);
  5564. hal_nrf_enable_ack_payload(true);
  5565. hal_nrf_set_rf_channel(10);
  5566. In addition, the legacy PTX example must add code for handling the payloads received in ACK.
  5567. - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and channel tables require adjustment.
  5568. - Timeslot period: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
  5569. - Channel table: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
  5570. - Gazell does not support "Low Power Host mode" (Host mode 1).
  5571. ========================================================================
  5572. nRF51 SDK v. 4.0.0
  5573. -----------------
  5574. Following toolchains/devices have been used for testing and verification:
  5575. - ARM: MDK-ARM Version 4.60
  5576. - N51422 QFAACA on PCA10006 module on nRF6310 motherboard
  5577. - N51822 QFAACA on PCA10001 evaluation kit board
  5578. - Windows XP SP3 32-bit
  5579. - Windows 7 SP1 64-bit
  5580. Changes:
  5581. - NRFFOSDK-192 - Interrupt driven low power UART module added.
  5582. - NRFFOSDK-543 - Set of common modules used by nRF51xxx examples added.
  5583. ANT
  5584. - NRFFOSDK-312 - adapt to renaming of SoftDevice S210 V2.0.0 APIs
  5585. BLE
  5586. - NRFFOSDK-55 - adapt to renaming of SoftDevice S110 V4.0.0 APIs
  5587. Fixed issues:
  5588. - NRFFOSDK-563 - nRF51 SDK installer - Keil CDB not installing correctly on PC's running Win7 w/Asian Locales (prim: Japanese/Chinese).
  5589. ANT
  5590. - NRFFOSDK-484 - HRM TX background pages are not following 65th packet rule according to spec
  5591. BLE
  5592. - NRFFOSDK-361 - System attributes are stored in flash only after disconnect. API ble_bondmngr_sys_attr_store to save system attributes while in a connection is now available.
  5593. Known issues:
  5594. - Segger JLink has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
  5595. On some Windows XP machines JLink CDC installer fails with error message saying it could not find JLinkCDCDriver_x86.msi.
  5596. Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
  5597. - NRFFOETT-205 - The nRF51822 installer will not run if no C:\ drive exists
  5598. - NRFFOSDK-236 - When the bundled JLink OB CDC driver installation dialog appears, it might pop up an error saying "Failed to install driver (Timeout occurred)". Ignore it.
  5599. - NRFFOSDK-362 - Reset button won't work after programming without cycling the target power
  5600. - NRFFOSDK-363 - Flashing a software using SEGGER is NOT possible when the device is in SYSTEM_OFF mode (implies to wake-up the current application from SYTEM_OFF before flashing a new application)
  5601. ANT
  5602. - NRFFOSDK-366 - ANT-FS host: download some times fails when downloading large file.
  5603. - NRFFOSDK-755 - HRM TX buttons example may report wrong total elapsed time.
  5604. BLE
  5605. - NRFFOSDK-119 - Only the "....\sdk\nrf5822\Board\nrf6310\ble\ble_app_pwr_profiling\","....\sdk\nrf5822\Board\pca10001\ble\ble_app_proximity\ ", and "....\sdk\nrf5822\Board\pca10001\ble\ble_app_hrs\ " applications are power optimized
  5606. - NRFFOSDK-472 - Bonding information in flash are not erased during programming of a new application
  5607. If the bonding information are not erased manually - by pressing button 1 during start-up - the new application might assert.
  5608. - NRFFOSDK-486 - All applications using bond manager will assert when the maximum number of bonded masters is passed - See proximity application documentation.
  5609. - NRFFOSDK-758 - Button 1 does not wake up Bluetooth examples applications. To erase bonding information from system-off mode, press on both button 0 and button 1.
  5610. - NRFFOSDK-759 - Unable to switch to BLE mode from gazell mode in Multiprotocol application
  5611. Proprietary:
  5612. - ESB/Gazell: Calling nrf_esb_init() or nrf_gzll_init() will disable usage of the GPIOTE peripheral.
  5613. - Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
  5614. - Temperature example does not give sane output values. This is hardware related issue described in PAN_028 and will be fixed in future silicon.
  5615. - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
  5616. - The legacy examples do not use "payload in ACK".
  5617. - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
  5618. - The examples do not use dynamic payload length.
  5619. The legacy examples need to add the following in order to work with the
  5620. nRF51 examples:
  5621. hal_nrf_setup_dynamic_payload(0xFF);
  5622. hal_nrf_enable_dynamic_payload(true);
  5623. hal_nrf_enable_ack_payload(true);
  5624. hal_nrf_set_rf_channel(10);
  5625. In addition, the legacy PTX example must add code for handling the
  5626. payloads received in ACK.
  5627. - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and channel tables require adjustment.
  5628. - Timeslot period: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
  5629. - Channel table: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
  5630. - Gazell does not support "Low Power Host mode" (Host mode 1).
  5631. ========================================================================
  5632. nRF51 SDK v3.0.0
  5633. -----------------
  5634. Following toolchains/devices have been used for testing and verification:
  5635. - ARM: MDK-ARM Version 4.60
  5636. - Windows XP SP3 32-bit
  5637. - Windows 7 SP1 64-bit
  5638. Changes:
  5639. - Merged nRF514 and nRF518 SDKs
  5640. - system_nrf51.c: GPIOTE peripheral turned on during system init.
  5641. ANT
  5642. - Added ANT bicycle power-only sensor example
  5643. - Added ANT combined bicycle speed and cadence sensor example
  5644. BLE
  5645. - Added Direct Test Mode (DTM) source code
  5646. - Added Glucose Meter service and example
  5647. - Added Health Thermometer service and example
  5648. - Added Blood Pressure service and example
  5649. - Added Proximity example for evaluation board
  5650. - Bond manager and flash module modified to write bonding information in flash while in a connection
  5651. Fixed issues:
  5652. BLE
  5653. -NRFFOSDK-120 - ble_bondmngr_store_bonded_masters function from the bond manager cannot be used when advertising nor when in a connection
  5654. The bonding information are now written while in a connection but not the system attributes information.
  5655. ANT
  5656. - Fixed incorrect event time generation in ANT HRM Tx example
  5657. - NRFFOSDK-469 - ANT - bicycle power rx: doxygen architecture picture defect
  5658. - NRFFOSDK-470 - ANT - bicycle power tx: doxygen architecture picture defect
  5659. Proprietary:
  5660. - twi_hw_master example : Fixed deadlock when stop condition was not issued. (NRFFOETT-167)
  5661. - Bugfix: Polarity of on-air "no_ack" bit inverted to comply with legacy nRF24L01
  5662. hardware ESB.
  5663. Known issues:
  5664. - Segger JLink has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
  5665. On some Windows XP machines JLink CDC installer fails with error message saying it could not find JLinkCDCDriver_x86.msi.
  5666. Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
  5667. - NRFFOSDK-236 - When the bundled JLink OB CDC driver installation dialog appears, it might pop up an error saying "Failed to install driver (Timeout occurred)". Ignore it.
  5668. - NRFFOSDK-362 - Reset button won't work after programming without cycling the target power
  5669. - NRFFOSDK-363 - Flashing a software using SEGGER is NOT possible when the device is in SYSTEM_OFF mode
  5670. (implies to wake-up the current application from SYTEM_OFF before flashing a new application)
  5671. ANT
  5672. - ARCH-506 - ANT-FS host; download could fail when downloading large files.
  5673. - NRFFOSDK-484 - HRM TX background pages are not following 65th packet rule according to spec
  5674. BLE
  5675. - NRFFOSDK-119 - Only the "....\sdk\nrf5822\Board\nrf6310\ble\ble_app_pwr_profiling\","....\sdk\nrf5822\Board\pca10001\ble\ble_app_proximity\ ", and "....\sdk\nrf5822\Board\pca10001\ble\ble_app_hrs\ " applications are power optimized
  5676. - NRFFOSDK-361 - System attributes are stored in flash only after disconnect.
  5677. - NRFFOSDK-472 - Bonding information in flash are not erased during programming of a new application
  5678. If the bonding information are not erased manually - by pressing button 1 during start-up - the new application might assert.
  5679. - NRFFOSDK-486 - All applications using bond manager will assert when the maximum number of bonded masters is passed
  5680. For more information, see proximity application documentation.
  5681. Proprietary:
  5682. - ESB/Gazell: Calling nrf_esb_init() or nrf_gzll_init() will disable usage of the GPIOTE peripheral.
  5683. - Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
  5684. - Temperature example does not give sane output values. This is hardware related issue described in PAN_028 and will be fixed in future silicon.
  5685. - The nRF24Lxx ESB examples found in the legacy nRFready SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
  5686. - The legacy examples do not use "payload in ACK".
  5687. - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
  5688. - The examples do not use dynamic payload length.
  5689. The legacy examples need to add the following in order to work with the
  5690. nRF51 examples:
  5691. hal_nrf_setup_dynamic_payload(0xFF);
  5692. hal_nrf_enable_dynamic_payload(true);
  5693. hal_nrf_enable_ack_payload(true);
  5694. hal_nrf_set_rf_channel(10);
  5695. In addition, the legacy PTX example must add code for handling the
  5696. payloads received in ACK.
  5697. - The Gazell Link Layer examples are not fully "out of the box" compatible with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx devices. The timeslot periods and channel tables require adjustment.
  5698. - Timeslot period: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
  5699. - Channel table: Edit gzll_params.h file used in the nRF24Lxx projects, or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
  5700. - Gazell does not support "Low Power Host mode" (Host mode 1).
  5701. Notification ANT:
  5702. - This is last release that will support N51422 QFAACA (ANT). Next release will contain API changes.
  5703. ========================================================
  5704. Old release notes from before SDK merge
  5705. ========================================================
  5706. nRF518 SDK v2.0.0
  5707. -----------------
  5708. Following toolchains/devices have been used for testing and verification:
  5709. - ARM: MDK-ARM Version 4.60
  5710. - N51822 QFAACA on PCA10000 evaluation kit USB dongle
  5711. - N51822 QFAACA on PCA10001 evaluation kit board
  5712. - N51822 QFAACA on PCA10004 module on nRF6310 motherboard
  5713. - Windows XP SP3 32-bit
  5714. - Windows 7 SP1 64-bit
  5715. Bluetooth:
  5716. - Bluetooth Low Energy SoftDevice S110_nRF51822_2.0.0_alpha1
  5717. Gazell / ESB libraries on-air compatible with the following SDKs for legacy nRF24Lxx devices:
  5718. - nRFgo SDK 2.3.0
  5719. - nRFready Desktop 1.2.3
  5720. Changes:
  5721. Bluetooth:
  5722. - Adapted examples for updated S110 API (S110_nRF51822_2.0.0_alpha1).
  5723. - Added Find Me (Immediate Alert Service as client) to Proximity Application.
  5724. - Added Alert Notification (client) service and example.
  5725. - Added Cycling Speed and Cadence service and example.
  5726. - Added Running Speed and Cadence service and example.
  5727. - Bond Manager modified to add Whitelist handling and CRC verification of flash.
  5728. - Bond Manager usage added to all examples except for power profiling application.
  5729. - Use of Whitelist added to Proximity, HID Mouse and HID Keyboard examples.
  5730. - Use of directed advertisement added to HID Mouse and HID Keyboard examples.
  5731. - Timer Module refactored.
  5732. Proprietary:
  5733. - Added nRF24L series address conversion functions to radio_example.
  5734. - Added support for GCC to nRF51 Code Examples, ESB and Gazell examples.
  5735. - Examples no longer use deprecated PERPOWER register.
  5736. - Disabled "Download to flash" and "Verify Code Download" in JLink debug Download Options.
  5737. - All SDK release notes are now in this file.
  5738. - Added hardware flow control option to simple_uart.
  5739. - Fixed compilation problems with Keil ARM MDK v4.60 and ram retention, temperature and blinky examples.
  5740. - debouncer_example, ppi_example and timer_example now explicitly set timer bitmode.
  5741. - keil_arm_uv4.lnt include folder changed from C:\Keil\ARM\RV31\INC to C:\Keil\ARM\ARMCC\INC.
  5742. - Corrected location of SFR files in UV projects.
  5743. - ESB: ESB PRX transceiver operations are shorted, removing continuous wave transmission and improving speed and current consumption.
  5744. - ESB: PRX starts listening immediately after sending an ACK, no longer waiting for the next timeslot.
  5745. - ESB: The NOACK bit is changed to an ACK bit to ensure compatibility with L01 radios. The L01 product specification is incorrect, only devices using dynamic ack will see this.
  5746. - ESB: esb_is_enabled function added.
  5747. - ESB: Disabling CRC checking on PRX/Host side works correctly
  5748. - ESB: Added support for controlling the XOSC outside the ESB library
  5749. - Gazell: Added support for controlling the XOSC outside the Gazell library
  5750. - GZP: No longer deletes pairing data on gzp_init. Added functions to check if device has pairing data and delete all pairing info from flash.
  5751. - GZP: gzp_desktop_emulator example requires only one key press to pair and has been tested to work on SoftDevice.
  5752. - GZP: nrf_nvmc_write_bytes correctly iterates through bytes.
  5753. Fixed issues:
  5754. - Examples use deprecated PERPOWER register.
  5755. Proprietary:
  5756. - When using Keil ARM MDK v4.60 the ram retention, temperature and blinky examples might fail during compilation.
  5757. - Gazell and ESB examples point to wrong SFR file (should be SFD\Nordic\nRF51\nRF51822.sfr).
  5758. Bluetooth:
  5759. - The buttons on the evaluation board are not debounced.
  5760. Known issues:
  5761. - Segger JLink has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
  5762. - On some Windows XP machines JLink CDC installer fails with error message saying it could not find JLinkCDCDriver_x86.msi.
  5763. Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
  5764. - When the bundled JLink OB CDC driver installation dialog appears, it might pop up an error saying "Failed to install driver (Timeout occurred)". Ignore it. (DRGN-1807)
  5765. - Reset button won't work after programing without cycling the target power. (DRGN-1885)
  5766. - Flashing a software using SEGGER is possible only when NOT in SYSTEM_OFF mode (implies to wake-up the current application with a button press for example before flashing a new application).(DRGN-1925)
  5767. Bluetooth:
  5768. - Only the ..\sdk\nrf5822\Board\nrf6310\ble\ble_app_pwr_profiling\ and ..\sdk\nrf5822\Board\pca10001\ble\ble_app_hrs\ applications are power optimized.(DRGN-1914)
  5769. - ble_bondmngr_store_bonded_masters function from the bond manager cannot be used when advertising nor when in a connection (DRGN-1915)
  5770. (flash erase/write prevents the CPU from running which means the stack will not be able to run properly.)
  5771. If ble_bondmngr_store_bonded_masters function is called while advertising or in a connection, the behavior is UNDEFINED.
  5772. Proprietary:
  5773. - ESB/Gazell: Calling nrf_esb_init() or nrf_gzll_init() will disable usage of the GPIOTE peripheral. In order to use the GPIOTE peripheral, the workaround in PAN 22 must be performed after calling these functions.
  5774. - Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
  5775. - Temperature example does not give sane output values. This is hardware related issue described in PAN_028 and will be fixed in future silicon.
  5776. - The nRF24Lxx ESB examples found in the legacy nRFready
  5777. SDKs do not work out of the box with the nRF51 ESB examples. This is due to:
  5778. - The legacy examples do not use "payload in ACK".
  5779. - The legacy examples use RF channel 2 (not 10 as the nRF51 examples).
  5780. - The examples do not use dynamic payload length.
  5781. The legacy examples need to add the following in order to work with the
  5782. nRF51 examples:
  5783. hal_nrf_setup_dynamic_payload(0xFF);
  5784. hal_nrf_enable_dynamic_payload(true);
  5785. hal_nrf_enable_ack_payload(true);
  5786. hal_nrf_set_rf_channel(10);
  5787. In addition, the legacy PTX example must add code for handling the
  5788. payloads received in ACK.
  5789. - The Gazell Link Layer examples are not fully "out of the box" compatible
  5790. with the legacy Gazell examples provided in the nRFgo SDK for nRF24Lxx
  5791. devices. The timeslot periods and channel tables require adjustment.
  5792. - Timeslot period: Edit gzll_params.h file used in the nRF24Lxx projects,
  5793. or use the nrf_gzll_set_timeslot_period() function in the nRF51 projects
  5794. (nRF51 Gazell timeslot period = 0.5*GZLL_RX_PERIOD).
  5795. - Channel table: Edit gzll_params.h file used in the nRF24Lxx projects,
  5796. or use the nrf_gzll_set_channel_table() function in the nRF51 projects.
  5797. - Gazell does not support "Low Power Host mode" (Host mode 1).
  5798. nRF518 SDK v1.1.1
  5799. -----------------
  5800. Changes:
  5801. - Master Control Panel updated to version 3.1.1. Includes fix for issue where pca10000 master emulator devices did not get detected.
  5802. Known issues:
  5803. - When the bundled JLink OB CDC driver installation dialog appears, it might pop up an error saying "Failed to install driver (Timeout occurred)". Ignore it.
  5804. - When using Keil ARM MDK v4.60 the ram retention, temperature and blinky examples might fail during compilation and leave an error message like this:
  5805. C3900U: Unrecognized option '--asm'.
  5806. C3900U: Unrecognized option '--interleave'.
  5807. To fix this Click Alt+F7, choose "Listing" tab. Uncheck "C Compiler Listing"
  5808. - Previous issues from v1.1.0 does still apply
  5809. nRF518 SDK v1.1.0
  5810. -----------------
  5811. Following toolchains/devices have been used for testing and verification:
  5812. - ARM: MDK-ARM Version 4.54
  5813. - N51822 QFAACA on PCA10004 module on nRF6310 motherboard
  5814. - N51822 QFAACA on PCA10000 USB dongle
  5815. - N51822 QFAACA on PCA10001 board
  5816. - Windows XP SP3 32-bit
  5817. - Windows 7 SP1 64-bit
  5818. Known issues:
  5819. - Examples use depracated PERPOWER register. Future silicon will power up peripherals after reset and PERPOWER register will be removed.
  5820. - Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
  5821. - Temperature example does not give sane output values. This is hardware related issue described in
  5822. - Segger JLink has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
  5823. - On some Windows XP machines JLink CDC installer fails with error message saying it could not find JLinkCDCDriver_x86.msi.
  5824. Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
  5825. - Gazell and ESB examples point to wrong SFR file (should be SFD\Nordic\nRF51\nRF51822.sfr).
  5826. - Reset button wont work after programing without cycling the target power. Workaround is to update system_nrf51.c with
  5827. void SystemInit (void)
  5828. {
  5829. /* Switch ON both RAM banks */
  5830. NRF_POWER->RESET = POWER_RESET_RESET_Enabled;
  5831. NRF_POWER->RAMON |= (POWER_RAMON_ONRAM0_RAM0On << POWER_RAMON_ONRAM0_Pos) |
  5832. (POWER_RAMON_ONRAM1_RAM1On << POWER_RAMON_ONRAM1_Pos);
  5833. }
  5834. Bluetooth:
  5835. - The button on the evaluation board are not debounced in hardware and the application implementing for it does not debounce the button presses either (using software mechanisms). So there will be additional increments/decrements of heart rate measurement while pressing the buttons.
  5836. nRF518 SDK v1.0.0
  5837. -----------------
  5838. Following toolchains/devices have been used for testing and verification:
  5839. - ARM: MDK-ARM Version 4.54
  5840. - N51822 QFAACA on nRF2752 module on nRF6310 motherboard
  5841. - Windows XP SP3 32-bit
  5842. - Windows 7 SP1 64-bit
  5843. Bluetooth:
  5844. - S110 SoftDevice v1.0.0
  5845. - J-Link ARM v4.52b or higher
  5846. This release contains the following:
  5847. Bluetooth:
  5848. - Complete source code needed for writing applications on top of S110 SoftDevice (BLE Stack)
  5849. - Template application that can be used as a starting point to develop custom applications.
  5850. - Example application for Heart Rate Service
  5851. - Example application for Proximity profile
  5852. - Example application for HID Mouse
  5853. - Example application for HID Keyboard
  5854. - Power profiling application
  5855. - Example application using Heart Rate Service for Evaluation Board (PCA10001)
  5856. - Multiprotocol application that implements the Heart Rate profile in Bluetooth mode and the Gazell 'device' mode.
  5857. - Documentation
  5858. Known issues:
  5859. - Examples use depracated PERPOWER register. Future silicon will power up peripherals after reset and PERPOWER register will be removed.
  5860. - Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
  5861. - Temperature example does not give sane output values. This is hardware related issue described in
  5862. - Segger JLink has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
  5863. - On some Windows XP machines JLink CDC installer fails with error message saying it could not find JLinkCDCDriver_x86.msi.
  5864. Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
  5865. - Gazell and ESB examples point to wrong SFR file (should be SFD\Nordic\nRF51\nRF51822.sfr).
  5866. - Reset button wont work after programing without cycling the target power. Workaround is to update system_nrf51.c with
  5867. void SystemInit (void)
  5868. {
  5869. /* Switch ON both RAM banks */
  5870. NRF_POWER->RESET = POWER_RESET_RESET_Enabled;
  5871. NRF_POWER->RAMON |= (POWER_RAMON_ONRAM0_RAM0On << POWER_RAMON_ONRAM0_Pos) |
  5872. (POWER_RAMON_ONRAM1_RAM1On << POWER_RAMON_ONRAM1_Pos);
  5873. }
  5874. - Spi master function spi_master_init() sends two dummy bytes. This will be removed in a future release.
  5875. - timer_example nrf_timer_delay_ms() will not give expected results using parameter values over 65 ms.
  5876. Bluetooth:
  5877. - The button on the evaluation board are not debounced in hardware and the application implementing for it does not debounce the button presses either (using software mechanisms). So there will be additional increments/decrements of heart rate measurement while pressing the buttons.
  5878. nRF514 SDK v.1.2.0
  5879. ------------------
  5880. Following toolchains/devices have been used for testing and verification:
  5881. - ARM: MDK-ARM Version 4.60
  5882. - N51422 QFAACA on PCA10004 module on nRF6310 motherboard
  5883. - N51422 QFAACA on PCA10006 module on nRF6310 motherboard
  5884. - N51822 QFAACA on nRF2752 module on nRF6310 motherboard
  5885. - N51822 QFAACA on PCA10001 evaluation kit board
  5886. - Windows XP SP3 32-bit
  5887. - Windows 7 SP1 64-bit
  5888. Changes:
  5889. - Added Bicycle Power minimal slave example.
  5890. - Added Stride and Distance Monitor minimal slave and master example.
  5891. - Removed deprecated PERPOWER register from examples and header files.
  5892. Known issues:
  5893. - Segger JLink has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
  5894. - On some Windows XP machines JLink CDC installer fails with error message saying it could not find JLinkCDCDriver_x86.msi.
  5895. - Try running the installer C:\Program Files\SEGGER\JLinkARM_V<version>\USBDriver\JLinkCDCInstaller_V1.2b.exe manually.
  5896. - When the bundled JLink OB CDC driver installation dialog appears, it might pop up an error saying "Failed to install driver (Timeout occurred)". Ignore it.
  5897. - Flashing a software using SEGGER is NOT possible when the device is in SYSTEM_OFF mode (implies to wake-up the current application from SYTEM_OFF before flashing a new application)
  5898. - Reset button won't work after programming with Keil without cycling the target power. On the other hand if nrfjprog with -p (pin reset) is used to program the device, reset button will work.
  5899. - Using -p option in nrfjprog too heavily might block JLink. This block can be resolved by re-cycling the JLink power.
  5900. nRF514 SDK v1.1.0
  5901. -----------------
  5902. Following toolchains/devices have been used for testing and verification:
  5903. - ARM: MDK-ARM Version 4.54
  5904. - N51422 QFAACA on PCA10001 module
  5905. - N51422 QFAACA on a PCA10005 modulea on nRF6310 motherboard
  5906. Known issues:
  5907. - When having an application which starts up by putting the chip in SystemOff mode, and wakeup source is not configured correctly, the device cannot be programmed.
  5908. Workaround: Use nrfjprog with "recover" option to wipe the application keeping the application in SystemOff mode.
  5909. - For PCA10003 examples using UART, the terminal program on the PC has to release the COM port when PCA10003 is power cycled. It is not possible for the PCA10003 to keep a connection up when performing a power cycle.
  5910. Workaround: Close terminal program for each time you want to perform a power recycle
  5911. Changes:
  5912. - Added examples for PCA10003 Evaluation kit.
  5913. - Added nrfjprog.exe - Nordic Semiconductor command line nRF51 programming tool using JLink dll's.
  5914. - Added custom system_nrf51422.c in templates folder for handling reset after flashing and turning all peripherals on (except GPIOTE) as described in PAN028.
  5915. - Removed references to depricated PERPOWER register in ANT code examples.
  5916. - Added compiler flag to the ANT examples, to easier being able to run examples without any UART.
  5917. - Modified simple_uart_config() parameters. Added new parameters for flow control
  5918. - Added include/boards folder for handling examples targeted for different boards
  5919. - Fixed bug in timer_example
  5920. - Fixed bug in spi_example
  5921. nRF514 SDK v1.0.0
  5922. -----------------
  5923. Following toolchains/devices have been used for testing and verification:
  5924. - ARM: MDK-ARM Version 4.54
  5925. - N51822 QFAACA on nRF2754 module on nRF6310 motherboard
  5926. - Tested on Windows 7 64-bit
  5927. Known issues:
  5928. - Examples use depracated PERPOWER register. Future silicon will power up peripherals after reset and PERPOWER register will be removed.
  5929. - Using Keil versions 4.53 and older will not work unless you change configuration in jlinksettings.ini. See User Guide for more details.
  5930. - Temperature example does not give sane output values. This is hardware related issue described in
  5931. - Segger JLink has some issues with Keil. See http://www.segger.com/IDE_Integration_Keil.html#knownproblems for more details.
  5932. - Reset button wont work after programing without cycling the target power. Workaround is to update system_nrf51.c with
  5933. void SystemInit (void)
  5934. {
  5935. /* Switch ON both RAM banks */
  5936. NRF_POWER->RESET = POWER_RESET_RESET_Enabled;
  5937. NRF_POWER->RAMON |= (POWER_RAMON_ONRAM0_RAM0On << POWER_RAMON_ONRAM0_Pos) |
  5938. (POWER_RAMON_ONRAM1_RAM1On << POWER_RAMON_ONRAM1_Pos);
  5939. }
  5940. - Spi master function spi_master_init() sends two dummy bytes. This will be removed in a future release.
  5941. - timer_example nrf_timer_delay_ms() will not give expected results using parameter values over 65 ms.
  5942. Changes:
  5943. - First public release