<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>nRF24L01+ | Registers get set to 0x00 after sending write command + data</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/51490/nrf24l01-registers-get-set-to-0x00-after-sending-write-command-data</link><description>Hello, 
 I&amp;#39;m having this problem with this nRF24L01+ connected to an ESP8266 (ESP12-E on BOB), and I&amp;#39;m using NodeMCU 2.2.1. The nRF24L01+ module I&amp;#39;m using is a small board with 8 castellations that I broke out using half of a SOIC-16 to 2.54 mm adapter</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Sun, 16 May 2021 22:48:45 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/51490/nrf24l01-registers-get-set-to-0x00-after-sending-write-command-data" /><item><title>RE: nRF24L01+ | Registers get set to 0x00 after sending write command + data</title><link>https://devzone.nordicsemi.com/thread/309921?ContentTypeID=1</link><pubDate>Sun, 16 May 2021 22:48:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f5fba6bc-eb6e-4e70-b412-9356ec06e4ab</guid><dc:creator>DK7IH</dc:creator><description>&lt;p&gt;Hi, the thread is older, here is the solution: This error occurs when you forget to set SCK line to LO after having finished the writing operation. See the timing diagram for details (p. 49).&lt;/p&gt;
&lt;p&gt;Peter (DK7IH)&lt;/p&gt;
&lt;p&gt;Code:&lt;/p&gt;
&lt;p&gt;void nrf24l01_w_register(int reg, int n, int txdata[]) &lt;br /&gt;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;int t0, t1 = 0; &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;PORTD &amp;amp;= ~(CSN); &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Send ID byte to define register &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;for(t1 = 7; t1 &amp;gt;= 0; t1--) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTD &amp;amp;= ~(SCK);&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if((1 &amp;lt;&amp;lt; t1) &amp;amp; reg) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTD |= MOSI;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _delay_us(TWAIT);&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTD &amp;amp;= ~(MOSI); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _delay_us(TWAIT);&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTD |= SCK;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTD &amp;amp;= ~(MOSI); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _delay_us(TWAIT);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTD &amp;amp;= ~(SCK);&amp;nbsp;&amp;nbsp; // !!! &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Write data &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(t0 = 0; t0 &amp;lt; n; t0++) &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//Transfer byte of data, MSB first &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(t1 = 7; t1 &amp;gt;= 0; t1--) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTD &amp;amp;= ~(SCK);&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if((1 &amp;lt;&amp;lt; t1) &amp;amp; txdata[t0]) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTD |= MOSI;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _delay_us(TWAIT);&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTD &amp;amp;= ~(MOSI); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _delay_us(TWAIT);&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTD |= SCK;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _delay_us(TWAIT); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTD &amp;amp;= ~(MOSI); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _delay_us(TWAIT);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTD &amp;amp;= ~(SCK);&amp;nbsp;&amp;nbsp; // !!! &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTD |= CSN; //CSN Hi &lt;br /&gt;}&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF24L01+ | Registers get set to 0x00 after sending write command + data</title><link>https://devzone.nordicsemi.com/thread/206991?ContentTypeID=1</link><pubDate>Fri, 30 Aug 2019 06:50:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fadd4f2f-32ec-4c24-a275-20da03632c24</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The module looks fine and is getting good reviews on AliExpress, so that is probably not the issue ;)&lt;/p&gt;
&lt;p&gt;It seems you are debugging the communication the right way, which is a good start.&amp;nbsp;If reading the registers work there must be something&amp;nbsp;working over the bus, but it is odd that you can read registers correctly at different addresses without being able to write to any of them.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The SPI API used by your module (NodeJS?) looks very different from other SPI API&amp;#39;s I&amp;#39;ve seen, and it is hard to say what exactly will happen on the bus by looking at your code.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Does the module come with some SPI examples that show how to use the API&amp;#39;s?&lt;/p&gt;
&lt;p&gt;Regarding USB logic analyzers we use the Saleae models a lot in the office. They are cheap compared to proper scopes, but unfortunately not $10 cheap ;)&lt;br /&gt;The Logic 8 retails for $399.&lt;/p&gt;
&lt;p&gt;If you can&amp;#39;t afford to buy a scope I would suggest trying to find a local&amp;nbsp;school or hacker community where you can borrow one when needed &lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f642.svg" title="Slight smile"&gt;&amp;#x1f642;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF24L01+ | Registers get set to 0x00 after sending write command + data</title><link>https://devzone.nordicsemi.com/thread/206738?ContentTypeID=1</link><pubDate>Thu, 29 Aug 2019 03:57:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3537ebab-05d3-42fb-8111-752f538b0438</guid><dc:creator>poorandunlucky</dc:creator><description>&lt;p&gt;Hi Torbj&amp;oslash;rn,&lt;/p&gt;
&lt;p&gt;thanks for replying.&lt;/p&gt;
&lt;p&gt;Unfortunately I don&amp;#39;t have a scope, or a LA... they&amp;#39;re both high in priority on my list of things to buy, but being an apprentice, I have a lot of parts to buy, ICs, passives, modules, etc. to be able to do most things as they come, and the need to purchase a lot of smaller things, combined with being new, and the price point of a scope makes it so I&amp;#39;m waiting to both learn more, and be sure of my investment of time, before investing my money...&amp;nbsp; I am definitely going to order a cheap USB logic analyzer board, and clips, though...&amp;nbsp; I&amp;#39;m not sure what $10 will get me, but I think it&amp;#39;s worth the risk at this point.&amp;nbsp; I really wish I had one available to me, though, because this problem was a pain to try and understand....&lt;/p&gt;
&lt;p&gt;The MCU and nRF24L01+ are both powered by USB, and a voltage regulator feeds 3.31 V both to the MCU and to the rail, and both are referenced to the same ground.&lt;/p&gt;
&lt;p&gt;Link to module: &lt;a href="https://www.aliexpress.com/item/32649100793.html?spm=a2g0s.9042311.0.0.27424c4d3BbiWY" rel="noopener noreferrer" target="_blank"&gt;Castellated board, 4th picture from right.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Picture of setup: &lt;a href="https://imgur.com/a/LvEhTvi" rel="noopener noreferrer" target="_blank"&gt;Picture of setup.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I do have an Arduino Uno in my box, but while it may seem strange I&amp;#39;m not super familiar with it...&amp;nbsp; Arduino makes the information I look for difficult to find because of floods of tutorials, and people having the same stupid problems, or unrealistic expectations (sorry), and I&amp;#39;m still hoping there&amp;#39;s something obviously wrong in my setup, or that someone who&amp;#39;ve had this issue might come up, and know right away what the problem is, but I will try to dust off the board over the weekend, and try to see if I can configure the nRF24L01+ with it...&lt;/p&gt;
&lt;p&gt;Thanks for your help&amp;nbsp; &lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f60a.svg" title="Blush"&gt;&amp;#x1f60a;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: nRF24L01+ | Registers get set to 0x00 after sending write command + data</title><link>https://devzone.nordicsemi.com/thread/206645?ContentTypeID=1</link><pubDate>Wed, 28 Aug 2019 13:24:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:77c568c2-9837-4862-a775-25a841697258</guid><dc:creator>ovrebekk</dc:creator><description>&lt;p&gt;Hi&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Do you have a scope available so you can check what is happening on the bus?&lt;br /&gt;That is a big help in debugging serial communication issues like these.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Also, which supply voltage are you running your boards at?&lt;br /&gt;You have made sure to run both the ESP8266 and the nRF24L01+ from the same supply?&lt;/p&gt;
&lt;p&gt;If you have a link to the module you are using that could be helpful, and a picture of your setup if you have one.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Finally, if you have an Arduino Uno or similar laying around you can use that as a reference. There is an nrf24 library for the Arduino which makes it relatively simple to get the module running, and when you have something working it might be easier to see what is wrong with the ESP implementation.&lt;/p&gt;
&lt;p&gt;Best regards&lt;br /&gt;Torbjørn&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>