Solved - Phantom 3a and Android 13 cant get the "camera" button to show.

I reflashed the kernel manually, sent the uimage successfull after reboot this is my new error.
Same thing cant connect to phone, still able to controll drone.

Whats up with the bad blocks isnt that a problem?

Code:
▒▒▒DM36x initialization passed!
UBL Product Vesion : DJI-GRC-P3-SUPER-UBL-1.0-rc0(2015-05-12)
Dji UBL Version: 1.51(May 12 2015 - 11:29:40)
Booting Catalog Boot Loader
BootMode = NAND
Starting NAND Copy...
Valid magicnum, 0xA1ACED66, found in block 0x00000019.
DM36x initialization passed!
UBL Product Vesion : DJI-GRC-P3-SUPER-UBL-1.0-rc0(2015-05-12)
Dji UBL Version: 1.51(May 12 2015 - 11:29:40)
Booting Catalog Boot Loader
BootMode = NAND
Starting NAND Copy...
Valid magicnum, 0xA1ACED66, found in block 0x00000019.
   DONE
Jumping to entry point at 0x81080000.

U-Boot Product Vesion : DJI-GRC-Uboot-1.0-rc1(2015-01-27)
U-Boot 2010.12-rc2-svn-Dji (Jan 27 2015 - 18:45:11)
Cores: ARM 486 MHz
DDR:   360 MHz
I2C:   ready
DRAM:  128 MiB
NAND:  128 MiB
Bad block table found at page 65472, version 0x01
Bad block table found at page 65408, version 0x01
nand_bbt: ECC error while reading bad block table
*** Warning - bad CRC, using default environment

Net:   Ethernet PHY: GENERIC @ 0xff
DaVinci-EMAC
Press ESC to abort autoboot in 1 seconds

Loading from nand0, offset 0x4a0000
   Image Name:   Linux-2.6.32.17-davinci1
   Created:      2015-06-23   9:37:05 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    4065664 Bytes = 3.9 MiB
   Load Address: 8[    3.380000] CMEMK module: built on Jul 30 2014 at 10:21:45
[    3.400000]   Reference Linux version 2.6.32
[    3.400000]   File /home/u/work/svn/dec_grc/src/dvsdk/dvsdk_dm368_4_02_00_06/linuxutils_2_26_01_02/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c
[    3.430000] allocated heap buffer 0xc7000000 of size 0x4400000
[    3.430000] heap fallback enabled - will try heap if pool buffer is not available
[    3.450000] CMEM Range Overlaps Kernel Physical - allowing overlap
[    3.450000] CMEM phys_start (0x1000) overlaps kernel (0x80000000 -> 0x83000000)
[    3.470000] cmemk initialized
[    3.490000] IRQK module: built on Jul 30 2014 at 10:21:09
[    3.510000]   Reference Linux version 2.6.32
[    3.510000]   File /home/u/work/svn/dec_grc/src/dvsdk/dvsdk_dm368_4_02_00_06/linuxutils_2_26_01_02/packages/ti/sdo/linuxutils/irq/src/module/irqk.c
[    3.530000] irqk initialized
[    3.570000] EDMAK module: built on Jul 30 2014 at 10:19:34
[    3.590000]   Reference Linux version 2.6.32
[    3.590000]   File /home/u/work/svn/dec_grc/src/dvsdk/dvsdk_dm368_4_02_00_06/linuxutils_2_26_01_02/packages/ti/sdo/linuxutils/edma/src/module/edmak.c
[    3.800000] exFAT: Version 1.2.9
settime failed
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
[   11.210000] usbcore: registered new interface driver usb_applehid
[   11.230000] usb applehid module init ok
[   11.260000] usbcore: registered new interface driver usb_68013
[   11.290000] usb 68013 module init ok
sulogin: no password entry for root
login[494]: root login on 'ttyS0'
#Process /etc/profile...
root@Dji-Pro:~# encrypt check ok
init  libusb successed!!!
usbmuxd disabled
usbsocket_init OK
usbsocket_create_handle ok, port:22345, bCanRecv:1
usbsocket_create_handle ok, port:22346, bCanRecv:0
watchdog timeout:5
DummyRead68013 0.000000kb
umount: can't umount /mnt/usb: No such file or directory
rmdir: '/mnt/usb': No such file or directory
DummyRead68013 0.000000kb
DummyRead68013 0.000000kb
encrypt chip exist
 
Last edited:
  • Like
Reactions: RodPad
ent the uimage successfull after reboot this is my new error.
I don't see any error you mean this?:
Code:
umount: can't umount /mnt/usb: No such file or directory
rmdir: '/mnt/usb': No such file or directory

