Basics of programming – SoundTraxx Coach Lighting Decoder Users Guide User Manual
Page 7
SoundTraxx Lighting Decoder User’s Guide
Page 4
are only two bit values, it takes more digits to represent a number using
binary. The decimal number 127, for example, is written as 01111111 in binary
notation. A ‘byte’ is a binary number made up of eight bits. And a ‘nibble’ is
half a byte or four bits. Really! We didn’t make that up.
Coincidentally, each CV is made up from one byte or eight bits and can store
any number between 0 and 255. Most of the CVs contain a single piece of
data that can be easily represented in any of the three forms, i.e., CV 3, the
acceleration rate, can be loaded with any value from 0 to 255 and it always
affects the same thing - the acceleration rate.
On the other hand, some CVs use individual bits to control different features.
This allows up to eight individual features to be controlled by a single CV and
is done to conserve the number of CVs. As the bit variables can take on only
one of two values (0 and 1) they are usually used for simple variables that
are either On or Off, enabled or disabled or something similar. Unfortunately,
bit variables are difficult to represent in any form other than binary and still
preserve any meaning. Because most DCC system user interfaces don’t use
binary representation, these numbers are the most difficult to work with and
require a tedious series of additions to convert to the decimal or hex form
used by most systems.
We have tried to use the decimal number system in this manual when
describing the proper values to program into a given CV; however, you will
occasionally find values listed in the Technical Reference in binary, hex and
decimal values. Hex numbers can be distinguished from a decimal number
by noting a 0x prefix. Thus 0x10 is the hex version of sixteen and not ten as
one might guess. Binary numbers are represented using a ‘b’ suffix. 100b
is really the number four and not one hundred. To further assist the math-
impaired, we have provided a handy-dandy conversion table in Appendix A
that allows one to quickly convert between decimal, hex and binary.
When working with individual bits such as in CV 29, we suggest the following
procedure for determining the correct value to program. Referring to the CV
description, write down the value desired for each individual bit. Consider
for example, the case of CV 29. We would like to set this CV so that speed
tables are enabled and the 28 speed-step mode is in effect. Referring to the
Technical Reference, we see that bit 4 and bit 1 should be set to 1 and all
other bits are cleared to zero. Remembering that we are dealing with binary,
write down the individual bit values and we get:
We then look up the binary value 00010010b in Appendix A and see that it
corresponds to the decimal value 18 (0x12 in hex). This is the value to use
when programming the CV.
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
Basics of Programming