# Solutions for implementation challenges

This is a list of less common challenges, their solutions, and example instruments.

## General issues

- Small numbers (<1e-5) are shown as 0 with `%f`. If an instrument understands exponential notation, you can use `%g`, which switches between floating point and exponential format, depending on the exponent.

## Communication protocol issues

- The instrument answers every message, even a setting command. You can set the setting’s `check_set_errors = True` parameter and redefine `check_set_errors()` to read an answer, see `hcp.TC038D`

- Binary, frame-based communication, see `hcp.TC038D`

- All replies have the same length, see `aja.DCXS`

- The device generates garbage messages at startup, cluttering the buffer, see `aja.DCXS`

- An instrument and its channel need to override values, but it has to use the correct ask method as well, see `tcpowerconversion.CXN`

## Channels

- Not all channels have the same features, see `MKS937B`

- Channel names in the communication (1, 2, 3) differ from front panel (A, B, C), see `AdvantestR624X`

- A family of instruments in which a property of the channels is different for different members of the family , see `AnritsuMS464xB`

- If you want to document the type of your instrument’s channels (with a clickable link), check out the source of the Aim-TTI PL Series Power Supplies page.