It just means there was no USB device connected.

Whats up with the bad blocks isnt that a problem?
This?:
Code:
Bad block table found at page 65472, version 0x01
Bad block table found at page 65408, version 0x01
nand_bbt: ECC error while reading bad block table
*** Warning - bad CRC, using default environment
It tells location of bad block tables. There are two copies.

Then there is one real error with Error Check and Correction. Is it an important problem? I'm not sure. I hope this will fix itself automatically. There are two copies, so it shouldn't have functional effect.

And the warning with bad Cyclic Redundancy Code - this is normal for these boards, they do not have u-boot environment configured, and therefore are using configuration built in into u-boot binaries. Having the configuration written would actually likely damage something on FW update.
 
Thank you for giving me the understanding of the log.
The bad blocks table was the only thing i could see as an error. How do i proceed from here? The usb port works since i could update firmware. The boot seems to work but i dont get a connection to the controller.

Should i continue to reflash encrypted drive, i dont see how it could help but then again im at a total loss here.
 
  • Like
Reactions: RodPad
How do i proceed from here?
I can see few reasons / ways now:

1. The firmware in current version is not compatible with something? I don't know, you only updated the kernel and all user space apps remained as they were originally, so you couldn't cause the incompatibility I think. Maybe the Go App is not compatible with very old firmwares? I don't think I've seen such incompatibility before.

2. The "encrypt chip exist" message - is the system continuing after that? I mean, does it continue to fill the log with messages about communication to Cypress 68013 chip (DummyRead68013)? These should continue to fill the log, one line each few seconds, as long as the device is powered.

3. Is the Cypress device connected properly? The Interface Board you're fixing is connected to the main board within RC. That main board contains Cypress serializer chip, and DaVinci talks to Cypress. I'm wondering whether the two can talk to each other - there's the word "dummy" in "DummyRead68013" which provides vague implication that it uses a dummy instead of a real connection to Cypress.. But I could be wrong with that, I don't really know what the DJI engineers had in mind using that word.

4. Use the Linux? Now as you have the board booted, it should respond to shell commands. You have this line "root@Dji-Pro:~#" which basically means from that UART connection you have full control over the Linux system and you can type shell commands. The Linux commands available are cut down, but you should be able to list USB devices - check if DaVinci Linux sees the phone. I think `lsusb` is a good start.

So as you see I don't know exactly what's the problem at this point. Start by checking (2) and (4), then try re-connecting the flat film cables for (3). Then we'll see what are the results. The (1) - updating FW in both AC and RC - I'd treat as the final check, as it is most invasive.

Btw, does updating the RC FW via USB create two logs, as it does for AC when updating via SD-card in the gimbal?
After upgrading AC, you get two logs - one is brief and useless, called "RESULT_AB". The other one is hidden, and put into a hidden sub-folder but that's the one containing real useful info. The useful log is called "LOG_AB". I'm wondering if RC also creates the two logs.
 
I can see few reasons / ways now:

1. The firmware in current version is not compatible with something? I don't know, you only updated the kernel and all user space apps remained as they were originally, so you couldn't cause the incompatibility I think. Maybe the Go App is not compatible with very old firmwares? I don't think I've seen such incompatibility before.
Im actually trying older software from apkmirror. See if this is a way.
2. The "encrypt chip exist" message - is the system continuing after that? I mean, does it continue to fill the log with messages about communication to Cypress 68013 chip (DummyRead68013)? These should continue to fill the log, one line each few seconds, as long as the device is powered.
Yes they continue.
3. Is the Cypress device connected properly? The Interface Board you're fixing is connected to the main board within RC. That main board contains Cypress serializer chip, and DaVinci talks to Cypress. I'm wondering whether the two can talk to each other - there's the word "dummy" in "DummyRead68013" which provides vague implication that it uses a dummy instead of a real connection to Cypress.. But I could be wrong with that, I don't really know what the DJI engineers had in mind using that word.
Could i controll the drone if they Arent connected?
4. Use the Linux? Now as you have the board booted, it should respond to shell commands. You have this line "root@Dji-Pro:~#" which basically means from that UART connection you have full control over the Linux system and you can type shell commands. The Linux commands available are cut down, but you should be able to list USB devices - check if DaVinci Linux sees the phone. I think `lsusb` is a good start.
So i should keep the ttl on the board as i connect it to the remote and power it up?
Does this mean i should disconnect gnd and 5v cause the rc has battery that will handle the power?

