Javascript implementation of the Kinetis Bootloader protocol
Based on the Kinetis Bootloader v2.0.0 Reference Manual
Supported communication channels/protocols
- USB
- I2C
- SPI
- CAN
- UART
Supported Commands
We implemented only the commands that is used in UHK software. If someone needs other commands, (s)he can easily implement it based on existing.
- GetProperty
- SetProperty
- FlashEraseAll
- FlashEraseRegion
- FlashEraseAllUnsecure
- ReadMemory
- WriteMemory
- FillMemory
- FlashSecurityDisable
- Execute
- Call
- Reset
- FlashProgramOnce
- FlashReadOnce
- FlashReadResource
- ConfigureQuadSpi
- ReliableUpdate
- ConfigureI2c
- ConfigureSpi
- ConfigureCan
How to use
// Initialize peripheral
const usbPeripheral = new UsbPeripheral({ productId: 1, vendorId: 1 });
// Initialize Kboot
const kboot = new KBoot(usbPeripheral);
// Call the command
const version = await kboot.getBootloaderVersion();
// ... more commands
// Close the communication channel. Release resources
kboot.close();
If you have to communicate other I2C device over USB call kboot.configureI2c(i2cId) before the command.
const usbPeripheral = new UsbPeripheral({ productId: 1, vendorId: 1 });
const kboot = new KBoot(usbPeripheral);
// Get the bootloader version of I2C device
await kboot.configureI2c(i2cId);
const version = await kboot.getBootloaderVersion();
TODO
- Improve exception handling