Fixing flash in DM365 chip within Ph3 Pro gimbal

My sincerest apologies! I've read thousands of posts, etc. I sincerely hope the 'by me a coffee' in your GUI compensates YOU! I'm a software developer by trade, and was absolutely interested in 'resurrecting' the cameras we have (law enforcement), as a challenge. THANK YOU for your efforts in combining what most folks would find a daunting task of extracting, decrypting, separating, re-encrypting and then uploading firmware to specific chipsets in the DJI hardware! It makes things MUCH simpler!

Ahh you give me to much credit, i just took available files etc and wrote the tool to assist people who struggled with using DOS /Command lines.
 
hi all, the old phantom 3 pro still gives me lessons how much a marvel of its time it was and more !!!! yesterday a friend has one with one of the motors yelling when running as it crashed earlier he decided to replace the 4 motors with a set non dji he has around , the shock was the esc reported an error and did not run when he soldered the new ones!!!! he replaced the old dji ones it ran fine ..... how smart this machine is as the esc board identified nondji motors by smart check and refused to run!!!!!!!!!!
 
Hi @quaddamage I really hope you can help me.
I have a Phantom 3 Pro 2015 (USB connection from Phone to Remote controller rather than WiFi) who has been on a crash which caused the breaking of the Gimbal yaw arm and the flat ribbon cable.

Here some useful info about the setup:
Controller GL300B
Aircraft: W323A (PHANTOM 3 PRO 2015)
DJI GO App: 3.1.82
Aircraft Firmware Version: 1.11.20
Remote Controller: 1.9.2
Basic Fly Safe Database: 01.00.01.09

I replaced both the Gimbal Yaw arm and the ribbon cable of the Camera Gimbal.

I can take pictures/videos using the respective buttons on the phone's app or the Remote Controller Physical buttons, and save them on the SD Card, but there is no camera feed on the phone app. In other words, the camera works and motherboard too, as it can gather the pictures/videos taken and save them into the SD Card (which is new and I formatted it from the DJI GO app). I can access the content of the SD Card from a computer by connecting the microUSB Cable to the Gimbal and the PC. The pictures and videos gets recorded and stored on the SD card correctly.

The motor works too, I've successfully run the Gimbal calibration from app. And I can adjust the camera position Up/Down and Left/Right with the wheel controls on the Remote Controller.
The small LED above the camera is Green. The Rear Lights if the Drone are flashing Green while the Front ones are solid Red indicating the nose of the Aircraft.

This model has no WiFi, it is the 2015 model, which uses the USB connection between the Controller and the Phone.

I've tried different USB cables (in addition to the original cable that came with the Drone) from the Controller and the Aircraft, still no luck.

I've tried three Android phones (developer mode and Debug USB both enabled), and with different versions of the DJI GO app, still no Camera feed on the DJI GO app, although the Phone is correctly connected to the Controller and I can see and manage the Aircraft from the app, in fact it does shows "Ready to Go". I can even start the drone engines and fly it.

I've installed different releases of the DJI GO 3 app on different Android Phones and Tablets. Still no luck.
I've installed it on an old iPad Mini 2 running iPad OS 12.XXX, but unfortunately the app will crash and close right after opening it. So, I was not able to test the communication with an iOS device.

Could it be that the Aircraft/Controller has a Firmware that does not work with Android devices?

There was no log in the SD Card, so I copied a very old Firmware, the version 1.1.8, with the target of generating a log, and turned on the Aircraft. After about 15 minutes I turned off the aircraft and then copied the content of the SD Card on my Laptop. There was one log in the root of the SD Card and one under ./MISC/LOG.
I'm attaching both here, but however, I don't see any "device not found" or any error in the any of the modules.

Could you please have a look at these files and tell me if there is anything that I should do?

Would you recommend flashing the DM365 Chip to fix the FPV issue in my specific use case?

What could it be the reason why I cannot get the camera feed on the DJI GO app?

Thanks
 

Attachments

Good comprehensive description.

There was no log in the SD Card, so I copied a very old Firmware, the version 1.1.8, with the target of generating a log, and turned on the Aircraft. After about 15 minutes I turned off the aircraft and then copied the content of the SD Card on my Laptop. There was one log in the root of the SD Card and one under ./MISC/LOG.
I'm attaching both here, but however, I don't see any "device not found" or any error in the any of the modules.
That can be visible in the log:

