├── DOS ├── A.EXE ├── A.PAS ├── CTMOUSE.EXE ├── G.EXE ├── G.PAS ├── M.EXE ├── M.PAS └── MOUSE.BAT ├── KiCad ├── CPU.kicad_pcb ├── CPU.kicad_prl ├── CPU.kicad_pro ├── CPU.kicad_sch ├── SamacSys_Parts.3dshapes │ └── TOTX1350_F_.stp ├── SamacSys_Parts.dcm ├── SamacSys_Parts.lib ├── SamacSys_Parts.pretty │ └── TOTX1350F.kicad_mod └── fp-info-cache ├── OptionROM ├── checksum.py ├── info.txt.txt ├── int13.asm ├── int13.bin ├── nasmw.exe ├── optROM.bin ├── optrom.hex └── srec_cat.exe ├── PCB_v2 ├── FPGA.kicad_pcb ├── FPGA.kicad_prl ├── FPGA.kicad_pro ├── FPGA.kicad_sch ├── SamacSys_Parts.dcm ├── SamacSys_Parts.lib ├── eda.7z ├── fp-info-cache ├── fp-lib-table └── sym-lib-table ├── README.md ├── custom_TVGA9000i_BIOS ├── checksum.py ├── int13.asm ├── int13.bin ├── nasmw.exe ├── trident.bin ├── tvga9000i.bin ├── vgabios.bin └── vgabx2.bin ├── custom_ctmouse ├── CTMOUSE.MSG ├── asmlib.cfg ├── asmlib │ ├── asm.mac │ ├── bios │ │ └── area0.def │ ├── code.def │ ├── code.mac │ ├── convert │ │ ├── count2x.mac │ │ └── digit.mac │ ├── dos │ │ ├── file.mac │ │ ├── io.mac │ │ ├── mcb.def │ │ ├── mem.mac │ │ └── psp.def │ ├── hard │ │ ├── pic8259a.def │ │ └── uart.def │ ├── hll.mac │ ├── lgpl │ └── macro.mac ├── build.BAT ├── com2exe.exe └── ctmouse.asm ├── ice40-Firmware ├── Makefile ├── grab.c ├── keyboard.py ├── pins.pcf ├── rom.asm ├── rom.py └── top.v ├── ice40HX1K ├── 830207044109.lib ├── APS6404L-3SQR-SN.lib ├── BasicISA8.pretty │ ├── 830207044109.kicad_mod │ ├── Conn_Bus_ISA8.kicad_mod │ ├── HOLE_3MM.kicad_mod │ ├── K66XE15SN.kicad_mod │ ├── SOIC127P600X175-8N.kicad_mod │ ├── SOJ127P1118X376-36.kicad_mod │ ├── SS53000001.kicad_mod │ ├── STX31003N.kicad_mod │ └── TOTX1350F.kicad_mod ├── K66X-E15S-N.lib ├── SS-53000-001.lib ├── STX-3100-3N.lib ├── TOTX1350_F_.lib ├── fp-info-cache ├── fp-lib-table ├── gerbers │ ├── minifp-B_Cu.gbr │ ├── minifp-B_Mask.gbr │ ├── minifp-B_Paste.gbr │ ├── minifp-B_Silkscreen.gbr │ ├── minifp-Edge_Cuts.gbr │ ├── minifp-F_Cu.gbr │ ├── minifp-F_Mask.gbr │ ├── minifp-F_Paste.gbr │ ├── minifp-F_Silkscreen.gbr │ ├── minifp-NPTH.drl │ ├── minifp-PTH.drl │ └── minifp-job.gbrjob ├── is61c5128al-10kli.kicad_sym ├── minifp-B_Cu.gbr ├── minifp-B_Mask.gbr ├── minifp-B_Paste.gbr ├── minifp-B_Silkscreen.gbr ├── minifp-Edge_Cuts.gbr ├── minifp-F_Cu.gbr ├── minifp-F_Mask.gbr ├── minifp-F_Paste.gbr ├── minifp-F_Silkscreen.gbr ├── minifp-NPTH.drl ├── minifp-PTH.drl ├── minifp-backups │ ├── minifp-2023-02-06_113725.zip │ ├── minifp-2023-02-06_114434.zip │ ├── minifp-2023-02-06_115119.zip │ ├── minifp-2023-02-06_115924.zip │ ├── minifp-2023-02-06_171421.zip │ ├── minifp-2023-02-07_133236.zip │ ├── minifp-2023-02-07_133840.zip │ ├── minifp-2023-02-07_134605.zip │ ├── minifp-2023-02-07_154035.zip │ ├── minifp-2023-02-07_170649.zip │ ├── minifp-2023-02-08_164354.zip │ ├── minifp-2023-02-08_164921.zip │ ├── minifp-2023-02-08_165504.zip │ ├── minifp-2023-02-08_170108.zip │ ├── minifp-2023-02-08_170608.zip │ ├── minifp-2023-02-09_132529.zip │ ├── minifp-2023-02-09_133040.zip │ ├── minifp-2023-02-09_133548.zip │ ├── minifp-2023-02-09_134105.zip │ ├── minifp-2023-02-09_134639.zip │ ├── minifp-2023-03-18_164450.zip │ ├── minifp-2023-03-18_165009.zip │ ├── minifp-2023-03-18_165533.zip │ ├── minifp-2023-03-18_170040.zip │ ├── minifp-2023-03-18_170617.zip │ └── minifp-2023-03-18_171123.zip ├── minifp-job.gbrjob ├── minifp.kicad_pcb ├── minifp.kicad_prl ├── minifp.kicad_pro ├── minifp.kicad_sch ├── rdac.txt └── sym-lib-table ├── ice40HX4K ├── 830207044109.lib ├── APS6404L-3SQR-SN.lib ├── BasicISA8.pretty │ ├── 830207044109.kicad_mod │ ├── Conn_Bus_ISA8.kicad_mod │ ├── HOLE_3MM.kicad_mod │ ├── K66XE15SN.kicad_mod │ ├── SOIC127P600X175-8N.kicad_mod │ ├── SOJ127P1118X376-36.kicad_mod │ ├── SS53000001.kicad_mod │ ├── STX31003N.kicad_mod │ └── TOTX1350F.kicad_mod ├── K66X-E15S-N.lib ├── SS-53000-001.lib ├── STX-3100-3N.lib ├── TOTX1350_F_.lib ├── fp-info-cache ├── fp-lib-table ├── gerbers │ ├── minifp-B_Cu.gbr │ ├── minifp-B_Mask.gbr │ ├── minifp-B_Paste.gbr │ ├── minifp-B_Silkscreen.gbr │ ├── minifp-Edge_Cuts.gbr │ ├── minifp-F_Cu.gbr │ ├── minifp-F_Mask.gbr │ ├── minifp-F_Paste.gbr │ ├── minifp-F_Silkscreen.gbr │ ├── minifp-NPTH.drl │ ├── minifp-PTH.drl │ └── minifp-job.gbrjob ├── is61c5128al-10kli.kicad_sym ├── minifp.kicad_pcb ├── minifp.kicad_prl ├── minifp.kicad_pro ├── minifp.kicad_sch ├── models │ ├── IS61WV10248EDBLL-10TLI.dcm │ ├── IS61WV10248EDBLL-10TLI.kicad_sym │ ├── IS61WV10248EDBLL-10TLI.lib │ ├── IS61WV10248EDBLL-10TLI.mod │ └── SOP80P1176X120-44N.kicad_mod ├── rdac.txt └── sym-lib-table ├── raspberry ├── gus.cpp ├── opl.cpp ├── pc.cpp └── run.sh └── rtl ├── C4.qpf ├── C4.qsf ├── C4.qws ├── C4.v.bak ├── PLL.qip ├── PLL.v ├── PLLJ_PLLSPE_INFO.txt ├── PLL_bb.v ├── aFIFO.qip ├── aFIFO.v ├── aFIFO_bb.v ├── c4.v ├── iRAM.qip ├── iRAM.v ├── iRAM_bb.v ├── mRAM.qip ├── mRAM.v ├── mRAM_bb.v ├── oRAM.qip ├── oRAM.v ├── oRAM_bb.v ├── optrom.qip ├── optrom.v ├── optrom_bb.v └── spdif_core.v /DOS/A.EXE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/DOS/A.EXE -------------------------------------------------------------------------------- /DOS/A.PAS: -------------------------------------------------------------------------------- 1 | uses crt; 2 | begin 3 | writeln('AdLib enabled.'); 4 | port[$332] := 0; 5 | delay(200); 6 | port[$332] := 1; 7 | end. -------------------------------------------------------------------------------- /DOS/CTMOUSE.EXE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/DOS/CTMOUSE.EXE -------------------------------------------------------------------------------- /DOS/G.EXE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/DOS/G.EXE -------------------------------------------------------------------------------- /DOS/G.PAS: -------------------------------------------------------------------------------- 1 | uses crt; 2 | begin 3 | writeln('Gravis Ultrasound enabled.'); 4 | port[$332] := 0; 5 | delay(200); 6 | port[$332] := 3; 7 | end. -------------------------------------------------------------------------------- /DOS/M.EXE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/DOS/M.EXE -------------------------------------------------------------------------------- /DOS/M.PAS: -------------------------------------------------------------------------------- 1 | uses crt; 2 | begin 3 | writeln('Roland MT-32 enabled.'); 4 | port[$332] := 0; 5 | delay(200); 6 | port[$332] := 2; 7 | end. -------------------------------------------------------------------------------- /DOS/MOUSE.BAT: -------------------------------------------------------------------------------- 1 | @lh ctmouse /v 2 | -------------------------------------------------------------------------------- /KiCad/CPU.kicad_prl: -------------------------------------------------------------------------------- 1 | { 2 | "board": { 3 | "active_layer": 44, 4 | "active_layer_preset": "All Layers", 5 | "auto_track_width": true, 6 | "hidden_nets": [], 7 | "high_contrast_mode": 0, 8 | "net_color_mode": 1, 9 | "opacity": { 10 | "pads": 1.0, 11 | "tracks": 1.0, 12 | "vias": 1.0, 13 | "zones": 0.6 14 | }, 15 | "ratsnest_display_mode": 0, 16 | "selection_filter": { 17 | "dimensions": true, 18 | "footprints": true, 19 | "graphics": true, 20 | "keepouts": true, 21 | "lockedItems": true, 22 | "otherItems": true, 23 | "pads": true, 24 | "text": true, 25 | "tracks": true, 26 | "vias": true, 27 | "zones": true 28 | }, 29 | "visible_items": [ 30 | 0, 31 | 1, 32 | 2, 33 | 3, 34 | 4, 35 | 5, 36 | 8, 37 | 9, 38 | 10, 39 | 11, 40 | 12, 41 | 13, 42 | 14, 43 | 15, 44 | 16, 45 | 17, 46 | 18, 47 | 19, 48 | 20, 49 | 21, 50 | 22, 51 | 23, 52 | 24, 53 | 25, 54 | 26, 55 | 27, 56 | 28, 57 | 29, 58 | 30, 59 | 32, 60 | 33, 61 | 34, 62 | 35, 63 | 36 64 | ], 65 | "visible_layers": "fffffff_ffffffff", 66 | "zone_display_mode": 0 67 | }, 68 | "meta": { 69 | "filename": "CPU.kicad_prl", 70 | "version": 3 71 | }, 72 | "project": { 73 | "files": [] 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /KiCad/SamacSys_Parts.dcm: -------------------------------------------------------------------------------- 1 | EESchema-DOCLIB Version 2.0 2 | # 3 | $CMP NE555DR 4 | D Single Precision Timer 5 | K 6 | F http://www.ti.com/lit/ds/symlink/ne555.pdf 7 | $ENDCMP 8 | # 9 | $CMP 10CL006YE144C8G 10 | D FPGA - Field Programmable Gate Array 11 | K 12 | F https://componentsearchengine.com/Datasheets/1/10CL006YE144C8G.pdf 13 | $ENDCMP 14 | # 15 | $CMP TOTX1353_V,F_ 16 | D Fiber Optic Transmitters, Receivers, Transceivers Fiber Optic Module 0.5Mb 4.75V-5.25V 17 | K 18 | F https://toshiba.semicon-storage.com/info/docget.jsp?did=14712&prodName=TOTX1353(V,F) 19 | $ENDCMP 20 | # 21 | $CMP TOTX1350_F_ 22 | D Fiber Optic Transmitters, Receivers, Transceivers TOSLINK General Purpose Modules 23 | K 24 | F https://toshiba.semicon-storage.com/info/docget.jsp?did=14728&prodName=TOTX1350(F) 25 | $ENDCMP 26 | # 27 | #End Doc Library 28 | -------------------------------------------------------------------------------- /KiCad/SamacSys_Parts.pretty/TOTX1350F.kicad_mod: -------------------------------------------------------------------------------- 1 | (module "TOTX1350F" (layer F.Cu) 2 | (descr "TOTX1350(F)-2") 3 | (tags "Capacitor") 4 | (fp_text reference C** (at -2.540 -3.625) (layer F.SilkS) 5 | (effects (font (size 1.27 1.27) (thickness 0.254))) 6 | ) 7 | (fp_text user %R (at -2.540 -3.625) (layer F.Fab) 8 | (effects (font (size 1.27 1.27) (thickness 0.254))) 9 | ) 10 | (fp_text value "TOTX1350F" (at -2.540 -3.625) (layer F.SilkS) hide 11 | (effects (font (size 1.27 1.27) (thickness 0.254))) 12 | ) 13 | (fp_line (start -9.04 -10.8) (end 3.96 -10.8) (layer F.Fab) (width 0.2)) 14 | (fp_line (start 3.96 -10.8) (end 3.96 2.7) (layer F.Fab) (width 0.2)) 15 | (fp_line (start 3.96 2.7) (end -9.04 2.7) (layer F.Fab) (width 0.2)) 16 | (fp_line (start -9.04 2.7) (end -9.04 -10.8) (layer F.Fab) (width 0.2)) 17 | (fp_line (start -9.04 -10.8) (end 3.96 -10.8) (layer F.SilkS) (width 0.1)) 18 | (fp_line (start 3.96 -10.8) (end 3.96 2.7) (layer F.SilkS) (width 0.1)) 19 | (fp_line (start 3.96 2.7) (end -9.04 2.7) (layer F.SilkS) (width 0.1)) 20 | (fp_line (start -9.04 2.7) (end -9.04 -10.8) (layer F.SilkS) (width 0.1)) 21 | (fp_line (start -10.04 -11.8) (end 4.96 -11.8) (layer F.CrtYd) (width 0.1)) 22 | (fp_line (start 4.96 -11.8) (end 4.96 4.55) (layer F.CrtYd) (width 0.1)) 23 | (fp_line (start 4.96 4.55) (end -10.04 4.55) (layer F.CrtYd) (width 0.1)) 24 | (fp_line (start -10.04 4.55) (end -10.04 -11.8) (layer F.CrtYd) (width 0.1)) 25 | (fp_line (start 1 3.5) (end 1 3.5) (layer F.SilkS) (width 0.4)) 26 | (fp_line (start 1.1 3.5) (end 1.1 3.5) (layer F.SilkS) (width 0.4)) 27 | (fp_arc (start 1.05 3.5) (end 1.000 3.5) (angle -180) (layer F.SilkS) (width 0.4)) 28 | (fp_arc (start 1.05 3.5) (end 1.100 3.5) (angle -180) (layer F.SilkS) (width 0.4)) 29 | (pad 1 thru_hole circle (at 0.000 -0) (size 1.524 1.524) (drill 0.98) (layers *.Cu *.Mask)) 30 | (pad 2 thru_hole circle (at -2.540 -0) (size 1.524 1.524) (drill 0.98) (layers *.Cu *.Mask)) 31 | (pad 3 thru_hole circle (at -5.080 -0) (size 1.524 1.524) (drill 0.98) (layers *.Cu *.Mask)) 32 | (pad 4 thru_hole circle (at -7.740 -4.2) (size 1.500 1.500) (drill 1) (layers *.Cu *.Mask)) 33 | (pad 5 thru_hole circle (at 2.660 -4.2) (size 1.500 1.500) (drill 1) (layers *.Cu *.Mask)) 34 | (model "C:\Files\PCB_libraries\SamacSys_Parts.3dshapes\\TOTX1350_F_.stp" 35 | (at (xyz 0 0 0)) 36 | (scale (xyz 1 1 1)) 37 | (rotate (xyz 0 0 0)) 38 | ) 39 | ) 40 | -------------------------------------------------------------------------------- /OptionROM/checksum.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | os.system('nasmw -fbin int13.asm -o int13.bin') 4 | 5 | file = open("int13.bin", "rb") 6 | binary = file.read(-1) 7 | y = 0 8 | for x in range(2047): 9 | y = (y + binary[x]) & 255 10 | file.close() 11 | print(y) 12 | 13 | binary = list(binary) 14 | binary[-1] = 256 - y 15 | 16 | file = open("optROM.bin", "wb") 17 | file.write(bytearray(binary)) 18 | file.close() 19 | 20 | os.system('srec_cat.exe optROM.bin -binary -output optrom.hex -Intel') -------------------------------------------------------------------------------- /OptionROM/info.txt.txt: -------------------------------------------------------------------------------- 1 | cf000h in binary is 1100 1111 0000 0000 0000 2 | 3 | R0 1 4 | R1 1 5 | R2 1 6 | R3 1 7 | R4 0 (needs ground jumper) 8 | R5 0 (needs ground jumpter) 9 | R6 1 10 | R7 1 11 | 12 | [---] 13 | [ ] 14 | [---] 15 | [ ] 16 | [ ] 17 | [ ] 18 | [ ] 19 | [ ] -------------------------------------------------------------------------------- /OptionROM/int13.asm: -------------------------------------------------------------------------------- 1 | db 0x55 2 | db 0xAA 3 | db 2048/512 4 | 5 | xor ax, ax 6 | mov es, ax 7 | mov word [es:0x13*4+0], INT13 8 | mov word [es:0x13*4+2], 0xcf00 9 | mov word [es:0x19*4+0], INT19 10 | mov word [es:0x19*4+2], 0xcf00 11 | retf 12 | 13 | INT13: 14 | cmp ah, 2 15 | je INT13_read 16 | cmp ah, 3 17 | je INT13_write 18 | cmp ah, 8 19 | je INT13_type 20 | iret 21 | 22 | INT13_read: 23 | push ax 24 | push bx 25 | push cx 26 | push dx 27 | push di 28 | mov di, bx ; target given as ES:BX, stosb takes ES:DI 29 | mov bh, dh ; head: DH -> BH 30 | mov bl, al ; number of sectors to read -> BL 31 | 32 | mov al, 0 ; reset interface 33 | mov dx, 0x170 34 | out dx, al 35 | 36 | inc dx 37 | 38 | mov al, ch ; cylinder 39 | out dx, al 40 | 41 | mov al, bh ; head 42 | out dx, al 43 | 44 | mov al, cl ; sector 45 | out dx, al 46 | read_next: 47 | dec dx 48 | mov al, 1 49 | out dx, al 50 | wait_read: 51 | in al, dx 52 | cmp al, 1 53 | jne wait_read 54 | mov cx, 512 55 | inc dx 56 | read: 57 | in al, dx 58 | stosb 59 | loop read 60 | dec bl 61 | jnz read_next 62 | pop di 63 | pop dx 64 | pop cx 65 | pop bx 66 | pop ax ; return in al: number of sectors read 67 | xor ah, ah ; return in ah: no error 68 | iret 69 | 70 | INT13_write: 71 | push ax 72 | push bx 73 | push cx 74 | push dx 75 | push ds 76 | push si 77 | mov si, bx ; source given as ES:BX, lodsb takes DS:SI 78 | mov bx, es 79 | mov ds, bx 80 | 81 | mov bh, dh ; head: DH -> BH 82 | mov bl, al ; number of sectors to read -> BL 83 | 84 | mov al, 0 ; reset interface 85 | mov dx, 0x170 86 | out dx, al 87 | 88 | inc dx 89 | 90 | mov al, ch ; cylinder 91 | out dx, al 92 | 93 | mov al, bh ; head 94 | out dx, al 95 | 96 | mov al, cl ; sector 97 | out dx, al 98 | 99 | xor bh, bh 100 | 101 | dec dx 102 | write_next: 103 | in al, dx 104 | cmp al, 1 105 | jnz write_next 106 | mov cx, 512 107 | inc dx 108 | write: 109 | lodsb 110 | out dx, al 111 | loop write 112 | dec dx 113 | dec bl 114 | jnz write_next 115 | finally: 116 | in al, dx 117 | cmp al, 1 118 | jnz finally 119 | pop si 120 | pop ds 121 | pop dx 122 | pop cx 123 | pop bx 124 | pop ax ; return in al: number of sectors written 125 | xor ah, ah ; return in ah: no error 126 | iret 127 | 128 | INT13_type: 129 | mov cx, 0xff3f 130 | mov dx, 0x0f01 131 | iret 132 | 133 | INT19: 134 | xor ax, ax 135 | mov es, ax 136 | mov ds, ax 137 | mov ax, 0x0201 138 | mov bx, 0x7c00 139 | mov cx, 1 140 | mov dx, 0x0080 141 | int 0x13 142 | jmp 0:0x7c00 143 | 144 | times 2048-($-$$) db 0 -------------------------------------------------------------------------------- /OptionROM/int13.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/OptionROM/int13.bin -------------------------------------------------------------------------------- /OptionROM/nasmw.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/OptionROM/nasmw.exe -------------------------------------------------------------------------------- /OptionROM/optROM.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/OptionROM/optROM.bin -------------------------------------------------------------------------------- /OptionROM/optrom.hex: -------------------------------------------------------------------------------- 1 | :020000040000FA 2 | :2000000055AA0431C08EC026C7064C00240026C7064E0000CF26C7066400B60026C70666C5 3 | :200020000000CFCB80FC02740B80FC03743E80FC08747CCF505351525789DF88F788C3B036 4 | :2000400000BA7001EE4288E8EE88F8EE88C8EE4AB001EEEC3C0175FBB9000242ECAAE2FC48 5 | :20006000FECB75EB5F5A595B5830E4CF505351521E5689DE8CC38EDB88F788C3B000BA7032 6 | :2000800001EE4288E8EE88F8EE88C8EE30FF4AEC3C0175FBB9000242ACEEE2FC4AFECB7516 7 | :2000A000EEEC3C0175FB5E1F5A595B5830E4CFB93FFFBA010FCF31C08EC08ED8B80102BB48 8 | :2000C000007CB90100BA8000CD13EA007C000000000000000000000000000000000000006A 9 | :2000E000000000000000000000000000000000000000000000000000000000000000000000 10 | :200100000000000000000000000000000000000000000000000000000000000000000000DF 11 | :200120000000000000000000000000000000000000000000000000000000000000000000BF 12 | :2001400000000000000000000000000000000000000000000000000000000000000000009F 13 | :2001600000000000000000000000000000000000000000000000000000000000000000007F 14 | :2001800000000000000000000000000000000000000000000000000000000000000000005F 15 | :2001A00000000000000000000000000000000000000000000000000000000000000000003F 16 | :2001C00000000000000000000000000000000000000000000000000000000000000000001F 17 | :2001E0000000000000000000000000000000000000000000000000000000000000000000FF 18 | :200200000000000000000000000000000000000000000000000000000000000000000000DE 19 | :200220000000000000000000000000000000000000000000000000000000000000000000BE 20 | :2002400000000000000000000000000000000000000000000000000000000000000000009E 21 | :2002600000000000000000000000000000000000000000000000000000000000000000007E 22 | :2002800000000000000000000000000000000000000000000000000000000000000000005E 23 | :2002A00000000000000000000000000000000000000000000000000000000000000000003E 24 | :2002C00000000000000000000000000000000000000000000000000000000000000000001E 25 | :2002E0000000000000000000000000000000000000000000000000000000000000000000FE 26 | :200300000000000000000000000000000000000000000000000000000000000000000000DD 27 | :200320000000000000000000000000000000000000000000000000000000000000000000BD 28 | :2003400000000000000000000000000000000000000000000000000000000000000000009D 29 | :2003600000000000000000000000000000000000000000000000000000000000000000007D 30 | :2003800000000000000000000000000000000000000000000000000000000000000000005D 31 | :2003A00000000000000000000000000000000000000000000000000000000000000000003D 32 | :2003C00000000000000000000000000000000000000000000000000000000000000000001D 33 | :2003E0000000000000000000000000000000000000000000000000000000000000000000FD 34 | :200400000000000000000000000000000000000000000000000000000000000000000000DC 35 | :200420000000000000000000000000000000000000000000000000000000000000000000BC 36 | :2004400000000000000000000000000000000000000000000000000000000000000000009C 37 | :2004600000000000000000000000000000000000000000000000000000000000000000007C 38 | :2004800000000000000000000000000000000000000000000000000000000000000000005C 39 | :2004A00000000000000000000000000000000000000000000000000000000000000000003C 40 | :2004C00000000000000000000000000000000000000000000000000000000000000000001C 41 | :2004E0000000000000000000000000000000000000000000000000000000000000000000FC 42 | :200500000000000000000000000000000000000000000000000000000000000000000000DB 43 | :200520000000000000000000000000000000000000000000000000000000000000000000BB 44 | :2005400000000000000000000000000000000000000000000000000000000000000000009B 45 | :2005600000000000000000000000000000000000000000000000000000000000000000007B 46 | :2005800000000000000000000000000000000000000000000000000000000000000000005B 47 | :2005A00000000000000000000000000000000000000000000000000000000000000000003B 48 | :2005C00000000000000000000000000000000000000000000000000000000000000000001B 49 | :2005E0000000000000000000000000000000000000000000000000000000000000000000FB 50 | :200600000000000000000000000000000000000000000000000000000000000000000000DA 51 | :200620000000000000000000000000000000000000000000000000000000000000000000BA 52 | :2006400000000000000000000000000000000000000000000000000000000000000000009A 53 | :2006600000000000000000000000000000000000000000000000000000000000000000007A 54 | :2006800000000000000000000000000000000000000000000000000000000000000000005A 55 | :2006A00000000000000000000000000000000000000000000000000000000000000000003A 56 | :2006C00000000000000000000000000000000000000000000000000000000000000000001A 57 | :2006E0000000000000000000000000000000000000000000000000000000000000000000FA 58 | :200700000000000000000000000000000000000000000000000000000000000000000000D9 59 | :200720000000000000000000000000000000000000000000000000000000000000000000B9 60 | :20074000000000000000000000000000000000000000000000000000000000000000000099 61 | :20076000000000000000000000000000000000000000000000000000000000000000000079 62 | :20078000000000000000000000000000000000000000000000000000000000000000000059 63 | :2007A000000000000000000000000000000000000000000000000000000000000000000039 64 | :2007C000000000000000000000000000000000000000000000000000000000000000000019 65 | :2007E00000000000000000000000000000000000000000000000000000000000000000BD3C 66 | :00000001FF 67 | -------------------------------------------------------------------------------- /OptionROM/srec_cat.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/OptionROM/srec_cat.exe -------------------------------------------------------------------------------- /PCB_v2/FPGA.kicad_prl: -------------------------------------------------------------------------------- 1 | { 2 | "board": { 3 | "active_layer": 0, 4 | "active_layer_preset": "All Layers", 5 | "auto_track_width": true, 6 | "hidden_nets": [], 7 | "high_contrast_mode": 0, 8 | "net_color_mode": 1, 9 | "opacity": { 10 | "pads": 1.0, 11 | "tracks": 1.0, 12 | "vias": 1.0, 13 | "zones": 0.6 14 | }, 15 | "ratsnest_display_mode": 0, 16 | "selection_filter": { 17 | "dimensions": true, 18 | "footprints": true, 19 | "graphics": true, 20 | "keepouts": true, 21 | "lockedItems": true, 22 | "otherItems": true, 23 | "pads": true, 24 | "text": true, 25 | "tracks": true, 26 | "vias": true, 27 | "zones": true 28 | }, 29 | "visible_items": [ 30 | 0, 31 | 1, 32 | 2, 33 | 3, 34 | 4, 35 | 5, 36 | 8, 37 | 9, 38 | 10, 39 | 11, 40 | 12, 41 | 13, 42 | 14, 43 | 15, 44 | 16, 45 | 17, 46 | 18, 47 | 19, 48 | 20, 49 | 21, 50 | 22, 51 | 23, 52 | 24, 53 | 25, 54 | 26, 55 | 27, 56 | 28, 57 | 29, 58 | 30, 59 | 32, 60 | 33, 61 | 34, 62 | 35, 63 | 36 64 | ], 65 | "visible_layers": "fffffff_ffffffff", 66 | "zone_display_mode": 0 67 | }, 68 | "meta": { 69 | "filename": "FPGA.kicad_prl", 70 | "version": 3 71 | }, 72 | "project": { 73 | "files": [] 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /PCB_v2/SamacSys_Parts.dcm: -------------------------------------------------------------------------------- 1 | EESchema-DOCLIB Version 2.0 2 | # 3 | $CMP NE555DR 4 | D Single Precision Timer 5 | K 6 | F http://www.ti.com/lit/ds/symlink/ne555.pdf 7 | $ENDCMP 8 | # 9 | $CMP ICE40HX8K-CT256 10 | D FPGA iCE40 HX Family 7680 Cells 40nm Technology 1.2V 256-Pin CSBGA 11 | K 12 | F https://www.arrow.com/en/products/ice40hx8k-ct256/lattice-semiconductor 13 | $ENDCMP 14 | # 15 | #End Doc Library 16 | -------------------------------------------------------------------------------- /PCB_v2/eda.7z: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/PCB_v2/eda.7z -------------------------------------------------------------------------------- /PCB_v2/fp-info-cache: -------------------------------------------------------------------------------- 1 | 0 2 | -------------------------------------------------------------------------------- /PCB_v2/fp-lib-table: -------------------------------------------------------------------------------- 1 | (fp_lib_table 2 | (lib (name "SamacSys_Parts")(type "KiCad")(uri "C:/entropy/eda/SamacSys_Parts.pretty")(options "")(descr "")) 3 | ) 4 | -------------------------------------------------------------------------------- /PCB_v2/sym-lib-table: -------------------------------------------------------------------------------- 1 | (sym_lib_table 2 | (lib (name "SamacSys_Parts")(type "Legacy")(uri "C:/entropy/eda/SamacSys_Parts.lib")(options "")(descr "")) 3 | ) 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # frankenpi 2 | 3 | This is an experimental project to connect Raspberry Pi with the help of cheap Cyclone IV FPGA board to 8-bit ISA bus to act as multiple different devices. 4 | 5 | What is currently implemented (to some degree), i.e. PC can access through ISA 6 | - Mass storage access from a file on the Raspberry Pi (written sectors are flushed every 2 seconds by default) 7 | - Adlib output to optical SPDIF 8 | - Sound Blaster 8-bit mono with DMA and IRQ (basic functions only), output to optical SPDIF 9 | - Gravis Ultrasound (basic wavetable only), output to optical SPDIF 10 | - Roland MT-32 (UART only), output to optical SPDIF 11 | - USB mouse plugged into the Raspberry Pi will appear as a kind of serial mouse in DOS, custom ctmouse driver is provided (start with /v) 12 | - Boot from custom TVGA9000i VGABIOS, i.e. no other devices are required to be present in the ISA bus besides FrakenPi and VGA-adapter 13 | 14 | Youtube links: 15 | 16 | https://www.youtube.com/watch?v=1ej76w8sHxY 17 | 18 | https://www.youtube.com/watch?v=CkwgHHmKaSI 19 | 20 | TESTED and working: 21 | - Wolfenstein 3D (SB & Adlib) 22 | - Second Reality (GUS) 23 | - Scream Tracker 3.21 (SB1 and GUS) 24 | - Skyroads (SB & Adlib) 25 | - Keen 4 (Adlib) 26 | - Monkey Island (Adlib/MT32/Mouse) 27 | - Space Quest 3 (Adlib/Mouse) 28 | - Space Quest 4 (Adlib/MT32/Mouse) 29 | - Lotus 3 (Adlib) 30 | - Lemmings (Adlib/Mouse) 31 | - Eye of the Beholder I & II (Adlib/Mouse) 32 | - Indiana Jones and the Fate of Atlantis (Adlib/MT32/Mouse) 33 | 34 | Planned 35 | - General MIDI 36 | - MPU-401 support 37 | - Sound Blaster AWE32 wavetable support 38 | - Standard ATA at ports 1f0h-1f7h 39 | - Compatibility improvements 40 | - Boot ROM in the FPGA so hacked VGABIOS isn't required 41 | - VGA output 42 | 43 | Used resources 44 | - Harddisk: ports 170h-171h 45 | - SoundBlaster: ports 22ah-22eh corresponding ot base address of 220h, IRQ 7 and DMA 1 46 | - MT32: 330h-331h 47 | - Gravis Ultrasound: ports 341h-347h corresponding to base address of 240h 48 | - Adlib: ports 388h-389h (standard) 49 | - Mouse: port 3f8h and IRQ 4 (COM1) 50 | - Bootcode for custom int 13h resides in hacked VGABIOS at the end of C0000-C7FFF memory region 51 | 52 | Further explanation 53 | - Outgoing port operations are transferred from the FPGA to the Raspberry Pi GPIO using dedicated unidirectional 8-bit data bus 54 | - Incoming data from the Raspberry Pi GPIO (PCM, harddisk, mouse) is transferred using dedicated unidirectional 8-bit data bus 55 | - Raspberry Pi: CPU0 handles hdd flushing and mouse, CPU1 handles GPIO transfers, CPU2 handles Adlib, Gravis Ultrasound and MT32 (software selected) 56 | - Raspberry Pi operates with CPU1-CPU3 in isolated mode, all CPUs run at constant 1 GHz and sched_rt_runtime_us is -1 57 | - Raspberry Pi generates sound data 64 samples at a time (16-bit stereo corresponds to 256 bytes it must transfer every 1.45ms or so) 58 | - SPDIF is running in 24-bit 44100 Hz Stereo 59 | - Hardcoded harddisk type is CHS 256/16/63, i.e. approx. 126MiB 60 | 61 | Plan for the next PCB 62 | - ICE40HX8K-CT256 (FPGA) seems to be available at Mouser 63 | - IS61WV102416FBLL-10TLI (2 MByte SRAM) seem to be available at Mouser 64 | - Created KiCAD project (PCB_v2) 65 | -------------------------------------------------------------------------------- /custom_TVGA9000i_BIOS/checksum.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | os.system('nasmw -fbin int13.asm -o int13.bin') 4 | 5 | file = open("int13.bin", "rb") 6 | binary = file.read(-1) 7 | y = 0 8 | for x in range(32767): 9 | y = (y + binary[x]) & 255 10 | file.close() 11 | print(y) 12 | 13 | binary = list(binary) 14 | binary[-1] = 256 - y 15 | 16 | file = open("trident.bin", "wb") 17 | file.write(bytearray(binary)) 18 | file.close() 19 | 20 | file = open("vgabios.bin", "wb") 21 | bin = bytearray([0]*32768) 22 | for x in range(16384): 23 | bin[x] = binary[2*x] 24 | bin[x+16384] = binary[2*x+1] 25 | file.write(bin) 26 | file.close() 27 | 28 | os.system('copy /b vgabios.bin+vgabios.bin vgabx2.bin') -------------------------------------------------------------------------------- /custom_TVGA9000i_BIOS/int13.asm: -------------------------------------------------------------------------------- 1 | ; we have about 660 bytes to spare in the VGABIOS 2 | ; 3 | ; FPGA/RP mass storage interface for BIOS int 13h in VGABIOS 4 | 5 | incbin "tvga9000i.bin", 0, 0x7d68 6 | 7 | xor ax, ax 8 | mov es, ax 9 | mov word [es:0x13*4], INT13 10 | mov word [es:0x13*4+2], 0xc000 11 | mov word [es:0x19*4+0], INT19 12 | mov word [es:0x19*4+2], 0xc000 13 | jmp 0x4f ; return to VGABIOS 14 | 15 | INT13: 16 | cmp ah, 2 17 | je INT13_read 18 | cmp ah, 3 19 | je INT13_write 20 | cmp ah, 8 21 | je INT13_type 22 | iret 23 | 24 | INT13_read: 25 | push ax 26 | push bx 27 | push cx 28 | push dx 29 | push di 30 | mov di, bx ; target given as ES:BX, stosb takes ES:DI 31 | mov bh, dh ; head: DH -> BH 32 | mov bl, al ; number of sectors to read -> BL 33 | 34 | mov al, 0 ; reset interface 35 | mov dx, 0x170 36 | out dx, al 37 | 38 | inc dx 39 | 40 | mov al, ch ; cylinder 41 | out dx, al 42 | 43 | mov al, bh ; head 44 | out dx, al 45 | 46 | mov al, cl ; sector 47 | out dx, al 48 | read_next: 49 | dec dx 50 | mov al, 1 51 | out dx, al 52 | wait_read: 53 | in al, dx 54 | cmp al, 1 55 | jne wait_read 56 | mov cx, 512 57 | inc dx 58 | read: 59 | in al, dx 60 | stosb 61 | loop read 62 | dec bl 63 | jnz read_next 64 | pop di 65 | pop dx 66 | pop cx 67 | pop bx 68 | pop ax ; return in al: number of sectors read 69 | xor ah, ah ; return in ah: no error 70 | iret 71 | 72 | INT13_write: 73 | push ax 74 | push bx 75 | push cx 76 | push dx 77 | push ds 78 | push si 79 | mov si, bx ; source given as ES:BX, lodsb takes DS:SI 80 | mov bx, es 81 | mov ds, bx 82 | 83 | mov bh, dh ; head: DH -> BH 84 | mov bl, al ; number of sectors to read -> BL 85 | 86 | mov al, 0 ; reset interface 87 | mov dx, 0x170 88 | out dx, al 89 | 90 | inc dx 91 | 92 | mov al, ch ; cylinder 93 | out dx, al 94 | 95 | mov al, bh ; head 96 | out dx, al 97 | 98 | mov al, cl ; sector 99 | out dx, al 100 | 101 | xor bh, bh 102 | 103 | dec dx 104 | write_next: 105 | in al, dx 106 | cmp al, 1 107 | jnz write_next 108 | mov cx, 512 109 | inc dx 110 | write: 111 | lodsb 112 | out dx, al 113 | loop write 114 | dec dx 115 | dec bl 116 | jnz write_next 117 | finally: 118 | in al, dx 119 | cmp al, 1 120 | jnz finally 121 | pop si 122 | pop ds 123 | pop dx 124 | pop cx 125 | pop bx 126 | pop ax ; return in al: number of sectors written 127 | xor ah, ah ; return in ah: no error 128 | iret 129 | 130 | INT13_type: 131 | mov cx, 0xff3f 132 | mov dx, 0x0f01 133 | iret 134 | 135 | INT19: 136 | xor ax, ax 137 | mov es, ax 138 | mov ds, ax 139 | mov ax, 0x0201 140 | mov bx, 0x7c00 141 | mov cx, 1 142 | mov dx, 0x0080 143 | int 0x13 144 | jmp 0:0x7c00 145 | 146 | times 32768-($-$$) db 0 -------------------------------------------------------------------------------- /custom_TVGA9000i_BIOS/int13.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/custom_TVGA9000i_BIOS/int13.bin -------------------------------------------------------------------------------- /custom_TVGA9000i_BIOS/nasmw.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/custom_TVGA9000i_BIOS/nasmw.exe -------------------------------------------------------------------------------- /custom_TVGA9000i_BIOS/trident.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/custom_TVGA9000i_BIOS/trident.bin -------------------------------------------------------------------------------- /custom_TVGA9000i_BIOS/tvga9000i.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/custom_TVGA9000i_BIOS/tvga9000i.bin -------------------------------------------------------------------------------- /custom_TVGA9000i_BIOS/vgabios.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/custom_TVGA9000i_BIOS/vgabios.bin -------------------------------------------------------------------------------- /custom_TVGA9000i_BIOS/vgabx2.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/custom_TVGA9000i_BIOS/vgabx2.bin -------------------------------------------------------------------------------- /custom_ctmouse/CTMOUSE.MSG: -------------------------------------------------------------------------------- 1 | ; This file is a part of CuteMouse source 2 | ; Here are messages in English 3 | 4 | E_error db nl,'Error: Invalid option' 5 | E_option db eos 6 | E_argument db ' argument',eos 7 | E_help db 5,nl,'Enter /? on command line for help',eos 8 | 9 | E_mousepresent db 5,'Mouse services already present',eos 10 | E_notfound db 5,'Error: device not found',eos 11 | ;;+E_noIRQ db 5,'Error: IRQ line not detected',eos 12 | 13 | E_nocute db 1,'CuteMouse driver is not installed!',eos 14 | E_notunload db 2,'Driver unload failed: some interrupts intercepted...',eos 15 | S_unloaded db 0,'Driver successfully unloaded...',eos 16 | 17 | S_reset db 'Resident part reset to ',eos 18 | S_installed db 'Installed at ',eos 19 | S_atPS2 db 'PS/2 port',eos 20 | S_atCOM db 'COM' 21 | com_port db ?,' (' 22 | S_atIO db '0000h/IRQ' 23 | IRQno db ? 24 | S_in db ') in ',eos 25 | S_inMSYS db 'Mouse Systems mode',eos 26 | S_inMS db 'Microsoft mode',eos 27 | S_inLT db 'Logitech mode',eos 28 | S_wheel db ' (wheel present)' 29 | S_CRLF db nl,eos 30 | 31 | Copyright db nl,'CuteMouse v',CTMRELEASE,' [FreeDOS]',nl,eos 32 | Syntax label 33 | db 0,'Options:',nl 34 | db ' /P - force PS/2 mouse mode',nl 35 | db ' /S[c[i]] - force serial mouse mode at COM port c (1-4) with IRQ line i (1-7)',nl 36 | ;;+ db ' /S$a[,i] - force serial mouse mode at I/O address a (hexadecimal number)',nl 37 | ;;+ db ' with IRQ line i (1-7)',nl 38 | db ' /Y - prevent Mouse Systems mode',nl 39 | db ' /V - reverse search: find PS/2 after serial mouse',nl 40 | db ' /3 - force 3-button mode (for Microsoft and PS/2 mice only)',nl 41 | db ' /R[h[v]] - horizontal/vertical resolution (h,v=0-9; missing option R, no',nl 42 | db ' arguments or 0 as argument after R mean auto resolution, missing',nl 43 | db ' second argument means same value as for first argument)',nl 44 | db ' /L - left hand mode (default is right hand mode)',nl 45 | db ' /B - cancel run if mouse services are already present',nl 46 | db ' /N - load CuteMouse as new TSR, even if CuteMouse is already loaded',nl 47 | db ' (useful for batch files which unload CuteMouse at end)',nl 48 | db ' /W - prevent loading TSR into UMB',nl 49 | db ' /U - uninstall driver',nl 50 | db ' /? - show this help',eos 51 | -------------------------------------------------------------------------------- /custom_ctmouse/asmlib.cfg: -------------------------------------------------------------------------------- 1 | -Iasmlib 2 | -Iasmlib\bios 3 | -Iasmlib\convert 4 | -Iasmlib\dos 5 | -Iasmlib\hard 6 | -I..\asmlib 7 | -I..\asmlib\bios 8 | -I..\asmlib\convert 9 | -I..\asmlib\dos 10 | -I..\asmlib\hard 11 | -------------------------------------------------------------------------------- /custom_ctmouse/asmlib/code.def: -------------------------------------------------------------------------------- 1 | ; Assembler source library 2 | ; Copyright (c) 2002 Arkady Belousov 3 | ; 4 | ; This library is free software; you can redistribute it and/or modify it 5 | ; under the terms of the GNU Lesser General Public License as published by 6 | ; the Free Software Foundation; either version 2.1 of the License, or (at 7 | ; your option) any later version. 8 | ; 9 | ; This library is distributed in the hope that it will be useful, 10 | ; but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | ; GNU Lesser General Public License for more details. 13 | ; 14 | ; You should have received a copy of the GNU Lesser General Public 15 | ; License along with this library; if not, write to the Free Software 16 | ; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | ; 18 | 19 | OPCODE_MOV_AL equ 20 | OPCODE_MOV_CL equ 21 | OPCODE_MOV_DL equ 22 | OPCODE_MOV_BL equ 23 | OPCODE_MOV_AH equ 24 | OPCODE_MOV_CH equ 25 | OPCODE_MOV_DH equ 26 | OPCODE_MOV_BH equ 27 | OPCODE_MOV_AX equ 28 | OPCODE_MOV_CX equ 29 | OPCODE_MOV_DX equ 30 | OPCODE_MOV_BX equ 31 | 32 | OPCODE_ADD_AX equ 33 | OPCODE_AND_AX equ 34 | OPCODE_XOR_AX equ 35 | OPCODE_OR_AL equ 36 | OPCODE_AND_AL equ 37 | OPCODE_XOR_AL equ 38 | OPCODE_CMP_AL equ 39 | 40 | OPCODE_CMP_DI equ 41 | -------------------------------------------------------------------------------- /custom_ctmouse/asmlib/code.mac: -------------------------------------------------------------------------------- 1 | ; Assembler source library 2 | ; Copyright (c) 2002 Arkady Belousov 3 | ; 4 | ; This library is free software; you can redistribute it and/or modify it 5 | ; under the terms of the GNU Lesser General Public License as published by 6 | ; the Free Software Foundation; either version 2.1 of the License, or (at 7 | ; your option) any later version. 8 | ; 9 | ; This library is distributed in the hope that it will be useful, 10 | ; but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | ; GNU Lesser General Public License for more details. 13 | ; 14 | ; You should have received a copy of the GNU Lesser General Public 15 | ; License along with this library; if not, write to the Free Software 16 | ; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | ; 18 | 19 | CODE_ macro op:req,name,def:vararg 20 | OPCODE_&op 21 | name def 22 | endm 23 | 24 | ;------------------------------------------------------------------------ 25 | 26 | call_ macro name:req,value:vararg 27 | db 0E8h ; CALL NEAR word 28 | name dw value-$-2 29 | endm 30 | 31 | jmp_ macro name:req,value:vararg 32 | db 0E9h ; JMP NEAR word 33 | name dw value-$-2 34 | endm 35 | 36 | call_far macro name:vararg 37 | db 09Ah ; CALL FAR dword 38 | name dd ? 39 | endm 40 | 41 | jmp_far macro name:vararg 42 | db 0EAh ; JMP FAR dword 43 | name dd ? 44 | endm 45 | 46 | ;------------------------------------------------------------------------ 47 | 48 | fixnear macro name:req,value:vararg 49 | mov [name],value-name-2 50 | endm 51 | 52 | fixcode macro offs:req,op,arg:vararg 53 | ifb 54 | mov [offs],op 55 | elseifb 56 | mov byte ptr offs[1],arg 57 | else 58 | mov word ptr [offs],((arg) shl 8)+op 59 | endif 60 | endm 61 | -------------------------------------------------------------------------------- /custom_ctmouse/asmlib/convert/count2x.mac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/custom_ctmouse/asmlib/convert/count2x.mac -------------------------------------------------------------------------------- /custom_ctmouse/asmlib/convert/digit.mac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/custom_ctmouse/asmlib/convert/digit.mac -------------------------------------------------------------------------------- /custom_ctmouse/asmlib/dos/file.mac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/custom_ctmouse/asmlib/dos/file.mac -------------------------------------------------------------------------------- /custom_ctmouse/asmlib/dos/io.mac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/custom_ctmouse/asmlib/dos/io.mac -------------------------------------------------------------------------------- /custom_ctmouse/asmlib/dos/mcb.def: -------------------------------------------------------------------------------- 1 | ; Assembler source library 2 | ; Copyright (c) 2002 Arkady Belousov 3 | ; 4 | ; This library is free software; you can redistribute it and/or modify it 5 | ; under the terms of the GNU Lesser General Public License as published by 6 | ; the Free Software Foundation; either version 2.1 of the License, or (at 7 | ; your option) any later version. 8 | ; 9 | ; This library is distributed in the hope that it will be useful, 10 | ; but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | ; GNU Lesser General Public License for more details. 13 | ; 14 | ; You should have received a copy of the GNU Lesser General Public 15 | ; License along with this library; if not, write to the Free Software 16 | ; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | ; 18 | 19 | MCB segment use16 para at 0 20 | MCB_ID db ? ; 0: 'M'=valid, 'Z'=last block in list 21 | ownerID dw ? ; 1: PSP seg of owner (0=free) or special flag 22 | ; (6=DR-DOS XMS UMB, 7=DR-DOS excluded upper memory, 23 | ; 8=belongs to DOS, 0xfffx=386MAX) 24 | MCB_size dw ? ; 3: size in paragraphs (without MCB itself) 25 | db 3 dup(?) 26 | ownername db 8 dup(?) 27 | MCB ends ; sizeof(MCB) == 16 28 | -------------------------------------------------------------------------------- /custom_ctmouse/asmlib/dos/mem.mac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/custom_ctmouse/asmlib/dos/mem.mac -------------------------------------------------------------------------------- /custom_ctmouse/asmlib/dos/psp.def: -------------------------------------------------------------------------------- 1 | ; Assembler source library 2 | ; Copyright (c) 2002 Arkady Belousov 3 | ; 4 | ; This library is free software; you can redistribute it and/or modify it 5 | ; under the terms of the GNU Lesser General Public License as published by 6 | ; the Free Software Foundation; either version 2.1 of the License, or (at 7 | ; your option) any later version. 8 | ; 9 | ; This library is distributed in the hope that it will be useful, 10 | ; but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | ; GNU Lesser General Public License for more details. 13 | ; 14 | ; You should have received a copy of the GNU Lesser General Public 15 | ; License along with this library; if not, write to the Free Software 16 | ; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | ; 18 | 19 | PSP segment use16 page at 0 20 | DOS_exit dw ? ; 00: =INT 20 instruction (20CDh) 21 | next_seg dw ? ; 02: seg beyond program memory 22 | db 6 dup(?) 23 | terminate dd ? ; 0A: terminate routine (see INT 22) 24 | ctrlBreak dd ? ; 0E: Ctrl-Break handler (see INT 23) 25 | critErr dd ? ; 12: Critical Error handler (see INT 24) 26 | parent dw ? ; 16: parent's PSP seg 27 | JFT db 20 dup(?) ; 18: Job File Table, one byte per file handle 28 | env_seg dw ? ; 2C: process environment seg 29 | dd ? 30 | JFT_size dw ? ; 32: number of entries in JFT (default 20) 31 | JFT@ dd ? ; 34: pointer to JFT (default PSP:JFT) 32 | prev dd ? ; 38: pointer to previous PSP (default FFFF:FFFFh) 33 | db 18 dup(?) 34 | PSP_TSR equ $-DOS_exit ; 4E: memory below available to reuse in TSR 35 | db 2 dup(?) 36 | DOS_call db 3 dup(?) ; 50: =INT 21/RETF instructions 37 | db 2 dup(?) 38 | extFCB1 db 7 dup(?) ; 55: can be used to make extended FCB 39 | FCB1 db 16 dup(?) ; 5C: unopened FCB for 1st cmd argument 40 | FCB2 db 16 dup(?) ; 6C: unopened FCB for 2nd cmd argument 41 | db 4 dup(?) 42 | defaultDTA label 43 | cmdline_len db ? ; 80 44 | cmdline db 127 dup(?) 45 | PSP ends ; sizeof(PSP) == 256 46 | -------------------------------------------------------------------------------- /custom_ctmouse/asmlib/hard/pic8259a.def: -------------------------------------------------------------------------------- 1 | ; Assembler source library 2 | ; Copyright (c) 2002 Arkady Belousov 3 | ; 4 | ; This library is free software; you can redistribute it and/or modify it 5 | ; under the terms of the GNU Lesser General Public License as published by 6 | ; the Free Software Foundation; either version 2.1 of the License, or (at 7 | ; your option) any later version. 8 | ; 9 | ; This library is distributed in the hope that it will be useful, 10 | ; but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | ; GNU Lesser General Public License for more details. 13 | ; 14 | ; You should have received a copy of the GNU Lesser General Public 15 | ; License along with this library; if not, write to the Free Software 16 | ; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | ; 18 | 19 | ; PIC (Programmable Interrupt Controller) 20 | ; - IBM PC contains Intel 8259A PIC chipset. 21 | ; - IBM PC AT contains two 8259A cascaded through IRQ2 and original IRQ2 22 | ; line on the ISA bus attached to IRQ9 (second IRQ line on slave PIC). 23 | 24 | ;------------------------------------------------------------------------- 25 | 26 | ; 8259A contains: 27 | ; - IRR (Interrupt Request Register): reflects active IRQ lines; R/O 28 | ; - ISR (In Service Register): reflects IRQ accepted by CPU, which are not 29 | ; yet acknowledged by EOI command; R/O 30 | ; - IMR (Interrupt Mask Register): disables selected IRQ lines; R/W 31 | 32 | ; IRQ processing in 8086 mode: 33 | ; 1. IRR sets bit for IRQ line, at which signal front is detected. 34 | ; 2. 8259A sends INT signal to CPU if IRR bit is not masked by IMR and its 35 | ; priority is greater, than highest in ISR (i.e. same IRQ also will not 36 | ; be processed until its ISR bit is cleared). 37 | ; 3. CPU answers by INTA impulse. 38 | ; 4. ISR sets bit with highest priority from IRR and clears it in IRR. 39 | ; 5. CPU sends second INTA impulse, at which 8259A sends 8-bit address. 40 | ; 6. ISR bits cleared by EOI command later or at the end of second INTA 41 | ; impulse in AutoEOI mode. 42 | ; In cascade mode INT signal sent and first INTA impulse accepted by master 43 | ; PIC, then it allows the slave PIC to accept (and answer) second INTA impulse. 44 | 45 | ; Bounds: 46 | ; - IRR bit is cleared if consequent IRQ line goes down; if IRQ line goes down 47 | ; before second INTA impulse, then 8259A sends IRQ7 address (but not sets 48 | ; ISR7 bit). 49 | ; - it is undocumented what happens after EOI if new front(s) come in at IRQ 50 | ; line or IRQ line goes down after new front(s) before EOI for this IRQ. 51 | 52 | ; 8259A accepts commands of two types: sequence of 2-4 ICW (initialization 53 | ; command words) or 3 different OCW (output control words). After ICW1 IRR 54 | ; and IMR are cleared, IRQ7 gets priority 7, slave gets address 7, special 55 | ; mask mode is cleared and read mode is set for IRR. 56 | 57 | 58 | ;========================================================================= 59 | 60 | ; I/O ports addresses 61 | 62 | PIC1_ICW1 equ 20h ; All ICW W/O 63 | PIC1_ICW2 equ 21h ; ICW2/ICW3/ICW4 goes to 21h/0A1h 64 | PIC1_ICW3 equ 21h ; immediately after ICW1 65 | PIC1_ICW4 equ 21h 66 | 67 | PIC1_OCW2 equ 20h ; W/O 68 | PIC1_OCW3 equ 20h ; W/O; also set IRR or ISR read mode 69 | 70 | PIC1_IRR equ 20h ; R/O; selected by OCW3_read 71 | PIC1_ISR equ 20h ; R/O; selected by OCW3_read 72 | PIC1_IRQ equ 20h ; R/O; returned in polling mode 73 | ; (OCW3_POLL), valid if high bit set 74 | PIC1_IMR equ 21h ; R/O for IMR, W/O for OCW1 75 | 76 | PIC2_ICW1 equ 0A0h 77 | PIC2_ICW2 equ 0A1h 78 | PIC2_ICW3 equ 0A1h 79 | PIC2_ICW4 equ 0A1h 80 | 81 | PIC2_OCW2 equ 0A0h 82 | PIC2_OCW3 equ 0A0h 83 | 84 | PIC2_IRR equ 0A0h 85 | PIC2_ISR equ 0A0h 86 | PIC2_IRQ equ 0A0h 87 | PIC2_IMR equ 0A1h 88 | 89 | 90 | ;------------------------------------------------------------------------- 91 | 92 | ; ICW defenitions 93 | 94 | ICW1 record ICW1_ADDR:3, \; for 8080/8085 CPUs only 95 | \; value of A5-A7 address lines 96 | ICW1_ID :1=1, \; should be set for ICW1 97 | ICW1_LTIM:1, \ 98 | ICW1_ADI :1, \; for 8080/8085 CPUs only 99 | \; =0 intr vectors use 8 bytes 100 | \; =1 intr vectors use 4 bytes 101 | ICW1_SNGL:1, \; =0 cascade mode 102 | \; =1 single 8259A mode (and no ICW3) 103 | ICW1_ICW4:1 ; =1 ICW4 will be sent 104 | 105 | ; ICW1_LTIM values: 106 | ICW1_edge equ 0 ; edge triggered mode 107 | ICW1_level equ 1 ; level triggered mode 108 | 109 | ICW2_8080 record ICW2_8080_ADDR:8 ; A8-A15 address lines 110 | ICW2_8086 record ICW2_8086_ADDR:5, \; T3-T7 address lines 111 | ICW2_reserved:3 112 | 113 | ; - ICW3 for master PIC contains bit mask with 1 for each IRQ line at which 114 | ; slave PIC is attached; 115 | ; - ICW3 for slave PIC contains IRQ line # (in three lowest bits), at which 116 | ; it is connected. 117 | 118 | ICW4 record ICW4_special:1, \; =1 special fully nested mode 119 | ICW4_BUF :2, \ 120 | ICW4_autoEOI:1, \ 121 | ICW4_CPU :1 122 | 123 | ; ICW4_CPU values: 124 | ICW4_8080 equ 0 125 | ICW4_8086 equ 1 126 | 127 | ; ICW4_BUF values: 128 | ICW4_nonbuf equ 00b 129 | ICW4_SLAVE equ 10b ; PIC is slave 130 | ICW4_MASTER equ 11b ; PIC is master 131 | 132 | 133 | ;------------------------------------------------------------------------- 134 | 135 | ; OCW defenitions 136 | 137 | ; OCW1 inits IMR value 138 | 139 | OCW2 record OCW2_CMD :3, \ 140 | OCW2_ID :2=0, \; should be set for OCW2 141 | OCW2_level:3=0 142 | 143 | ; OCW2_CMD values: 144 | OCW2_EOI equ 001b ; nonspecific EOI 145 | OCW2_specEOI equ 011b ; specific EOI + level 146 | OCW2_ROTEOI equ 101b ; rotate on nonspecific EOI 147 | OCW2_ROTspecEOI equ 111b ; rotate on specific EOI + level 148 | OCW2_ROTAEOI equ 100b ; rotate in auto EOI mode (set) 149 | OCW2_noROTAEOI equ 000b ; rotate in auto EOI mode (clear) 150 | OCW2_priority equ 110b ; set lowest priority + level 151 | OCW2_NOP equ 010b 152 | 153 | OCW3 record OCW3_mask:2=0, \ 154 | OCW3_ID :2=1, \; should be set for OCW3 155 | OCW3_POLL:1=0, \; =1 polling mode 156 | OCW3_read:2 157 | 158 | ; OCW3_read values: 159 | OCW3_IRR equ 10b ; IRR read mode 160 | OCW3_ISR equ 11b ; ISR read mode 161 | 162 | ; OCW3_mask values: 163 | OCW3_mask_clear equ 10b ; reset special mask mode 164 | OCW3_mask_set equ 11b ; set special mask mode 165 | -------------------------------------------------------------------------------- /custom_ctmouse/build.BAT: -------------------------------------------------------------------------------- 1 | tasm /m @asmlib.cfg ctmouse.asm 2 | tlink /t /x ctmouse.obj,ctmouse.exe 3 | com2exe -s512 ctmouse.exe ctmouse.exe 4 | -------------------------------------------------------------------------------- /custom_ctmouse/com2exe.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/custom_ctmouse/com2exe.exe -------------------------------------------------------------------------------- /custom_ctmouse/ctmouse.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/custom_ctmouse/ctmouse.asm -------------------------------------------------------------------------------- /ice40-Firmware/Makefile: -------------------------------------------------------------------------------- 1 | all: 2 | yosys -p "synth_ice40 -top top -blif top.blif -json top.json" top.v 3 | nextpnr-ice40 --pcf-allow-unconstrained --hx1k --json top.json --pcf pins.pcf --asc top.asc 4 | icepack top.asc top.bin 5 | rm top.asc 6 | rm top.blif 7 | rm top.json 8 | clean: 9 | rm top.bin 10 | rm rom.bin 11 | -------------------------------------------------------------------------------- /ice40-Firmware/grab.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | int main(int argc, char* argv[]){ 10 | int rcode = 0; 11 | int keyboard_fd = open("/dev/input/event0", O_RDONLY | O_NONBLOCK); 12 | if(keyboard_fd == -1) { 13 | printf("Failed to open keyboard.\n"); 14 | exit(1); 15 | } 16 | printf("Getting exclusive access: "); 17 | rcode = ioctl(keyboard_fd, EVIOCGRAB, 1); 18 | printf("%s\n", (rcode == 0) ? "SUCCESS" : "FAILURE"); 19 | printf("%d\n", EVIOCGRAB); 20 | rcode = ioctl(keyboard_fd, EVIOCGRAB, 0); 21 | close(keyboard_fd); 22 | 23 | return 0; 24 | } 25 | -------------------------------------------------------------------------------- /ice40-Firmware/keyboard.py: -------------------------------------------------------------------------------- 1 | import struct 2 | import sys 3 | import RPi.GPIO as GPIO 4 | import fcntl 5 | from time import sleep 6 | 7 | sleep(0.3) 8 | GPIO.setwarnings(False) 9 | GPIO.setmode(GPIO.BCM) 10 | for channel in range(10): 11 | GPIO.setup(channel, GPIO.OUT) 12 | 13 | kbd = open('/dev/input/event0', 'rb') 14 | fcntl.ioctl(kbd, 1074021776, True) 15 | evnt = kbd.read(24) 16 | 17 | GPIO.output(0, 1) 18 | GPIO.output(1, 0) 19 | GPIO.output(2, 0) 20 | GPIO.output(3, 0) 21 | GPIO.output(4, 0) 22 | GPIO.output(5, 0) 23 | GPIO.output(6, 0) 24 | GPIO.output(7, 0) 25 | GPIO.output(8, 1) 26 | GPIO.output(8, 0) 27 | 28 | while evnt: 29 | (a, b, type, code, value) = struct.unpack('llHHI', evnt) 30 | if type==1 and value<2: 31 | if code==88: # F12 32 | fcntl.ioctl(kbd, 1074021776, False) 33 | sys.exit(0) 34 | if code==0x66: code = 0x47 35 | if code==0x67: code = 0x48 36 | if code==0x68: code = 0x49 37 | if code==0x69: code = 0x4b 38 | if code==0x6a: code = 0x4d 39 | if code==0x6b: code = 0x4f 40 | if code==0x6c: code = 0x50 41 | if code==0x6d: code = 0x51 42 | if code==0x6e: code = 0x52 43 | if code==0x6f: code = 0x53 44 | if value==0: 45 | GPIO.output(0, code & 1) 46 | GPIO.output(1, code & 2) 47 | GPIO.output(2, code & 4) 48 | GPIO.output(3, code & 8) 49 | GPIO.output(4, code & 16) 50 | GPIO.output(5, code & 32) 51 | GPIO.output(6, code & 64) 52 | GPIO.output(7, 1) 53 | else: 54 | GPIO.output(0, code & 1) 55 | GPIO.output(1, code & 2) 56 | GPIO.output(2, code & 4) 57 | GPIO.output(3, code & 8) 58 | GPIO.output(4, code & 16) 59 | GPIO.output(5, code & 32) 60 | GPIO.output(6, code & 64) 61 | GPIO.output(7, 0) 62 | GPIO.output(9, 1) 63 | GPIO.output(9, 0) 64 | evnt = kbd.read(24) 65 | -------------------------------------------------------------------------------- /ice40-Firmware/pins.pcf: -------------------------------------------------------------------------------- 1 | set_io ISA_D[0] 139 2 | set_io ISA_D[1] 141 3 | set_io ISA_D[2] 142 4 | set_io ISA_D[3] 143 5 | set_io ISA_D[4] 144 6 | set_io ISA_D[5] 1 7 | set_io ISA_D[6] 2 8 | set_io ISA_D[7] 3 9 | 10 | set_io ISA_A[0] 104 11 | set_io ISA_A[1] 105 12 | set_io ISA_A[2] 106 13 | set_io ISA_A[3] 107 14 | set_io ISA_A[4] 112 15 | set_io ISA_A[5] 113 16 | set_io ISA_A[6] 114 17 | set_io ISA_A[7] 115 18 | set_io ISA_A[8] 116 19 | set_io ISA_A[9] 117 20 | set_io ISA_A[10] 118 21 | set_io ISA_A[11] 119 22 | set_io ISA_A[12] 120 23 | set_io ISA_A[13] 121 24 | set_io ISA_A[14] 122 25 | set_io ISA_A[15] 128 26 | set_io ISA_A[16] 129 27 | set_io ISA_A[17] 134 28 | set_io ISA_A[18] 135 29 | set_io ISA_A[19] 136 30 | 31 | set_io ISA_MEMW 97 32 | set_io ISA_MEMR 98 33 | set_io ISA_IOW 99 34 | set_io ISA_IOR 101 35 | 36 | set_io VGA_VS 7 37 | set_io VGA_HS 8 38 | 39 | set_io VGA_B[0] 9 40 | set_io VGA_B[1] 10 41 | set_io VGA_B[2] 11 42 | set_io VGA_B[3] 12 43 | set_io VGA_B[4] 19 44 | set_io VGA_B[5] 20 45 | 46 | set_io VGA_G[0] 21 47 | set_io VGA_G[1] 22 48 | set_io VGA_G[2] 23 49 | set_io VGA_G[3] 24 50 | set_io VGA_G[4] 25 51 | set_io VGA_G[5] 26 52 | 53 | set_io VGA_R[0] 28 54 | set_io VGA_R[1] 29 55 | set_io VGA_R[2] 31 56 | set_io VGA_R[3] 32 57 | set_io VGA_R[4] 33 58 | set_io VGA_R[5] 34 59 | 60 | set_io RPI_GPIO[0] 56 61 | set_io RPI_GPIO[1] 58 62 | set_io RPI_GPIO[2] 37 63 | set_io RPI_GPIO[3] 38 64 | set_io RPI_GPIO[4] 39 65 | set_io RPI_GPIO[5] 60 66 | set_io RPI_GPIO[6] 61 67 | set_io RPI_GPIO[7] 52 68 | set_io RPI_GPIO[8] 50 69 | set_io RPI_GPIO[9] 67 70 | set_io RPI_GPIO[10] 68 71 | set_io RPI_GPIO[11] 70 72 | set_io RPI_GPIO[12] 62 73 | set_io RPI_GPIO[13] 49 74 | set_io RPI_GPIO[14] 41 75 | set_io RPI_GPIO[15] 42 76 | set_io RPI_GPIO[16] 45 77 | set_io RPI_GPIO[17] 43 78 | set_io RPI_GPIO[18] 44 79 | set_io RPI_GPIO[22] 47 80 | set_io RPI_GPIO[23] 48 81 | set_io RPI_GPIO[25] 71 82 | set_io RPI_GPIO[27] 66 83 | 84 | set_io ISA_RESET 63 85 | set_io ISA_OSC 64 86 | set_io ISA_IRQ4 74 87 | set_io ISA_IRQ5 75 88 | set_io ISA_IRQ7 76 89 | set_io ISA_CLK 78 90 | set_io ISA_DRQ1 79 91 | set_io ISA_DACK1 80 92 | set_io ISA_DRQ2 96 93 | set_io ISA_DACK2 73 94 | set_io ISA_DRQ3 81 95 | set_io ISA_DACK3 102 96 | set_io ISA_AEN 137 97 | set_io ISA_READY 138 98 | 99 | set_io CLK 93 100 | -------------------------------------------------------------------------------- /ice40-Firmware/rom.py: -------------------------------------------------------------------------------- 1 | import os 2 | import RPi.GPIO as GPIO 3 | import spidev 4 | from time import sleep 5 | 6 | GPIO.setwarnings(False) 7 | GPIO.setmode(GPIO.BCM) 8 | for channel in [0,1,2,3,4,5,6,7,8,9,25,27]: 9 | GPIO.setup(channel, GPIO.OUT) 10 | GPIO.output(channel, 0) 11 | 12 | # compile BIOS 13 | os.system('nasm -O0 -fbin rom.asm -o rom.bin') 14 | file = open("rom.bin", "rb") 15 | data = file.read(-1) 16 | data = bytearray(data) 17 | file.close() 18 | 19 | # write FPGA bitstream via SPI 20 | GPIO.output(27, 1) 21 | file = open("top.bin", "rb") 22 | bitstream = file.read(-1) 23 | file.close() 24 | spi = spidev.SpiDev(0, 0) 25 | spi.xfer3(bitstream) 26 | spi.xfer3(bytearray([0,0,0,0,0,0,0])) 27 | spi.close() 28 | 29 | # set RESET 30 | GPIO.output(8, 1) 31 | 32 | # write BIOS ROM 33 | for x in range(1024): 34 | GPIO.output(0, (data[x]>>0)&1) 35 | GPIO.output(1, (data[x]>>1)&1) 36 | GPIO.output(2, (data[x]>>2)&1) 37 | GPIO.output(3, (data[x]>>3)&1) 38 | GPIO.output(4, (data[x]>>4)&1) 39 | GPIO.output(5, (data[x]>>5)&1) 40 | GPIO.output(6, (data[x]>>6)&1) 41 | GPIO.output(7, (data[x]>>7)&1) 42 | GPIO.output(9, 1) 43 | GPIO.output(9, 0) 44 | 45 | # clear RESET 46 | GPIO.output(0, 0) 47 | GPIO.output(1, 0) 48 | GPIO.output(2, 0) 49 | GPIO.output(3, 0) 50 | GPIO.output(4, 0) 51 | GPIO.output(5, 0) 52 | GPIO.output(6, 0) 53 | GPIO.output(7, 0) 54 | GPIO.output(8, 0) 55 | -------------------------------------------------------------------------------- /ice40-Firmware/top.v: -------------------------------------------------------------------------------- 1 | module top( 2 | input CLK, 3 | input [9:0] RPI_GPIO, 4 | 5 | input [19:0] ISA_A, 6 | inout [7:0] ISA_D, 7 | input ISA_MEMW, 8 | input ISA_MEMR, 9 | input ISA_IOW, 10 | input ISA_IOR, 11 | output ISA_IRQ2, 12 | output ISA_IRQ3, 13 | output ISA_IRQ4, 14 | output ISA_IRQ5, 15 | output ISA_IRQ6, 16 | output ISA_IRQ7, 17 | output ISA_DRQ1, 18 | output ISA_DRQ2, // nonstandard CPU board: INT 19 | output ISA_DRQ3, 20 | input ISA_DACK1, 21 | input ISA_DACK2, // nonstandard CPU board: INTA 22 | input ISA_DACK3, 23 | output ISA_AEN, 24 | inout ISA_READY, 25 | output ISA_RESET, 26 | output ISA_CLK 27 | ); 28 | 29 | /** ISA BUS signals **/ 30 | reg [1:0] IOW; 31 | reg [1:0] IOR; 32 | reg [1:0] MEMW; 33 | reg [1:0] MEMR; 34 | reg [7:0] dout; 35 | reg rw; 36 | 37 | /** Raspberry Pi signals */ 38 | reg [1:0] RPI_CLK8; 39 | reg [1:0] RPI_CLK9; 40 | reg [7:0] RPI_ADDR; 41 | 42 | /** ROM related **/ 43 | reg [7:0] rom_din; 44 | reg rom_write_en; 45 | reg [9:0] rom_waddr; 46 | reg [9:0] rom_raddr; 47 | reg [7:0] rom_dout; 48 | 49 | /** CPU signals **/ 50 | reg r_ISA_RESET; 51 | reg r_ISA_DRQ2; 52 | reg [1:0] DACK2; 53 | 54 | /** CLOCKS **/ 55 | reg [3:0] ISA_CLK_cnt; 56 | reg r_ISA_CLK; 57 | reg [5:0] PIT_CLK_cnt; 58 | reg r_PIT_CLK; 59 | 60 | /** PIT and PIC signals **/ 61 | reg [16:0] PIT_value; 62 | reg [16:0] PIT_status; 63 | reg PIT_state; 64 | reg [16:0] PIT_cnt; 65 | reg [1:0] PIT_trig; 66 | reg PIT_trigger; 67 | reg [1:0] IRQ; 68 | 69 | /** Keyboard signals **/ 70 | reg [7:0] KBD_DATA; 71 | reg KBD_HAS_DATA; 72 | 73 | 74 | /**** GENERATE CLOCKS ****/ 75 | /* 76 | * 1. Generate ISA CLK, typically around 8 MHz 77 | * 2. Generate PIT CLK, typically 315/88/3 ~ 1.19 MHz 78 | * 79 | */ 80 | 81 | always @(posedge CLK) 82 | begin 83 | /* 3 = 12.5 MHz, 5 = 8.33 MHz, 100/(n+1)/2 */ 84 | if(ISA_CLK_cnt<3) 85 | ISA_CLK_cnt <= ISA_CLK_cnt + 1; 86 | else 87 | begin 88 | ISA_CLK_cnt <= 0; 89 | r_ISA_CLK <= ~r_ISA_CLK; 90 | end 91 | 92 | /* 1.19 MHz */ 93 | if(PIT_CLK_cnt<41) 94 | PIT_CLK_cnt <= PIT_CLK_cnt + 1; 95 | else 96 | begin 97 | PIT_CLK_cnt <= 0; 98 | r_PIT_CLK <= ~r_PIT_CLK; 99 | end 100 | end 101 | 102 | 103 | /**** PROGRAMMABLE INTERVAL TIMER (PIT) ****/ 104 | 105 | always @(posedge r_PIT_CLK) 106 | begin 107 | if(PIT_status>0) 108 | begin 109 | PIT_trigger <= 0; 110 | PIT_status <= PIT_status - 1; 111 | end 112 | else 113 | begin 114 | PIT_trigger <= 1; 115 | PIT_status <= PIT_value; 116 | end 117 | end 118 | 119 | 120 | /**** ISA BUS / CPU CONTROL ****/ 121 | 122 | always @(posedge CLK) 123 | begin 124 | DACK2 <= {DACK2[0], ISA_DACK2}; 125 | IOW <= {IOW[0], ISA_IOW}; 126 | IOR <= {IOR[0], ISA_IOR}; 127 | MEMW <= {MEMW[0], ISA_MEMW}; 128 | MEMR <= {MEMR[0], ISA_MEMR}; 129 | 130 | /**** RECEIVE DATA FROM RASPBERRY PI ****/ 131 | 132 | RPI_CLK8 <= {RPI_CLK8[0], RPI_GPIO[8]}; 133 | RPI_CLK9 <= {RPI_CLK9[0], RPI_GPIO[9]}; 134 | 135 | if(RPI_CLK8==2'b01) 136 | RPI_ADDR <= RPI_GPIO[7:0]; 137 | if(RPI_CLK8==2'b01) 138 | case(RPI_GPIO[7:0]) 139 | 8'h0: 140 | begin 141 | rom_waddr <= 1023; 142 | r_ISA_RESET <= 1; 143 | end 144 | endcase 145 | if(RPI_CLK8==2'b10) 146 | case(RPI_GPIO[7:0]) 147 | 8'h0: 148 | begin 149 | r_ISA_RESET <= 0; 150 | end 151 | endcase 152 | if(RPI_CLK9==2'b01) 153 | case(RPI_ADDR) 154 | 8'h0: 155 | begin 156 | rom_write_en <= 1; 157 | rom_waddr <= rom_waddr + 1; 158 | rom_din[7:0] <= RPI_GPIO[7:0]; 159 | end 160 | 8'h1: 161 | begin 162 | KBD_DATA <= RPI_GPIO[7:0]; 163 | KBD_HAS_DATA <= 1; 164 | IRQ[1] <= 1; 165 | end 166 | endcase 167 | if(RPI_CLK9==2'b10) 168 | case(RPI_ADDR) 169 | 8'h0: 170 | begin 171 | rom_write_en <= 0; 172 | end 173 | endcase 174 | 175 | /**** HANDLE INTERRUPTS ****/ 176 | 177 | PIT_trig <= {PIT_trig[0], PIT_trigger}; 178 | if(PIT_trig==2'b01) IRQ[0] <= 1; 179 | if(IRQ>0 && r_ISA_DRQ2==0) 180 | r_ISA_DRQ2 <= 1; 181 | else 182 | begin 183 | if(DACK2==2'b10) 184 | begin 185 | rw <= 1; 186 | if(IRQ[0]==1) 187 | begin 188 | dout <= 8; 189 | IRQ[0] <= 0; 190 | end 191 | else 192 | if(IRQ[1]==1) 193 | begin 194 | dout <= 9; 195 | IRQ[1] <= 0; 196 | end 197 | r_ISA_DRQ2 <= 0; 198 | end 199 | end 200 | 201 | /**** HANDLE ROM ****/ 202 | 203 | if(MEMR==2'b10 && ISA_A>=20'hFFC00) 204 | begin 205 | rw <= 1; 206 | dout <= rom_dout; 207 | end 208 | 209 | /**** HANDLE IO ****/ 210 | 211 | if(IOW==2'b01) 212 | case(ISA_A[9:0]) 213 | 10'h40: 214 | begin 215 | if(PIT_state==0) PIT_value[7:0] <= ISA_D; 216 | else 217 | begin 218 | if(PIT_value[7:0]==0 && ISA_D==0) PIT_value <= 65536; 219 | else PIT_value <= {1'b0, ISA_D, PIT_value[7:0]}; 220 | end 221 | PIT_state <= ~PIT_state; 222 | end 223 | 10'h43: PIT_state <= 0; 224 | endcase 225 | 226 | if(IOR==2'b10) 227 | case(ISA_A[9:0]) 228 | 10'h60: 229 | begin 230 | rw <= 1; 231 | dout <= KBD_DATA; 232 | KBD_HAS_DATA <= 0; 233 | end 234 | 10'h64: 235 | begin 236 | dout <= KBD_HAS_DATA; 237 | rw <= 1; 238 | end 239 | endcase 240 | 241 | if(IOR==2'b01 || MEMR==2'b01 || DACK2==2'b01) rw <= 0; 242 | end 243 | 244 | 245 | /**** ROM MEMORY (1 KB) ****/ 246 | 247 | reg [7:0] mem[1023:0]; 248 | 249 | always @(posedge CLK) 250 | if(rom_write_en) 251 | mem[rom_waddr] <= rom_din; 252 | 253 | always @(posedge CLK) 254 | rom_dout <= mem[ISA_A[9:0]]; 255 | 256 | 257 | /**** PIN ASSIGNMENTS ****/ 258 | 259 | assign ISA_D = rw ? dout : 8'hZ; 260 | assign ISA_IRQ4 = 0; 261 | assign ISA_IRQ5 = 0; 262 | assign ISA_IRQ7 = 0; 263 | assign ISA_DRQ1 = 0; 264 | assign ISA_DRQ2 = r_ISA_DRQ2; 265 | assign ISA_DRQ3 = 0; 266 | assign ISA_AEN = 0; 267 | assign ISA_READY = 1'bZ; 268 | assign ISA_RESET = r_ISA_RESET; 269 | assign ISA_CLK = r_ISA_CLK; 270 | 271 | endmodule 272 | -------------------------------------------------------------------------------- /ice40HX1K/830207044109.lib: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.3 2 | #encoding utf-8 3 | #SamacSys ECAD Model 830207044109 4 | #/15113484/208341/2.49/4/3/Crystal or Oscillator 5 | DEF 830207044109 Y 0 30 Y Y 1 F N 6 | F0 "Y" 1550 300 50 H V L CNN 7 | F1 "830207044109" 1550 200 50 H V L CNN 8 | F2 "830207044109" 1550 100 50 H I L CNN 9 | F3 "https://www.we-online.com/catalog/datasheet/830207044109.pdf" 1550 0 50 H I L CNN 10 | F4 "XO (Standard) CMOS Oscillator 3.3V Standby (Power Down) 4-SMD, No Lead" 1550 -100 50 H I L CNN "Description" 11 | F5 "1.2" 1550 -200 50 H I L CNN "Height" 12 | F6 "" 1550 -300 50 H I L CNN "Mouser Part Number" 13 | F7 "" 1550 -400 50 H I L CNN "Mouser Price/Stock" 14 | F8 "Wurth Elektronik" 1550 -500 50 H I L CNN "Manufacturer_Name" 15 | F9 "830207044109" 1550 -600 50 H I L CNN "Manufacturer_Part_Number" 16 | DRAW 17 | X ENABLE/DISABLE 1 0 -100 200 R 50 50 0 0 P 18 | X GND 2 1700 -100 200 L 50 50 0 0 P 19 | X OUTPUT 3 1700 0 200 L 50 50 0 0 P 20 | X +VS 4 0 0 200 R 50 50 0 0 P 21 | P 5 0 1 6 200 100 1500 100 1500 -200 200 -200 200 100 N 22 | ENDDRAW 23 | ENDDEF 24 | # 25 | #End Library 26 | -------------------------------------------------------------------------------- /ice40HX1K/APS6404L-3SQR-SN.lib: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.3 2 | #encoding utf-8 3 | #SamacSys ECAD Model APS6404L-3SQR-SN 4 | #/14969797/208341/2.49/8/3/Integrated Circuit 5 | DEF APS6404L-3SQR-SN IC 0 30 Y Y 1 F N 6 | F0 "IC" 1450 300 50 H V L CNN 7 | F1 "APS6404L-3SQR-SN" 1450 200 50 H V L CNN 8 | F2 "SOIC127P600X175-8N" 1450 100 50 H I L CNN 9 | F3 "" 1450 0 50 H I L CNN 10 | F4 "DRAM IoT RAM 64Mb QSPI (x1,x4) SDR 133/84MHz, RBX, 3V, Ind. Temp., SOP8" 1450 -100 50 H I L CNN "Description" 11 | F5 "1.75" 1450 -200 50 H I L CNN "Height" 12 | F6 "878-APS6404L-3SQR-SN" 1450 -300 50 H I L CNN "Mouser Part Number" 13 | F7 "https://www.mouser.co.uk/ProductDetail/AP-Memory/APS6404L-3SQR-SN?qs=IS%252B4QmGtzzqsn3S5xo%2FEEg%3D%3D" 1450 -400 50 H I L CNN "Mouser Price/Stock" 14 | F8 "AP Memory" 1450 -500 50 H I L CNN "Manufacturer_Name" 15 | F9 "APS6404L-3SQR-SN" 1450 -600 50 H I L CNN "Manufacturer_Part_Number" 16 | DRAW 17 | X ~CE 1 0 0 200 R 50 50 0 0 P 18 | X SO/SIO[1] 2 0 -100 200 R 50 50 0 0 P 19 | X SIO[2] 3 0 -200 200 R 50 50 0 0 P 20 | X VSS 4 0 -300 200 R 50 50 0 0 P 21 | X VDD 8 1600 0 200 L 50 50 0 0 P 22 | X SIO[3] 7 1600 -100 200 L 50 50 0 0 P 23 | X SCLK 6 1600 -200 200 L 50 50 0 0 P 24 | X SI/SIO[0] 5 1600 -300 200 L 50 50 0 0 P 25 | P 5 0 1 6 200 100 1400 100 1400 -400 200 -400 200 100 N 26 | ENDDRAW 27 | ENDDEF 28 | # 29 | #End Library 30 | -------------------------------------------------------------------------------- /ice40HX1K/BasicISA8.pretty/830207044109.kicad_mod: -------------------------------------------------------------------------------- 1 | (module "830207044109" (layer F.Cu) 2 | (descr "830207044109-2") 3 | (tags "Crystal or Oscillator") 4 | (attr smd) 5 | (fp_text reference Y** (at 0.000 -0) (layer F.SilkS) 6 | (effects (font (size 1.27 1.27) (thickness 0.254))) 7 | ) 8 | (fp_text user %R (at 0.000 -0) (layer F.Fab) 9 | (effects (font (size 1.27 1.27) (thickness 0.254))) 10 | ) 11 | (fp_text value "830207044109" (at 0.000 -0) (layer F.SilkS) hide 12 | (effects (font (size 1.27 1.27) (thickness 0.254))) 13 | ) 14 | (fp_line (start -1.6 -1.25) (end 1.6 -1.25) (layer F.Fab) (width 0.1)) 15 | (fp_line (start 1.6 -1.25) (end 1.6 1.25) (layer F.Fab) (width 0.1)) 16 | (fp_line (start 1.6 1.25) (end -1.6 1.25) (layer F.Fab) (width 0.1)) 17 | (fp_line (start -1.6 1.25) (end -1.6 -1.25) (layer F.Fab) (width 0.1)) 18 | (fp_line (start -2.8 -2.3) (end 2.8 -2.3) (layer F.CrtYd) (width 0.1)) 19 | (fp_line (start 2.8 -2.3) (end 2.8 2.3) (layer F.CrtYd) (width 0.1)) 20 | (fp_line (start 2.8 2.3) (end -2.8 2.3) (layer F.CrtYd) (width 0.1)) 21 | (fp_line (start -2.8 2.3) (end -2.8 -2.3) (layer F.CrtYd) (width 0.1)) 22 | (fp_line (start -1.1 2) (end -1.1 2) (layer F.SilkS) (width 0.2)) 23 | (fp_line (start -1.1 1.9) (end -1.1 1.9) (layer F.SilkS) (width 0.2)) 24 | (fp_line (start -1.1 2) (end -1.1 2) (layer F.SilkS) (width 0.2)) 25 | (fp_arc (start -1.1 1.95) (end -1.100 2) (angle -180) (layer F.SilkS) (width 0.2)) 26 | (fp_arc (start -1.1 1.95) (end -1.100 1.9) (angle -180) (layer F.SilkS) (width 0.2)) 27 | (fp_arc (start -1.1 1.95) (end -1.100 2) (angle -180) (layer F.SilkS) (width 0.2)) 28 | (pad 1 smd rect (at -1.100 0.8 90) (size 1.000 1.400) (layers F.Cu F.Paste F.Mask)) 29 | (pad 2 smd rect (at 1.100 0.8 90) (size 1.000 1.400) (layers F.Cu F.Paste F.Mask)) 30 | (pad 3 smd rect (at 1.100 -0.8 90) (size 1.000 1.400) (layers F.Cu F.Paste F.Mask)) 31 | (pad 4 smd rect (at -1.100 -0.8 90) (size 1.000 1.400) (layers F.Cu F.Paste F.Mask)) 32 | (model 830207044109.stp 33 | (at (xyz 0 0 0)) 34 | (scale (xyz 1 1 1)) 35 | (rotate (xyz 0 0 0)) 36 | ) 37 | ) 38 | -------------------------------------------------------------------------------- /ice40HX1K/BasicISA8.pretty/HOLE_3MM.kicad_mod: -------------------------------------------------------------------------------- 1 | (footprint "HOLE_3MM" (version 20211014) (generator pcbnew) 2 | (layer "F.Cu") 3 | (tedit 504AE92A) 4 | (descr "module 1 pin (ou trou mecanique de percage)") 5 | (tags "DEV") 6 | (property "Sheetfile" "CPU.kicad_sch") 7 | (property "Sheetname" "") 8 | (fp_text reference "REF**" (at 0 -5.08) (layer "F.SilkS") hide 9 | (effects (font (size 1.016 1.016) (thickness 0.2032))) 10 | (tstamp b617ebff-efe8-48ec-8828-db2510f4e5fe) 11 | ) 12 | (fp_text value "CONN_1" (at 0 -3.175) (layer "F.SilkS") hide 13 | (effects (font (size 1.016 1.016) (thickness 0.2032))) 14 | (tstamp 549589c5-d30d-4401-be31-4349d5db2c50) 15 | ) 16 | (fp_circle (center 0 0) (end 0 -2.286) (layer "F.SilkS") (width 0.381) (fill none) (tstamp 455ff09c-a00f-47b0-8a79-5ebd4c6255d7)) 17 | (pad "1" thru_hole circle (at 0 0) (size 4.064 4.064) (drill 3.048) (layers *.Cu *.Mask "F.SilkS") (tstamp be7a1bd6-69f5-44e3-beab-9c783bc70f95)) 18 | ) 19 | -------------------------------------------------------------------------------- /ice40HX1K/BasicISA8.pretty/K66XE15SN.kicad_mod: -------------------------------------------------------------------------------- 1 | (module "K66XE15SN" (layer F.Cu) 2 | (descr "K66X-E15S-N-1") 3 | (tags "Connector") 4 | (fp_text reference J** (at -4.008 7.875) (layer F.SilkS) 5 | (effects (font (size 1.27 1.27) (thickness 0.254))) 6 | ) 7 | (fp_text user %R (at -4.008 7.875) (layer F.Fab) 8 | (effects (font (size 1.27 1.27) (thickness 0.254))) 9 | ) 10 | (fp_text value "K66XE15SN" (at -4.008 7.875) (layer F.SilkS) hide 11 | (effects (font (size 1.27 1.27) (thickness 0.254))) 12 | ) 13 | (fp_line (start -19.413 13.97) (end 11.398 13.97) (layer F.Fab) (width 0.2)) 14 | (fp_line (start 11.398 13.97) (end 11.398 -2.45) (layer F.Fab) (width 0.2)) 15 | (fp_line (start 11.398 -2.45) (end -19.413 -2.45) (layer F.Fab) (width 0.2)) 16 | (fp_line (start -19.413 -2.45) (end -19.413 13.97) (layer F.Fab) (width 0.2)) 17 | (fp_line (start -19.413 13.97) (end 11.398 13.97) (layer F.SilkS) (width 0.1)) 18 | (fp_line (start 11.398 13.97) (end 11.398 -2.45) (layer F.SilkS) (width 0.1)) 19 | (fp_line (start 11.398 -2.45) (end -19.413 -2.45) (layer F.SilkS) (width 0.1)) 20 | (fp_line (start -19.413 -2.45) (end -19.413 13.97) (layer F.SilkS) (width 0.1)) 21 | (fp_line (start -20.413 20.8) (end 12.398 20.8) (layer F.CrtYd) (width 0.1)) 22 | (fp_line (start 12.398 20.8) (end 12.398 -5.05) (layer F.CrtYd) (width 0.1)) 23 | (fp_line (start 12.398 -5.05) (end -20.413 -5.05) (layer F.CrtYd) (width 0.1)) 24 | (fp_line (start -20.413 -5.05) (end -20.413 20.8) (layer F.CrtYd) (width 0.1)) 25 | (fp_line (start 5 14) (end 5 19.8) (layer F.Fab) (width 0.2)) 26 | (fp_line (start 5 19.8) (end -13 19.8) (layer F.Fab) (width 0.2)) 27 | (fp_line (start -13 19.8) (end -13 14) (layer F.Fab) (width 0.2)) 28 | (fp_line (start 0 -4) (end 0 -4) (layer F.SilkS) (width 0.7)) 29 | (fp_line (start 0.1 -4) (end 0.1 -4) (layer F.SilkS) (width 0.7)) 30 | (fp_arc (start 0.05 -4) (end 0.000 -4) (angle -180) (layer F.SilkS) (width 0.7)) 31 | (fp_arc (start 0.05 -4) (end 0.100 -4) (angle -180) (layer F.SilkS) (width 0.7)) 32 | (pad 1 thru_hole circle (at 0.000 -0) (size 1.650 1.650) (drill 1.1) (layers *.Cu *.Mask)) 33 | (pad 2 thru_hole circle (at -2.290 -0) (size 1.650 1.650) (drill 1.1) (layers *.Cu *.Mask)) 34 | (pad 3 thru_hole circle (at -4.580 -0) (size 1.650 1.650) (drill 1.1) (layers *.Cu *.Mask)) 35 | (pad 4 thru_hole circle (at -6.870 -0) (size 1.650 1.650) (drill 1.1) (layers *.Cu *.Mask)) 36 | (pad 5 thru_hole circle (at -9.160 -0) (size 1.650 1.650) (drill 1.1) (layers *.Cu *.Mask)) 37 | (pad 6 thru_hole circle (at 1.145 2.54) (size 1.650 1.650) (drill 1.1) (layers *.Cu *.Mask)) 38 | (pad 7 thru_hole circle (at -1.145 2.54) (size 1.650 1.650) (drill 1.1) (layers *.Cu *.Mask)) 39 | (pad 8 thru_hole circle (at -3.435 2.54) (size 1.650 1.650) (drill 1.1) (layers *.Cu *.Mask)) 40 | (pad 9 thru_hole circle (at -5.725 2.54) (size 1.650 1.650) (drill 1.1) (layers *.Cu *.Mask)) 41 | (pad 10 thru_hole circle (at -8.015 2.54) (size 1.650 1.650) (drill 1.1) (layers *.Cu *.Mask)) 42 | (pad 11 thru_hole circle (at 0.000 5.08) (size 1.650 1.650) (drill 1.1) (layers *.Cu *.Mask)) 43 | (pad 12 thru_hole circle (at -2.290 5.08) (size 1.650 1.650) (drill 1.1) (layers *.Cu *.Mask)) 44 | (pad 13 thru_hole circle (at -4.580 5.08) (size 1.650 1.650) (drill 1.1) (layers *.Cu *.Mask)) 45 | (pad 14 thru_hole circle (at -6.870 5.08) (size 1.650 1.650) (drill 1.1) (layers *.Cu *.Mask)) 46 | (pad 15 thru_hole circle (at -9.160 5.08) (size 1.650 1.650) (drill 1.1) (layers *.Cu *.Mask)) 47 | (pad MH1 thru_hole circle (at 8.488 2.54) (size 4.575 4.575) (drill 3.05) (layers *.Cu *.Mask)) 48 | (pad MH2 thru_hole circle (at -16.502 2.54) (size 4.575 4.575) (drill 3.05) (layers *.Cu *.Mask)) 49 | ) 50 | -------------------------------------------------------------------------------- /ice40HX1K/BasicISA8.pretty/SOIC127P600X175-8N.kicad_mod: -------------------------------------------------------------------------------- 1 | (module "SOIC127P600X175-8N" (layer F.Cu) 2 | (descr "SOP-8L(150), package code SN") 3 | (tags "Integrated Circuit") 4 | (attr smd) 5 | (fp_text reference IC** (at 0 0) (layer F.SilkS) 6 | (effects (font (size 1.27 1.27) (thickness 0.254))) 7 | ) 8 | (fp_text user %R (at 0 0) (layer F.Fab) 9 | (effects (font (size 1.27 1.27) (thickness 0.254))) 10 | ) 11 | (fp_text value "SOIC127P600X175-8N" (at 0 0) (layer F.SilkS) hide 12 | (effects (font (size 1.27 1.27) (thickness 0.254))) 13 | ) 14 | (fp_line (start -3.7 -2.75) (end 3.7 -2.75) (layer F.CrtYd) (width 0.05)) 15 | (fp_line (start 3.7 -2.75) (end 3.7 2.75) (layer F.CrtYd) (width 0.05)) 16 | (fp_line (start 3.7 2.75) (end -3.7 2.75) (layer F.CrtYd) (width 0.05)) 17 | (fp_line (start -3.7 2.75) (end -3.7 -2.75) (layer F.CrtYd) (width 0.05)) 18 | (fp_line (start -1.95 -2.45) (end 1.95 -2.45) (layer F.Fab) (width 0.1)) 19 | (fp_line (start 1.95 -2.45) (end 1.95 2.45) (layer F.Fab) (width 0.1)) 20 | (fp_line (start 1.95 2.45) (end -1.95 2.45) (layer F.Fab) (width 0.1)) 21 | (fp_line (start -1.95 2.45) (end -1.95 -2.45) (layer F.Fab) (width 0.1)) 22 | (fp_line (start -1.95 -1.18) (end -0.68 -2.45) (layer F.Fab) (width 0.1)) 23 | (fp_line (start -1.6 -2.45) (end 1.6 -2.45) (layer F.SilkS) (width 0.2)) 24 | (fp_line (start 1.6 -2.45) (end 1.6 2.45) (layer F.SilkS) (width 0.2)) 25 | (fp_line (start 1.6 2.45) (end -1.6 2.45) (layer F.SilkS) (width 0.2)) 26 | (fp_line (start -1.6 2.45) (end -1.6 -2.45) (layer F.SilkS) (width 0.2)) 27 | (fp_line (start -3.45 -2.58) (end -1.95 -2.58) (layer F.SilkS) (width 0.2)) 28 | (pad 1 smd rect (at -2.7 -1.905 90) (size 0.65 1.5) (layers F.Cu F.Paste F.Mask)) 29 | (pad 2 smd rect (at -2.7 -0.635 90) (size 0.65 1.5) (layers F.Cu F.Paste F.Mask)) 30 | (pad 3 smd rect (at -2.7 0.635 90) (size 0.65 1.5) (layers F.Cu F.Paste F.Mask)) 31 | (pad 4 smd rect (at -2.7 1.905 90) (size 0.65 1.5) (layers F.Cu F.Paste F.Mask)) 32 | (pad 5 smd rect (at 2.7 1.905 90) (size 0.65 1.5) (layers F.Cu F.Paste F.Mask)) 33 | (pad 6 smd rect (at 2.7 0.635 90) (size 0.65 1.5) (layers F.Cu F.Paste F.Mask)) 34 | (pad 7 smd rect (at 2.7 -0.635 90) (size 0.65 1.5) (layers F.Cu F.Paste F.Mask)) 35 | (pad 8 smd rect (at 2.7 -1.905 90) (size 0.65 1.5) (layers F.Cu F.Paste F.Mask)) 36 | (model APS6404L-3SQR-SN.stp 37 | (at (xyz 0 0 0)) 38 | (scale (xyz 1 1 1)) 39 | (rotate (xyz 0 0 0)) 40 | ) 41 | ) 42 | -------------------------------------------------------------------------------- /ice40HX1K/BasicISA8.pretty/SS53000001.kicad_mod: -------------------------------------------------------------------------------- 1 | (module "SS53000001" (layer F.Cu) 2 | (descr "SS-53000-001-1") 3 | (tags "Connector") 4 | (fp_text reference J** (at 0.000 -0) (layer F.SilkS) 5 | (effects (font (size 1.27 1.27) (thickness 0.254))) 6 | ) 7 | (fp_text user %R (at 0.000 -0) (layer F.Fab) 8 | (effects (font (size 1.27 1.27) (thickness 0.254))) 9 | ) 10 | (fp_text value "SS53000001" (at 0.000 -0) (layer F.SilkS) hide 11 | (effects (font (size 1.27 1.27) (thickness 0.254))) 12 | ) 13 | (fp_line (start -7.5 -4.345) (end 7.85 -4.345) (layer F.Fab) (width 0.2)) 14 | (fp_line (start 7.85 -4.345) (end 7.85 5.155) (layer F.Fab) (width 0.2)) 15 | (fp_line (start 7.85 5.155) (end -7.5 5.155) (layer F.Fab) (width 0.2)) 16 | (fp_line (start -7.5 5.155) (end -7.5 -4.345) (layer F.Fab) (width 0.2)) 17 | (fp_line (start -9.848 -6.155) (end 9.848 -6.155) (layer F.CrtYd) (width 0.1)) 18 | (fp_line (start 9.848 -6.155) (end 9.848 6.155) (layer F.CrtYd) (width 0.1)) 19 | (fp_line (start 9.848 6.155) (end -9.848 6.155) (layer F.CrtYd) (width 0.1)) 20 | (fp_line (start -9.848 6.155) (end -9.848 -6.155) (layer F.CrtYd) (width 0.1)) 21 | (fp_line (start -7.5 3.135) (end -7.5 5.155) (layer F.SilkS) (width 0.1)) 22 | (fp_line (start -7.5 5.155) (end 7.85 5.155) (layer F.SilkS) (width 0.1)) 23 | (fp_line (start 7.85 5.155) (end 7.85 3.135) (layer F.SilkS) (width 0.1)) 24 | (fp_line (start 5 -5.105) (end 5 -5.105) (layer F.SilkS) (width 0.3)) 25 | (fp_line (start 5.1 -5.105) (end 5.1 -5.105) (layer F.SilkS) (width 0.3)) 26 | (fp_arc (start 5.05 -5.105) (end 5.000 -5.105) (angle -180) (layer F.SilkS) (width 0.3)) 27 | (fp_arc (start 5.05 -5.105) (end 5.100 -5.105) (angle -180) (layer F.SilkS) (width 0.3)) 28 | (pad 1 smd rect (at 4.500 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 29 | (pad 2 smd rect (at 4.000 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 30 | (pad 3 smd rect (at 3.500 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 31 | (pad 4 smd rect (at 3.000 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 32 | (pad 5 smd rect (at 2.500 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 33 | (pad 6 smd rect (at 2.000 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 34 | (pad 7 smd rect (at 1.500 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 35 | (pad 8 smd rect (at 1.000 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 36 | (pad 9 smd rect (at 0.500 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 37 | (pad 10 smd rect (at 0.000 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 38 | (pad 11 smd rect (at -0.500 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 39 | (pad 12 smd rect (at -1.000 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 40 | (pad 13 smd rect (at -1.500 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 41 | (pad 14 smd rect (at -2.000 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 42 | (pad 15 smd rect (at -2.500 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 43 | (pad 16 smd rect (at -3.000 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 44 | (pad 17 smd rect (at -3.500 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 45 | (pad 18 smd rect (at -4.000 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 46 | (pad 19 smd rect (at -4.500 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 47 | (pad MH1 thru_hole circle (at -7.250 -3.265) (size 1.995 1.995) (drill 1.33) (layers *.Cu *.Mask)) 48 | (pad MH2 thru_hole circle (at 7.250 -3.265) (size 1.995 1.995) (drill 1.33) (layers *.Cu *.Mask)) 49 | (pad MH3 thru_hole circle (at 7.850 1.635) (size 1.995 1.995) (drill 1.33) (layers *.Cu *.Mask)) 50 | (pad MH4 thru_hole circle (at -7.850 1.635) (size 1.995 1.995) (drill 1.33) (layers *.Cu *.Mask)) 51 | (model SS-53000-001.stp 52 | (at (xyz 0 0 0)) 53 | (scale (xyz 1 1 1)) 54 | (rotate (xyz 0 0 0)) 55 | ) 56 | ) 57 | -------------------------------------------------------------------------------- /ice40HX1K/BasicISA8.pretty/STX31003N.kicad_mod: -------------------------------------------------------------------------------- 1 | (footprint "STX31003N" (version 20211014) (generator pcbnew) 2 | (layer "F.Cu") 3 | (tedit 0) 4 | (descr "STX-3100-3N-1") 5 | (tags "Connector") 6 | (attr through_hole) 7 | (fp_text reference "J3" (at -35.3 -30.7 -180) (layer "F.SilkS") hide 8 | (effects (font (size 1.27 1.27) (thickness 0.254))) 9 | (tstamp c81074c6-573f-4381-ba4b-a254882a6e82) 10 | ) 11 | (fp_text value "Conn_02x03_Counter_Clockwise" (at -33.534 -45.176 -180) (layer "F.SilkS") hide 12 | (effects (font (size 1.27 1.27) (thickness 0.254))) 13 | (tstamp 3530b690-20b4-4802-944e-e4b5f5105280) 14 | ) 15 | (fp_text user "${REFERENCE}" (at -37.9 -27.6 -180) (layer "F.Fab") 16 | (effects (font (size 1.27 1.27) (thickness 0.254))) 17 | (tstamp 40f74466-77e6-4c55-822c-b6bb4e3f62c1) 18 | ) 19 | (fp_line (start 7.3 -6) (end 7.3 6) (layer "F.SilkS") (width 0.2) (tstamp 086f1047-fa16-4d56-bea4-ac12a1137b28)) 20 | (fp_line (start 7.3 6) (end 6.5 6) (layer "F.SilkS") (width 0.2) (tstamp 2c151ac1-4a26-4b5d-9165-77e33a52d2fa)) 21 | (fp_line (start -7 -0.1) (end -7 -0.1) (layer "F.SilkS") (width 0.1) (tstamp 3bfd1001-cc77-489b-9e9c-735e201d550b)) 22 | (fp_line (start -1.5 -6) (end -3 -6) (layer "F.SilkS") (width 0.2) (tstamp 3c94ab48-0401-414c-81ba-4da8e7e9a785)) 23 | (fp_line (start 1.5 -6) (end 3.5 -6) (layer "F.SilkS") (width 0.2) (tstamp 56d86e30-7228-4443-bc24-210128358ab5)) 24 | (fp_line (start -3 -6) (end -3 6) (layer "F.SilkS") (width 0.2) (tstamp 57bf0dac-3119-40ad-9c1a-d2d728acd816)) 25 | (fp_line (start -6.5 3) (end -6.5 -3) (layer "F.SilkS") (width 0.2) (tstamp 73a61589-826f-4e25-9c98-bc1c107f289a)) 26 | (fp_line (start 6.5 -6) (end 7.3 -6) (layer "F.SilkS") (width 0.2) (tstamp 99025df3-4e9e-401e-aa5c-ea07c89be1fd)) 27 | (fp_line (start -6.5 -3) (end -3 -3) (layer "F.SilkS") (width 0.2) (tstamp 9bf3ef10-87d0-4147-a26f-07022931b991)) 28 | (fp_line (start 1.5 6) (end 3.5 6) (layer "F.SilkS") (width 0.2) (tstamp cbdc959f-6c36-4b44-a7c6-ffd5f0064d0e)) 29 | (fp_line (start -3 3) (end -6.5 3) (layer "F.SilkS") (width 0.2) (tstamp ec1dd751-7a3c-4df9-baa4-d96c59c2f618)) 30 | (fp_line (start -3 6) (end -1.5 6) (layer "F.SilkS") (width 0.2) (tstamp f19fce48-d720-488d-b5c6-bb36ee75af48)) 31 | (fp_line (start -1.5 -6) (end -1.5 -6) (layer "F.SilkS") (width 0.2) (tstamp fba60dce-7ce8-4583-a734-737760ea2326)) 32 | (fp_line (start -7 0) (end -7 0) (layer "F.SilkS") (width 0.1) (tstamp fc4bf181-3f5d-4e90-8e05-3922b53b7bb7)) 33 | (fp_arc (start -7 0) (mid -7.05 -0.05) (end -7 -0.1) (layer "F.SilkS") (width 0.1) (tstamp 1b354d1e-c50e-413b-9657-21441400088c)) 34 | (fp_arc (start -7 -0.1) (mid -6.95 -0.05) (end -7 0) (layer "F.SilkS") (width 0.1) (tstamp b3efd03f-30a4-4511-8b63-a7dc094e354e)) 35 | (fp_line (start -7.5 7.2) (end -7.5 -7.2) (layer "F.CrtYd") (width 0.1) (tstamp 0bda71ca-1d77-4d23-a37b-deda64de2463)) 36 | (fp_line (start 8.3 -7.2) (end 8.3 7.2) (layer "F.CrtYd") (width 0.1) (tstamp 0cfede9f-8959-438d-9f1c-aca79cbae23e)) 37 | (fp_line (start 8.3 7.2) (end -7.5 7.2) (layer "F.CrtYd") (width 0.1) (tstamp 4333be91-abf3-48c1-89e1-5080ac270f28)) 38 | (fp_line (start -7.5 -7.2) (end 8.3 -7.2) (layer "F.CrtYd") (width 0.1) (tstamp 81934390-c70f-4ad3-adff-80e55b0831a4)) 39 | (fp_line (start 7.3 -6) (end 7.3 6) (layer "F.Fab") (width 0.1) (tstamp 0182c375-0cc2-492b-90a2-0b059cf9a2c2)) 40 | (fp_line (start -3 6) (end -3 -6) (layer "F.Fab") (width 0.1) (tstamp 0ddf82a0-9da5-408a-bf77-3af30aa311b3)) 41 | (fp_line (start -3 -6) (end 7.3 -6) (layer "F.Fab") (width 0.1) (tstamp 25143337-2bd9-42c3-8c4a-3ea1193728bf)) 42 | (fp_line (start 7.3 6) (end -3 6) (layer "F.Fab") (width 0.1) (tstamp 4249a571-8ea9-46dc-b813-2b8d6c8b77dd)) 43 | (fp_line (start -3 3) (end -6.5 3) (layer "F.Fab") (width 0.1) (tstamp 77a9dc4a-2b7a-49a7-a2a2-5b8f17a57a5c)) 44 | (fp_line (start -3 -3) (end -3 -3) (layer "F.Fab") (width 0.1) (tstamp 79513c3a-d487-48a8-b65c-6efa6faebd8f)) 45 | (fp_line (start -6.5 3) (end -6.5 -3) (layer "F.Fab") (width 0.1) (tstamp 79afa501-d0a4-4473-87f8-b4e62c6e62b0)) 46 | (fp_line (start -6.5 -3) (end -3 -3) (layer "F.Fab") (width 0.1) (tstamp 93970e5e-81c2-4501-b234-906b57032d64)) 47 | (fp_line (start -3 3) (end -3 3) (layer "F.Fab") (width 0.1) (tstamp b03187fb-8c66-4776-a6bf-8a73754b2cb0)) 48 | (pad "1" thru_hole circle (at 0 0) (size 1.95 1.95) (drill 1.3) (layers *.Cu *.Mask) (tstamp b0b4cb63-5d0f-4815-9c3e-d5144ee9c78b)) 49 | (pad "2" thru_hole circle (at 5 5) (size 1.95 1.95) (drill 1.3) (layers *.Cu *.Mask) (tstamp e647607e-ded1-4f33-b712-86a0ceb8d531)) 50 | (pad "5" thru_hole circle (at 5 -5) (size 1.95 1.95) (drill 1.3) (layers *.Cu *.Mask) (tstamp 61c66adf-15a1-4d28-9fdd-93245e3f1702)) 51 | (pad "MH1" thru_hole circle (at 0 -5) (size 2.4 2.4) (drill 1.6) (layers *.Cu *.Mask) (tstamp 68ce752b-91c4-47e8-96fc-2e641d7e7882)) 52 | (pad "MH2" thru_hole circle (at 0 5) (size 2.4 2.4) (drill 1.6) (layers *.Cu *.Mask) (tstamp c7b7feec-4432-4b6b-ad2d-c3dac8648c3e)) 53 | (pad "MH3" thru_hole circle (at 5 0) (size 2.4 2.4) (drill 1.6) (layers *.Cu *.Mask) (tstamp b4c16375-e478-4320-8411-f56d7ea2b204)) 54 | ) 55 | -------------------------------------------------------------------------------- /ice40HX1K/BasicISA8.pretty/TOTX1350F.kicad_mod: -------------------------------------------------------------------------------- 1 | (module "TOTX1350F" (layer F.Cu) 2 | (descr "TOTX1350(F)-2") 3 | (tags "Capacitor") 4 | (fp_text reference C** (at -2.540 -3.625) (layer F.SilkS) 5 | (effects (font (size 1.27 1.27) (thickness 0.254))) 6 | ) 7 | (fp_text user %R (at -2.540 -3.625) (layer F.Fab) 8 | (effects (font (size 1.27 1.27) (thickness 0.254))) 9 | ) 10 | (fp_text value "TOTX1350F" (at -2.540 -3.625) (layer F.SilkS) hide 11 | (effects (font (size 1.27 1.27) (thickness 0.254))) 12 | ) 13 | (fp_line (start -9.04 -10.8) (end 3.96 -10.8) (layer F.Fab) (width 0.2)) 14 | (fp_line (start 3.96 -10.8) (end 3.96 2.7) (layer F.Fab) (width 0.2)) 15 | (fp_line (start 3.96 2.7) (end -9.04 2.7) (layer F.Fab) (width 0.2)) 16 | (fp_line (start -9.04 2.7) (end -9.04 -10.8) (layer F.Fab) (width 0.2)) 17 | (fp_line (start -9.04 -10.8) (end 3.96 -10.8) (layer F.SilkS) (width 0.1)) 18 | (fp_line (start 3.96 -10.8) (end 3.96 2.7) (layer F.SilkS) (width 0.1)) 19 | (fp_line (start 3.96 2.7) (end -9.04 2.7) (layer F.SilkS) (width 0.1)) 20 | (fp_line (start -9.04 2.7) (end -9.04 -10.8) (layer F.SilkS) (width 0.1)) 21 | (fp_line (start -10.04 -11.8) (end 4.96 -11.8) (layer F.CrtYd) (width 0.1)) 22 | (fp_line (start 4.96 -11.8) (end 4.96 4.55) (layer F.CrtYd) (width 0.1)) 23 | (fp_line (start 4.96 4.55) (end -10.04 4.55) (layer F.CrtYd) (width 0.1)) 24 | (fp_line (start -10.04 4.55) (end -10.04 -11.8) (layer F.CrtYd) (width 0.1)) 25 | (fp_line (start 1 3.5) (end 1 3.5) (layer F.SilkS) (width 0.4)) 26 | (fp_line (start 1.1 3.5) (end 1.1 3.5) (layer F.SilkS) (width 0.4)) 27 | (fp_arc (start 1.05 3.5) (end 1.000 3.5) (angle -180) (layer F.SilkS) (width 0.4)) 28 | (fp_arc (start 1.05 3.5) (end 1.100 3.5) (angle -180) (layer F.SilkS) (width 0.4)) 29 | (pad 1 thru_hole circle (at 0.000 -0) (size 1.524 1.524) (drill 0.98) (layers *.Cu *.Mask)) 30 | (pad 2 thru_hole circle (at -2.540 -0) (size 1.524 1.524) (drill 0.98) (layers *.Cu *.Mask)) 31 | (pad 3 thru_hole circle (at -5.080 -0) (size 1.524 1.524) (drill 0.98) (layers *.Cu *.Mask)) 32 | (pad 4 thru_hole circle (at -7.740 -4.2) (size 1.500 1.500) (drill 1) (layers *.Cu *.Mask)) 33 | (pad 5 thru_hole circle (at 2.660 -4.2) (size 1.500 1.500) (drill 1) (layers *.Cu *.Mask)) 34 | (model TOTX1350_F_.stp 35 | (at (xyz 0 0 0)) 36 | (scale (xyz 1 1 1)) 37 | (rotate (xyz 0 0 0)) 38 | ) 39 | ) 40 | -------------------------------------------------------------------------------- /ice40HX1K/K66X-E15S-N.lib: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.3 2 | #encoding utf-8 3 | #SamacSys ECAD Model K66X-E15S-N 4 | #/2209758/208341/2.49/17/4/Connector 5 | DEF K66X-E15S-N J 0 30 Y Y 1 F N 6 | F0 "J" 750 300 50 H V L CNN 7 | F1 "K66X-E15S-N" 750 200 50 H V L CNN 8 | F2 "K66XE15SN" 750 100 50 H I L CNN 9 | F3 "https://componentsearchengine.com/Datasheets/1/K66X-E15S-N.pdf" 750 0 50 H I L CNN 10 | F4 "D-Sub High Density Connectors HD15 F/M GR BRKT" 750 -100 50 H I L CNN "Description" 11 | F5 "12.8" 750 -200 50 H I L CNN "Height" 12 | F6 "806-K66X-E15S-N" 750 -300 50 H I L CNN "Mouser Part Number" 13 | F7 "https://www.mouser.com/Search/Refine.aspx?Keyword=806-K66X-E15S-N" 750 -400 50 H I L CNN "Mouser Price/Stock" 14 | F8 "Kycon" 750 -500 50 H I L CNN "Manufacturer_Name" 15 | F9 "K66X-E15S-N" 750 -600 50 H I L CNN "Manufacturer_Part_Number" 16 | DRAW 17 | X 1 1 0 0 200 R 50 50 0 0 P 18 | X 2 2 0 -100 200 R 50 50 0 0 P 19 | X 3 3 0 -200 200 R 50 50 0 0 P 20 | X 4 4 0 -300 200 R 50 50 0 0 P 21 | X 5 5 0 -400 200 R 50 50 0 0 P 22 | X 6 6 0 -500 200 R 50 50 0 0 P 23 | X 7 7 0 -600 200 R 50 50 0 0 P 24 | X 8 8 0 -700 200 R 50 50 0 0 P 25 | X 9 9 0 -800 200 R 50 50 0 0 P 26 | X 10 10 900 0 200 L 50 50 0 0 P 27 | X 11 11 900 -100 200 L 50 50 0 0 P 28 | X 12 12 900 -200 200 L 50 50 0 0 P 29 | X 13 13 900 -300 200 L 50 50 0 0 P 30 | X 14 14 900 -400 200 L 50 50 0 0 P 31 | X 15 15 900 -500 200 L 50 50 0 0 P 32 | X MH1 MH1 900 -600 200 L 50 50 0 0 P 33 | X MH2 MH2 900 -700 200 L 50 50 0 0 P 34 | P 5 0 1 6 200 100 700 100 700 -900 200 -900 200 100 N 35 | ENDDRAW 36 | ENDDEF 37 | # 38 | #End Library 39 | -------------------------------------------------------------------------------- /ice40HX1K/SS-53000-001.lib: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.3 2 | #encoding utf-8 3 | #SamacSys ECAD Model SS-53000-001 4 | #/4684166/208341/2.49/23/4/Connector 5 | DEF SS-53000-001 J 0 30 Y Y 1 F N 6 | F0 "J" 850 300 50 H V L CNN 7 | F1 "SS-53000-001" 850 200 50 H V L CNN 8 | F2 "SS53000001" 850 100 50 H I L CNN 9 | F3 "https://componentsearchengine.com/Datasheets/1/SS-53000-001.pdf" 850 0 50 H I L CNN 10 | F4 "HDMI, Displayport & DVI Connectors HDMI RA W/Out Flange" 850 -100 50 H I L CNN "Description" 11 | F5 "6.18" 850 -200 50 H I L CNN "Height" 12 | F6 "530-SS-53000-001" 850 -300 50 H I L CNN "Mouser Part Number" 13 | F7 "https://www.mouser.co.uk/ProductDetail/Stewart-Connector-Bel/SS-53000-001?qs=BJlw7L4Cy79s8HuVQy18%252BQ%3D%3D" 850 -400 50 H I L CNN "Mouser Price/Stock" 14 | F8 "BelFuse" 850 -500 50 H I L CNN "Manufacturer_Name" 15 | F9 "SS-53000-001" 850 -600 50 H I L CNN "Manufacturer_Part_Number" 16 | DRAW 17 | X 1 1 0 0 200 R 50 50 0 0 P 18 | X 2 2 0 -100 200 R 50 50 0 0 P 19 | X 3 3 0 -200 200 R 50 50 0 0 P 20 | X 4 4 0 -300 200 R 50 50 0 0 P 21 | X 5 5 0 -400 200 R 50 50 0 0 P 22 | X 6 6 0 -500 200 R 50 50 0 0 P 23 | X 7 7 0 -600 200 R 50 50 0 0 P 24 | X 8 8 0 -700 200 R 50 50 0 0 P 25 | X 9 9 0 -800 200 R 50 50 0 0 P 26 | X 10 10 0 -900 200 R 50 50 0 0 P 27 | X 11 11 0 -1000 200 R 50 50 0 0 P 28 | X 12 12 0 -1100 200 R 50 50 0 0 P 29 | X 13 13 1000 0 200 L 50 50 0 0 P 30 | X 14 14 1000 -100 200 L 50 50 0 0 P 31 | X 15 15 1000 -200 200 L 50 50 0 0 P 32 | X 16 16 1000 -300 200 L 50 50 0 0 P 33 | X 17 17 1000 -400 200 L 50 50 0 0 P 34 | X 18 18 1000 -500 200 L 50 50 0 0 P 35 | X 19 19 1000 -600 200 L 50 50 0 0 P 36 | X MH1 MH1 1000 -700 200 L 50 50 0 0 P 37 | X MH2 MH2 1000 -800 200 L 50 50 0 0 P 38 | X MH3 MH3 1000 -900 200 L 50 50 0 0 P 39 | X MH4 MH4 1000 -1000 200 L 50 50 0 0 P 40 | P 5 0 1 6 200 100 800 100 800 -1200 200 -1200 200 100 N 41 | ENDDRAW 42 | ENDDEF 43 | # 44 | #End Library 45 | -------------------------------------------------------------------------------- /ice40HX1K/STX-3100-3N.lib: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.3 2 | #encoding utf-8 3 | #SamacSys ECAD Model STX-3100-3N 4 | #/2011245/208341/2.49/6/3/Connector 5 | DEF STX-3100-3N J 0 30 Y Y 1 F N 6 | F0 "J" 850 300 50 H V L CNN 7 | F1 "STX-3100-3N" 850 200 50 H V L CNN 8 | F2 "STX31003N" 850 100 50 H I L CNN 9 | F3 "http://www.kycon.com/Pub_Eng_Draw/STX-3100-3N.pdf" 850 0 50 H I L CNN 10 | F4 "Phone Connectors 3.5mm PCB STEREO BLK 3P" 850 -100 50 H I L CNN "Description" 11 | F5 "10.3" 850 -200 50 H I L CNN "Height" 12 | F6 "806-STX-3100-3N" 850 -300 50 H I L CNN "Mouser Part Number" 13 | F7 "https://www.mouser.co.uk/ProductDetail/Kycon/STX-3100-3N?qs=ENRS9yyADm7%252BkWfRrnS%2FGg%3D%3D" 850 -400 50 H I L CNN "Mouser Price/Stock" 14 | F8 "Kycon" 850 -500 50 H I L CNN "Manufacturer_Name" 15 | F9 "STX-3100-3N" 850 -600 50 H I L CNN "Manufacturer_Part_Number" 16 | DRAW 17 | X 1 1 0 -100 200 R 50 50 0 0 P 18 | X 2 2 1000 -200 200 L 50 50 0 0 P 19 | X 5 5 1000 0 200 L 50 50 0 0 P 20 | X MH1 MH1 0 0 200 R 50 50 0 0 P 21 | X MH2 MH2 0 -200 200 R 50 50 0 0 P 22 | X MH3 MH3 1000 -100 200 L 50 50 0 0 P 23 | P 5 0 1 6 200 100 800 100 800 -300 200 -300 200 100 N 24 | ENDDRAW 25 | ENDDEF 26 | # 27 | #End Library 28 | -------------------------------------------------------------------------------- /ice40HX1K/TOTX1350_F_.lib: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.3 2 | #encoding utf-8 3 | #SamacSys ECAD Model TOTX1350_F_ 4 | #/321577/208341/2.49/5/4/Capacitor 5 | DEF TOTX1350_F_ C 0 30 Y Y 1 F N 6 | F0 "C" 1150 300 50 H V L CNN 7 | F1 "TOTX1350_F_" 1150 200 50 H V L CNN 8 | F2 "TOTX1350F" 1150 100 50 H I L CNN 9 | F3 "https://toshiba.semicon-storage.com/info/docget.jsp?did=14728&prodName=TOTX1350(F)" 1150 0 50 H I L CNN 10 | F4 "Fiber Optic Transmitters, Receivers, Transceivers TOSLINK General Purpose Modules" 1150 -100 50 H I L CNN "Description" 11 | F5 "8.8" 1150 -200 50 H I L CNN "Height" 12 | F6 "757-TOTX1350F" 1150 -300 50 H I L CNN "Mouser Part Number" 13 | F7 "https://www.mouser.co.uk/ProductDetail/Toshiba/TOTX1350F?qs=vPP9GyyTAo307LQnxNQJcg%3D%3D" 1150 -400 50 H I L CNN "Mouser Price/Stock" 14 | F8 "Toshiba" 1150 -500 50 H I L CNN "Manufacturer_Name" 15 | F9 "TOTX1350(F)" 1150 -600 50 H I L CNN "Manufacturer_Part_Number" 16 | DRAW 17 | X NC_1 1 0 -200 200 R 50 50 0 0 P 18 | X CATHODE 2 0 -100 200 R 50 50 0 0 P 19 | X ANODE 3 0 0 200 R 50 50 0 0 P 20 | X NC_2 4 1300 0 200 L 50 50 0 0 P 21 | X NC_3 5 1300 -100 200 L 50 50 0 0 P 22 | P 5 0 1 6 200 100 1100 100 1100 -300 200 -300 200 100 N 23 | ENDDRAW 24 | ENDDEF 25 | # 26 | #End Library 27 | -------------------------------------------------------------------------------- /ice40HX1K/fp-lib-table: -------------------------------------------------------------------------------- 1 | (fp_lib_table 2 | (lib (name "BasicISA8")(type "KiCad")(uri "${KIPRJMOD}/BasicISA8.pretty")(options "")(descr "")) 3 | ) 4 | -------------------------------------------------------------------------------- /ice40HX1K/gerbers/minifp-B_Mask.gbr: -------------------------------------------------------------------------------- 1 | %TF.GenerationSoftware,KiCad,Pcbnew,(6.0.5)*% 2 | %TF.CreationDate,2023-02-09T13:46:48+02:00*% 3 | %TF.ProjectId,minifp,6d696e69-6670-42e6-9b69-6361645f7063,rev?*% 4 | %TF.SameCoordinates,Original*% 5 | %TF.FileFunction,Soldermask,Bot*% 6 | %TF.FilePolarity,Negative*% 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (6.0.5)) date 2023-02-09 13:46:48* 10 | %MOMM*% 11 | %LPD*% 12 | G01* 13 | G04 APERTURE LIST* 14 | G04 Aperture macros list* 15 | %AMRoundRect* 16 | 0 Rectangle with rounded corners* 17 | 0 $1 Rounding radius* 18 | 0 $2 $3 $4 $5 $6 $7 $8 $9 X,Y pos of 4 corners* 19 | 0 Add a 4 corners polygon primitive as box body* 20 | 4,1,4,$2,$3,$4,$5,$6,$7,$8,$9,$2,$3,0* 21 | 0 Add four circle primitives for the rounded corners* 22 | 1,1,$1+$1,$2,$3* 23 | 1,1,$1+$1,$4,$5* 24 | 1,1,$1+$1,$6,$7* 25 | 1,1,$1+$1,$8,$9* 26 | 0 Add four rect primitives between the rounded corners* 27 | 20,1,$1+$1,$2,$3,$4,$5,0* 28 | 20,1,$1+$1,$4,$5,$6,$7,0* 29 | 20,1,$1+$1,$6,$7,$8,$9,0* 30 | 20,1,$1+$1,$8,$9,$2,$3,0*% 31 | G04 Aperture macros list end* 32 | %ADD10C,1.650000*% 33 | %ADD11C,4.575000*% 34 | %ADD12C,1.950000*% 35 | %ADD13C,2.400000*% 36 | %ADD14R,1.700000X1.700000*% 37 | %ADD15O,1.700000X1.700000*% 38 | %ADD16R,1.778000X7.620000*% 39 | %ADD17C,4.064000*% 40 | %ADD18RoundRect,0.225000X-0.250000X0.225000X-0.250000X-0.225000X0.250000X-0.225000X0.250000X0.225000X0*% 41 | %ADD19RoundRect,0.225000X-0.335876X-0.017678X-0.017678X-0.335876X0.335876X0.017678X0.017678X0.335876X0*% 42 | %ADD20RoundRect,0.225000X0.225000X0.250000X-0.225000X0.250000X-0.225000X-0.250000X0.225000X-0.250000X0*% 43 | G04 APERTURE END LIST* 44 | D10* 45 | %TO.C,J401*% 46 | X199000000Y-102000000D03* 47 | X199000000Y-104290000D03* 48 | X199000000Y-106580000D03* 49 | X199000000Y-108870000D03* 50 | X199000000Y-111160000D03* 51 | X201540000Y-100855000D03* 52 | X201540000Y-103145000D03* 53 | X201540000Y-105435000D03* 54 | X201540000Y-107725000D03* 55 | X201540000Y-110015000D03* 56 | X204080000Y-102000000D03* 57 | X204080000Y-104290000D03* 58 | X204080000Y-106580000D03* 59 | X204080000Y-108870000D03* 60 | X204080000Y-111160000D03* 61 | D11* 62 | X201540000Y-93512000D03* 63 | X201540000Y-118502000D03* 64 | %TD*% 65 | D12* 66 | %TO.C,J123*% 67 | X210000000Y-131200000D03* 68 | X205000000Y-126200000D03* 69 | X205000000Y-136200000D03* 70 | D13* 71 | X210000000Y-136200000D03* 72 | X210000000Y-126200000D03* 73 | X205000000Y-131200000D03* 74 | %TD*% 75 | D14* 76 | %TO.C,J301*% 77 | X195900000Y-133525000D03* 78 | D15* 79 | X195900000Y-130985000D03* 80 | X195900000Y-128445000D03* 81 | %TD*% 82 | D16* 83 | %TO.C,J1*% 84 | X111900000Y-150000000D03* 85 | X114440000Y-150000000D03* 86 | X116980000Y-150000000D03* 87 | X119520000Y-150000000D03* 88 | X122060000Y-150000000D03* 89 | X124600000Y-150000000D03* 90 | X127140000Y-150000000D03* 91 | X129680000Y-150000000D03* 92 | X132220000Y-150000000D03* 93 | X134760000Y-150000000D03* 94 | X137300000Y-150000000D03* 95 | X139840000Y-150000000D03* 96 | X142380000Y-150000000D03* 97 | X144920000Y-150000000D03* 98 | X147460000Y-150000000D03* 99 | X150000000Y-150000000D03* 100 | X152540000Y-150000000D03* 101 | X155080000Y-150000000D03* 102 | X157620000Y-150000000D03* 103 | X160160000Y-150000000D03* 104 | X162700000Y-150000000D03* 105 | X165240000Y-150000000D03* 106 | X167780000Y-150000000D03* 107 | X170320000Y-150000000D03* 108 | X172860000Y-150000000D03* 109 | X175400000Y-150000000D03* 110 | X177940000Y-150000000D03* 111 | X180480000Y-150000000D03* 112 | X183020000Y-150000000D03* 113 | X185560000Y-150000000D03* 114 | D17* 115 | X209690000Y-143332500D03* 116 | D16* 117 | X188100000Y-150000000D03* 118 | D17* 119 | X209690000Y-86817500D03* 120 | %TD*% 121 | D14* 122 | %TO.C,J701*% 123 | X125000000Y-98442800D03* 124 | D15* 125 | X122460000Y-98442800D03* 126 | %TD*% 127 | D14* 128 | %TO.C,J702*% 129 | X115000000Y-106000000D03* 130 | D15* 131 | X115000000Y-103460000D03* 132 | X115000000Y-100920000D03* 133 | X115000000Y-98380000D03* 134 | X115000000Y-95840000D03* 135 | %TD*% 136 | D14* 137 | %TO.C,J4*% 138 | X162000000Y-87000000D03* 139 | D15* 140 | X162000000Y-89540000D03* 141 | X159460000Y-87000000D03* 142 | X159460000Y-89540000D03* 143 | X156920000Y-87000000D03* 144 | X156920000Y-89540000D03* 145 | X154380000Y-87000000D03* 146 | X154380000Y-89540000D03* 147 | X151840000Y-87000000D03* 148 | X151840000Y-89540000D03* 149 | X149300000Y-87000000D03* 150 | X149300000Y-89540000D03* 151 | X146760000Y-87000000D03* 152 | X146760000Y-89540000D03* 153 | X144220000Y-87000000D03* 154 | X144220000Y-89540000D03* 155 | X141680000Y-87000000D03* 156 | X141680000Y-89540000D03* 157 | X139140000Y-87000000D03* 158 | X139140000Y-89540000D03* 159 | X136600000Y-87000000D03* 160 | X136600000Y-89540000D03* 161 | X134060000Y-87000000D03* 162 | X134060000Y-89540000D03* 163 | X131520000Y-87000000D03* 164 | X131520000Y-89540000D03* 165 | X128980000Y-87000000D03* 166 | X128980000Y-89540000D03* 167 | X126440000Y-87000000D03* 168 | X126440000Y-89540000D03* 169 | X123900000Y-87000000D03* 170 | X123900000Y-89540000D03* 171 | X121360000Y-87000000D03* 172 | X121360000Y-89540000D03* 173 | X118820000Y-87000000D03* 174 | X118820000Y-89540000D03* 175 | X116280000Y-87000000D03* 176 | X116280000Y-89540000D03* 177 | X113740000Y-87000000D03* 178 | X113740000Y-89540000D03* 179 | %TD*% 180 | D18* 181 | %TO.C,C901*% 182 | X163300000Y-118475000D03* 183 | X163300000Y-116925000D03* 184 | %TD*% 185 | D19* 186 | %TO.C,C904*% 187 | X170651992Y-105651992D03* 188 | X171748008Y-106748008D03* 189 | %TD*% 190 | %TO.C,C903*% 191 | X159751992Y-104551992D03* 192 | X160848008Y-105648008D03* 193 | %TD*% 194 | D20* 195 | %TO.C,C902*% 196 | X162575000Y-107800000D03* 197 | X161025000Y-107800000D03* 198 | %TD*% 199 | M02* 200 | -------------------------------------------------------------------------------- /ice40HX1K/gerbers/minifp-B_Paste.gbr: -------------------------------------------------------------------------------- 1 | %TF.GenerationSoftware,KiCad,Pcbnew,(6.0.5)*% 2 | %TF.CreationDate,2023-02-09T13:46:48+02:00*% 3 | %TF.ProjectId,minifp,6d696e69-6670-42e6-9b69-6361645f7063,rev?*% 4 | %TF.SameCoordinates,Original*% 5 | %TF.FileFunction,Paste,Bot*% 6 | %TF.FilePolarity,Positive*% 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (6.0.5)) date 2023-02-09 13:46:48* 10 | %MOMM*% 11 | %LPD*% 12 | G01* 13 | G04 APERTURE LIST* 14 | G04 Aperture macros list* 15 | %AMRoundRect* 16 | 0 Rectangle with rounded corners* 17 | 0 $1 Rounding radius* 18 | 0 $2 $3 $4 $5 $6 $7 $8 $9 X,Y pos of 4 corners* 19 | 0 Add a 4 corners polygon primitive as box body* 20 | 4,1,4,$2,$3,$4,$5,$6,$7,$8,$9,$2,$3,0* 21 | 0 Add four circle primitives for the rounded corners* 22 | 1,1,$1+$1,$2,$3* 23 | 1,1,$1+$1,$4,$5* 24 | 1,1,$1+$1,$6,$7* 25 | 1,1,$1+$1,$8,$9* 26 | 0 Add four rect primitives between the rounded corners* 27 | 20,1,$1+$1,$2,$3,$4,$5,0* 28 | 20,1,$1+$1,$4,$5,$6,$7,0* 29 | 20,1,$1+$1,$6,$7,$8,$9,0* 30 | 20,1,$1+$1,$8,$9,$2,$3,0*% 31 | G04 Aperture macros list end* 32 | %ADD10RoundRect,0.225000X-0.250000X0.225000X-0.250000X-0.225000X0.250000X-0.225000X0.250000X0.225000X0*% 33 | %ADD11RoundRect,0.225000X-0.335876X-0.017678X-0.017678X-0.335876X0.335876X0.017678X0.017678X0.335876X0*% 34 | %ADD12RoundRect,0.225000X0.225000X0.250000X-0.225000X0.250000X-0.225000X-0.250000X0.225000X-0.250000X0*% 35 | G04 APERTURE END LIST* 36 | D10* 37 | %TO.C,C901*% 38 | X163300000Y-118475000D03* 39 | X163300000Y-116925000D03* 40 | %TD*% 41 | D11* 42 | %TO.C,C904*% 43 | X170651992Y-105651992D03* 44 | X171748008Y-106748008D03* 45 | %TD*% 46 | %TO.C,C903*% 47 | X159751992Y-104551992D03* 48 | X160848008Y-105648008D03* 49 | %TD*% 50 | D12* 51 | %TO.C,C902*% 52 | X162575000Y-107800000D03* 53 | X161025000Y-107800000D03* 54 | %TD*% 55 | M02* 56 | -------------------------------------------------------------------------------- /ice40HX1K/gerbers/minifp-Edge_Cuts.gbr: -------------------------------------------------------------------------------- 1 | %TF.GenerationSoftware,KiCad,Pcbnew,(6.0.5)*% 2 | %TF.CreationDate,2023-02-09T13:46:48+02:00*% 3 | %TF.ProjectId,minifp,6d696e69-6670-42e6-9b69-6361645f7063,rev?*% 4 | %TF.SameCoordinates,Original*% 5 | %TF.FileFunction,Profile,NP*% 6 | %FSLAX46Y46*% 7 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 8 | G04 Created by KiCad (PCBNEW (6.0.5)) date 2023-02-09 13:46:48* 9 | %MOMM*% 10 | %LPD*% 11 | G01* 12 | G04 APERTURE LIST* 13 | %TA.AperFunction,Profile*% 14 | %ADD10C,0.381000*% 15 | %TD*% 16 | G04 APERTURE END LIST* 17 | D10* 18 | %TO.C,J1*% 19 | X111900000Y-83007500D02* 20 | G75* 21 | G03* 22 | X109360000Y-85547500I1J-2540001D01* 23 | G01* 24 | X109360000Y-153492500D02* 25 | G75* 26 | G03* 27 | X109995000Y-154127500I634999J-1D01* 28 | G01* 29 | X210960000Y-146507500D02* 30 | G75* 31 | G03* 32 | X213500000Y-143967500I0J2540000D01* 33 | G01* 34 | X190005000Y-154127500D02* 35 | G75* 36 | G03* 37 | X190640000Y-153492500I0J635000D01* 38 | G01* 39 | X213500000Y-85547500D02* 40 | G75* 41 | G03* 42 | X210960000Y-83007500I-2540000J0D01* 43 | G01* 44 | X190640000Y-153492500D02* 45 | X190640000Y-146507500D01* 46 | X111900000Y-83007500D02* 47 | X210960000Y-83007500D01* 48 | X210960000Y-146507500D02* 49 | X190640000Y-146507500D01* 50 | X109995000Y-154127500D02* 51 | X190005000Y-154127500D01* 52 | X109360000Y-153492500D02* 53 | X109360000Y-85547500D01* 54 | X213500000Y-143967500D02* 55 | X213500000Y-85547500D01* 56 | %TD*% 57 | M02* 58 | -------------------------------------------------------------------------------- /ice40HX1K/gerbers/minifp-NPTH.drl: -------------------------------------------------------------------------------- 1 | M48 2 | ; DRILL file {KiCad (6.0.5)} date Thu Feb 9 13:46:51 2023 3 | ; FORMAT={-:-/ absolute / inch / decimal} 4 | ; #@! TF.CreationDate,2023-02-09T13:46:51+02:00 5 | ; #@! TF.GenerationSoftware,Kicad,Pcbnew,(6.0.5) 6 | ; #@! TF.FileFunction,NonPlated,1,2,NPTH 7 | FMAT,2 8 | INCH 9 | % 10 | G90 11 | G05 12 | T0 13 | M30 14 | -------------------------------------------------------------------------------- /ice40HX1K/gerbers/minifp-PTH.drl: -------------------------------------------------------------------------------- 1 | M48 2 | ; DRILL file {KiCad (6.0.5)} date Thu Feb 9 13:46:51 2023 3 | ; FORMAT={-:-/ absolute / inch / decimal} 4 | ; #@! TF.CreationDate,2023-02-09T13:46:51+02:00 5 | ; #@! TF.GenerationSoftware,Kicad,Pcbnew,(6.0.5) 6 | ; #@! TF.FileFunction,Plated,1,2,PTH 7 | FMAT,2 8 | INCH 9 | ; #@! TA.AperFunction,Plated,PTH,ViaDrill 10 | T1C0.0157 11 | ; #@! TA.AperFunction,Plated,PTH,ViaDrill 12 | T2C0.0197 13 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 14 | T3C0.0394 15 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 16 | T4C0.0433 17 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 18 | T5C0.0512 19 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 20 | T6C0.0630 21 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 22 | T7C0.1200 23 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 24 | T8C0.1201 25 | % 26 | G90 27 | G05 28 | T1 29 | X4.9055Y-4.3386 30 | X4.934Y-4.4016 31 | X4.9626Y-4.3386 32 | X4.9911Y-4.4016 33 | X5.0394Y-4.1063 34 | X5.0591Y-4.1732 35 | X5.0591Y-4.3012 36 | X5.1772Y-3.965 37 | X5.1772Y-4.124 38 | X5.3346Y-4.1063 39 | X5.3346Y-4.3012 40 | X5.3465Y-4.3976 41 | X5.5433Y-4.2874 42 | X5.6142Y-4.3976 43 | X5.6427Y-4.1427 44 | X5.689Y-4.1535 45 | X5.7283Y-4.1929 46 | X5.7677Y-4.2126 47 | X5.8386Y-4.2559 48 | X5.9921Y-4.5748 49 | X5.9921Y-4.6181 50 | X5.9961Y-4.0197 51 | X5.9961Y-4.063 52 | X6.0118Y-4.5394 53 | X6.0354Y-4.122 54 | X6.0472Y-4.5197 55 | X6.0728Y-4.063 56 | X6.0787Y-4.4961 57 | X6.1024Y-4.4646 58 | X6.1122Y-4.0472 59 | X6.122Y-4.0039 60 | X6.1575Y-4.0236 61 | X6.185Y-4.0542 62 | X6.2608Y-4.1506 63 | X6.3268Y-3.5709 64 | X6.4016Y-4.2795 65 | X6.4094Y-3.7598 66 | X6.4665Y-3.4252 67 | X6.4764Y-4.2323 68 | X6.5157Y-3.815 69 | X6.5354Y-4.2913 70 | X6.5472Y-3.5827 71 | X6.563Y-4.1161 72 | X6.6142Y-4.685 73 | X6.6535Y-4.5472 74 | X6.6732Y-4.685 75 | X6.6791Y-4.1161 76 | X6.6831Y-4.2913 77 | X6.7913Y-3.9724 78 | X6.8425Y-3.8858 79 | X7.9331Y-4.9016 80 | X7.9921Y-4.8425 81 | T2 82 | X4.4291Y-3.8386 83 | X4.4291Y-4.0354 84 | X4.4291Y-4.2323 85 | X4.4291Y-4.4291 86 | X4.4291Y-4.626 87 | X4.4291Y-4.8228 88 | X4.4291Y-5.0197 89 | X4.4291Y-5.2165 90 | X4.6055Y-5.4142 91 | X4.626Y-4.0354 92 | X4.626Y-4.2323 93 | X4.626Y-4.626 94 | X4.626Y-4.8228 95 | X4.626Y-5.0197 96 | X4.626Y-5.2165 97 | X4.8228Y-3.6417 98 | X4.8228Y-3.7402 99 | X4.8228Y-4.0354 100 | X4.8228Y-4.4291 101 | X4.8228Y-4.626 102 | X4.8228Y-4.8228 103 | X4.8228Y-5.0197 104 | X4.9213Y-3.7402 105 | X5.0866Y-4.5709 106 | X5.1772Y-4.3701 107 | X5.2165Y-5.4134 108 | X5.315Y-5.315 109 | X5.315Y-5.5118 110 | X5.3346Y-4.2362 111 | X5.3346Y-4.5669 112 | X5.3346Y-4.626 113 | X5.3346Y-4.685 114 | X5.3937Y-4.626 115 | X5.4134Y-5.2165 116 | X5.4134Y-5.4134 117 | X5.5118Y-5.315 118 | X5.5906Y-4.5669 119 | X5.5906Y-4.9213 120 | X5.5906Y-5.0787 121 | X5.6299Y-3.9173 122 | X5.8268Y-4.5079 123 | X5.8268Y-4.9213 124 | X5.8268Y-5.0787 125 | X5.8819Y-3.9173 126 | X5.9188Y-4.7781 127 | X5.9843Y-4.3287 128 | X6.1417Y-4.3583 129 | X6.2283Y-4.0039 130 | X6.2598Y-4.3701 131 | X6.2598Y-4.4488 132 | X6.2598Y-4.5276 133 | X6.2874Y-4.0276 134 | X6.3209Y-4.6043 135 | X6.3268Y-3.7815 136 | X6.3386Y-4.3701 137 | X6.3386Y-4.4488 138 | X6.3386Y-4.5276 139 | X6.378Y-4.685 140 | X6.4016Y-4.1417 141 | X6.4173Y-4.4488 142 | X6.4173Y-4.5276 143 | X6.4469Y-4.9508 144 | X6.4961Y-4.5276 145 | X6.5157Y-4.0276 146 | X6.5492Y-4.1909 147 | X6.5748Y-3.5252 148 | X6.5787Y-4.6043 149 | X6.6142Y-4.0157 150 | X6.6142Y-4.3701 151 | X6.6437Y-4.9606 152 | X6.6437Y-5.1476 153 | X6.6831Y-4.1909 154 | X6.7028Y-3.4843 155 | X6.7028Y-3.5531 156 | X6.7323Y-3.8976 157 | X6.7717Y-4.7638 158 | X6.7913Y-3.6417 159 | X6.7913Y-3.7106 160 | X6.8307Y-4.4469 161 | X6.8504Y-3.5827 162 | X6.8504Y-4.8425 163 | X6.8898Y-4.4094 164 | X6.9291Y-4.9213 165 | X6.9488Y-4.7047 166 | X6.9606Y-3.7756 167 | X7.0079Y-4.4094 168 | X7.0079Y-5.0 169 | X7.0236Y-4.6299 170 | X7.1575Y-4.9291 171 | X7.1575Y-5.0984 172 | X7.1575Y-5.6457 173 | X7.185Y-3.4449 174 | X7.185Y-3.8386 175 | X7.185Y-4.8228 176 | X7.2835Y-4.9213 177 | X7.3819Y-3.4449 178 | X7.3819Y-3.6417 179 | X7.3819Y-3.8386 180 | X7.3819Y-4.7244 181 | X7.3819Y-5.0197 182 | X7.4803Y-4.7244 183 | X7.4803Y-4.8228 184 | X7.4803Y-5.1181 185 | X7.4803Y-5.315 186 | X7.4803Y-5.5118 187 | X7.5787Y-3.4449 188 | X7.5787Y-3.6417 189 | X7.5787Y-3.8386 190 | X7.5787Y-4.8228 191 | X7.5787Y-4.9213 192 | X7.6772Y-5.5118 193 | X7.7756Y-3.4449 194 | X7.7756Y-3.8386 195 | X7.874Y-5.315 196 | X7.874Y-5.5118 197 | X8.2677Y-3.6417 198 | X8.2677Y-3.8386 199 | X8.2677Y-4.0354 200 | X8.2677Y-4.2323 201 | X8.2677Y-4.4291 202 | X8.2677Y-4.626 203 | T3 204 | X4.478Y-3.4252 205 | X4.478Y-3.5252 206 | X4.5276Y-3.7732 207 | X4.5276Y-3.8732 208 | X4.5276Y-3.9732 209 | X4.5276Y-4.0732 210 | X4.5276Y-4.1732 211 | X4.578Y-3.4252 212 | X4.578Y-3.5252 213 | X4.678Y-3.4252 214 | X4.678Y-3.5252 215 | X4.778Y-3.4252 216 | X4.778Y-3.5252 217 | X4.8213Y-3.8757 218 | X4.878Y-3.4252 219 | X4.878Y-3.5252 220 | X4.9213Y-3.8757 221 | X4.978Y-3.4252 222 | X4.978Y-3.5252 223 | X5.078Y-3.4252 224 | X5.078Y-3.5252 225 | X5.178Y-3.4252 226 | X5.178Y-3.5252 227 | X5.278Y-3.4252 228 | X5.278Y-3.5252 229 | X5.378Y-3.4252 230 | X5.378Y-3.5252 231 | X5.478Y-3.4252 232 | X5.478Y-3.5252 233 | X5.578Y-3.4252 234 | X5.578Y-3.5252 235 | X5.678Y-3.4252 236 | X5.678Y-3.5252 237 | X5.778Y-3.4252 238 | X5.778Y-3.5252 239 | X5.878Y-3.4252 240 | X5.878Y-3.5252 241 | X5.978Y-3.4252 242 | X5.978Y-3.5252 243 | X6.078Y-3.4252 244 | X6.078Y-3.5252 245 | X6.178Y-3.4252 246 | X6.178Y-3.5252 247 | X6.278Y-3.4252 248 | X6.278Y-3.5252 249 | X6.378Y-3.4252 250 | X6.378Y-3.5252 251 | X7.7126Y-5.0569 252 | X7.7126Y-5.1569 253 | X7.7126Y-5.2569 254 | T4 255 | X7.8346Y-4.0157 256 | X7.8346Y-4.1059 257 | X7.8346Y-4.1961 258 | X7.8346Y-4.2862 259 | X7.8346Y-4.3764 260 | X7.9346Y-3.9707 261 | X7.9346Y-4.0608 262 | X7.9346Y-4.151 263 | X7.9346Y-4.2411 264 | X7.9346Y-4.3313 265 | X8.0346Y-4.0157 266 | X8.0346Y-4.1059 267 | X8.0346Y-4.1961 268 | X8.0346Y-4.2862 269 | X8.0346Y-4.3764 270 | T5 271 | X8.0709Y-4.9685 272 | X8.0709Y-5.3622 273 | X8.2677Y-5.1654 274 | T6 275 | X8.0709Y-5.1654 276 | X8.2677Y-4.9685 277 | X8.2677Y-5.3622 278 | T7 279 | X8.2555Y-3.418 280 | X8.2555Y-5.643 281 | T8 282 | X7.9346Y-3.6816 283 | X7.9346Y-4.6654 284 | T0 285 | M30 286 | -------------------------------------------------------------------------------- /ice40HX1K/gerbers/minifp-job.gbrjob: -------------------------------------------------------------------------------- 1 | { 2 | "Header": { 3 | "GenerationSoftware": { 4 | "Vendor": "KiCad", 5 | "Application": "Pcbnew", 6 | "Version": "(6.0.5)" 7 | }, 8 | "CreationDate": "2023-02-09T13:46:48+02:00" 9 | }, 10 | "GeneralSpecs": { 11 | "ProjectId": { 12 | "Name": "minifp", 13 | "GUID": "6d696e69-6670-42e6-9b69-6361645f7063", 14 | "Revision": "rev?" 15 | }, 16 | "Size": { 17 | "X": 104.521, 18 | "Y": 71.501 19 | }, 20 | "LayerNumber": 2, 21 | "BoardThickness": 1.6, 22 | "Finish": "None" 23 | }, 24 | "DesignRules": [ 25 | { 26 | "Layers": "Outer", 27 | "PadToPad": 0.2, 28 | "PadToTrack": 0.2, 29 | "TrackToTrack": 0.2, 30 | "MinLineWidth": 0.25, 31 | "TrackToRegion": 0.508, 32 | "RegionToRegion": 0.508 33 | } 34 | ], 35 | "FilesAttributes": [ 36 | { 37 | "Path": "minifp-F_Cu.gbr", 38 | "FileFunction": "Copper,L1,Top", 39 | "FilePolarity": "Positive" 40 | }, 41 | { 42 | "Path": "minifp-B_Cu.gbr", 43 | "FileFunction": "Copper,L2,Bot", 44 | "FilePolarity": "Positive" 45 | }, 46 | { 47 | "Path": "minifp-F_Paste.gbr", 48 | "FileFunction": "SolderPaste,Top", 49 | "FilePolarity": "Positive" 50 | }, 51 | { 52 | "Path": "minifp-B_Paste.gbr", 53 | "FileFunction": "SolderPaste,Bot", 54 | "FilePolarity": "Positive" 55 | }, 56 | { 57 | "Path": "minifp-F_Silkscreen.gbr", 58 | "FileFunction": "Legend,Top", 59 | "FilePolarity": "Positive" 60 | }, 61 | { 62 | "Path": "minifp-B_Silkscreen.gbr", 63 | "FileFunction": "Legend,Bot", 64 | "FilePolarity": "Positive" 65 | }, 66 | { 67 | "Path": "minifp-F_Mask.gbr", 68 | "FileFunction": "SolderMask,Top", 69 | "FilePolarity": "Negative" 70 | }, 71 | { 72 | "Path": "minifp-B_Mask.gbr", 73 | "FileFunction": "SolderMask,Bot", 74 | "FilePolarity": "Negative" 75 | }, 76 | { 77 | "Path": "minifp-Edge_Cuts.gbr", 78 | "FileFunction": "Profile", 79 | "FilePolarity": "Positive" 80 | } 81 | ], 82 | "MaterialStackup": [ 83 | { 84 | "Type": "Legend", 85 | "Name": "Top Silk Screen" 86 | }, 87 | { 88 | "Type": "SolderPaste", 89 | "Name": "Top Solder Paste" 90 | }, 91 | { 92 | "Type": "SolderMask", 93 | "Thickness": 0.01, 94 | "Name": "Top Solder Mask" 95 | }, 96 | { 97 | "Type": "Copper", 98 | "Thickness": 0.035, 99 | "Name": "F.Cu" 100 | }, 101 | { 102 | "Type": "Dielectric", 103 | "Thickness": 1.51, 104 | "Material": "FR4", 105 | "Name": "F.Cu/B.Cu", 106 | "Notes": "Type: dielectric layer 1 (from F.Cu to B.Cu)" 107 | }, 108 | { 109 | "Type": "Copper", 110 | "Thickness": 0.035, 111 | "Name": "B.Cu" 112 | }, 113 | { 114 | "Type": "SolderMask", 115 | "Thickness": 0.01, 116 | "Name": "Bottom Solder Mask" 117 | }, 118 | { 119 | "Type": "SolderPaste", 120 | "Name": "Bottom Solder Paste" 121 | }, 122 | { 123 | "Type": "Legend", 124 | "Name": "Bottom Silk Screen" 125 | } 126 | ] 127 | } 128 | -------------------------------------------------------------------------------- /ice40HX1K/minifp-B_Mask.gbr: -------------------------------------------------------------------------------- 1 | %TF.GenerationSoftware,KiCad,Pcbnew,(6.0.5)*% 2 | %TF.CreationDate,2023-02-09T13:46:23+02:00*% 3 | %TF.ProjectId,minifp,6d696e69-6670-42e6-9b69-6361645f7063,rev?*% 4 | %TF.SameCoordinates,Original*% 5 | %TF.FileFunction,Soldermask,Bot*% 6 | %TF.FilePolarity,Negative*% 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (6.0.5)) date 2023-02-09 13:46:23* 10 | %MOMM*% 11 | %LPD*% 12 | G01* 13 | G04 APERTURE LIST* 14 | G04 Aperture macros list* 15 | %AMRoundRect* 16 | 0 Rectangle with rounded corners* 17 | 0 $1 Rounding radius* 18 | 0 $2 $3 $4 $5 $6 $7 $8 $9 X,Y pos of 4 corners* 19 | 0 Add a 4 corners polygon primitive as box body* 20 | 4,1,4,$2,$3,$4,$5,$6,$7,$8,$9,$2,$3,0* 21 | 0 Add four circle primitives for the rounded corners* 22 | 1,1,$1+$1,$2,$3* 23 | 1,1,$1+$1,$4,$5* 24 | 1,1,$1+$1,$6,$7* 25 | 1,1,$1+$1,$8,$9* 26 | 0 Add four rect primitives between the rounded corners* 27 | 20,1,$1+$1,$2,$3,$4,$5,0* 28 | 20,1,$1+$1,$4,$5,$6,$7,0* 29 | 20,1,$1+$1,$6,$7,$8,$9,0* 30 | 20,1,$1+$1,$8,$9,$2,$3,0*% 31 | G04 Aperture macros list end* 32 | %ADD10C,1.650000*% 33 | %ADD11C,4.575000*% 34 | %ADD12C,1.950000*% 35 | %ADD13C,2.400000*% 36 | %ADD14R,1.700000X1.700000*% 37 | %ADD15O,1.700000X1.700000*% 38 | %ADD16R,1.778000X7.620000*% 39 | %ADD17C,4.064000*% 40 | %ADD18RoundRect,0.225000X-0.250000X0.225000X-0.250000X-0.225000X0.250000X-0.225000X0.250000X0.225000X0*% 41 | %ADD19RoundRect,0.225000X-0.335876X-0.017678X-0.017678X-0.335876X0.335876X0.017678X0.017678X0.335876X0*% 42 | %ADD20RoundRect,0.225000X0.225000X0.250000X-0.225000X0.250000X-0.225000X-0.250000X0.225000X-0.250000X0*% 43 | G04 APERTURE END LIST* 44 | D10* 45 | %TO.C,J401*% 46 | X199000000Y-102000000D03* 47 | X199000000Y-104290000D03* 48 | X199000000Y-106580000D03* 49 | X199000000Y-108870000D03* 50 | X199000000Y-111160000D03* 51 | X201540000Y-100855000D03* 52 | X201540000Y-103145000D03* 53 | X201540000Y-105435000D03* 54 | X201540000Y-107725000D03* 55 | X201540000Y-110015000D03* 56 | X204080000Y-102000000D03* 57 | X204080000Y-104290000D03* 58 | X204080000Y-106580000D03* 59 | X204080000Y-108870000D03* 60 | X204080000Y-111160000D03* 61 | D11* 62 | X201540000Y-93512000D03* 63 | X201540000Y-118502000D03* 64 | %TD*% 65 | D12* 66 | %TO.C,J123*% 67 | X210000000Y-131200000D03* 68 | X205000000Y-126200000D03* 69 | X205000000Y-136200000D03* 70 | D13* 71 | X210000000Y-136200000D03* 72 | X210000000Y-126200000D03* 73 | X205000000Y-131200000D03* 74 | %TD*% 75 | D14* 76 | %TO.C,J301*% 77 | X195900000Y-133525000D03* 78 | D15* 79 | X195900000Y-130985000D03* 80 | X195900000Y-128445000D03* 81 | %TD*% 82 | D16* 83 | %TO.C,J1*% 84 | X111900000Y-150000000D03* 85 | X114440000Y-150000000D03* 86 | X116980000Y-150000000D03* 87 | X119520000Y-150000000D03* 88 | X122060000Y-150000000D03* 89 | X124600000Y-150000000D03* 90 | X127140000Y-150000000D03* 91 | X129680000Y-150000000D03* 92 | X132220000Y-150000000D03* 93 | X134760000Y-150000000D03* 94 | X137300000Y-150000000D03* 95 | X139840000Y-150000000D03* 96 | X142380000Y-150000000D03* 97 | X144920000Y-150000000D03* 98 | X147460000Y-150000000D03* 99 | X150000000Y-150000000D03* 100 | X152540000Y-150000000D03* 101 | X155080000Y-150000000D03* 102 | X157620000Y-150000000D03* 103 | X160160000Y-150000000D03* 104 | X162700000Y-150000000D03* 105 | X165240000Y-150000000D03* 106 | X167780000Y-150000000D03* 107 | X170320000Y-150000000D03* 108 | X172860000Y-150000000D03* 109 | X175400000Y-150000000D03* 110 | X177940000Y-150000000D03* 111 | X180480000Y-150000000D03* 112 | X183020000Y-150000000D03* 113 | X185560000Y-150000000D03* 114 | D17* 115 | X209690000Y-143332500D03* 116 | D16* 117 | X188100000Y-150000000D03* 118 | D17* 119 | X209690000Y-86817500D03* 120 | %TD*% 121 | D14* 122 | %TO.C,J701*% 123 | X125000000Y-98442800D03* 124 | D15* 125 | X122460000Y-98442800D03* 126 | %TD*% 127 | D14* 128 | %TO.C,J702*% 129 | X115000000Y-106000000D03* 130 | D15* 131 | X115000000Y-103460000D03* 132 | X115000000Y-100920000D03* 133 | X115000000Y-98380000D03* 134 | X115000000Y-95840000D03* 135 | %TD*% 136 | D14* 137 | %TO.C,J4*% 138 | X162000000Y-87000000D03* 139 | D15* 140 | X162000000Y-89540000D03* 141 | X159460000Y-87000000D03* 142 | X159460000Y-89540000D03* 143 | X156920000Y-87000000D03* 144 | X156920000Y-89540000D03* 145 | X154380000Y-87000000D03* 146 | X154380000Y-89540000D03* 147 | X151840000Y-87000000D03* 148 | X151840000Y-89540000D03* 149 | X149300000Y-87000000D03* 150 | X149300000Y-89540000D03* 151 | X146760000Y-87000000D03* 152 | X146760000Y-89540000D03* 153 | X144220000Y-87000000D03* 154 | X144220000Y-89540000D03* 155 | X141680000Y-87000000D03* 156 | X141680000Y-89540000D03* 157 | X139140000Y-87000000D03* 158 | X139140000Y-89540000D03* 159 | X136600000Y-87000000D03* 160 | X136600000Y-89540000D03* 161 | X134060000Y-87000000D03* 162 | X134060000Y-89540000D03* 163 | X131520000Y-87000000D03* 164 | X131520000Y-89540000D03* 165 | X128980000Y-87000000D03* 166 | X128980000Y-89540000D03* 167 | X126440000Y-87000000D03* 168 | X126440000Y-89540000D03* 169 | X123900000Y-87000000D03* 170 | X123900000Y-89540000D03* 171 | X121360000Y-87000000D03* 172 | X121360000Y-89540000D03* 173 | X118820000Y-87000000D03* 174 | X118820000Y-89540000D03* 175 | X116280000Y-87000000D03* 176 | X116280000Y-89540000D03* 177 | X113740000Y-87000000D03* 178 | X113740000Y-89540000D03* 179 | %TD*% 180 | D18* 181 | %TO.C,C901*% 182 | X163300000Y-118475000D03* 183 | X163300000Y-116925000D03* 184 | %TD*% 185 | D19* 186 | %TO.C,C904*% 187 | X170651992Y-105651992D03* 188 | X171748008Y-106748008D03* 189 | %TD*% 190 | %TO.C,C903*% 191 | X159751992Y-104551992D03* 192 | X160848008Y-105648008D03* 193 | %TD*% 194 | D20* 195 | %TO.C,C902*% 196 | X162575000Y-107800000D03* 197 | X161025000Y-107800000D03* 198 | %TD*% 199 | M02* 200 | -------------------------------------------------------------------------------- /ice40HX1K/minifp-B_Paste.gbr: -------------------------------------------------------------------------------- 1 | %TF.GenerationSoftware,KiCad,Pcbnew,(6.0.5)*% 2 | %TF.CreationDate,2023-02-09T13:46:23+02:00*% 3 | %TF.ProjectId,minifp,6d696e69-6670-42e6-9b69-6361645f7063,rev?*% 4 | %TF.SameCoordinates,Original*% 5 | %TF.FileFunction,Paste,Bot*% 6 | %TF.FilePolarity,Positive*% 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (6.0.5)) date 2023-02-09 13:46:23* 10 | %MOMM*% 11 | %LPD*% 12 | G01* 13 | G04 APERTURE LIST* 14 | G04 Aperture macros list* 15 | %AMRoundRect* 16 | 0 Rectangle with rounded corners* 17 | 0 $1 Rounding radius* 18 | 0 $2 $3 $4 $5 $6 $7 $8 $9 X,Y pos of 4 corners* 19 | 0 Add a 4 corners polygon primitive as box body* 20 | 4,1,4,$2,$3,$4,$5,$6,$7,$8,$9,$2,$3,0* 21 | 0 Add four circle primitives for the rounded corners* 22 | 1,1,$1+$1,$2,$3* 23 | 1,1,$1+$1,$4,$5* 24 | 1,1,$1+$1,$6,$7* 25 | 1,1,$1+$1,$8,$9* 26 | 0 Add four rect primitives between the rounded corners* 27 | 20,1,$1+$1,$2,$3,$4,$5,0* 28 | 20,1,$1+$1,$4,$5,$6,$7,0* 29 | 20,1,$1+$1,$6,$7,$8,$9,0* 30 | 20,1,$1+$1,$8,$9,$2,$3,0*% 31 | G04 Aperture macros list end* 32 | %ADD10RoundRect,0.225000X-0.250000X0.225000X-0.250000X-0.225000X0.250000X-0.225000X0.250000X0.225000X0*% 33 | %ADD11RoundRect,0.225000X-0.335876X-0.017678X-0.017678X-0.335876X0.335876X0.017678X0.017678X0.335876X0*% 34 | %ADD12RoundRect,0.225000X0.225000X0.250000X-0.225000X0.250000X-0.225000X-0.250000X0.225000X-0.250000X0*% 35 | G04 APERTURE END LIST* 36 | D10* 37 | %TO.C,C901*% 38 | X163300000Y-118475000D03* 39 | X163300000Y-116925000D03* 40 | %TD*% 41 | D11* 42 | %TO.C,C904*% 43 | X170651992Y-105651992D03* 44 | X171748008Y-106748008D03* 45 | %TD*% 46 | %TO.C,C903*% 47 | X159751992Y-104551992D03* 48 | X160848008Y-105648008D03* 49 | %TD*% 50 | D12* 51 | %TO.C,C902*% 52 | X162575000Y-107800000D03* 53 | X161025000Y-107800000D03* 54 | %TD*% 55 | M02* 56 | -------------------------------------------------------------------------------- /ice40HX1K/minifp-Edge_Cuts.gbr: -------------------------------------------------------------------------------- 1 | %TF.GenerationSoftware,KiCad,Pcbnew,(6.0.5)*% 2 | %TF.CreationDate,2023-02-09T13:46:23+02:00*% 3 | %TF.ProjectId,minifp,6d696e69-6670-42e6-9b69-6361645f7063,rev?*% 4 | %TF.SameCoordinates,Original*% 5 | %TF.FileFunction,Profile,NP*% 6 | %FSLAX46Y46*% 7 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 8 | G04 Created by KiCad (PCBNEW (6.0.5)) date 2023-02-09 13:46:23* 9 | %MOMM*% 10 | %LPD*% 11 | G01* 12 | G04 APERTURE LIST* 13 | %TA.AperFunction,Profile*% 14 | %ADD10C,0.381000*% 15 | %TD*% 16 | G04 APERTURE END LIST* 17 | D10* 18 | %TO.C,J1*% 19 | X111900000Y-83007500D02* 20 | G75* 21 | G03* 22 | X109360000Y-85547500I1J-2540001D01* 23 | G01* 24 | X109360000Y-153492500D02* 25 | G75* 26 | G03* 27 | X109995000Y-154127500I634999J-1D01* 28 | G01* 29 | X210960000Y-146507500D02* 30 | G75* 31 | G03* 32 | X213500000Y-143967500I0J2540000D01* 33 | G01* 34 | X190005000Y-154127500D02* 35 | G75* 36 | G03* 37 | X190640000Y-153492500I0J635000D01* 38 | G01* 39 | X213500000Y-85547500D02* 40 | G75* 41 | G03* 42 | X210960000Y-83007500I-2540000J0D01* 43 | G01* 44 | X190640000Y-153492500D02* 45 | X190640000Y-146507500D01* 46 | X111900000Y-83007500D02* 47 | X210960000Y-83007500D01* 48 | X210960000Y-146507500D02* 49 | X190640000Y-146507500D01* 50 | X109995000Y-154127500D02* 51 | X190005000Y-154127500D01* 52 | X109360000Y-153492500D02* 53 | X109360000Y-85547500D01* 54 | X213500000Y-143967500D02* 55 | X213500000Y-85547500D01* 56 | %TD*% 57 | M02* 58 | -------------------------------------------------------------------------------- /ice40HX1K/minifp-NPTH.drl: -------------------------------------------------------------------------------- 1 | M48 2 | ; DRILL file {KiCad (6.0.5)} date Thu Feb 9 13:46:29 2023 3 | ; FORMAT={-:-/ absolute / inch / decimal} 4 | ; #@! TF.CreationDate,2023-02-09T13:46:29+02:00 5 | ; #@! TF.GenerationSoftware,Kicad,Pcbnew,(6.0.5) 6 | ; #@! TF.FileFunction,NonPlated,1,2,NPTH 7 | FMAT,2 8 | INCH 9 | % 10 | G90 11 | G05 12 | T0 13 | M30 14 | -------------------------------------------------------------------------------- /ice40HX1K/minifp-PTH.drl: -------------------------------------------------------------------------------- 1 | M48 2 | ; DRILL file {KiCad (6.0.5)} date Thu Feb 9 13:46:29 2023 3 | ; FORMAT={-:-/ absolute / inch / decimal} 4 | ; #@! TF.CreationDate,2023-02-09T13:46:29+02:00 5 | ; #@! TF.GenerationSoftware,Kicad,Pcbnew,(6.0.5) 6 | ; #@! TF.FileFunction,Plated,1,2,PTH 7 | FMAT,2 8 | INCH 9 | ; #@! TA.AperFunction,Plated,PTH,ViaDrill 10 | T1C0.0157 11 | ; #@! TA.AperFunction,Plated,PTH,ViaDrill 12 | T2C0.0197 13 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 14 | T3C0.0394 15 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 16 | T4C0.0433 17 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 18 | T5C0.0512 19 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 20 | T6C0.0630 21 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 22 | T7C0.1200 23 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 24 | T8C0.1201 25 | % 26 | G90 27 | G05 28 | T1 29 | X4.9055Y-4.3386 30 | X4.934Y-4.4016 31 | X4.9626Y-4.3386 32 | X4.9911Y-4.4016 33 | X5.0394Y-4.1063 34 | X5.0591Y-4.1732 35 | X5.0591Y-4.3012 36 | X5.1772Y-3.965 37 | X5.1772Y-4.124 38 | X5.3346Y-4.1063 39 | X5.3346Y-4.3012 40 | X5.3465Y-4.3976 41 | X5.5433Y-4.2874 42 | X5.6142Y-4.3976 43 | X5.6427Y-4.1427 44 | X5.689Y-4.1535 45 | X5.7283Y-4.1929 46 | X5.7677Y-4.2126 47 | X5.8386Y-4.2559 48 | X5.9921Y-4.5748 49 | X5.9921Y-4.6181 50 | X5.9961Y-4.0197 51 | X5.9961Y-4.063 52 | X6.0118Y-4.5394 53 | X6.0354Y-4.122 54 | X6.0472Y-4.5197 55 | X6.0728Y-4.063 56 | X6.0787Y-4.4961 57 | X6.1024Y-4.4646 58 | X6.1122Y-4.0472 59 | X6.122Y-4.0039 60 | X6.1575Y-4.0236 61 | X6.185Y-4.0542 62 | X6.2608Y-4.1506 63 | X6.3268Y-3.5709 64 | X6.4016Y-4.2795 65 | X6.4094Y-3.7598 66 | X6.4665Y-3.4252 67 | X6.4764Y-4.2323 68 | X6.5157Y-3.815 69 | X6.5354Y-4.2913 70 | X6.5472Y-3.5827 71 | X6.563Y-4.1161 72 | X6.6142Y-4.685 73 | X6.6535Y-4.5472 74 | X6.6732Y-4.685 75 | X6.6791Y-4.1161 76 | X6.6831Y-4.2913 77 | X6.7913Y-3.9724 78 | X6.8425Y-3.8858 79 | X7.9331Y-4.9016 80 | X7.9921Y-4.8425 81 | T2 82 | X4.4291Y-3.8386 83 | X4.4291Y-4.0354 84 | X4.4291Y-4.2323 85 | X4.4291Y-4.4291 86 | X4.4291Y-4.626 87 | X4.4291Y-4.8228 88 | X4.4291Y-5.0197 89 | X4.4291Y-5.2165 90 | X4.6055Y-5.4142 91 | X4.626Y-4.0354 92 | X4.626Y-4.2323 93 | X4.626Y-4.626 94 | X4.626Y-4.8228 95 | X4.626Y-5.0197 96 | X4.626Y-5.2165 97 | X4.8228Y-3.6417 98 | X4.8228Y-3.7402 99 | X4.8228Y-4.0354 100 | X4.8228Y-4.4291 101 | X4.8228Y-4.626 102 | X4.8228Y-4.8228 103 | X4.8228Y-5.0197 104 | X4.9213Y-3.7402 105 | X5.0866Y-4.5709 106 | X5.1772Y-4.3701 107 | X5.2165Y-5.4134 108 | X5.315Y-5.315 109 | X5.315Y-5.5118 110 | X5.3346Y-4.2362 111 | X5.3346Y-4.5669 112 | X5.3346Y-4.626 113 | X5.3346Y-4.685 114 | X5.3937Y-4.626 115 | X5.4134Y-5.2165 116 | X5.4134Y-5.4134 117 | X5.5118Y-5.315 118 | X5.5906Y-4.5669 119 | X5.5906Y-4.9213 120 | X5.5906Y-5.0787 121 | X5.6299Y-3.9173 122 | X5.8268Y-4.5079 123 | X5.8268Y-4.9213 124 | X5.8268Y-5.0787 125 | X5.8819Y-3.9173 126 | X5.9188Y-4.7781 127 | X5.9843Y-4.3287 128 | X6.1417Y-4.3583 129 | X6.2283Y-4.0039 130 | X6.2598Y-4.3701 131 | X6.2598Y-4.4488 132 | X6.2598Y-4.5276 133 | X6.2874Y-4.0276 134 | X6.3209Y-4.6043 135 | X6.3268Y-3.7815 136 | X6.3386Y-4.3701 137 | X6.3386Y-4.4488 138 | X6.3386Y-4.5276 139 | X6.378Y-4.685 140 | X6.4016Y-4.1417 141 | X6.4173Y-4.4488 142 | X6.4173Y-4.5276 143 | X6.4469Y-4.9508 144 | X6.4961Y-4.5276 145 | X6.5157Y-4.0276 146 | X6.5492Y-4.1909 147 | X6.5748Y-3.5252 148 | X6.5787Y-4.6043 149 | X6.6142Y-4.0157 150 | X6.6142Y-4.3701 151 | X6.6437Y-4.9606 152 | X6.6437Y-5.1476 153 | X6.6831Y-4.1909 154 | X6.7028Y-3.4843 155 | X6.7028Y-3.5531 156 | X6.7323Y-3.8976 157 | X6.7717Y-4.7638 158 | X6.7913Y-3.6417 159 | X6.7913Y-3.7106 160 | X6.8307Y-4.4469 161 | X6.8504Y-3.5827 162 | X6.8504Y-4.8425 163 | X6.8898Y-4.4094 164 | X6.9291Y-4.9213 165 | X6.9488Y-4.7047 166 | X6.9606Y-3.7756 167 | X7.0079Y-4.4094 168 | X7.0079Y-5.0 169 | X7.0236Y-4.6299 170 | X7.1575Y-4.9291 171 | X7.1575Y-5.0984 172 | X7.1575Y-5.6457 173 | X7.185Y-3.4449 174 | X7.185Y-3.8386 175 | X7.185Y-4.8228 176 | X7.2835Y-4.9213 177 | X7.3819Y-3.4449 178 | X7.3819Y-3.6417 179 | X7.3819Y-3.8386 180 | X7.3819Y-4.7244 181 | X7.3819Y-5.0197 182 | X7.4803Y-4.7244 183 | X7.4803Y-4.8228 184 | X7.4803Y-5.1181 185 | X7.4803Y-5.315 186 | X7.4803Y-5.5118 187 | X7.5787Y-3.4449 188 | X7.5787Y-3.6417 189 | X7.5787Y-3.8386 190 | X7.5787Y-4.8228 191 | X7.5787Y-4.9213 192 | X7.6772Y-5.5118 193 | X7.7756Y-3.4449 194 | X7.7756Y-3.8386 195 | X7.874Y-5.315 196 | X7.874Y-5.5118 197 | X8.2677Y-3.6417 198 | X8.2677Y-3.8386 199 | X8.2677Y-4.0354 200 | X8.2677Y-4.2323 201 | X8.2677Y-4.4291 202 | X8.2677Y-4.626 203 | T3 204 | X4.478Y-3.4252 205 | X4.478Y-3.5252 206 | X4.5276Y-3.7732 207 | X4.5276Y-3.8732 208 | X4.5276Y-3.9732 209 | X4.5276Y-4.0732 210 | X4.5276Y-4.1732 211 | X4.578Y-3.4252 212 | X4.578Y-3.5252 213 | X4.678Y-3.4252 214 | X4.678Y-3.5252 215 | X4.778Y-3.4252 216 | X4.778Y-3.5252 217 | X4.8213Y-3.8757 218 | X4.878Y-3.4252 219 | X4.878Y-3.5252 220 | X4.9213Y-3.8757 221 | X4.978Y-3.4252 222 | X4.978Y-3.5252 223 | X5.078Y-3.4252 224 | X5.078Y-3.5252 225 | X5.178Y-3.4252 226 | X5.178Y-3.5252 227 | X5.278Y-3.4252 228 | X5.278Y-3.5252 229 | X5.378Y-3.4252 230 | X5.378Y-3.5252 231 | X5.478Y-3.4252 232 | X5.478Y-3.5252 233 | X5.578Y-3.4252 234 | X5.578Y-3.5252 235 | X5.678Y-3.4252 236 | X5.678Y-3.5252 237 | X5.778Y-3.4252 238 | X5.778Y-3.5252 239 | X5.878Y-3.4252 240 | X5.878Y-3.5252 241 | X5.978Y-3.4252 242 | X5.978Y-3.5252 243 | X6.078Y-3.4252 244 | X6.078Y-3.5252 245 | X6.178Y-3.4252 246 | X6.178Y-3.5252 247 | X6.278Y-3.4252 248 | X6.278Y-3.5252 249 | X6.378Y-3.4252 250 | X6.378Y-3.5252 251 | X7.7126Y-5.0569 252 | X7.7126Y-5.1569 253 | X7.7126Y-5.2569 254 | T4 255 | X7.8346Y-4.0157 256 | X7.8346Y-4.1059 257 | X7.8346Y-4.1961 258 | X7.8346Y-4.2862 259 | X7.8346Y-4.3764 260 | X7.9346Y-3.9707 261 | X7.9346Y-4.0608 262 | X7.9346Y-4.151 263 | X7.9346Y-4.2411 264 | X7.9346Y-4.3313 265 | X8.0346Y-4.0157 266 | X8.0346Y-4.1059 267 | X8.0346Y-4.1961 268 | X8.0346Y-4.2862 269 | X8.0346Y-4.3764 270 | T5 271 | X8.0709Y-4.9685 272 | X8.0709Y-5.3622 273 | X8.2677Y-5.1654 274 | T6 275 | X8.0709Y-5.1654 276 | X8.2677Y-4.9685 277 | X8.2677Y-5.3622 278 | T7 279 | X8.2555Y-3.418 280 | X8.2555Y-5.643 281 | T8 282 | X7.9346Y-3.6816 283 | X7.9346Y-4.6654 284 | T0 285 | M30 286 | -------------------------------------------------------------------------------- /ice40HX1K/minifp-backups/minifp-2023-02-06_113725.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/ice40HX1K/minifp-backups/minifp-2023-02-06_113725.zip -------------------------------------------------------------------------------- /ice40HX1K/minifp-backups/minifp-2023-02-06_114434.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/ice40HX1K/minifp-backups/minifp-2023-02-06_114434.zip -------------------------------------------------------------------------------- /ice40HX1K/minifp-backups/minifp-2023-02-06_115119.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/ice40HX1K/minifp-backups/minifp-2023-02-06_115119.zip -------------------------------------------------------------------------------- /ice40HX1K/minifp-backups/minifp-2023-02-06_115924.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/ice40HX1K/minifp-backups/minifp-2023-02-06_115924.zip -------------------------------------------------------------------------------- /ice40HX1K/minifp-backups/minifp-2023-02-06_171421.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/ice40HX1K/minifp-backups/minifp-2023-02-06_171421.zip -------------------------------------------------------------------------------- /ice40HX1K/minifp-backups/minifp-2023-02-07_133236.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/ice40HX1K/minifp-backups/minifp-2023-02-07_133236.zip -------------------------------------------------------------------------------- /ice40HX1K/minifp-backups/minifp-2023-02-07_133840.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/ice40HX1K/minifp-backups/minifp-2023-02-07_133840.zip -------------------------------------------------------------------------------- /ice40HX1K/minifp-backups/minifp-2023-02-07_134605.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/ice40HX1K/minifp-backups/minifp-2023-02-07_134605.zip -------------------------------------------------------------------------------- /ice40HX1K/minifp-backups/minifp-2023-02-07_154035.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/ice40HX1K/minifp-backups/minifp-2023-02-07_154035.zip -------------------------------------------------------------------------------- /ice40HX1K/minifp-backups/minifp-2023-02-07_170649.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/ice40HX1K/minifp-backups/minifp-2023-02-07_170649.zip -------------------------------------------------------------------------------- /ice40HX1K/minifp-backups/minifp-2023-02-08_164354.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/ice40HX1K/minifp-backups/minifp-2023-02-08_164354.zip -------------------------------------------------------------------------------- /ice40HX1K/minifp-backups/minifp-2023-02-08_164921.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/ice40HX1K/minifp-backups/minifp-2023-02-08_164921.zip -------------------------------------------------------------------------------- /ice40HX1K/minifp-backups/minifp-2023-02-08_165504.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/ice40HX1K/minifp-backups/minifp-2023-02-08_165504.zip -------------------------------------------------------------------------------- /ice40HX1K/minifp-backups/minifp-2023-02-08_170108.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/ice40HX1K/minifp-backups/minifp-2023-02-08_170108.zip -------------------------------------------------------------------------------- /ice40HX1K/minifp-backups/minifp-2023-02-08_170608.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/ice40HX1K/minifp-backups/minifp-2023-02-08_170608.zip -------------------------------------------------------------------------------- /ice40HX1K/minifp-backups/minifp-2023-02-09_132529.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/ice40HX1K/minifp-backups/minifp-2023-02-09_132529.zip -------------------------------------------------------------------------------- /ice40HX1K/minifp-backups/minifp-2023-02-09_133040.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/ice40HX1K/minifp-backups/minifp-2023-02-09_133040.zip -------------------------------------------------------------------------------- /ice40HX1K/minifp-backups/minifp-2023-02-09_133548.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/ice40HX1K/minifp-backups/minifp-2023-02-09_133548.zip -------------------------------------------------------------------------------- /ice40HX1K/minifp-backups/minifp-2023-02-09_134105.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/ice40HX1K/minifp-backups/minifp-2023-02-09_134105.zip -------------------------------------------------------------------------------- /ice40HX1K/minifp-backups/minifp-2023-02-09_134639.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/ice40HX1K/minifp-backups/minifp-2023-02-09_134639.zip -------------------------------------------------------------------------------- /ice40HX1K/minifp-backups/minifp-2023-03-18_164450.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/ice40HX1K/minifp-backups/minifp-2023-03-18_164450.zip -------------------------------------------------------------------------------- /ice40HX1K/minifp-backups/minifp-2023-03-18_165009.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/ice40HX1K/minifp-backups/minifp-2023-03-18_165009.zip -------------------------------------------------------------------------------- /ice40HX1K/minifp-backups/minifp-2023-03-18_165533.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/ice40HX1K/minifp-backups/minifp-2023-03-18_165533.zip -------------------------------------------------------------------------------- /ice40HX1K/minifp-backups/minifp-2023-03-18_170040.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/ice40HX1K/minifp-backups/minifp-2023-03-18_170040.zip -------------------------------------------------------------------------------- /ice40HX1K/minifp-backups/minifp-2023-03-18_170617.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/ice40HX1K/minifp-backups/minifp-2023-03-18_170617.zip -------------------------------------------------------------------------------- /ice40HX1K/minifp-backups/minifp-2023-03-18_171123.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eigenco/frankenpi/87f84d3511d599ea831ddafc65c7097b12e8d465/ice40HX1K/minifp-backups/minifp-2023-03-18_171123.zip -------------------------------------------------------------------------------- /ice40HX1K/minifp-job.gbrjob: -------------------------------------------------------------------------------- 1 | { 2 | "Header": { 3 | "GenerationSoftware": { 4 | "Vendor": "KiCad", 5 | "Application": "Pcbnew", 6 | "Version": "(6.0.5)" 7 | }, 8 | "CreationDate": "2023-02-09T13:46:23+02:00" 9 | }, 10 | "GeneralSpecs": { 11 | "ProjectId": { 12 | "Name": "minifp", 13 | "GUID": "6d696e69-6670-42e6-9b69-6361645f7063", 14 | "Revision": "rev?" 15 | }, 16 | "Size": { 17 | "X": 104.521, 18 | "Y": 71.501 19 | }, 20 | "LayerNumber": 2, 21 | "BoardThickness": 1.6, 22 | "Finish": "None" 23 | }, 24 | "DesignRules": [ 25 | { 26 | "Layers": "Outer", 27 | "PadToPad": 0.2, 28 | "PadToTrack": 0.2, 29 | "TrackToTrack": 0.2, 30 | "MinLineWidth": 0.25, 31 | "TrackToRegion": 0.508, 32 | "RegionToRegion": 0.508 33 | } 34 | ], 35 | "FilesAttributes": [ 36 | { 37 | "Path": "minifp-F_Cu.gbr", 38 | "FileFunction": "Copper,L1,Top", 39 | "FilePolarity": "Positive" 40 | }, 41 | { 42 | "Path": "minifp-B_Cu.gbr", 43 | "FileFunction": "Copper,L2,Bot", 44 | "FilePolarity": "Positive" 45 | }, 46 | { 47 | "Path": "minifp-F_Paste.gbr", 48 | "FileFunction": "SolderPaste,Top", 49 | "FilePolarity": "Positive" 50 | }, 51 | { 52 | "Path": "minifp-B_Paste.gbr", 53 | "FileFunction": "SolderPaste,Bot", 54 | "FilePolarity": "Positive" 55 | }, 56 | { 57 | "Path": "minifp-F_Silkscreen.gbr", 58 | "FileFunction": "Legend,Top", 59 | "FilePolarity": "Positive" 60 | }, 61 | { 62 | "Path": "minifp-B_Silkscreen.gbr", 63 | "FileFunction": "Legend,Bot", 64 | "FilePolarity": "Positive" 65 | }, 66 | { 67 | "Path": "minifp-F_Mask.gbr", 68 | "FileFunction": "SolderMask,Top", 69 | "FilePolarity": "Negative" 70 | }, 71 | { 72 | "Path": "minifp-B_Mask.gbr", 73 | "FileFunction": "SolderMask,Bot", 74 | "FilePolarity": "Negative" 75 | }, 76 | { 77 | "Path": "minifp-Edge_Cuts.gbr", 78 | "FileFunction": "Profile", 79 | "FilePolarity": "Positive" 80 | } 81 | ], 82 | "MaterialStackup": [ 83 | { 84 | "Type": "Legend", 85 | "Name": "Top Silk Screen" 86 | }, 87 | { 88 | "Type": "SolderPaste", 89 | "Name": "Top Solder Paste" 90 | }, 91 | { 92 | "Type": "SolderMask", 93 | "Thickness": 0.01, 94 | "Name": "Top Solder Mask" 95 | }, 96 | { 97 | "Type": "Copper", 98 | "Thickness": 0.035, 99 | "Name": "F.Cu" 100 | }, 101 | { 102 | "Type": "Dielectric", 103 | "Thickness": 1.51, 104 | "Material": "FR4", 105 | "Name": "F.Cu/B.Cu", 106 | "Notes": "Type: dielectric layer 1 (from F.Cu to B.Cu)" 107 | }, 108 | { 109 | "Type": "Copper", 110 | "Thickness": 0.035, 111 | "Name": "B.Cu" 112 | }, 113 | { 114 | "Type": "SolderMask", 115 | "Thickness": 0.01, 116 | "Name": "Bottom Solder Mask" 117 | }, 118 | { 119 | "Type": "SolderPaste", 120 | "Name": "Bottom Solder Paste" 121 | }, 122 | { 123 | "Type": "Legend", 124 | "Name": "Bottom Silk Screen" 125 | } 126 | ] 127 | } 128 | -------------------------------------------------------------------------------- /ice40HX1K/minifp.kicad_prl: -------------------------------------------------------------------------------- 1 | { 2 | "board": { 3 | "active_layer": 31, 4 | "active_layer_preset": "All Layers", 5 | "auto_track_width": true, 6 | "hidden_netclasses": [], 7 | "hidden_nets": [], 8 | "high_contrast_mode": 0, 9 | "net_color_mode": 1, 10 | "opacity": { 11 | "images": 0.6, 12 | "pads": 1.0, 13 | "tracks": 1.0, 14 | "vias": 1.0, 15 | "zones": 0.6 16 | }, 17 | "ratsnest_display_mode": 0, 18 | "selection_filter": { 19 | "dimensions": true, 20 | "footprints": true, 21 | "graphics": true, 22 | "keepouts": true, 23 | "lockedItems": true, 24 | "otherItems": true, 25 | "pads": true, 26 | "text": true, 27 | "tracks": true, 28 | "vias": true, 29 | "zones": true 30 | }, 31 | "visible_items": [ 32 | 0, 33 | 1, 34 | 2, 35 | 3, 36 | 4, 37 | 5, 38 | 8, 39 | 9, 40 | 10, 41 | 11, 42 | 12, 43 | 13, 44 | 14, 45 | 15, 46 | 16, 47 | 17, 48 | 18, 49 | 19, 50 | 20, 51 | 21, 52 | 22, 53 | 23, 54 | 24, 55 | 25, 56 | 26, 57 | 27, 58 | 28, 59 | 29, 60 | 30, 61 | 32, 62 | 33, 63 | 34, 64 | 35, 65 | 36 66 | ], 67 | "visible_layers": "fffffff_ffffffff", 68 | "zone_display_mode": 0 69 | }, 70 | "meta": { 71 | "filename": "minifp.kicad_prl", 72 | "version": 3 73 | }, 74 | "project": { 75 | "files": [] 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /ice40HX1K/rdac.txt: -------------------------------------------------------------------------------- 1 | D0: 1k 1%, 1k1 1% 2 | D1: 1k1 1% 3 | D2: 2k2 1% 4 | D3: 4k3 1% 5 | D4: 9k1 1% 6 | D5: 18k 1% -------------------------------------------------------------------------------- /ice40HX1K/sym-lib-table: -------------------------------------------------------------------------------- 1 | (sym_lib_table 2 | (lib (name "is61c5128al-10kli")(type "KiCad")(uri "${KIPRJMOD}/is61c5128al-10kli.kicad_sym")(options "")(descr "")) 3 | (lib (name "830207044109")(type "Legacy")(uri "${KIPRJMOD}/830207044109.lib")(options "")(descr "")) 4 | (lib (name "SS-53000-001")(type "Legacy")(uri "${KIPRJMOD}/SS-53000-001.lib")(options "")(descr "")) 5 | (lib (name "TOTX1350_F_")(type "Legacy")(uri "${KIPRJMOD}/TOTX1350_F_.lib")(options "")(descr "")) 6 | (lib (name "APS6404L-3SQR-SN")(type "Legacy")(uri "${KIPRJMOD}/APS6404L-3SQR-SN.lib")(options "")(descr "")) 7 | (lib (name "K66X-E15S-N")(type "Legacy")(uri "${KIPRJMOD}/K66X-E15S-N.lib")(options "")(descr "")) 8 | (lib (name "STX-3100-3N")(type "Legacy")(uri "${KIPRJMOD}/STX-3100-3N.lib")(options "")(descr "")) 9 | ) 10 | -------------------------------------------------------------------------------- /ice40HX4K/830207044109.lib: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.3 2 | #encoding utf-8 3 | #SamacSys ECAD Model 830207044109 4 | #/15113484/208341/2.49/4/3/Crystal or Oscillator 5 | DEF 830207044109 Y 0 30 Y Y 1 F N 6 | F0 "Y" 1550 300 50 H V L CNN 7 | F1 "830207044109" 1550 200 50 H V L CNN 8 | F2 "830207044109" 1550 100 50 H I L CNN 9 | F3 "https://www.we-online.com/catalog/datasheet/830207044109.pdf" 1550 0 50 H I L CNN 10 | F4 "XO (Standard) CMOS Oscillator 3.3V Standby (Power Down) 4-SMD, No Lead" 1550 -100 50 H I L CNN "Description" 11 | F5 "1.2" 1550 -200 50 H I L CNN "Height" 12 | F6 "" 1550 -300 50 H I L CNN "Mouser Part Number" 13 | F7 "" 1550 -400 50 H I L CNN "Mouser Price/Stock" 14 | F8 "Wurth Elektronik" 1550 -500 50 H I L CNN "Manufacturer_Name" 15 | F9 "830207044109" 1550 -600 50 H I L CNN "Manufacturer_Part_Number" 16 | DRAW 17 | X ENABLE/DISABLE 1 0 -100 200 R 50 50 0 0 P 18 | X GND 2 1700 -100 200 L 50 50 0 0 P 19 | X OUTPUT 3 1700 0 200 L 50 50 0 0 P 20 | X +VS 4 0 0 200 R 50 50 0 0 P 21 | P 5 0 1 6 200 100 1500 100 1500 -200 200 -200 200 100 N 22 | ENDDRAW 23 | ENDDEF 24 | # 25 | #End Library 26 | -------------------------------------------------------------------------------- /ice40HX4K/APS6404L-3SQR-SN.lib: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.3 2 | #encoding utf-8 3 | #SamacSys ECAD Model APS6404L-3SQR-SN 4 | #/14969797/208341/2.49/8/3/Integrated Circuit 5 | DEF APS6404L-3SQR-SN IC 0 30 Y Y 1 F N 6 | F0 "IC" 1450 300 50 H V L CNN 7 | F1 "APS6404L-3SQR-SN" 1450 200 50 H V L CNN 8 | F2 "SOIC127P600X175-8N" 1450 100 50 H I L CNN 9 | F3 "" 1450 0 50 H I L CNN 10 | F4 "DRAM IoT RAM 64Mb QSPI (x1,x4) SDR 133/84MHz, RBX, 3V, Ind. Temp., SOP8" 1450 -100 50 H I L CNN "Description" 11 | F5 "1.75" 1450 -200 50 H I L CNN "Height" 12 | F6 "878-APS6404L-3SQR-SN" 1450 -300 50 H I L CNN "Mouser Part Number" 13 | F7 "https://www.mouser.co.uk/ProductDetail/AP-Memory/APS6404L-3SQR-SN?qs=IS%252B4QmGtzzqsn3S5xo%2FEEg%3D%3D" 1450 -400 50 H I L CNN "Mouser Price/Stock" 14 | F8 "AP Memory" 1450 -500 50 H I L CNN "Manufacturer_Name" 15 | F9 "APS6404L-3SQR-SN" 1450 -600 50 H I L CNN "Manufacturer_Part_Number" 16 | DRAW 17 | X ~CE 1 0 0 200 R 50 50 0 0 P 18 | X SO/SIO[1] 2 0 -100 200 R 50 50 0 0 P 19 | X SIO[2] 3 0 -200 200 R 50 50 0 0 P 20 | X VSS 4 0 -300 200 R 50 50 0 0 P 21 | X VDD 8 1600 0 200 L 50 50 0 0 P 22 | X SIO[3] 7 1600 -100 200 L 50 50 0 0 P 23 | X SCLK 6 1600 -200 200 L 50 50 0 0 P 24 | X SI/SIO[0] 5 1600 -300 200 L 50 50 0 0 P 25 | P 5 0 1 6 200 100 1400 100 1400 -400 200 -400 200 100 N 26 | ENDDRAW 27 | ENDDEF 28 | # 29 | #End Library 30 | -------------------------------------------------------------------------------- /ice40HX4K/BasicISA8.pretty/830207044109.kicad_mod: -------------------------------------------------------------------------------- 1 | (module "830207044109" (layer F.Cu) 2 | (descr "830207044109-2") 3 | (tags "Crystal or Oscillator") 4 | (attr smd) 5 | (fp_text reference Y** (at 0.000 -0) (layer F.SilkS) 6 | (effects (font (size 1.27 1.27) (thickness 0.254))) 7 | ) 8 | (fp_text user %R (at 0.000 -0) (layer F.Fab) 9 | (effects (font (size 1.27 1.27) (thickness 0.254))) 10 | ) 11 | (fp_text value "830207044109" (at 0.000 -0) (layer F.SilkS) hide 12 | (effects (font (size 1.27 1.27) (thickness 0.254))) 13 | ) 14 | (fp_line (start -1.6 -1.25) (end 1.6 -1.25) (layer F.Fab) (width 0.1)) 15 | (fp_line (start 1.6 -1.25) (end 1.6 1.25) (layer F.Fab) (width 0.1)) 16 | (fp_line (start 1.6 1.25) (end -1.6 1.25) (layer F.Fab) (width 0.1)) 17 | (fp_line (start -1.6 1.25) (end -1.6 -1.25) (layer F.Fab) (width 0.1)) 18 | (fp_line (start -2.8 -2.3) (end 2.8 -2.3) (layer F.CrtYd) (width 0.1)) 19 | (fp_line (start 2.8 -2.3) (end 2.8 2.3) (layer F.CrtYd) (width 0.1)) 20 | (fp_line (start 2.8 2.3) (end -2.8 2.3) (layer F.CrtYd) (width 0.1)) 21 | (fp_line (start -2.8 2.3) (end -2.8 -2.3) (layer F.CrtYd) (width 0.1)) 22 | (fp_line (start -1.1 2) (end -1.1 2) (layer F.SilkS) (width 0.2)) 23 | (fp_line (start -1.1 1.9) (end -1.1 1.9) (layer F.SilkS) (width 0.2)) 24 | (fp_line (start -1.1 2) (end -1.1 2) (layer F.SilkS) (width 0.2)) 25 | (fp_arc (start -1.1 1.95) (end -1.100 2) (angle -180) (layer F.SilkS) (width 0.2)) 26 | (fp_arc (start -1.1 1.95) (end -1.100 1.9) (angle -180) (layer F.SilkS) (width 0.2)) 27 | (fp_arc (start -1.1 1.95) (end -1.100 2) (angle -180) (layer F.SilkS) (width 0.2)) 28 | (pad 1 smd rect (at -1.100 0.8 90) (size 1.000 1.400) (layers F.Cu F.Paste F.Mask)) 29 | (pad 2 smd rect (at 1.100 0.8 90) (size 1.000 1.400) (layers F.Cu F.Paste F.Mask)) 30 | (pad 3 smd rect (at 1.100 -0.8 90) (size 1.000 1.400) (layers F.Cu F.Paste F.Mask)) 31 | (pad 4 smd rect (at -1.100 -0.8 90) (size 1.000 1.400) (layers F.Cu F.Paste F.Mask)) 32 | (model 830207044109.stp 33 | (at (xyz 0 0 0)) 34 | (scale (xyz 1 1 1)) 35 | (rotate (xyz 0 0 0)) 36 | ) 37 | ) 38 | -------------------------------------------------------------------------------- /ice40HX4K/BasicISA8.pretty/HOLE_3MM.kicad_mod: -------------------------------------------------------------------------------- 1 | (footprint "HOLE_3MM" (version 20211014) (generator pcbnew) 2 | (layer "F.Cu") 3 | (tedit 504AE92A) 4 | (descr "module 1 pin (ou trou mecanique de percage)") 5 | (tags "DEV") 6 | (property "Sheetfile" "CPU.kicad_sch") 7 | (property "Sheetname" "") 8 | (fp_text reference "REF**" (at 0 -5.08) (layer "F.SilkS") hide 9 | (effects (font (size 1.016 1.016) (thickness 0.2032))) 10 | (tstamp b617ebff-efe8-48ec-8828-db2510f4e5fe) 11 | ) 12 | (fp_text value "CONN_1" (at 0 -3.175) (layer "F.SilkS") hide 13 | (effects (font (size 1.016 1.016) (thickness 0.2032))) 14 | (tstamp 549589c5-d30d-4401-be31-4349d5db2c50) 15 | ) 16 | (fp_circle (center 0 0) (end 0 -2.286) (layer "F.SilkS") (width 0.381) (fill none) (tstamp 455ff09c-a00f-47b0-8a79-5ebd4c6255d7)) 17 | (pad "1" thru_hole circle (at 0 0) (size 4.064 4.064) (drill 3.048) (layers *.Cu *.Mask "F.SilkS") (tstamp be7a1bd6-69f5-44e3-beab-9c783bc70f95)) 18 | ) 19 | -------------------------------------------------------------------------------- /ice40HX4K/BasicISA8.pretty/K66XE15SN.kicad_mod: -------------------------------------------------------------------------------- 1 | (module "K66XE15SN" (layer F.Cu) 2 | (descr "K66X-E15S-N-1") 3 | (tags "Connector") 4 | (fp_text reference J** (at -4.008 7.875) (layer F.SilkS) 5 | (effects (font (size 1.27 1.27) (thickness 0.254))) 6 | ) 7 | (fp_text user %R (at -4.008 7.875) (layer F.Fab) 8 | (effects (font (size 1.27 1.27) (thickness 0.254))) 9 | ) 10 | (fp_text value "K66XE15SN" (at -4.008 7.875) (layer F.SilkS) hide 11 | (effects (font (size 1.27 1.27) (thickness 0.254))) 12 | ) 13 | (fp_line (start -19.413 13.97) (end 11.398 13.97) (layer F.Fab) (width 0.2)) 14 | (fp_line (start 11.398 13.97) (end 11.398 -2.45) (layer F.Fab) (width 0.2)) 15 | (fp_line (start 11.398 -2.45) (end -19.413 -2.45) (layer F.Fab) (width 0.2)) 16 | (fp_line (start -19.413 -2.45) (end -19.413 13.97) (layer F.Fab) (width 0.2)) 17 | (fp_line (start -19.413 13.97) (end 11.398 13.97) (layer F.SilkS) (width 0.1)) 18 | (fp_line (start 11.398 13.97) (end 11.398 -2.45) (layer F.SilkS) (width 0.1)) 19 | (fp_line (start 11.398 -2.45) (end -19.413 -2.45) (layer F.SilkS) (width 0.1)) 20 | (fp_line (start -19.413 -2.45) (end -19.413 13.97) (layer F.SilkS) (width 0.1)) 21 | (fp_line (start -20.413 20.8) (end 12.398 20.8) (layer F.CrtYd) (width 0.1)) 22 | (fp_line (start 12.398 20.8) (end 12.398 -5.05) (layer F.CrtYd) (width 0.1)) 23 | (fp_line (start 12.398 -5.05) (end -20.413 -5.05) (layer F.CrtYd) (width 0.1)) 24 | (fp_line (start -20.413 -5.05) (end -20.413 20.8) (layer F.CrtYd) (width 0.1)) 25 | (fp_line (start 5 14) (end 5 19.8) (layer F.Fab) (width 0.2)) 26 | (fp_line (start 5 19.8) (end -13 19.8) (layer F.Fab) (width 0.2)) 27 | (fp_line (start -13 19.8) (end -13 14) (layer F.Fab) (width 0.2)) 28 | (fp_line (start 0 -4) (end 0 -4) (layer F.SilkS) (width 0.7)) 29 | (fp_line (start 0.1 -4) (end 0.1 -4) (layer F.SilkS) (width 0.7)) 30 | (fp_arc (start 0.05 -4) (end 0.000 -4) (angle -180) (layer F.SilkS) (width 0.7)) 31 | (fp_arc (start 0.05 -4) (end 0.100 -4) (angle -180) (layer F.SilkS) (width 0.7)) 32 | (pad 1 thru_hole circle (at 0.000 -0) (size 1.650 1.650) (drill 1.1) (layers *.Cu *.Mask)) 33 | (pad 2 thru_hole circle (at -2.290 -0) (size 1.650 1.650) (drill 1.1) (layers *.Cu *.Mask)) 34 | (pad 3 thru_hole circle (at -4.580 -0) (size 1.650 1.650) (drill 1.1) (layers *.Cu *.Mask)) 35 | (pad 4 thru_hole circle (at -6.870 -0) (size 1.650 1.650) (drill 1.1) (layers *.Cu *.Mask)) 36 | (pad 5 thru_hole circle (at -9.160 -0) (size 1.650 1.650) (drill 1.1) (layers *.Cu *.Mask)) 37 | (pad 6 thru_hole circle (at 1.145 2.54) (size 1.650 1.650) (drill 1.1) (layers *.Cu *.Mask)) 38 | (pad 7 thru_hole circle (at -1.145 2.54) (size 1.650 1.650) (drill 1.1) (layers *.Cu *.Mask)) 39 | (pad 8 thru_hole circle (at -3.435 2.54) (size 1.650 1.650) (drill 1.1) (layers *.Cu *.Mask)) 40 | (pad 9 thru_hole circle (at -5.725 2.54) (size 1.650 1.650) (drill 1.1) (layers *.Cu *.Mask)) 41 | (pad 10 thru_hole circle (at -8.015 2.54) (size 1.650 1.650) (drill 1.1) (layers *.Cu *.Mask)) 42 | (pad 11 thru_hole circle (at 0.000 5.08) (size 1.650 1.650) (drill 1.1) (layers *.Cu *.Mask)) 43 | (pad 12 thru_hole circle (at -2.290 5.08) (size 1.650 1.650) (drill 1.1) (layers *.Cu *.Mask)) 44 | (pad 13 thru_hole circle (at -4.580 5.08) (size 1.650 1.650) (drill 1.1) (layers *.Cu *.Mask)) 45 | (pad 14 thru_hole circle (at -6.870 5.08) (size 1.650 1.650) (drill 1.1) (layers *.Cu *.Mask)) 46 | (pad 15 thru_hole circle (at -9.160 5.08) (size 1.650 1.650) (drill 1.1) (layers *.Cu *.Mask)) 47 | (pad MH1 thru_hole circle (at 8.488 2.54) (size 4.575 4.575) (drill 3.05) (layers *.Cu *.Mask)) 48 | (pad MH2 thru_hole circle (at -16.502 2.54) (size 4.575 4.575) (drill 3.05) (layers *.Cu *.Mask)) 49 | ) 50 | -------------------------------------------------------------------------------- /ice40HX4K/BasicISA8.pretty/SOIC127P600X175-8N.kicad_mod: -------------------------------------------------------------------------------- 1 | (module "SOIC127P600X175-8N" (layer F.Cu) 2 | (descr "SOP-8L(150), package code SN") 3 | (tags "Integrated Circuit") 4 | (attr smd) 5 | (fp_text reference IC** (at 0 0) (layer F.SilkS) 6 | (effects (font (size 1.27 1.27) (thickness 0.254))) 7 | ) 8 | (fp_text user %R (at 0 0) (layer F.Fab) 9 | (effects (font (size 1.27 1.27) (thickness 0.254))) 10 | ) 11 | (fp_text value "SOIC127P600X175-8N" (at 0 0) (layer F.SilkS) hide 12 | (effects (font (size 1.27 1.27) (thickness 0.254))) 13 | ) 14 | (fp_line (start -3.7 -2.75) (end 3.7 -2.75) (layer F.CrtYd) (width 0.05)) 15 | (fp_line (start 3.7 -2.75) (end 3.7 2.75) (layer F.CrtYd) (width 0.05)) 16 | (fp_line (start 3.7 2.75) (end -3.7 2.75) (layer F.CrtYd) (width 0.05)) 17 | (fp_line (start -3.7 2.75) (end -3.7 -2.75) (layer F.CrtYd) (width 0.05)) 18 | (fp_line (start -1.95 -2.45) (end 1.95 -2.45) (layer F.Fab) (width 0.1)) 19 | (fp_line (start 1.95 -2.45) (end 1.95 2.45) (layer F.Fab) (width 0.1)) 20 | (fp_line (start 1.95 2.45) (end -1.95 2.45) (layer F.Fab) (width 0.1)) 21 | (fp_line (start -1.95 2.45) (end -1.95 -2.45) (layer F.Fab) (width 0.1)) 22 | (fp_line (start -1.95 -1.18) (end -0.68 -2.45) (layer F.Fab) (width 0.1)) 23 | (fp_line (start -1.6 -2.45) (end 1.6 -2.45) (layer F.SilkS) (width 0.2)) 24 | (fp_line (start 1.6 -2.45) (end 1.6 2.45) (layer F.SilkS) (width 0.2)) 25 | (fp_line (start 1.6 2.45) (end -1.6 2.45) (layer F.SilkS) (width 0.2)) 26 | (fp_line (start -1.6 2.45) (end -1.6 -2.45) (layer F.SilkS) (width 0.2)) 27 | (fp_line (start -3.45 -2.58) (end -1.95 -2.58) (layer F.SilkS) (width 0.2)) 28 | (pad 1 smd rect (at -2.7 -1.905 90) (size 0.65 1.5) (layers F.Cu F.Paste F.Mask)) 29 | (pad 2 smd rect (at -2.7 -0.635 90) (size 0.65 1.5) (layers F.Cu F.Paste F.Mask)) 30 | (pad 3 smd rect (at -2.7 0.635 90) (size 0.65 1.5) (layers F.Cu F.Paste F.Mask)) 31 | (pad 4 smd rect (at -2.7 1.905 90) (size 0.65 1.5) (layers F.Cu F.Paste F.Mask)) 32 | (pad 5 smd rect (at 2.7 1.905 90) (size 0.65 1.5) (layers F.Cu F.Paste F.Mask)) 33 | (pad 6 smd rect (at 2.7 0.635 90) (size 0.65 1.5) (layers F.Cu F.Paste F.Mask)) 34 | (pad 7 smd rect (at 2.7 -0.635 90) (size 0.65 1.5) (layers F.Cu F.Paste F.Mask)) 35 | (pad 8 smd rect (at 2.7 -1.905 90) (size 0.65 1.5) (layers F.Cu F.Paste F.Mask)) 36 | (model APS6404L-3SQR-SN.stp 37 | (at (xyz 0 0 0)) 38 | (scale (xyz 1 1 1)) 39 | (rotate (xyz 0 0 0)) 40 | ) 41 | ) 42 | -------------------------------------------------------------------------------- /ice40HX4K/BasicISA8.pretty/SS53000001.kicad_mod: -------------------------------------------------------------------------------- 1 | (module "SS53000001" (layer F.Cu) 2 | (descr "SS-53000-001-1") 3 | (tags "Connector") 4 | (fp_text reference J** (at 0.000 -0) (layer F.SilkS) 5 | (effects (font (size 1.27 1.27) (thickness 0.254))) 6 | ) 7 | (fp_text user %R (at 0.000 -0) (layer F.Fab) 8 | (effects (font (size 1.27 1.27) (thickness 0.254))) 9 | ) 10 | (fp_text value "SS53000001" (at 0.000 -0) (layer F.SilkS) hide 11 | (effects (font (size 1.27 1.27) (thickness 0.254))) 12 | ) 13 | (fp_line (start -7.5 -4.345) (end 7.85 -4.345) (layer F.Fab) (width 0.2)) 14 | (fp_line (start 7.85 -4.345) (end 7.85 5.155) (layer F.Fab) (width 0.2)) 15 | (fp_line (start 7.85 5.155) (end -7.5 5.155) (layer F.Fab) (width 0.2)) 16 | (fp_line (start -7.5 5.155) (end -7.5 -4.345) (layer F.Fab) (width 0.2)) 17 | (fp_line (start -9.848 -6.155) (end 9.848 -6.155) (layer F.CrtYd) (width 0.1)) 18 | (fp_line (start 9.848 -6.155) (end 9.848 6.155) (layer F.CrtYd) (width 0.1)) 19 | (fp_line (start 9.848 6.155) (end -9.848 6.155) (layer F.CrtYd) (width 0.1)) 20 | (fp_line (start -9.848 6.155) (end -9.848 -6.155) (layer F.CrtYd) (width 0.1)) 21 | (fp_line (start -7.5 3.135) (end -7.5 5.155) (layer F.SilkS) (width 0.1)) 22 | (fp_line (start -7.5 5.155) (end 7.85 5.155) (layer F.SilkS) (width 0.1)) 23 | (fp_line (start 7.85 5.155) (end 7.85 3.135) (layer F.SilkS) (width 0.1)) 24 | (fp_line (start 5 -5.105) (end 5 -5.105) (layer F.SilkS) (width 0.3)) 25 | (fp_line (start 5.1 -5.105) (end 5.1 -5.105) (layer F.SilkS) (width 0.3)) 26 | (fp_arc (start 5.05 -5.105) (end 5.000 -5.105) (angle -180) (layer F.SilkS) (width 0.3)) 27 | (fp_arc (start 5.05 -5.105) (end 5.100 -5.105) (angle -180) (layer F.SilkS) (width 0.3)) 28 | (pad 1 smd rect (at 4.500 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 29 | (pad 2 smd rect (at 4.000 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 30 | (pad 3 smd rect (at 3.500 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 31 | (pad 4 smd rect (at 3.000 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 32 | (pad 5 smd rect (at 2.500 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 33 | (pad 6 smd rect (at 2.000 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 34 | (pad 7 smd rect (at 1.500 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 35 | (pad 8 smd rect (at 1.000 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 36 | (pad 9 smd rect (at 0.500 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 37 | (pad 10 smd rect (at 0.000 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 38 | (pad 11 smd rect (at -0.500 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 39 | (pad 12 smd rect (at -1.000 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 40 | (pad 13 smd rect (at -1.500 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 41 | (pad 14 smd rect (at -2.000 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 42 | (pad 15 smd rect (at -2.500 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 43 | (pad 16 smd rect (at -3.000 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 44 | (pad 17 smd rect (at -3.500 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 45 | (pad 18 smd rect (at -4.000 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 46 | (pad 19 smd rect (at -4.500 -4.165 0) (size 0.300 1.900) (layers F.Cu F.Paste F.Mask)) 47 | (pad MH1 thru_hole circle (at -7.250 -3.265) (size 1.995 1.995) (drill 1.33) (layers *.Cu *.Mask)) 48 | (pad MH2 thru_hole circle (at 7.250 -3.265) (size 1.995 1.995) (drill 1.33) (layers *.Cu *.Mask)) 49 | (pad MH3 thru_hole circle (at 7.850 1.635) (size 1.995 1.995) (drill 1.33) (layers *.Cu *.Mask)) 50 | (pad MH4 thru_hole circle (at -7.850 1.635) (size 1.995 1.995) (drill 1.33) (layers *.Cu *.Mask)) 51 | (model SS-53000-001.stp 52 | (at (xyz 0 0 0)) 53 | (scale (xyz 1 1 1)) 54 | (rotate (xyz 0 0 0)) 55 | ) 56 | ) 57 | -------------------------------------------------------------------------------- /ice40HX4K/BasicISA8.pretty/STX31003N.kicad_mod: -------------------------------------------------------------------------------- 1 | (footprint "STX31003N" (version 20211014) (generator pcbnew) 2 | (layer "F.Cu") 3 | (tedit 0) 4 | (descr "STX-3100-3N-1") 5 | (tags "Connector") 6 | (attr through_hole) 7 | (fp_text reference "J3" (at -35.3 -30.7 -180) (layer "F.SilkS") hide 8 | (effects (font (size 1.27 1.27) (thickness 0.254))) 9 | (tstamp c81074c6-573f-4381-ba4b-a254882a6e82) 10 | ) 11 | (fp_text value "Conn_02x03_Counter_Clockwise" (at -33.534 -45.176 -180) (layer "F.SilkS") hide 12 | (effects (font (size 1.27 1.27) (thickness 0.254))) 13 | (tstamp 3530b690-20b4-4802-944e-e4b5f5105280) 14 | ) 15 | (fp_text user "${REFERENCE}" (at -37.9 -27.6 -180) (layer "F.Fab") 16 | (effects (font (size 1.27 1.27) (thickness 0.254))) 17 | (tstamp 40f74466-77e6-4c55-822c-b6bb4e3f62c1) 18 | ) 19 | (fp_line (start 7.3 -6) (end 7.3 6) (layer "F.SilkS") (width 0.2) (tstamp 086f1047-fa16-4d56-bea4-ac12a1137b28)) 20 | (fp_line (start 7.3 6) (end 6.5 6) (layer "F.SilkS") (width 0.2) (tstamp 2c151ac1-4a26-4b5d-9165-77e33a52d2fa)) 21 | (fp_line (start -7 -0.1) (end -7 -0.1) (layer "F.SilkS") (width 0.1) (tstamp 3bfd1001-cc77-489b-9e9c-735e201d550b)) 22 | (fp_line (start -1.5 -6) (end -3 -6) (layer "F.SilkS") (width 0.2) (tstamp 3c94ab48-0401-414c-81ba-4da8e7e9a785)) 23 | (fp_line (start 1.5 -6) (end 3.5 -6) (layer "F.SilkS") (width 0.2) (tstamp 56d86e30-7228-4443-bc24-210128358ab5)) 24 | (fp_line (start -3 -6) (end -3 6) (layer "F.SilkS") (width 0.2) (tstamp 57bf0dac-3119-40ad-9c1a-d2d728acd816)) 25 | (fp_line (start -6.5 3) (end -6.5 -3) (layer "F.SilkS") (width 0.2) (tstamp 73a61589-826f-4e25-9c98-bc1c107f289a)) 26 | (fp_line (start 6.5 -6) (end 7.3 -6) (layer "F.SilkS") (width 0.2) (tstamp 99025df3-4e9e-401e-aa5c-ea07c89be1fd)) 27 | (fp_line (start -6.5 -3) (end -3 -3) (layer "F.SilkS") (width 0.2) (tstamp 9bf3ef10-87d0-4147-a26f-07022931b991)) 28 | (fp_line (start 1.5 6) (end 3.5 6) (layer "F.SilkS") (width 0.2) (tstamp cbdc959f-6c36-4b44-a7c6-ffd5f0064d0e)) 29 | (fp_line (start -3 3) (end -6.5 3) (layer "F.SilkS") (width 0.2) (tstamp ec1dd751-7a3c-4df9-baa4-d96c59c2f618)) 30 | (fp_line (start -3 6) (end -1.5 6) (layer "F.SilkS") (width 0.2) (tstamp f19fce48-d720-488d-b5c6-bb36ee75af48)) 31 | (fp_line (start -1.5 -6) (end -1.5 -6) (layer "F.SilkS") (width 0.2) (tstamp fba60dce-7ce8-4583-a734-737760ea2326)) 32 | (fp_line (start -7 0) (end -7 0) (layer "F.SilkS") (width 0.1) (tstamp fc4bf181-3f5d-4e90-8e05-3922b53b7bb7)) 33 | (fp_arc (start -7 0) (mid -7.05 -0.05) (end -7 -0.1) (layer "F.SilkS") (width 0.1) (tstamp 1b354d1e-c50e-413b-9657-21441400088c)) 34 | (fp_arc (start -7 -0.1) (mid -6.95 -0.05) (end -7 0) (layer "F.SilkS") (width 0.1) (tstamp b3efd03f-30a4-4511-8b63-a7dc094e354e)) 35 | (fp_line (start -7.5 7.2) (end -7.5 -7.2) (layer "F.CrtYd") (width 0.1) (tstamp 0bda71ca-1d77-4d23-a37b-deda64de2463)) 36 | (fp_line (start 8.3 -7.2) (end 8.3 7.2) (layer "F.CrtYd") (width 0.1) (tstamp 0cfede9f-8959-438d-9f1c-aca79cbae23e)) 37 | (fp_line (start 8.3 7.2) (end -7.5 7.2) (layer "F.CrtYd") (width 0.1) (tstamp 4333be91-abf3-48c1-89e1-5080ac270f28)) 38 | (fp_line (start -7.5 -7.2) (end 8.3 -7.2) (layer "F.CrtYd") (width 0.1) (tstamp 81934390-c70f-4ad3-adff-80e55b0831a4)) 39 | (fp_line (start 7.3 -6) (end 7.3 6) (layer "F.Fab") (width 0.1) (tstamp 0182c375-0cc2-492b-90a2-0b059cf9a2c2)) 40 | (fp_line (start -3 6) (end -3 -6) (layer "F.Fab") (width 0.1) (tstamp 0ddf82a0-9da5-408a-bf77-3af30aa311b3)) 41 | (fp_line (start -3 -6) (end 7.3 -6) (layer "F.Fab") (width 0.1) (tstamp 25143337-2bd9-42c3-8c4a-3ea1193728bf)) 42 | (fp_line (start 7.3 6) (end -3 6) (layer "F.Fab") (width 0.1) (tstamp 4249a571-8ea9-46dc-b813-2b8d6c8b77dd)) 43 | (fp_line (start -3 3) (end -6.5 3) (layer "F.Fab") (width 0.1) (tstamp 77a9dc4a-2b7a-49a7-a2a2-5b8f17a57a5c)) 44 | (fp_line (start -3 -3) (end -3 -3) (layer "F.Fab") (width 0.1) (tstamp 79513c3a-d487-48a8-b65c-6efa6faebd8f)) 45 | (fp_line (start -6.5 3) (end -6.5 -3) (layer "F.Fab") (width 0.1) (tstamp 79afa501-d0a4-4473-87f8-b4e62c6e62b0)) 46 | (fp_line (start -6.5 -3) (end -3 -3) (layer "F.Fab") (width 0.1) (tstamp 93970e5e-81c2-4501-b234-906b57032d64)) 47 | (fp_line (start -3 3) (end -3 3) (layer "F.Fab") (width 0.1) (tstamp b03187fb-8c66-4776-a6bf-8a73754b2cb0)) 48 | (pad "1" thru_hole circle (at 0 0) (size 1.95 1.95) (drill 1.3) (layers *.Cu *.Mask) (tstamp b0b4cb63-5d0f-4815-9c3e-d5144ee9c78b)) 49 | (pad "2" thru_hole circle (at 5 5) (size 1.95 1.95) (drill 1.3) (layers *.Cu *.Mask) (tstamp e647607e-ded1-4f33-b712-86a0ceb8d531)) 50 | (pad "5" thru_hole circle (at 5 -5) (size 1.95 1.95) (drill 1.3) (layers *.Cu *.Mask) (tstamp 61c66adf-15a1-4d28-9fdd-93245e3f1702)) 51 | (pad "MH1" thru_hole circle (at 0 -5) (size 2.4 2.4) (drill 1.6) (layers *.Cu *.Mask) (tstamp 68ce752b-91c4-47e8-96fc-2e641d7e7882)) 52 | (pad "MH2" thru_hole circle (at 0 5) (size 2.4 2.4) (drill 1.6) (layers *.Cu *.Mask) (tstamp c7b7feec-4432-4b6b-ad2d-c3dac8648c3e)) 53 | (pad "MH3" thru_hole circle (at 5 0) (size 2.4 2.4) (drill 1.6) (layers *.Cu *.Mask) (tstamp b4c16375-e478-4320-8411-f56d7ea2b204)) 54 | ) 55 | -------------------------------------------------------------------------------- /ice40HX4K/BasicISA8.pretty/TOTX1350F.kicad_mod: -------------------------------------------------------------------------------- 1 | (module "TOTX1350F" (layer F.Cu) 2 | (descr "TOTX1350(F)-2") 3 | (tags "Capacitor") 4 | (fp_text reference C** (at -2.540 -3.625) (layer F.SilkS) 5 | (effects (font (size 1.27 1.27) (thickness 0.254))) 6 | ) 7 | (fp_text user %R (at -2.540 -3.625) (layer F.Fab) 8 | (effects (font (size 1.27 1.27) (thickness 0.254))) 9 | ) 10 | (fp_text value "TOTX1350F" (at -2.540 -3.625) (layer F.SilkS) hide 11 | (effects (font (size 1.27 1.27) (thickness 0.254))) 12 | ) 13 | (fp_line (start -9.04 -10.8) (end 3.96 -10.8) (layer F.Fab) (width 0.2)) 14 | (fp_line (start 3.96 -10.8) (end 3.96 2.7) (layer F.Fab) (width 0.2)) 15 | (fp_line (start 3.96 2.7) (end -9.04 2.7) (layer F.Fab) (width 0.2)) 16 | (fp_line (start -9.04 2.7) (end -9.04 -10.8) (layer F.Fab) (width 0.2)) 17 | (fp_line (start -9.04 -10.8) (end 3.96 -10.8) (layer F.SilkS) (width 0.1)) 18 | (fp_line (start 3.96 -10.8) (end 3.96 2.7) (layer F.SilkS) (width 0.1)) 19 | (fp_line (start 3.96 2.7) (end -9.04 2.7) (layer F.SilkS) (width 0.1)) 20 | (fp_line (start -9.04 2.7) (end -9.04 -10.8) (layer F.SilkS) (width 0.1)) 21 | (fp_line (start -10.04 -11.8) (end 4.96 -11.8) (layer F.CrtYd) (width 0.1)) 22 | (fp_line (start 4.96 -11.8) (end 4.96 4.55) (layer F.CrtYd) (width 0.1)) 23 | (fp_line (start 4.96 4.55) (end -10.04 4.55) (layer F.CrtYd) (width 0.1)) 24 | (fp_line (start -10.04 4.55) (end -10.04 -11.8) (layer F.CrtYd) (width 0.1)) 25 | (fp_line (start 1 3.5) (end 1 3.5) (layer F.SilkS) (width 0.4)) 26 | (fp_line (start 1.1 3.5) (end 1.1 3.5) (layer F.SilkS) (width 0.4)) 27 | (fp_arc (start 1.05 3.5) (end 1.000 3.5) (angle -180) (layer F.SilkS) (width 0.4)) 28 | (fp_arc (start 1.05 3.5) (end 1.100 3.5) (angle -180) (layer F.SilkS) (width 0.4)) 29 | (pad 1 thru_hole circle (at 0.000 -0) (size 1.524 1.524) (drill 0.98) (layers *.Cu *.Mask)) 30 | (pad 2 thru_hole circle (at -2.540 -0) (size 1.524 1.524) (drill 0.98) (layers *.Cu *.Mask)) 31 | (pad 3 thru_hole circle (at -5.080 -0) (size 1.524 1.524) (drill 0.98) (layers *.Cu *.Mask)) 32 | (pad 4 thru_hole circle (at -7.740 -4.2) (size 1.500 1.500) (drill 1) (layers *.Cu *.Mask)) 33 | (pad 5 thru_hole circle (at 2.660 -4.2) (size 1.500 1.500) (drill 1) (layers *.Cu *.Mask)) 34 | (model TOTX1350_F_.stp 35 | (at (xyz 0 0 0)) 36 | (scale (xyz 1 1 1)) 37 | (rotate (xyz 0 0 0)) 38 | ) 39 | ) 40 | -------------------------------------------------------------------------------- /ice40HX4K/K66X-E15S-N.lib: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.3 2 | #encoding utf-8 3 | #SamacSys ECAD Model K66X-E15S-N 4 | #/2209758/208341/2.49/17/4/Connector 5 | DEF K66X-E15S-N J 0 30 Y Y 1 F N 6 | F0 "J" 750 300 50 H V L CNN 7 | F1 "K66X-E15S-N" 750 200 50 H V L CNN 8 | F2 "K66XE15SN" 750 100 50 H I L CNN 9 | F3 "https://componentsearchengine.com/Datasheets/1/K66X-E15S-N.pdf" 750 0 50 H I L CNN 10 | F4 "D-Sub High Density Connectors HD15 F/M GR BRKT" 750 -100 50 H I L CNN "Description" 11 | F5 "12.8" 750 -200 50 H I L CNN "Height" 12 | F6 "806-K66X-E15S-N" 750 -300 50 H I L CNN "Mouser Part Number" 13 | F7 "https://www.mouser.com/Search/Refine.aspx?Keyword=806-K66X-E15S-N" 750 -400 50 H I L CNN "Mouser Price/Stock" 14 | F8 "Kycon" 750 -500 50 H I L CNN "Manufacturer_Name" 15 | F9 "K66X-E15S-N" 750 -600 50 H I L CNN "Manufacturer_Part_Number" 16 | DRAW 17 | X 1 1 0 0 200 R 50 50 0 0 P 18 | X 2 2 0 -100 200 R 50 50 0 0 P 19 | X 3 3 0 -200 200 R 50 50 0 0 P 20 | X 4 4 0 -300 200 R 50 50 0 0 P 21 | X 5 5 0 -400 200 R 50 50 0 0 P 22 | X 6 6 0 -500 200 R 50 50 0 0 P 23 | X 7 7 0 -600 200 R 50 50 0 0 P 24 | X 8 8 0 -700 200 R 50 50 0 0 P 25 | X 9 9 0 -800 200 R 50 50 0 0 P 26 | X 10 10 900 0 200 L 50 50 0 0 P 27 | X 11 11 900 -100 200 L 50 50 0 0 P 28 | X 12 12 900 -200 200 L 50 50 0 0 P 29 | X 13 13 900 -300 200 L 50 50 0 0 P 30 | X 14 14 900 -400 200 L 50 50 0 0 P 31 | X 15 15 900 -500 200 L 50 50 0 0 P 32 | X MH1 MH1 900 -600 200 L 50 50 0 0 P 33 | X MH2 MH2 900 -700 200 L 50 50 0 0 P 34 | P 5 0 1 6 200 100 700 100 700 -900 200 -900 200 100 N 35 | ENDDRAW 36 | ENDDEF 37 | # 38 | #End Library 39 | -------------------------------------------------------------------------------- /ice40HX4K/SS-53000-001.lib: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.3 2 | #encoding utf-8 3 | #SamacSys ECAD Model SS-53000-001 4 | #/4684166/208341/2.49/23/4/Connector 5 | DEF SS-53000-001 J 0 30 Y Y 1 F N 6 | F0 "J" 850 300 50 H V L CNN 7 | F1 "SS-53000-001" 850 200 50 H V L CNN 8 | F2 "SS53000001" 850 100 50 H I L CNN 9 | F3 "https://componentsearchengine.com/Datasheets/1/SS-53000-001.pdf" 850 0 50 H I L CNN 10 | F4 "HDMI, Displayport & DVI Connectors HDMI RA W/Out Flange" 850 -100 50 H I L CNN "Description" 11 | F5 "6.18" 850 -200 50 H I L CNN "Height" 12 | F6 "530-SS-53000-001" 850 -300 50 H I L CNN "Mouser Part Number" 13 | F7 "https://www.mouser.co.uk/ProductDetail/Stewart-Connector-Bel/SS-53000-001?qs=BJlw7L4Cy79s8HuVQy18%252BQ%3D%3D" 850 -400 50 H I L CNN "Mouser Price/Stock" 14 | F8 "BelFuse" 850 -500 50 H I L CNN "Manufacturer_Name" 15 | F9 "SS-53000-001" 850 -600 50 H I L CNN "Manufacturer_Part_Number" 16 | DRAW 17 | X 1 1 0 0 200 R 50 50 0 0 P 18 | X 2 2 0 -100 200 R 50 50 0 0 P 19 | X 3 3 0 -200 200 R 50 50 0 0 P 20 | X 4 4 0 -300 200 R 50 50 0 0 P 21 | X 5 5 0 -400 200 R 50 50 0 0 P 22 | X 6 6 0 -500 200 R 50 50 0 0 P 23 | X 7 7 0 -600 200 R 50 50 0 0 P 24 | X 8 8 0 -700 200 R 50 50 0 0 P 25 | X 9 9 0 -800 200 R 50 50 0 0 P 26 | X 10 10 0 -900 200 R 50 50 0 0 P 27 | X 11 11 0 -1000 200 R 50 50 0 0 P 28 | X 12 12 0 -1100 200 R 50 50 0 0 P 29 | X 13 13 1000 0 200 L 50 50 0 0 P 30 | X 14 14 1000 -100 200 L 50 50 0 0 P 31 | X 15 15 1000 -200 200 L 50 50 0 0 P 32 | X 16 16 1000 -300 200 L 50 50 0 0 P 33 | X 17 17 1000 -400 200 L 50 50 0 0 P 34 | X 18 18 1000 -500 200 L 50 50 0 0 P 35 | X 19 19 1000 -600 200 L 50 50 0 0 P 36 | X MH1 MH1 1000 -700 200 L 50 50 0 0 P 37 | X MH2 MH2 1000 -800 200 L 50 50 0 0 P 38 | X MH3 MH3 1000 -900 200 L 50 50 0 0 P 39 | X MH4 MH4 1000 -1000 200 L 50 50 0 0 P 40 | P 5 0 1 6 200 100 800 100 800 -1200 200 -1200 200 100 N 41 | ENDDRAW 42 | ENDDEF 43 | # 44 | #End Library 45 | -------------------------------------------------------------------------------- /ice40HX4K/STX-3100-3N.lib: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.3 2 | #encoding utf-8 3 | #SamacSys ECAD Model STX-3100-3N 4 | #/2011245/208341/2.49/6/3/Connector 5 | DEF STX-3100-3N J 0 30 Y Y 1 F N 6 | F0 "J" 850 300 50 H V L CNN 7 | F1 "STX-3100-3N" 850 200 50 H V L CNN 8 | F2 "STX31003N" 850 100 50 H I L CNN 9 | F3 "http://www.kycon.com/Pub_Eng_Draw/STX-3100-3N.pdf" 850 0 50 H I L CNN 10 | F4 "Phone Connectors 3.5mm PCB STEREO BLK 3P" 850 -100 50 H I L CNN "Description" 11 | F5 "10.3" 850 -200 50 H I L CNN "Height" 12 | F6 "806-STX-3100-3N" 850 -300 50 H I L CNN "Mouser Part Number" 13 | F7 "https://www.mouser.co.uk/ProductDetail/Kycon/STX-3100-3N?qs=ENRS9yyADm7%252BkWfRrnS%2FGg%3D%3D" 850 -400 50 H I L CNN "Mouser Price/Stock" 14 | F8 "Kycon" 850 -500 50 H I L CNN "Manufacturer_Name" 15 | F9 "STX-3100-3N" 850 -600 50 H I L CNN "Manufacturer_Part_Number" 16 | DRAW 17 | X 1 1 0 -100 200 R 50 50 0 0 P 18 | X 2 2 1000 -200 200 L 50 50 0 0 P 19 | X 5 5 1000 0 200 L 50 50 0 0 P 20 | X MH1 MH1 0 0 200 R 50 50 0 0 P 21 | X MH2 MH2 0 -200 200 R 50 50 0 0 P 22 | X MH3 MH3 1000 -100 200 L 50 50 0 0 P 23 | P 5 0 1 6 200 100 800 100 800 -300 200 -300 200 100 N 24 | ENDDRAW 25 | ENDDEF 26 | # 27 | #End Library 28 | -------------------------------------------------------------------------------- /ice40HX4K/TOTX1350_F_.lib: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.3 2 | #encoding utf-8 3 | #SamacSys ECAD Model TOTX1350_F_ 4 | #/321577/208341/2.49/5/4/Capacitor 5 | DEF TOTX1350_F_ C 0 30 Y Y 1 F N 6 | F0 "C" 1150 300 50 H V L CNN 7 | F1 "TOTX1350_F_" 1150 200 50 H V L CNN 8 | F2 "TOTX1350F" 1150 100 50 H I L CNN 9 | F3 "https://toshiba.semicon-storage.com/info/docget.jsp?did=14728&prodName=TOTX1350(F)" 1150 0 50 H I L CNN 10 | F4 "Fiber Optic Transmitters, Receivers, Transceivers TOSLINK General Purpose Modules" 1150 -100 50 H I L CNN "Description" 11 | F5 "8.8" 1150 -200 50 H I L CNN "Height" 12 | F6 "757-TOTX1350F" 1150 -300 50 H I L CNN "Mouser Part Number" 13 | F7 "https://www.mouser.co.uk/ProductDetail/Toshiba/TOTX1350F?qs=vPP9GyyTAo307LQnxNQJcg%3D%3D" 1150 -400 50 H I L CNN "Mouser Price/Stock" 14 | F8 "Toshiba" 1150 -500 50 H I L CNN "Manufacturer_Name" 15 | F9 "TOTX1350(F)" 1150 -600 50 H I L CNN "Manufacturer_Part_Number" 16 | DRAW 17 | X NC_1 1 0 -200 200 R 50 50 0 0 P 18 | X CATHODE 2 0 -100 200 R 50 50 0 0 P 19 | X ANODE 3 0 0 200 R 50 50 0 0 P 20 | X NC_2 4 1300 0 200 L 50 50 0 0 P 21 | X NC_3 5 1300 -100 200 L 50 50 0 0 P 22 | P 5 0 1 6 200 100 1100 100 1100 -300 200 -300 200 100 N 23 | ENDDRAW 24 | ENDDEF 25 | # 26 | #End Library 27 | -------------------------------------------------------------------------------- /ice40HX4K/fp-lib-table: -------------------------------------------------------------------------------- 1 | (fp_lib_table 2 | (version 7) 3 | (lib (name "BasicISA8")(type "KiCad")(uri "${KIPRJMOD}/BasicISA8.pretty")(options "")(descr "")) 4 | (lib (name "MODELS")(type "KiCad")(uri "${KIPRJMOD}/models")(options "")(descr "")) 5 | ) 6 | -------------------------------------------------------------------------------- /ice40HX4K/gerbers/minifp-B_Paste.gbr: -------------------------------------------------------------------------------- 1 | %TF.GenerationSoftware,KiCad,Pcbnew,7.0.8-7.0.8~ubuntu22.04.1*% 2 | %TF.CreationDate,2023-10-10T13:43:40+03:00*% 3 | %TF.ProjectId,minifp,6d696e69-6670-42e6-9b69-6361645f7063,rev?*% 4 | %TF.SameCoordinates,Original*% 5 | %TF.FileFunction,Paste,Bot*% 6 | %TF.FilePolarity,Positive*% 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW 7.0.8-7.0.8~ubuntu22.04.1) date 2023-10-10 13:43:40* 10 | %MOMM*% 11 | %LPD*% 12 | G01* 13 | G04 APERTURE LIST* 14 | G04 Aperture macros list* 15 | %AMRoundRect* 16 | 0 Rectangle with rounded corners* 17 | 0 $1 Rounding radius* 18 | 0 $2 $3 $4 $5 $6 $7 $8 $9 X,Y pos of 4 corners* 19 | 0 Add a 4 corners polygon primitive as box body* 20 | 4,1,4,$2,$3,$4,$5,$6,$7,$8,$9,$2,$3,0* 21 | 0 Add four circle primitives for the rounded corners* 22 | 1,1,$1+$1,$2,$3* 23 | 1,1,$1+$1,$4,$5* 24 | 1,1,$1+$1,$6,$7* 25 | 1,1,$1+$1,$8,$9* 26 | 0 Add four rect primitives between the rounded corners* 27 | 20,1,$1+$1,$2,$3,$4,$5,0* 28 | 20,1,$1+$1,$4,$5,$6,$7,0* 29 | 20,1,$1+$1,$6,$7,$8,$9,0* 30 | 20,1,$1+$1,$8,$9,$2,$3,0*% 31 | G04 Aperture macros list end* 32 | %ADD10RoundRect,0.225000X0.225000X0.250000X-0.225000X0.250000X-0.225000X-0.250000X0.225000X-0.250000X0*% 33 | %ADD11RoundRect,0.225000X-0.225000X-0.250000X0.225000X-0.250000X0.225000X0.250000X-0.225000X0.250000X0*% 34 | %ADD12RoundRect,0.225000X-0.250000X0.225000X-0.250000X-0.225000X0.250000X-0.225000X0.250000X0.225000X0*% 35 | %ADD13RoundRect,0.225000X0.250000X-0.225000X0.250000X0.225000X-0.250000X0.225000X-0.250000X-0.225000X0*% 36 | G04 APERTURE END LIST* 37 | D10* 38 | %TO.C,C9*% 39 | X138375000Y-109337500D03* 40 | X136825000Y-109337500D03* 41 | %TD*% 42 | %TO.C,C18*% 43 | X116853000Y-109600000D03* 44 | X115303000Y-109600000D03* 45 | %TD*% 46 | D11* 47 | %TO.C,C2*% 48 | X159725000Y-115750000D03* 49 | X161275000Y-115750000D03* 50 | %TD*% 51 | D10* 52 | %TO.C,C19*% 53 | X139275000Y-119250000D03* 54 | X137725000Y-119250000D03* 55 | %TD*% 56 | D12* 57 | %TO.C,C15*% 58 | X147780000Y-130225000D03* 59 | X147780000Y-131775000D03* 60 | %TD*% 61 | D10* 62 | %TO.C,C16*% 63 | X139275000Y-128778000D03* 64 | X137725000Y-128778000D03* 65 | %TD*% 66 | D13* 67 | %TO.C,C5*% 68 | X158000000Y-109275000D03* 69 | X158000000Y-107725000D03* 70 | %TD*% 71 | %TO.C,C4*% 72 | X144780000Y-128185000D03* 73 | X144780000Y-126635000D03* 74 | %TD*% 75 | D10* 76 | %TO.C,C3*% 77 | X139275000Y-120750000D03* 78 | X137725000Y-120750000D03* 79 | %TD*% 80 | D11* 81 | %TO.C,C13*% 82 | X159725000Y-126000000D03* 83 | X161275000Y-126000000D03* 84 | %TD*% 85 | D13* 86 | %TO.C,C6*% 87 | X143080000Y-128185000D03* 88 | X143080000Y-126635000D03* 89 | %TD*% 90 | %TO.C,C1*% 91 | X156000000Y-109275000D03* 92 | X156000000Y-107725000D03* 93 | %TD*% 94 | %TO.C,C17*% 95 | X138500000Y-124750000D03* 96 | X138500000Y-123200000D03* 97 | %TD*% 98 | D12* 99 | %TO.C,C14*% 100 | X151500000Y-130225000D03* 101 | X151500000Y-131775000D03* 102 | %TD*% 103 | D11* 104 | %TO.C,C12*% 105 | X159725000Y-114250000D03* 106 | X161275000Y-114250000D03* 107 | %TD*% 108 | D13* 109 | %TO.C,C10*% 110 | X148280000Y-109475000D03* 111 | X148280000Y-107925000D03* 112 | %TD*% 113 | %TO.C,C11*% 114 | X153780000Y-109275000D03* 115 | X153780000Y-107725000D03* 116 | %TD*% 117 | M02* 118 | -------------------------------------------------------------------------------- /ice40HX4K/gerbers/minifp-B_Silkscreen.gbr: -------------------------------------------------------------------------------- 1 | %TF.GenerationSoftware,KiCad,Pcbnew,7.0.8-7.0.8~ubuntu22.04.1*% 2 | %TF.CreationDate,2023-10-10T13:43:41+03:00*% 3 | %TF.ProjectId,minifp,6d696e69-6670-42e6-9b69-6361645f7063,rev?*% 4 | %TF.SameCoordinates,Original*% 5 | %TF.FileFunction,Legend,Bot*% 6 | %TF.FilePolarity,Positive*% 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW 7.0.8-7.0.8~ubuntu22.04.1) date 2023-10-10 13:43:41* 10 | %MOMM*% 11 | %LPD*% 12 | G01* 13 | G04 APERTURE LIST* 14 | %ADD10C,0.120000*% 15 | G04 APERTURE END LIST* 16 | D10* 17 | %TO.C,C9*% 18 | X137740580Y-109847500D02* 19 | X137459420Y-109847500D01* 20 | X137740580Y-108827500D02* 21 | X137459420Y-108827500D01* 22 | %TO.C,C18*% 23 | X116218580Y-110110000D02* 24 | X115937420Y-110110000D01* 25 | X116218580Y-109090000D02* 26 | X115937420Y-109090000D01* 27 | %TO.C,C2*% 28 | X160359420Y-115240000D02* 29 | X160640580Y-115240000D01* 30 | X160359420Y-116260000D02* 31 | X160640580Y-116260000D01* 32 | %TO.C,C19*% 33 | X138640580Y-119760000D02* 34 | X138359420Y-119760000D01* 35 | X138640580Y-118740000D02* 36 | X138359420Y-118740000D01* 37 | %TO.C,C15*% 38 | X148290000Y-130859420D02* 39 | X148290000Y-131140580D01* 40 | X147270000Y-130859420D02* 41 | X147270000Y-131140580D01* 42 | %TO.C,C16*% 43 | X138640580Y-129288000D02* 44 | X138359420Y-129288000D01* 45 | X138640580Y-128268000D02* 46 | X138359420Y-128268000D01* 47 | %TO.C,C5*% 48 | X157490000Y-108640580D02* 49 | X157490000Y-108359420D01* 50 | X158510000Y-108640580D02* 51 | X158510000Y-108359420D01* 52 | %TO.C,C4*% 53 | X144270000Y-127550580D02* 54 | X144270000Y-127269420D01* 55 | X145290000Y-127550580D02* 56 | X145290000Y-127269420D01* 57 | %TO.C,C3*% 58 | X138640580Y-121260000D02* 59 | X138359420Y-121260000D01* 60 | X138640580Y-120240000D02* 61 | X138359420Y-120240000D01* 62 | %TO.C,C13*% 63 | X160359420Y-125490000D02* 64 | X160640580Y-125490000D01* 65 | X160359420Y-126510000D02* 66 | X160640580Y-126510000D01* 67 | %TO.C,C6*% 68 | X142570000Y-127550580D02* 69 | X142570000Y-127269420D01* 70 | X143590000Y-127550580D02* 71 | X143590000Y-127269420D01* 72 | %TO.C,C1*% 73 | X155490000Y-108640580D02* 74 | X155490000Y-108359420D01* 75 | X156510000Y-108640580D02* 76 | X156510000Y-108359420D01* 77 | %TO.C,C17*% 78 | X137990000Y-124115580D02* 79 | X137990000Y-123834420D01* 80 | X139010000Y-124115580D02* 81 | X139010000Y-123834420D01* 82 | %TO.C,C14*% 83 | X152010000Y-130859420D02* 84 | X152010000Y-131140580D01* 85 | X150990000Y-130859420D02* 86 | X150990000Y-131140580D01* 87 | %TO.C,C12*% 88 | X160359420Y-113740000D02* 89 | X160640580Y-113740000D01* 90 | X160359420Y-114760000D02* 91 | X160640580Y-114760000D01* 92 | %TO.C,C10*% 93 | X147770000Y-108840580D02* 94 | X147770000Y-108559420D01* 95 | X148790000Y-108840580D02* 96 | X148790000Y-108559420D01* 97 | %TO.C,C11*% 98 | X153270000Y-108640580D02* 99 | X153270000Y-108359420D01* 100 | X154290000Y-108640580D02* 101 | X154290000Y-108359420D01* 102 | %TD*% 103 | M02* 104 | -------------------------------------------------------------------------------- /ice40HX4K/gerbers/minifp-Edge_Cuts.gbr: -------------------------------------------------------------------------------- 1 | %TF.GenerationSoftware,KiCad,Pcbnew,7.0.8-7.0.8~ubuntu22.04.1*% 2 | %TF.CreationDate,2023-10-10T13:43:42+03:00*% 3 | %TF.ProjectId,minifp,6d696e69-6670-42e6-9b69-6361645f7063,rev?*% 4 | %TF.SameCoordinates,Original*% 5 | %TF.FileFunction,Profile,NP*% 6 | %FSLAX46Y46*% 7 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 8 | G04 Created by KiCad (PCBNEW 7.0.8-7.0.8~ubuntu22.04.1) date 2023-10-10 13:43:42* 9 | %MOMM*% 10 | %LPD*% 11 | G01* 12 | G04 APERTURE LIST* 13 | %TA.AperFunction,Profile*% 14 | %ADD10C,0.381000*% 15 | %TD*% 16 | G04 APERTURE END LIST* 17 | D10* 18 | %TO.C,J1*% 19 | X109855000Y-153352500D02* 20 | X109855000Y-85407500D01* 21 | X110490000Y-153987500D02* 22 | X190500000Y-153987500D01* 23 | X112395000Y-82867500D02* 24 | X211455000Y-82867500D01* 25 | X191135000Y-153352500D02* 26 | X191135000Y-146367500D01* 27 | X211455000Y-146367500D02* 28 | X191135000Y-146367500D01* 29 | X213995000Y-143827500D02* 30 | X213995000Y-85407500D01* 31 | X112395000Y-82867500D02* 32 | G75* 33 | G03* 34 | X109855000Y-85407500I1J-2540001D01* 35 | G01* 36 | X109855000Y-153352500D02* 37 | G75* 38 | G03* 39 | X110490000Y-153987500I634999J-1D01* 40 | G01* 41 | X190500000Y-153987500D02* 42 | G75* 43 | G03* 44 | X191135000Y-153352500I0J635000D01* 45 | G01* 46 | X213995000Y-85407500D02* 47 | G75* 48 | G03* 49 | X211455000Y-82867500I-2540000J0D01* 50 | G01* 51 | X211455000Y-146367500D02* 52 | G75* 53 | G03* 54 | X213995000Y-143827500I0J2540000D01* 55 | G01* 56 | %TD*% 57 | M02* 58 | -------------------------------------------------------------------------------- /ice40HX4K/gerbers/minifp-NPTH.drl: -------------------------------------------------------------------------------- 1 | M48 2 | ; DRILL file {KiCad 7.0.8-7.0.8~ubuntu22.04.1} date ti 10. lokakuuta 2023 13.43.44 3 | ; FORMAT={-:-/ absolute / inch / decimal} 4 | ; #@! TF.CreationDate,2023-10-10T13:43:44+03:00 5 | ; #@! TF.GenerationSoftware,Kicad,Pcbnew,7.0.8-7.0.8~ubuntu22.04.1 6 | ; #@! TF.FileFunction,NonPlated,1,2,NPTH 7 | FMAT,2 8 | INCH 9 | % 10 | G90 11 | G05 12 | T0 13 | M30 14 | -------------------------------------------------------------------------------- /ice40HX4K/gerbers/minifp-PTH.drl: -------------------------------------------------------------------------------- 1 | M48 2 | ; DRILL file {KiCad 7.0.8-7.0.8~ubuntu22.04.1} date ti 10. lokakuuta 2023 13.43.44 3 | ; FORMAT={-:-/ absolute / inch / decimal} 4 | ; #@! TF.CreationDate,2023-10-10T13:43:44+03:00 5 | ; #@! TF.GenerationSoftware,Kicad,Pcbnew,7.0.8-7.0.8~ubuntu22.04.1 6 | ; #@! TF.FileFunction,Plated,1,2,PTH 7 | FMAT,2 8 | INCH 9 | ; #@! TA.AperFunction,Plated,PTH,ViaDrill 10 | T1C0.0118 11 | ; #@! TA.AperFunction,Plated,PTH,ViaDrill 12 | T2C0.0197 13 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 14 | T3C0.0197 15 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 16 | T4C0.0256 17 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 18 | T5C0.0394 19 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 20 | T6C0.0433 21 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 22 | T7C0.1200 23 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 24 | T8C0.1201 25 | % 26 | G90 27 | G05 28 | T1 29 | X4.645Y-4.315 30 | X4.755Y-4.3465 31 | X5.09Y-4.315 32 | X5.5Y-5.3 33 | X5.5039Y-4.3046 34 | X5.52Y-4.6358 35 | X5.52Y-4.6949 36 | X5.52Y-4.7539 37 | X5.52Y-4.9114 38 | X5.52Y-4.9705 39 | X5.525Y-3.8522 40 | X5.525Y-4.185 41 | X5.5425Y-5.07 42 | X5.5622Y-3.8522 43 | X5.5622Y-4.22 44 | X5.5917Y-3.8167 45 | X5.5917Y-4.18 46 | X5.6Y-5.3 47 | X5.6016Y-4.36 48 | X5.6213Y-3.8522 49 | X5.6213Y-4.22 50 | X5.67Y-3.8522 51 | X5.67Y-4.18 52 | X5.7394Y-3.6772 53 | X5.7835Y-4.36 54 | X5.8181Y-5.09 55 | X5.8264Y-3.5846 56 | X5.8378Y-4.36 57 | X5.965Y-5.09 58 | X6.0039Y-5.09 59 | X6.0543Y-4.36 60 | X6.1142Y-5.45 61 | X6.1417Y-4.36 62 | X6.1528Y-5.09 63 | X6.175Y-5.45 64 | X6.2087Y-4.7244 65 | X6.2205Y-4.36 66 | X6.25Y-4.498 67 | X6.25Y-4.5571 68 | X6.25Y-4.8091 69 | X6.25Y-4.8366 70 | X6.25Y-4.96 71 | X6.25Y-5.0 72 | X6.275Y-5.5 73 | X6.3484Y-4.1913 74 | X6.3661Y-4.4094 75 | X6.375Y-5.55 76 | X6.3878Y-4.1717 77 | X6.3976Y-4.4291 78 | X7.325Y-5.614 79 | T2 80 | X4.4291Y-3.7402 81 | X4.4291Y-3.937 82 | X4.4291Y-4.1339 83 | X4.4291Y-4.3307 84 | X4.4291Y-4.5276 85 | X4.4291Y-4.7244 86 | X4.4291Y-4.9213 87 | X4.4291Y-5.1181 88 | X4.4291Y-5.315 89 | X4.625Y-5.575 90 | X4.626Y-5.1181 91 | X4.685Y-5.4429 92 | X4.685Y-5.502 93 | X4.7031Y-4.8776 94 | X4.7441Y-5.3839 95 | X4.7441Y-5.4429 96 | X4.7441Y-5.502 97 | X4.7638Y-3.937 98 | X4.7638Y-4.0157 99 | X4.8031Y-5.4429 100 | X4.8425Y-3.8583 101 | X4.8425Y-3.937 102 | X4.8819Y-5.2264 103 | X4.9083Y-4.8776 104 | X4.9213Y-3.8583 105 | X4.9606Y-4.252 106 | X4.9606Y-4.4488 107 | X5.0394Y-4.1732 108 | X5.0394Y-4.252 109 | X5.0394Y-4.4488 110 | X5.0394Y-4.5276 111 | X5.0591Y-5.1772 112 | X5.0591Y-5.2362 113 | X5.1181Y-5.1772 114 | X5.1181Y-5.2362 115 | X5.313Y-5.0237 116 | X5.328Y-3.3642 117 | X5.4331Y-4.2323 118 | X5.4528Y-3.8307 119 | X5.4921Y-4.2323 120 | X5.5118Y-5.2165 121 | X5.5793Y-5.0237 122 | X5.7913Y-3.8016 123 | X6.0823Y-4.5031 124 | X6.1772Y-3.626 125 | X6.1772Y-3.7047 126 | X6.1799Y-4.4055 127 | X6.2992Y-3.7402 128 | X6.2992Y-3.937 129 | X6.2992Y-4.2323 130 | X6.2992Y-5.2165 131 | X6.3858Y-3.9606 132 | X6.3858Y-4.0394 133 | X6.3858Y-4.1181 134 | X6.3976Y-5.315 135 | X6.4646Y-3.9606 136 | X6.4646Y-4.0394 137 | X6.4961Y-3.3465 138 | X6.4961Y-3.7402 139 | X6.4961Y-4.3307 140 | X6.4961Y-5.4134 141 | X6.6929Y-3.3465 142 | X6.6929Y-3.7402 143 | X6.6929Y-4.3307 144 | X6.8898Y-3.3465 145 | X6.8898Y-3.7402 146 | X6.8898Y-3.937 147 | X6.8898Y-4.1339 148 | X7.0866Y-3.3465 149 | X7.0866Y-3.7402 150 | X7.0866Y-3.937 151 | X7.0866Y-5.1181 152 | X7.225Y-5.3581 153 | X7.2835Y-3.3465 154 | X7.4803Y-3.3465 155 | X7.4803Y-5.315 156 | X7.4803Y-5.5118 157 | X7.6772Y-3.3465 158 | X7.6772Y-3.7402 159 | X7.6772Y-4.5276 160 | X7.6772Y-4.9213 161 | X7.6772Y-5.315 162 | X7.6772Y-5.5118 163 | X7.874Y-3.3465 164 | X7.874Y-4.9213 165 | X7.874Y-5.315 166 | X7.874Y-5.5118 167 | X8.0709Y-3.3465 168 | X8.0709Y-5.1181 169 | X8.0709Y-5.315 170 | X8.0709Y-5.5118 171 | X8.2677Y-3.5433 172 | X8.2677Y-3.7402 173 | X8.2677Y-3.937 174 | X8.2677Y-4.1339 175 | X8.2677Y-4.3307 176 | X8.2677Y-4.5276 177 | X8.2677Y-4.7244 178 | X8.2677Y-4.9213 179 | X8.2677Y-5.1181 180 | X8.2677Y-5.315 181 | T3 182 | X4.9659Y-5.4681 183 | X5.025Y-5.4685 184 | X5.2287Y-5.4685 185 | X5.2878Y-5.4685 186 | X5.3063Y-5.3846 187 | X5.3469Y-5.4685 188 | X5.3654Y-5.3846 189 | X5.4059Y-5.4685 190 | X5.4244Y-5.3846 191 | X5.5512Y-5.3 192 | X5.6783Y-5.5866 193 | X5.7776Y-5.5118 194 | X5.7776Y-5.6496 195 | X5.9724Y-5.6496 196 | X6.0748Y-5.6496 197 | X6.9622Y-5.6941 198 | X7.0583Y-5.6941 199 | T4 200 | X4.9508Y-3.7 201 | X4.9508Y-3.75 202 | X5.0008Y-3.7 203 | X5.0008Y-3.75 204 | X5.0508Y-3.7 205 | X5.0508Y-3.75 206 | X5.1008Y-3.7 207 | X5.1008Y-3.75 208 | X5.1508Y-3.7 209 | X5.1508Y-3.75 210 | X5.2008Y-3.7 211 | X5.2008Y-3.75 212 | X5.2508Y-3.7 213 | X5.2508Y-3.75 214 | X5.3008Y-3.7 215 | X5.3008Y-3.75 216 | T5 217 | X4.478Y-3.4252 218 | X4.478Y-3.5252 219 | X4.578Y-3.4252 220 | X4.578Y-3.5252 221 | X4.678Y-3.4252 222 | X4.678Y-3.5252 223 | X4.778Y-3.4252 224 | X4.778Y-3.5252 225 | X4.878Y-3.4252 226 | X4.878Y-3.5252 227 | X4.978Y-3.4252 228 | X4.978Y-3.5252 229 | X5.078Y-3.4252 230 | X5.078Y-3.5252 231 | X5.178Y-3.4252 232 | X5.178Y-3.5252 233 | X5.278Y-3.4252 234 | X5.278Y-3.5252 235 | X5.378Y-3.4252 236 | X5.378Y-3.5252 237 | X5.478Y-3.4252 238 | X5.478Y-3.5252 239 | X5.578Y-3.4252 240 | X5.578Y-3.5252 241 | X5.678Y-3.4252 242 | X5.678Y-3.5252 243 | X5.778Y-3.4252 244 | X5.778Y-3.5252 245 | X5.878Y-3.4252 246 | X5.878Y-3.5252 247 | X5.978Y-3.4252 248 | X5.978Y-3.5252 249 | X6.078Y-3.4252 250 | X6.078Y-3.5252 251 | X6.178Y-3.4252 252 | X6.178Y-3.5252 253 | X6.278Y-3.4252 254 | X6.278Y-3.5252 255 | X6.378Y-3.4252 256 | X6.378Y-3.5252 257 | T6 258 | X7.8346Y-4.0157 259 | X7.8346Y-4.1059 260 | X7.8346Y-4.1961 261 | X7.8346Y-4.2862 262 | X7.8346Y-4.3764 263 | X7.9346Y-3.9707 264 | X7.9346Y-4.0608 265 | X7.9346Y-4.151 266 | X7.9346Y-4.2411 267 | X7.9346Y-4.3313 268 | X8.0346Y-4.0157 269 | X8.0346Y-4.1059 270 | X8.0346Y-4.1961 271 | X8.0346Y-4.2862 272 | X8.0346Y-4.3764 273 | T7 274 | X8.275Y-3.4125 275 | X8.275Y-5.6375 276 | T8 277 | X7.9346Y-3.6816 278 | X7.9346Y-4.6654 279 | T0 280 | M30 281 | -------------------------------------------------------------------------------- /ice40HX4K/gerbers/minifp-job.gbrjob: -------------------------------------------------------------------------------- 1 | { 2 | "Header": { 3 | "GenerationSoftware": { 4 | "Vendor": "KiCad", 5 | "Application": "Pcbnew", 6 | "Version": "7.0.8-7.0.8~ubuntu22.04.1" 7 | }, 8 | "CreationDate": "2023-10-10T13:43:42+03:00" 9 | }, 10 | "GeneralSpecs": { 11 | "ProjectId": { 12 | "Name": "minifp", 13 | "GUID": "6d696e69-6670-42e6-9b69-6361645f7063", 14 | "Revision": "rev?" 15 | }, 16 | "Size": { 17 | "X": 104.521, 18 | "Y": 71.501 19 | }, 20 | "LayerNumber": 2, 21 | "BoardThickness": 1.6, 22 | "Finish": "None" 23 | }, 24 | "DesignRules": [ 25 | { 26 | "Layers": "Outer", 27 | "PadToPad": 0.2, 28 | "PadToTrack": 0.2, 29 | "TrackToTrack": 0.2, 30 | "MinLineWidth": 0.25, 31 | "TrackToRegion": 0.2, 32 | "RegionToRegion": 0.2 33 | } 34 | ], 35 | "FilesAttributes": [ 36 | { 37 | "Path": "minifp-F_Cu.gbr", 38 | "FileFunction": "Copper,L1,Top", 39 | "FilePolarity": "Positive" 40 | }, 41 | { 42 | "Path": "minifp-B_Cu.gbr", 43 | "FileFunction": "Copper,L2,Bot", 44 | "FilePolarity": "Positive" 45 | }, 46 | { 47 | "Path": "minifp-F_Paste.gbr", 48 | "FileFunction": "SolderPaste,Top", 49 | "FilePolarity": "Positive" 50 | }, 51 | { 52 | "Path": "minifp-B_Paste.gbr", 53 | "FileFunction": "SolderPaste,Bot", 54 | "FilePolarity": "Positive" 55 | }, 56 | { 57 | "Path": "minifp-F_Silkscreen.gbr", 58 | "FileFunction": "Legend,Top", 59 | "FilePolarity": "Positive" 60 | }, 61 | { 62 | "Path": "minifp-B_Silkscreen.gbr", 63 | "FileFunction": "Legend,Bot", 64 | "FilePolarity": "Positive" 65 | }, 66 | { 67 | "Path": "minifp-F_Mask.gbr", 68 | "FileFunction": "SolderMask,Top", 69 | "FilePolarity": "Negative" 70 | }, 71 | { 72 | "Path": "minifp-B_Mask.gbr", 73 | "FileFunction": "SolderMask,Bot", 74 | "FilePolarity": "Negative" 75 | }, 76 | { 77 | "Path": "minifp-Edge_Cuts.gbr", 78 | "FileFunction": "Profile", 79 | "FilePolarity": "Positive" 80 | } 81 | ], 82 | "MaterialStackup": [ 83 | { 84 | "Type": "Legend", 85 | "Name": "Top Silk Screen" 86 | }, 87 | { 88 | "Type": "SolderPaste", 89 | "Name": "Top Solder Paste" 90 | }, 91 | { 92 | "Type": "SolderMask", 93 | "Thickness": 0.01, 94 | "Name": "Top Solder Mask" 95 | }, 96 | { 97 | "Type": "Copper", 98 | "Thickness": 0.035, 99 | "Name": "F.Cu" 100 | }, 101 | { 102 | "Type": "Dielectric", 103 | "Thickness": 1.51, 104 | "Material": "FR4", 105 | "Name": "F.Cu/B.Cu", 106 | "Notes": "Type: dielectric layer 1 (from F.Cu to B.Cu)" 107 | }, 108 | { 109 | "Type": "Copper", 110 | "Thickness": 0.035, 111 | "Name": "B.Cu" 112 | }, 113 | { 114 | "Type": "SolderMask", 115 | "Thickness": 0.01, 116 | "Name": "Bottom Solder Mask" 117 | }, 118 | { 119 | "Type": "SolderPaste", 120 | "Name": "Bottom Solder Paste" 121 | }, 122 | { 123 | "Type": "Legend", 124 | "Name": "Bottom Silk Screen" 125 | } 126 | ] 127 | } 128 | -------------------------------------------------------------------------------- /ice40HX4K/minifp.kicad_prl: -------------------------------------------------------------------------------- 1 | { 2 | "board": { 3 | "active_layer": 0, 4 | "active_layer_preset": "", 5 | "auto_track_width": true, 6 | "hidden_netclasses": [], 7 | "hidden_nets": [], 8 | "high_contrast_mode": 0, 9 | "net_color_mode": 1, 10 | "opacity": { 11 | "images": 0.6, 12 | "pads": 1.0, 13 | "tracks": 1.0, 14 | "vias": 1.0, 15 | "zones": 0.6 16 | }, 17 | "ratsnest_display_mode": 0, 18 | "selection_filter": { 19 | "dimensions": true, 20 | "footprints": true, 21 | "graphics": true, 22 | "keepouts": true, 23 | "lockedItems": true, 24 | "otherItems": true, 25 | "pads": true, 26 | "text": true, 27 | "tracks": true, 28 | "vias": true, 29 | "zones": true 30 | }, 31 | "visible_items": [ 32 | 0, 33 | 1, 34 | 2, 35 | 3, 36 | 4, 37 | 5, 38 | 8, 39 | 9, 40 | 10, 41 | 11, 42 | 13, 43 | 14, 44 | 15, 45 | 16, 46 | 17, 47 | 18, 48 | 19, 49 | 20, 50 | 21, 51 | 22, 52 | 23, 53 | 24, 54 | 25, 55 | 26, 56 | 27, 57 | 28, 58 | 29, 59 | 30, 60 | 32, 61 | 33, 62 | 34, 63 | 35, 64 | 36 65 | ], 66 | "visible_layers": "fffffff_ffffffff", 67 | "zone_display_mode": 0 68 | }, 69 | "meta": { 70 | "filename": "minifp.kicad_prl", 71 | "version": 3 72 | }, 73 | "project": { 74 | "files": [] 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /ice40HX4K/models/IS61WV10248EDBLL-10TLI.dcm: -------------------------------------------------------------------------------- 1 | EESchema-DOCLIB Version 2.0 2 | # 3 | $CMP IS61WV10248EDBLL-10TLI 4 | D SRAM 8M, 2.4V-3.6V, 10ns LP Async SRAM 5 | K 6 | F https://componentsearchengine.com/Datasheets/1/IS61WV10248EDBLL-10TLI.pdf 7 | $ENDCMP 8 | # 9 | #End Doc Library 10 | -------------------------------------------------------------------------------- /ice40HX4K/models/IS61WV10248EDBLL-10TLI.lib: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.3 2 | #encoding utf-8 3 | #SamacSys ECAD Model IS61WV10248EDBLL-10TLI 4 | #/312281/208341/2.50/44/3/Integrated Circuit 5 | DEF IS61WV10248EDBLL-10TLI IC 0 30 Y Y 1 F N 6 | F0 "IC" 1050 300 50 H V L CNN 7 | F1 "IS61WV10248EDBLL-10TLI" 1050 200 50 H V L CNN 8 | F2 "SOP80P1176X120-44N" 1050 100 50 H I L CNN 9 | F3 "https://componentsearchengine.com/Datasheets/1/IS61WV10248EDBLL-10TLI.pdf" 1050 0 50 H I L CNN 10 | F4 "SRAM 8M, 2.4V-3.6V, 10ns LP Async SRAM" 1050 -100 50 H I L CNN "Description" 11 | F5 "1.2" 1050 -200 50 H I L CNN "Height" 12 | F6 "870-61WV10EDBLL10TLI" 1050 -300 50 H I L CNN "Mouser Part Number" 13 | F7 "https://www.mouser.co.uk/ProductDetail/ISSI/IS61WV10248EDBLL-10TLI?qs=eyrSuY1LhL1iQot3UcYtqA%3D%3D" 1050 -400 50 H I L CNN "Mouser Price/Stock" 14 | F8 "Integrated Silicon Solution Inc." 1050 -500 50 H I L CNN "Manufacturer_Name" 15 | F9 "IS61WV10248EDBLL-10TLI" 1050 -600 50 H I L CNN "Manufacturer_Part_Number" 16 | DRAW 17 | X NC_1 1 0 0 200 R 50 50 0 0 P 18 | X NC_2 2 0 -100 200 R 50 50 0 0 P 19 | X A0 3 0 -200 200 R 50 50 0 0 P 20 | X A1 4 0 -300 200 R 50 50 0 0 P 21 | X A2 5 0 -400 200 R 50 50 0 0 P 22 | X A3 6 0 -500 200 R 50 50 0 0 P 23 | X A4 7 0 -600 200 R 50 50 0 0 P 24 | X ~CE 8 0 -700 200 R 50 50 0 0 P 25 | X I/O0 9 0 -800 200 R 50 50 0 0 P 26 | X I/O1 10 0 -900 200 R 50 50 0 0 P 27 | X VDD_1 11 0 -1000 200 R 50 50 0 0 P 28 | X GND_1 12 0 -1100 200 R 50 50 0 0 P 29 | X I/O2 13 0 -1200 200 R 50 50 0 0 P 30 | X I/O3 14 0 -1300 200 R 50 50 0 0 P 31 | X ~WE 15 0 -1400 200 R 50 50 0 0 P 32 | X A5 16 0 -1500 200 R 50 50 0 0 P 33 | X A6 17 0 -1600 200 R 50 50 0 0 P 34 | X A7 18 0 -1700 200 R 50 50 0 0 P 35 | X A8 19 0 -1800 200 R 50 50 0 0 P 36 | X A9 20 0 -1900 200 R 50 50 0 0 P 37 | X NC_3 21 0 -2000 200 R 50 50 0 0 P 38 | X NC_4 22 0 -2100 200 R 50 50 0 0 P 39 | X NC_9 44 1200 0 200 L 50 50 0 0 P 40 | X NC_8 43 1200 -100 200 L 50 50 0 0 P 41 | X NC_7 42 1200 -200 200 L 50 50 0 0 P 42 | X A18 41 1200 -300 200 L 50 50 0 0 P 43 | X A17 40 1200 -400 200 L 50 50 0 0 P 44 | X A16 39 1200 -500 200 L 50 50 0 0 P 45 | X A15 38 1200 -600 200 L 50 50 0 0 P 46 | X ~OE 37 1200 -700 200 L 50 50 0 0 P 47 | X I/O7 36 1200 -800 200 L 50 50 0 0 P 48 | X I/O6 35 1200 -900 200 L 50 50 0 0 P 49 | X GND_2 34 1200 -1000 200 L 50 50 0 0 P 50 | X VDD_2 33 1200 -1100 200 L 50 50 0 0 P 51 | X I/O5 32 1200 -1200 200 L 50 50 0 0 P 52 | X I/O4 31 1200 -1300 200 L 50 50 0 0 P 53 | X A14 30 1200 -1400 200 L 50 50 0 0 P 54 | X A13 29 1200 -1500 200 L 50 50 0 0 P 55 | X A12 28 1200 -1600 200 L 50 50 0 0 P 56 | X A11 27 1200 -1700 200 L 50 50 0 0 P 57 | X A10 26 1200 -1800 200 L 50 50 0 0 P 58 | X A19 25 1200 -1900 200 L 50 50 0 0 P 59 | X NC_6 24 1200 -2000 200 L 50 50 0 0 P 60 | X NC_5 23 1200 -2100 200 L 50 50 0 0 P 61 | P 5 0 1 6 200 100 1000 100 1000 -2200 200 -2200 200 100 N 62 | ENDDRAW 63 | ENDDEF 64 | # 65 | #End Library 66 | -------------------------------------------------------------------------------- /ice40HX4K/models/IS61WV10248EDBLL-10TLI.mod: -------------------------------------------------------------------------------- 1 | PCBNEW-LibModule-V1 2023-09-17 08:59:03 2 | # encoding utf-8 3 | Units mm 4 | $INDEX 5 | SOP80P1176X120-44N 6 | $EndINDEX 7 | $MODULE SOP80P1176X120-44N 8 | Po 0 0 0 15 6506b1c7 00000000 ~~ 9 | Li SOP80P1176X120-44N 10 | Cd TSSOP44 11 | Kw Integrated Circuit 12 | Sc 0 13 | At SMD 14 | AR 15 | Op 0 0 0 16 | T0 0 0 1.27 1.27 0 0.254 N V 21 N "IC**" 17 | T1 0 0 1.27 1.27 0 0.254 N I 21 N "SOP80P1176X120-44N" 18 | DS -6.625 -9.52 6.625 -9.52 0.05 24 19 | DS 6.625 -9.52 6.625 9.52 0.05 24 20 | DS 6.625 9.52 -6.625 9.52 0.05 24 21 | DS -6.625 9.52 -6.625 -9.52 0.05 24 22 | DS -5.08 -9.205 5.08 -9.205 0.1 24 23 | DS 5.08 -9.205 5.08 9.205 0.1 24 24 | DS 5.08 9.205 -5.08 9.205 0.1 24 25 | DS -5.08 9.205 -5.08 -9.205 0.1 24 26 | DS -5.08 -8.405 -4.28 -9.205 0.1 24 27 | DS -4.73 -9.205 4.73 -9.205 0.2 21 28 | DS 4.73 -9.205 4.73 9.205 0.2 21 29 | DS 4.73 9.205 -4.73 9.205 0.2 21 30 | DS -4.73 9.205 -4.73 -9.205 0.2 21 31 | DS -6.375 -9.05 -5.08 -9.05 0.2 21 32 | $PAD 33 | Po -5.728 -8.4 34 | Sh "1" R 0.6 1.295 0 0 900 35 | At SMD N 00888000 36 | Ne 0 "" 37 | $EndPAD 38 | $PAD 39 | Po -5.728 -7.6 40 | Sh "2" R 0.6 1.295 0 0 900 41 | At SMD N 00888000 42 | Ne 0 "" 43 | $EndPAD 44 | $PAD 45 | Po -5.728 -6.8 46 | Sh "3" R 0.6 1.295 0 0 900 47 | At SMD N 00888000 48 | Ne 0 "" 49 | $EndPAD 50 | $PAD 51 | Po -5.728 -6 52 | Sh "4" R 0.6 1.295 0 0 900 53 | At SMD N 00888000 54 | Ne 0 "" 55 | $EndPAD 56 | $PAD 57 | Po -5.728 -5.2 58 | Sh "5" R 0.6 1.295 0 0 900 59 | At SMD N 00888000 60 | Ne 0 "" 61 | $EndPAD 62 | $PAD 63 | Po -5.728 -4.4 64 | Sh "6" R 0.6 1.295 0 0 900 65 | At SMD N 00888000 66 | Ne 0 "" 67 | $EndPAD 68 | $PAD 69 | Po -5.728 -3.6 70 | Sh "7" R 0.6 1.295 0 0 900 71 | At SMD N 00888000 72 | Ne 0 "" 73 | $EndPAD 74 | $PAD 75 | Po -5.728 -2.8 76 | Sh "8" R 0.6 1.295 0 0 900 77 | At SMD N 00888000 78 | Ne 0 "" 79 | $EndPAD 80 | $PAD 81 | Po -5.728 -2 82 | Sh "9" R 0.6 1.295 0 0 900 83 | At SMD N 00888000 84 | Ne 0 "" 85 | $EndPAD 86 | $PAD 87 | Po -5.728 -1.2 88 | Sh "10" R 0.6 1.295 0 0 900 89 | At SMD N 00888000 90 | Ne 0 "" 91 | $EndPAD 92 | $PAD 93 | Po -5.728 -0.4 94 | Sh "11" R 0.6 1.295 0 0 900 95 | At SMD N 00888000 96 | Ne 0 "" 97 | $EndPAD 98 | $PAD 99 | Po -5.728 0.4 100 | Sh "12" R 0.6 1.295 0 0 900 101 | At SMD N 00888000 102 | Ne 0 "" 103 | $EndPAD 104 | $PAD 105 | Po -5.728 1.2 106 | Sh "13" R 0.6 1.295 0 0 900 107 | At SMD N 00888000 108 | Ne 0 "" 109 | $EndPAD 110 | $PAD 111 | Po -5.728 2 112 | Sh "14" R 0.6 1.295 0 0 900 113 | At SMD N 00888000 114 | Ne 0 "" 115 | $EndPAD 116 | $PAD 117 | Po -5.728 2.8 118 | Sh "15" R 0.6 1.295 0 0 900 119 | At SMD N 00888000 120 | Ne 0 "" 121 | $EndPAD 122 | $PAD 123 | Po -5.728 3.6 124 | Sh "16" R 0.6 1.295 0 0 900 125 | At SMD N 00888000 126 | Ne 0 "" 127 | $EndPAD 128 | $PAD 129 | Po -5.728 4.4 130 | Sh "17" R 0.6 1.295 0 0 900 131 | At SMD N 00888000 132 | Ne 0 "" 133 | $EndPAD 134 | $PAD 135 | Po -5.728 5.2 136 | Sh "18" R 0.6 1.295 0 0 900 137 | At SMD N 00888000 138 | Ne 0 "" 139 | $EndPAD 140 | $PAD 141 | Po -5.728 6 142 | Sh "19" R 0.6 1.295 0 0 900 143 | At SMD N 00888000 144 | Ne 0 "" 145 | $EndPAD 146 | $PAD 147 | Po -5.728 6.8 148 | Sh "20" R 0.6 1.295 0 0 900 149 | At SMD N 00888000 150 | Ne 0 "" 151 | $EndPAD 152 | $PAD 153 | Po -5.728 7.6 154 | Sh "21" R 0.6 1.295 0 0 900 155 | At SMD N 00888000 156 | Ne 0 "" 157 | $EndPAD 158 | $PAD 159 | Po -5.728 8.4 160 | Sh "22" R 0.6 1.295 0 0 900 161 | At SMD N 00888000 162 | Ne 0 "" 163 | $EndPAD 164 | $PAD 165 | Po 5.728 8.4 166 | Sh "23" R 0.6 1.295 0 0 900 167 | At SMD N 00888000 168 | Ne 0 "" 169 | $EndPAD 170 | $PAD 171 | Po 5.728 7.6 172 | Sh "24" R 0.6 1.295 0 0 900 173 | At SMD N 00888000 174 | Ne 0 "" 175 | $EndPAD 176 | $PAD 177 | Po 5.728 6.8 178 | Sh "25" R 0.6 1.295 0 0 900 179 | At SMD N 00888000 180 | Ne 0 "" 181 | $EndPAD 182 | $PAD 183 | Po 5.728 6 184 | Sh "26" R 0.6 1.295 0 0 900 185 | At SMD N 00888000 186 | Ne 0 "" 187 | $EndPAD 188 | $PAD 189 | Po 5.728 5.2 190 | Sh "27" R 0.6 1.295 0 0 900 191 | At SMD N 00888000 192 | Ne 0 "" 193 | $EndPAD 194 | $PAD 195 | Po 5.728 4.4 196 | Sh "28" R 0.6 1.295 0 0 900 197 | At SMD N 00888000 198 | Ne 0 "" 199 | $EndPAD 200 | $PAD 201 | Po 5.728 3.6 202 | Sh "29" R 0.6 1.295 0 0 900 203 | At SMD N 00888000 204 | Ne 0 "" 205 | $EndPAD 206 | $PAD 207 | Po 5.728 2.8 208 | Sh "30" R 0.6 1.295 0 0 900 209 | At SMD N 00888000 210 | Ne 0 "" 211 | $EndPAD 212 | $PAD 213 | Po 5.728 2 214 | Sh "31" R 0.6 1.295 0 0 900 215 | At SMD N 00888000 216 | Ne 0 "" 217 | $EndPAD 218 | $PAD 219 | Po 5.728 1.2 220 | Sh "32" R 0.6 1.295 0 0 900 221 | At SMD N 00888000 222 | Ne 0 "" 223 | $EndPAD 224 | $PAD 225 | Po 5.728 0.4 226 | Sh "33" R 0.6 1.295 0 0 900 227 | At SMD N 00888000 228 | Ne 0 "" 229 | $EndPAD 230 | $PAD 231 | Po 5.728 -0.4 232 | Sh "34" R 0.6 1.295 0 0 900 233 | At SMD N 00888000 234 | Ne 0 "" 235 | $EndPAD 236 | $PAD 237 | Po 5.728 -1.2 238 | Sh "35" R 0.6 1.295 0 0 900 239 | At SMD N 00888000 240 | Ne 0 "" 241 | $EndPAD 242 | $PAD 243 | Po 5.728 -2 244 | Sh "36" R 0.6 1.295 0 0 900 245 | At SMD N 00888000 246 | Ne 0 "" 247 | $EndPAD 248 | $PAD 249 | Po 5.728 -2.8 250 | Sh "37" R 0.6 1.295 0 0 900 251 | At SMD N 00888000 252 | Ne 0 "" 253 | $EndPAD 254 | $PAD 255 | Po 5.728 -3.6 256 | Sh "38" R 0.6 1.295 0 0 900 257 | At SMD N 00888000 258 | Ne 0 "" 259 | $EndPAD 260 | $PAD 261 | Po 5.728 -4.4 262 | Sh "39" R 0.6 1.295 0 0 900 263 | At SMD N 00888000 264 | Ne 0 "" 265 | $EndPAD 266 | $PAD 267 | Po 5.728 -5.2 268 | Sh "40" R 0.6 1.295 0 0 900 269 | At SMD N 00888000 270 | Ne 0 "" 271 | $EndPAD 272 | $PAD 273 | Po 5.728 -6 274 | Sh "41" R 0.6 1.295 0 0 900 275 | At SMD N 00888000 276 | Ne 0 "" 277 | $EndPAD 278 | $PAD 279 | Po 5.728 -6.8 280 | Sh "42" R 0.6 1.295 0 0 900 281 | At SMD N 00888000 282 | Ne 0 "" 283 | $EndPAD 284 | $PAD 285 | Po 5.728 -7.6 286 | Sh "43" R 0.6 1.295 0 0 900 287 | At SMD N 00888000 288 | Ne 0 "" 289 | $EndPAD 290 | $PAD 291 | Po 5.728 -8.4 292 | Sh "44" R 0.6 1.295 0 0 900 293 | At SMD N 00888000 294 | Ne 0 "" 295 | $EndPAD 296 | $EndMODULE SOP80P1176X120-44N 297 | $EndLIBRARY 298 | -------------------------------------------------------------------------------- /ice40HX4K/models/SOP80P1176X120-44N.kicad_mod: -------------------------------------------------------------------------------- 1 | (module "SOP80P1176X120-44N" (layer F.Cu) 2 | (descr "TSSOP44") 3 | (tags "Integrated Circuit") 4 | (attr smd) 5 | (fp_text reference IC** (at 0 0) (layer F.SilkS) 6 | (effects (font (size 1.27 1.27) (thickness 0.254))) 7 | ) 8 | (fp_text user %R (at 0 0) (layer F.Fab) 9 | (effects (font (size 1.27 1.27) (thickness 0.254))) 10 | ) 11 | (fp_text value "SOP80P1176X120-44N" (at 0 0) (layer F.SilkS) hide 12 | (effects (font (size 1.27 1.27) (thickness 0.254))) 13 | ) 14 | (fp_line (start -6.625 -9.52) (end 6.625 -9.52) (layer F.CrtYd) (width 0.05)) 15 | (fp_line (start 6.625 -9.52) (end 6.625 9.52) (layer F.CrtYd) (width 0.05)) 16 | (fp_line (start 6.625 9.52) (end -6.625 9.52) (layer F.CrtYd) (width 0.05)) 17 | (fp_line (start -6.625 9.52) (end -6.625 -9.52) (layer F.CrtYd) (width 0.05)) 18 | (fp_line (start -5.08 -9.205) (end 5.08 -9.205) (layer F.Fab) (width 0.1)) 19 | (fp_line (start 5.08 -9.205) (end 5.08 9.205) (layer F.Fab) (width 0.1)) 20 | (fp_line (start 5.08 9.205) (end -5.08 9.205) (layer F.Fab) (width 0.1)) 21 | (fp_line (start -5.08 9.205) (end -5.08 -9.205) (layer F.Fab) (width 0.1)) 22 | (fp_line (start -5.08 -8.405) (end -4.28 -9.205) (layer F.Fab) (width 0.1)) 23 | (fp_line (start -4.73 -9.205) (end 4.73 -9.205) (layer F.SilkS) (width 0.2)) 24 | (fp_line (start 4.73 -9.205) (end 4.73 9.205) (layer F.SilkS) (width 0.2)) 25 | (fp_line (start 4.73 9.205) (end -4.73 9.205) (layer F.SilkS) (width 0.2)) 26 | (fp_line (start -4.73 9.205) (end -4.73 -9.205) (layer F.SilkS) (width 0.2)) 27 | (fp_line (start -6.375 -9.05) (end -5.08 -9.05) (layer F.SilkS) (width 0.2)) 28 | (pad 1 smd rect (at -5.728 -8.4 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 29 | (pad 2 smd rect (at -5.728 -7.6 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 30 | (pad 3 smd rect (at -5.728 -6.8 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 31 | (pad 4 smd rect (at -5.728 -6 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 32 | (pad 5 smd rect (at -5.728 -5.2 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 33 | (pad 6 smd rect (at -5.728 -4.4 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 34 | (pad 7 smd rect (at -5.728 -3.6 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 35 | (pad 8 smd rect (at -5.728 -2.8 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 36 | (pad 9 smd rect (at -5.728 -2 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 37 | (pad 10 smd rect (at -5.728 -1.2 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 38 | (pad 11 smd rect (at -5.728 -0.4 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 39 | (pad 12 smd rect (at -5.728 0.4 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 40 | (pad 13 smd rect (at -5.728 1.2 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 41 | (pad 14 smd rect (at -5.728 2 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 42 | (pad 15 smd rect (at -5.728 2.8 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 43 | (pad 16 smd rect (at -5.728 3.6 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 44 | (pad 17 smd rect (at -5.728 4.4 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 45 | (pad 18 smd rect (at -5.728 5.2 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 46 | (pad 19 smd rect (at -5.728 6 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 47 | (pad 20 smd rect (at -5.728 6.8 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 48 | (pad 21 smd rect (at -5.728 7.6 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 49 | (pad 22 smd rect (at -5.728 8.4 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 50 | (pad 23 smd rect (at 5.728 8.4 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 51 | (pad 24 smd rect (at 5.728 7.6 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 52 | (pad 25 smd rect (at 5.728 6.8 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 53 | (pad 26 smd rect (at 5.728 6 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 54 | (pad 27 smd rect (at 5.728 5.2 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 55 | (pad 28 smd rect (at 5.728 4.4 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 56 | (pad 29 smd rect (at 5.728 3.6 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 57 | (pad 30 smd rect (at 5.728 2.8 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 58 | (pad 31 smd rect (at 5.728 2 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 59 | (pad 32 smd rect (at 5.728 1.2 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 60 | (pad 33 smd rect (at 5.728 0.4 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 61 | (pad 34 smd rect (at 5.728 -0.4 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 62 | (pad 35 smd rect (at 5.728 -1.2 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 63 | (pad 36 smd rect (at 5.728 -2 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 64 | (pad 37 smd rect (at 5.728 -2.8 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 65 | (pad 38 smd rect (at 5.728 -3.6 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 66 | (pad 39 smd rect (at 5.728 -4.4 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 67 | (pad 40 smd rect (at 5.728 -5.2 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 68 | (pad 41 smd rect (at 5.728 -6 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 69 | (pad 42 smd rect (at 5.728 -6.8 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 70 | (pad 43 smd rect (at 5.728 -7.6 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 71 | (pad 44 smd rect (at 5.728 -8.4 90) (size 0.6 1.295) (layers F.Cu F.Paste F.Mask)) 72 | (model IS61WV10248EDBLL-10TLI.stp 73 | (at (xyz 0 0 0)) 74 | (scale (xyz 1 1 1)) 75 | (rotate (xyz 0 0 0)) 76 | ) 77 | ) 78 | -------------------------------------------------------------------------------- /ice40HX4K/rdac.txt: -------------------------------------------------------------------------------- 1 | D0: 1k 1%, 1k1 1% 2 | D1: 1k1 1% 3 | D2: 2k2 1% 4 | D3: 4k3 1% 5 | D4: 9k1 1% 6 | D5: 18k 1% -------------------------------------------------------------------------------- /ice40HX4K/sym-lib-table: -------------------------------------------------------------------------------- 1 | (sym_lib_table 2 | (version 7) 3 | (lib (name "is61c5128al-10kli")(type "KiCad")(uri "${KIPRJMOD}/is61c5128al-10kli.kicad_sym")(options "")(descr "")) 4 | (lib (name "830207044109")(type "Legacy")(uri "${KIPRJMOD}/830207044109.lib")(options "")(descr "")) 5 | (lib (name "SS-53000-001")(type "Legacy")(uri "${KIPRJMOD}/SS-53000-001.lib")(options "")(descr "")) 6 | (lib (name "TOTX1350_F_")(type "Legacy")(uri "${KIPRJMOD}/TOTX1350_F_.lib")(options "")(descr "")) 7 | (lib (name "APS6404L-3SQR-SN")(type "Legacy")(uri "${KIPRJMOD}/APS6404L-3SQR-SN.lib")(options "")(descr "")) 8 | (lib (name "K66X-E15S-N")(type "Legacy")(uri "${KIPRJMOD}/K66X-E15S-N.lib")(options "")(descr "")) 9 | (lib (name "STX-3100-3N")(type "Legacy")(uri "${KIPRJMOD}/STX-3100-3N.lib")(options "")(descr "")) 10 | (lib (name "IS61WV10248EDBLL-10TLI")(type "Legacy")(uri "${KIPRJMOD}/models/IS61WV10248EDBLL-10TLI.lib")(options "")(descr "")) 11 | ) 12 | -------------------------------------------------------------------------------- /raspberry/run.sh: -------------------------------------------------------------------------------- 1 | echo 1000000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 2 | echo 1000000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq 3 | echo 1000000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq 4 | echo 1000000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq 5 | echo 1000000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq 6 | echo 1000000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq 7 | echo 1000000 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq 8 | echo 1000000 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq 9 | echo -1 > /proc/sys/kernel/sched_rt_runtime_us 10 | #echo 999999 > /proc/sys/kernel/sched_rt_runtime_us 11 | export LD_LIBRARY_PATH=/usr/local/lib/arm-linux-gnueabihf/ 12 | ./pc 13 | -------------------------------------------------------------------------------- /rtl/C4.qpf: -------------------------------------------------------------------------------- 1 | # -------------------------------------------------------------------------- # 2 | # 3 | # Copyright (C) 1991-2013 Altera Corporation 4 | # Your use of Altera Corporation's design tools, logic functions 5 | # and other software and tools, and its AMPP partner logic 6 | # functions, and any output files from any of the foregoing 7 | # (including device programming or simulation files), and any 8 | # associated documentation or information are expressly subject 9 | # to the terms and conditions of the Altera Program License 10 | # Subscription Agreement, Altera MegaCore Function License 11 | # Agreement, or other applicable license agreement, including, 12 | # without limitation, that your use is for the sole purpose of 13 | # programming logic devices manufactured by Altera and sold by 14 | # Altera or its authorized distributors. Please refer to the 15 | # applicable agreement for further details. 16 | # 17 | # -------------------------------------------------------------------------- # 18 | # 19 | # Quartus II 64-Bit 20 | # Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition 21 | # Date created = 14:09:58 December 04, 2021 22 | # 23 | # -------------------------------------------------------------------------- # 24 | 25 | QUARTUS_VERSION = "13.0" 26 | DATE = "14:09:58 December 04, 2021" 27 | 28 | # Revisions 29 | 30 | PROJECT_REVISION = "C4" 31 | -------------------------------------------------------------------------------- /rtl/C4.qws: -------------------------------------------------------------------------------- 1 | @(last_workspace -------------------------------------------------------------------------------- /rtl/PLL.qip: -------------------------------------------------------------------------------- 1 | set_global_assignment -name IP_TOOL_NAME "ALTPLL" 2 | set_global_assignment -name IP_TOOL_VERSION "13.0" 3 | set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) "PLL.v"] 4 | set_global_assignment -name MISC_FILE [file join $::quartus(qip_path) "PLL_bb.v"] 5 | set_global_assignment -name MISC_FILE [file join $::quartus(qip_path) "PLL.ppf"] 6 | -------------------------------------------------------------------------------- /rtl/PLLJ_PLLSPE_INFO.txt: -------------------------------------------------------------------------------- 1 | PLL_Name PLL:PLL|altpll:altpll_component|PLL_altpll:auto_generated|pll1 2 | PLLJITTER 2 3 | PLLSPEmax 84 4 | PLLSPEmin -53 5 | 6 | -------------------------------------------------------------------------------- /rtl/aFIFO.qip: -------------------------------------------------------------------------------- 1 | set_global_assignment -name IP_TOOL_NAME "FIFO" 2 | set_global_assignment -name IP_TOOL_VERSION "13.0" 3 | set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) "aFIFO.v"] 4 | set_global_assignment -name MISC_FILE [file join $::quartus(qip_path) "aFIFO_bb.v"] 5 | -------------------------------------------------------------------------------- /rtl/aFIFO_bb.v: -------------------------------------------------------------------------------- 1 | // megafunction wizard: %FIFO%VBB% 2 | // GENERATION: STANDARD 3 | // VERSION: WM1.0 4 | // MODULE: dcfifo 5 | 6 | // ============================================================ 7 | // File Name: aFIFO.v 8 | // Megafunction Name(s): 9 | // dcfifo 10 | // 11 | // Simulation Library Files(s): 12 | // altera_mf 13 | // ============================================================ 14 | // ************************************************************ 15 | // THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! 16 | // 17 | // 13.0.1 Build 232 06/12/2013 SP 1 SJ Web Edition 18 | // ************************************************************ 19 | 20 | //Copyright (C) 1991-2013 Altera Corporation 21 | //Your use of Altera Corporation's design tools, logic functions 22 | //and other software and tools, and its AMPP partner logic 23 | //functions, and any output files from any of the foregoing 24 | //(including device programming or simulation files), and any 25 | //associated documentation or information are expressly subject 26 | //to the terms and conditions of the Altera Program License 27 | //Subscription Agreement, Altera MegaCore Function License 28 | //Agreement, or other applicable license agreement, including, 29 | //without limitation, that your use is for the sole purpose of 30 | //programming logic devices manufactured by Altera and sold by 31 | //Altera or its authorized distributors. Please refer to the 32 | //applicable agreement for further details. 33 | 34 | module aFIFO ( 35 | data, 36 | rdclk, 37 | rdreq, 38 | wrclk, 39 | wrreq, 40 | q, 41 | rdusedw); 42 | 43 | input [23:0] data; 44 | input rdclk; 45 | input rdreq; 46 | input wrclk; 47 | input wrreq; 48 | output [23:0] q; 49 | output [8:0] rdusedw; 50 | 51 | endmodule 52 | 53 | // ============================================================ 54 | // CNX file retrieval info 55 | // ============================================================ 56 | // Retrieval info: PRIVATE: AlmostEmpty NUMERIC "0" 57 | // Retrieval info: PRIVATE: AlmostEmptyThr NUMERIC "-1" 58 | // Retrieval info: PRIVATE: AlmostFull NUMERIC "0" 59 | // Retrieval info: PRIVATE: AlmostFullThr NUMERIC "-1" 60 | // Retrieval info: PRIVATE: CLOCKS_ARE_SYNCHRONIZED NUMERIC "0" 61 | // Retrieval info: PRIVATE: Clock NUMERIC "4" 62 | // Retrieval info: PRIVATE: Depth NUMERIC "256" 63 | // Retrieval info: PRIVATE: Empty NUMERIC "1" 64 | // Retrieval info: PRIVATE: Full NUMERIC "1" 65 | // Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone IV E" 66 | // Retrieval info: PRIVATE: LE_BasedFIFO NUMERIC "0" 67 | // Retrieval info: PRIVATE: LegacyRREQ NUMERIC "1" 68 | // Retrieval info: PRIVATE: MAX_DEPTH_BY_9 NUMERIC "0" 69 | // Retrieval info: PRIVATE: OVERFLOW_CHECKING NUMERIC "0" 70 | // Retrieval info: PRIVATE: Optimize NUMERIC "2" 71 | // Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC "0" 72 | // Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0" 73 | // Retrieval info: PRIVATE: UNDERFLOW_CHECKING NUMERIC "0" 74 | // Retrieval info: PRIVATE: UsedW NUMERIC "1" 75 | // Retrieval info: PRIVATE: Width NUMERIC "24" 76 | // Retrieval info: PRIVATE: dc_aclr NUMERIC "0" 77 | // Retrieval info: PRIVATE: diff_widths NUMERIC "0" 78 | // Retrieval info: PRIVATE: msb_usedw NUMERIC "1" 79 | // Retrieval info: PRIVATE: output_width NUMERIC "24" 80 | // Retrieval info: PRIVATE: rsEmpty NUMERIC "0" 81 | // Retrieval info: PRIVATE: rsFull NUMERIC "0" 82 | // Retrieval info: PRIVATE: rsUsedW NUMERIC "1" 83 | // Retrieval info: PRIVATE: sc_aclr NUMERIC "0" 84 | // Retrieval info: PRIVATE: sc_sclr NUMERIC "0" 85 | // Retrieval info: PRIVATE: wsEmpty NUMERIC "0" 86 | // Retrieval info: PRIVATE: wsFull NUMERIC "0" 87 | // Retrieval info: PRIVATE: wsUsedW NUMERIC "0" 88 | // Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all 89 | // Retrieval info: CONSTANT: ADD_USEDW_MSB_BIT STRING "ON" 90 | // Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone IV E" 91 | // Retrieval info: CONSTANT: LPM_NUMWORDS NUMERIC "256" 92 | // Retrieval info: CONSTANT: LPM_SHOWAHEAD STRING "OFF" 93 | // Retrieval info: CONSTANT: LPM_TYPE STRING "dcfifo" 94 | // Retrieval info: CONSTANT: LPM_WIDTH NUMERIC "24" 95 | // Retrieval info: CONSTANT: LPM_WIDTHU NUMERIC "9" 96 | // Retrieval info: CONSTANT: OVERFLOW_CHECKING STRING "ON" 97 | // Retrieval info: CONSTANT: RDSYNC_DELAYPIPE NUMERIC "11" 98 | // Retrieval info: CONSTANT: UNDERFLOW_CHECKING STRING "ON" 99 | // Retrieval info: CONSTANT: USE_EAB STRING "ON" 100 | // Retrieval info: CONSTANT: WRSYNC_DELAYPIPE NUMERIC "11" 101 | // Retrieval info: USED_PORT: data 0 0 24 0 INPUT NODEFVAL "data[23..0]" 102 | // Retrieval info: USED_PORT: q 0 0 24 0 OUTPUT NODEFVAL "q[23..0]" 103 | // Retrieval info: USED_PORT: rdclk 0 0 0 0 INPUT NODEFVAL "rdclk" 104 | // Retrieval info: USED_PORT: rdreq 0 0 0 0 INPUT NODEFVAL "rdreq" 105 | // Retrieval info: USED_PORT: rdusedw 0 0 9 0 OUTPUT NODEFVAL "rdusedw[8..0]" 106 | // Retrieval info: USED_PORT: wrclk 0 0 0 0 INPUT NODEFVAL "wrclk" 107 | // Retrieval info: USED_PORT: wrreq 0 0 0 0 INPUT NODEFVAL "wrreq" 108 | // Retrieval info: CONNECT: @data 0 0 24 0 data 0 0 24 0 109 | // Retrieval info: CONNECT: @rdclk 0 0 0 0 rdclk 0 0 0 0 110 | // Retrieval info: CONNECT: @rdreq 0 0 0 0 rdreq 0 0 0 0 111 | // Retrieval info: CONNECT: @wrclk 0 0 0 0 wrclk 0 0 0 0 112 | // Retrieval info: CONNECT: @wrreq 0 0 0 0 wrreq 0 0 0 0 113 | // Retrieval info: CONNECT: q 0 0 24 0 @q 0 0 24 0 114 | // Retrieval info: CONNECT: rdusedw 0 0 9 0 @rdusedw 0 0 9 0 115 | // Retrieval info: GEN_FILE: TYPE_NORMAL aFIFO.v TRUE 116 | // Retrieval info: GEN_FILE: TYPE_NORMAL aFIFO.inc FALSE 117 | // Retrieval info: GEN_FILE: TYPE_NORMAL aFIFO.cmp FALSE 118 | // Retrieval info: GEN_FILE: TYPE_NORMAL aFIFO.bsf FALSE 119 | // Retrieval info: GEN_FILE: TYPE_NORMAL aFIFO_inst.v FALSE 120 | // Retrieval info: GEN_FILE: TYPE_NORMAL aFIFO_bb.v TRUE 121 | // Retrieval info: LIB_FILE: altera_mf 122 | -------------------------------------------------------------------------------- /rtl/iRAM.qip: -------------------------------------------------------------------------------- 1 | set_global_assignment -name IP_TOOL_NAME "RAM: 2-PORT" 2 | set_global_assignment -name IP_TOOL_VERSION "13.0" 3 | set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) "iRAM.v"] 4 | set_global_assignment -name MISC_FILE [file join $::quartus(qip_path) "iRAM_bb.v"] 5 | -------------------------------------------------------------------------------- /rtl/mRAM.qip: -------------------------------------------------------------------------------- 1 | set_global_assignment -name IP_TOOL_NAME "RAM: 2-PORT" 2 | set_global_assignment -name IP_TOOL_VERSION "13.0" 3 | set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) "mRAM.v"] 4 | set_global_assignment -name MISC_FILE [file join $::quartus(qip_path) "mRAM_bb.v"] 5 | -------------------------------------------------------------------------------- /rtl/oRAM.qip: -------------------------------------------------------------------------------- 1 | set_global_assignment -name IP_TOOL_NAME "RAM: 2-PORT" 2 | set_global_assignment -name IP_TOOL_VERSION "13.0" 3 | set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) "oRAM.v"] 4 | set_global_assignment -name MISC_FILE [file join $::quartus(qip_path) "oRAM_bb.v"] 5 | -------------------------------------------------------------------------------- /rtl/optrom.qip: -------------------------------------------------------------------------------- 1 | set_global_assignment -name IP_TOOL_NAME "ROM: 1-PORT" 2 | set_global_assignment -name IP_TOOL_VERSION "13.0" 3 | set_global_assignment -name VERILOG_FILE [file join $::quartus(qip_path) "optrom.v"] 4 | set_global_assignment -name MISC_FILE [file join $::quartus(qip_path) "optrom_bb.v"] 5 | -------------------------------------------------------------------------------- /rtl/optrom_bb.v: -------------------------------------------------------------------------------- 1 | // megafunction wizard: %ROM: 1-PORT%VBB% 2 | // GENERATION: STANDARD 3 | // VERSION: WM1.0 4 | // MODULE: altsyncram 5 | 6 | // ============================================================ 7 | // File Name: optrom.v 8 | // Megafunction Name(s): 9 | // altsyncram 10 | // 11 | // Simulation Library Files(s): 12 | // altera_mf 13 | // ============================================================ 14 | // ************************************************************ 15 | // THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE! 16 | // 17 | // 13.0.1 Build 232 06/12/2013 SP 1 SJ Web Edition 18 | // ************************************************************ 19 | 20 | //Copyright (C) 1991-2013 Altera Corporation 21 | //Your use of Altera Corporation's design tools, logic functions 22 | //and other software and tools, and its AMPP partner logic 23 | //functions, and any output files from any of the foregoing 24 | //(including device programming or simulation files), and any 25 | //associated documentation or information are expressly subject 26 | //to the terms and conditions of the Altera Program License 27 | //Subscription Agreement, Altera MegaCore Function License 28 | //Agreement, or other applicable license agreement, including, 29 | //without limitation, that your use is for the sole purpose of 30 | //programming logic devices manufactured by Altera and sold by 31 | //Altera or its authorized distributors. Please refer to the 32 | //applicable agreement for further details. 33 | 34 | module optrom ( 35 | address, 36 | clock, 37 | q); 38 | 39 | input [10:0] address; 40 | input clock; 41 | output [7:0] q; 42 | `ifndef ALTERA_RESERVED_QIS 43 | // synopsys translate_off 44 | `endif 45 | tri1 clock; 46 | `ifndef ALTERA_RESERVED_QIS 47 | // synopsys translate_on 48 | `endif 49 | 50 | endmodule 51 | 52 | // ============================================================ 53 | // CNX file retrieval info 54 | // ============================================================ 55 | // Retrieval info: PRIVATE: ADDRESSSTALL_A NUMERIC "0" 56 | // Retrieval info: PRIVATE: AclrAddr NUMERIC "0" 57 | // Retrieval info: PRIVATE: AclrByte NUMERIC "0" 58 | // Retrieval info: PRIVATE: AclrOutput NUMERIC "0" 59 | // Retrieval info: PRIVATE: BYTE_ENABLE NUMERIC "0" 60 | // Retrieval info: PRIVATE: BYTE_SIZE NUMERIC "8" 61 | // Retrieval info: PRIVATE: BlankMemory NUMERIC "0" 62 | // Retrieval info: PRIVATE: CLOCK_ENABLE_INPUT_A NUMERIC "0" 63 | // Retrieval info: PRIVATE: CLOCK_ENABLE_OUTPUT_A NUMERIC "0" 64 | // Retrieval info: PRIVATE: Clken NUMERIC "0" 65 | // Retrieval info: PRIVATE: IMPLEMENT_IN_LES NUMERIC "0" 66 | // Retrieval info: PRIVATE: INIT_FILE_LAYOUT STRING "PORT_A" 67 | // Retrieval info: PRIVATE: INIT_TO_SIM_X NUMERIC "0" 68 | // Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone IV E" 69 | // Retrieval info: PRIVATE: JTAG_ENABLED NUMERIC "0" 70 | // Retrieval info: PRIVATE: JTAG_ID STRING "NONE" 71 | // Retrieval info: PRIVATE: MAXIMUM_DEPTH NUMERIC "0" 72 | // Retrieval info: PRIVATE: MIFfilename STRING "../OptionROM/optrom.hex" 73 | // Retrieval info: PRIVATE: NUMWORDS_A NUMERIC "2048" 74 | // Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC "0" 75 | // Retrieval info: PRIVATE: RegAddr NUMERIC "1" 76 | // Retrieval info: PRIVATE: RegOutput NUMERIC "1" 77 | // Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0" 78 | // Retrieval info: PRIVATE: SingleClock NUMERIC "1" 79 | // Retrieval info: PRIVATE: UseDQRAM NUMERIC "0" 80 | // Retrieval info: PRIVATE: WidthAddr NUMERIC "11" 81 | // Retrieval info: PRIVATE: WidthData NUMERIC "8" 82 | // Retrieval info: PRIVATE: rden NUMERIC "0" 83 | // Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all 84 | // Retrieval info: CONSTANT: ADDRESS_ACLR_A STRING "NONE" 85 | // Retrieval info: CONSTANT: CLOCK_ENABLE_INPUT_A STRING "BYPASS" 86 | // Retrieval info: CONSTANT: CLOCK_ENABLE_OUTPUT_A STRING "BYPASS" 87 | // Retrieval info: CONSTANT: INIT_FILE STRING "../OptionROM/optrom.hex" 88 | // Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone IV E" 89 | // Retrieval info: CONSTANT: LPM_HINT STRING "ENABLE_RUNTIME_MOD=NO" 90 | // Retrieval info: CONSTANT: LPM_TYPE STRING "altsyncram" 91 | // Retrieval info: CONSTANT: NUMWORDS_A NUMERIC "2048" 92 | // Retrieval info: CONSTANT: OPERATION_MODE STRING "ROM" 93 | // Retrieval info: CONSTANT: OUTDATA_ACLR_A STRING "NONE" 94 | // Retrieval info: CONSTANT: OUTDATA_REG_A STRING "CLOCK0" 95 | // Retrieval info: CONSTANT: WIDTHAD_A NUMERIC "11" 96 | // Retrieval info: CONSTANT: WIDTH_A NUMERIC "8" 97 | // Retrieval info: CONSTANT: WIDTH_BYTEENA_A NUMERIC "1" 98 | // Retrieval info: USED_PORT: address 0 0 11 0 INPUT NODEFVAL "address[10..0]" 99 | // Retrieval info: USED_PORT: clock 0 0 0 0 INPUT VCC "clock" 100 | // Retrieval info: USED_PORT: q 0 0 8 0 OUTPUT NODEFVAL "q[7..0]" 101 | // Retrieval info: CONNECT: @address_a 0 0 11 0 address 0 0 11 0 102 | // Retrieval info: CONNECT: @clock0 0 0 0 0 clock 0 0 0 0 103 | // Retrieval info: CONNECT: q 0 0 8 0 @q_a 0 0 8 0 104 | // Retrieval info: GEN_FILE: TYPE_NORMAL optrom.v TRUE 105 | // Retrieval info: GEN_FILE: TYPE_NORMAL optrom.inc FALSE 106 | // Retrieval info: GEN_FILE: TYPE_NORMAL optrom.cmp FALSE 107 | // Retrieval info: GEN_FILE: TYPE_NORMAL optrom.bsf FALSE 108 | // Retrieval info: GEN_FILE: TYPE_NORMAL optrom_inst.v FALSE 109 | // Retrieval info: GEN_FILE: TYPE_NORMAL optrom_bb.v TRUE 110 | // Retrieval info: LIB_FILE: altera_mf 111 | --------------------------------------------------------------------------------