| BSL430.NET 1.3.4

BSL430.NET Documentation

# BSL430.NET - The cheapest way to flash MSP430

> DOWNLOAD HERE - TI MSP430 Bootloader (BSL) .NET Cross-Platform Toolchain

1. Main Features
2. GUI App (Windows)
3. Console App (Windows, Linux)
4. Library
5. 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();
}

# BSL430.NET.FirmwareTools - FW manipulation made easy

> DOWNLOAD HERE - Firmware Tools as BSL430.NET sub package

1. Main Features
2. GUI & Console App
3. 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);