lightbridge firmware PROBLEM (and solution) - firmware version not found by dji assistant tool

Joined
Apr 14, 2015
Messages
294
Reaction score
36
Age
74
This thread is becomed a little bit too long to be read.
for anyone interested just in the solution, I pasted here directly the conclusions.

UPDATE: if you send Lightbridge to me I can repair it for 45€.

If you have any problem with the procedure or if you want to go deep in how I found the solution, just read the entire thread. Don't ask a question if you didn't read the entire thread.
This post describes the problem (and the solution) for the ground unit and also for the air unit, cause the problem may occour to one of the two components.
PROBLEM SYMPTOMS FOR GROUND UNIT
1)Connecting upgrade port on the ground unit to a pc with the DJI assistant by means of a usb cable, you are able to see the firmware version of the "ground system main controller" but not the firmware version of the other 2 firmware components.

2)Connecting an android device to the lightbridge ground unit and opening the lightbridge app, you will not be able to estabilish a connection, like if the ground unit was powered OFF.

you will also find the problem symtoms here: Lightbridge firmware

PROBLEM SYMPTOMS FOR AIR UNIT
Connecting upgrade port on the air unit to a pc with the DJI assistant by means of a usb cable, you are able to see the firmware version of the "air system main controller" but not the firmware version of the other 2 firmware components.
Bildschirmfoto 2017-01-05 um 21_11_46.JPG



PROBLEM DESCRIPTION

This is a problem of the "nand flash". This problem is common to a lot of modules from Dji (p3p no signal, rc transmitter inspire no signal, vision plus live view not working, etc. etc.).
The problem appears when people use LB ( and other devices from Dji) few times during the year, leaving long period where they don't use the device.
Bad blocks in the memory grows up continuously, but if you once a month start the device, Linux marks bad blocks, and it changes the system parameters, "repairing" the memory.
But if you don't use it for 3-4-5 month (in my case 1 month), bad blocks corrupt the flash in the UBL component area or in the U-BOOT component area, and you will no more be able to boot it.
In Phantom4 Dji removed this memory and this kind of problem should not appear.
The solution is to flash again the firmware on the internal memory of the LB.

PROBLEM SOLUTION:

(PROCEDURE TO FLASH BOOTLOADER AND U-BOOT ON DJI LIGHTBRIDGE)


1)solder 3 wires on the serial TX,RX,GND pins and connect it to a PC by means of a level adapter like the FT232RL 3.3V-5.5V FTDI USB to TTL Serial Adapter (or equivalent one).
71-vwwtx3FL__SX342_.jpg

You can find it on amazon for 8€.
Note: set the ft232rl jumper on 3,3V cause the Lightbridge serial is a 3,3Volt serial.

2)solder 2 wires on the pins BSEL and 3V3 pins in order to let you short the 2 wires when needed

Image showing where to solder the wires on the PCB:
GROUND UNIT
summary.png

View attachment 63000

AIR UNIT
board1_new.png


board2 copia copia.png

Note: TX is the pin where LB receives data from the PC and RX is the pin where LB sends data to our PC.

3) make the shortcircuit between BSEL and 3V3.

4) download and extract the folder annexed to this post

5) open a dos command prompt and go in the extracted folder

6) run the following command:
Code:
sfh_DM36x.exe -nandflash -v -p "COM21" ubl1_editedByGaucho.img u-boot_modifiedByGaucho.img
Note1: replace COM21 with the serial port that you are using.
Note2: some users reported that the exe doesn't correctly flash the unit using windows 10 64 bits and windows seven 64 bits while it correctly works on windows xp professional sp3 32 bit and windows vista family 32 bit

7) power on the LB and wait that the flasher tool scrolls while writing data to flash.

8) usually the procedure never completes at the first step and the tool continues to print BOOTME BOOTME... so you have to press CTRL+C on the keyboard to stop the tool, then relaunch again the same command of step 6.
If the CTRL+C "method" don’t allow the complete firmware upload (this usually happens on the air unit), leave the sfh_DM36x.exe running, remove the power from the unit and then power it back
You will see, at the end, that the components are completely written and the tool automatically exits with success.

NOTE: On Air Unit, if the procedure fails, poweroff the unit, maintain all the previously connected wires, add a connection from the RESET pin to ground pin, then repeat steps from 5 to 8.

During the flash you should see this kind of log (this was saved while flashing an air unit):
Code:
-----------------------------------------------------
   TI Serial Flasher Host Program for DM36x
   (C) 2009, Texas Instruments, Inc.
   Ver. 1.50
-----------------------------------------------------


Flashing NAND with ubl1_editedByGaucho.img and u-boot_modifiedByGaucho.img.


Attempting to connect to device COM5...
Press any key to end this program at any time.


Waiting for the DM36x...
        Target:  BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
        Target:   BEGIN
BEGIN commmand received. Sending CRC table...
100% [                                                              ]
                           CRC table sent....



Waiting for DONE...
        Target:    DONE
DONE received.  Sending the UBL...
100% [                                                              ]
                              UBL sent....


        Target:    DONE
DONE received.  UBL was accepted.
UBL transmitted successfully.


Waiting for SFT on the DM36x...
        Target: Starting UART Boot...
        Target: BOOTUBL
BOOTUBL commmand received. Returning CMD and command...
CMD value sent.  Waiting for DONE...
        Target:    DONE
DONE received. Command was accepted.
Sending the UBL image
Waiting for SENDIMG sequence...
        Target: SENDIMG
SENDIMG received. Returning ACK and header for image data...
ACK command sent. Waiting for BEGIN command...
        Target:   BEGIN
BEGIN commmand received.
100% [                                                              ]
                           Image data sent...


Waiting for DONE...
        Target:    DONE
DONE received.  All bytes of image data received...
        Target: Writing UBL to NAND flash
        Target: Unprotecting blocks 0x00000001 through 0x00000018.
        Target: Number of blocks needed for header and data: 0x0x00000001
        Target: Attempting to start in block number 0x0x00000001.
        Target: Erasing block 0x00000001 through 0x00000001.
        Target: Writing header and image data to Block 0x00000001, Page 0x00000000
        Target: Erasing block 0x00000002 through 0x00000002.
        Target: Writing header and image data to Block 0x00000002, Page 0x00000000
        Target: Erasing block 0x00000003 through 0x00000003.
        Target: Writing header and image data to Block 0x00000003, Page 0x00000000
        Target: Erasing block 0x00000004 through 0x00000004.
        Target: Writing header and image data to Block 0x00000004, Page 0x00000000
        Target: Erasing block 0x00000005 through 0x00000005.
        Target: Writing header and image data to Block 0x00000005, Page 0x00000000
        Target: Erasing block 0x00000006 through 0x00000006.
        Target: Writing header and image data to Block 0x00000006, Page 0x00000000
        Target: Erasing block 0x00000007 through 0x00000007.
        Target: Writing header and image data to Block 0x00000007, Page 0x00000000
        Target: Erasing block 0x00000008 through 0x00000008.
        Target: Writing header and image data to Block 0x00000008, Page 0x00000000
        Target: Erasing block 0x00000009 through 0x00000009.
        Target: Writing header and image data to Block 0x00000009, Page 0x00000000
        Target: Erasing block 0x0000000A through 0x0000000A.
        Target: Writing header and image data to Block 0x0000000A, Page 0x00000000
        Target: Erasing block 0x0000000B through 0x0000000B.
        Target: Writing header and image data to Block 0x0000000B, Page 0x00000000
        Target: Erasing block 0x0000000C through 0x0000000C.
        Target: Writing header and image data to Block 0x0000000C, Page 0x00000000
        Target: Erasing block 0x0000000D through 0x0000000D.
        Target: Writing header and image data to Block 0x0000000D, Page 0x00000000
        Target: Erasing block 0x0000000E through 0x0000000E.
        Target: Writing header and image data to Block 0x0000000E, Page 0x00000000
        Target: Erasing block 0x0000000F through 0x0000000F.
        Target: Writing header and image data to Block 0x0000000F, Page 0x00000000
        Target: Erasing block 0x00000010 through 0x00000010.
        Target: Writing header and image data to Block 0x00000010, Page 0x00000000
        Target: Erasing block 0x00000011 through 0x00000011.
        Target: Writing header and image data to Block 0x00000011, Page 0x00000000
        Target: Erasing block 0x00000012 through 0x00000012.
        Target: Writing header and image data to Block 0x00000012, Page 0x00000000
        Target: Erasing block 0x00000013 through 0x00000013.
        Target: Writing header and image data to Block 0x00000013, Page 0x00000000
        Target: Erasing block 0x00000014 through 0x00000014.
        Target: Writing header and image data to Block 0x00000014, Page 0x00000000
        Target: Erasing block 0x00000015 through 0x00000015.
        Target: Writing header and image data to Block 0x00000015, Page 0x00000000
        Target: Erasing block 0x00000016 through 0x00000016.
        Target: Writing header and image data to Block 0x00000016, Page 0x00000000
        Target: Erasing block 0x00000017 through 0x00000017.
        Target: Writing header and image data to Block 0x00000017, Page 0x00000000
        Target: Erasing block 0x00000018 through 0x00000018.
        Target: Writing header and image data to Block 0x00000018, Page 0x00000000
        Target: Protecting the entire NAND flash.
        Target:    DONE
