Recovering Bricked Device

If, like me, you're good at inadvertently messing up a device as you poke about with its software innards it is good to know there is a Nvida Tegra APX mode that allows the device to have its original flash-memory images re-written via the USB port.

Download a Device Image from Notion Ink

There are several images depending on the hardware configuration of the Adam model, and the operating system being used on the host PC: For LCD WiFi 3G NIA920080411 For LCD WiFi NIA020080411 For Pixel Qi WiFi NIP020080411 For Pixel Qi WiFi 3G NIP920080411

I'll only be dealing with recovery from a Linux host.

Prepare to Write Device Image

Unzip the appropriate package. In my case it is the Pixel Qi (PQ) version:

$ unzip
   creating: nvflash/
   creating: nvflash/recovery/
   creating: nvflash/buildbct_docs/
   creating: nvflash/data/
   creating: nvflash/META-INF/
   creating: nvflash/tests/
   creating: nvflash/data/bin/
   creating: nvflash/META-INF/com/
   creating: nvflash/tests/mobilemods/
   creating: nvflash/META-INF/com/google/
   creating: nvflash/META-INF/com/google/android/
  inflating: nvflash/system.img      
  inflating: nvflash/boot.img        
  inflating: nvflash/recovery.img    
  inflating: nvflash/mbtdata.img     
  inflating: nvflash/   
  inflating: nvflash/nvflash         
  inflating: nvflash/harmony_a02_12Mhz_H5PS1G83EFR-S6C_333Mhz_512MB_2K8Nand_HY27UF084G2B-TP.bct  
  inflating: nvflash/microboot.bin   
  inflating: nvflash/          
  inflating: nvflash/harmony_a02_12Mhz_H5PS1G83EFR-S6C_333Mhz_1GB_2K8Nand_HY27UF084G2B-TP.bct  
  inflating: nvflash/android_fastboot_full.cfg  
  inflating: nvflash/  
  inflating: nvflash/     
  inflating: nvflash/command         
  inflating: nvflash/bootloader.bin  
  inflating: nvflash/  
  inflating: nvflash/recovery/command  
  inflating: nvflash/buildbct_docs/readme.txt  
  inflating: nvflash/buildbct_docs/whistler_syntax.cfg  
  inflating: nvflash/buildbct_docs/whistler_test.cfg  
    linking: nvflash/data/bin/rm     -> toolbox 
    linking: nvflash/data/bin/ifconfig  -> toolbox 
 extracting: nvflash/data/bin/toolbox  
  inflating: nvflash/tests/mobilemods/testloader.axf  
  inflating: nvflash/tests/mobilemods/diags_nand.axf  
  inflating: nvflash/tests/mobilemods/diags_sdmmc.axf  
  inflating: nvflash/tests/mobilemods/mats.axf  
  inflating: nvflash/tests/mobilemods/basic.axf  
  inflating: nvflash/tests/mobilemods/wfblit.axf  
  inflating: nvflash/META-INF/com/google/android/update-binary  
  inflating: nvflash/META-INF/com/google/android/updater-script  
finishing deferred symbolic links:
  nvflash/data/bin/rm    -> toolbox
  nvflash/data/bin/ifconfig -> toolbox 

Move into the newly created tools directory:

cd nvflash/

Prepare Adam for APX mode Recovery

Turn off the device. Hold down the Volume down rocker button and simultaneously hold the power button for two seconds. The orange (charge) and red (CPU) LEDs on the right side of the Adam will light up, indicating that the Adam is in force recovery mode. Release both buttons.

Now connect the mini-USB port on the left side of the Adam to the host PC.

Write Device Image

If this process is interrupted in any way the device may well be permanently dead and require return to Notion Ink. Therefore it is sensible to have it connected to the charger and ensure the USB cable cannot be disturbed, and the host PC isn't going to go to sleep or lose power during the process - a laptop with good battery or a PC on a good uninterruptable power supply (UPS) is the safest option.

$ ./ 

Nvflash started
rcm version 0X20001
System Information:
   chip name: t20
   chip id: 0x20 major: 1 minor: 3
   chip sku: 0x8
   chip uid: 0x17144041442040d7
   macrovision: disabled
   hdcp: enabled
   sbk burned: false
   dk burned: false
   boot device: nand
   operating mode: 3
   device config strap: 0
   device config fuse: 0
   sdram config strap: 0

sending file: harmony_a02_12Mhz_H5PS1G83EFR-S6C_333Mhz_1GB_2K8Nand_HY27UF084G2B-TP.bct
- 4080/4080 bytes sent
harmony_a02_12Mhz_H5PS1G83EFR-S6C_333Mhz_1GB_2K8Nand_HY27UF084G2B-TP.bct sent successfully
odm data: 0xbc0c0011
downloading bootloader -- load address: 0x108000 entry point: 0x108000
sending file: bootloader.bin
| 941356/941356 bytes sent
bootloader.bin sent successfully
waiting for bootloader to initialize
bootloader downloaded successfully
setting device: 1 0
creating partition: BCT
creating partition: PT
creating partition: EBT
creating partition: NVC
creating partition: MBT
creating partition: MSC
creating partition: SOS
creating partition: LNX
creating partition: APP
creating partition: CAC
Formatting partition 2 BCT please wait.. done!
Formatting partition 3 PT please wait.. done!
Formatting partition 4 EBT please wait.. done!
Formatting partition 5 NVC please wait.. done!
Formatting partition 6 MBT please wait.. done!
Formatting partition 7 MSC please wait.. done!
Formatting partition 8 SOS please wait.. done!
Formatting partition 9 LNX please wait.. done!
Formatting partition 10 APP please wait.. done!
Formatting partition 11 CAC please wait.. done!
sending file: bootloader.bin
| 941356/941356 bytes sent
bootloader.bin sent successfully
sending file: microboot.bin
\ 95888/95888 bytes sent
microboot.bin sent successfully
sending file: mbtdata.img
- 1024/1024 bytes sent
mbtdata.img sent successfully
sending file: recovery.img
| 3858432/3858432 bytes sent
recovery.img sent successfully
sending file: boot.img
- 3182592/3182592 bytes sent
boot.img sent successfully
sending file: system.img
| 134105664/134105664 bytes sent
system.img sent successfully

Check Device has Recovered

As soon as the software images have been written the Adam should reboot and display the usual "notionink" and "adam" splash screens and then shortly after, the usual Android lock screen.

If this doesn't happen then attempt the recovery again, or contact Notion Ink support for assistance.