encoder 328p notes - osiweb/unified_retro_keyboard GitHub Wiki

Notes for Through Hole Encoder Rev 3.0

#Bill of Materials, Rev 3.0

Designators Qty Description
C1–C5 5 Capacitor – 0.1 uF – Through-Hole, disc, 2.5mm lead spacing
D1–D16* 27 Typically not populated. See Notes 1,2. Diode – 1N4148 – Through-Hole, Shunted by default
D17–D27 27 Diode – 1N4148 – Through-Hole
J1 1 Connector – Apple 2 – DIP-16, 0.3" socket)
J2 1 Connector – Apple 1 – DIP-16, 0.3" socket
J3 1 Connector – UART – Right angle header, 0.1", 1x4, through-hole
J4 1 Connector – Outputs – Right angle header, 0.1", 1x5, through-hole
J5 1 Connector – ISP header – Right angle header, 0.1", 2 x 3, through-hole
J6 1 Switch – Keyboard – Vertical 0.1" header, 2 x 20, through-hole
J7 1 Connector – SOL-20 – Vertical 0.1" header, 2 x 10, through-hole
R3 1 Resistor – 470 Ω – Resistor, 470 ohm, through-hole
RN1 1 Resistor Network – 4.7 kΩ, 1 x 8, 9-pin SIP
SW1 1 See note 3. Options – DIP switch, 0.3", through-hole
SW1 1 See note 3. Alternate: Right-angle 0.1" header, 2 x 8, through-hole
U1 1 IC – ATmega328P – DIP-28
U2 1 IC – 74LS166 – DIP-16
U3–U4 2 IC – 74LS138 – DIP-16
U5 1 IC – 74LS04 – DIP-14

Notes

  1. D1-D16 are shorted by on the PCB. Do not populate D1-D16 for keyboards that have a diode per key or diode per row. These diodes are for keyboard matrices that do not have any diodes installed. These diodes provide a diode per row to prevent conflicting row drivers, and reducing the ghost key problem.
  2. If you have a matrix without diodes (for example, a vintage radio shack keyboard, or a CBM keyboard) then for each row connected, cut the jumper at the corresponding diode (in the D1-D16 bank), and install the diode.
  3. For SW1, either install an 8-position DIP switch, or a 2x8 right angle 0.1" header. My personal preference is the header with jumpers.

Fuse settings

For ATMega328P:

Fuse bank Setting
Extended 0xFF
High 0xD9
Low 0xD2

This corresponds to the following fuse settings

  • Brownout Detection Disabled (Extended byte)
  • SPIEN (in system programming over SPI) Enabled (High byte)
  • Boot flash size 2048 ((high byte)
  • 8 MHz internal RC clock (low byte)
  • 4.1 ms startup time (low byte)
  • All other fuses disabled.
⚠️ **GitHub.com Fallback** ⚠️