G400 - unable to flash


I have a board with a G400-S module which was suddenly unable to flash, so I replaced the module.
The new module is still unable to flash.
We use the UART COM1 programming interface

I have checked:

  • +3.3V
  • +1.8V
  • +1.0V
  • 12MHz Y1
  • Pin 77 receiving 0-3.3V UART data at 115200 when I push Erase in MFDeploy or Start in Visual Studio
  • Pin 76 transmitting UART data at 115200
    • When I trip the reset line, I get the text ‘RomBOOT’ at my PC, confirming the signal path, and that something on the G400 is working.
      • Note: the first packet is 0-3.3V for 750us, 200us delay, then 400us of data from 2.3-3.3V. Seems odd. It’s very consistent though. Attached below.
    • When I Erase/Start, there is NO data transmitted.
  • SAM-BA pin 75 is 3.3V
  • LDR0 pin 101 is 0V
  • LDR1 pin 38 is 3.3V

VS says “Unable to communicate with device…”
MFDeploy says “Error: No response from device”.

I have confirmed that my RS232 dongle works with other boards.
Any suggestions would be greatly appreciated.

RomBOOT message + garbage:

Address you using samba tool? This is the very first step to load the bootloader. Mfdeploy will not do anything until you have the loader on the module.

Typically we can just flash without any preparation. I’m not sure why this module is apparently blank.
Can you point to a document I can follow?
The only one I found is 404: https://www.ghielectronics.com/docs/336/installing-the-g400-bootloader
I was reading here https://docs.ghielectronics.com/software/netmf/bootloader.html too.

A working device booted to firmware says:

Debug: COM1
LCD: 480x272
.NetMF v4.3.1.0
G400, Build Date:
Mar 24 2016 12:03:09
ARM Compiler version 410713

TinyCLR (Build

A working device booted to TinyBooter says:

TinyBooter v4.3.1.0
G400 Build Date: Mar 24 2016 12:06:55
ARM Compiler version 410713
MSdbgV1 ▒Ս_▒▒+

A working device booted to SAM-BA says:
> GHI Electronics, LLC Bootloader
> -------------------------------
> OK.
Side question: are there release notes for the bootloaders? I see we are 2 versions behind.

These results are not what I’d expected. I’m reading the boot mode pins from the g400-s datasheet.
LDR0 LDR1 Boot
XXXX HIGH Firmware
HIGH LOW TinyBooter

So it’s honestly not clear how many bootloaders there are.
My understanding is, from metal upwards, on a working device I have:

  1. SAM-BA (which I can’t seem to boot to directly)
  2. GHI bootloader v2.0.1
  3. TinyBooter
  4. Application firmware

So I think I need to:

  1. access SAM-BA and install GHI bootloader - I don’t know how to do this. You said the samba tool? I installed SAM-BA 3.3.1 but I think I need some configuration info to get this working.
  2. boot to GHI bootloader and install TinyBooter - I think I need a .ghi file to do this and can’t find it.

Does that make sense?

you should not use v2 loader only v1, but then realized v1 was not listed new docs, so we just added it https://github.com/ghi-electronics/Documentation/blob/dev/software/netmf/bootloader.md

Hi Gus,

  1. I checked, all our working G400s are running loader v2.0.1. I believe this is how we normally receive them from the distributor.
  2. The instructions you link show how to upload a GHI file, can you provide or link to the appropriate file please?
  3. I still can’t find instructions on using SAM-BA to install loader in the first place. Any tips?


Samba is not our tool. It had been a while since I have done this (years) but I think you install samba and then just run three batch file

Anyway, instructions are on the g400 page and the download is on the loader page. Look for g400 v1.0

Are those three different devices? Or they are just one but you put it in different mode?

Hi all,

This was caused by a hardware issue; a chip was causing the reset line to be flaky.
The below is for reference for future me when googling the boot pins on a G400.
My apologies and thanks.

For reference, the G400 page is here:

The LDR pins are described differently there than the datasheet I linked above, from Mouser
The GHI document is correct, the datasheet is wrong.

This is one device (G400-S) booted into the three modes available with the LDR0/1 pins.
The corrected terminology is

A working device booted to firmware / managed application says:
A working device booted to TinyBooter says:
A working device booted to GHI Electronics Bootloader says:

The working device does create the additional ‘Bossa’ COM port by reset while grounding SPI1_MISO pin / pin 75 (regardless of LDR0/1 pins, and regardless of the MODE pin which only applies to GHI and Tiny bootloaders). I can then connect to this port with the SAM-BA gui.

1 Like

Glad you have it figured out. Note that this has been greatly improved on SITCore. You will find it much easier when you switch in the future.