Start of this project is described in Assan X8 receiver hacking. Now nearly everything is working :) Oscilloscope measuring on original X8R6 confirmed that chip is NRF2401 and:
- Communication channel is 15
- Data speed is 250kbps
- ShockBurst more is used
- CRC is 16bits
- Address has 32bits (max is 40)
- Receiver is working on data channel 1
For future work I choose Nrf2401 arduino library since the MCU is ATmega8L the arduino old MCU and modified its pin connections and address data manipulation. Original version support 16bits address, my 40b.
My Nrf2401 library is in attachment for download and is free software as the original license says.
On the basis of that library I built new PPM+PWM firmware. Also in attachment. For first attempts I tried Servo library as well as writing my own timer based PWM+PPM generating. For receiving I used INT0. But in all this variants I got servo jitter and not stable PPM signal.
In released version all data manipulation is done in main loop failsafe is also present. Transmitter address is taken from Atmega8 EEPROM from where I believe address from last bind is.
!!!!! Binding is NOT working !!!!!!, at least for now.
Howto use my firmware:
- Normally bind your X8R6 (X8R7) receiver with transmitter.
- Connect serial programmer (i have stk500v2) to the board pins
- Power up the board
- Upload firmware from here
- If on X8R6 solder one 300ohm or smaller SMD resistor to the pin 7
- At pin for channel 7 you have PPM signal while on 1-6 are PWM channels.
- Green LED shows that circuit is powered on.
- Red LED shows that receiver is in failsafe mode (not receiving nor sending any data).
When testing on Hitec 420 servos as well as on earphones I'm getting approx in 1s period "klick". Hope to fix it soon :) PPM signal seems to be fine and decoded on another arduino correctly.
New version with clicking resolved. Now PWM channels are stable. In TODO list remains binding.
MISO and MOSI pads are switched in the example image. Thanks Manu Weyers