Sending the Application image
Waiting for SENDIMG sequence...
        Target: SENDIMG
SENDIMG received. Returning ACK and header for image data...
ACK command sent. Waiting for BEGIN command...
        Target:   BEGIN
BEGIN commmand received.
100% [                                                              ]
                           Image data sent...


Waiting for DONE...
        Target:    DONE
DONE received.  All bytes of image data received...
        Target: Writing APP to NAND flash
        Target: Unprotecting blocks 0x00000019 through 0x00000032.
        Target: Number of blocks needed for header and data: 0x0x00000003
        Target: Attempting to start in block number 0x0x00000019.
        Target: Erasing block 0x00000019 through 0x0000001B.
        Target: Writing header and image data to Block 0x00000019, Page 0x00000000
        Target: Erasing block 0x0000001C through 0x0000001E.
        Target: Writing header and image data to Block 0x0000001C, Page 0x00000000
        Target: Erasing block 0x0000001F through 0x00000021.
        Target: Writing header and image data to Block 0x0000001F, Page 0x00000000
        Target: Erasing block 0x00000022 through 0x00000024.
        Target: Writing header and image data to Block 0x00000022, Page 0x00000000
        Target: Erasing block 0x00000025 through 0x00000027.
        Target: Writing header and image data to Block 0x00000025, Page 0x00000000
        Target: Erasing block 0x00000028 through 0x0000002A.
        Target: Writing header and image data to Block 0x00000028, Page 0x00000000
        Target: Erasing block 0x0000002B through 0x0000002D.
        Target: Writing header and image data to Block 0x0000002B, Page 0x00000000
        Target: Erasing block 0x0000002E through 0x00000030.
        Target: Writing header and image data to Block 0x0000002E, Page 0x00000000
        Target: Protecting the entire NAND flash.
        Target:    DONE
        Target:    DONE

Operation completed successfully.

9) power off the LB

10) open the wires between BSEL and 3V3 (if you had to use also RESET pin, open also RESET pin).

11) open a terminal (Hyperterminal, tera term or equivalent tool) on the serial line, selecting speed 115200bps and flow control none.

12) Power on LB and look on the terminal the boot process. It should be equivalent to the following one. At the end you will be able to type commands on linux. press ENTER key to see that the linux terminal answers to you requests.

GROUND UNIT BOOT LOG
Code:
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
*** 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
** 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-05-30  6:44:26 UTC
  Image Type:  ARM Linux Kernel Image (uncompressed)
  Data Size:  4034816 Bytes = 3.8 MiB
  Load Address: 80008000
  Entry Point:  80008000
## Booting kernel from Legacy Image at 80700000 ...
  Image Name:  Linux-2.6.32.17-davinci1
  Created:  2014-05-30  6:44:26 UTC
  Image Type:  ARM Linux Kernel Image (uncompressed)
  Data Size:  4034816 Bytes = 3.8 MiB
  Load Address: 80008000
  Entry Point:  80008000
  Loading Kernel Image ... OK
OK

Starting kernel ...

