DJI Phantom 2 Vision FC200 EGG camera - Black video FPV solution to fix

For a good soul who would like to dump the firmware

if someone can tell me how to connect to the board (and which one) I have a working one Im happy to dump the contents of, please email me though as i rarely come here

[email protected]
 
I believed this is an old thread, now I see that people still trying to solve the problem with egg, vision, version of P2 !
My P2 is a memory of a passed friend, fixed all the problems it had but now FPV is gone :(

Please keep up the work guys, I dont know much about the stuff, I would help otherwise! Good Luck, will follow the thread
 
Last edited:
I have FC200 camera with same issue. And I have dump from working P2V+ WI-Fi. But I'm not sure about UBIFS dump. I tried build image, but got "Kernel panic - not syncing: No init found. Try passing init= option to kernel." error. Can someone check this dump? Kernel dump works.
U-Boot Product Vesion : DJI-GSP-Uboot-1.0-rc4(2014-07-23)
U-Boot 2010.12-rc2-svn-Dji (Jul 23 2014 - 11:14:40)
Cores: ARM 432 MHz
DDR: 297 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
Use the first environment
Net: Ethernet PHY: GENERIC @ 0xff
DaVinci-EMAC
Press ESC to abort autoboot in 1 seconds

Loading from nand0, offset 0x4a0000
** Unknown image type
Wrong Image Format for bootm command
ERROR: can't get kernel image!

Loading from nand0, offset 0x900000
Image Name: Linux-2.6.32.17-davinci1
Created: 2014-04-09 12:21:58 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3823424 Bytes = 3.6 MiB
Load Address: 80008000
Entry Point: 80008000
## Booting kernel from Legacy Image at 80700000 ...
Image Name: Linux-2.6.32.17-davinci1
Created: 2014-04-09 12:21:58 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3823424 Bytes = 3.6 MiB
Load Address: 80008000
Entry Point: 80008000
Loading Kernel Image ... OK
OK

Starting kernel ...

[ 0.000000] Kernel Product Vesion : DJI-Kernel-1.0-rc2
[ 0.000000] Linux version 2.6.32.17-davinci1 (root@ubuntu) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-203) ) #6 PREEMPT Wed Apr 9 05:21:55 PDT 2014
[ 0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
[ 0.000000] CPU: VIVT data cache, VIVT instruction cache
[ 0.000000] Machine: DaVinci DM36x EVM
[ 0.000000] Memory policy: ECC disabled, Data cache writeback
[ 0.000000] DaVinci dm36x_rev1.2 variant 0x8
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping off. Total pages: 12192
[ 0.000000] Kernel command line: console=ttyS0,115200n8 rw dm365_imp.oper_mode=0 video=davincifb:vid0=0,0:vid1=0,0:eek:sd0=0,0:eek:sd1=0,0 mem=48MB davinci_enc_mngr.ch0_output=COMPOSITE davinci_enc_mngr.ch0_mode=pal ubi.mtd=2,2048 root=ubi0:rootfs rootfstype=ubifs ip=off lpj=1077248
[ 0.000000] PID hash table entries: 256 (order: -2, 1024 bytes)
[ 0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Memory: 48MB = 48MB total
[ 0.000000] Memory: 44784KB available (3456K code, 310K data, 112K init, 0K highmem)
[ 0.000000] SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] Hierarchical RCU implementation.
[ 0.000000] NR_IRQS:245
[ 0.000000] Console: colour dummy device 80x30
[ 0.000000] Calibrating delay loop (skipped) preset value.. 215.44 BogoMIPS (lpj=1077248)
[ 0.000000] Mount-cache hash table entries: 512
[ 0.000000] CPU: Testing write buffer coherency: ok
[ 0.000000] DaVinci: 8 gpio irqs
[ 0.000000] NET: Registered protocol family 16
[ 0.070000] EVM: tvp5146 SD video input
[ 0.130000] bio: create slab <bio-0> at 0
[ 0.130000] DM365 IPIPE initialized in Continuous mode
[ 0.140000] usbcore: registered new interface driver usbfs
[ 0.140000] usbcore: registered new interface driver hub
[ 0.140000] usbcore: registered new device driver usb
[ 0.140000] vpss vpss: dm365_vpss vpss probed
[ 0.140000] vpss vpss: dm365_vpss vpss probe success
[ 0.140000] dm365_afew_hw_init
[ 0.150000] ch0 default output "COMPOSITE", mode "PAL"
[ 0.150000] VPBE Encoder Initialized
[ 0.150000] cfg80211: Using static regulatory domain info
[ 0.150000] cfg80211: Regulatory domain: US
[ 0.150000] (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 0.150000] (2402000 KHz - 2472000 KHz @ 40000 KHz), (600 mBi, 2700 mBm)
[ 0.150000] (5170000 KHz - 5190000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[ 0.150000] (5190000 KHz - 5210000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[ 0.150000] (5210000 KHz - 5230000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[ 0.150000] (5230000 KHz - 5330000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[ 0.150000] (5735000 KHz - 5835000 KHz @ 40000 KHz), (600 mBi, 3000 mBm)
[ 0.150000] cfg80211: Calling CRDA for country: US
[ 0.150000] LogicPD encoder initialized
[ 0.150000] Switching to clocksource timer0_1
[ 0.160000] musb_hdrc: version 6.0, cppi-dma, host, debug=0
[ 0.180000] musb_hdrc: USB Host mode controller at fec64000 using DMA, IRQ 12
[ 0.180000] musb_hdrc musb_hdrc: MUSB HDRC host driver
[ 0.180000] musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 1
[ 0.180000] usb usb1: configuration #1 chosen from 1 choice
[ 0.180000] hub 1-0:1.0: USB hub found
[ 0.180000] hub 1-0:1.0: 1 port detected
[ 0.180000] NET: Registered protocol family 2
[ 0.180000] IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.180000] TCP established hash table entries: 2048 (order: 2, 16384 bytes)
[ 0.180000] TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.180000] TCP: Hash tables configured (established 2048 bind 2048)
[ 0.180000] TCP reno registered
[ 0.180000] NET: Registered protocol family 1
[ 0.180000] RPC: Registered udp transport module.
[ 0.180000] RPC: Registered tcp transport module.
[ 0.180000] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.190000] JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[ 0.190000] msgmni has been set to 87
[ 0.200000] alg: No test for stdrng (krng)
[ 0.200000] io scheduler noop registered (default)
[ 0.260000] DM365 IPIPEIF probed
[ 0.270000] imp serializer initialized
[ 0.270000] davinci_previewer initialized
[ 0.270000] davinci_resizer initialized
[ 0.270000] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[ 0.270000] serial8250.0: ttyS0 at MMIO 0x1c20000 (irq = 40) is a 16550A
[ 0.680000] davinci_interrupt 368: VBUS error workaround (delay coming)
[ 0.690000] console [ttyS0] enabled
[ 0.700000] serial8250.0: ttyS1 at MMIO 0x1d06000 (irq = 41) is a 16550A
[ 0.710000] brd: module loaded
[ 0.710000] NAND device: Manufacturer ID: 0x2c, Chip ID: 0xf1 (Micron NAND 128MiB 3,3V 8-bit)
[ 0.720000] Creating 4 MTD partitions on "davinci_nand.0":
[ 0.730000] 0x000000000000-0x0000004a0000 : "bootloader"
[ 0.740000] 0x0000004a0000-0x000000e00000 : "kernel"
[ 0.750000] 0x000000e00000-0x000007f00000 : "filesystem"
[ 0.750000] 0x000000000000-0x000008000000 : "all"
[ 0.760000] davinci_nand davinci_nand.0: controller rev. 2.3
[ 0.770000] UBI: attaching mtd2 to ubi0
[ 0.770000] UBI: physical eraseblock size: 131072 bytes (128 KiB)
[ 0.780000] UBI: logical eraseblock size: 126976 bytes
[ 0.790000] UBI: smallest flash I/O unit: 2048
[ 0.790000] UBI: sub-page size: 512
[ 0.800000] UBI: VID header offset: 2048 (aligned 2048)
[ 0.800000] UBI: data offset: 4096
[ 1.290000] UBI: attached mtd2 to ubi0
[ 1.290000] UBI: MTD device name: "filesystem"
[ 1.300000] UBI: MTD device size: 113 MiB
[ 1.300000] UBI: number of good PEBs: 904
[ 1.310000] UBI: number of bad PEBs: 0
[ 1.310000] UBI: max. allowed volumes: 128
[ 1.310000] UBI: wear-leveling threshold: 4096
[ 1.320000] UBI: number of internal volumes: 1
[ 1.320000] UBI: number of user volumes: 1
[ 1.330000] UBI: available PEBs: 0
[ 1.330000] UBI: total number of reserved PEBs: 904
[ 1.340000] UBI: number of PEBs reserved for bad PEB handling: 9
[ 1.340000] UBI: max/mean erase counter: 4/2
[ 1.350000] UBI: image sequence number: 1071083804
[ 1.350000] UBI: background thread "ubi_bgt0d" started, PID 308
[ 1.360000] console [netcon0] enabled
[ 1.360000] netconsole: network logging started
[ 1.370000] i2c /dev entries driver
[ 1.370000] Linux video capture interface: v2.00
[ 1.380000] vpfe_init
[ 1.380000] vpfe-capture: vpss clock vpss_master enabled
[ 1.390000] vpfe-capture vpfe-capture: v4l2 device registered
[ 1.400000] vpfe-capture vpfe-capture: video device registered
[ 1.440000] EVM: switch to tvp5151 cvbs video input
[ 1.440000] vpfe-capture vpfe-capture: v4l2 sub device tvp5150 registered
[ 1.450000] EVM: switch to it6604 hdmi video input
[ 1.460000] vpfe-capture vpfe-capture: v4l2 sub device cat6023 register fails
[ 1.460000] vpfe_register_ccdc_device: DM365 ISIF
[ 1.470000] DM365 ISIF is registered with vpfe.
[ 1.480000] Trying to register davinci display video device.
[ 1.480000] layer=c106b800,layer->video_dev=c106b964
[ 1.490000] Trying to register davinci display video device.
[ 1.490000] layer=c106bc00,layer->video_dev=c106bd64
[ 1.500000] davinci_init:DaVinci V4L2 Display Driver V1.0 loaded
[ 1.510000] watchdog watchdog: heartbeat 1 sec
[ 1.510000] TCP cubic registered
[ 1.520000] NET: Registered protocol family 17
[ 1.520000] lib80211: common routines for IEEE802.11 drivers
[ 1.530000] Clocks: disable unused mmcsd0
[ 1.530000] Clocks: disable unused mmcsd1
[ 1.530000] Clocks: disable unused spi0
[ 1.530000] Clocks: disable unused spi1
[ 1.530000] Clocks: disable unused spi2
[ 1.530000] Clocks: disable unused spi3
[ 1.530000] Clocks: disable unused spi4
[ 1.530000] Clocks: disable unused pwm0
[ 1.530000] Clocks: disable unused pwm1
[ 1.530000] Clocks: disable unused pwm2
[ 1.530000] Clocks: disable unused pwm3
[ 1.530000] Clocks: disable unused timer1
[ 1.530000] Clocks: disable unused timer3
[ 1.530000] Clocks: disable unused emac
[ 1.530000] Clocks: disable unused voice_codec
[ 1.530000] Clocks: disable unused asp0
[ 1.530000] Clocks: disable unused rto
[ 1.530000] Clocks: disable unused mjcp
[ 1.600000] nnnn===0
[ 1.600000] davinci_emac_probe: using random MAC addr: d6:8d:5d:55:77:e1
[ 1.610000] emac-mii: probed
[ 1.650000] UBIFS: recovery needed
[ 1.680000] UBIFS: recovery completed
[ 1.680000] UBIFS: mounted UBI device 0, volume 0, name "rootfs"
[ 1.690000] UBIFS: file system size: 110342144 bytes (107756 KiB, 105 MiB, 869 LEBs)
[ 1.700000] UBIFS: journal size: 9023488 bytes (8812 KiB, 8 MiB, 72 LEBs)
[ 1.700000] UBIFS: media format: w4/r0 (latest is w4/r0)
[ 1.710000] UBIFS: default compressor: lzo
[ 1.710000] UBIFS: reserved for root: 0 bytes (0 KiB)
[ 1.720000] VFS: Mounted root (ubifs filesystem) on device 0:13.
[ 1.730000] Freeing init memory: 112K
[ 1.740000] Kernel panic - not syncing: No init found. Try passing init= option to kernel.
[ 1.750000] Rebooting in 1 seconds..
 
  • Love
Reactions: IgorD2
To flash UbiFS, you need to boot Linux. Sounds like chicken and egg problem, I know - but there is a solution. Read here:

Maybe even one of the small rootfs images which are linked on the wiki would work. And in case they don't - maybe the O-Gs can prepare a new image for FC200. If you provide them with something - they are usually willing to help. And I don't mean money, that could offend them - I'm giving them updates to their wikis, ie. photos of boards, or links to specs of ICs on these boards, or any info on firmware/software around DJI products.
 
  • Love
Reactions: IgorD2
I think I know how to do that. I used Ubuntu:
Code:
#!/bin/bash

set -e

echo "** EXTRACTING **"
mkdir ubifs-root
sudo ubireader_extract_files -k -l dm365_root_ubifs-orig.ubi | tee ubifs-root/_extract.log

echo "** PREPARING REPACK OPTIONS **"
ubireader_utils_info dm365_root_ubifs-orig.ubi | tee ubifs-root/_prep_recreate.log

echo "** FIXING REPACK OPTIONS **"
# Copy and modify INI to make the repack script work
INIFILE=$(find ubifs-root/dm365_root_ubifs-orig.ubi -name 'img-*.ini' | head -n 1)
cp "${INIFILE}" ./ubifs-root/
INIFILE=$(find ubifs-root -maxdepth 1 -name 'img-*.ini' | head -n 1)
if [ -z "${INIFILE}" ]; then
  echo "Script 'img-*.ini' was not found after copying"
  exit 1
fi
sed -i 's/^\(vol_flags[ ]*=[ ]*.*\)$/#\1/' "${INIFILE}"
# Copy and modify SH
SHFILE=$(find ubifs-root/dm365_root_ubifs-orig.ubi -name 'create_ubi_img-*.sh' | head -n 1)
cp "${SHFILE}" ./ubifs-root/
SHFILE=$(find "./ubifs-root/" -maxdepth 1 -name 'create_ubi_img-*.sh' | head -n 1)
if [ -z "${SHFILE}" ]; then
  echo "Script 'create_ubi_img-*.sh' was not found after copying"
  exit 1
fi

echo "** DONE **"
SHBASE=$(basename "${SHFILE}")
ROOTFS=$(find "./ubifs-root/" -maxdepth 2 -type d -name 'rootfs' | head -n 1)
ROOTFSBASE="${ROOTFS#./ubifs-root/}"
echo "Now run the repack script:"
echo "  sudo ./${SHBASE} ${ROOTFSBASE}"

Note: I did not tested the line which the script proposes to run at end. I'm not exactly sure which directory you should give to that script.
The rest is tested on Ph3 gimbal firmware.
 
  • Love
Reactions: IgorD2
Sadly, but Phantom 2 Vision+ ubifs not compatibly with p2v :(. Need working FC200 working unit for dump
DM36x initialization passed!
UBL Product Vesion : DJI-GSP-UBL-1.0-rc10(2014-08-15)
Dji UBL Version: 1.51(Aug 15 2014 - 17:05:12)
Booting Catalog Boot Loader
BootMode = NAND
Starting NAND Copy...
Valid magicnum, 0xA1ACED66, found in block 0x00000019.
Uboot Checksum:0x7E25B44B
Actua Checksum:0x7E25B44B

U-Boot Product Vesion : DJI-GSP-Uboot-1.0-rc4(2014-07-23)
U-Boot 2010.12-rc2-svn-Dji (Jul 23 2014 - 11:14:40)
Cores: ARM 432 MHz
DDR: 297 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
Use the first environment
Net: Ethernet PHY: GENERIC @ 0xff
DaVinci-EMAC
Press ESC to abort autoboot in 1 seconds

Loading from nand0, offset 0x4a0000
** Unknown image type
Wrong Image Format for bootm command
ERROR: can't get kernel image!

Loading from nand0, offset 0x900000
Image Name: Linux-2.6.32.17-davinci1
Created: 2014-04-09 12:21:58 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3823424 Bytes = 3.6 MiB
Load Address: 80008000
Entry Point: 80008000
## Booting kernel from Legacy Image at 80700000 ...
Image Name: Linux-2.6.32.17-davinci1
Created: 2014-04-09 12:21:58 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3823424 Bytes = 3.6 MiB
Load Address: 80008000
Entry Point: 80008000
Loading Kernel Image ... OK
OK

Starting kernel ...

[ 0.000000] Kernel Product Vesion : DJI-Kernel-1.0-rc2
[ 0.000000] Linux version 2.6.32.17-davinci1 (root@ubuntu) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-203) )
#6 PREEMPT Wed Apr 9 05:21:55 PDT 2014
[ 0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
[ 0.000000] CPU: VIVT data cache, VIVT instruction cache
[ 0.000000] Machine: DaVinci DM36x EVM
[ 0.000000] Memory policy: ECC disabled, Data cache writeback
[ 0.000000] DaVinci dm36x_rev1.2 variant 0x8
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping off. Total pages: 12192
[ 0.000000] Kernel command line: console=ttyS0,115200n8 rw dm365_imp.oper_mode=0 video=davincifb:vid0=0,0:vid1=0,0:eek:sd0=0,0:eek:sd1=0,0 mem=48MB davinci_enc_mngr.ch0_output=COMPOSITE davinci_enc_mngr.ch0_mode=pal ubi.mtd=2,2048
root=ubi0:rootfs rootfstype=ubifs ip=off lpj=1077248
[ 0.000000] PID hash table entries: 256 (order: -2, 1024 bytes)
[ 0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Memory: 48MB = 48MB total
[ 0.000000] Memory: 44784KB available (3456K code, 310K data, 112K init, 0K highmem)
[ 0.000000] SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] Hierarchical RCU implementation.
[ 0.000000] NR_IRQS:245
[ 0.000000] Console: colour dummy device 80x30
[ 0.000000] Calibrating delay loop (skipped) preset value.. 215.44 BogoMIPS (lpj=1077248)
[ 0.000000] Mount-cache hash table entries: 512
[ 0.000000] CPU: Testing write buffer coherency: ok
[ 0.000000] DaVinci: 8 gpio irqs
[ 0.000000] NET: Registered protocol family 16
[ 0.070000] EVM: tvp5146 SD video input
[ 0.130000] bio: create slab <bio-0> at 0
[ 0.130000] DM365 IPIPE initialized in Continuous mode
[ 0.140000] usbcore: registered new interface driver usbfs
[ 0.140000] usbcore: registered new interface driver hub
[ 0.140000] usbcore: registered new device driver usb
[ 0.140000] vpss vpss: dm365_vpss vpss probed
[ 0.140000] vpss vpss: dm365_vpss vpss probe success
[ 0.140000] dm365_afew_hw_init
[ 0.150000] ch0 default output "COMPOSITE", mode "PAL"
[ 0.150000] VPBE Encoder Initialized
[ 0.150000] cfg80211: Using static regulatory domain info
[ 0.150000] cfg80211: Regulatory domain: US
[ 0.150000] (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 0.150000] (2402000 KHz - 2472000 KHz @ 40000 KHz), (600 mBi, 2700 mBm)
[ 0.150000] (5170000 KHz - 5190000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[ 0.150000] (5190000 KHz - 5210000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[ 0.150000] (5210000 KHz - 5230000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[ 0.150000] (5230000 KHz - 5330000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[ 0.150000] (5735000 KHz - 5835000 KHz @ 40000 KHz), (600 mBi, 3000 mBm)
[ 0.150000] cfg80211: Calling CRDA for country: US
[ 0.150000] LogicPD encoder initialized
[ 0.150000] Switching to clocksource timer0_1
[ 0.160000] musb_hdrc: version 6.0, cppi-dma, host, debug=0
[ 0.180000] musb_hdrc: USB Host mode controller at fec64000 using DMA, IRQ 12
[ 0.180000] musb_hdrc musb_hdrc: MUSB HDRC host driver
[ 0.180000] musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 1
[ 0.180000] usb usb1: configuration #1 chosen from 1 choice
[ 0.180000] hub 1-0:1.0: USB hub found
[ 0.180000] hub 1-0:1.0: 1 port detected
[ 0.180000] NET: Registered protocol family 2
[ 0.180000] IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.180000] TCP established hash table entries: 2048 (order: 2, 16384 bytes)
[ 0.180000] TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.180000] TCP: Hash tables configured (established 2048 bind 2048)
[ 0.180000] TCP reno registered
[ 0.180000] NET: Registered protocol family 1
[ 0.180000] RPC: Registered udp transport module.
[ 0.180000] RPC: Registered tcp transport module.
[ 0.180000] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.190000] JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[ 0.190000] msgmni has been set to 87
[ 0.200000] alg: No test for stdrng (krng)
[ 0.200000] io scheduler noop registered (default)
[ 0.260000] DM365 IPIPEIF probed
[ 0.260000] imp serializer initialized
[ 0.260000] davinci_previewer initialized
[ 0.270000] davinci_resizer initialized
[ 0.270000] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[ 0.270000] serial8250.0: ttyS0 at MMIO 0x1c20000 (irq = 40) is a 16550A
[ 0.680000] davinci_interrupt 368: VBUS error workaround (delay coming)
[ 0.690000] console [ttyS0] enabled
[ 0.700000] serial8250.0: ttyS1 at MMIO 0x1d06000 (irq = 41) is a 16550A
[ 0.710000] brd: module loaded
[ 0.710000] NAND device: Manufacturer ID: 0x2c, Chip ID: 0xf1 (Micron NAND 128MiB 3,3V 8-bit)
[ 0.720000] Creating 4 MTD partitions on "davinci_nand.0":
[ 0.730000] 0x000000000000-0x0000004a0000 : "bootloader"
[ 0.740000] 0x0000004a0000-0x000000e00000 : "kernel"
[ 0.740000] 0x000000e00000-0x000007f00000 : "filesystem"
[ 0.750000] 0x000000000000-0x000008000000 : "all"
[ 0.760000] davinci_nand davinci_nand.0: controller rev. 2.3
[ 0.770000] UBI: attaching mtd2 to ubi0
[ 0.770000] UBI: physical eraseblock size: 131072 bytes (128 KiB)
[ 0.780000] UBI: logical eraseblock size: 126976 bytes
[ 0.790000] UBI: smallest flash I/O unit: 2048
[ 0.790000] UBI: sub-page size: 512
[ 0.790000] UBI: VID header offset: 2048 (aligned 2048)
[ 0.800000] UBI: data offset: 4096
[ 1.290000] UBI: attached mtd2 to ubi0
[ 1.290000] UBI: MTD device name: "filesystem"
[ 1.290000] UBI: MTD device size: 113 MiB
[ 1.300000] UBI: number of good PEBs: 904
[ 1.300000] UBI: number of bad PEBs: 0
[ 1.310000] UBI: max. allowed volumes: 128
[ 1.310000] UBI: wear-leveling threshold: 4096
[ 1.320000] UBI: number of internal volumes: 1
[ 1.320000] UBI: number of user volumes: 1
[ 1.330000] UBI: available PEBs: 0
[ 1.330000] UBI: total number of reserved PEBs: 904
[ 1.340000] UBI: number of PEBs reserved for bad PEB handling: 9
[ 1.340000] UBI: max/mean erase counter: 3/1
[ 1.350000] UBI: image sequence number: 1093809597
[ 1.350000] UBI: background thread "ubi_bgt0d" started, PID 308
[ 1.360000] console [netcon0] enabled
[ 1.360000] netconsole: network logging started
[ 1.370000] i2c /dev entries driver
[ 1.370000] Linux video capture interface: v2.00
[ 1.380000] vpfe_init
[ 1.380000] vpfe-capture: vpss clock vpss_master enabled
[ 1.390000] vpfe-capture vpfe-capture: v4l2 device registered
[ 1.400000] vpfe-capture vpfe-capture: video device registered
[ 1.440000] EVM: switch to tvp5151 cvbs video input
[ 1.440000] vpfe-capture vpfe-capture: v4l2 sub device tvp5150 registered
[ 1.450000] EVM: switch to it6604 hdmi video input
[ 1.460000] vpfe-capture vpfe-capture: v4l2 sub device cat6023 register fails
[ 1.460000] vpfe_register_ccdc_device: DM365 ISIF
[ 1.470000] DM365 ISIF is registered with vpfe.
[ 1.480000] Trying to register davinci display video device.
[ 1.480000] layer=c108d800,layer->video_dev=c108d964
[ 1.490000] Trying to register davinci display video device.
[ 1.490000] layer=c108dc00,layer->video_dev=c108dd64
[ 1.500000] davinci_init:DaVinci V4L2 Display Driver V1.0 loaded
[ 1.510000] watchdog watchdog: heartbeat 1 sec
[ 1.510000] TCP cubic registered
[ 1.510000] NET: Registered protocol family 17
[ 1.520000] lib80211: common routines for IEEE802.11 drivers
[ 1.530000] Clocks: disable unused mmcsd0
[ 1.530000] Clocks: disable unused mmcsd1
[ 1.530000] Clocks: disable unused spi0
[ 1.530000] Clocks: disable unused spi1
[ 1.530000] Clocks: disable unused spi2
[ 1.530000] Clocks: disable unused spi3
[ 1.530000] Clocks: disable unused spi4
[ 1.530000] Clocks: disable unused pwm0
[ 1.530000] Clocks: disable unused pwm1
[ 1.530000] Clocks: disable unused pwm2
[ 1.530000] Clocks: disable unused pwm3
[ 1.530000] Clocks: disable unused timer1
[ 1.530000] Clocks: disable unused timer3
[ 1.530000] Clocks: disable unused emac
[ 1.530000] Clocks: disable unused voice_codec
[ 1.530000] Clocks: disable unused asp0
[ 1.530000] Clocks: disable unused rto
[ 1.530000] Clocks: disable unused mjcp
[ 1.600000] nnnn===0
[ 1.600000] davinci_emac_probe: using random MAC addr: 4e:10:87:0a:b8:16
[ 1.610000] emac-mii: probed
[ 1.650000] UBIFS: recovery needed
[ 1.690000] UBIFS: recovery completed
[ 1.690000] UBIFS: mounted UBI device 0, volume 0, name "rootfs"
[ 1.700000] UBIFS: file system size: 110342144 bytes (107756 KiB, 105 MiB, 869 LEBs)
[ 1.710000] UBIFS: journal size: 9023488 bytes (8812 KiB, 8 MiB, 72 LEBs)
[ 1.710000] UBIFS: media format: w4/r0 (latest is w4/r0)
[ 1.720000] UBIFS: default compressor: lzo
[ 1.720000] UBIFS: reserved for root: 0 bytes (0 KiB)
[ 1.730000] VFS: Mounted root (ubifs filesystem) on device 0:13.
[ 1.740000] Freeing init memory: 112K
Runing /etc/init.d/rcS
[ 2.830000] davinci_interrupt 368: VBUS error workaround (delay coming)
/opt/dji/bin/sshenable: line 2: ./eth0config: not found
sulogin: no password entry for root
login[413]: root login on 'ttyS0'
#Process /etc/profile...
root@Dji-Pro:~# [ 4.980000] davinci_interrupt 368: VBUS error workaround (delay coming)
[ 6.820000] CMEMK module: built on Nov 27 2013 at 14:02:36
[ 6.840000] Reference Linux version 2.6.32
[ 6.840000] File /home/u/dm368/dvsdk_dm368_4_02_00_06/linuxutils_2_26_01_02/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c
[ 6.860000] allocated heap buffer 0xc7000000 of size 0x2456000
[ 6.890000] heap fallback enabled - will try heap if pool buffer is not available
[ 6.890000] CMEM Range Overlaps Kernel Physical - allowing overlap
[ 6.910000] CMEM phys_start (0x1000) overlaps kernel (0x80000000 -> 0x83000000)
[ 6.910000] cmemk initialized
[ 6.940000] IRQK module: built on Nov 27 2013 at 14:02:41
[ 6.960000] Reference Linux version 2.6.32
[ 6.960000] File /home/u/dm368/dvsdk_dm368_4_02_00_06/linuxutils_2_26_01_02/packages/ti/sdo/linuxutils/irq/src/module/irqk.c
[ 6.980000] irqk initialized
[ 7.030000] EDMAK module: built on Nov 27 2013 at 14:02:45
[ 7.030000] Reference Linux version 2.6.32
[ 7.050000] File /home/u/dm368/dvsdk_dm368_4_02_00_06/linuxutils_2_26_01_02/packages/ti/sdo/linuxutils/edma/src/module/edmak.c
[ 7.130000] davinci_interrupt 368: VBUS error workaround (delay coming)
pdi=0
pdi=441
Encode demo started.
[ 7.280000] davinci_resizer davinci_resizer.2: RSZ_G_CONFIG:0:1:124
[ 7.280000] davinci_previewer davinci_previewer.2: ipipe_set_preview_config
[ 7.290000] vpfe-capture vpfe-capture: IPIPE Chained
[ 7.300000] vpfe-capture vpfe-capture: Resizer present
detectVide to cr[ 7.300000] vpfe_s_input
eate
fd = hCapture->fd
Composite input selected
[ 7.350000] EVM: switch to tvp5151 cvbs video input
listening.****Failed to set video input to 0 (Invalid argument)
Cannot111 open captureDevice
Error: Failed to create capture device. Is video input connected?
video.c: semkey1: 852613 semkey1: 852614 shmkey: -1
params->maxFrameRate ==30000
Venc1.c : minNumOutBufs 2, minOutBufSize[0] 460800, minOutBufSize[1] 800
video.c: minNumOutBufs 2
osdThrFxn: process ID is 444 ***********
ctrlThrFxn: process ID is 440 ***********
**************************************** pid of Xorg :-1 ==-1
****************************************************************************************************************killall: encode: no process killed
[ 9.360000] cmemk unregistered
[ 9.420000] irqk unregistered
[ 10.660000] CMEMK module: built on Nov 27 2013 at 14:02:36
[ 10.660000] Reference Linux version 2.6.32
[ 10.680000] File /home/u/dm368/dvsdk_dm368_4_02_00_06/linuxutils_2_26_01_02/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c
[ 10.700000] allocated heap buffer 0xc7000000 of size 0x2456000
[ 10.720000] heap fallback enabled - will try heap if pool buffer is not available
[ 10.730000] CMEM Range Overlaps Kernel Physical - allowing overlap
[ 10.740000] CMEM phys_start (0x1000) overlaps kernel (0x80000000 -> 0x83000000)
[ 10.750000] cmemk initialized
[ 10.780000] IRQK module: built on Nov 27 2013 at 14:02:41
[ 10.780000] Reference Linux version 2.6.32
[ 10.800000] File /home/u/dm368/dvsdk_dm368_4_02_00_06/linuxutils_2_26_01_02/packages/ti/sdo/linuxutils/irq/src/module/irqk.c
[ 10.820000] irqk initialized
[ 10.860000] EDMAK module: built on Nov 27 2013 at 14:02:45
[ 10.880000] Reference Linux version 2.6.32
[ 10.880000] File /home/u/dm368/dvsdk_dm368_4_02_00_06/linuxutils_2_26_01_02/packages/ti/sdo/linuxutils/edma/src/module/edmak.c
pdi=490
Encode demo started.
[ 11.000000] davinci_resizer davinci_resizer.2: RSZ_G_CONFIG:0:1:124
[ 11.010000] davinci_previewer davinci_previewer.2: ipipe_set_preview_config
[ 11.020000] vpfe-capture vpfe-capture: IPIPE Chained
[ 11.020000] vpfe-capture vpfe-capture: Resizer present
detectVide to cr[ 11.030000] vpfe_s_input
eate
fd = hCapture->fd
Composite input selected
pdi=0
[ 11.070000] EVM: switch to tvp5151 cvbs video input
listening.**************Failed to set video input to 0 (Invalid argument)
Cannot111 open captureDevice
Error: Failed to create capture device. Is video input connected?
video.c: semkey1: 852613 semkey1: 852614 shmkey: -1
params->maxFrameRate ==30000
Venc1.c : minNumOutBufs 2, minOutBufSize[0] 460800, minOutBufSize[1] 800
video.c: minNumOutBufs 2
osdThrFxn: process ID is 493 ***********
ctrlThrFxn: process ID is 489 ***********
********************************************************** pid of Xorg :-1 ==441
**************************************************************************************************************killall: encode: no process killed
 
Last edited:
Hello everybody,
I am very surprised and very happy that someone is still looking for a solution for the "no FPV" of the P2V egg camera.

Unfortunately I can't help, I have two egg cameras but both are defective ... I really hope that someone with the working camera comes forward.

Have you tried asking DJI if they are willing to provide you with the Vision+ ubifs? Since it is a very old model for which they no longer provide assistance, they may perhaps accept ...


May the Force be with you
 
Are you sure that your cameras have the UbiFS damaged? Because often only bootloader is gone, and the root file system is ok.
 
All i know is that both eggs are in "telemetry ok, but no FPV" status.

So could this be caused by different problems?
How can i verify my bootloader status, and possibly rewrite it?
 
So could this be caused by different problems?

Same problem, but different range.
Like with cancer - it's a lot easier to cure at an early stage.
If bootloader and kernel are working, UbiFS can sometimes even fix itself.

How can i verify my bootloader status, and possibly rewrite it?

The most informative article I wrote about that is here:

Yes, it is for Ph3 remote; but it's the same chip, so the only thing which is different for the egg is the location of pins on boards.
The pins on your board are described here:
O-Gs wiki: dji-firmware-tools/wiki/FC200 Live View Encoder board
 
Ok...I'm not a soldering wizard, but i already have a USB-to-TTL converter so it's time to play!

First step, take out the LVE board from the egg.
I'll be back alive in a few days, probably i'll ask you for pins confirmation before soldering wires

thank you for help
 
Ok...I'm not a soldering wizard, but i already have a USB-to-TTL converter so it's time to play!

First step, take out the LVE board from the egg.
I'll be back alive in a few days, probably i'll ask you for pins confirmation before soldering wires

thank you for help
I will keep my fingers crossed you are successful.....I have a P2V with telemetry but no FPV....I have waited years for a solution. If you are able to fix yours, it would be great if you would write a step by step guide with pictures as to how you ultimately fixed your FC200 camera for loss of FPV.
 
I have waited years for a solution

No idea how this is news for anyone.. we can fix DaVincis for like 4 years now. There are lots of threads and external articles on that:
The most relevant threads:
Articles:
This one even mentions FC200 directly:
Flashing firmware on DaVinci media processors
And here's another one which I made, for the situations when NAND chip needs replacing:

Sure, we don't have complete firmwares for all of the boards - but reflashing bootloader we can do on all of them.
 
Last edited:
  • Like
Reactions: Mark The Droner
found web with camera firmware, not sure is there any chance that the firmware can repair the camera ROM,
It can, but not this one.

Most DJI products have multiple chips. Each such 'module' has its own programming.
This is firmware for what will later become module m0100, aka Ambarella firmware:

Code:
# ./amba_fwpak.py -vvv -s -m FC200_firmware_v1.1.9.bin
FC200_firmware_v1.1.9.bin: Opening for search
FC200_firmware_v1.1.9.bin: Extracting entry  0, pos     2048, len     2048 bytes
FC200_firmware_v1.1.9.bin: Entry  0 checksum 8351AB51
FC200_firmware_v1.1.9.bin: Extracting entry  1, pos     6144, len   151924 bytes
FC200_firmware_v1.1.9.bin: Entry  1 checksum 3C3A7DE3
FC200_firmware_v1.1.9.bin: False positive - entry at 33968 has bad size, 3959418640 bytes
FC200_firmware_v1.1.9.bin: Extracting entry  2, pos   159744, len    59144 bytes
FC200_firmware_v1.1.9.bin: Entry  2 checksum 53DA9253
FC200_firmware_v1.1.9.bin: Extracting entry  3, pos   221184, len  7233540 bytes
FC200_firmware_v1.1.9.bin: Entry  3 checksum FDD3F022
FC200_firmware_v1.1.9.bin: False positive - entry at 868208 has bad size, 1667590243 bytes
FC200_firmware_v1.1.9.bin: False positive - entry at 872700 has bad size, 1650532453 bytes
FC200_firmware_v1.1.9.bin: Extracting entry  4, pos  7456768, len  4175872 bytes
FC200_firmware_v1.1.9.bin: Entry  4 checksum 13FD6654
FC200_firmware_v1.1.9.bin: Extracting entry  5, pos 11634688, len  2715000 bytes
FC200_firmware_v1.1.9.bin: Entry  5 checksum 6AE0B5F7

We need DaVinci, not Ambarella. Though some cameras may be damaged due to Ambarella failure as well.
 
Hi all,
i have opened my egg by this: Teardown with Pictures for Phantom Vision FC200 Camera
and found a P00033V1 board like this: o-gs/dji-firmware-tools

quaddamage, this is my TTL and board:

TTL-to-LVE-board.jpg


can you confirm the described wiring please?
 
Last edited:
  • Like
Reactions: IgorD2
Looks good to me.
I even found another pinout listed by someone:

and it seem to match.
Thought it says "power" near one of 3V pins instead of 5V one.. not sure if there's a meaning behind that.
If with 5V connection it doesn't print anything, even BOOTME, then I'd try the 3V power instead.

Also, how you select logic levels in your USB-to-TTL? You need 3.3V logic for this.
 
Last edited:

Recent Posts

Members online

Forum statistics

Threads
143,066
Messages
1,467,352
Members
104,933
Latest member
mactechnic