I've noticed that many members here specially those who are new to dealing with JN516x modules ,are having difficulties reading and programming modules during first time usage.
So I thought of writing this document as a starting point
First think of device drivers
-Check USB device driver on your PC before diving into connection to make sure it's installed correctly
Check Connections
Follow these connections when flashing
-> Make sure you connect RX of programmer ->TX of module and vice versa
-> VDD of module -> 3.3v ( not higher or lower )
-> GND of module -> ground
-> SPIMISO -> Ground
-> RESET -> Ground (while SPIMISO is on ground ) then 3.3v and then leave it on 3.3v
Check Power
It may seem trivial but it's often the cause of many problems
-> Make sure of the voltage on every connected pin
-> If you're using an external power source ( not from USB ) during programming , make sure both GND are connected together
Flashing/Reading the module now should succeed
Post Programming
This is an important step that you don't want to forget
After programming make sure you return SPIMISO pin to 3.3v before doing a RESET else the code will be removed ( this might have been you're problem )
I hope this help
Let me know if it worked for you and also in case of any suggested edits
Regards
David Ashraf