BSL430.NET - The cheapest way to flash MSP430

DOWNLOAD HERE - TI MSP430 Bootloader (BSL) .NET Cross-Platform Toolchain
- Main Features
- GUI App (Windows)
- Console App (Windows, Linux)
- Library
- Firmware Tools
1. Main Features
- Replace expensive original MSP FET programmer with cheap FTDI FT232 or Serial COM port
- Upload, Download or Erase MSP430 MCU memory with minimal effort via generic UART converter
- Fexible way how to upgrade device firmware with .NET library, integrable into any app (also production)
- Most common firmware format support: TI-TXT, Intel-HEX, SREC, ELF
- Original C# code implementing TI bootloader protocols 5xx/6xx and 1xx/2xx/4xx (TI doc)
Note: Old 1xx/2xx/4xx bootloader protocol not tested yet!
2. GUI App (Windows)
Wiki docs - First start quick go-through for ease of use
- Download code from MCU:

- Upload firmware to MCU (Dark Mode):

- Erase whole MCU:

- Shell Extension & Association:
3. Console App (Windows, Linux)
Wiki docs - Tutorials how to use console app
- Upload firmware to MCU:

- Scan for available devices:
4. BSL430.NET Library
Wiki docs - Documentation and code samples for easy start and copy & paste
public interface IBsl430Net
{
ScanAllResult ScanAllEx(ScanOptions ScanOpt);
ScanResult<Bsl430NetDevice> ScanAll(ScanOptions ScanOpt);
ScanResult<Tdev> Scan<Tdev>(ScanOptions ScanOpt) where Tdev : Bsl430NetDevice;
StatusEx Erase(Bsl430NetDevice Device);
StatusEx Erase(string DeviceName);
StatusEx Upload(string FirmwarePath, Bsl430NetDevice Device, byte[] Password);
StatusEx Upload(string FirmwarePath, string DeviceName, byte[] Password);
StatusEx Download(byte[] Password, int AddrStart, int DataSize, out List<byte> Data, Bsl430NetDevice Device);
StatusEx Download(byte[] Password, int AddrStart, int DataSize, out List<byte> Data, string DeviceName);
Status SetBaudRate(BaudRate BaudRate);
Status SetInvokeMechanism(InvokeMechanism InvokeMechanism);
Status SetMCU(MCU Mcu);
BaudRate GetBaudRate();
InvokeMechanism GetInvokeMechanism();
MCU GetMCU();
Mode GetMode();
}

DOWNLOAD HERE - Firmware Tools as BSL430.NET sub package
- Main Features
- GUI & Console App
- Library
5. Main Features
- Multiple firmware format support: TI-TXT, Intel-HEX, SREC, ELF
- Parse (read from file) and Create (write to file or string)
- Convert, Combine and Compare between any of these formats
- Validate firmware file and get information like addresses, CRC, sizes..
- [MSP430 only] Get BSL password used to correctly download fw by BSL430.NET
6. GUI & Console App
Wiki docs - BSL430.NET GUI App docs and tutorials
Note: BSL430.NET and Firmware Tools are integrated into single GUI and Console Apps!
- Firmware Tools (Dark Mode):

- Firmware Hex-Edit:
7. FirmwareTools Library
Wiki docs - Ready to use code samples and tutorials
public static Firmware Parse(string FirmwarePath, FwFormat Format, bool FillFF,StringWriter Log);
public static string Create(Firmware Firmware, FwFormat Format, int LineLength);
public static string Create(IEnumerable<byte> Data, int AddrStart, FwFormat Format, int LineLength);
public static string Create(ICollection<FwNode> Data, FwFormat Format, int LineLength);
public static (string Fw, FwFormat Format) Convert(string FirmwarePath, FwFormat Format, bool FillFF, int LineLength);
public static (string Fw, FwFormat Format1, FwFormat Format2) Combine(string FirmwarePath1, string FirmwarePath2, FwFormat Format, bool FillFF, int LineLength);
public static BslPasswords GetPassword(string FirmwarePath);
public static FwInfo Validate(string FirmwarePath, StringWriter Log);
public static (bool Equal, double Match, int BytesDiff) Compare(string FirmwarePath1, string FirmwarePath2);
public static (bool Equal, double Match, int BytesDiff) Compare(Firmware Firmware1, Firmware Firmware2);