@jkandasa Thanks. Finally I've solved the issue but not in MyController.
You are right. I did map new firmware and push reset button then it works however MYSController behavior is a little bit different for battery powered node.
When I look into smartsleep(), it send heartbeat() before going to sleep.
I guess MYSController check firmware version between MYSController and node then if it's different, it send reboot command automatically. Then node restart and process firmware upgrade. So firmware upgrade works well with battery powered node.
If you add this function to MyController, it will be great.