Initial commit

This commit is contained in:
august kline 2024-02-02 13:25:40 -05:00 committed by august
commit 9bd332f65b
53 changed files with 40007 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
.DS_Store
fp-info-cache

508
audio.kicad_sch Normal file
View File

@ -0,0 +1,508 @@
(kicad_sch (version 20230121) (generator eeschema)
(uuid ff7fdb17-b492-4d18-9a3f-a2fd01911dec)
(paper "A4")
(title_block
(title "ʕ·ᴥ·ʔ-audio")
)
(lib_symbols
(symbol "74xx:74HC590" (in_bom yes) (on_board yes)
(property "Reference" "U" (at -7.62 16.51 0)
(effects (font (size 1.27 1.27)))
)
(property "Value" "74HC590" (at -7.62 -13.97 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (at 0 1.27 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "https://assets.nexperia.com/documents/data-sheet/74HC590.pdf" (at 0 1.27 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_keywords" "HCMOS Counter 3State" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "8-bit Binary Counter with Output Register 3-State Outputs, SOIC-16/TSSOP-16" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_fp_filters" "DIP*W7.62mm* SOIC*3.9x9.9mm*P1.27mm* TSSOP*4.4x5mm*P0.65mm* SOIC*5.3x10.2mm*P1.27mm* SOIC*7.5x10.3mm*P1.27mm*" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "74HC590_1_0"
(pin tri_state line (at 10.16 10.16 180) (length 2.54)
(name "Q1" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 0 0) (length 2.54)
(name "~{MRC}" (effects (font (size 1.27 1.27))))
(number "10" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 7.62 0) (length 2.54)
(name "CPC" (effects (font (size 1.27 1.27))))
(number "11" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 12.7 0) (length 2.54)
(name "~{CE}" (effects (font (size 1.27 1.27))))
(number "12" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 5.08 0) (length 2.54)
(name "CPR" (effects (font (size 1.27 1.27))))
(number "13" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 -5.08 0) (length 2.54)
(name "~{OE}" (effects (font (size 1.27 1.27))))
(number "14" (effects (font (size 1.27 1.27))))
)
(pin tri_state line (at 10.16 12.7 180) (length 2.54)
(name "Q0" (effects (font (size 1.27 1.27))))
(number "15" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 0 17.78 270) (length 2.54)
(name "VCC" (effects (font (size 1.27 1.27))))
(number "16" (effects (font (size 1.27 1.27))))
)
(pin tri_state line (at 10.16 7.62 180) (length 2.54)
(name "Q2" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
(pin tri_state line (at 10.16 5.08 180) (length 2.54)
(name "Q3" (effects (font (size 1.27 1.27))))
(number "3" (effects (font (size 1.27 1.27))))
)
(pin tri_state line (at 10.16 2.54 180) (length 2.54)
(name "Q4" (effects (font (size 1.27 1.27))))
(number "4" (effects (font (size 1.27 1.27))))
)
(pin tri_state line (at 10.16 0 180) (length 2.54)
(name "Q5" (effects (font (size 1.27 1.27))))
(number "5" (effects (font (size 1.27 1.27))))
)
(pin tri_state line (at 10.16 -2.54 180) (length 2.54)
(name "Q6" (effects (font (size 1.27 1.27))))
(number "6" (effects (font (size 1.27 1.27))))
)
(pin tri_state line (at 10.16 -5.08 180) (length 2.54)
(name "Q7" (effects (font (size 1.27 1.27))))
(number "7" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 0 -15.24 90) (length 2.54)
(name "GND" (effects (font (size 1.27 1.27))))
(number "8" (effects (font (size 1.27 1.27))))
)
(pin output line (at 10.16 -10.16 180) (length 2.54)
(name "~{RCO}" (effects (font (size 1.27 1.27))))
(number "9" (effects (font (size 1.27 1.27))))
)
)
(symbol "74HC590_1_1"
(rectangle (start -7.62 15.24) (end 7.62 -12.7)
(stroke (width 0.254) (type default))
(fill (type background))
)
)
)
(symbol "Device:Speaker" (pin_names (offset 0) hide) (in_bom yes) (on_board yes)
(property "Reference" "LS" (at 1.27 5.715 0)
(effects (font (size 1.27 1.27)) (justify right))
)
(property "Value" "Speaker" (at 1.27 3.81 0)
(effects (font (size 1.27 1.27)) (justify right))
)
(property "Footprint" "" (at 0 -5.08 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (at -0.254 -1.27 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_keywords" "speaker sound" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "Speaker" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "Speaker_0_0"
(rectangle (start -2.54 1.27) (end 1.016 -3.81)
(stroke (width 0.254) (type default))
(fill (type none))
)
(polyline
(pts
(xy 1.016 1.27)
(xy 3.556 3.81)
(xy 3.556 -6.35)
(xy 1.016 -3.81)
)
(stroke (width 0.254) (type default))
(fill (type none))
)
)
(symbol "Speaker_1_1"
(pin input line (at -5.08 0 0) (length 2.54)
(name "1" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin input line (at -5.08 -2.54 0) (length 2.54)
(name "2" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
)
)
(symbol "Memory_EEPROM:28C256" (in_bom yes) (on_board yes)
(property "Reference" "U" (at -7.62 26.67 0)
(effects (font (size 1.27 1.27)))
)
(property "Value" "28C256" (at 2.54 -26.67 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://ww1.microchip.com/downloads/en/DeviceDoc/doc0006.pdf" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_keywords" "Parallel EEPROM 256Kb" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "Paged Parallel EEPROM 256Kb (32K x 8), DIP-28/SOIC-28" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_fp_filters" "DIP*W15.24mm* SOIC*7.5x17.9mm*P1.27mm*" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "28C256_1_1"
(rectangle (start -7.62 25.4) (end 7.62 -25.4)
(stroke (width 0.254) (type default))
(fill (type background))
)
(pin input line (at -10.16 -12.7 0) (length 2.54)
(name "A14" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 22.86 0) (length 2.54)
(name "A0" (effects (font (size 1.27 1.27))))
(number "10" (effects (font (size 1.27 1.27))))
)
(pin tri_state line (at 10.16 22.86 180) (length 2.54)
(name "D0" (effects (font (size 1.27 1.27))))
(number "11" (effects (font (size 1.27 1.27))))
)
(pin tri_state line (at 10.16 20.32 180) (length 2.54)
(name "D1" (effects (font (size 1.27 1.27))))
(number "12" (effects (font (size 1.27 1.27))))
)
(pin tri_state line (at 10.16 17.78 180) (length 2.54)
(name "D2" (effects (font (size 1.27 1.27))))
(number "13" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 0 -27.94 90) (length 2.54)
(name "GND" (effects (font (size 1.27 1.27))))
(number "14" (effects (font (size 1.27 1.27))))
)
(pin tri_state line (at 10.16 15.24 180) (length 2.54)
(name "D3" (effects (font (size 1.27 1.27))))
(number "15" (effects (font (size 1.27 1.27))))
)
(pin tri_state line (at 10.16 12.7 180) (length 2.54)
(name "D4" (effects (font (size 1.27 1.27))))
(number "16" (effects (font (size 1.27 1.27))))
)
(pin tri_state line (at 10.16 10.16 180) (length 2.54)
(name "D5" (effects (font (size 1.27 1.27))))
(number "17" (effects (font (size 1.27 1.27))))
)
(pin tri_state line (at 10.16 7.62 180) (length 2.54)
(name "D6" (effects (font (size 1.27 1.27))))
(number "18" (effects (font (size 1.27 1.27))))
)
(pin tri_state line (at 10.16 5.08 180) (length 2.54)
(name "D7" (effects (font (size 1.27 1.27))))
(number "19" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 -7.62 0) (length 2.54)
(name "A12" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 -22.86 0) (length 2.54)
(name "~{CS}" (effects (font (size 1.27 1.27))))
(number "20" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 -2.54 0) (length 2.54)
(name "A10" (effects (font (size 1.27 1.27))))
(number "21" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 -20.32 0) (length 2.54)
(name "~{OE}" (effects (font (size 1.27 1.27))))
(number "22" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 -5.08 0) (length 2.54)
(name "A11" (effects (font (size 1.27 1.27))))
(number "23" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 0 0) (length 2.54)
(name "A9" (effects (font (size 1.27 1.27))))
(number "24" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 2.54 0) (length 2.54)
(name "A8" (effects (font (size 1.27 1.27))))
(number "25" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 -10.16 0) (length 2.54)
(name "A13" (effects (font (size 1.27 1.27))))
(number "26" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 -17.78 0) (length 2.54)
(name "~{WE}" (effects (font (size 1.27 1.27))))
(number "27" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 0 27.94 270) (length 2.54)
(name "VCC" (effects (font (size 1.27 1.27))))
(number "28" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 5.08 0) (length 2.54)
(name "A7" (effects (font (size 1.27 1.27))))
(number "3" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 7.62 0) (length 2.54)
(name "A6" (effects (font (size 1.27 1.27))))
(number "4" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 10.16 0) (length 2.54)
(name "A5" (effects (font (size 1.27 1.27))))
(number "5" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 12.7 0) (length 2.54)
(name "A4" (effects (font (size 1.27 1.27))))
(number "6" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 15.24 0) (length 2.54)
(name "A3" (effects (font (size 1.27 1.27))))
(number "7" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 17.78 0) (length 2.54)
(name "A2" (effects (font (size 1.27 1.27))))
(number "8" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 20.32 0) (length 2.54)
(name "A1" (effects (font (size 1.27 1.27))))
(number "9" (effects (font (size 1.27 1.27))))
)
)
)
)
(junction (at 45.72 128.27) (diameter 0) (color 0 0 0 0)
(uuid 182aee58-cf5a-4b2b-887f-832ed61a32c2)
)
(junction (at 45.72 123.19) (diameter 0) (color 0 0 0 0)
(uuid edc78de3-d7c9-41c8-becb-737935085971)
)
(wire (pts (xy 45.72 123.19) (xy 45.72 128.27))
(stroke (width 0) (type default))
(uuid 116ca04b-bacc-4202-940c-7c129a9a682c)
)
(wire (pts (xy 41.91 123.19) (xy 45.72 123.19))
(stroke (width 0) (type default))
(uuid ce3d9dec-cf79-4b6f-8d10-81603253c3c8)
)
(wire (pts (xy 45.72 128.27) (xy 45.72 130.81))
(stroke (width 0) (type default))
(uuid e98ec53a-255e-4359-8b69-9a675ac4c436)
)
(text "okay so here's the idea: \nthere's a 32k voicebank for george's voice\ni need a way for the cpu to asynchronously\npick a voice note to be played, and then\ntrigger an interrupt for when the sample ends\nso that we know that the next sample is ready to be queued up\ni'm thinking that the cpu sees an 8 bit register\nto select a voice sample and some extra stuff,\n each sample is 2k long, so 16 are available, \nleaving 4 bits to do stuff like pitch shifting\nor setting volume, then the voice circuit \nreads from the register, selects the corresponding sample\nfrom memory, sends the sample data to a shift register\n(idk how digital audio works so i'll have to look into that lol)\ni'm gonna wanna use a binary counter to tell when we've read 2k\nof sample data, and then when we hit that amount stop reading from the rom,\nsend an interrupt, and wait for the next instruction"
(at 205.74 52.07 0)
(effects (font (size 1.27 1.27)) (justify left bottom))
(uuid eabb0f66-e6b5-4a10-9e48-66011a942fc3)
)
(symbol (lib_id "74xx:74HC590") (at 55.88 135.89 0) (unit 1)
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
(uuid 28a9d459-6bdf-4596-aa4f-c9197e5adfff)
(property "Reference" "U27" (at 58.0741 115.57 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "74HC590" (at 58.0741 118.11 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "" (at 55.88 134.62 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "https://assets.nexperia.com/documents/data-sheet/74HC590.pdf" (at 55.88 134.62 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid b6a08dda-bbe6-47e5-aaef-4e5bd7127cba))
(pin "10" (uuid 384ce758-f7b1-425f-9bf0-d091d36c468c))
(pin "11" (uuid 173ecfb2-ac1f-41f5-90ec-113c982cf570))
(pin "12" (uuid 53361efd-8000-4591-9f28-2f0e26105684))
(pin "13" (uuid e6b4b946-50de-464a-9973-0ca270662d4f))
(pin "14" (uuid e7773996-af80-492d-af0f-5628fed7f72c))
(pin "15" (uuid 1be6e73a-10d5-4b47-a2fd-bb8d3b182bbc))
(pin "16" (uuid 84e0437b-ee79-4a36-8707-e26553651ec9))
(pin "2" (uuid f250f4f1-3833-45ec-a6a6-cf75fdd9d0e8))
(pin "3" (uuid d1c1ce8a-cf06-414e-8f7c-1347b0e7acb8))
(pin "4" (uuid a1f28b5c-8aa1-4c49-b912-1d80b39f81f5))
(pin "5" (uuid 219d8624-d41b-40f0-afcd-2a98585711d8))
(pin "6" (uuid b0869bfe-59ed-4764-ba88-827487353be8))
(pin "7" (uuid 53921015-a3b4-4c3f-a622-e7001299369a))
(pin "8" (uuid 58c61e64-cd7b-4bc2-b434-345af5fa0251))
(pin "9" (uuid 71a64824-eb1b-43cb-a189-603dc9e489fd))
(instances
(project "george"
(path "/c2284e4e-9652-4cdf-884d-a267b847753c/e285a72c-60b6-49f6-88c2-a6ccdce241f4"
(reference "U27") (unit 1)
)
)
)
)
(symbol (lib_id "Memory_EEPROM:28C256") (at 125.73 66.04 0) (unit 1)
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
(uuid 7d174dd6-f549-4393-8ce8-9c2ce47c2a51)
(property "Reference" "U7" (at 127.9241 35.56 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "28C256" (at 127.9241 38.1 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "Package_DIP:DIP-28_W15.24mm" (at 125.73 66.04 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://ww1.microchip.com/downloads/en/DeviceDoc/doc0006.pdf" (at 125.73 66.04 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 3756749f-e251-4670-8c31-c49850083780))
(pin "10" (uuid a8fba68b-84a0-495d-80db-56ce6de16f54))
(pin "11" (uuid 6b2bf3d6-e94d-4c4c-97ef-e1286b23c70d))
(pin "12" (uuid c035c455-6a0b-4b25-a082-787b0e6197ed))
(pin "13" (uuid f1ecc221-df39-41c2-b347-1cce54dec738))
(pin "14" (uuid c205559a-d925-41c1-a3a9-53bc63b51285))
(pin "15" (uuid 2abe9b28-d6c2-45f0-91cb-a258dae2a00b))
(pin "16" (uuid 2cf724c1-29d8-46ef-be6f-1c129e73b814))
(pin "17" (uuid eb1dbc20-b195-4407-94af-513c791d8f28))
(pin "18" (uuid da5bac40-22a0-423a-818a-72122ebe6260))
(pin "19" (uuid 9c971a73-dcb0-4aa1-9193-fffd89e640fe))
(pin "2" (uuid b388cf73-ff57-4de0-b53b-efdf0754acaf))
(pin "20" (uuid b1a69673-6cd0-4333-9519-1d3770854e0b))
(pin "21" (uuid aac1ff4a-4c6b-49a6-b1bd-383794940b58))
(pin "22" (uuid ced83381-9839-43bc-9ef1-6b940a6d9fc7))
(pin "23" (uuid 561289d3-b9bb-45d5-95e1-88189991e689))
(pin "24" (uuid 7da73e34-4dba-4d9d-aebe-635e51c00c8b))
(pin "25" (uuid 76b80935-41bc-4ee0-b1c3-f0827db0ed2d))
(pin "26" (uuid 25cfb47d-80a6-4ab6-b534-d93fe654e810))
(pin "27" (uuid fd5bc723-0669-4355-a293-6f36dcb3d13b))
(pin "28" (uuid 1e6e4d86-c40f-4a0e-afa0-07e1e32aa2fd))
(pin "3" (uuid 37a1fdd8-1d97-43c4-8aee-0d384ab796bf))
(pin "4" (uuid 99f7063c-4ddf-4634-8dbf-86c0e33ed5ef))
(pin "5" (uuid 7e50e749-0cec-469c-a109-55ed28ff585c))
(pin "6" (uuid 5fb77cfb-0c56-4e25-92fa-fcb759af2d00))
(pin "7" (uuid 467a4fdf-4489-4475-9633-d403383e407e))
(pin "8" (uuid ba610ede-fcd8-48ad-aa92-ba22dad37f81))
(pin "9" (uuid 09dd791f-3594-436f-b058-08b65bdb6ff1))
(instances
(project "george"
(path "/c2284e4e-9652-4cdf-884d-a267b847753c/4fc87bef-9065-48cc-adac-8a035ced590c"
(reference "U7") (unit 1)
)
(path "/c2284e4e-9652-4cdf-884d-a267b847753c/e285a72c-60b6-49f6-88c2-a6ccdce241f4"
(reference "U19") (unit 1)
)
)
)
)
(symbol (lib_id "Device:Speaker") (at 198.12 118.11 0) (unit 1)
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
(uuid ed02cc13-59db-458d-9861-351df41ad1be)
(property "Reference" "LS2" (at 203.2 118.11 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "10 Ohm Speaker" (at 203.2 120.65 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "" (at 198.12 123.19 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (at 197.866 119.38 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid b8f42e76-38d3-422b-8e21-df5aed57f419))
(pin "2" (uuid 5771204b-db9a-41cd-8e15-192a4ceff6f6))
(instances
(project "george"
(path "/c2284e4e-9652-4cdf-884d-a267b847753c/e285a72c-60b6-49f6-88c2-a6ccdce241f4"
(reference "LS2") (unit 1)
)
)
)
)
(symbol (lib_id "Device:Speaker") (at 198.12 102.87 0) (unit 1)
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
(uuid f0a55852-65f2-4318-8030-571671e0dde7)
(property "Reference" "LS1" (at 203.2 102.87 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "20 Ohm Speaker" (at 203.2 105.41 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "" (at 198.12 107.95 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (at 197.866 104.14 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 2c9ca056-9760-40b4-a3ce-19056d5ddca1))
(pin "2" (uuid 5b76f7e9-9e94-47f9-9d34-6e875114526c))
(instances
(project "george"
(path "/c2284e4e-9652-4cdf-884d-a267b847753c/e285a72c-60b6-49f6-88c2-a6ccdce241f4"
(reference "LS1") (unit 1)
)
)
)
)
(symbol (lib_id "74xx:74HC590") (at 31.75 113.03 0) (unit 1)
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
(uuid fbad72ce-d88e-4963-ae16-61737bbb1a3f)
(property "Reference" "U26" (at 33.9441 92.71 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "74HC590" (at 33.9441 95.25 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "" (at 31.75 111.76 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "https://assets.nexperia.com/documents/data-sheet/74HC590.pdf" (at 31.75 111.76 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 38162b63-744a-418e-9763-5dff5d589e1a))
(pin "10" (uuid 7d897a4c-4acb-4e0b-87d7-17763ce67069))
(pin "11" (uuid d5a165a7-8ce6-4e1b-84c2-3a59c495c724))
(pin "12" (uuid 81bd4993-51d3-410e-89df-668bf78ebc26))
(pin "13" (uuid 38e2b8da-82c9-40f2-9e39-4a96b41ba498))
(pin "14" (uuid 3c73332f-b1f0-4aa2-82ce-e3fe06b38659))
(pin "15" (uuid 3f439387-484c-4f79-8e39-69857a19ff62))
(pin "16" (uuid 5790060b-f6b4-4e7c-b71b-9be050fabeb3))
(pin "2" (uuid 89f187dd-4aa7-426e-a126-1a6a4b13b7c5))
(pin "3" (uuid 5bd08c64-e48d-44fc-8942-1682a4518ac5))
(pin "4" (uuid f1c8d060-24fb-4160-842a-c8a381622ac8))
(pin "5" (uuid 1a6dd860-3e05-45f1-b31c-06743a5488e4))
(pin "6" (uuid 7a5011b1-81cd-486f-badb-0aff79a9e199))
(pin "7" (uuid ca3b64e5-7a4a-4e56-ab1d-3b35a04fc50a))
(pin "8" (uuid 466348dd-6ddd-45ca-a802-6d4c57153fb7))
(pin "9" (uuid 5e4aabb7-fb4a-4be4-93d8-5798c8c5ae87))
(instances
(project "george"
(path "/c2284e4e-9652-4cdf-884d-a267b847753c/e285a72c-60b6-49f6-88c2-a6ccdce241f4"
(reference "U26") (unit 1)
)
)
)
)
)

508
audio.kicad_sch-bak Normal file
View File

@ -0,0 +1,508 @@
(kicad_sch (version 20230121) (generator eeschema)
(uuid ff7fdb17-b492-4d18-9a3f-a2fd01911dec)
(paper "A4")
(title_block
(title "ʕ·ᴥ·ʔ-audio")
)
(lib_symbols
(symbol "74xx:74HC590" (in_bom yes) (on_board yes)
(property "Reference" "U" (at -7.62 16.51 0)
(effects (font (size 1.27 1.27)))
)
(property "Value" "74HC590" (at -7.62 -13.97 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (at 0 1.27 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "https://assets.nexperia.com/documents/data-sheet/74HC590.pdf" (at 0 1.27 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_keywords" "HCMOS Counter 3State" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "8-bit Binary Counter with Output Register 3-State Outputs, SOIC-16/TSSOP-16" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_fp_filters" "DIP*W7.62mm* SOIC*3.9x9.9mm*P1.27mm* TSSOP*4.4x5mm*P0.65mm* SOIC*5.3x10.2mm*P1.27mm* SOIC*7.5x10.3mm*P1.27mm*" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "74HC590_1_0"
(pin tri_state line (at 10.16 10.16 180) (length 2.54)
(name "Q1" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 0 0) (length 2.54)
(name "~{MRC}" (effects (font (size 1.27 1.27))))
(number "10" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 7.62 0) (length 2.54)
(name "CPC" (effects (font (size 1.27 1.27))))
(number "11" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 12.7 0) (length 2.54)
(name "~{CE}" (effects (font (size 1.27 1.27))))
(number "12" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 5.08 0) (length 2.54)
(name "CPR" (effects (font (size 1.27 1.27))))
(number "13" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 -5.08 0) (length 2.54)
(name "~{OE}" (effects (font (size 1.27 1.27))))
(number "14" (effects (font (size 1.27 1.27))))
)
(pin tri_state line (at 10.16 12.7 180) (length 2.54)
(name "Q0" (effects (font (size 1.27 1.27))))
(number "15" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 0 17.78 270) (length 2.54)
(name "VCC" (effects (font (size 1.27 1.27))))
(number "16" (effects (font (size 1.27 1.27))))
)
(pin tri_state line (at 10.16 7.62 180) (length 2.54)
(name "Q2" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
(pin tri_state line (at 10.16 5.08 180) (length 2.54)
(name "Q3" (effects (font (size 1.27 1.27))))
(number "3" (effects (font (size 1.27 1.27))))
)
(pin tri_state line (at 10.16 2.54 180) (length 2.54)
(name "Q4" (effects (font (size 1.27 1.27))))
(number "4" (effects (font (size 1.27 1.27))))
)
(pin tri_state line (at 10.16 0 180) (length 2.54)
(name "Q5" (effects (font (size 1.27 1.27))))
(number "5" (effects (font (size 1.27 1.27))))
)
(pin tri_state line (at 10.16 -2.54 180) (length 2.54)
(name "Q6" (effects (font (size 1.27 1.27))))
(number "6" (effects (font (size 1.27 1.27))))
)
(pin tri_state line (at 10.16 -5.08 180) (length 2.54)
(name "Q7" (effects (font (size 1.27 1.27))))
(number "7" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 0 -15.24 90) (length 2.54)
(name "GND" (effects (font (size 1.27 1.27))))
(number "8" (effects (font (size 1.27 1.27))))
)
(pin output line (at 10.16 -10.16 180) (length 2.54)
(name "~{RCO}" (effects (font (size 1.27 1.27))))
(number "9" (effects (font (size 1.27 1.27))))
)
)
(symbol "74HC590_1_1"
(rectangle (start -7.62 15.24) (end 7.62 -12.7)
(stroke (width 0.254) (type default))
(fill (type background))
)
)
)
(symbol "Device:Speaker" (pin_names (offset 0) hide) (in_bom yes) (on_board yes)
(property "Reference" "LS" (at 1.27 5.715 0)
(effects (font (size 1.27 1.27)) (justify right))
)
(property "Value" "Speaker" (at 1.27 3.81 0)
(effects (font (size 1.27 1.27)) (justify right))
)
(property "Footprint" "" (at 0 -5.08 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (at -0.254 -1.27 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_keywords" "speaker sound" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "Speaker" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "Speaker_0_0"
(rectangle (start -2.54 1.27) (end 1.016 -3.81)
(stroke (width 0.254) (type default))
(fill (type none))
)
(polyline
(pts
(xy 1.016 1.27)
(xy 3.556 3.81)
(xy 3.556 -6.35)
(xy 1.016 -3.81)
)
(stroke (width 0.254) (type default))
(fill (type none))
)
)
(symbol "Speaker_1_1"
(pin input line (at -5.08 0 0) (length 2.54)
(name "1" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin input line (at -5.08 -2.54 0) (length 2.54)
(name "2" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
)
)
(symbol "Memory_EEPROM:28C256" (in_bom yes) (on_board yes)
(property "Reference" "U" (at -7.62 26.67 0)
(effects (font (size 1.27 1.27)))
)
(property "Value" "28C256" (at 2.54 -26.67 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://ww1.microchip.com/downloads/en/DeviceDoc/doc0006.pdf" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_keywords" "Parallel EEPROM 256Kb" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "Paged Parallel EEPROM 256Kb (32K x 8), DIP-28/SOIC-28" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_fp_filters" "DIP*W15.24mm* SOIC*7.5x17.9mm*P1.27mm*" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "28C256_1_1"
(rectangle (start -7.62 25.4) (end 7.62 -25.4)
(stroke (width 0.254) (type default))
(fill (type background))
)
(pin input line (at -10.16 -12.7 0) (length 2.54)
(name "A14" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 22.86 0) (length 2.54)
(name "A0" (effects (font (size 1.27 1.27))))
(number "10" (effects (font (size 1.27 1.27))))
)
(pin tri_state line (at 10.16 22.86 180) (length 2.54)
(name "D0" (effects (font (size 1.27 1.27))))
(number "11" (effects (font (size 1.27 1.27))))
)
(pin tri_state line (at 10.16 20.32 180) (length 2.54)
(name "D1" (effects (font (size 1.27 1.27))))
(number "12" (effects (font (size 1.27 1.27))))
)
(pin tri_state line (at 10.16 17.78 180) (length 2.54)
(name "D2" (effects (font (size 1.27 1.27))))
(number "13" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 0 -27.94 90) (length 2.54)
(name "GND" (effects (font (size 1.27 1.27))))
(number "14" (effects (font (size 1.27 1.27))))
)
(pin tri_state line (at 10.16 15.24 180) (length 2.54)
(name "D3" (effects (font (size 1.27 1.27))))
(number "15" (effects (font (size 1.27 1.27))))
)
(pin tri_state line (at 10.16 12.7 180) (length 2.54)
(name "D4" (effects (font (size 1.27 1.27))))
(number "16" (effects (font (size 1.27 1.27))))
)
(pin tri_state line (at 10.16 10.16 180) (length 2.54)
(name "D5" (effects (font (size 1.27 1.27))))
(number "17" (effects (font (size 1.27 1.27))))
)
(pin tri_state line (at 10.16 7.62 180) (length 2.54)
(name "D6" (effects (font (size 1.27 1.27))))
(number "18" (effects (font (size 1.27 1.27))))
)
(pin tri_state line (at 10.16 5.08 180) (length 2.54)
(name "D7" (effects (font (size 1.27 1.27))))
(number "19" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 -7.62 0) (length 2.54)
(name "A12" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 -22.86 0) (length 2.54)
(name "~{CS}" (effects (font (size 1.27 1.27))))
(number "20" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 -2.54 0) (length 2.54)
(name "A10" (effects (font (size 1.27 1.27))))
(number "21" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 -20.32 0) (length 2.54)
(name "~{OE}" (effects (font (size 1.27 1.27))))
(number "22" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 -5.08 0) (length 2.54)
(name "A11" (effects (font (size 1.27 1.27))))
(number "23" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 0 0) (length 2.54)
(name "A9" (effects (font (size 1.27 1.27))))
(number "24" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 2.54 0) (length 2.54)
(name "A8" (effects (font (size 1.27 1.27))))
(number "25" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 -10.16 0) (length 2.54)
(name "A13" (effects (font (size 1.27 1.27))))
(number "26" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 -17.78 0) (length 2.54)
(name "~{WE}" (effects (font (size 1.27 1.27))))
(number "27" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at 0 27.94 270) (length 2.54)
(name "VCC" (effects (font (size 1.27 1.27))))
(number "28" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 5.08 0) (length 2.54)
(name "A7" (effects (font (size 1.27 1.27))))
(number "3" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 7.62 0) (length 2.54)
(name "A6" (effects (font (size 1.27 1.27))))
(number "4" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 10.16 0) (length 2.54)
(name "A5" (effects (font (size 1.27 1.27))))
(number "5" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 12.7 0) (length 2.54)
(name "A4" (effects (font (size 1.27 1.27))))
(number "6" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 15.24 0) (length 2.54)
(name "A3" (effects (font (size 1.27 1.27))))
(number "7" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 17.78 0) (length 2.54)
(name "A2" (effects (font (size 1.27 1.27))))
(number "8" (effects (font (size 1.27 1.27))))
)
(pin input line (at -10.16 20.32 0) (length 2.54)
(name "A1" (effects (font (size 1.27 1.27))))
(number "9" (effects (font (size 1.27 1.27))))
)
)
)
)
(junction (at 45.72 128.27) (diameter 0) (color 0 0 0 0)
(uuid 182aee58-cf5a-4b2b-887f-832ed61a32c2)
)
(junction (at 45.72 123.19) (diameter 0) (color 0 0 0 0)
(uuid edc78de3-d7c9-41c8-becb-737935085971)
)
(wire (pts (xy 45.72 123.19) (xy 45.72 128.27))
(stroke (width 0) (type default))
(uuid 116ca04b-bacc-4202-940c-7c129a9a682c)
)
(wire (pts (xy 41.91 123.19) (xy 45.72 123.19))
(stroke (width 0) (type default))
(uuid ce3d9dec-cf79-4b6f-8d10-81603253c3c8)
)
(wire (pts (xy 45.72 128.27) (xy 45.72 130.81))
(stroke (width 0) (type default))
(uuid e98ec53a-255e-4359-8b69-9a675ac4c436)
)
(text "okay so here's the idea: \nthere's a 32k voicebank for george's voice\ni need a way for the cpu to asynchronously\npick a voice note to be played, and then\ntrigger an interrupt for when the sample ends\nso that we know that the next sample is ready to be queued up\ni'm thinking that the cpu sees an 8 bit register\nto select a voice sample and some extra stuff,\n each sample is 2k long, so 16 are available, \nleaving 4 bits to do stuff like pitch shifting\nor setting volume, then the voice circuit \nreads from the register, selects the corresponding sample\nfrom memory, sends the sample data to a shift register\n(idk how digital audio works so i'll have to look into that lol)\ni'm gonna wanna use a binary counter to tell when we've read 2k\nof sample data, and then when we hit that amount stop reading from the rom,\nsend an interrupt, and wait for the next instruction"
(at 205.74 52.07 0)
(effects (font (size 1.27 1.27)) (justify left bottom))
(uuid eabb0f66-e6b5-4a10-9e48-66011a942fc3)
)
(symbol (lib_id "74xx:74HC590") (at 55.88 135.89 0) (unit 1)
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
(uuid 28a9d459-6bdf-4596-aa4f-c9197e5adfff)
(property "Reference" "U27" (at 58.0741 115.57 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "74HC590" (at 58.0741 118.11 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "" (at 55.88 134.62 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "https://assets.nexperia.com/documents/data-sheet/74HC590.pdf" (at 55.88 134.62 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid b6a08dda-bbe6-47e5-aaef-4e5bd7127cba))
(pin "10" (uuid 384ce758-f7b1-425f-9bf0-d091d36c468c))
(pin "11" (uuid 173ecfb2-ac1f-41f5-90ec-113c982cf570))
(pin "12" (uuid 53361efd-8000-4591-9f28-2f0e26105684))
(pin "13" (uuid e6b4b946-50de-464a-9973-0ca270662d4f))
(pin "14" (uuid e7773996-af80-492d-af0f-5628fed7f72c))
(pin "15" (uuid 1be6e73a-10d5-4b47-a2fd-bb8d3b182bbc))
(pin "16" (uuid 84e0437b-ee79-4a36-8707-e26553651ec9))
(pin "2" (uuid f250f4f1-3833-45ec-a6a6-cf75fdd9d0e8))
(pin "3" (uuid d1c1ce8a-cf06-414e-8f7c-1347b0e7acb8))
(pin "4" (uuid a1f28b5c-8aa1-4c49-b912-1d80b39f81f5))
(pin "5" (uuid 219d8624-d41b-40f0-afcd-2a98585711d8))
(pin "6" (uuid b0869bfe-59ed-4764-ba88-827487353be8))
(pin "7" (uuid 53921015-a3b4-4c3f-a622-e7001299369a))
(pin "8" (uuid 58c61e64-cd7b-4bc2-b434-345af5fa0251))
(pin "9" (uuid 71a64824-eb1b-43cb-a189-603dc9e489fd))
(instances
(project "george"
(path "/c2284e4e-9652-4cdf-884d-a267b847753c/e285a72c-60b6-49f6-88c2-a6ccdce241f4"
(reference "U27") (unit 1)
)
)
)
)
(symbol (lib_id "Memory_EEPROM:28C256") (at 31.75 54.61 0) (unit 1)
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
(uuid 7d174dd6-f549-4393-8ce8-9c2ce47c2a51)
(property "Reference" "U7" (at 33.9441 24.13 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "28C256" (at 33.9441 26.67 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "Package_DIP:DIP-28_W15.24mm" (at 31.75 54.61 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://ww1.microchip.com/downloads/en/DeviceDoc/doc0006.pdf" (at 31.75 54.61 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 3756749f-e251-4670-8c31-c49850083780))
(pin "10" (uuid a8fba68b-84a0-495d-80db-56ce6de16f54))
(pin "11" (uuid 6b2bf3d6-e94d-4c4c-97ef-e1286b23c70d))
(pin "12" (uuid c035c455-6a0b-4b25-a082-787b0e6197ed))
(pin "13" (uuid f1ecc221-df39-41c2-b347-1cce54dec738))
(pin "14" (uuid c205559a-d925-41c1-a3a9-53bc63b51285))
(pin "15" (uuid 2abe9b28-d6c2-45f0-91cb-a258dae2a00b))
(pin "16" (uuid 2cf724c1-29d8-46ef-be6f-1c129e73b814))
(pin "17" (uuid eb1dbc20-b195-4407-94af-513c791d8f28))
(pin "18" (uuid da5bac40-22a0-423a-818a-72122ebe6260))
(pin "19" (uuid 9c971a73-dcb0-4aa1-9193-fffd89e640fe))
(pin "2" (uuid b388cf73-ff57-4de0-b53b-efdf0754acaf))
(pin "20" (uuid b1a69673-6cd0-4333-9519-1d3770854e0b))
(pin "21" (uuid aac1ff4a-4c6b-49a6-b1bd-383794940b58))
(pin "22" (uuid ced83381-9839-43bc-9ef1-6b940a6d9fc7))
(pin "23" (uuid 561289d3-b9bb-45d5-95e1-88189991e689))
(pin "24" (uuid 7da73e34-4dba-4d9d-aebe-635e51c00c8b))
(pin "25" (uuid 76b80935-41bc-4ee0-b1c3-f0827db0ed2d))
(pin "26" (uuid 25cfb47d-80a6-4ab6-b534-d93fe654e810))
(pin "27" (uuid fd5bc723-0669-4355-a293-6f36dcb3d13b))
(pin "28" (uuid 1e6e4d86-c40f-4a0e-afa0-07e1e32aa2fd))
(pin "3" (uuid 37a1fdd8-1d97-43c4-8aee-0d384ab796bf))
(pin "4" (uuid 99f7063c-4ddf-4634-8dbf-86c0e33ed5ef))
(pin "5" (uuid 7e50e749-0cec-469c-a109-55ed28ff585c))
(pin "6" (uuid 5fb77cfb-0c56-4e25-92fa-fcb759af2d00))
(pin "7" (uuid 467a4fdf-4489-4475-9633-d403383e407e))
(pin "8" (uuid ba610ede-fcd8-48ad-aa92-ba22dad37f81))
(pin "9" (uuid 09dd791f-3594-436f-b058-08b65bdb6ff1))
(instances
(project "george"
(path "/c2284e4e-9652-4cdf-884d-a267b847753c/4fc87bef-9065-48cc-adac-8a035ced590c"
(reference "U7") (unit 1)
)
(path "/c2284e4e-9652-4cdf-884d-a267b847753c/e285a72c-60b6-49f6-88c2-a6ccdce241f4"
(reference "U19") (unit 1)
)
)
)
)
(symbol (lib_id "Device:Speaker") (at 198.12 118.11 0) (unit 1)
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
(uuid ed02cc13-59db-458d-9861-351df41ad1be)
(property "Reference" "LS2" (at 203.2 118.11 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "10 Ohm Speaker" (at 203.2 120.65 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "" (at 198.12 123.19 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (at 197.866 119.38 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid b8f42e76-38d3-422b-8e21-df5aed57f419))
(pin "2" (uuid 5771204b-db9a-41cd-8e15-192a4ceff6f6))
(instances
(project "george"
(path "/c2284e4e-9652-4cdf-884d-a267b847753c/e285a72c-60b6-49f6-88c2-a6ccdce241f4"
(reference "LS2") (unit 1)
)
)
)
)
(symbol (lib_id "Device:Speaker") (at 198.12 102.87 0) (unit 1)
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
(uuid f0a55852-65f2-4318-8030-571671e0dde7)
(property "Reference" "LS1" (at 203.2 102.87 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "20 Ohm Speaker" (at 203.2 105.41 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "" (at 198.12 107.95 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (at 197.866 104.14 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 2c9ca056-9760-40b4-a3ce-19056d5ddca1))
(pin "2" (uuid 5b76f7e9-9e94-47f9-9d34-6e875114526c))
(instances
(project "george"
(path "/c2284e4e-9652-4cdf-884d-a267b847753c/e285a72c-60b6-49f6-88c2-a6ccdce241f4"
(reference "LS1") (unit 1)
)
)
)
)
(symbol (lib_id "74xx:74HC590") (at 31.75 113.03 0) (unit 1)
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
(uuid fbad72ce-d88e-4963-ae16-61737bbb1a3f)
(property "Reference" "U26" (at 33.9441 92.71 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "74HC590" (at 33.9441 95.25 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "" (at 31.75 111.76 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "https://assets.nexperia.com/documents/data-sheet/74HC590.pdf" (at 31.75 111.76 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 38162b63-744a-418e-9763-5dff5d589e1a))
(pin "10" (uuid 7d897a4c-4acb-4e0b-87d7-17763ce67069))
(pin "11" (uuid d5a165a7-8ce6-4e1b-84c2-3a59c495c724))
(pin "12" (uuid 81bd4993-51d3-410e-89df-668bf78ebc26))
(pin "13" (uuid 38e2b8da-82c9-40f2-9e39-4a96b41ba498))
(pin "14" (uuid 3c73332f-b1f0-4aa2-82ce-e3fe06b38659))
(pin "15" (uuid 3f439387-484c-4f79-8e39-69857a19ff62))
(pin "16" (uuid 5790060b-f6b4-4e7c-b71b-9be050fabeb3))
(pin "2" (uuid 89f187dd-4aa7-426e-a126-1a6a4b13b7c5))
(pin "3" (uuid 5bd08c64-e48d-44fc-8942-1682a4518ac5))
(pin "4" (uuid f1c8d060-24fb-4160-842a-c8a381622ac8))
(pin "5" (uuid 1a6dd860-3e05-45f1-b31c-06743a5488e4))
(pin "6" (uuid 7a5011b1-81cd-486f-badb-0aff79a9e199))
(pin "7" (uuid ca3b64e5-7a4a-4e56-ab1d-3b35a04fc50a))
(pin "8" (uuid 466348dd-6ddd-45ca-a802-6d4c57153fb7))
(pin "9" (uuid 5e4aabb7-fb4a-4be4-93d8-5798c8c5ae87))
(instances
(project "george"
(path "/c2284e4e-9652-4cdf-884d-a267b847753c/e285a72c-60b6-49f6-88c2-a6ccdce241f4"
(reference "U26") (unit 1)
)
)
)
)
)

2225
clockreset.kicad_sch Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

6
george.csv Normal file
View File

@ -0,0 +1,6 @@
"Id";"Designator";"Footprint";"Quantity";"Designation";"Supplier and ref";
1;"U8";"DIP-28_W15.24mm";1;"HM62256BLP";;;
2;"U7";"DIP-28_W15.24mm";1;"28C256";;;
3;"U4";"DIP-28_W15.24mm";1;"62256";;;
4;"U2";"DIP-40_W15.24mm";1;"MC6845";;;
5;"U1";"DIP-40_W15.24mm";1;"W65C02SxP";;;
Can't render this file because it has a wrong number of fields in line 2.

2
george.kicad_pcb Normal file
View File

@ -0,0 +1,2 @@
(kicad_pcb (version 20221018) (generator pcbnew)
)

77
george.kicad_prl Normal file
View File

@ -0,0 +1,77 @@
{
"board": {
"active_layer": 0,
"active_layer_preset": "",
"auto_track_width": true,
"hidden_netclasses": [],
"hidden_nets": [],
"high_contrast_mode": 0,
"net_color_mode": 1,
"opacity": {
"images": 0.6,
"pads": 1.0,
"tracks": 1.0,
"vias": 1.0,
"zones": 0.6
},
"selection_filter": {
"dimensions": true,
"footprints": true,
"graphics": true,
"keepouts": true,
"lockedItems": false,
"otherItems": true,
"pads": true,
"text": true,
"tracks": true,
"vias": true,
"zones": true
},
"visible_items": [
0,
1,
2,
3,
4,
5,
8,
9,
10,
11,
12,
13,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
32,
33,
34,
35,
36,
39,
40
],
"visible_layers": "fffffff_ffffffff",
"zone_display_mode": 0
},
"meta": {
"filename": "george.kicad_prl",
"version": 3
},
"project": {
"files": []
}
}

515
george.kicad_pro Normal file
View File

@ -0,0 +1,515 @@
{
"board": {
"3dviewports": [],
"design_settings": {
"defaults": {
"board_outline_line_width": 0.09999999999999999,
"copper_line_width": 0.19999999999999998,
"copper_text_italic": false,
"copper_text_size_h": 1.5,
"copper_text_size_v": 1.5,
"copper_text_thickness": 0.3,
"copper_text_upright": false,
"courtyard_line_width": 0.049999999999999996,
"dimension_precision": 4,
"dimension_units": 3,
"dimensions": {
"arrow_length": 1270000,
"extension_offset": 500000,
"keep_text_aligned": true,
"suppress_zeroes": false,
"text_position": 0,
"units_format": 1
},
"fab_line_width": 0.09999999999999999,
"fab_text_italic": false,
"fab_text_size_h": 1.0,
"fab_text_size_v": 1.0,
"fab_text_thickness": 0.15,
"fab_text_upright": false,
"other_line_width": 0.15,
"other_text_italic": false,
"other_text_size_h": 1.0,
"other_text_size_v": 1.0,
"other_text_thickness": 0.15,
"other_text_upright": false,
"pads": {
"drill": 0.762,
"height": 1.524,
"width": 1.524
},
"silk_line_width": 0.15,
"silk_text_italic": false,
"silk_text_size_h": 1.0,
"silk_text_size_v": 1.0,
"silk_text_thickness": 0.15,
"silk_text_upright": false,
"zones": {
"min_clearance": 0.5
}
},
"diff_pair_dimensions": [],
"drc_exclusions": [],
"meta": {
"version": 2
},
"rule_severities": {
"annular_width": "error",
"clearance": "error",
"connection_width": "warning",
"copper_edge_clearance": "error",
"copper_sliver": "warning",
"courtyards_overlap": "error",
"diff_pair_gap_out_of_range": "error",
"diff_pair_uncoupled_length_too_long": "error",
"drill_out_of_range": "error",
"duplicate_footprints": "warning",
"extra_footprint": "warning",
"footprint": "error",
"footprint_type_mismatch": "ignore",
"hole_clearance": "error",
"hole_near_hole": "error",
"invalid_outline": "error",
"isolated_copper": "warning",
"item_on_disabled_layer": "error",
"items_not_allowed": "error",
"length_out_of_range": "error",
"lib_footprint_issues": "warning",
"lib_footprint_mismatch": "warning",
"malformed_courtyard": "error",
"microvia_drill_out_of_range": "error",
"missing_courtyard": "ignore",
"missing_footprint": "warning",
"net_conflict": "warning",
"npth_inside_courtyard": "ignore",
"padstack": "warning",
"pth_inside_courtyard": "ignore",
"shorting_items": "error",
"silk_edge_clearance": "warning",
"silk_over_copper": "warning",
"silk_overlap": "warning",
"skew_out_of_range": "error",
"solder_mask_bridge": "error",
"starved_thermal": "error",
"text_height": "warning",
"text_thickness": "warning",
"through_hole_pad_without_hole": "error",
"too_many_vias": "error",
"track_dangling": "warning",
"track_width": "error",
"tracks_crossing": "error",
"unconnected_items": "error",
"unresolved_variable": "error",
"via_dangling": "warning",
"zones_intersect": "error"
},
"rules": {
"max_error": 0.005,
"min_clearance": 0.0,
"min_connection": 0.0,
"min_copper_edge_clearance": 0.0,
"min_hole_clearance": 0.25,
"min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.19999999999999998,
"min_microvia_drill": 0.09999999999999999,
"min_resolved_spokes": 2,
"min_silk_clearance": 0.0,
"min_text_height": 0.7999999999999999,
"min_text_thickness": 0.08,
"min_through_hole_diameter": 0.3,
"min_track_width": 0.0,
"min_via_annular_width": 0.09999999999999999,
"min_via_diameter": 0.5,
"solder_mask_clearance": 0.0,
"solder_mask_min_width": 0.0,
"solder_mask_to_copper_clearance": 0.0,
"use_height_for_length_calcs": true
},
"teardrop_options": [
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 5,
"td_on_pad_in_zone": false,
"td_onpadsmd": true,
"td_onroundshapesonly": false,
"td_ontrackend": false,
"td_onviapad": true
}
],
"teardrop_parameters": [
{
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_target_name": "td_round_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_target_name": "td_rect_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_target_name": "td_track_end",
"td_width_to_size_filter_ratio": 0.9
}
],
"track_widths": [],
"via_dimensions": [],
"zones_allow_external_fillets": false
},
"layer_presets": [],
"viewports": []
},
"boards": [],
"cvpcb": {
"equivalence_files": []
},
"erc": {
"erc_exclusions": [],
"meta": {
"version": 0
},
"pin_map": [
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
1,
2
],
[
0,
1,
0,
0,
0,
0,
1,
1,
2,
1,
1,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2
],
[
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
2
],
[
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
1,
2,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
0,
2,
1,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2
]
],
"rule_severities": {
"bus_definition_conflict": "error",
"bus_entry_needed": "error",
"bus_to_bus_conflict": "error",
"bus_to_net_conflict": "error",
"conflicting_netclasses": "error",
"different_unit_footprint": "error",
"different_unit_net": "error",
"duplicate_reference": "error",
"duplicate_sheet_names": "error",
"endpoint_off_grid": "warning",
"extra_units": "error",
"global_label_dangling": "warning",
"hier_label_mismatch": "error",
"label_dangling": "error",
"lib_symbol_issues": "warning",
"missing_bidi_pin": "warning",
"missing_input_pin": "warning",
"missing_power_pin": "error",
"missing_unit": "warning",
"multiple_net_names": "warning",
"net_not_bus_member": "warning",
"no_connect_connected": "warning",
"no_connect_dangling": "warning",
"pin_not_connected": "error",
"pin_not_driven": "error",
"pin_to_pin": "warning",
"power_pin_not_driven": "error",
"similar_labels": "warning",
"simulation_model_issue": "ignore",
"unannotated": "error",
"unit_value_mismatch": "error",
"unresolved_variable": "error",
"wire_dangling": "error"
}
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": [
"65xx-library"
]
},
"meta": {
"filename": "george.kicad_pro",
"version": 1
},
"net_settings": {
"classes": [
{
"bus_width": 12,
"clearance": 0.2,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.2,
"line_style": 0,
"microvia_diameter": 0.3,
"microvia_drill": 0.1,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.25,
"via_diameter": 0.8,
"via_drill": 0.4,
"wire_width": 6
}
],
"meta": {
"version": 3
},
"net_colors": null,
"netclass_assignments": null,
"netclass_patterns": []
},
"pcbnew": {
"last_paths": {
"gencad": "",
"idf": "",
"netlist": "",
"specctra_dsn": "",
"step": "",
"vrml": ""
},
"page_layout_descr_file": ""
},
"schematic": {
"annotate_start_num": 0,
"drawing": {
"dashed_lines_dash_length_ratio": 12.0,
"dashed_lines_gap_length_ratio": 3.0,
"default_line_thickness": 6.0,
"default_text_size": 50.0,
"field_names": [],
"intersheets_ref_own_page": false,
"intersheets_ref_prefix": "",
"intersheets_ref_short": false,
"intersheets_ref_show": false,
"intersheets_ref_suffix": "",
"junction_size_choice": 3,
"label_size_ratio": 0.375,
"pin_symbol_size": 25.0,
"text_offset_ratio": 0.15
},
"legacy_lib_dir": "",
"legacy_lib_list": [],
"meta": {
"version": 1
},
"net_format_name": "",
"ngspice": {
"fix_include_paths": true,
"meta": {
"version": 0
},
"model_mode": 0,
"workbook_filename": ""
},
"page_layout_descr_file": "",
"plot_directory": "",
"spice_current_sheet_as_root": false,
"spice_external_command": "spice \"%I\"",
"spice_model_current_sheet_as_root": true,
"spice_save_all_currents": false,
"spice_save_all_voltages": false,
"subpart_first_id": 65,
"subpart_id_separator": 0
},
"sheets": [
[
"c2284e4e-9652-4cdf-884d-a267b847753c",
""
],
[
"4fc87bef-9065-48cc-adac-8a035ced590c",
"Memory"
],
[
"ef5b6c17-5baa-4f34-8c5a-c2ff82ada9a7",
"IO"
],
[
"5668d45a-577e-422e-a10c-8d3d9009d39a",
"Video"
],
[
"7617c470-a3e3-49ab-aa7b-e191ba11c812",
"Ports"
],
[
"8fb99111-08f0-4698-8086-cb89d138e39a",
"Clock & Reset"
],
[
"e285a72c-60b6-49f6-88c2-a6ccdce241f4",
"Audio"
],
[
"fdf20e29-abee-461c-b580-40081b6f303c",
"Keyboard"
]
],
"text_variables": {}
}

2205
george.kicad_sch Normal file

File diff suppressed because it is too large Load Diff

14
io.kicad_sch Normal file
View File

@ -0,0 +1,14 @@
(kicad_sch (version 20230121) (generator eeschema)
(uuid e90f199c-040a-46c9-adb6-b91688518fa0)
(paper "A4")
(title_block
(title "ʕ·ᴥ·ʔ-i/o")
)
(lib_symbols
)
)

334
keyboard.kicad_sch Normal file
View File

@ -0,0 +1,334 @@
(kicad_sch (version 20230121) (generator eeschema)
(uuid 90b2580f-c8ab-4f8e-80a9-b32b07b7ab4e)
(paper "A4")
(lib_symbols
(symbol "Connector:Conn_01x16_Socket" (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes)
(property "Reference" "J" (at 0 20.32 0)
(effects (font (size 1.27 1.27)))
)
(property "Value" "Conn_01x16_Socket" (at 0 -22.86 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_locked" "" (at 0 0 0)
(effects (font (size 1.27 1.27)))
)
(property "ki_keywords" "connector" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "Generic connector, single row, 01x16, script generated" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_fp_filters" "Connector*:*_1x??_*" (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "Conn_01x16_Socket_1_1"
(arc (start 0 -19.812) (mid -0.5058 -20.32) (end 0 -20.828)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(arc (start 0 -17.272) (mid -0.5058 -17.78) (end 0 -18.288)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(arc (start 0 -14.732) (mid -0.5058 -15.24) (end 0 -15.748)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(arc (start 0 -12.192) (mid -0.5058 -12.7) (end 0 -13.208)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(arc (start 0 -9.652) (mid -0.5058 -10.16) (end 0 -10.668)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(arc (start 0 -7.112) (mid -0.5058 -7.62) (end 0 -8.128)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(arc (start 0 -4.572) (mid -0.5058 -5.08) (end 0 -5.588)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(arc (start 0 -2.032) (mid -0.5058 -2.54) (end 0 -3.048)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(polyline
(pts
(xy -1.27 -20.32)
(xy -0.508 -20.32)
)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(polyline
(pts
(xy -1.27 -17.78)
(xy -0.508 -17.78)
)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(polyline
(pts
(xy -1.27 -15.24)
(xy -0.508 -15.24)
)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(polyline
(pts
(xy -1.27 -12.7)
(xy -0.508 -12.7)
)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(polyline
(pts
(xy -1.27 -10.16)
(xy -0.508 -10.16)
)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(polyline
(pts
(xy -1.27 -7.62)
(xy -0.508 -7.62)
)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(polyline
(pts
(xy -1.27 -5.08)
(xy -0.508 -5.08)
)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(polyline
(pts
(xy -1.27 -2.54)
(xy -0.508 -2.54)
)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(polyline
(pts
(xy -1.27 0)
(xy -0.508 0)
)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(polyline
(pts
(xy -1.27 2.54)
(xy -0.508 2.54)
)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(polyline
(pts
(xy -1.27 5.08)
(xy -0.508 5.08)
)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(polyline
(pts
(xy -1.27 7.62)
(xy -0.508 7.62)
)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(polyline
(pts
(xy -1.27 10.16)
(xy -0.508 10.16)
)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(polyline
(pts
(xy -1.27 12.7)
(xy -0.508 12.7)
)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(polyline
(pts
(xy -1.27 15.24)
(xy -0.508 15.24)
)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(polyline
(pts
(xy -1.27 17.78)
(xy -0.508 17.78)
)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(arc (start 0 0.508) (mid -0.5058 0) (end 0 -0.508)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(arc (start 0 3.048) (mid -0.5058 2.54) (end 0 2.032)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(arc (start 0 5.588) (mid -0.5058 5.08) (end 0 4.572)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(arc (start 0 8.128) (mid -0.5058 7.62) (end 0 7.112)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(arc (start 0 10.668) (mid -0.5058 10.16) (end 0 9.652)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(arc (start 0 13.208) (mid -0.5058 12.7) (end 0 12.192)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(arc (start 0 15.748) (mid -0.5058 15.24) (end 0 14.732)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(arc (start 0 18.288) (mid -0.5058 17.78) (end 0 17.272)
(stroke (width 0.1524) (type default))
(fill (type none))
)
(pin passive line (at -5.08 17.78 0) (length 3.81)
(name "Pin_1" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -5.08 0) (length 3.81)
(name "Pin_10" (effects (font (size 1.27 1.27))))
(number "10" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -7.62 0) (length 3.81)
(name "Pin_11" (effects (font (size 1.27 1.27))))
(number "11" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -10.16 0) (length 3.81)
(name "Pin_12" (effects (font (size 1.27 1.27))))
(number "12" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -12.7 0) (length 3.81)
(name "Pin_13" (effects (font (size 1.27 1.27))))
(number "13" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -15.24 0) (length 3.81)
(name "Pin_14" (effects (font (size 1.27 1.27))))
(number "14" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -17.78 0) (length 3.81)
(name "Pin_15" (effects (font (size 1.27 1.27))))
(number "15" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -20.32 0) (length 3.81)
(name "Pin_16" (effects (font (size 1.27 1.27))))
(number "16" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 15.24 0) (length 3.81)
(name "Pin_2" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 12.7 0) (length 3.81)
(name "Pin_3" (effects (font (size 1.27 1.27))))
(number "3" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 10.16 0) (length 3.81)
(name "Pin_4" (effects (font (size 1.27 1.27))))
(number "4" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 7.62 0) (length 3.81)
(name "Pin_5" (effects (font (size 1.27 1.27))))
(number "5" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 5.08 0) (length 3.81)
(name "Pin_6" (effects (font (size 1.27 1.27))))
(number "6" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 2.54 0) (length 3.81)
(name "Pin_7" (effects (font (size 1.27 1.27))))
(number "7" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 0 0) (length 3.81)
(name "Pin_8" (effects (font (size 1.27 1.27))))
(number "8" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -2.54 0) (length 3.81)
(name "Pin_9" (effects (font (size 1.27 1.27))))
(number "9" (effects (font (size 1.27 1.27))))
)
)
)
)
(symbol (lib_id "Connector:Conn_01x16_Socket") (at 38.1 55.88 0) (unit 1)
(in_bom yes) (on_board yes) (dnp no) (fields_autoplaced)
(uuid a5c6ac81-5a79-41aa-bd24-985ab2200d38)
(property "Reference" "J1" (at 39.37 55.88 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "Conn_01x16_Socket" (at 39.37 58.42 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "" (at 38.1 55.88 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (at 38.1 55.88 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 817d1e35-b0f1-419d-ad09-f3c1021c8984))
(pin "10" (uuid dab97664-966a-4178-a953-188dd189ac22))
(pin "11" (uuid 266bc01c-d6a7-4d70-a898-8fa47407ea21))
(pin "12" (uuid 7e320c84-7a0c-4e8f-bcb9-38362889ac4f))
(pin "13" (uuid e7607d3c-fb8c-439d-8f59-d5c025732d5d))
(pin "14" (uuid 519fd706-d76d-43df-a777-538200c30b62))
(pin "15" (uuid 84b454a5-9494-4a94-ab55-d72a01e83dba))
(pin "16" (uuid ef1aabf1-d60d-469d-9460-528a60f7170b))
(pin "2" (uuid e7663dab-23f4-4be2-9d18-60b6b211749b))
(pin "3" (uuid 12c54c21-c3ba-462b-b5ca-adf59c62b589))
(pin "4" (uuid 9b4b4c85-d740-47c5-948f-b2940c4d2218))
(pin "5" (uuid 55f9fe81-ae28-4fc3-afd5-36600ea0634d))
(pin "6" (uuid a8fbf771-5159-4f58-bf57-e69252b32279))
(pin "7" (uuid 0ef84f12-9c77-4023-93b6-8e69c810fb7f))
(pin "8" (uuid ddb26ff2-2747-4ad6-b7dd-20dc1605f893))
(pin "9" (uuid 395b1423-f4c2-4edf-8761-97217ec43206))
(instances
(project "george"
(path "/c2284e4e-9652-4cdf-884d-a267b847753c/fdf20e29-abee-461c-b580-40081b6f303c"
(reference "J1") (unit 1)
)
)
)
)
)

View File

@ -0,0 +1,120 @@
{
"Header": {
"GenerationSoftware": {
"Vendor": "KiCad",
"Application": "Pcbnew",
"Version": "7.0.8"
},
"CreationDate": "2024-02-01T20:24:32-05:00"
},
"GeneralSpecs": {
"ProjectId": {
"Name": "keyboard",
"GUID": "6b657962-6f61-4726-942e-6b696361645f",
"Revision": "rev?"
},
"Size": {
"X": 233.35,
"Y": 84.1
},
"LayerNumber": 2,
"BoardThickness": 1.6,
"Finish": "None"
},
"DesignRules": [
{
"Layers": "Outer",
"PadToPad": 0.0,
"PadToTrack": 0.0,
"TrackToTrack": 0.2,
"MinLineWidth": 0.25
}
],
"FilesAttributes": [
{
"Path": "keyboard-F_Cu.gbr",
"FileFunction": "Copper,L1,Top",
"FilePolarity": "Positive"
},
{
"Path": "keyboard-B_Cu.gbr",
"FileFunction": "Copper,L2,Bot",
"FilePolarity": "Positive"
},
{
"Path": "keyboard-F_Paste.gbr",
"FileFunction": "SolderPaste,Top",
"FilePolarity": "Positive"
},
{
"Path": "keyboard-B_Paste.gbr",
"FileFunction": "SolderPaste,Bot",
"FilePolarity": "Positive"
},
{
"Path": "keyboard-F_Silkscreen.gbr",
"FileFunction": "Legend,Top",
"FilePolarity": "Positive"
},
{
"Path": "keyboard-B_Silkscreen.gbr",
"FileFunction": "Legend,Bot",
"FilePolarity": "Positive"
},
{
"Path": "keyboard-F_Mask.gbr",
"FileFunction": "SolderMask,Top",
"FilePolarity": "Negative"
},
{
"Path": "keyboard-B_Mask.gbr",
"FileFunction": "SolderMask,Bot",
"FilePolarity": "Negative"
},
{
"Path": "keyboard-Edge_Cuts.gbr",
"FileFunction": "Profile",
"FilePolarity": "Positive"
}
],
"MaterialStackup": [
{
"Type": "Legend",
"Name": "Top Silk Screen"
},
{
"Type": "SolderPaste",
"Name": "Top Solder Paste"
},
{
"Type": "SolderMask",
"Name": "Top Solder Mask"
},
{
"Type": "Copper",
"Name": "F.Cu"
},
{
"Type": "Dielectric",
"Material": "FR4",
"Name": "F.Cu/B.Cu",
"Notes": "Type: dielectric layer 1 (from F.Cu to B.Cu)"
},
{
"Type": "Copper",
"Name": "B.Cu"
},
{
"Type": "SolderMask",
"Name": "Bottom Solder Mask"
},
{
"Type": "SolderPaste",
"Name": "Bottom Solder Paste"
},
{
"Type": "Legend",
"Name": "Bottom Silk Screen"
}
]
}

8538
keyboard/keyboard.kicad_pcb Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,77 @@
{
"board": {
"active_layer": 37,
"active_layer_preset": "",
"auto_track_width": true,
"hidden_netclasses": [],
"hidden_nets": [],
"high_contrast_mode": 0,
"net_color_mode": 1,
"opacity": {
"images": 0.6,
"pads": 1.0,
"tracks": 1.0,
"vias": 1.0,
"zones": 0.6
},
"selection_filter": {
"dimensions": true,
"footprints": true,
"graphics": true,
"keepouts": true,
"lockedItems": false,
"otherItems": true,
"pads": true,
"text": true,
"tracks": true,
"vias": true,
"zones": true
},
"visible_items": [
0,
1,
2,
3,
4,
5,
7,
8,
9,
10,
11,
13,
15,
16,
17,
18,
19,
20,
21,
22,
23,
25,
26,
27,
28,
29,
30,
32,
33,
34,
35,
36,
37,
39,
40
],
"visible_layers": "fffffff_ffffffff",
"zone_display_mode": 0
},
"meta": {
"filename": "keyboard.kicad_prl",
"version": 3
},
"project": {
"files": []
}
}

477
keyboard/keyboard.kicad_pro Normal file
View File

@ -0,0 +1,477 @@
{
"board": {
"3dviewports": [],
"design_settings": {
"defaults": {
"board_outline_line_width": 0.09999999999999999,
"copper_line_width": 0.19999999999999998,
"copper_text_italic": false,
"copper_text_size_h": 1.5,
"copper_text_size_v": 1.5,
"copper_text_thickness": 0.3,
"copper_text_upright": false,
"courtyard_line_width": 0.049999999999999996,
"dimension_precision": 4,
"dimension_units": 3,
"dimensions": {
"arrow_length": 1270000,
"extension_offset": 500000,
"keep_text_aligned": true,
"suppress_zeroes": false,
"text_position": 0,
"units_format": 1
},
"fab_line_width": 0.09999999999999999,
"fab_text_italic": false,
"fab_text_size_h": 1.0,
"fab_text_size_v": 1.0,
"fab_text_thickness": 0.15,
"fab_text_upright": false,
"other_line_width": 0.15,
"other_text_italic": false,
"other_text_size_h": 1.0,
"other_text_size_v": 1.0,
"other_text_thickness": 0.15,
"other_text_upright": false,
"pads": {
"drill": 0.762,
"height": 1.524,
"width": 1.524
},
"silk_line_width": 0.15,
"silk_text_italic": false,
"silk_text_size_h": 1.0,
"silk_text_size_v": 1.0,
"silk_text_thickness": 0.15,
"silk_text_upright": false,
"zones": {
"min_clearance": 0.5
}
},
"diff_pair_dimensions": [],
"drc_exclusions": [],
"meta": {
"version": 2
},
"rule_severities": {
"annular_width": "error",
"clearance": "error",
"connection_width": "warning",
"copper_edge_clearance": "error",
"copper_sliver": "warning",
"courtyards_overlap": "error",
"diff_pair_gap_out_of_range": "error",
"diff_pair_uncoupled_length_too_long": "error",
"drill_out_of_range": "error",
"duplicate_footprints": "warning",
"extra_footprint": "warning",
"footprint": "error",
"footprint_type_mismatch": "ignore",
"hole_clearance": "error",
"hole_near_hole": "error",
"invalid_outline": "error",
"isolated_copper": "warning",
"item_on_disabled_layer": "error",
"items_not_allowed": "error",
"length_out_of_range": "error",
"lib_footprint_issues": "warning",
"lib_footprint_mismatch": "warning",
"malformed_courtyard": "error",
"microvia_drill_out_of_range": "error",
"missing_courtyard": "ignore",
"missing_footprint": "warning",
"net_conflict": "warning",
"npth_inside_courtyard": "ignore",
"padstack": "warning",
"pth_inside_courtyard": "ignore",
"shorting_items": "error",
"silk_edge_clearance": "warning",
"silk_over_copper": "warning",
"silk_overlap": "warning",
"skew_out_of_range": "error",
"solder_mask_bridge": "error",
"starved_thermal": "error",
"text_height": "warning",
"text_thickness": "warning",
"through_hole_pad_without_hole": "error",
"too_many_vias": "error",
"track_dangling": "warning",
"track_width": "error",
"tracks_crossing": "error",
"unconnected_items": "error",
"unresolved_variable": "error",
"via_dangling": "warning",
"zones_intersect": "error"
},
"rules": {
"max_error": 0.005,
"min_clearance": 0.0,
"min_connection": 0.0,
"min_copper_edge_clearance": 0.0,
"min_hole_clearance": 0.25,
"min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.19999999999999998,
"min_microvia_drill": 0.09999999999999999,
"min_resolved_spokes": 2,
"min_silk_clearance": 0.0,
"min_text_height": 0.7999999999999999,
"min_text_thickness": 0.08,
"min_through_hole_diameter": 0.3,
"min_track_width": 0.0,
"min_via_annular_width": 0.09999999999999999,
"min_via_diameter": 0.5,
"solder_mask_clearance": 0.0,
"solder_mask_min_width": 0.0,
"solder_mask_to_copper_clearance": 0.0,
"use_height_for_length_calcs": true
},
"teardrop_options": [
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 5,
"td_on_pad_in_zone": false,
"td_onpadsmd": true,
"td_onroundshapesonly": false,
"td_ontrackend": false,
"td_onviapad": true
}
],
"teardrop_parameters": [
{
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_target_name": "td_round_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_target_name": "td_rect_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_target_name": "td_track_end",
"td_width_to_size_filter_ratio": 0.9
}
],
"track_widths": [],
"via_dimensions": [],
"zones_allow_external_fillets": false
},
"layer_presets": [],
"viewports": []
},
"boards": [],
"cvpcb": {
"equivalence_files": []
},
"erc": {
"erc_exclusions": [],
"meta": {
"version": 0
},
"pin_map": [
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
1,
2
],
[
0,
1,
0,
0,
0,
0,
1,
1,
2,
1,
1,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2
],
[
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
2
],
[
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
1,
2,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
0,
2,
1,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2
]
],
"rule_severities": {
"bus_definition_conflict": "error",
"bus_entry_needed": "error",
"bus_to_bus_conflict": "error",
"bus_to_net_conflict": "error",
"conflicting_netclasses": "error",
"different_unit_footprint": "error",
"different_unit_net": "error",
"duplicate_reference": "error",
"duplicate_sheet_names": "error",
"endpoint_off_grid": "warning",
"extra_units": "error",
"global_label_dangling": "warning",
"hier_label_mismatch": "error",
"label_dangling": "error",
"lib_symbol_issues": "warning",
"missing_bidi_pin": "warning",
"missing_input_pin": "warning",
"missing_power_pin": "error",
"missing_unit": "warning",
"multiple_net_names": "warning",
"net_not_bus_member": "warning",
"no_connect_connected": "warning",
"no_connect_dangling": "warning",
"pin_not_connected": "error",
"pin_not_driven": "error",
"pin_to_pin": "warning",
"power_pin_not_driven": "error",
"similar_labels": "warning",
"simulation_model_issue": "ignore",
"unannotated": "error",
"unit_value_mismatch": "error",
"unresolved_variable": "error",
"wire_dangling": "error"
}
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "keyboard.kicad_pro",
"version": 1
},
"net_settings": {
"classes": [
{
"bus_width": 12,
"clearance": 0.2,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.2,
"line_style": 0,
"microvia_diameter": 0.3,
"microvia_drill": 0.1,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.25,
"via_diameter": 0.8,
"via_drill": 0.4,
"wire_width": 6
}
],
"meta": {
"version": 3
},
"net_colors": null,
"netclass_assignments": null,
"netclass_patterns": []
},
"pcbnew": {
"last_paths": {
"gencad": "",
"idf": "",
"netlist": "",
"specctra_dsn": "",
"step": "",
"vrml": ""
},
"page_layout_descr_file": ""
},
"schematic": {
"annotate_start_num": 0,
"drawing": {
"dashed_lines_dash_length_ratio": 12.0,
"dashed_lines_gap_length_ratio": 3.0,
"default_line_thickness": 6.0,
"default_text_size": 50.0,
"field_names": [],
"intersheets_ref_own_page": false,
"intersheets_ref_prefix": "",
"intersheets_ref_short": false,
"intersheets_ref_show": false,
"intersheets_ref_suffix": "",
"junction_size_choice": 3,
"label_size_ratio": 0.375,
"pin_symbol_size": 25.0,
"text_offset_ratio": 0.15
},
"legacy_lib_dir": "",
"legacy_lib_list": [],
"meta": {
"version": 1
},
"net_format_name": "",
"page_layout_descr_file": "",
"plot_directory": "",
"spice_current_sheet_as_root": false,
"spice_external_command": "spice \"%I\"",
"spice_model_current_sheet_as_root": true,
"spice_save_all_currents": false,
"spice_save_all_voltages": false,
"subpart_first_id": 65,
"subpart_id_separator": 0
},
"sheets": [
[
"0a2d6e55-042d-47d6-a3a9-519125c55c50",
""
]
],
"text_variables": {}
}

4384
keyboard/keyboard.kicad_sch Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

3999
memory.kicad_sch Normal file

File diff suppressed because it is too large Load Diff

49
memory.md Normal file
View File

@ -0,0 +1,49 @@
## Sketching out our address space
### Memory Map
CPU Addressable
| Address | Usage |
| ------- | -------------------------------- |
| `$0000` | 32k ram (16k addressable) |
| `$1000` | ... |
| `$2000` | ... |
| `$3000` | ... |
| `$4000` | I/0 & Hardware Control Registers |
| `$5000` | ... |
| `$6000` | 32k vram |
| `$7000` | ... |
| `$8000` | ... |
| `$9000` | ... |
| `$A000` | ... |
| `$B000` | ... |
| `$C000` | ... |
| `$D000` | ... |
| `$E000` | 32k eeprom (8k addressable) |
| `$F000` | ... |
### Hardware Control Register $4000
| Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| --------- | ------------ | ------------ | -------- | ------------- | -------------------------- | ------ | ------ | ------ |
| **Usage** | ROM Page MSB | ROM Page LSB | RAM Page | 32k Bank Page | Character/Hires Video Mode | Unused | Unused | Unused |
### Video Controls $4200 & $4201
When the system starts or when the video mode is changed, crt timing/character size information has to be sent to the 6845. This is done by writing
### Keyboard Rows $4300, $4301, $4302, $4303, $4304, $4305
Each keyboard row is mapped to a read-only 8-bit register, with each key mapped to a single bit. Due to the design of this keyboard, Row 5 has 5 unused bits
| Address | Desc | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
| ------- | ----- | --------- | ------ | ------ | ----- | ----- | ----- | ----- | ----------- |
| `$4300` | Row 0 | `esc` | `w` | `e` | `r` | `t` | `u` | `o` | `backspace` |
| `$4301` | Row 1 | `tab` | `q` | `s` | `g` | `y` | `i` | `p` | `enter` |
| `$4302` | Row 2 | `shift` | `d` | `v` | `h` | `k` | `"` | `?` | `a` |
| `$4303` | Row 3 | `control` | `z` | `f` | `b` | `j` | `l` | `2` | `4` |
| `$4304` | Row 4 | `alt` | `x` | `c` | `n` | `m` | `'` | `1` | `3` |
| `$4305` | Row 5 | `meta` | `sp 1` | `sp 2` | |
### Character ROM Layout

14
ports.kicad_sch Normal file
View File

@ -0,0 +1,14 @@
(kicad_sch (version 20230121) (generator eeschema)
(uuid 2e9cc28a-99d5-4284-9510-64062a6ace3b)
(paper "A4")
(title_block
(title "ʕ·ᴥ·ʔ-ports")
)
(lib_symbols
)
)

11718
video.kicad_sch Normal file

File diff suppressed because it is too large Load Diff