encoder 328p notes - osiweb/unified_retro_keyboard GitHub Wiki
#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
- 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.
- 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.
- 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.
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.