[  0.000000] Kernel Product Vesion : DJI-GSPv2-Kernel-1.0-rc3(2014-05-30 14:45)
[  0.000000] Linux version 2.6.32.17-davinci1 (root@dji) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-203) ) #8 PREEMPT Fri May 30 14:44:25 HKT 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,10K:vid1=0,10K:osd0=1920x1080X16,8100K 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: 44456KB available (3644K code, 446K data, 116K 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.030000] EVM: tvp5146 SD video input
[  0.110000] bio: create slab <bio-0> at 0
[  0.110000] DM365 IPIPE initialized in Continuous mode
[  0.120000] SCSI subsystem initialized
[  0.120000] usbcore: registered new interface driver usbfs
[  0.120000] usbcore: registered new interface driver hub
[  0.120000] usbcore: registered new device driver usb
[  0.130000] vpss vpss: dm365_vpss vpss probed
[  0.130000] vpss vpss: dm365_vpss vpss probe success
[  0.130000] dm365_afew_hw_init
[  0.140000] ch0 default output "COMPOSITE", mode "PAL"
[  0.140000] VPBE Encoder Initialized
[  0.140000] cfg80211: Using static regulatory domain info
[  0.140000] cfg80211: Regulatory domain: US
[  0.140000]  (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[  0.140000]  (2402000 KHz - 2472000 KHz @ 40000 KHz), (600 mBi, 2700 mBm)
[  0.140000]  (5170000 KHz - 5190000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[  0.140000]  (5190000 KHz - 5210000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[  0.140000]  (5210000 KHz - 5230000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[  0.140000]  (5230000 KHz - 5330000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[  0.140000]  (5735000 KHz - 5835000 KHz @ 40000 KHz), (600 mBi, 3000 mBm)
[  0.140000] cfg80211: Calling CRDA for country: US
[  0.140000] LogicPD encoder initialized
[  0.140000] Switching to clocksource timer0_1
[  0.150000] musb_hdrc: version 6.0, pio, host, debug=0
[  0.170000] musb_hdrc: USB Host mode controller at fec64000 using PIO, IRQ 12
[  0.170000] musb_hdrc musb_hdrc: MUSB HDRC host driver
[  0.170000] musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 1
[  0.170000] usb usb1: configuration #1 chosen from 1 choice
[  0.170000] hub 1-0:1.0: USB hub found
[  0.170000] hub 1-0:1.0: 1 port detected
[  0.170000] NET: Registered protocol family 2
[  0.170000] IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
[  0.170000] TCP established hash table entries: 2048 (order: 2, 16384 bytes)
[  0.170000] TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
[  0.170000] TCP: Hash tables configured (established 2048 bind 2048)
[  0.170000] TCP reno registered
[  0.170000] NET: Registered protocol family 1
[  0.170000] RPC: Registered udp transport module.
[  0.170000] RPC: Registered tcp transport module.
[  0.170000] RPC: Registered tcp NFSv4.1 backchannel transport module.
[  0.180000] kfile init
[  0.180000] JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[  0.180000] msgmni has been set to 86
[  0.190000] alg: No test for stdrng (krng)
[  0.190000] io scheduler noop registered (default)
[  0.220000] davincifb davincifb.0: dm_osd0_fb: Initial window configuration is invalid.
[  0.230000] davincifb davincifb.0: dm_osd0_fb: 1920x1080x16@0,0 with framebuffer size 8100KB
[  0.230000] davincifb davincifb.0: dm_vid0_fb: 0x0x16@0,0 with framebuffer size 10KB
[  0.250000] davincifb davincifb.0: dm_osd1_fb: Initial window configuration is invalid.
[  0.250000] davincifb davincifb.0: dm_osd1_fb: 1920x1080x4@0,0 with framebuffer size 4050KB
[  0.250000] davincifb davincifb.0: dm_vid1_fb: 0x0x16@0,0 with framebuffer size 10KB
[  0.310000] venc off init
[  0.310000] hdmi status init
[  0.310000] input: gpio-keys as /devices/platform/gpio-keys/input/input0
[  0.310000] DM365 IPIPEIF probed
[  0.320000] imp serializer initialized
[  0.320000] davinci_previewer initialized
[  0.320000] davinci_resizer initialized
[  0.320000] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[  0.330000] serial8250.0: ttyS0 at MMIO 0x1c20000 (irq = 40) is a 16550A
[  0.810000] console [ttyS0] enabled
[  0.810000] serial8250.0: ttyS1 at MMIO 0x1d06000 (irq = 41) is a 16550A
[  0.820000] brd: module loaded
[  0.820000] at24 1-0050: 32768 byte 24c256 EEPROM (writable)
[  0.900000] NAND device: Manufacturer ID: 0x2c, Chip ID: 0xf1 (Micron NAND 128MiB 3,3V 8-bit)
[  0.910000] Creating 4 MTD partitions on "davinci_nand.0":
[  0.920000] 0x000000000000-0x0000004a0000 : "bootloader"
[  0.920000] 0x0000004a0000-0x000000e00000 : "kernel"
[  0.930000] 0x000000e00000-0x000007f00000 : "filesystem"
[  0.940000] 0x000000000000-0x000008000000 : "all"
[  0.950000] davinci_nand davinci_nand.0: controller rev. 2.3
[  0.960000] UBI: attaching mtd2 to ubi0
[  0.960000] UBI: physical eraseblock size:  131072 bytes (128 KiB)
[  0.970000] UBI: logical eraseblock size:  126976 bytes
[  0.970000] UBI: smallest flash I/O unit:  2048
[  0.980000] UBI: sub-page size:  512
[  0.980000] UBI: VID header offset:  2048 (aligned 2048)
[  0.990000] UBI: data offset:  4096
[  1.120000] usb 1-1: new high speed USB device using musb_hdrc and address 2
[  1.270000] usb 1-1: configuration #1 chosen from 1 choice
[  1.270000] hub 1-1:1.0: USB hub found
[  1.280000] hub 1-1:1.0: 2 ports detected
[  1.510000] UBI: attached mtd2 to ubi0
[  1.510000] UBI: MTD device name:  "filesystem"
[  1.520000] UBI: MTD device size:  113 MiB
[  1.520000] UBI: number of good PEBs:  904
[  1.530000] UBI: number of bad PEBs:  0
[  1.530000] UBI: max. allowed volumes:  128
[  1.540000] UBI: wear-leveling threshold:  4096
[  1.540000] UBI: number of internal volumes: 1
[  1.550000] UBI: number of user volumes:  1
[  1.550000] UBI: available PEBs:  0
[  1.560000] UBI: total number of reserved PEBs: 904
[  1.560000] UBI: number of PEBs reserved for bad PEB handling: 9
[  1.570000] UBI: max/mean erase counter: 63/1
[  1.570000] UBI: image sequence number: 1092381712
[  1.580000] UBI: background thread "ubi_bgt0d" started, PID 349
[  1.590000] console [netcon0] enabled
[  1.590000] netconsole: network logging started
[  1.590000] Initializing USB Mass Storage driver...
[  1.600000] usbcore: registered new interface driver usb-storage
[  1.610000] USB Mass Storage support registered.
[  1.610000] usbcore: registered new interface driver usbtest
[  1.620000] i2c /dev entries driver
[  1.620000] Linux video capture interface: v2.00
[  1.630000] ths7303 1-002c: chip found @ 0x58 (DaVinci I2C adapter)
[  1.640000] ths7303 1-002c: ths7303 write failed
[  1.640000] ths7303: probe of 1-002c failed with error -121
[  1.650000] tvp5150_init
[  1.650000] vpfe_init
[  1.650000] vpfe-capture: vpss clock vpss_master enabled
[  1.660000] vpfe-capture vpfe-capture: v4l2 device registered
[  1.670000] vpfe-capture vpfe-capture: video device registered
[  1.670000] tvp5150_probe
[  1.680000] tvp5150 1-005d: tvp5150 1-005d decoder driver registered !!
[  1.680000] vpfe-capture vpfe-capture: v4l2 sub device tvp5150 registered
[  1.690000] vpfe-capture vpfe-capture: v4l2 sub device cat6023 register fails
[  1.700000] vpfe_register_ccdc_device: DM365 ISIF
[  1.700000] DM365 ISIF is registered with vpfe.
[  1.710000] Trying to register davinci display video device.
[  1.720000] layer=c17f7000,layer->video_dev=c17f7164
[  1.720000] Trying to register davinci display video device.
[  1.730000] layer=c17f7400,layer->video_dev=c17f7564
[  1.740000] davinci_init:DaVinci V4L2 Display Driver V1.0 loaded
[  1.740000] watchdog watchdog: heartbeat 1 sec
[  1.750000] TCP cubic registered
[  1.750000] NET: Registered protocol family 17
[  1.760000] lib80211: common routines for IEEE802.11 drivers
[  1.760000] ksocket init
[  1.790000] Clocks: disable unused mmcsd0
[  1.790000] Clocks: disable unused mmcsd1
[  1.790000] Clocks: disable unused spi0
[  1.790000] Clocks: disable unused spi1
[  1.790000] Clocks: disable unused spi2
[  1.790000] Clocks: disable unused spi3
[  1.790000] Clocks: disable unused spi4
[  1.790000] Clocks: disable unused pwm0
[  1.790000] Clocks: disable unused pwm1
[  1.790000] Clocks: disable unused pwm2
[  1.790000] Clocks: disable unused pwm3
[  1.790000] Clocks: disable unused timer1
[  1.790000] Clocks: disable unused timer3
[  1.790000] Clocks: disable unused emac
[  1.790000] Clocks: disable unused voice_codec
[  1.790000] Clocks: disable unused asp0
[  1.790000] Clocks: disable unused rto
[  1.790000] Clocks: disable unused mjcp
[  1.870000] nnnn===0
[  1.870000] davinci_emac_probe: using random MAC addr: 46:40:56:47:74:4c
[  1.880000] emac-mii: probed
[  1.920000] UBIFS: recovery needed
[  1.970000] UBIFS: recovery completed
[  1.970000] UBIFS: mounted UBI device 0, volume 0, name "rootfs"
[  1.980000] UBIFS: file system size:  110342144 bytes (107756 KiB, 105 MiB, 869 LEBs)
[  1.980000] UBIFS: journal size:  9023488 bytes (8812 KiB, 8 MiB, 72 LEBs)
[  1.990000] UBIFS: media format:  w4/r0 (latest is w4/r0)
[  2.000000] UBIFS: default compressor: lzo
[  2.000000] UBIFS: reserved for root:  0 bytes (0 KiB)
[  2.010000] VFS: Mounted root (ubifs filesystem) on device 0:13.
[  2.010000] Freeing init memory: 116K

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>GSPv2<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Filesystem Product Vesion : DJI-GSPv2-Filesystem-1.0-rc3(2014-06-05)
Runing /etc/init.d/rcS
[  3.800000] CMEMK module: built on Jan 22 2014 at 14:52:00
[  3.820000]  Reference Linux version 2.6.32
[  3.820000]  File /home/u/dm368/dvsdk_dm368_4_02_00_06/linuxutils_2_26_01_02/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c
[  3.840000] allocated heap buffer 0xc7000000 of size 0x4400000
[  3.870000] heap fallback enabled - will try heap if pool buffer is not available
[  3.870000] CMEM Range Overlaps Kernel Physical - allowing overlap
[  3.880000] CMEM phys_start (0x1000) overlaps kernel (0x80000000 -> 0x83000000)
[  3.890000] cmemk initialized
[  3.920000] IRQK module: built on Jan 22 2014 at 14:52:01
[  3.940000]  Reference Linux version 2.6.32
[  3.940000]  File /home/u/dm368/dvsdk_dm368_4_02_00_06/linuxutils_2_26_01_02/packages/ti/sdo/linuxutils/irq/src/module/irqk.c
[  3.960000] irqk initialized
[  4.010000] EDMAK module: built on Jan 22 2014 at 14:52:02
[  4.010000]  Reference Linux version 2.6.32
[  4.030000]  File /home/u/dm368/dvsdk_dm368_4_02_00_06/linuxutils_2_26_01_02/packages/ti/sdo/linuxutils/edma/src/module/edmak.c
[  4.700000] usb 1-1.1: new high speed USB device using musb_hdrc and address 3
[  4.830000] usb 1-1.1: configuration #1 chosen from 1 choice
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
sulogin: no password entry for root
umount: can't umount /mnt/usb: No such file or directory
login[491]: root login on 'ttyS0'
rmdir: '/mnt/usb': No such file or directory
#Process /etc/profile...
root@Dji-Pro:~#
USBClient version 1.0.23

ReadSize = 2048 Timeout = 90
init  libusb successed!!!
!!!!!!!!!!!!!!!!!!!!!!! open 68013 succeed  VENDOR_ID = 0x0547
Claiming libusb_claim_interface 68013 successed
usbmuxd_subscribe OK OK
watchdog timeout:5
latency1:33332
latency2:33000
latency3:30000
displaybuffnum1:4
displaybuffnum2:9
start decode stream from 68013
decode init ok, main thread exit
Osd_Init_Font succeed
….

AIR UNIT BOOT LOG (cutted because I reached the maximum post length on this forum)
Code:
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
nand_read_bbt: Bad block at 0x0000058c0000
*** 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
** 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-03-17   1:15:25 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3840128 Bytes = 3.7 MiB
   Load Address: 80008000
   Entry Point:  80008000
## Booting kernel from Legacy Image at 80700000 ...
   Image Name:   Linux-2.6.32.17-davinci1
   Created:      2014-03-17   1:15:25 UTC
....

13) connect the upgrade usb port to a pc and run the assistant software, you should be able to see that the assistant shows all the 3 components firmware version. Perform an update of the 3 firmware components, rebooting the device when requested by the assistant.

PROBLEM SOLVED!!

Note1: there is also another command to erase the flash before to write it, but it is not needed: sfh_DM36x.exe -nanderase -v -p "COM21"

Note2: inside the annexed file you will find:
-the serial flasher tool to use
-the firmware to upload on the LB
-the firmware as extracted from LB during the upgrade process via assistant
-the firmware decrypted by Andrew
-the terminal tool written by me to access the virtual serial from the upgrade port and get access to Linux interface
-the ubl firmware component found on the TI sdk, that I used to understand that the andrew decrypted firmware contains a not needed header.

Note3: the tool LightbridgeTerminal allows you to work on the linux embedded on the LB (air and ground unit). Just connect to the upgrade port via usb cable, open my tool, open the serial connection on my tool, then press "enable linux" button. then type commands there, or just open your preferred terminal tool to work (tera term in example). this tool can work only if the LB is working (if the linux OS is working).


ANNEXED FILE: http://www.tr3ma.com/Dati/LB_hack.zip

PS: in case of problems during the download of the file, try the same url with https (https://www.....)

To extract firmware, I suppose that Andrew used these tools: o-gs/dji-firmware-tools
 

Attachments

  • board2 copia.png
    board2 copia.png
    607 KB · Views: 14,846
  • board2 copia copia.png
    board2 copia copia.png
    536.9 KB · Views: 1,016
Last edited:
Well zone... Bit I'm pretty dure that the problem on our lightbridge units is a hardware fault. A lot of people nave same problem, if you read on dji forum.
I sente my unit for repair.
 
I have a problem on the lightbridge firmware.
the lightbridge does not work.
this is the problem: Lightbridge firmware

I used a serial analyzer to see the communication between windows assistant software and the lightbridge. To do these tests I used a working Lightbridge, not the broken one.
the serial analyzer is this: FREE Serial Protocol Analyzer and Com Port Packet Data Sniffer
I found that when the lightbridge correctly works, the assistant software send a magic sequence of ascii characters on the virtual serial port created by the usb connection, and after this, the lightbridge revelas its real nature: Linux

To better understand, do the following:
1)connect the LB to windows pc and power it on
2)run assistant, and after 30 seconds, close the app and open hyperterminal
hyperterminal should be set with a speed of 57600bps
note:it is better if you previously save the connection, so that you can open it, one second after closing the assistant app.

Now type a linux command and you will see a linux device answering (in example try ls command)

I also identified the magic sequence that allows us to get in to the Linux environment. I made a vb.net tool in order to send the following Hex sequence and it works:
55BB55BBFF000000FF0D0A
note: each 2 hex values is a ascii character.

I did some commands to understand more about the hardware and the software.
If you know a little bit about linux, you will find the following information really useful:
Code:
root@Dji-Pro:~# ls
Vend_Ax.iic  eth0config  mtdwritefile  update  usbupdate
adb  fxload  setsecurity  update68013
devgpio  loadmodule-rc  sshenable  usbclient
enable68013  mtderase  stop  usbmuxd
root@Dji-Pro:~#
root@Dji-Pro:~#
root@Dji-Pro:~# pwd
/opt/dji/bin
root@Dji-Pro:~# ps -ax
ps: invalid option -- 'x'
BusyBox v1.21.1 (2013-11-14 14:07:22 CST) multi-call binary.

Usage: ps [-o COL1,COL2=HEADER] [-T]

Show list of processes

  -o COL1,COL2=HEADER  Select columns for display
  -T  Show threads




root@Dji-Pro:~# ps -ef
PID  USER  TIME  COMMAND
  1 root  0:02 init
  2 root  0:00 [kthreadd]
  3 root  0:00 [ksoftirqd/0]
  4 root  0:00 [events/0]
  5 root  0:00 [khelper]
  8 root  0:00 [async/mgr]
  141 root  0:00 [sync_supers]
  143 root  0:00 [bdi-default]
  145 root  0:00 [kblockd/0]
  159 root  0:00 [khubd]
  162 root  0:00 [kseriod]
  200 root  0:00 [rpciod/0]
  209 root  0:00 [kswapd0]
  210 root  0:00 [aio/0]
  211 root  0:00 [nfsiod]
  212 root  0:00 [crypto/0]
  310 root  0:00 [hdmi_timer_kthr]
  327 root  0:00 [mtdblockd]
  349 root  0:00 [ubi_bgt0d]
  386 root  0:00 [ubifs_bgt0_0]
  475 root  0:00 /usr/local/sbin/sshd
  479 root  0:40 adb -P 5037 fork-server server
  484 root  0:05 usbmuxd -v -v
  485 root  0:25 usbclient
  486 root  0:00 usbupdate
  489 root  0:00 {autologin} /bin/sh /sbin/autologin
  491 root  0:00 -sh
1075 root  0:00 [flush-ubifs_0_0]
1129 root  0:00 ps -ef
root@Dji-Pro:~#

root@Dji-Pro:/# df
Filesystem  1K-blocks  Used Available Use% Mounted on
ubi0:rootfs  98972  19608  79364  20% /
none  22292  4  22288  0% /tmp
mdev  22292  0  22292  0% /dev
tmpfs  22292  0  22292  0% /dev/shm
root@Dji-Pro:/# lscpu
-sh: lscpu: not found
root@Dji-Pro:/# free -m
  total  used  free  shared  buffers
Mem:  43  21  21  0  0
-/+ buffers:  21  21
Swap:  0  0  0
root@Dji-Pro:/# uname -mrs
Linux 2.6.32.17-davinci1 armv5tejl
root@Dji-Pro:/# cat /proc/meminfo
MemTotal:  44584 kB
MemFree:  22404 kB
Buffers:  0 kB
Cached:  4192 kB
SwapCached:  0 kB
Active:  2520 kB
Inactive:  2984 kB
Active(anon):  1312 kB
Inactive(anon):  24 kB
Active(file):  1208 kB
Inactive(file):  2960 kB
Unevictable:  0 kB
Mlocked:  0 kB
SwapTotal:  0 kB
SwapFree:  0 kB
Dirty:  4 kB
Writeback:  0 kB
AnonPages:  1340 kB
Mapped:  2752 kB
Shmem:  24 kB
Slab:  2184 kB
SReclaimable:  688 kB
SUnreclaim:  1496 kB
KernelStack:  296 kB
PageTables:  188 kB
NFS_Unstable:  0 kB
Bounce:  0 kB
WritebackTmp:  0 kB
CommitLimit:  22292 kB
Committed_AS:  78380 kB
VmallocTotal:  968704 kB
VmallocUsed:  104996 kB
VmallocChunk:  841724 kB
root@Dji-Pro:/#
root@Dji-Pro:/#
root@Dji-Pro:/#
root@Dji-Pro:/#
root@Dji-Pro:/# cat /proc/cpuinfo
Processor  : ARM926EJ-S rev 5 (v5l)
BogoMIPS  : 215.44
Features  : swp half thumb fastmult edsp java
CPU implementer : 0x41
CPU architecture: 5TEJ
CPU variant  : 0x0
CPU part  : 0x926
CPU revision  : 5

Hardware  : DaVinci DM36x EVM
Revision  : 0000
Serial  : 0000000000000000
root@Dji-Pro:/#

root@Dji-Pro:~# ifconfig
eth0  Link encap:Ethernet  HWaddr 0A:B7:B4:4C:92:52
  inet addr:192.168.1.10  Bcast:192.168.1.255  Mask:255.255.255.0
  UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
  RX packets:0 errors:0 dropped:0 overruns:0 frame:0
  TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
  collisions:0 txqueuelen:1000
  RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
  Interrupt:52 Base address:0x7000

lo  Link encap:Local Loopback
  inet addr:127.0.0.1  Mask:255.0.0.0
  UP LOOPBACK RUNNING  MTU:16436  Metric:1
  RX packets:34 errors:0 dropped:0 overruns:0 frame:0
  TX packets:34 errors:0 dropped:0 overruns:0 carrier:0
  collisions:0 txqueuelen:0
  RX bytes:1700 (1.6 KiB)  TX bytes:1700 (1.6 KiB)

root@Dji-Pro:~#
I followed the same procedure on the air unit, finding that there is only the usb device, and no ethernet device, while the ground unit also has ethernet interface.
This is a log with some commands sent to the air unit:

Code:
root@Dji-Pro:~# ifconfig
root@Dji-Pro:~#

root@Dji-Pro:~# ps -ef

PID  USER  TIME  COMMAND
  1 root  0:01 init
  2 root  0:00 [kthreadd]
  3 root  0:00 [ksoftirqd/0]
  4 root  0:00 [events/0]
  5 root  0:00 [khelper]
  8 root  0:00 [async/mgr]
  124 root  0:00 [sync_supers]
  126 root  0:00 [bdi-default]
  128 root  0:00 [kblockd/0]
  139 root  0:00 [khubd]
  142 root  0:00 [kseriod]
  174 root  0:00 [rpciod/0]
  183 root  0:00 [kswapd0]
  184 root  0:00 [aio/0]
  185 root  0:00 [nfsiod]
  186 root  0:00 [crypto/0]
  289 root  0:00 [mtdblockd]
  311 root  0:00 [ubi_bgt0d]
  328 root  0:00 [hdmi_queue]
  329 root  0:00 [irq/44-6023_i2c]
  346 root  0:00 [ubifs_bgt0_0]
  416 root  0:01 /opt/dji/bin/sw_switch
  418 root  0:00 {autologin} /bin/sh /sbin/autologin
  419 root  0:00 -sh
  451 root  0:04 /opt/dji/bin/encode_usb -a -s -m
  455 root  0:00 [flush-ubifs_0_0]




root@Dji-Pro:~# kill -9 451

[  259.520000] cmemk unregistered
[  259.570000] irqk unregistered
[  259.700000] CMEMK module: built on Jan 14 2014 at 19:23:51
[  259.720000]  Reference Linux version 2.6.32
[  259.720000]  File /home/u/dm368/dvsdk_dm368_4_02_00_06/linuxutils_2_26_01_02/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c
[  259.740000] allocated heap buffer 0xc7000000 of size 0x15e2000
[  259.760000] heap fallback enabled - will try heap if pool buffer is not available
[  259.770000] CMEM Range Overlaps Kernel Physical - allowing overlap
[  259.780000] CMEM phys_start (0x1000) overlaps kernel (0x80000000 -> 0x83000000)
[  259.780000] cmemk initialized
[  259.810000] IRQK module: built on Jan 14 2014 at 19:23:57
[  259.810000]  Reference Linux version 2.6.32
[  259.830000]  File /home/u/dm368/dvsdk_dm368_4_02_00_06/linuxutils_2_26_01_02/packages/ti/sdo/linuxutils/irq/src/module/irqk.c
[  259.850000] irqk initialized
[  259.890000] EDMAK module: built on Jan 14 2014 at 19:24:08
[  259.890000]  Reference Linux version 2.6.32
[  259.900000]  File /home/u/dm368/dvsdk_dm368_4_02_00_06/linuxutils_2_26_01_02/packages/ti/sdo/linuxutils/edma/src/module/edmak.c

encode_usb V00.02.02.00(Oct 10 2014 11:17:43).
init  libusb successed!!!
open 68013 succeed  VENDOR_ID = 0x0547
Claiming libusb_claim_interface 68013 successed
Init T[  260.170000] EVM: switch to it6604 hdmi video inputransferQueue
..........
........
.....

root@Dji-Pro:~# ps -ef

PID  USER  TIME  COMMAND
  1 root  0:01 init
  2 root  0:00 [kthreadd]
  3 root  0:00 [ksoftirqd/0]
  4 root  0:00 [events/0]
  5 root  0:00 [khelper]
  8 root  0:00 [async/mgr]
  124 root  0:00 [sync_supers]
  126 root  0:00 [bdi-default]
  128 root  0:00 [kblockd/0]
  139 root  0:00 [khubd]
  142 root  0:00 [kseriod]
  174 root  0:00 [rpciod/0]
  183 root  0:00 [kswapd0]
  184 root  0:00 [aio/0]
  185 root  0:00 [nfsiod]
  186 root  0:00 [crypto/0]
  289 root  0:00 [mtdblockd]
  311 root  0:00 [ubi_bgt0d]
  328 root  0:00 [hdmi_queue]
  329 root  0:00 [irq/44-6023_i2c]
  346 root  0:00 [ubifs_bgt0_0]
  416 root  0:01 /opt/dji/bin/sw_switch
  418 root  0:00 {autologin} /bin/sh /sbin/autologin
  419 root  0:00 -sh
  455 root  0:00 [flush-ubifs_0_0]
  505 root  0:00 /opt/dji/bin/encode_usb -a -s -m
  508 root  0:00 ps -ef
root@Dji-Pro:~#
Anyway, these tests were performed on a working LB. Actually on my not working device, is i send the hex sequence, I can't get any reply from the device, meaning that, for some reason, the linux OS is not running, or that the serial interface is not correctly running.
Any Hint?

-------------------------
p.s.: I also found that, sending the command "update -v" the LB replies with the following sequence of hex characters, where you can find the firmware version of the decoder (1.4.8)


55 AA 55 AA 3F 00 00 00 00 B2 0F 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 16
00 00 00 00 00 00 00 00 00 00 00 06 08 04 01 00
00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00
00 2E 25

if you send instead the command "update68013 -v" you get the firmware version of the "ground system transmitter" (1.2.0):

55 AA 55 AA 3F 00 00 00 00 B2 0F 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20
00 00 00 00 00 00 00 00 00 00 00 01 00 02 01 00
00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00
00 76 78

-----------------------
the ground system main controller is obtained with special hex character sequence.
The special request is the following:

55AA55AA2000000000B10F000000000000000000000000000000000000001A00000029A4

and the reply of the LB is the following (firmware version 1.1.9):

55 AA 55 AA 3F 00 28 00 00 B2 0F 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1A
00 00 00 00 00 00 00 00 00 00 00 00 09 01 01 01
00 00 1B 01 FF FF FF FF 04 02 00 13 93 00 00 00
20 8A CB



It's the third time I send my devices for repair, cause i have 3 lightbridges. I want to solve the problem by myself. I'm disappointed about dji support.
 
Last edited:
  • Like
Reactions: Silver_JM and Maxce
I agree, but if the problem is an hardware fault, only DJI can solve it. If is a firmware problem, MAY BE you can do something, but I think that the problem is the hardware.
Your test above only dimostrate that there is no comunication with some modules in the lightbridge, just as if they are powered off.
 
What let''s you think there is hardware problem? My devices were in my home for 6 months. Moreover the serial line works fine, in fact you can get the first fw version and you can see common prints over the serial line, when you try to access the Linux interface, something on the fw does not answer correctly.
 
  • Like
Reactions: Aairon
I hope you are right, but on the DJI forum a lot of people have the same problem, or in ground unit or in air unit.
If the problem is software, may be a hard reset can solve. But I ask to me, why a firmware stop to work? It's not a PC where you install driver, update and so on. If it working before, it is working after. May be it freeze, or something bt not totally black. For that reason I think that there is a problem with hardware, may be a chip in power supply unit..
 
may be some memory corrupts because of a not robust software.
unfortunately DJI chinese support is not good.

some more details.

doing reboot -f we can read some more infos:

root@Dji-Pro:~#
* daemon not running. starting it now on port 5037 *
root@Dji-Pro:~# reboot -f

reboot -f
[ 51.430000] Restarting system.
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
*** 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: 2014-09-15 5:24:12 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 4043296 Bytes = 3.9 MiB
Load Address: 80008000
Entry Point: 80008000
## Booting kernel from Legacy Image at 80700000 ...
Image Name: Linux-2.6.32.17-davinci1
Created: 2014-09-15 5:24:12 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 4043296 Bytes = 3.9 MiB
Load Address: 80008000
Entry Point: 80008000
Loading Kernel Image ... OK
OK

Starting kernel ...

[ 0.000000] Kernel Product Vesion : DJI-GSP-Kernel-1.1-rc1(2014-09-15)
[ 0.000000] Linux version 2.6.32.17-davinci1 (root@dji) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-203) ) #3 PREEMPT Mon Sep 15 13:24:10 HKT 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,10K:vid1=0,10K:eek:sd0=1920x1080X16,8100K 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: 44448KB available (3648K code, 447K data, 116K 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.030000] EVM: tvp5146 SD video input
[ 0.110000] bio: create slab <bio-0> at 0
[ 0.110000] DM365 IPIPE initialized in Continuous mode
[ 0.120000] SCSI subsystem initialized
[ 0.120000] usbcore: registered new interface driver usbfs
[ 0.120000] usbcore: registered new interface driver hub
[ 0.120000] usbcore: registered new device driver usb
[ 0.130000] vpss vpss: dm365_vpss vpss probed
[ 0.130000] vpss vpss: dm365_vpss vpss probe success
[ 0.130000] dm365_afew_hw_init
[ 0.140000] ch0 default output "COMPOSITE", mode "PAL"
[ 0.140000] VPBE Encoder Initialized
[ 0.140000] cfg80211: Using static regulatory domain info
[ 0.140000] cfg80211: Regulatory domain: US
[ 0.140000] (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 0.140000] (2402000 KHz - 2472000 KHz @ 40000 KHz), (600 mBi, 2700 mBm)
[ 0.140000] (5170000 KHz - 5190000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[ 0.140000] (5190000 KHz - 5210000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[ 0.140000] (5210000 KHz - 5230000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[ 0.140000] (5230000 KHz - 5330000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)
[ 0.140000] (5735000 KHz - 5835000 KHz @ 40000 KHz), (600 mBi, 3000 mBm)
[ 0.140000] cfg80211: Calling CRDA for country: US
[ 0.140000] LogicPD encoder initialized
[ 0.140000] Switching to clocksource timer0_1
[ 0.150000] musb_hdrc: version 6.0, pio, host, debug=0
[ 0.170000] musb_hdrc: USB Host mode controller at fec64000 using PIO, IRQ 12
[ 0.170000] musb_hdrc musb_hdrc: MUSB HDRC host driver
[ 0.170000] musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 1
[ 0.170000] usb usb1: configuration #1 chosen from 1 choice
[ 0.170000] hub 1-0:1.0: USB hub found
[ 0.170000] hub 1-0:1.0: 1 port detected
[ 0.170000] NET: Registered protocol family 2
[ 0.170000] IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.170000] TCP established hash table entries: 2048 (order: 2, 16384 bytes)
[ 0.170000] TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.170000] TCP: Hash tables configured (established 2048 bind 2048)
[ 0.170000] TCP reno registered
[ 0.170000] NET: Registered protocol family 1
[ 0.170000] RPC: Registered udp transport module.
[ 0.170000] RPC: Registered tcp transport module.
[ 0.170000] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.180000] kfile init
[ 0.180000] JFFS2 version 2.2. (NAND) ?? 2001-2006 Red Hat, Inc.
[ 0.180000] msgmni has been set to 86
[ 0.190000] alg: No test for stdrng (krng)
[ 0.190000] io scheduler noop registered (default)
[ 0.220000] davincifb davincifb.0: dm_osd0_fb: Initial window configuration is invalid.
[ 0.230000] davincifb davincifb.0: dm_osd0_fb: 1920x1080x16@0,0 with framebuffer size 8100KB
[ 0.230000] davincifb davincifb.0: dm_vid0_fb: 0x0x16@0,0 with framebuffer size 10KB
[ 0.250000] davincifb davincifb.0: dm_osd1_fb: Initial window configuration is invalid.
[ 0.250000] davincifb davincifb.0: dm_osd1_fb: 1920x1080x4@0,0 with framebuffer size 4050KB
[ 0.250000] davincifb davincifb.0: dm_vid1_fb: 0x0x16@0,0 with framebuffer size 10KB
[ 0.310000] venc off init
[ 0.310000] hdmi status init
[ 0.310000] input: gpio-keys as /devices/platform/gpio-keys/input/input0
[ 0.310000] DM365 IPIPEIF probed
[ 0.320000] imp serializer initialized
[ 0.320000] davinci_previewer initialized
[ 0.320000] davinci_resizer initialized
[ 0.320000] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[ 0.330000] serial8250.0: ttyS0 at MMIO 0x1c20000 (irq = 40) is a 16550A
[ 0.810000] console [ttyS0] enabled
[ 0.810000] serial8250.0: ttyS1 at MMIO 0x1d06000 (irq = 41) is a 16550A
[ 0.820000] brd: module loaded
[ 0.820000] at24 1-0050: 32768 byte 24c256 EEPROM (writable)
[ 0.900000] NAND device: Manufacturer ID: 0x2c, Chip ID: 0xf1 (Micron NAND 128MiB 3,3V 8-bit)
[ 0.910000] Creating 4 MTD partitions on "davinci_nand.0":
[ 0.920000] 0x000000000000-0x0000004a0000 : "bootloader"
[ 0.930000] 0x0000004a0000-0x000000e00000 : "kernel"
[ 0.930000] 0x000000e00000-0x000007f00000 : "filesystem"
[ 0.940000] 0x000000000000-0x000008000000 : "all"
[ 0.950000] davinci_nand davinci_nand.0: controller rev. 2.3
[ 0.960000] UBI: attaching mtd2 to ubi0
[ 0.960000] UBI: physical eraseblock size: 131072 bytes (128 KiB)
[ 0.970000] UBI: logical eraseblock size: 126976 bytes
[ 0.970000] UBI: smallest flash I/O unit: 2048
[ 0.980000] UBI: sub-page size: 512
[ 0.980000] UBI: VID header offset: 2048 (aligned 2048)
[ 0.990000] UBI: data offset: 4096
[ 1.020000] PCLK = 0 -> 0
[ 1.030000] HTotal = 0 -> 1650
[ 1.030000] VTotal = 0 -> 750
[ 1.030000] ScanMode = I -> P
[ 1.030000] PCLK = 0,(1650x750) PROGRESS CHANGE MODE
[ 1.040000] VIC = 4
[ 1.120000] usb 1-1: new high speed USB device using musb_hdrc and address 2
[ 1.270000] usb 1-1: configuration #1 chosen from 1 choice
[ 1.270000] hub 1-1:1.0: USB hub found
[ 1.280000] hub 1-1:1.0: 2 ports detected
[ 1.530000] UBI: attached mtd2 to ubi0
[ 1.530000] UBI: MTD device name: "filesystem"
[ 1.540000] UBI: MTD device size: 113 MiB
[ 1.540000] UBI: number of good PEBs: 904
[ 1.550000] UBI: number of bad PEBs: 0
[ 1.550000] UBI: max. allowed volumes: 128
[ 1.560000] UBI: wear-leveling threshold: 4096
[ 1.560000] UBI: number of internal volumes: 1
[ 1.560000] UBI: number of user volumes: 1
[ 1.570000] UBI: available PEBs: 0
[ 1.570000] UBI: total number of reserved PEBs: 904
[ 1.580000] UBI: number of PEBs reserved for bad PEB handling: 9
[ 1.580000] UBI: max/mean erase counter: 109/1
[ 1.590000] UBI: image sequence number: 267888972
[ 1.590000] UBI: background thread "ubi_bgt0d" started, PID 349
[ 1.600000] console [netcon0] enabled
[ 1.610000] netconsole: network logging started
[ 1.610000] Initializing USB Mass Storage driver...
[ 1.620000] usbcore: registered new interface driver usb-storage
[ 1.620000] USB Mass Storage support registered.
[ 1.630000] usbcore: registered new interface driver usbtest
[ 1.640000] i2c /dev entries driver
[ 1.640000] Linux video capture interface: v2.00
[ 1.650000] ths7303 1-002c: chip found @ 0x58 (DaVinci I2C adapter)
[ 1.650000] ths7303 1-002c: ths7303 write failed
[ 1.660000] ths7303: probe of 1-002c failed with error -121
[ 1.670000] tvp5150_init
[ 1.670000] vpfe_init
[ 1.670000] vpfe-capture: vpss clock vpss_master enabled
[ 1.680000] vpfe-capture vpfe-capture: v4l2 device registered
[ 1.680000] vpfe-capture vpfe-capture: video device registered
[ 1.690000] tvp5150_probe
[ 1.690000] tvp5150 1-005d: tvp5150 1-005d decoder driver registered !!
[ 1.700000] vpfe-capture vpfe-capture: v4l2 sub device tvp5150 registered
[ 1.710000] vpfe-capture vpfe-capture: v4l2 sub device cat6023 register fails
[ 1.720000] vpfe_register_ccdc_device: DM365 ISIF
[ 1.720000] DM365 ISIF is registered with vpfe.
[ 1.730000] Trying to register davinci display video device.
[ 1.740000] layer=c17f7000,layer->video_dev=c17f7164
[ 1.740000] Trying to register davinci display video device.
[ 1.750000] layer=c17f7400,layer->video_dev=c17f7564
[ 1.750000] davinci_init:DaVinci V4L2 Display Driver V1.0 loaded
[ 1.760000] watchdog watchdog: heartbeat 1 sec
[ 1.770000] TCP cubic registered
[ 1.770000] NET: Registered protocol family 17
[ 1.770000] lib80211: common routines for IEEE802.11 drivers
[ 1.780000] ksocket init
[ 2.420000] encrypt device:at88 found
[ 2.450000] Clocks: disable unused mmcsd0
[ 2.450000] Clocks: disable unused mmcsd1
[ 2.450000] Clocks: disable unused spi0
[ 2.450000] Clocks: disable unused spi1
[ 2.450000] Clocks: disable unused spi2
[ 2.450000] Clocks: disable unused spi3
[ 2.450000] Clocks: disable unused spi4
[ 2.450000] Clocks: disable unused pwm0
[ 2.450000] Clocks: disable unused pwm1
[ 2.450000] Clocks: disable unused pwm2
[ 2.450000] Clocks: disable unused pwm3
[ 2.450000] Clocks: disable unused timer1
[ 2.450000] Clocks: disable unused timer3
[ 2.450000] Clocks: disable unused emac
[ 2.450000] Clocks: disable unused voice_codec
[ 2.450000] Clocks: disable unused asp0
[ 2.450000] Clocks: disable unused rto
[ 2.450000] Clocks: disable unused mjcp
[ 2.530000] nnnn===0
[ 2.530000] davinci_emac_probe: using random MAC addr: be:82:9d:aa:cf:73
[ 2.540000] emac-mii: probed
[ 2.580000] UBIFS: recovery needed
[ 2.640000] UBIFS: recovery completed
[ 2.640000] UBIFS: mounted UBI device 0, volume 0, name "rootfs"
[ 2.650000] UBIFS: file system size: 110342144 bytes (107756 KiB, 105 MiB, 869 LEBs)
[ 2.660000] UBIFS: journal size: 9023488 bytes (8812 KiB, 8 MiB, 72 LEBs)
[ 2.660000] UBIFS: media format: w4/r0 (latest is w4/r0)
[ 2.670000] UBIFS: default compressor: lzo
[ 2.670000] UBIFS: reserved for root: 0 bytes (0 KiB)
[ 2.680000] VFS: Mounted root (ubifs filesystem) on device 0:13.
[ 2.690000] Freeing init memory: 116K


Filesystem Product Vesion : DJI-Filesystem-1.0-rc2
Runing /etc/init.d/rcS
[ 4.480000] CMEMK module: built on Jan 22 2014 at 14:52:00
[ 4.480000] Reference Linux version 2.6.32
[ 4.500000] File /home/u/dm368/dvsdk_dm368_4_02_00_06/linuxutils_2_26_01_02/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c
[ 4.520000] allocated heap buffer 0xc7000000 of size 0x4400000
[ 4.540000] heap fallback enabled - will try heap if pool buffer is not available
[ 4.550000] CMEM Range Overlaps Kernel Physical - allowing overlap
[ 4.560000] CMEM phys_start (0x1000) overlaps kernel (0x80000000 -> 0x83000000)
[ 4.570000] cmemk initialized
[ 4.600000] IRQK module: built on Jan 22 2014 at 14:52:01
[ 4.600000] Reference Linux version 2.6.32
[ 4.620000] File /home/u/dm368/dvsdk_dm368_4_02_00_06/linuxutils_2_26_01_02/packages/ti/sdo/linuxutils/irq/src/module/irqk.c
[ 4.640000] irqk initialized
[ 4.700000] EDMAK module: built on Jan 22 2014 at 14:52:02
[ 4.700000] Reference Linux version 2.6.32
[ 4.710000] File /home/u/dm368/dvsdk_dm368_4_02_00_06/linuxutils_2_26_01_02/packages/ti/sdo/linuxutils/edma/src/module/edmak.c
[ 5.200000] usb 1-1.1: new high speed USB device using musb_hdrc and address 3
[ 5.350000] usb 1-1.1: configuration #1 chosen from 1 choice
* daemon started successfully *
sulogin: no password entry for root
umount: can't umount /mnt/usb: No such file or directory
login[491]: root login on 'ttyS0' rmdir: '/mnt/usb': No such file or directory
#Process /etc/profile...
root@Dji-Pro:~#
root@Dji-Pro:~#

USBClient version 1.0.23


ReadSize = 2048 Timeout = 90
init libusb successed!!!
!!!!!!!!!!!!!!!!!!!!!!! open 68013 succeed VENDOR_ID = 0x0547
Claiming libusb_claim_interface 68013 successed
usbmuxd_subscribe OK OK
watchdog timeout:5
latency1:33332
latency2:33000
latency3:30000
displaybuffnum1:4
displaybuffnum2:9
start decode stream from 68013
decode init ok, main thread exit
Osd_Init_Font succeed
Osd_Init_Single_Pic :/opt/dji/data/png/icon_mode.png
Osd_Init_Single_Pic :/opt/dji/data/png/icon_satellite.png
Osd_Init_Single_Pic :/opt/dji/data/png/icon_ioc.png
Osd_Init_Single_Pic :/opt/dji/data/png/icon_battery_conctrl.png
Osd_Init_Single_Pic :/opt/dji/data/png/icon_icon_battery_craft.png
Osd_Init_Single_Pic :/opt/dji/data/png/icon_wifi_conctrl.png
Osd_Init_Single_Pic :/opt/dji/data/png/icon_wifi_photo.png
Osd_Init_Single_Pic :/opt/dji/data/png/arrow_down.png
Osd_Init_Single_Pic :/opt/dji/data/png/arrow_up.png
Osd_Init_Single_Pic :/opt/dji/data/png/diamond.png
Osd_Init_Single_Pic :/opt/dji/data/png/triangle.png
root@Dji-Pro:~#

and on internet we can read a lot of info about the used hardware:
UG: DaVinci PSP Installation on DM36x EVM - Texas Instruments Wiki

and i also found a russian website with some informations about the hardware:
Издевательства над DJI N1 Video Encoder

 
  • Like
Reactions: DoctorBuzzard
another update.
I made a tool to easily send hex characters to lightbridge.
This is how to use it:
-connect the usb cable
-poweron the LB
-check the com port number associated to LB on windows "devices manager"
-select on my tool the Lightbridge COM port number
-select the speed: 57600
-press OPEN PORT button

now you should see some prints coming from the LB

Now you can send hex data sequence, by selecting the HEX mode, pasting hex "magic" sequence in the texbox and pressing SEND button

If you want instead to enable Linux terminal, press the button ENABLE LINUX INTERFACE ON LIGHTBRIDGE and then start to type commands on the textbox and then press SEND button (ensure that TEXT MODE option is selected).
you can also press enter key instead of SEND button

Here annexed you can find the tool (first file) while the second file is the sources in vb.net.
 

Attachments

  • LightBridgeTerminal.zip
    16.8 KB · Views: 3,868
  • source code for Lightbridge Terminal.zip
    278.4 KB · Views: 3,266
p.s.: on the tool you will also find a button to "disable linux interface" cause i found a magix hex seguence for this:
55BB55BBFE000000FE


Please, also consider that I didn'the spent time on the appearance of the implementation of a good terminal tool. The ansi characters used by Linux terminal are not implemented, so, if you want to perform a lot of commands on Linux, or to edit a file, I suggest to enable Linux terminal with my tool, then close it and open hyperterminal, tera term, putty, or the tool that you prefer.
 
Last edited:
what i need for start software in Win7 x64 ?
the tool should work as it is. it is developed with vb.net, so it should work as it is.
you don't need anything.
If you want to use the source code, you will need vb.net
 
andrew wrote to me in private a really interesting teory, and it seems he knows what he writes:
"you problem happen when people use lb and same devices from Dji, time-to-time, and bad blocks growing up, but if you once a month start devices, Linux mark bad blocks, and change system parameters, but if don't use 3-4-5month, bad block broke flash Ubl, and you can't start.. Linux. in a Ph4, Dji remove this memory and I think no more this situation will happen."

Ha also explained to me that inside the LB there is a serial port and it is always enabled. With that you can see the complete boot process, also in broken LB. So actually my next step it will be to open the LB and solder a serial port.
 
Interesting teory, but my fault units is new, never work and never connected to DJI devices or drones, I want use it in a my Cable Cam project. May be the unit was in some store from many months...
 
Interesting teory, but my fault units is new, never work and never connected to DJI devices or drones, I want use it in a my Cable Cam project. May be the unit was in some store from many months...
2 of my 3 LB had the same problem once arrived to me. I suspect some kind of well known bug

Then I sent back to dji and they replaced it, then after few months one more lb had the same problem, I sent back to dji and they replaced it. Actually I have again the problem to 2 lb.
 
Last edited:
Jeez. With so much tech knowledge maybe you should build your own perfect drone operating system and hologram projector to view on. Lmao


Sent from my iPhone using PhantomPilots mobile app
 
Here you find some pictures of what you find inside DJI Lightbridge
 

Attachments

  • IMG_20160506_134540.jpg
    IMG_20160506_134540.jpg
    704.6 KB · Views: 2,664
  • IMG_20160506_134558.jpg
    IMG_20160506_134558.jpg
    720.1 KB · Views: 2,630
  • IMG_20160506_134829.jpg
    IMG_20160506_134829.jpg
    509.9 KB · Views: 2,099
  • IMG_20160506_134839.jpg
    IMG_20160506_134839.jpg
    604.6 KB · Views: 2,324
I found a method to save the update packages without open the LB.
Up to now I successfully copied the ground decoder firmware to my PC.
This is how i did:

===================================================
follow this method to copy the update packages
first of all, connect to upgrade usb port and run my tool
enable linux terminal, using my tool, then close my tool
open a common terminal software like hyperterminal, tera term, putty or equivalent
in order to be able to connect to the LB serial line at the preferred speed.
type these commands:
===================================================



cd /
mkdir usbflash

cd /tmp

vi gauchoscript.sh

================================================
type: i (to start inserting data in the file)
copy and paste the following script:
================================================

#!/bin/bash
#Purpose = Backup of Important Data
#Created on 08-05-2016
#Author = Gaucho
#Version 1.0
#START
while true
do
sleep 1 # the tar will be executed after 1 seconds from the previous one
TIME=`date +%H-%M-%S` # This Command will add date in Backup File Name.
FILENAME=lightbridge_backup-$TIME.tar.gz # Here i define Backup file name format.
SRCDIR=/opt/tmp # Location of files to save
DESDIR=/usbflash # Destination of backup file.
# tar -cpzf $DESDIR/$FILENAME $SRCDIR #this command, if uncommented, can be used to backup entire folder
cp $SRCDIR/update.tar.gz $DESDIR/$FILENAME #copy the file to our usb disk
done
#END


================================================
press ESC key and type :wq and then press ENTER key (to save the file)

now add execution privileges to the script
then run the script and check that a tgz backup files are generated:
================================================

chmod +x gauchoscript.sh
./gauchoscript.sh

====================================================
type CTRL+C key combination to stop execution, then type ls -la
to see the generated backups list
remove the generated files
====================================================

rm /usbflash/light*

====================================================
insert usb flash drive on the big usb port of the LB
then use the following command to mount the disk and run the script
(to run the script on the background we just add & )
====================================================
mount /dev/sda1 /usbflash
mv ./gauchoscript.sh /usbflash
cd /usbflash
./gauchoscript.sh &

================================================================
1.now exit from the terminal and close it
2.open my tool and disable linux, then close my tool
3.open the assistant and perform an update
4.when it requests a power cycle, power off LB and then remove the usb drive
5.power on the device and check that it still works!
6.on the pendrive you will find a lot of backups.
the biggest one it should be the file containing our update package
=================================================================
 
unfortunately the above procedure works only for the decoder package, cause it is big.
for the other two firmware, I was not able to save them.
Anyway the saved file is a tar.gz file encrypted with openssl, infact editing it with notepad, you can see that it starts with Salt__

So we miss the password to decrypt the annexed file.
 

Attachments

  • lightbridge_ground_controller_firmware_version1.4.8.zip
    3.8 MB · Views: 1,181
i'm studing another method to get the files directly from the DJI server
 
I want to share also another information. I tried to connect to the internal serial ports shown on the annexed image, but i wasn't able to get any character form them.
I tried with levels adapter between pc and LB and i also tried without it.
I also tried at 2 speeds, (57200 and 115200 bps) but the result it was the same.
no luck.
 

Attachments

  • LB PORTS.png
    LB PORTS.png
    4.5 MB · Views: 3,664

Members online

Forum statistics

Threads
143,066
Messages
1,467,358
Members
104,936
Latest member
hirehackers