Should i try to connect the phone to the board while its connecte with my pc?
So as you see I don't know exactly what's the problem at this point. Start by checking (2) and (4), then try re-connecting the flat film cables for (3). Then we'll see what are the results. The (1) - updating FW in both AC and RC - I'd treat as the final check, as it is most invasive.

Btw, does updating the RC FW via USB create two logs, as it does for AC when updating via SD-card in the gimbal?
After upgrading AC, you get two logs - one is brief and useless, called "RESULT_AB". The other one is hidden, and put into a hidden sub-folder but that's the one containing real useful info. The useful log is called "LOG_AB". I'm wondering if RC also creates the two logs.
It create two logs this was the one with most info in it. It does not have hidden files or folders.
 
  • Like
Reactions: RodPad
Could i controll the drone if [Cypress and DaVinci] Arent connected?
Yes. Cypress communicates to DaVinci only for video, telemetry and app commands. The RC would start normally without the Interface Board connected.
Does this mean i should disconnect gnd and 5v cause the rc has battery that will handle the power?
Yes, but only 5V. Ground is needed to have reference voltage for RX and TX signals.
Should i try to connect the phone to the board while its connecte with my pc?
Yes. You may want to make sure the 5V is taken from battery at that point - powered from USB-to-TTL, the phone would probably want to take more juice than can be provided.
 
As soon as i connect my phone to the board i get this message.
And it repeats itself alot faster then dummyread


Code:
conn failed, type:0, port:22346
conn failed, type:0, port:22345
conn failed, type:0, port:22346
conn failed, type:0, port:22345
[   90.980000] usb 1-1.1: USB disconnect, address 4

2nd try i got this. and putty/controller crashed. I lost input on putty and couldnt get it back.



Code:
[  261.460000] usb 1-1.1: new high speed USB device using musb_hdrc and address 5
[  261.560000] usb 1-1.1: configuration #1 chosen from 1 choice
**********android device add vid = 0x18d1**********
thread_connection_fun thread running  * * * * * * *
conn failed, type:0, port:22345
error: device not found
conn failed, type:0, port:22346
conn failed, type:0, port:22345
conn failed, type:0, port:22346
conn failed, type:0, port:22345
error: device not found
conn failed, type:0, port:22346
DummyRead68013 0.000000kb
conn failed, type:0, port:22345
conn failed, type:0, port:22346
conn failed, type:0, port:22345
error: device not found
conn failed, type:0, port:22346
conn failed, type:0, port:22345
conn failed, type:0, p
 
  • Like
Reactions: RodPad
This is the output when i off the rotors on the drone. Funny thing is it doesnt get any output on putty when i turn them on.

Proberbly doesnt help but might be interresting anyhow.
Code:
Turn off
DummyRead68013 0.000000kb
DummyRead68013 0.000000kb
DummyRead68013 14.822734kb
DummyRead68013 1418.982178kb
DummyRead68013 0.000000kb
DummyRead68013 0.000000kb
DummyRead68013 0.000000kb
DummyRead68013 0.000000kb
DummyRead68013 0.000000kb

Same errors on both my android devices when i connect.
 
Last edited:
  • Like
Reactions: RodPad
Ok i just ran into this thread showing the exact same problem as i have.


Ofcourse its closed without a solution.
 
  • Like
Reactions: RodPad
might be interresting anyhow.
DummyRead68013 1418.982178kb
Ok, that would suggest the "DummyRead68013" is not a problem, this is how it should work. Because if "dummy" meant "fake", then it wouldn't be possible to get variable transfer from it.

It transferred 1.4 MB - that's too much to be just telemetry. So for that few seconds, the video link was actually working.

And for this:
Code:
conn failed, type:0, port:22345
error: device not found

Looks like people had these problems, see here:

The answer is brief, points towards issue not with DaVinci but with mobile device or connection.
The final answer from reporter then says these errors happen on the working board as well?
Looking at the code snippet added there, it would seem the log is reported when disconnecting the mobile device, so maybe that's what the reporter was seeing - if you connect then disconnect, you will see that error. But I don't think you should see these errors after just connecting.. Anyway, by that answer the reporter seem to insist the issue is not with mobile device.

So most probable cause is there's connection issue - faulty USB port / cable. That would explain the errors reported - while inserting the cable it worked for a second, then the connection got broken.

Do you have a multimeter? Are you able to measure continuity of the USB lines, from somewhere on the board to the end of USB cable?

EDIT:
Looks like you was 3 minutes faster.
 