Code:
 [00014492]========== remo-con disconnect. boot(15) ============
 [00014535]Packet [C:\P3X_FW_V01.01.0008.bin] detected, card sn [0xa99761cf].
 [00014660]Packet upgrade start...

 [00014707]Packet checking...
 [00014749]Packet upgrade failed at packet checking.

But as you can see, the drone refused to list modules - upgrade failed before such listing.
All the text above comes from previous upgrades; from these you can find out that the drone is currently at FW `P3X_FW_V01.11.0020`.

So why it failed before listing? The packet checking does these things:
* read header from the packet file
* compare certain fields within the header (product type and model, anti rollback value, checksum of the header)
* get flow type (a value determining how to proceed with upgrade)
* check if the flow type is acceptable

The flow type stuff would show a line about "Packet vlink" if we would reach it, so we clearly didn't. The upgrade stopped at header check - probably anti-rollback check.

So what I would suggest now is do the same again - gather the logs - but with P3X_FW_V01.11.0020 binary on the SD-card. That way we will pass the "packet checking" and see the list of modules, and whether there really are no "device not found". No upgrade should happen, as that is the currently installed firmware.
 
  • Like
Reactions: Oso and Droneted
Good comprehensive description.


That can be visible in the log:

Code:
 [00014492]========== remo-con disconnect. boot(15) ============
 [00014535]Packet [C:\P3X_FW_V01.01.0008.bin] detected, card sn [0xa99761cf].
 [00014660]Packet upgrade start...

 [00014707]Packet checking...
 [00014749]Packet upgrade failed at packet checking.

But as you can see, the drone refused to list modules - upgrade failed before such listing.
All the text above comes from previous upgrades; from these you can find out that the drone is currently at FW `P3X_FW_V01.11.0020`.

So why it failed before listing? The packet checking does these things:
* read header from the packet file
* compare certain fields within the header (product type and model, anti rollback value, checksum of the header)
* get flow type (a value determining how to proceed with upgrade)
* check if the flow type is acceptable

The flow type stuff would show a line about "Packet vlink" if we would reach it, so we clearly didn't. The upgrade stopped at header check - probably anti-rollback check.

So what I would suggest now is do the same again - gather the logs - but with P3X_FW_V01.11.0020 binary on the SD-card. That way we will pass the "packet checking" and see the list of modules, and whether there really are no "device not found". No upgrade should happen, as that is the currently installed firmware.
Hi @quaddamage,
Thanks a lot for replying to my post!

Ok, I tried to start the firmware upgrade putting the P3X_FW_V01.11.0020 binary on the SD-card (which is the same FW version running currently on the Aircraft). I did not get the green light on the small LED on the Camera Gimbal, and after about 20 min I powered down the Aircraft and copied the new logs from the SD Card.

Here attached are the new logs. This time I've found the following anomalies:

[00015535][11 01][00] v1.8.0.0 -> v2.0.0.33, firmware v1.8.0.0 not support.

[00028587][15 00][00] device not detected.

[00041524][08 00][00] device not detected.

What should I do at this point?

Thanks in advance!
 

Attachments

Code:
[00028587][15 00][00] device not detected.
[00041524][08 00][00] device not detected.

Right, so it is the standard issue with DaVinci chip not booting.

Reflash the bootloader on DaVinci chip - this is what the "Excellent video" linked above and many other videos and instructions show, so you should have no problem with that. Get the top board out of the gimbal, solder wires to it, connect to a PC and use bootloader flashing tool from the manufacturer - Texas Instruments.

In many cases, only bootloader is damaged. Though you should check in a terminal app to make sure it's booting after the flashing. Otherwise you're risking the need to open the gimbal again.

The instruction which lacks details but gives the best understanding of what you're doing is here:

And here is one I made, in form of a chart:
(need to click to reveal the chart)
 
Hi @quaddamage,
ok, I connected the wires to the Gimbal Top board, BTW mine is the P01069.07.
I've used an ST Nucleo board as USB to TTL. I've run the following command twice:
sfh -nandflash -v -p "COM33" ubl1.img u-boot.img

The first time I've got the BOOTME message, the second time at the end I got the following BAD message:
Sending the UBL image
Waiting for SENDIMG sequence...
Target: NAND_open() failed!Starting UART Boot...
Target: BOOTUBL

Please help understand what I should do to repair this issue.
Thanks a lot in advance!

Here is the log from the command prompt:

-----------------------------------------------------
TI Serial Flasher Host Program for DM36x
(C) 2009, Texas Instruments, Inc.
Ver. 1.50
-----------------------------------------------------


