This is in Fulton and Harris. Look on page 240-1 for $\mathfrak{sp}$ and page 270-1 for $\mathfrak{so}$.
EDIT: Apparently the issue here is that the OP wants to change basis to the standard version of the bilinear forms. For $\mathfrak{sp}_{2n}$, there's no issue here. All real symplectic forms are equivalent. If you want to think about the compact form as transformations of $\mathbb{H}^n$ preserving quaternionic norm, Fulton and Harris are thinking about this as a complex vector space with basis $e_1,\dots, e_n, je_1,\dots, je_n$.
More explicitly, the Lie algebra is the anti-Hermitian quaternionic $n\times n$ matrices. The "obvious" Cartan is given by diagonal matrices with values in $i\mathbb{R}$ (note: nothing special about $i$; conjugating by unit quaternions sends this to real multiples of any imaginary quaternion), and the SU(2)'s for the simple roots are given by:
- the block diagonal $2\times 2$ complex anti-Hermitian matrices in a consecutive pair of rows and columns. The long coroots are the images of $\begin{bmatrix}1 & 0\\ 0& -1\end{bmatrix}$ along this diagonal. Under the usual trace form on quaternion matrices, this has inner product 2 with itself (so inner product 4 if you use the action on $\mathbb{C}^{2n}$ instead).
- the diagonal matrices $\mathrm{diag}(0,\dots,0,u)$ for $u$ an imaginary quaternion. The inner product on this under quaternionic trace form is half the usual inner product on $\mathfrak{su}(2)$ (which gives Pauli spin matrices norm $\sqrt{2}$), so the corresponding coroot has inner product 1 with itself.
For $\mathfrak{so}_{n}$, you need to change the real form to pair together the basis vectors that pair non-trivially. The torus of $\mathfrak{so}_{n}$ acts on these real 2-d spaces by the usual rotation. That is, they are block diagonal with $2\times 2$-blocks given by
$$\begin{bmatrix}\cos \theta_i & \sin \theta_i\\
-\sin \theta_i & \cos \theta_i \end{bmatrix}$$
The root SU(2)'s come from looking at a $4\times 4$ block along the diagonal, and picking out one of the factors of $SU(2) x SU(2) =Spin(4)$ with the exception of:
- if $n$ is even, in the last block you also take the other SU(2) factor in $Spin(4)$. The usual trace form on all of these is the trace form of imaginary quaternions acting on $\mathbb{H}=\mathbb{R}^4$ as a real vector space, i.e. twice the usual form on $\mathfrak{su}(2)$, so inner product 4.
- if $n$ is odd, then you use the map $SU(2) \to SO(3)$ to act on the last $2\times 2$ block and the odd man out column/row. This is the long coroot, since the coroot in $\mathfrak{so}(3)$ is the matrix $\mathrm{diag}(2,0,-2)$. Note that the inner product of this with itself is 8.
EDIT AGAIN:. I like a good challenge, though this is all getting a little complicated (you have read the twitter threads too if you want all the details). Coroot vectors in the Lie algebra of the compact group don't make sense, so I think it's better to think about homomorphisms of $\mathfrak{su}(2)$ into your Lie algebra. You can think of any unit imaginary quaternion in $\mathfrak{su}(2)$ (for example, any of the Pauli spin matrices) as a coroot vector if you want; the norm-square of the coroot under your form is the pairing of this vector with itself (up to sign). As I said on twitter, there are just a few basic building blocks of these, so let me write those out. Let $X$ be an imaginary quaternion:
- Let $X_{\mathbb C}$ be the $2\times 2$ matrix over $\mathbb C$ given by left multiplication on $\mathbb{H}\cong \mathbb{C}^2$ (i.e. the usual isomorphism to $\mathfrak{su}(2)$). This sends $i.j,k$ to the Pauli matrices. For example, $i$ goes to $(\begin{smallmatrix} i & 0\\ 0 & -i \end{smallmatrix})$.
- Let $X_{\mathbb R}$ be the $4\times 4$ matrices over $\mathbb R$ given by left multiplication on $\mathbb{H}\cong \mathbb{R}^4$.
- Finally, let $X_{\times }$ denote the image of $X$ under the usual map of imaginary quaternions to $\mathfrak{so}(3,\mathbb R)$ (you can also think of this as the map $\mathfrak{su}(2)\to \mathfrak{so}(3,\mathbb R)$); you can think of this as the matrix of taking cross product with $X$ (or equivalently, the matrix given by taking commutator of imaginary quaternions with $X$).
It is an assignment to you to write these in your preferred notation.
- In $\mathfrak{su}(n)$, all root $\mathfrak{su}(2)$'s come from taking $X_{\mathbb C}$ as a diagonal $2\times 2$ block and surrounding it by $0$'s.
- In $\mathfrak{sp}(2n)$, written as quaternionic matrices, all root $\mathfrak{su}(2)$'s come from taking $X$ as a diagonal entry and surrounding it by $0$'s, or taking $X_{\mathbb C}$ as a diagonal $2\times 2$ block and surrounding it by $0$'s (thinking of $\mathbb C$ as a subalgebra of the quaternions); the latter is the long coroot.
- In $\mathfrak{so}(n)$, some root $\mathfrak{su}(2)$'s come from taking $X_{\mathbb {R}}$ as a diagonal $4\times 4$ block and surrounding it by $0$'s (in terms of $\mathfrak{su}(2)$, this means thinking of $\mathbb{C}^2$ as $\mathbb{R}^4$).
- In $\mathfrak{so}(2n+1)$, you also need $X_{\times}$ as a diagonal $3\times 3$ block. This is the long coroot, so need to normalize so this matches the obvious form on $\mathfrak{su}(2)$.
- In $\mathfrak{so}(2n)$, you also need the $4\times 4$ matrix given by right multiplication by $X$ on the quaternions as a diagonal block.