@quaddamage
Reading through a 6 years old post where you also helped someone with something that looked like my initial problem.
You said to extract uimage from the update file.
I just used the file that went along with:
sfh_DM36x.exe

Could my current problem be that im not using a kernel from the update i did on the controller to 1.2.7
 
  • Like
Reactions: RodPad
Could my current problem be that im not using a kernel from the update i did on the controller to 1.2.7
Hm, that upgrade...
Code:
==========1970.01.01 00:00:10==========
Packet: /mnt/usb/P3S_FW_V01.02.0007.bin,
Upgrading ...
Result: Success

It ended with success, but your kernel remained damaged. That means the DaVinci firmware (module m1300) was not updated. But I just verified - there is m1300 in that firmware, and inside it there is a kernel for flashing. So.. why it said Upgrading.. Success" but it didn't really upgraded that? I'd assume it didn't upgraded anything then.

You said to extract uimage from the update file.
I just used the file that went along with:
sfh_DM36x.exe
No idea what was there. It could have impact.

The FW upgrade contains file `dji/etc/version`. That is extracted within the DaVinci file system before being used for installation. So normally you could use `cat` command on that to get current FW version. But in your case I suspect it would say 2.13.0.0 (the module from P3S_FW_V01.02.0007.bin), even though the installation clearly didn't really flashed that update...

But thinking about that gave me an idea. I wonder.. Try running:
Code:
adb kill-server
insmod /opt/dji/modules/usb_aoa.ko
and then connect the phone.
(that lasts until reboot, so in case the module crashes, everything will get back to normal after you restart the RC)
 
Last edited:
Do you have a multimeter? Are you able to measure continuity of the USB lines, from somewhere on the board to the end of USB cable?

Hm, that upgrade...
Code:
==========1970.01.01 00:00:10==========
Packet: /mnt/usb/P3S_FW_V01.02.0007.bin,
Upgrading ...
Result: Success

It ended with success, but your kernel remained damaged. That means the DaVinci firmware (module m1300) was not updated. But I just verified - there is m1300 in that firmware, and inside it there is a kernel for flashing. So.. why it said Upgrading.. Success" but it didn't really upgraded that? I'd assume it didn't upgraded anything then.


No idea what was there. It could have impact.

The FW upgrade contains file `dji/etc/version`. That is extracted within the DaVinci file system before being used for installation. So normally you could use `cat` command on that to get current FW version. But in your case I suspect it would say 2.13.0.0 (the module from P3S_FW_V01.02.0007.bin), even though the installation clearly didn't really flashed that update...

But thinking about that gave me an idea. I wonder.. Try running:
Code:
adb kill-server
insmod /opt/dji/modules/usb_aoa.ko
and then connect the phone.
(that lasts until reboot, so in case the module crashes, everything will get back to normal after you restart the RC)
I did kill-server and insmod no difference same reaction when i connect the Phone.

Looking through the librarys on the device here is my list there is no /version anywhere i can find:

Code:
root@Dji-Pro:/# ls
bin   dev   etc   home  lib   mnt   opt   proc  sbin  sys   tmp   usr   var


Code:
root@Dji-Pro:/etc#
ls
chip_info.bin  init.d         key.bin        passwd         profile
fstab          inittab        pam.d          passwd-

Code:
ls
??????????????????????fhg  loadmodule-rc              update
Vend_Ax.iic                monitor                    update68013
adb                        mtderase                   updatebeepctrl
applecpcheck               mtdwritefile               updatefpga
devgpio                    settime                    usbclient
eth0config                 sshenable                  usbmanage
fxload                     stop                       usbmuxd
root@Dji-Pro:~# DummyRead68013 0.000000kb

And here it was :).
You are very right about the version.

Code:
root@Dji-Pro:/opt/dji/etc# ./version
./version: line 1: 2.13.0.0: not found
root@Dji-Pro:/opt/dji/etc# DummyRead68013 0.000000kb
DummyRead68013 0.000000kb
lsDummyRead68013 0.000000kb
 
  • Like
Reactions: RodPad
I cant get into the pins with my multimeter.
Can i manually up/down grade to 1.2.7 and make sure everything is that version?
The kernel is newer then 1.2.8 but i guess there is more then a kernel in their updates right?
 
  • Like
Reactions: RodPad
I cant get into the pins with my multimeter.
Ok, then just inspect visually whether nothing seems broken or bent too much within the connector and around.

Can i manually up/down grade to 1.2.7 and make sure everything is that version?
I wouldn't recommend that. But moving to newer firmware might be a good idea, since the old update behaves unexpectedly.

