ただし、DCCの規格を管理しているNMRAとしては、いくつかの追加の機能で、デコーダの情報を読み取る仕組みを規格として2つ定めています。
(1) CV ackによるCV値の読み出し
(2) Railcom(BiDi)
ここでは、欧米問わず、間違いなく搭載されている(1)のCV ackによるCV値の読み出しについて解説していきます。
CV ackは、デコーダが搭載された車両が一瞬、微動する挙動があると思いますが、60mA以上の電流を消費した場合はCV ackが成立した、という意味になります。
CV(サービスモード)に関する規格書s-9.2.3_2012_07には、特にCV値を読み取るための仕組みは記載されていませんが、CV BIT MANIPULATION機能のBit Verifyを使うと、実はCV値を読み出すことが出来ます。

CV値は8bit(1バイト、0〜255の範囲の値)のデータの大きさなので、8回、Bit Manipulationを行って、CV ackの反応を8回見ると、反応があるときは1、反応が無いときは0とすると、2進数の00001111などと復元でき、10進数に戻すと15、と読み替えることが出来るわけです。
コマンドステーションは、こうやって、CV値をデコーダから読み出しています。
では、デコーダ側ではどうすれば良いかというと、CV ackに対応する回路やソフトを作り込む必要があります。
■ CV ackの回路の作り方
MP3デコーダやワンコインデコーダでは、モータを繋げて動かすことが前提ですので、モータを動かすことで代用しています。もし、モータが無いデコーダではどうすればいいか?トランジスタ出力回路と抵抗を付けて、電流をダミー消費する回路を作るしかありません。
■ ソフトの作り方
自分で1からソフトを作る場合は、お任せですがMP3デコーダなどで使用しているNMRA DCC Libraryを使用する場合は比較的簡単です。PIN_CVACKには、ピン番号を入れて下さい。
// This function is called by the NmraDcc library when a DCC ACK needs to be sent
void notifyCVAck(void)
{
analogWrite( PIN_CVACK, 255 );
delay( 8 );
analogWrite( PIN_CVACK, 0 );
}