SPMU383 April 2026 BQ27Z846
AltManufacturerAccess() provides a method of reading and writing data in the Manufacturer Access System (MAC). The MAC command is sent via AltManufacturerAccess() by a block protocol. The result is returned on AltManufacturerAccess() via a block read.
Commands are sent by writing to registers 0x00/0x01 or 0x3E/0x3F. 0x3E and 0x3F work the same as 0x00 and 0x01, but are primarily intended for block writes and reads.
Example: Send a MAC Gauging() to enable IT via AltManufacturerAccess().
Example: Read Chemical ID() (0x0006) via AltManufacturerAccess().
It is recommended to send “command only” operations to 0x00 and 0x01, and to set the command for a read back in the same way. The reason for this is that it can always reset any legacy support options that may be in effect; whereas, some legacy support options use 0x3E and 0x3F for other purposes. However, 0x3E and 0x3F can always safely be used for block reads. For backward compatibility, a request of the device number or version reports a value for a read on 0x00/0x01. The response word for the MAC commands DEV and VERSION (0x0001 and 0x0002) should report 0xFFA5 as the legacy response. This is meant as a token to indicate to the host that the real response is on the extended block. “Command only” operations take place immediately after the word write.
| Command | Function | Access | Format | Data Read on 0x44 or 0x23 | Data Read on 0x2F | Available in SEALED Mode | Type | Unit |
|---|---|---|---|---|---|---|---|---|
| 0x0001 | DeviceType | R | Block | Yes | — | Yes | Hex | — |
| 0x0002 | FirmwareVersion | R | Block | Yes | — | Yes | Hex | — |
| 0x0003 | HardwareVersion | R | Block | Yes | — | Yes | Hex | — |
| 0x0004 | Instruction Flash Signature | R | Block | Yes | — | Yes | Hex | — |
| 0x0005 | StaticDFSignature | R | Block | Yes | — | Yes | Hex | — |
| 0x0006 | Chemical ID | R | Block | Yes | — | Yes | Hex | — |
| 0x0008 | StaticChemDFSignature | R | Block | Yes | — | Yes | Hex | — |
| 0x0009 | AllDFSignature | R | Block | Yes | — | Yes | Hex | — |
| 0x000A | StorageMode | W | — | — | — | Yes | Hex | — |
| 0x0010 | ShutdownMode | W | — | — | — | Yes | Hex | — |
| 0x0011 | SleepMode | W | — | — | — | — | Hex | — |
| 0x001D | FuseToggle | W | — | — | — | — | Hex | — |
| 0x001F | CHGFETToggle | W | — | — | — | — | Hex | — |
| 0x0020 | DSGFETToggle | W | — | — | — | — | Hex | — |
| 0x0021 | Gauging | W | — | — | — | — | Hex | — |
| 0x0022 | FETControl | W | — | — | — | — | Hex | — |
| 0x0023 | LifetimeDataCollection | W | — | — | — | — | Hex | — |
| 0x0024 | PermanentFailure | W | — | — | — | — | Hex | — |
| 0x0025 | BlackBoxRecorder | W | — | — | — | — | Hex | — |
| 0x0028 | LifetimeDataReset | W | — | — | — | — | Hex | — |
| 0x0029 | PermanentFailData Reset | W | — | — | — | — | Hex | — |
| 0x002A | BlackBoxRecorderReset | W | — | — | — | — | Hex | — |
| 0x002D | CalibrationMode | W | — | — | — | — | Hex | — |
| 0x002E | LifetimeDataFlush | W | — | — | — | — | Hex | — |
| 0x002F | LifetimeDataSpeedUp Mode | W | — | — | — | — | Hex | — |
| 0x0030 | SealDevice | W | — | — | — | — | Hex | — |
| 0x0035 | SecurityKeys | R/W | Block | Yes | — | — | Hex | — |
| 0x0037 | AuthenticationKey | R/W | Block | — | Yes | — | Hex | — |
| 0x0041 | DeviceReset | W | — | — | — | — | Hex | — |
| 0x0050 | SafetyAlert | R | Block | Yes | — | Yes | Hex | — |
| 0x0051 | SafetyStatus | R | Block | Yes | — | Yes | Hex | — |
| 0x0052 | PFAlert | R | Block | Yes | — | Yes | Hex | — |
| 0x0053 | PFStatus | R | Block | Yes | — | Yes | Hex | — |
| 0x0054 | OperationStatus | R | Block | Yes | — | Yes | Hex | — |
| 0x0055 | ChargingStatus | R | Block | Yes | — | Yes | Hex | — |
| 0x0056 | GaugingStatus | R | Block | Yes | — | Yes | Hex | — |
| 0x0057 | ManufacturingStatus | R | Block | Yes | — | Yes | Hex | — |
| 0x0058 | AFERegister | R | Block | Yes | — | Yes | Hex | — |
| 0x005A | NoLoadRemCap | R | Block | Yes | — | Yes | Mixed | Mixed |
| 0x005E | ChargingStatusEXT | R | Block | Yes | — | Yes | Hex | — |
| 0x0060 | LifetimeDataBlock1 | R | Block | Yes | — | Yes | Mixed | Mixed |
| 0x0061 | LifetimeDataBlock2 | R | Block | Yes | — | Yes | Mixed | Mixed |
| 0x0062 | LifetimeDataBlock3 | R | Block | Yes | — | Yes | Mixed | Mixed |
| 0x0063 | LifetimeDataBlock4 | R | Block | Yes | — | Yes | Mixed | Mixed |
| 0x0064 | LifetimeDataBlock5 | R | Block | Yes | — | Yes | Mixed | Mixed |
| 0x0065 | LifetimeDataBlock6 | R | Block | Yes | — | Yes | Mixed | Mixed |
| 0x0066 | LifetimeDataBlock7 | R | Block | Yes | — | Yes | Mixed | Mixed |
| 0x0067 | LifetimeDataBlock8 | R | Block | Yes | — | Yes | Mixed | Mixed |
| 0x0068 | LifetimeDataBlock9 | R | Block | Yes | — | Yes | Mixed | Mixed |
| 0x0069 | LifetimeDataBlock10 | R | Block | Yes | — | Yes | Mixed | Mixed |
| 0x006A | LifetimeDataBlock11 | R | Block | Yes | — | Yes | Mixed | Mixed |
| 0x006B | LifetimeDataBlock12 | R | Block | Yes | — | Yes | Mixed | Mixed |
| 0x006C | LifetimeDataBlock13 | R | Block | Yes | — | Yes | Mixed | Mixed |
| 0x006D | LifetimeDataBlock14 | R | Block | Yes | — | Yes | Mixed | Mixed |
| 0x006E | LifetimeDataBlock15 | R | Block | Yes | — | Yes | Mixed | Mixed |
| 0x006F | PowerEvents | R | Block | Yes | — | Yes | Mixed | Mixed |
| 0x0070 | ManufacturerInfo | R | Block | Yes | — | Yes | Hex | — |
| 0x0071 | DAStatus1 | R | Block | Yes | — | Yes | Mixed | Mixed |
| 0x0072 | DAStatus2 | R | Block | Yes | — | Yes | Mixed | Mixed |
| 0x0073 | GaugeStatus1 | R | Block | Yes | — | Yes | Mixed | Mixed |
| 0x0074 | GaugeStatus2 | R | Block | Yes | — | Yes | Mixed | Mixed |
| 0x0075 | GaugeStatus3 | R | Block | Yes | — | Yes | Mixed | Mixed |
| 0x0076 | CBStatus | R | Block | Yes | — | Yes | Mixed | Mixed |
| 0x0077 | StateofHealth | R | Block | Yes | — | Yes | Mixed | Mixed |
| 0x0078 | FilterCapacity | R | Block | Yes | — | Yes | Mixed | Mixed |
| 0x0079 | RSOCWrite | W | — | — | — | — | Hex | — |
| 0x007A | ManufacturerInfoB | R | Block | Yes | — | Yes | Hex | Hex |
| 0x007B | ManufacturerInfoC | R/W | Block | Yes | — | Yes | Hex | Hex |
| 0x007E | LifetimeDataBlock16 | R | Block | Yes | — | Yes | Mixed | Mixed |
| 0x0098 | AccumulationChargeEnable | W | — | — | — | No | — | — |
| 0x0099 | AccumulationDischarge Enable | W | — | — | — | No | — | — |
| 0x009A | AccumulationReset | W | — | — | — | Yes | — | — |
| 0x009B | AccumulationStop | W | — | — | — | Yes | — | — |
| 0x009C | AccumulationStart | W | — | — | — | Yes | Signed Int | mAh |
| 0x009D | AccumulationCharge Threshold | RW | Block | Yes | — | Yes | Signed Int | mAh |
| 0x009E | AccumulationDischarge Threshold | RW | Block | Yes | — | Yes | Signed Int | mAh |
| 0x009F | AccumulatedTimeCharge | R | Block | Yes | — | Yes | Mixed | Mixed |
| 0x00B0 | ChargingVoltageOverride | R/W | Block | Yes | — | Yes | Signed Int | mV |
| 0x00B2 | ChargingCurrentOverride | R/W | Block | Yes | — | Yes | Signed Int | mA |
| 0x00F0 | IATAShutdown | W | — | — | — | — | Hex | — |
| 0x00F1 | IATARm | W | — | — | — | — | Hex | — |
| 0x00F2 | IATAFcc | W | — | — | — | — | Hex | — |
| 0x0F00 | ROMMode | W | — | — | — | — | Hex | — |
| 0x3008 | WriteTemp | W | Block | Yes | — | Yes | Signed Int | 0.1 K |
| 0xF080 | ExitCalibrationOutput | R/W | Block | Yes | — | — | Hex | — |
| 0xF081 | OutputCCADCCal | R/W | Block | Yes | — | — | Hex | — |
| 0xF082 | OutputShortedCCADCCal | R/W | Block | Yes | — | — | Hex | — |