Here are creation timestamps of drone firmwares (P3S) and RC firmwares (C1).
This may actually help others as well, to match RC firmware with best AC firmware.

Code:
# find ./ -name '*P3S_FW_*_head.ini' | xargs grep 'timestamp'
P3S_FW_V01.01.0008_head.ini:timestamp=2015-05-06 04:07:49
P3S_FW_V01.01.0009_head.ini:timestamp=2015-05-12 13:46:39
P3S_FW_V01.02.0007_head.ini:timestamp=2015-06-13 12:56:58
P3S_FW_V01.02.0008_head.ini:timestamp=2015-06-17 09:28:54
P3S_FW_V01.03.0020_head.ini:timestamp=2015-07-24 17:38:05
P3S_FW_V01.04.0010_head.ini:timestamp=2015-09-02 08:57:33
P3S_FW_V01.05.0030_head.ini:timestamp=2015-11-23 03:20:22
P3S_FW_V01.06.0040_head.ini:timestamp=2015-12-22 06:15:39
P3S_FW_V01.07.0060_head.ini:timestamp=2016-03-13 04:04:41
P3S_FW_V01.08.0080_head.ini:timestamp=2016-04-05 04:03:25
P3S_FW_V01.09.0060_head.ini:timestamp=2016-05-19 03:50:41
P3S_FW_V01.10.0090_head.ini:timestamp=2016-11-07 13:05:05
P3S_FW_V01.11.0030_head.ini:timestamp=2017-08-30 06:20:22

# find ./ -name '*C1_FW_*_head.ini' | xargs grep 'timestamp'
C1_FW_V01.02.0021_head.ini:timestamp=2015-07-28 10:55:54
C1_FW_V01.03.0020_head.ini:timestamp=2015-08-04 11:31:52
C1_FW_V01.04.0030_head.ini:timestamp=2015-09-29 04:18:25
C1_FW_V01.05.0070_head.ini:timestamp=2015-11-24 06:16:30
C1_FW_v01.05.0071_head.ini:timestamp=2016-02-01 09:22:52
C1_FW_V01.05.0072_head.ini:timestamp=2016-03-02 07:13:32
C1_FW_V01.05.0080_head.ini:timestamp=2016-03-15 06:47:19
C1_FW_V01.06.0000_head.ini:timestamp=2016-03-24 02:31:15
C1_FW_v01.07.0002_head.ini:timestamp=2016-07-08 11:59:16
C1_FW_v01.07.0030_head.ini:timestamp=2016-07-14 06:36:42
C1_FW_v01.07.0040_head.ini:timestamp=2016-07-27 06:11:55
C1_FW_v01.07.0050_head.ini:timestamp=2016-09-12 12:44:07
C1_FW_v01.07.0060_head.ini:timestamp=2016-11-10 12:47:57
C1_FW_v01.09.0000_head.ini:timestamp=2016-11-08 02:44:52
C1_FW_V01.09.0200_head.ini:timestamp=2017-07-06 08:52:51

So I think the best idea would be to go with AC FW `P3S_FW_V01.03.0020`. The closest match for RC FW seem to be `C1_FW_V01.02.0021`, but `C1_FW_V01.03.0020` is also close and version number suspiciously matches the AC one. So my recommendation is to go with `V01.03.0020` for both. First update the RC, check what changed, and if something still doesn't work or degraded, then update the AC as well.
 
Okay i just got it working. I installed DJI go 2.4.2 on my old phone. When i turned on USB developer mode and reconnected the phone to the drone it worked.
I can go play tomorrow i cant wait. Ill try developer mode on for new phone and see if that works too.
 
  • Like
Reactions: IANZONE and RodPad
The old RC firmware does have Android Debug Bridge enabled, and Android Open Accessory support commented out in `boot.sh`:
Code:
adb start-server
#insmod /opt/dji/modules/usb_aoa.ko

So in the retrospect, this seem obvious. Though there's no way it would pop to my mind, especially because we did tried to switch to aoa with shell commands and it did nothing. It probably did nothing because the video transcode application was already started, so the switch was incomplete.
 
Thank you so much for all your help i am so gratefull.

Ive been wondering about your name, theres a double meaning to it in this forum, someone who damages quadcopters or does something to damaged quadcopters and ofc quaddamage first introduced in Quake 1!! God i loved that game :).

So why the name :-).
 
  • Like
Reactions: IANZONE and RodPad

Recent Posts

Members online

No members online now.

Forum statistics

Threads
143,332
Messages
1,469,662
Members
105,315
Latest member
prodigey
Want to Remove this Ad? Simply login or create a free account