Click here to download a PDF file of the schematic

A GIF image is below. Hopefully it doesn't mess up the page too much with its width.

Some notes on the schematic

The LCD is powered from the 5 volt output of the RBBB. The regulator in the RBBB seems to cope well.

The backlight LED is powered from 12 volts through a current limiting resistor. 560 ohms seems to give plenty of brightness on mine. As I understand it, not all HD44780s have a backlight.

The RC filter carrying power to the DDS-60 fixed a problem that I was having when the DDS-60 sometimes wouldn't start. This seemed to happen when the power-up wasn't totally clean such as when I connected the power wires to a source that was already switched on and there may have been some "bounce" as the connectors touched. The slower clean ramp-up provided by the RC completely fixed the problem. The resistor also helps dissipate some power so the 5 volt regulator in the DDS-60 stays cooler.

The 0.22 uF capacitors on the rotary encoder are for debouncing. These form an RC filter with the 20 K pullup resistors in the ATmega328. The encoder creates an interupt request whenever a transition occurs to which the processor responds almost instantly. If we didn't have a debounce filter then we would quite likely get a burst of several interupts as the mechanical contacts in the encoder touched but we only want one interupt. The RC filter is a simple solution. We don't need to do the same on the push buttons because they are debounced in the software. We poll them repeatedly in a loop which makes it easy to avoid contact bounce by using simple timing code which avoids reading the switches too frequently. We don't have that sort of control on the interupt lines.

The 10 K trimpot adjusts the display contrast. There is an obvious optimum setting between the "on" pixels being too dim and being so bright that the "off" pixels show.