Dumping firmware from operating Braava 380 floor cleaning robot

Many PCB boards are coming with hidden connector pinout description. It can be traced back with microcontroller datasheet and electric probe.

jtag_1895_cropMapped JTAG pins was enough to connect Wiggler2 programmer and dump firmware with H-JTAG software.

h-jtag_server_unknown_chipFirst launch needs to specify connection interface.

h-jtag_server_wiggler_setupH-JTAG server needs LPT pinout, an clock setup to read ARM chip type properly.

h-jtag_server_ARM7TDMIThen setup H-Flasher: select AT91SAM7S256 – chip inside Braava.

At first, chip isn’t fully recognized. Its flash id differs from H-Flasher setup.

h-jtag_flasher_chip_id_errorBut, datasheet on page 52 shows, so there was many Chip ID’s of SAM7S256. In this case 0x270B0942 means Rev C.h-jtag_datasheet_chip_idSo, we must skip to check chip flash id to stop confusing H-Flasher.

Then select if You prefer .bin or .hex file format and press “Read” button to dump and save firmware to file.

h-jtag_flasher_read_memory

CAUTION! Do not press “Erase” or “Blank” buttons! Braava mainboard needs some basic firmware to setup microcontroller power and read Power button. After completely memory wipe board cannot start! This state is even more dangerous than run Braava to brick in firmware update mode.

DISCLAIMER: I was not responsible for any hardware or software damage nor warranty void.