Flashing NAND with ubl1.img and u-boot.img.


Attempting to connect to device COM33...
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: BOOTME
Target: BOOTME
Target: BOOTME
Target: BOOTME
Target: BOOTME
^C
C:\dji>sfh -nandflash -v -p "COM33" ubl1.img u-boot.img

-----------------------------------------------------
TI Serial Flasher Host Program for DM36x
(C) 2009, Texas Instruments, Inc.
Ver. 1.50
-----------------------------------------------------


Flashing NAND with ubl1.img and u-boot.img.


Attempting to connect to device COM33...
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: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

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: CORRUPT
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BOOTME
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
Target: BOOTME

Waiting for the DM36x...
Target: BEGIN
Target: CORRUPT
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: NAND_open() failed!Starting UART Boot...
Target: BOOTUBL

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: NAND_open() failed!Starting UART Boot...
Target: BOOTUBL

Waiting for SFT on the DM36x...
 
Here the pictures of the soldered wires
 

Attachments

  • 20250918_181207.jpg
    20250918_181207.jpg
    275.8 KB · Views: 120
  • 20250918_181136.jpg
    20250918_181136.jpg
    609.8 KB · Views: 121
  • 20250918_181102.jpg
    20250918_181102.jpg
    527.8 KB · Views: 133
Code:
NAND_open() failed!

This is a hardware issue between DaVinci chip and the NAND chip.

Looks like your only hope is this instruction, then:

You can try reflowing the chip (putting soldering paste around and heating it up so that maybe it will re-settle on the contact points), and if that won't help then the only option is NAND replacement.
 
Code:
NAND_open() failed!

This is a hardware issue between DaVinci chip and the NAND chip.

Looks like your only hope is this instruction, then:

You can try reflowing the chip (putting soldering paste around and heating it up so that maybe it will re-settle on the contact points), and if that won't help then the only option is NAND replacement.
Thanks @quaddamage,
ok, this looks a bit unfortunate. I will try to reflow the NAND chip hoping that this will be sufficient to make it functional again, but if this does not work, do you have any recommendation on where to purchase the replacement IC ?
 
do you have any recommendation on where to purchase the replacement IC ?
I did that in China. Aliexpress probably.
There were few manufacturers with compatible chips, I bought Micron.
The model names for different manufacturers are on dji-firmware-tools wiki, I think.
(at the point I was buying these were not there, so I figured out the replacements by searching the net)
 
Thanks, the NAND IC on my board is has the marking "048LA A03G3", but I cannot find it anywhere on the Internet.
The board PN is P01069.07.
Can you suggest me a replacement part number?
 
At this post I've found a table named "P01069.07 components" with the following NAND ICs but not sure which one I should buy:


Marking

Amt.

Pkg.

Function

Specification

MXIC X154009 MX30LF2G18AC-XKI 8C149000

1

63-ball 11x9 VFBGA

3V SLC 2GBit NAND Flash memory; stores programming for A9S75

description

4YE12 NQ283

1

63-ball 11x9 VFBGA

Micron MT29F2G08ABAEAH4 NAND Flash; stores programming for A9S75; is MX30LF2G replacement on some boards

description

MXIC MX30LF1G

1

63-ball 11x9 VFBGA

3V SLC 1GBit NAND Flash memory; only on 4K boards - stores programming for DM365

description

4UF12 NW361

1

63-ball 11x9 VFBGA

Micron MT29F1G08ABAEAH4 NAND Flash, 1GBit; only on 4K boards - stores programming for DM365; is MX30LF1G replacement on some boards

description
 
You're buying a chip for TI DM365 "DaVinci", not for Ambarella A9S75. Hope that clears up everything.
right, so it should be one of the last two. And I just read the IC marking under the sticker, it says 5HE12 NW361 which looks to be a newer version in respect to the last one in the table I posted. Are those interchangeable?
 
Are those interchangeable?
You can use either MXIC MX30LF1G or Micron MT29F1G08ABAEAH4. If you'll find slightly different marking, check in the datasheet what it means and you'll know whether they're compatible.

I remember finding a 3rd alternative, Samsung or Skhynix.. can't remember.
 
Ok, I am ordering the MX30LF1G18AC-XKI (BGA version).
How difficult is the flashing procedure of this NAND ? Is there a single image that I can flash on the chip that contains everything? Could you please share the link to the file?

Thanks again!
 
Last edited:

Members online

Forum statistics

Threads
143,857
Messages
1,473,707
Members
105,948
Latest member
hcashmore11