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

Joined
Jun 2, 2017
Messages
13
Reaction score
2
Age
34
Dear all
My lightbridge 1 has the problem discussed in this thread. I do not have the time to repair it by myself. If anyone here would be interested to try repair in exchange of some money (to be arranged), please let me know.

Have fun
M.
 
Joined
Jun 2, 2017
Messages
13
Reaction score
2
Age
34
Dear all,

Unfortunately I ripped off the 3.3v soldering pad on air unit. Is there another place on the board were I could access the 3.3v? I don't see any.

(I was pulling on my solder joint to assess its quality)

Thanks
M.
 
Joined
Jun 30, 2016
Messages
1,371
Reaction score
587
Location
PL
All the images of that board are pool quality. And test pads are not named..
(looked mostly at the github page about that board)

Anyway, the 3.3V is stabilized by a buck converter. Buck converters have a large inductor at output. Not sure at which side your 3.3V is (most likely on both sides - there's one buck which creates 3.3V, and another which converts it into lower voltages for DM365 - it requires a few voltages, enabled at specific timing), but you can definitely find the place by following the voltage regulators.
 
Joined
Jun 2, 2017
Messages
13
Reaction score
2
Age
34
I tried to short bsel with the pin right next to it instead of the 3v3 suggested at the beggining of this thread. It worked. My lightbridge is now working again - thanks to those who developed this solution.
 
Joined
Jun 2, 2017
Messages
13
Reaction score
2
Age
34
Seems I have an interesting problem.

Gorpo connected to HDMI screen : it works
Gopro connected to lightbridge via AV: it works
Computer connected to lightbridge HDMI: it works, lightbridge transmits what it on my computer's screen
Gopro connected to lightbridge via HDMI: does not work
Same but other (and tested) HDMI cable: does not work

I don't get it. Gopro HDMI works and lightbridge HDMI do work separately, but not togheter. Previously and right after the nand flash fix, they worked well togheter.

I guess I'll try to get some other HDMI cam and will see. Anyone here would have an explanation for this issue? It is gopro 3.
 
Joined
May 12, 2020
Messages
1
Reaction score
0
Age
51
It all worked for me. Had an initial issue with coms due to being plugged into DTR pin rather than GND on the FTDI adaptor but once I realised this the flash process worked like a charm! No issues with using Windows 10 64bit ! My Thanks to the the developer!
 
Joined
Sep 14, 2017
Messages
10
Reaction score
1
Age
30
Hi

Is there a solution for the P2V+ ground unit after firmwareproblem done by DJI?

Fabio


I still would like to repair my ground units from the p2v+. The RE700 are broken after update via android app. Is there no way to reflash them with openwrt/ddwrt/lucie?

I can't be the only affected by this problem here.
I found some posts about the same brick but no solution.

Thank you in advance


Fabio
 
Joined
Jun 30, 2016
Messages
1,371
Reaction score
587
Location
PL
still would like to repair my ground units from the p2v+. The RE700 are broken after update via android app. Is there no way to reflash them with openwrt/ddwrt/lucie?

We'd need the chip identified.
And we'd need the firmware binary.

OpenWRT has good forums, so having all that, you'd likely be able to find flashing details there.

Not much info on O-Gs wiki right now.
 
Joined
Jul 13, 2020
Messages
1
Reaction score
0
Age
30
Hello guys, I have the problem described in this topic, a LB that has been off for more than 2 years! I bought the FT232RL, soldered as shown in the images, I started with the ground station,
but when I run the program (step 6) the program gets stuck in the message:
Waiting for the DM36x ...
When I turn on LB it only gives:
Target:?

if I start the program with the LB on, it doesn't even show the
"Target:?"

Has anyone ever experienced this? or can you help me?
 
Joined
Jun 30, 2016
Messages
1,371
Reaction score
587
Location
PL
but when I run the program (step 6) the program gets stuck in the message:
Waiting for the DM36x ...
When I turn on LB it only gives:
Target:?

Use terminal app (ie. PuTTY) to check what the board displays from the moment it gets power.

Make sure you've entered serial boot correctly.

You may want to check my guide if you're not sure what you're doing:
 
Joined
Jul 3, 2020
Messages
9
Reaction score
2
Age
64
Hi All,

I want to say thank you to all the hard work with this. There's a number of Vision Plus units that have no live view. It's a corrup NAND in the WiFi transmitter board that responds to 192.168.1.10. Using the sfh_DM36x tool I was able to resolve this and I now have my live view back!
What did u do my doing the same thing 😂
 
Joined
Jun 2, 2017
Messages
13
Reaction score
2
Age
34
Dear guys,
My lightbridge 1 got broken again.

I did the whole procedure on my lightbridge 1. I got the "operation success" message.

Weird thing now is that even if bsel and 3v3 are disconnected, I keep getting the "bootme" message on tera term. It looks as if the board was stuck in the serial programming mode.

This is not so nice, because obviously I cannot use the board like that.



Any idea on how to come back to the normal "working" mode?



Thanks a lot

Martin
 
Joined
Jun 30, 2016
Messages
1,371
Reaction score
587
Location
PL
Check with multimeter whether the paths are not still shorted.
If they're not, short the path temporarily to GND.
 
Joined
Feb 16, 2020
Messages
4
Reaction score
0
Age
46
I have a DJI Vision 2+ and have successfully repaired it following this guide twice already, but given that I don't fly it that often, I'm thinking for alternatives. Has anybody replaced the NAND chip for another one that doesn't get corrupted so easily?

The other option would be to solder wires to the relevant points and expose a 6 pin header outside so I can use a jumper to short the boot with with the 3.3V and connect to the serial without disassembling the drone.
 
Joined
Jun 30, 2016
Messages
1,371
Reaction score
587
Location
PL
Has anybody replaced the NAND chip for another one that doesn't get corrupted so easily?

Though personally I wouldn't replace it unless it's broken. This is why I did that in the story I linked.
 
Joined
Mar 29, 2021
Messages
1
Reaction score
0
Age
53
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. 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.
View attachment 72882


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).
View attachment 72889
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
View attachment 63426
View attachment 63000

AIR UNIT
View attachment 72886

View attachment 115913
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 ([email protected]) (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: [email protected],0 with framebuffer size 8100KB
[  0.230000] davincifb davincifb.0: dm_vid0_fb: [email protected],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: [email protected],0 with framebuffer size 4050KB
[  0.250000] davincifb davincifb.0: dm_vid1_fb: [email protected],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...
[email protected]:~#
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.....)
hello, gaucho thanks for your great post. I wanted to know if it is possible to flash the air unit in a different way? since the TX pin broken on the circuit
 

New Threads

Members online

Forum statistics

Threads
140,509
Messages
1,448,380
Members
102,302
Latest member
Empyreus