Programing NXP LPC via USB as a flash disk (USB ISP MSC)

Without doubt, that is the checksum missing from the image.

LPC microcontrollers have an additional checksum in the binary over the first 7 entries of the vector table. That was e.g. discussed in LPC 1768 Flashing and Debugging - #5 by valeros.

You can also extend PlatformIO with this logic. For that, add to the platformio.ini the line

extra_scripts = extra_script.py

and then in the root of the project, create a extra_script.py file with the content from lpc1768_blinky_example/extra_script.py at fe34b7b44271502b961fa4e79e1bb30180092133 · jxsl13/lpc1768_blinky_example · GitHub

But comment out all lines after # fix openocd target because that’ll re-target the upload method to OpenOCD, which you probably don’t want.

In PlatofrmIO you can also say

upload_protocol = mbed

and that is basically uploading the .bin file to the available USB disk (as for all mbed-enabled CMSIS-DAP boards)

I’ll open an issue about this, LPC11U35 does not work well? · Issue #6 · platformio/platform-nxplpc · GitHub was closed prematurely without the right fix.