working code for se8r01 (similar to nrf24l01)

Hello i finally got these working on Arduino and i wanted to share the code and maybe get a idea or 2 on improvements.

these modules are pin compatible with nrf modules and semi code compatible but not communication compatible.

This is what the modules look like

I took all the functions, register addresses and calibration procedures from the code the seller supplied and converted the important parts to Arduino code. (not sure what the original code was supposed to run on)
I used a simple nrf code as a starting point and added all the functions and so on and the code seems stable i let it run over the night with no problem.

It seems these needs a lot more initiation then nrf24l01 modules i am not sure all the code are necessary but if i remove the initiation or calibration they wont work.

the code are not hardware spi dependent and you can change the pins to whatever you need

Just upload the code to 2 arduinos and set one to t and one to r and it should work.

byte mode ='r';      //r=rx, t=tx

I am adding the file the seller supplied too.

anyway let me know what you think.

se8r01_rx_tx_2Mps.zip (5.47 KB)

Thank you swe-dude !

that is really awesome but your zip file seems to have lots of weird characters in it...

£define CEq 8

.....

void se8r01_calibration() ¨

rf_switch_bank(iBANK1);

gtempÿ0¦=0x40; gtempÿ1¦=0x00; gtempÿ2¦=0x10; gtempÿ3¦=0xE6;

£define TX_ADR_WIDTH 4 // 5 unsigned chars TX(RX) address width £define TX_PLOAD_WIDTH 6 // 32 unsigned chars TX payload

unsigned char TX_ADDRESSÿTX_ADR_WIDTH¦ = ¨ 0x34,0x43,0x10,0x10 ¼; // Define a static TX address

byte mode ='r'; //r=rx, t=tx

unsigned char rx_bufÿTX_PLOAD_WIDTH¦ = ¨0¼; // initialize value unsigned char tx_bufÿTX_PLOAD_WIDTH¦ = ¨0¼; //***************************************************

I can fix it but for example what is this character meant to be ? |= ?

could you make sure to save your files as ASCII please ?

Thanks !

eum no idea why you get those strange characters, i have tried it in arduino 1.0.5, 1.0.6 and the latest version too and i get none of those. what version are you trying using?

thanks for the code!

I'm having some trouble, but can't tell if its my setup, or the module(s).

here's the output of the transmitting node:

status = E
*******************Radio starting*****************
*******************TX****************************
E
1E
1E
1E
...

Here's the RX node:

status = FF
*******************Radio starting*****************
*******************RX mode************************

RX doesn't seem to see the TX, any ideas?

EDIT: re-wired it up today, double checking my connections, and its working!

While trying to figure out what was wrong, I realized that 'status=FF' was being displayed if the module wasn't even plugged in, so I decided to double check my wiring. Bingo.

I'm happy the code helped.

It is helpful to me too, I have been looking into the nrf24l01 variants and I did spot this SE8R01 on aliexpress, but it was labelled as the nrf, its a tiny board and I love the pin connection change - very low profile

I can see these really taking off, even with a slight alteration to the library they look a worthwhile investment :slight_smile:

Hi there,

Thanks for the code. I got it working at 2mbps. Has anybody managed to get it working with 500 kHz or 1 mMbps? I tried setting RF_setup byte at 0x6F and 0x47, but no success....

Any suggestions?

Freeck

As soon as mine arrive from china (late already !) then I will test this :)

Has the postman arrived?

Yes I got them just the other day, they took over 6 weeks !!
I shall get round to a test this week :slight_smile:

Let me know how it goes i have not had any luck with lower transmission speeds so far.

you mean you are having trouble with 250kbps ? but 1mbps and 2mbps are ok ?

So far only 2mps are OK, sometimes i can get 1 or 2 transmissions working on 1mps. 500kps no luck at all i think we need to change something in the calibration but not sure where to begin with that.

Thats a shame, I only use 250kbps as that gives best data yield for me, very strange.. I wonder if it has something to do with how the registers are set and if they enumerated slightly different to the NRF

have you tried disabling shockburst/retransmits/acks ?

was wondering if the lower speeds of 1m and 250kps were able to work correctly, how have you found the range of the units

and can you confirm that these are not communication comparable with the NRF24L01+ standards ?

I saw these on Aliexpress being sold as NRF24L01 , and the smaller size is very appealing , however i need in this instance that they be communication compatible to the NRF24L01+

cheers

Still no luck with the lower speeds, and sorry these can not communicate with nrf24l01 modules. Not done any range tests but have tried indoor from room to room. My recommendation stick with the nrf modules and if you need the best battery life from a remote sensor try getting genuine nrf modules, in a test with a 680Uf cap i got around 40% more transmissions with genuine module.

Is that a 680uf cap directly across the 0 and 3v3 of the module pins ?

The 680 cap are driving the whole thing, attiny 13 and nrf module. sending out 1 message per 4 sek i got 36 messages with the genuine module, that was with the cap charged to 3.18 volt and sending until either the nrf or the attiny gave up (1.62v -+). i don't remember the number i got with the clone but i remember i got 40% more with the genuine one. i had the modules set to 8 bit payload and 3 bit address

This was the easiest way i could figure out to make a semi fair compare.