I can't tell how to determine the following:
i
, 10th bit on the left.
imm3
, what's the difference for this one with imm8?
The fields i and imm3 apply a transformation to the imm8 constant in order to generate more 32 bit constants. Here is the official documentation which sadly doesn't explain much. There is also a post on The Old New Thing about it.
Edit: The link to the documentation is for ARMv7-A but you find identical text in ARMv7-M reference section A5.3.2