├── .gitignore ├── parallel2usb_v1 ├── .gitignore ├── KiCad-RP-Pico │ ├── .gitignore │ ├── Images │ │ ├── Image01.png │ │ ├── Image02.png │ │ ├── Image03.png │ │ ├── Image04.png │ │ ├── Image05.png │ │ ├── Image06.png │ │ ├── Image07.png │ │ ├── Image08.png │ │ ├── Image09.png │ │ ├── Image10.png │ │ ├── Image11.png │ │ ├── Image12.png │ │ ├── Image13.png │ │ ├── Image14.png │ │ ├── Image15.png │ │ ├── Image16.png │ │ ├── Image17.png │ │ ├── Image18.png │ │ └── Image19.png │ ├── SketchUp Model │ │ └── Pico.skp │ ├── RP-Pico Libraries │ │ └── MCU_RaspberryPi_and_Boards.pretty │ │ │ ├── Crystal_SMD_HC49-US.kicad_mod │ │ │ └── RP2040-QFN-56.kicad_mod │ ├── README.md │ ├── LICENSE │ ├── Install instructions.md │ └── Test │ │ └── Test.kicad_pro ├── parallel2usb_v1_3d.png ├── parallel2usb_v1_schematic.pdf ├── gerbers │ └── v1 │ │ ├── parallel2usb_1284-v1.zip │ │ ├── parallel2usb-B_Paste.gbr │ │ ├── parallel2usb-NPTH.drl │ │ ├── parallel2usb-Edge_Cuts.gbr │ │ ├── parallel2usb-PTH.drl │ │ ├── parallel2usb-B_Mask.gbr │ │ ├── parallel2usb-job.gbrjob │ │ ├── parallel2usb-F_Paste.gbr │ │ └── parallel2usb-In1_Cu.gbr ├── fp-lib-table ├── sym-lib-table ├── parallel2usb.kicad_prl ├── sn74lvc8t245.kicad_sym └── 74lvc161284.kicad_sym ├── parallel2usb_v2 ├── .gitignore ├── KiCad-RP-Pico │ ├── .gitignore │ ├── Images │ │ ├── Image01.png │ │ ├── Image02.png │ │ ├── Image03.png │ │ ├── Image04.png │ │ ├── Image05.png │ │ ├── Image06.png │ │ ├── Image07.png │ │ ├── Image08.png │ │ ├── Image09.png │ │ ├── Image10.png │ │ ├── Image11.png │ │ ├── Image12.png │ │ ├── Image13.png │ │ ├── Image14.png │ │ ├── Image15.png │ │ ├── Image16.png │ │ ├── Image17.png │ │ ├── Image18.png │ │ └── Image19.png │ ├── SketchUp Model │ │ └── Pico.skp │ ├── RP-Pico Libraries │ │ └── MCU_RaspberryPi_and_Boards.pretty │ │ │ ├── Crystal_SMD_HC49-US.kicad_mod │ │ │ └── RP2040-QFN-56.kicad_mod │ ├── README.md │ ├── LICENSE │ ├── Install instructions.md │ └── Test │ │ └── Test.kicad_pro ├── parallel2usb_v2_3d.png ├── parallel2usb_v2_schematic.pdf ├── gerbers │ └── v2 │ │ ├── parallel2usb_1284-v2.zip │ │ ├── parallel2usb-B_Paste.gbr │ │ ├── parallel2usb-NPTH.drl │ │ ├── parallel2usb-Edge_Cuts.gbr │ │ ├── parallel2usb-PTH.drl │ │ ├── parallel2usb-job.gbrjob │ │ ├── parallel2usb-B_Mask.gbr │ │ ├── parallel2usb-F_Paste.gbr │ │ └── parallel2usb-F_Mask.gbr ├── fp-lib-table ├── sym-lib-table ├── parallel2usb.kicad_prl ├── sn74lvc8t245.kicad_sym └── 74lvc161284.kicad_sym ├── docs ├── ARP11SEC.pdf ├── escp2ref.pdf ├── sn74lvc161284.pdf ├── 74LVC161284_schematic.png ├── dxxx-pl-24-data-sheet.pdf └── advantest_r3273_printer_config.png ├── parallel2usb_hd_on.uf2 ├── examples ├── tds420a │ ├── tds420a_pcx_0.pcx │ ├── tds420a_tiff_0.tiff │ ├── tds420a_bmp_mono_0.bmp │ ├── tds420a_deskjet_0.pcl │ ├── tds420a_epson_0.esc_p │ ├── tds420a_laserjet_0.pcl │ ├── tds420a_thinkjet_0.pcl │ ├── tds420a_dpu411_0.prtcap │ ├── tds420a_dpu412_0.prtcap │ └── tds420a_interleaf_img_0.img ├── r3273 │ ├── r3273_pcl_color_0.pcl │ ├── r3273_pcl_gray_0.pcl │ ├── r3273_pcl_mono_l_0.pcl │ ├── r3273_pcl_mono_s_0.pcl │ ├── r3273_esc_p_gray_0.esc_p │ ├── r3273_esc_p_mono_l_0.esc_p │ ├── r3273_esc_p_mono_s_0.esc_p │ ├── r3273_pcl_s_color_l_0.pcl │ ├── r3273_pcl_s_color_s_0.pcl │ ├── r3273_esc_p_raster_color_0.esc_p_rast │ ├── r3273_esc_p_raster_gray_0.esc_p_rast │ ├── r3273_esc_p_raster_mono_l_0.esc_p_rast │ ├── r3273_esc_p_raster_mono_s_0.esc_p_rast │ ├── r3273_esc_p_raster_s_color_l_0.esc_p_rast │ └── r3273_esc_p_raster_s_color_s_0.esc_p_rast └── run.sh ├── c ├── example_auto_set_url.cmake ├── parallel2usb │ ├── CMakeLists.txt │ └── main.cc ├── CMakeLists.txt └── pico_sdk_import.cmake ├── LICENSE ├── notes.md ├── README.md ├── fake_printer.py └── pcb_bringup.py /.gitignore: -------------------------------------------------------------------------------- 1 | .*.sw* 2 | c/build/ 3 | __pycache__/ 4 | -------------------------------------------------------------------------------- /parallel2usb_v1/.gitignore: -------------------------------------------------------------------------------- 1 | parallel2usb-backups/ 2 | -------------------------------------------------------------------------------- /parallel2usb_v1/KiCad-RP-Pico/.gitignore: -------------------------------------------------------------------------------- 1 | .vscode 2 | -------------------------------------------------------------------------------- /parallel2usb_v2/.gitignore: -------------------------------------------------------------------------------- 1 | parallel2usb-backups/ 2 | -------------------------------------------------------------------------------- /parallel2usb_v2/KiCad-RP-Pico/.gitignore: -------------------------------------------------------------------------------- 1 | .vscode 2 | -------------------------------------------------------------------------------- /docs/ARP11SEC.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/docs/ARP11SEC.pdf -------------------------------------------------------------------------------- /docs/escp2ref.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/docs/escp2ref.pdf -------------------------------------------------------------------------------- /docs/sn74lvc161284.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/docs/sn74lvc161284.pdf -------------------------------------------------------------------------------- /parallel2usb_hd_on.uf2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_hd_on.uf2 -------------------------------------------------------------------------------- /docs/74LVC161284_schematic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/docs/74LVC161284_schematic.png -------------------------------------------------------------------------------- /docs/dxxx-pl-24-data-sheet.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/docs/dxxx-pl-24-data-sheet.pdf -------------------------------------------------------------------------------- /examples/tds420a/tds420a_pcx_0.pcx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/examples/tds420a/tds420a_pcx_0.pcx -------------------------------------------------------------------------------- /examples/r3273/r3273_pcl_color_0.pcl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/examples/r3273/r3273_pcl_color_0.pcl -------------------------------------------------------------------------------- /examples/r3273/r3273_pcl_gray_0.pcl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/examples/r3273/r3273_pcl_gray_0.pcl -------------------------------------------------------------------------------- /examples/r3273/r3273_pcl_mono_l_0.pcl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/examples/r3273/r3273_pcl_mono_l_0.pcl -------------------------------------------------------------------------------- /examples/r3273/r3273_pcl_mono_s_0.pcl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/examples/r3273/r3273_pcl_mono_s_0.pcl -------------------------------------------------------------------------------- /examples/tds420a/tds420a_tiff_0.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/examples/tds420a/tds420a_tiff_0.tiff -------------------------------------------------------------------------------- /docs/advantest_r3273_printer_config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/docs/advantest_r3273_printer_config.png -------------------------------------------------------------------------------- /examples/r3273/r3273_esc_p_gray_0.esc_p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/examples/r3273/r3273_esc_p_gray_0.esc_p -------------------------------------------------------------------------------- /examples/tds420a/tds420a_bmp_mono_0.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/examples/tds420a/tds420a_bmp_mono_0.bmp -------------------------------------------------------------------------------- /examples/tds420a/tds420a_deskjet_0.pcl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/examples/tds420a/tds420a_deskjet_0.pcl -------------------------------------------------------------------------------- /examples/tds420a/tds420a_epson_0.esc_p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/examples/tds420a/tds420a_epson_0.esc_p -------------------------------------------------------------------------------- /examples/tds420a/tds420a_laserjet_0.pcl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/examples/tds420a/tds420a_laserjet_0.pcl -------------------------------------------------------------------------------- /examples/tds420a/tds420a_thinkjet_0.pcl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/examples/tds420a/tds420a_thinkjet_0.pcl -------------------------------------------------------------------------------- /parallel2usb_v1/parallel2usb_v1_3d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v1/parallel2usb_v1_3d.png -------------------------------------------------------------------------------- /parallel2usb_v2/parallel2usb_v2_3d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v2/parallel2usb_v2_3d.png -------------------------------------------------------------------------------- /examples/r3273/r3273_esc_p_mono_l_0.esc_p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/examples/r3273/r3273_esc_p_mono_l_0.esc_p -------------------------------------------------------------------------------- /examples/r3273/r3273_esc_p_mono_s_0.esc_p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/examples/r3273/r3273_esc_p_mono_s_0.esc_p -------------------------------------------------------------------------------- /examples/r3273/r3273_pcl_s_color_l_0.pcl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/examples/r3273/r3273_pcl_s_color_l_0.pcl -------------------------------------------------------------------------------- /examples/r3273/r3273_pcl_s_color_s_0.pcl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/examples/r3273/r3273_pcl_s_color_s_0.pcl -------------------------------------------------------------------------------- /examples/tds420a/tds420a_dpu411_0.prtcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/examples/tds420a/tds420a_dpu411_0.prtcap -------------------------------------------------------------------------------- /examples/tds420a/tds420a_dpu412_0.prtcap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/examples/tds420a/tds420a_dpu412_0.prtcap -------------------------------------------------------------------------------- /examples/tds420a/tds420a_interleaf_img_0.img: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/examples/tds420a/tds420a_interleaf_img_0.img -------------------------------------------------------------------------------- /parallel2usb_v1/parallel2usb_v1_schematic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v1/parallel2usb_v1_schematic.pdf -------------------------------------------------------------------------------- /parallel2usb_v2/parallel2usb_v2_schematic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v2/parallel2usb_v2_schematic.pdf -------------------------------------------------------------------------------- /parallel2usb_v1/KiCad-RP-Pico/Images/Image01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v1/KiCad-RP-Pico/Images/Image01.png -------------------------------------------------------------------------------- /parallel2usb_v1/KiCad-RP-Pico/Images/Image02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v1/KiCad-RP-Pico/Images/Image02.png -------------------------------------------------------------------------------- /parallel2usb_v1/KiCad-RP-Pico/Images/Image03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v1/KiCad-RP-Pico/Images/Image03.png -------------------------------------------------------------------------------- /parallel2usb_v1/KiCad-RP-Pico/Images/Image04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v1/KiCad-RP-Pico/Images/Image04.png -------------------------------------------------------------------------------- /parallel2usb_v1/KiCad-RP-Pico/Images/Image05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v1/KiCad-RP-Pico/Images/Image05.png -------------------------------------------------------------------------------- /parallel2usb_v1/KiCad-RP-Pico/Images/Image06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v1/KiCad-RP-Pico/Images/Image06.png -------------------------------------------------------------------------------- /parallel2usb_v1/KiCad-RP-Pico/Images/Image07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v1/KiCad-RP-Pico/Images/Image07.png -------------------------------------------------------------------------------- /parallel2usb_v1/KiCad-RP-Pico/Images/Image08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v1/KiCad-RP-Pico/Images/Image08.png -------------------------------------------------------------------------------- /parallel2usb_v1/KiCad-RP-Pico/Images/Image09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v1/KiCad-RP-Pico/Images/Image09.png -------------------------------------------------------------------------------- /parallel2usb_v1/KiCad-RP-Pico/Images/Image10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v1/KiCad-RP-Pico/Images/Image10.png -------------------------------------------------------------------------------- /parallel2usb_v1/KiCad-RP-Pico/Images/Image11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v1/KiCad-RP-Pico/Images/Image11.png -------------------------------------------------------------------------------- /parallel2usb_v1/KiCad-RP-Pico/Images/Image12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v1/KiCad-RP-Pico/Images/Image12.png -------------------------------------------------------------------------------- /parallel2usb_v1/KiCad-RP-Pico/Images/Image13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v1/KiCad-RP-Pico/Images/Image13.png -------------------------------------------------------------------------------- /parallel2usb_v1/KiCad-RP-Pico/Images/Image14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v1/KiCad-RP-Pico/Images/Image14.png -------------------------------------------------------------------------------- /parallel2usb_v1/KiCad-RP-Pico/Images/Image15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v1/KiCad-RP-Pico/Images/Image15.png -------------------------------------------------------------------------------- /parallel2usb_v1/KiCad-RP-Pico/Images/Image16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v1/KiCad-RP-Pico/Images/Image16.png -------------------------------------------------------------------------------- /parallel2usb_v1/KiCad-RP-Pico/Images/Image17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v1/KiCad-RP-Pico/Images/Image17.png -------------------------------------------------------------------------------- /parallel2usb_v1/KiCad-RP-Pico/Images/Image18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v1/KiCad-RP-Pico/Images/Image18.png -------------------------------------------------------------------------------- /parallel2usb_v1/KiCad-RP-Pico/Images/Image19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v1/KiCad-RP-Pico/Images/Image19.png -------------------------------------------------------------------------------- /parallel2usb_v2/KiCad-RP-Pico/Images/Image01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v2/KiCad-RP-Pico/Images/Image01.png -------------------------------------------------------------------------------- /parallel2usb_v2/KiCad-RP-Pico/Images/Image02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v2/KiCad-RP-Pico/Images/Image02.png -------------------------------------------------------------------------------- /parallel2usb_v2/KiCad-RP-Pico/Images/Image03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v2/KiCad-RP-Pico/Images/Image03.png -------------------------------------------------------------------------------- /parallel2usb_v2/KiCad-RP-Pico/Images/Image04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v2/KiCad-RP-Pico/Images/Image04.png -------------------------------------------------------------------------------- /parallel2usb_v2/KiCad-RP-Pico/Images/Image05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v2/KiCad-RP-Pico/Images/Image05.png -------------------------------------------------------------------------------- /parallel2usb_v2/KiCad-RP-Pico/Images/Image06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v2/KiCad-RP-Pico/Images/Image06.png -------------------------------------------------------------------------------- /parallel2usb_v2/KiCad-RP-Pico/Images/Image07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v2/KiCad-RP-Pico/Images/Image07.png -------------------------------------------------------------------------------- /parallel2usb_v2/KiCad-RP-Pico/Images/Image08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v2/KiCad-RP-Pico/Images/Image08.png -------------------------------------------------------------------------------- /parallel2usb_v2/KiCad-RP-Pico/Images/Image09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v2/KiCad-RP-Pico/Images/Image09.png -------------------------------------------------------------------------------- /parallel2usb_v2/KiCad-RP-Pico/Images/Image10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v2/KiCad-RP-Pico/Images/Image10.png -------------------------------------------------------------------------------- /parallel2usb_v2/KiCad-RP-Pico/Images/Image11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v2/KiCad-RP-Pico/Images/Image11.png -------------------------------------------------------------------------------- /parallel2usb_v2/KiCad-RP-Pico/Images/Image12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v2/KiCad-RP-Pico/Images/Image12.png -------------------------------------------------------------------------------- /parallel2usb_v2/KiCad-RP-Pico/Images/Image13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v2/KiCad-RP-Pico/Images/Image13.png -------------------------------------------------------------------------------- /parallel2usb_v2/KiCad-RP-Pico/Images/Image14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v2/KiCad-RP-Pico/Images/Image14.png -------------------------------------------------------------------------------- /parallel2usb_v2/KiCad-RP-Pico/Images/Image15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v2/KiCad-RP-Pico/Images/Image15.png -------------------------------------------------------------------------------- /parallel2usb_v2/KiCad-RP-Pico/Images/Image16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v2/KiCad-RP-Pico/Images/Image16.png -------------------------------------------------------------------------------- /parallel2usb_v2/KiCad-RP-Pico/Images/Image17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v2/KiCad-RP-Pico/Images/Image17.png -------------------------------------------------------------------------------- /parallel2usb_v2/KiCad-RP-Pico/Images/Image18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v2/KiCad-RP-Pico/Images/Image18.png -------------------------------------------------------------------------------- /parallel2usb_v2/KiCad-RP-Pico/Images/Image19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v2/KiCad-RP-Pico/Images/Image19.png -------------------------------------------------------------------------------- /examples/r3273/r3273_esc_p_raster_color_0.esc_p_rast: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/examples/r3273/r3273_esc_p_raster_color_0.esc_p_rast -------------------------------------------------------------------------------- /examples/r3273/r3273_esc_p_raster_gray_0.esc_p_rast: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/examples/r3273/r3273_esc_p_raster_gray_0.esc_p_rast -------------------------------------------------------------------------------- /parallel2usb_v1/gerbers/v1/parallel2usb_1284-v1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v1/gerbers/v1/parallel2usb_1284-v1.zip -------------------------------------------------------------------------------- /parallel2usb_v2/gerbers/v2/parallel2usb_1284-v2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v2/gerbers/v2/parallel2usb_1284-v2.zip -------------------------------------------------------------------------------- /examples/r3273/r3273_esc_p_raster_mono_l_0.esc_p_rast: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/examples/r3273/r3273_esc_p_raster_mono_l_0.esc_p_rast -------------------------------------------------------------------------------- /examples/r3273/r3273_esc_p_raster_mono_s_0.esc_p_rast: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/examples/r3273/r3273_esc_p_raster_mono_s_0.esc_p_rast -------------------------------------------------------------------------------- /parallel2usb_v1/KiCad-RP-Pico/SketchUp Model/Pico.skp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v1/KiCad-RP-Pico/SketchUp Model/Pico.skp -------------------------------------------------------------------------------- /parallel2usb_v2/KiCad-RP-Pico/SketchUp Model/Pico.skp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/parallel2usb_v2/KiCad-RP-Pico/SketchUp Model/Pico.skp -------------------------------------------------------------------------------- /examples/r3273/r3273_esc_p_raster_s_color_l_0.esc_p_rast: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/examples/r3273/r3273_esc_p_raster_s_color_l_0.esc_p_rast -------------------------------------------------------------------------------- /examples/r3273/r3273_esc_p_raster_s_color_s_0.esc_p_rast: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomverbeure/fake_parallel_printer/HEAD/examples/r3273/r3273_esc_p_raster_s_color_s_0.esc_p_rast -------------------------------------------------------------------------------- /parallel2usb_v1/fp-lib-table: -------------------------------------------------------------------------------- 1 | (fp_lib_table 2 | (lib (name "RPi_Pico")(type "KiCad")(uri "${KIPRJMOD}/KiCad-RP-Pico/RP-Pico Libraries/MCU_RaspberryPi_and_Boards.pretty")(options "")(descr "")) 3 | ) 4 | -------------------------------------------------------------------------------- /parallel2usb_v2/fp-lib-table: -------------------------------------------------------------------------------- 1 | (fp_lib_table 2 | (lib (name "RPi_Pico")(type "KiCad")(uri "${KIPRJMOD}/KiCad-RP-Pico/RP-Pico Libraries/MCU_RaspberryPi_and_Boards.pretty")(options "")(descr "")) 3 | ) 4 | -------------------------------------------------------------------------------- /c/example_auto_set_url.cmake: -------------------------------------------------------------------------------- 1 | set(PICO_EXAMPLE_URL_BASE "https://github.com/raspberrypi/pico-examples/tree/HEAD") 2 | macro(example_auto_set_url TARGET) 3 | file(RELATIVE_PATH URL_REL_PATH "${PICO_EXAMPLES_PATH}" "${CMAKE_CURRENT_LIST_DIR}") 4 | pico_set_program_url(${TARGET} "${PICO_EXAMPLE_URL_BASE}/${URL_REL_PATH}") 5 | endmacro() -------------------------------------------------------------------------------- /parallel2usb_v1/sym-lib-table: -------------------------------------------------------------------------------- 1 | (sym_lib_table 2 | (lib (name "sn74lvc8t245")(type "KiCad")(uri "${KIPRJMOD}/sn74lvc8t245.kicad_sym")(options "")(descr "")) 3 | (lib (name "RPi_Pico")(type "KiCad")(uri "${KIPRJMOD}/KiCad-RP-Pico/RP-Pico Libraries/MCU_RaspberryPi_and_Boards.kicad_sym")(options "")(descr "")) 4 | (lib (name "74lvc161284")(type "KiCad")(uri "${KIPRJMOD}/74lvc161284.kicad_sym")(options "")(descr "")) 5 | ) 6 | -------------------------------------------------------------------------------- /parallel2usb_v2/sym-lib-table: -------------------------------------------------------------------------------- 1 | (sym_lib_table 2 | (lib (name "sn74lvc8t245")(type "KiCad")(uri "${KIPRJMOD}/sn74lvc8t245.kicad_sym")(options "")(descr "")) 3 | (lib (name "RPi_Pico")(type "KiCad")(uri "${KIPRJMOD}/KiCad-RP-Pico/RP-Pico Libraries/MCU_RaspberryPi_and_Boards.kicad_sym")(options "")(descr "")) 4 | (lib (name "74lvc161284")(type "KiCad")(uri "${KIPRJMOD}/74lvc161284.kicad_sym")(options "")(descr "")) 5 | ) 6 | -------------------------------------------------------------------------------- /c/parallel2usb/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_executable(parallel2usb) 2 | 3 | # generate the header file into the source tree as it is included in the RP2040 datasheet 4 | #pico_generate_pio_header(parallel2usb OUTPUT_DIR ${CMAKE_CURRENT_LIST_DIR}/generated) 5 | 6 | target_sources(parallel2usb PRIVATE main.cc 7 | ) 8 | 9 | target_link_libraries(parallel2usb PRIVATE pico_stdlib pico_multicore) 10 | pico_add_extra_outputs(parallel2usb) 11 | pico_enable_stdio_usb(parallel2usb 1) 12 | pico_enable_stdio_uart(parallel2usb 0) 13 | 14 | # add url via pico_set_program_url 15 | example_auto_set_url(parallel2usb) 16 | 17 | -------------------------------------------------------------------------------- /parallel2usb_v1/gerbers/v1/parallel2usb-B_Paste.gbr: -------------------------------------------------------------------------------- 1 | %TF.GenerationSoftware,KiCad,Pcbnew,6.0.10-86aedd382b~118~ubuntu20.04.1*% 2 | %TF.CreationDate,2022-12-31T17:49:26-08:00*% 3 | %TF.ProjectId,parallel2usb,70617261-6c6c-4656-9c32-7573622e6b69,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.10-86aedd382b~118~ubuntu20.04.1) date 2022-12-31 17:49:26* 10 | %MOMM*% 11 | %LPD*% 12 | G01* 13 | G04 APERTURE LIST* 14 | G04 APERTURE END LIST* 15 | M02* 16 | -------------------------------------------------------------------------------- /parallel2usb_v2/gerbers/v2/parallel2usb-B_Paste.gbr: -------------------------------------------------------------------------------- 1 | %TF.GenerationSoftware,KiCad,Pcbnew,6.0.10-86aedd382b~118~ubuntu20.04.1*% 2 | %TF.CreationDate,2023-01-18T21:44:42-08:00*% 3 | %TF.ProjectId,parallel2usb,70617261-6c6c-4656-9c32-7573622e6b69,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.10-86aedd382b~118~ubuntu20.04.1) date 2023-01-18 21:44:42* 10 | %MOMM*% 11 | %LPD*% 12 | G01* 13 | G04 APERTURE LIST* 14 | G04 APERTURE END LIST* 15 | M02* 16 | -------------------------------------------------------------------------------- /examples/run.sh: -------------------------------------------------------------------------------- 1 | inkscape -f tds420a_eps_color_a.eps -h 1280 -y=255 -e - | convert - -rotate 90 tds420a_eps_color_a.png 2 | inkscape -f tds420a_eps_color_b.eps -h 1280 -y=255 -e - | convert - -rotate 90 tds420a_eps_color_b.png 3 | inkscape -f tds420a_eps_color_portrait.eps -w 1280 -y=255 -e tds420a_eps_color_portrait.png 4 | inkscape -f tds420a_eps_mono_image_portrait_a.eps -w 1280 -y=255 -e tds420a_eps_mono_image_portrait_a.png 5 | inkscape -f tds420a_eps_mono_image_portrait_b.eps -w 1280 -y=255 -e tds420a_eps_mono_image_portrait_b.png 6 | inkscape -f tds420a_strobe_ack_eps_mono.eps -w 1280 -y=255 -e tds420a_strobe_ack_eps_mono.png 7 | -------------------------------------------------------------------------------- /parallel2usb_v2/gerbers/v2/parallel2usb-NPTH.drl: -------------------------------------------------------------------------------- 1 | M48 2 | ; DRILL file {KiCad 6.0.10-86aedd382b~118~ubuntu20.04.1} date Wed 18 Jan 2023 09:44:46 PM PST 3 | ; FORMAT={-:-/ absolute / inch / decimal} 4 | ; #@! TF.CreationDate,2023-01-18T21:44:46-08:00 5 | ; #@! TF.GenerationSoftware,Kicad,Pcbnew,6.0.10-86aedd382b~118~ubuntu20.04.1 6 | ; #@! TF.FileFunction,NonPlated,1,2,NPTH 7 | FMAT,2 8 | INCH 9 | ; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill 10 | T1C0.0591 11 | ; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill 12 | T2C0.0709 13 | % 14 | G90 15 | G05 16 | T1 17 | X6.8545Y-4.8256 18 | X7.0455Y-4.8256 19 | T2 20 | X6.8427Y-4.9449 21 | X7.0573Y-4.9449 22 | T0 23 | M30 24 | -------------------------------------------------------------------------------- /parallel2usb_v1/gerbers/v1/parallel2usb-NPTH.drl: -------------------------------------------------------------------------------- 1 | M48 2 | ; DRILL file {KiCad 6.0.10-86aedd382b~118~ubuntu20.04.1} date Sat 31 Dec 2022 05:49:30 PM PST 3 | ; FORMAT={-:-/ absolute / inch / decimal} 4 | ; #@! TF.CreationDate,2022-12-31T17:49:30-08:00 5 | ; #@! TF.GenerationSoftware,Kicad,Pcbnew,6.0.10-86aedd382b~118~ubuntu20.04.1 6 | ; #@! TF.FileFunction,NonPlated,1,4,NPTH 7 | FMAT,2 8 | INCH 9 | ; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill 10 | T1C0.0591 11 | ; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill 12 | T2C0.0709 13 | ; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill 14 | T3C0.1063 15 | % 16 | G90 17 | G05 18 | T1 19 | X4.8565Y-3.9045 20 | X4.8565Y-4.0955 21 | T2 22 | X4.7372Y-3.8927 23 | X4.7372Y-4.1073 24 | T3 25 | X7.23Y-3.075 26 | X7.23Y-4.925 27 | T0 28 | M30 29 | -------------------------------------------------------------------------------- /parallel2usb_v2/gerbers/v2/parallel2usb-Edge_Cuts.gbr: -------------------------------------------------------------------------------- 1 | %TF.GenerationSoftware,KiCad,Pcbnew,6.0.10-86aedd382b~118~ubuntu20.04.1*% 2 | %TF.CreationDate,2023-01-18T21:44:42-08:00*% 3 | %TF.ProjectId,parallel2usb,70617261-6c6c-4656-9c32-7573622e6b69,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.10-86aedd382b~118~ubuntu20.04.1) date 2023-01-18 21:44:42* 9 | %MOMM*% 10 | %LPD*% 11 | G01* 12 | G04 APERTURE LIST* 13 | %TA.AperFunction,Profile*% 14 | %ADD10C,0.100000*% 15 | %TD*% 16 | G04 APERTURE END LIST* 17 | D10* 18 | X209804000Y-128397000D02* 19 | X186690000Y-128397000D01* 20 | X185420000Y-127254000D01* 21 | X164719000Y-127254000D01* 22 | X164719000Y-74803000D01* 23 | X209804000Y-74803000D01* 24 | X209804000Y-128397000D01* 25 | M02* 26 | -------------------------------------------------------------------------------- /c/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.12) 2 | 3 | # Pull in SDK (must be before project) 4 | include(pico_sdk_import.cmake) 5 | 6 | project(pico_examples C CXX ASM) 7 | set(CMAKE_C_STANDARD 11) 8 | set(CMAKE_CXX_STANDARD 17) 9 | 10 | if (PICO_SDK_VERSION_STRING VERSION_LESS "1.3.0") 11 | message(FATAL_ERROR "Raspberry Pi Pico SDK version 1.3.0 (or later) required. Your version is ${PICO_SDK_VERSION_STRING}") 12 | endif() 13 | 14 | set(PICO_EXAMPLES_PATH ${PROJECT_SOURCE_DIR}) 15 | 16 | # Initialize the SDK 17 | pico_sdk_init() 18 | 19 | include(example_auto_set_url.cmake) 20 | add_subdirectory(parallel2usb) 21 | 22 | add_compile_options(-Wall 23 | -Wno-format # int != int32_t as far as the compiler is concerned because gcc has int32_t as long int 24 | -Wno-unused-function # we have some for the docs that aren't called 25 | -Wno-maybe-uninitialized 26 | ) 27 | 28 | -------------------------------------------------------------------------------- /parallel2usb_v1/gerbers/v1/parallel2usb-Edge_Cuts.gbr: -------------------------------------------------------------------------------- 1 | %TF.GenerationSoftware,KiCad,Pcbnew,6.0.10-86aedd382b~118~ubuntu20.04.1*% 2 | %TF.CreationDate,2022-12-31T17:49:26-08:00*% 3 | %TF.ProjectId,parallel2usb,70617261-6c6c-4656-9c32-7573622e6b69,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.10-86aedd382b~118~ubuntu20.04.1) date 2022-12-31 17:49:26* 9 | %MOMM*% 10 | %LPD*% 11 | G01* 12 | G04 APERTURE LIST* 13 | %TA.AperFunction,Profile*% 14 | %ADD10C,0.100000*% 15 | %TD*% 16 | G04 APERTURE END LIST* 17 | D10* 18 | X209804000Y-128397000D02* 19 | X181610000Y-128397000D01* 20 | X176530000Y-118110000D01* 21 | X118745000Y-118110000D01* 22 | X118745000Y-85090000D01* 23 | X176530000Y-85090000D01* 24 | X181610000Y-74803000D01* 25 | X209804000Y-74803000D01* 26 | X209804000Y-128397000D01* 27 | M02* 28 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 2-Clause License 2 | 3 | Copyright (c) 2023, Tom Verbeure 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | 1. Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | 2. Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 20 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 22 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 23 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 24 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | -------------------------------------------------------------------------------- /parallel2usb_v1/parallel2usb.kicad_prl: -------------------------------------------------------------------------------- 1 | { 2 | "board": { 3 | "active_layer": 37, 4 | "active_layer_preset": "", 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": "ffcfeff_ffffffff", 66 | "zone_display_mode": 0 67 | }, 68 | "meta": { 69 | "filename": "parallel2usb.kicad_prl", 70 | "version": 3 71 | }, 72 | "project": { 73 | "files": [] 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /parallel2usb_v2/parallel2usb.kicad_prl: -------------------------------------------------------------------------------- 1 | { 2 | "board": { 3 | "active_layer": 36, 4 | "active_layer_preset": "", 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": "ffcffdf_ffffffff", 66 | "zone_display_mode": 0 67 | }, 68 | "meta": { 69 | "filename": "parallel2usb.kicad_prl", 70 | "version": 3 71 | }, 72 | "project": { 73 | "files": [] 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /parallel2usb_v1/KiCad-RP-Pico/RP-Pico Libraries/MCU_RaspberryPi_and_Boards.pretty/Crystal_SMD_HC49-US.kicad_mod: -------------------------------------------------------------------------------- 1 | (module Crystal_SMD_HC49-US (layer F.Cu) (tedit 5F0C7995) 2 | (descr "SMD Crystal HC-49-SD http://cdn-reichelt.de/documents/datenblatt/B400/xxx-HC49-SMD.pdf, 11.4x4.7mm^2 package") 3 | (tags "SMD SMT crystal") 4 | (attr smd) 5 | (fp_text reference Y1 (at 0 -3.55) (layer F.SilkS) 6 | (effects (font (size 1 1) (thickness 0.15))) 7 | ) 8 | (fp_text value ABLS-12.000MHZ-B4-T (at 0 3.55) (layer F.Fab) 9 | (effects (font (size 1 1) (thickness 0.15))) 10 | ) 11 | (fp_line (start -6.7 1.3) (end -6.7 2.55) (layer F.SilkS) (width 0.12)) 12 | (fp_text user %R (at 0 0) (layer F.Fab) 13 | (effects (font (size 1 1) (thickness 0.15))) 14 | ) 15 | (fp_line (start -5.7 -2.35) (end -5.7 2.35) (layer F.Fab) (width 0.1)) 16 | (fp_line (start -5.7 2.35) (end 5.7 2.35) (layer F.Fab) (width 0.1)) 17 | (fp_line (start 5.7 2.35) (end 5.7 -2.35) (layer F.Fab) (width 0.1)) 18 | (fp_line (start 5.7 -2.35) (end -5.7 -2.35) (layer F.Fab) (width 0.1)) 19 | (fp_line (start -3.015 -2.115) (end 3.015 -2.115) (layer F.Fab) (width 0.1)) 20 | (fp_line (start -3.015 2.115) (end 3.015 2.115) (layer F.Fab) (width 0.1)) 21 | (fp_line (start 5.9 -2.55) (end -6.7 -2.55) (layer F.SilkS) (width 0.12)) 22 | (fp_line (start -6.7 -2.55) (end -6.7 -1.3) (layer F.SilkS) (width 0.12)) 23 | (fp_line (start -6.7 2.55) (end 5.9 2.55) (layer F.SilkS) (width 0.12)) 24 | (fp_line (start -6.8 -2.6) (end -6.8 2.6) (layer F.CrtYd) (width 0.05)) 25 | (fp_line (start -6.8 2.6) (end 6.8 2.6) (layer F.CrtYd) (width 0.05)) 26 | (fp_line (start 6.8 2.6) (end 6.8 -2.6) (layer F.CrtYd) (width 0.05)) 27 | (fp_line (start 6.8 -2.6) (end -6.8 -2.6) (layer F.CrtYd) (width 0.05)) 28 | (fp_arc (start -3.015 0) (end -3.015 -2.115) (angle -180) (layer F.Fab) (width 0.1)) 29 | (fp_arc (start 3.015 0) (end 3.015 -2.115) (angle 180) (layer F.Fab) (width 0.1)) 30 | (pad 1 smd rect (at -4.5 0) (size 5.6 2.1) (layers F.Cu F.Paste F.Mask)) 31 | (pad 2 smd rect (at 4.5 0) (size 5.6 2.1) (layers F.Cu F.Paste F.Mask)) 32 | (model ${KISYS3DMOD}/Crystal.3dshapes/Crystal_SMD_HC49-SD.wrl 33 | (at (xyz 0 0 0)) 34 | (scale (xyz 1 1 1)) 35 | (rotate (xyz 0 0 0)) 36 | ) 37 | ) 38 | -------------------------------------------------------------------------------- /parallel2usb_v2/KiCad-RP-Pico/RP-Pico Libraries/MCU_RaspberryPi_and_Boards.pretty/Crystal_SMD_HC49-US.kicad_mod: -------------------------------------------------------------------------------- 1 | (module Crystal_SMD_HC49-US (layer F.Cu) (tedit 5F0C7995) 2 | (descr "SMD Crystal HC-49-SD http://cdn-reichelt.de/documents/datenblatt/B400/xxx-HC49-SMD.pdf, 11.4x4.7mm^2 package") 3 | (tags "SMD SMT crystal") 4 | (attr smd) 5 | (fp_text reference Y1 (at 0 -3.55) (layer F.SilkS) 6 | (effects (font (size 1 1) (thickness 0.15))) 7 | ) 8 | (fp_text value ABLS-12.000MHZ-B4-T (at 0 3.55) (layer F.Fab) 9 | (effects (font (size 1 1) (thickness 0.15))) 10 | ) 11 | (fp_line (start -6.7 1.3) (end -6.7 2.55) (layer F.SilkS) (width 0.12)) 12 | (fp_text user %R (at 0 0) (layer F.Fab) 13 | (effects (font (size 1 1) (thickness 0.15))) 14 | ) 15 | (fp_line (start -5.7 -2.35) (end -5.7 2.35) (layer F.Fab) (width 0.1)) 16 | (fp_line (start -5.7 2.35) (end 5.7 2.35) (layer F.Fab) (width 0.1)) 17 | (fp_line (start 5.7 2.35) (end 5.7 -2.35) (layer F.Fab) (width 0.1)) 18 | (fp_line (start 5.7 -2.35) (end -5.7 -2.35) (layer F.Fab) (width 0.1)) 19 | (fp_line (start -3.015 -2.115) (end 3.015 -2.115) (layer F.Fab) (width 0.1)) 20 | (fp_line (start -3.015 2.115) (end 3.015 2.115) (layer F.Fab) (width 0.1)) 21 | (fp_line (start 5.9 -2.55) (end -6.7 -2.55) (layer F.SilkS) (width 0.12)) 22 | (fp_line (start -6.7 -2.55) (end -6.7 -1.3) (layer F.SilkS) (width 0.12)) 23 | (fp_line (start -6.7 2.55) (end 5.9 2.55) (layer F.SilkS) (width 0.12)) 24 | (fp_line (start -6.8 -2.6) (end -6.8 2.6) (layer F.CrtYd) (width 0.05)) 25 | (fp_line (start -6.8 2.6) (end 6.8 2.6) (layer F.CrtYd) (width 0.05)) 26 | (fp_line (start 6.8 2.6) (end 6.8 -2.6) (layer F.CrtYd) (width 0.05)) 27 | (fp_line (start 6.8 -2.6) (end -6.8 -2.6) (layer F.CrtYd) (width 0.05)) 28 | (fp_arc (start -3.015 0) (end -3.015 -2.115) (angle -180) (layer F.Fab) (width 0.1)) 29 | (fp_arc (start 3.015 0) (end 3.015 -2.115) (angle 180) (layer F.Fab) (width 0.1)) 30 | (pad 1 smd rect (at -4.5 0) (size 5.6 2.1) (layers F.Cu F.Paste F.Mask)) 31 | (pad 2 smd rect (at 4.5 0) (size 5.6 2.1) (layers F.Cu F.Paste F.Mask)) 32 | (model ${KISYS3DMOD}/Crystal.3dshapes/Crystal_SMD_HC49-SD.wrl 33 | (at (xyz 0 0 0)) 34 | (scale (xyz 1 1 1)) 35 | (rotate (xyz 0 0 0)) 36 | ) 37 | ) 38 | -------------------------------------------------------------------------------- /parallel2usb_v2/gerbers/v2/parallel2usb-PTH.drl: -------------------------------------------------------------------------------- 1 | M48 2 | ; DRILL file {KiCad 6.0.10-86aedd382b~118~ubuntu20.04.1} date Wed 18 Jan 2023 09:44:46 PM PST 3 | ; FORMAT={-:-/ absolute / inch / decimal} 4 | ; #@! TF.CreationDate,2023-01-18T21:44:46-08:00 5 | ; #@! TF.GenerationSoftware,Kicad,Pcbnew,6.0.10-86aedd382b~118~ubuntu20.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.0157 13 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 14 | T3C0.0394 15 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 16 | T4C0.0402 17 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 18 | T5C0.1260 19 | % 20 | G90 21 | G05 22 | T1 23 | X6.7439Y-3.8561 24 | X6.7457Y-4.2761 25 | X7.14Y-3.35 26 | X7.2Y-4.2 27 | X7.21Y-3.85 28 | X7.25Y-4.3 29 | X7.41Y-4.3 30 | X7.425Y-4.075 31 | X7.435Y-4.54 32 | T2 33 | X6.835Y-3.95 34 | X6.835Y-4.075 35 | X6.835Y-4.175 36 | X6.86Y-3.7 37 | X6.91Y-4.37 38 | X7.09Y-3.7 39 | X7.115Y-3.95 40 | X7.115Y-4.075 41 | X7.115Y-4.3 42 | X7.14Y-3.395 43 | X7.14Y-3.5 44 | X7.15Y-4.55 45 | X7.23Y-4.55 46 | T3 47 | X7.6681Y-3.035 48 | X7.6681Y-3.135 49 | X7.6681Y-3.235 50 | X7.6681Y-3.335 51 | X7.6681Y-3.435 52 | X7.6681Y-3.535 53 | X7.6681Y-3.635 54 | X7.6681Y-3.735 55 | X7.6681Y-3.835 56 | X7.6681Y-3.935 57 | X7.6681Y-4.035 58 | X7.6681Y-4.135 59 | X7.6681Y-4.235 60 | X7.6681Y-4.335 61 | X7.6681Y-4.435 62 | X7.6681Y-4.535 63 | X7.6681Y-4.635 64 | X7.6681Y-4.735 65 | X7.6681Y-4.835 66 | X7.6681Y-4.935 67 | X7.8381Y-3.3459 68 | X7.8381Y-3.4549 69 | X7.8381Y-3.564 70 | X7.8381Y-3.673 71 | X7.8381Y-3.7821 72 | X7.8381Y-3.8911 73 | X7.8381Y-4.0002 74 | X7.8381Y-4.1093 75 | X7.8381Y-4.2183 76 | X7.8381Y-4.3274 77 | X7.8381Y-4.4364 78 | X7.8381Y-4.5455 79 | X7.8381Y-4.6545 80 | X7.9499Y-3.4004 81 | X7.9499Y-3.5094 82 | X7.9499Y-3.6185 83 | X7.9499Y-3.7276 84 | X7.9499Y-3.8366 85 | X7.9499Y-3.9457 86 | X7.9499Y-4.0547 87 | X7.9499Y-4.1638 88 | X7.9499Y-4.2728 89 | X7.9499Y-4.3819 90 | X7.9499Y-4.4909 91 | X7.9499Y-4.6 92 | T4 93 | X6.6Y-3.05 94 | X6.6Y-3.15 95 | X6.6Y-3.25 96 | X6.6Y-3.35 97 | X6.6Y-3.45 98 | X6.6Y-3.55 99 | X6.6Y-3.65 100 | X6.6Y-3.75 101 | X6.6Y-3.85 102 | X6.6Y-3.95 103 | X6.6Y-4.05 104 | X6.6Y-4.15 105 | X6.6Y-4.25 106 | X6.6Y-4.35 107 | X6.6Y-4.45 108 | X6.6Y-4.55 109 | X6.6Y-4.65 110 | X6.6Y-4.75 111 | X6.6Y-4.85 112 | X6.6Y-4.95 113 | X6.85Y-3.0591 114 | X6.95Y-3.0591 115 | X7.05Y-3.0591 116 | X7.3Y-3.05 117 | X7.3Y-3.15 118 | X7.3Y-3.25 119 | X7.3Y-3.35 120 | X7.3Y-3.45 121 | X7.3Y-3.55 122 | X7.3Y-3.65 123 | X7.3Y-3.75 124 | X7.3Y-3.85 125 | X7.3Y-3.95 126 | X7.3Y-4.05 127 | X7.3Y-4.15 128 | X7.3Y-4.25 129 | X7.3Y-4.35 130 | X7.3Y-4.45 131 | X7.3Y-4.55 132 | X7.3Y-4.65 133 | X7.3Y-4.75 134 | X7.3Y-4.85 135 | X7.3Y-4.95 136 | T5 137 | X7.894Y-3.073 138 | X7.894Y-4.9274 139 | T0 140 | M30 141 | -------------------------------------------------------------------------------- /parallel2usb_v1/KiCad-RP-Pico/README.md: -------------------------------------------------------------------------------- 1 | # KiCad-RP-Pico 2 | A simple repository of files needed to add a 3D footprint of the Raspberry Pi Pico board to KiCad. 3 | 4 | ![Rasperry Pi Pico mechanical specification](Images/Image01.png) 5 | 6 | ## Schematic and footprint 7 | I've started from the schematics and footprint files available on the [HeadBoffin RP_Silicon_KiCad GitHub project](https://github.com/HeadBoffin/RP_Silicon_KiCad). Because there are some errors in the readme file on how and where we can get those files from the Raspberry Pi web site, I've copied the needed files here, on the `RP-Pico Libraries` folder. Follow the [install instructions](Install%20instructions.md) to add the Raspberry Pi Pico board schema and footprint to a KiCad project: 8 | 9 | ![schema and footprint screenshot](Images/Image02.png) 10 | 11 | ## 3D Visual 12 | Elas, with the files found in the [HeadBoffin project](https://github.com/HeadBoffin/RP_Silicon_KiCad) no visual footprint is available, as we can see on the 3D viewer: 13 | 14 | ![footprint without 3D visual screenshot](Images/Image03.png) 15 | 16 | So I decided to create one, using the mechanical specification from the [Raspberry Pi Pico datasheet](https://datasheets.raspberrypi.org/pico/pico-datasheet.pdf): 17 | 18 | ![Rasperry Pi Pico mechanical specification](Images/Image04.png) 19 | 20 | I've used SketchUp to create the 3D model: 21 | 22 | ![Rasperry Pi Pico mechanical specification](Images/Image05.png) 23 | 24 | and I used the native Sketchup export function (no plugin needed) to create the VRLM file `Pico.wrl` that I've also added an the `RP-Pico Libraries` folder, as the VRLM format is one of the 3D model format that KiCad allow to use for the visual representation of a CPB footprint. 25 | 26 | After adding it to the Raspberry Pi Pico KiCad footprint library, we can finally see the visual representation of the Raspberry Pi Pico board: 27 | 28 | ![Rasperry Pi Pico mechanical specification](Images/Image06.png) 29 | 30 | Please note that the castellated pins of the Pico board allow it to be usable as a surface mount module. That's way you see the board simply placed on top of the PCB board. 31 | 32 | ## Install 3D visual 33 | 34 | Please note that adding the visual file to the footprint make the use of KiCad very slow when showing the 3D viewer for the first time. On my old laptop it takes 30s to show, but only 3s to reopen it. The good news are that you can disable it while working at your project and enable it when you want a nice 3D representation of your work. 35 | 36 | To install and enable/disable it follow the [install instructions](Install%20instructions.md). 37 | 38 | ## Test project 39 | 40 | I've created a test project where you can find a simple usage example. The first image of this readme shows the result. 41 | 42 | ## License 43 | Please read the [License](LICENSE) where is stated that this work is free to use. 44 | A tweet with an image of your Raspberry Pi Pico project with a link this project and me (@tpcware) would be greatly appreciated. -------------------------------------------------------------------------------- /parallel2usb_v2/KiCad-RP-Pico/README.md: -------------------------------------------------------------------------------- 1 | # KiCad-RP-Pico 2 | A simple repository of files needed to add a 3D footprint of the Raspberry Pi Pico board to KiCad. 3 | 4 | ![Rasperry Pi Pico mechanical specification](Images/Image01.png) 5 | 6 | ## Schematic and footprint 7 | I've started from the schematics and footprint files available on the [HeadBoffin RP_Silicon_KiCad GitHub project](https://github.com/HeadBoffin/RP_Silicon_KiCad). Because there are some errors in the readme file on how and where we can get those files from the Raspberry Pi web site, I've copied the needed files here, on the `RP-Pico Libraries` folder. Follow the [install instructions](Install%20instructions.md) to add the Raspberry Pi Pico board schema and footprint to a KiCad project: 8 | 9 | ![schema and footprint screenshot](Images/Image02.png) 10 | 11 | ## 3D Visual 12 | Elas, with the files found in the [HeadBoffin project](https://github.com/HeadBoffin/RP_Silicon_KiCad) no visual footprint is available, as we can see on the 3D viewer: 13 | 14 | ![footprint without 3D visual screenshot](Images/Image03.png) 15 | 16 | So I decided to create one, using the mechanical specification from the [Raspberry Pi Pico datasheet](https://datasheets.raspberrypi.org/pico/pico-datasheet.pdf): 17 | 18 | ![Rasperry Pi Pico mechanical specification](Images/Image04.png) 19 | 20 | I've used SketchUp to create the 3D model: 21 | 22 | ![Rasperry Pi Pico mechanical specification](Images/Image05.png) 23 | 24 | and I used the native Sketchup export function (no plugin needed) to create the VRLM file `Pico.wrl` that I've also added an the `RP-Pico Libraries` folder, as the VRLM format is one of the 3D model format that KiCad allow to use for the visual representation of a CPB footprint. 25 | 26 | After adding it to the Raspberry Pi Pico KiCad footprint library, we can finally see the visual representation of the Raspberry Pi Pico board: 27 | 28 | ![Rasperry Pi Pico mechanical specification](Images/Image06.png) 29 | 30 | Please note that the castellated pins of the Pico board allow it to be usable as a surface mount module. That's way you see the board simply placed on top of the PCB board. 31 | 32 | ## Install 3D visual 33 | 34 | Please note that adding the visual file to the footprint make the use of KiCad very slow when showing the 3D viewer for the first time. On my old laptop it takes 30s to show, but only 3s to reopen it. The good news are that you can disable it while working at your project and enable it when you want a nice 3D representation of your work. 35 | 36 | To install and enable/disable it follow the [install instructions](Install%20instructions.md). 37 | 38 | ## Test project 39 | 40 | I've created a test project where you can find a simple usage example. The first image of this readme shows the result. 41 | 42 | ## License 43 | Please read the [License](LICENSE) where is stated that this work is free to use. 44 | A tweet with an image of your Raspberry Pi Pico project with a link this project and me (@tpcware) would be greatly appreciated. -------------------------------------------------------------------------------- /parallel2usb_v1/KiCad-RP-Pico/LICENSE: -------------------------------------------------------------------------------- 1 | ### TPCWare KiCad Library License 2 | 3 | The TPCWare KiCad Library is licensed under the [Creative Commons CC-BY-SA 4.0 License](https://creativecommons.org/licenses/by-sa/4.0/legalcode), with the following exception: 4 | 5 | --------- 6 | 7 | _To the extent that the creation of electronic designs that use 'Licensed Material' can be considered to be 'Adapted Material', then the copyright holder waives article 3 of the license with respect to these designs and any generated files which use data provided as part of the 'Licensed Material'._ 8 | 9 | --------- 10 | 11 | 12 | **What does this mean?** 13 | 14 | TPCWare KiCad Library is licensed in such a way to ensure free use of library data for commercial, closed, and non-commercial projects without restriction. TPCWare Corporation does not wish to exert any control over designs produced using the library data, or force users to reveal proprietary information contained in their designs. Neither do we wish to force users to attribute the TPCWare KiCad Library _within their design_. 15 | 16 | Use of the library data in a project does not (by itself) require that the design or any files generated from the design are licensed under the CC-BY-SA 4.0 License. You are free to use the library data in your own projects without the obligation to share your project files under this or any other license agreement. 17 | 18 | However, if you wish to redistribute the TPCWare KiCad Library, or parts thereof (including in modified form) as a collection then the exception above does not apply. Redistributed library collections must be shared under the same license agreement. Under these circumstances, the libraries must also retain attribution information, including the license documents which are distributed with the library files. 19 | 20 | ---------------------- 21 | 22 | 23 | **Disclaimer of Warranties and Limitation of Liability.** 24 | 25 | a. Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You. 26 | b. To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You. 27 | c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability. -------------------------------------------------------------------------------- /parallel2usb_v2/KiCad-RP-Pico/LICENSE: -------------------------------------------------------------------------------- 1 | ### TPCWare KiCad Library License 2 | 3 | The TPCWare KiCad Library is licensed under the [Creative Commons CC-BY-SA 4.0 License](https://creativecommons.org/licenses/by-sa/4.0/legalcode), with the following exception: 4 | 5 | --------- 6 | 7 | _To the extent that the creation of electronic designs that use 'Licensed Material' can be considered to be 'Adapted Material', then the copyright holder waives article 3 of the license with respect to these designs and any generated files which use data provided as part of the 'Licensed Material'._ 8 | 9 | --------- 10 | 11 | 12 | **What does this mean?** 13 | 14 | TPCWare KiCad Library is licensed in such a way to ensure free use of library data for commercial, closed, and non-commercial projects without restriction. TPCWare Corporation does not wish to exert any control over designs produced using the library data, or force users to reveal proprietary information contained in their designs. Neither do we wish to force users to attribute the TPCWare KiCad Library _within their design_. 15 | 16 | Use of the library data in a project does not (by itself) require that the design or any files generated from the design are licensed under the CC-BY-SA 4.0 License. You are free to use the library data in your own projects without the obligation to share your project files under this or any other license agreement. 17 | 18 | However, if you wish to redistribute the TPCWare KiCad Library, or parts thereof (including in modified form) as a collection then the exception above does not apply. Redistributed library collections must be shared under the same license agreement. Under these circumstances, the libraries must also retain attribution information, including the license documents which are distributed with the library files. 19 | 20 | ---------------------- 21 | 22 | 23 | **Disclaimer of Warranties and Limitation of Liability.** 24 | 25 | a. Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You. 26 | b. To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You. 27 | c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability. -------------------------------------------------------------------------------- /parallel2usb_v1/gerbers/v1/parallel2usb-PTH.drl: -------------------------------------------------------------------------------- 1 | M48 2 | ; DRILL file {KiCad 6.0.10-86aedd382b~118~ubuntu20.04.1} date Sat 31 Dec 2022 05:49:30 PM PST 3 | ; FORMAT={-:-/ absolute / inch / decimal} 4 | ; #@! TF.CreationDate,2022-12-31T17:49:30-08:00 5 | ; #@! TF.GenerationSoftware,Kicad,Pcbnew,6.0.10-86aedd382b~118~ubuntu20.04.1 6 | ; #@! TF.FileFunction,Plated,1,4,PTH 7 | FMAT,2 8 | INCH 9 | ; #@! TA.AperFunction,Plated,PTH,ViaDrill 10 | T1C0.0079 11 | ; #@! TA.AperFunction,Plated,PTH,ViaDrill 12 | T2C0.0157 13 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 14 | T3C0.0394 15 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 16 | T4C0.0402 17 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 18 | T5C0.1260 19 | % 20 | G90 21 | G05 22 | T1 23 | X7.274Y-4.089 24 | X7.275Y-4.048 25 | X7.28Y-3.84 26 | X7.29Y-4.13 27 | X7.2911Y-4.29 28 | X7.298Y-4.177 29 | X7.31Y-4.315 30 | X7.312Y-4.367 31 | X7.361Y-4.664 32 | X7.361Y-4.764 33 | X7.361Y-4.864 34 | X7.362Y-3.264 35 | X7.362Y-3.364 36 | X7.362Y-3.464 37 | X7.362Y-3.564 38 | X7.362Y-3.664 39 | X7.362Y-3.764 40 | X7.362Y-3.864 41 | X7.362Y-3.964 42 | X7.362Y-4.064 43 | X7.362Y-4.164 44 | X7.362Y-4.264 45 | X7.362Y-4.364 46 | X7.362Y-4.464 47 | X7.362Y-4.564 48 | T2 49 | X6.91Y-3.94 50 | X6.91Y-4.065 51 | X6.91Y-4.165 52 | X6.98Y-3.565 53 | X6.98Y-3.865 54 | X6.98Y-4.14 55 | X7.055Y-3.685 56 | X7.13Y-3.865 57 | X7.13Y-4.14 58 | X7.19Y-3.94 59 | X7.19Y-4.065 60 | X7.19Y-4.29 61 | T3 62 | X6.9556Y-4.44 63 | X7.0556Y-4.44 64 | X7.1556Y-4.44 65 | X7.6681Y-3.035 66 | X7.6681Y-3.135 67 | X7.6681Y-3.235 68 | X7.6681Y-3.335 69 | X7.6681Y-3.435 70 | X7.6681Y-3.535 71 | X7.6681Y-3.635 72 | X7.6681Y-3.735 73 | X7.6681Y-3.835 74 | X7.6681Y-3.935 75 | X7.6681Y-4.035 76 | X7.6681Y-4.135 77 | X7.6681Y-4.235 78 | X7.6681Y-4.335 79 | X7.6681Y-4.435 80 | X7.6681Y-4.535 81 | X7.6681Y-4.635 82 | X7.6681Y-4.735 83 | X7.6681Y-4.835 84 | X7.6681Y-4.935 85 | X7.8381Y-3.3459 86 | X7.8381Y-3.4549 87 | X7.8381Y-3.564 88 | X7.8381Y-3.673 89 | X7.8381Y-3.7821 90 | X7.8381Y-3.8911 91 | X7.8381Y-4.0002 92 | X7.8381Y-4.1093 93 | X7.8381Y-4.2183 94 | X7.8381Y-4.3274 95 | X7.8381Y-4.4364 96 | X7.8381Y-4.5455 97 | X7.8381Y-4.6545 98 | X7.9499Y-3.4004 99 | X7.9499Y-3.5094 100 | X7.9499Y-3.6185 101 | X7.9499Y-3.7276 102 | X7.9499Y-3.8366 103 | X7.9499Y-3.9457 104 | X7.9499Y-4.0547 105 | X7.9499Y-4.1638 106 | X7.9499Y-4.2728 107 | X7.9499Y-4.3819 108 | X7.9499Y-4.4909 109 | X7.9499Y-4.6 110 | T4 111 | X4.7321Y-3.65 112 | X4.7321Y-4.35 113 | X4.8321Y-3.65 114 | X4.8321Y-4.35 115 | X4.9321Y-3.65 116 | X4.9321Y-4.35 117 | X5.0321Y-3.65 118 | X5.0321Y-4.35 119 | X5.1321Y-3.65 120 | X5.1321Y-4.35 121 | X5.2321Y-3.65 122 | X5.2321Y-4.35 123 | X5.3321Y-3.65 124 | X5.3321Y-4.35 125 | X5.4321Y-3.65 126 | X5.4321Y-4.35 127 | X5.5321Y-3.65 128 | X5.5321Y-4.35 129 | X5.6321Y-3.65 130 | X5.6321Y-4.35 131 | X5.7321Y-3.65 132 | X5.7321Y-4.35 133 | X5.8321Y-3.65 134 | X5.8321Y-4.35 135 | X5.9321Y-3.65 136 | X5.9321Y-4.35 137 | X6.0321Y-3.65 138 | X6.0321Y-4.35 139 | X6.1321Y-3.65 140 | X6.1321Y-4.35 141 | X6.2321Y-3.65 142 | X6.2321Y-4.35 143 | X6.3321Y-3.65 144 | X6.3321Y-4.35 145 | X6.4321Y-3.65 146 | X6.4321Y-4.35 147 | X6.5321Y-3.65 148 | X6.5321Y-4.35 149 | X6.623Y-3.9 150 | X6.623Y-4.0 151 | X6.623Y-4.1 152 | X6.6321Y-3.65 153 | X6.6321Y-4.35 154 | T5 155 | X7.894Y-3.073 156 | X7.894Y-4.9274 157 | T0 158 | M30 159 | -------------------------------------------------------------------------------- /parallel2usb_v1/KiCad-RP-Pico/Install instructions.md: -------------------------------------------------------------------------------- 1 | # Install instructions 2 | 3 | ## 1. Copy the files locally 4 | 5 | Copy the `RP-Pico Libraries` folder wherever you like on your computer. 6 | 7 | ## 2. Install the Raspberry Pi Pico board schema symbol 8 | 9 | Use the `KiCad | Preferences | Manage Symbol Libraries...` command to manage the symbol library: 10 | 11 | ![symbol library manager](Images/Image07.png) 12 | 13 | then select the global tab and click on the folder button: 14 | 15 | ![symbol library manager](Images/Image08.png) 16 | 17 | navigate to the `RP-Pico Libraries` folder, select the `MCU_RaspberryPi_and_Boards.kicad_sym` file and open it: 18 | 19 | ![symbol library manager](Images/Image09.png) 20 | 21 | et voilà, the first step is completed: 22 | 23 | ![symbol library manager](Images/Image10.png) 24 | 25 | You can now close the symbol libraries manager window. 26 | 27 | ## 3. Install the Raspberry Pi Pico board footprint 28 | 29 | You can use a similar approach to add the footprint to the footprint libraries manager, but I've found some issues that I've solved using the footprint editor, so here are the steps I suggest you to follow: 30 | 31 | Open the footprint editor 32 | 33 | ![symbol library manager](Images/Image11.png) 34 | 35 | wait for the footprints to load... then use the `File | Add Library` command: 36 | 37 | ![symbol library manager](Images/Image12.png) 38 | 39 | confirm the `Global` choice: 40 | 41 | ![symbol library manager](Images/Image13.png) 42 | 43 | and select the `MCU_RaspberriPi_and_Boards.pretty` folder (yes, the folder represent a footprint library on KiCad): 44 | 45 | ![symbol library manager](Images/Image14.png) 46 | 47 | Now the library is installed on KiCad with the Raspberry Pi Pico footprint (double click on it to see it on the editor pane): 48 | 49 | ![symbol library manager](Images/Image15.png) 50 | 51 | Don't close the windows as the next step start from here. 52 | 53 | ## 4. Install the Raspberry Pi Pico board footprint 3D visual 54 | 55 | If not already open, open the the footprint editor 56 | 57 | ![symbol library manager](Images/Image11.png) 58 | 59 | double click on the `RPi_Pico_SMD_TH` footprint from the `MCU_RaspberriPi_and_Boards` library and then click on the `Footprint properties` icon: 60 | 61 | ![symbol library manager](Images/Image16.png) 62 | 63 | In the footprint properties window, first select the `3D Settings` tab. Please note that the preview shows only the PCB board with the footprint added on step 3, without any 3D representation of the Raspberry Pi Pico board. Now click on the folder icon to add the 3D model: 64 | 65 | ![symbol library manager](Images/Image17.png) 66 | 67 | Navigate to the `RP-Pico Libraries` folder, select the `Pico.wrl` file and wait until the model is shown in the right panel, then confirm with OK: 68 | 69 | ![symbol library manager](Images/Image18.png) 70 | 71 | The model is already scaled and translated to match the footprint: 72 | 73 | ![symbol library manager](Images/Image19.png) 74 | 75 | now close the `Footprint Properties` window, and the `Footprint Editor`, obviously saving the changes. 76 | 77 | ## Conclusion 78 | 79 | Now that you've installed the schema and footprint and added the 3D model to the footprint, you can use the Raspberry Pi Pico board on your KiCad projects. 80 | 81 | I've also added a test KiCad Project on the `Test` folder, that you can use to see an example of it. 82 | 83 | Have fun! 84 | -------------------------------------------------------------------------------- /parallel2usb_v2/KiCad-RP-Pico/Install instructions.md: -------------------------------------------------------------------------------- 1 | # Install instructions 2 | 3 | ## 1. Copy the files locally 4 | 5 | Copy the `RP-Pico Libraries` folder wherever you like on your computer. 6 | 7 | ## 2. Install the Raspberry Pi Pico board schema symbol 8 | 9 | Use the `KiCad | Preferences | Manage Symbol Libraries...` command to manage the symbol library: 10 | 11 | ![symbol library manager](Images/Image07.png) 12 | 13 | then select the global tab and click on the folder button: 14 | 15 | ![symbol library manager](Images/Image08.png) 16 | 17 | navigate to the `RP-Pico Libraries` folder, select the `MCU_RaspberryPi_and_Boards.kicad_sym` file and open it: 18 | 19 | ![symbol library manager](Images/Image09.png) 20 | 21 | et voilà, the first step is completed: 22 | 23 | ![symbol library manager](Images/Image10.png) 24 | 25 | You can now close the symbol libraries manager window. 26 | 27 | ## 3. Install the Raspberry Pi Pico board footprint 28 | 29 | You can use a similar approach to add the footprint to the footprint libraries manager, but I've found some issues that I've solved using the footprint editor, so here are the steps I suggest you to follow: 30 | 31 | Open the footprint editor 32 | 33 | ![symbol library manager](Images/Image11.png) 34 | 35 | wait for the footprints to load... then use the `File | Add Library` command: 36 | 37 | ![symbol library manager](Images/Image12.png) 38 | 39 | confirm the `Global` choice: 40 | 41 | ![symbol library manager](Images/Image13.png) 42 | 43 | and select the `MCU_RaspberriPi_and_Boards.pretty` folder (yes, the folder represent a footprint library on KiCad): 44 | 45 | ![symbol library manager](Images/Image14.png) 46 | 47 | Now the library is installed on KiCad with the Raspberry Pi Pico footprint (double click on it to see it on the editor pane): 48 | 49 | ![symbol library manager](Images/Image15.png) 50 | 51 | Don't close the windows as the next step start from here. 52 | 53 | ## 4. Install the Raspberry Pi Pico board footprint 3D visual 54 | 55 | If not already open, open the the footprint editor 56 | 57 | ![symbol library manager](Images/Image11.png) 58 | 59 | double click on the `RPi_Pico_SMD_TH` footprint from the `MCU_RaspberriPi_and_Boards` library and then click on the `Footprint properties` icon: 60 | 61 | ![symbol library manager](Images/Image16.png) 62 | 63 | In the footprint properties window, first select the `3D Settings` tab. Please note that the preview shows only the PCB board with the footprint added on step 3, without any 3D representation of the Raspberry Pi Pico board. Now click on the folder icon to add the 3D model: 64 | 65 | ![symbol library manager](Images/Image17.png) 66 | 67 | Navigate to the `RP-Pico Libraries` folder, select the `Pico.wrl` file and wait until the model is shown in the right panel, then confirm with OK: 68 | 69 | ![symbol library manager](Images/Image18.png) 70 | 71 | The model is already scaled and translated to match the footprint: 72 | 73 | ![symbol library manager](Images/Image19.png) 74 | 75 | now close the `Footprint Properties` window, and the `Footprint Editor`, obviously saving the changes. 76 | 77 | ## Conclusion 78 | 79 | Now that you've installed the schema and footprint and added the 3D model to the footprint, you can use the Raspberry Pi Pico board on your KiCad projects. 80 | 81 | I've also added a test KiCad Project on the `Test` folder, that you can use to see an example of it. 82 | 83 | Have fun! 84 | -------------------------------------------------------------------------------- /c/pico_sdk_import.cmake: -------------------------------------------------------------------------------- 1 | # This is a copy of /external/pico_sdk_import.cmake 2 | 3 | # This can be dropped into an external project to help locate this SDK 4 | # It should be include()ed prior to project() 5 | 6 | if (DEFINED ENV{PICO_SDK_PATH} AND (NOT PICO_SDK_PATH)) 7 | set(PICO_SDK_PATH $ENV{PICO_SDK_PATH}) 8 | message("Using PICO_SDK_PATH from environment ('${PICO_SDK_PATH}')") 9 | endif () 10 | 11 | if (DEFINED ENV{PICO_SDK_FETCH_FROM_GIT} AND (NOT PICO_SDK_FETCH_FROM_GIT)) 12 | set(PICO_SDK_FETCH_FROM_GIT $ENV{PICO_SDK_FETCH_FROM_GIT}) 13 | message("Using PICO_SDK_FETCH_FROM_GIT from environment ('${PICO_SDK_FETCH_FROM_GIT}')") 14 | endif () 15 | 16 | if (DEFINED ENV{PICO_SDK_FETCH_FROM_GIT_PATH} AND (NOT PICO_SDK_FETCH_FROM_GIT_PATH)) 17 | set(PICO_SDK_FETCH_FROM_GIT_PATH $ENV{PICO_SDK_FETCH_FROM_GIT_PATH}) 18 | message("Using PICO_SDK_FETCH_FROM_GIT_PATH from environment ('${PICO_SDK_FETCH_FROM_GIT_PATH}')") 19 | endif () 20 | 21 | set(PICO_SDK_PATH "${PICO_SDK_PATH}" CACHE PATH "Path to the Raspberry Pi Pico SDK") 22 | set(PICO_SDK_FETCH_FROM_GIT "${PICO_SDK_FETCH_FROM_GIT}" CACHE BOOL "Set to ON to fetch copy of SDK from git if not otherwise locatable") 23 | set(PICO_SDK_FETCH_FROM_GIT_PATH "${PICO_SDK_FETCH_FROM_GIT_PATH}" CACHE FILEPATH "location to download SDK") 24 | 25 | if (NOT PICO_SDK_PATH) 26 | if (PICO_SDK_FETCH_FROM_GIT) 27 | include(FetchContent) 28 | set(FETCHCONTENT_BASE_DIR_SAVE ${FETCHCONTENT_BASE_DIR}) 29 | if (PICO_SDK_FETCH_FROM_GIT_PATH) 30 | get_filename_component(FETCHCONTENT_BASE_DIR "${PICO_SDK_FETCH_FROM_GIT_PATH}" REALPATH BASE_DIR "${CMAKE_SOURCE_DIR}") 31 | endif () 32 | # GIT_SUBMODULES_RECURSE was added in 3.17 33 | if (${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.17.0") 34 | FetchContent_Declare( 35 | pico_sdk 36 | GIT_REPOSITORY https://github.com/raspberrypi/pico-sdk 37 | GIT_TAG master 38 | GIT_SUBMODULES_RECURSE FALSE 39 | ) 40 | else () 41 | FetchContent_Declare( 42 | pico_sdk 43 | GIT_REPOSITORY https://github.com/raspberrypi/pico-sdk 44 | GIT_TAG master 45 | ) 46 | endif () 47 | 48 | if (NOT pico_sdk) 49 | message("Downloading Raspberry Pi Pico SDK") 50 | FetchContent_Populate(pico_sdk) 51 | set(PICO_SDK_PATH ${pico_sdk_SOURCE_DIR}) 52 | endif () 53 | set(FETCHCONTENT_BASE_DIR ${FETCHCONTENT_BASE_DIR_SAVE}) 54 | else () 55 | message(FATAL_ERROR 56 | "SDK location was not specified. Please set PICO_SDK_PATH or set PICO_SDK_FETCH_FROM_GIT to on to fetch from git." 57 | ) 58 | endif () 59 | endif () 60 | 61 | get_filename_component(PICO_SDK_PATH "${PICO_SDK_PATH}" REALPATH BASE_DIR "${CMAKE_BINARY_DIR}") 62 | if (NOT EXISTS ${PICO_SDK_PATH}) 63 | message(FATAL_ERROR "Directory '${PICO_SDK_PATH}' not found") 64 | endif () 65 | 66 | set(PICO_SDK_INIT_CMAKE_FILE ${PICO_SDK_PATH}/pico_sdk_init.cmake) 67 | if (NOT EXISTS ${PICO_SDK_INIT_CMAKE_FILE}) 68 | message(FATAL_ERROR "Directory '${PICO_SDK_PATH}' does not appear to contain the Raspberry Pi Pico SDK") 69 | endif () 70 | 71 | set(PICO_SDK_PATH ${PICO_SDK_PATH} CACHE PATH "Path to the Raspberry Pi Pico SDK" FORCE) 72 | 73 | include(${PICO_SDK_INIT_CMAKE_FILE}) 74 | -------------------------------------------------------------------------------- /parallel2usb_v2/gerbers/v2/parallel2usb-job.gbrjob: -------------------------------------------------------------------------------- 1 | { 2 | "Header": { 3 | "GenerationSoftware": { 4 | "Vendor": "KiCad", 5 | "Application": "Pcbnew", 6 | "Version": "6.0.10-86aedd382b~118~ubuntu20.04.1" 7 | }, 8 | "CreationDate": "2023-01-18T21:44:42-08:00" 9 | }, 10 | "GeneralSpecs": { 11 | "ProjectId": { 12 | "Name": "parallel2usb", 13 | "GUID": "70617261-6c6c-4656-9c32-7573622e6b69", 14 | "Revision": "rev?" 15 | }, 16 | "Size": { 17 | "X": 45.185, 18 | "Y": 53.694 19 | }, 20 | "LayerNumber": 2, 21 | "BoardThickness": 0.3004, 22 | "Finish": "None" 23 | }, 24 | "DesignRules": [ 25 | { 26 | "Layers": "Outer", 27 | "PadToPad": 0.127, 28 | "PadToTrack": 0.127, 29 | "TrackToTrack": 0.127, 30 | "MinLineWidth": 0.127, 31 | "TrackToRegion": 0.508, 32 | "RegionToRegion": 0.508 33 | } 34 | ], 35 | "FilesAttributes": [ 36 | { 37 | "Path": "parallel2usb-F_Cu.gbr", 38 | "FileFunction": "Copper,L1,Top", 39 | "FilePolarity": "Positive" 40 | }, 41 | { 42 | "Path": "parallel2usb-B_Cu.gbr", 43 | "FileFunction": "Copper,L2,Bot", 44 | "FilePolarity": "Positive" 45 | }, 46 | { 47 | "Path": "parallel2usb-F_Paste.gbr", 48 | "FileFunction": "SolderPaste,Top", 49 | "FilePolarity": "Positive" 50 | }, 51 | { 52 | "Path": "parallel2usb-B_Paste.gbr", 53 | "FileFunction": "SolderPaste,Bot", 54 | "FilePolarity": "Positive" 55 | }, 56 | { 57 | "Path": "parallel2usb-F_Silkscreen.gbr", 58 | "FileFunction": "Legend,Top", 59 | "FilePolarity": "Positive" 60 | }, 61 | { 62 | "Path": "parallel2usb-B_Silkscreen.gbr", 63 | "FileFunction": "Legend,Bot", 64 | "FilePolarity": "Positive" 65 | }, 66 | { 67 | "Path": "parallel2usb-F_Mask.gbr", 68 | "FileFunction": "SolderMask,Top", 69 | "FilePolarity": "Negative" 70 | }, 71 | { 72 | "Path": "parallel2usb-B_Mask.gbr", 73 | "FileFunction": "SolderMask,Bot", 74 | "FilePolarity": "Negative" 75 | }, 76 | { 77 | "Path": "parallel2usb-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": 0.2104, 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 | -------------------------------------------------------------------------------- /notes.md: -------------------------------------------------------------------------------- 1 | # Notes 2 | 3 | Stuff that needs to be cleaned up... 4 | 5 | ## Conversion TDS 420A - Encapsulated PostScript 6 | 7 | * TDS 420A EPS-Color: [shift-hardcopy] 8 | 9 | * Capture 10 | 11 | `(stty -echo raw; cat > screenshot.eps) < /dev/ttyACM0` 12 | 13 | * Settings 14 | * Format: EPS Color 15 | * Layout: Portrait (Yes! NOT landscape!) 16 | * Port: Centronics 17 | * Conversion: 18 | 19 | `inkscape -f ./screenshot.eps -w 1280 -y=255 -e screenshot.png` 20 | 21 | If rotated because landscape was selected: 22 | 23 | `inkscape -f ./screenshot.eps -h 1280 -y=255 -e - | convert - -rotate 90 screenshot.png` 24 | 25 | * TDS 420A EPS Mono Image: [shift-hardcopy] 26 | 27 | * Capture 28 | 29 | `(stty -echo raw; cat > screenshot.eps) < /dev/ttyACM0` 30 | 31 | * Settings 32 | * Format: EPS Mono Image 33 | * Layout: Portrait 34 | * Port: Centronics 35 | * Conversion 36 | 37 | `inkscape -f ./screenshot.eps -w 1280 -y=255 -e screenshot.png` 38 | 39 | * Conversion TDS 420A - Epson 40 | 41 | * Capture 42 | 43 | `(stty -echo raw; cat > screenshot.epson) < /dev/ttyACM0` 44 | 45 | * Settings: 46 | * Format: Epson - 9 & 24 pin dot matrix printer 47 | * Layout: Landscape 48 | * Port: Centronics 49 | * Typical capture file size: ~39KB 50 | * Conversion 51 | 52 | `/opt/printerToPDF/bin/printerToPDF -o output -f /opt/printerToPDF/lib/PrinterToPDF/font2/Epson-Standard.C16 screenshot.epson` 53 | 54 | # Advantest PCL to PDF 55 | 56 | * [Ghostscript](https://ghostscript.com/releases/gpcldnld.html) 57 | 58 | `~/tools/ghostpcl-10.0.0-linux-x86_64/gpcl6-1000-linux-x86_64 -dNOPAUSE -sOutputFile=test.png -sDEVICE=png256 -g2000x1500 -r300x300 sa_pcl_s_color_s_a.pcl` 59 | 60 | Best result so far: 61 | 62 | `~/tools/ghostpcl-10.0.0-linux-x86_64/gpcl6-1000-linux-x86_64 -dNOPAUSE -sOutputFile=test.png -sDEVICE=png256 -g8000x8000 -r600x600 sa_pcl_s_color_s_a.pcl` 63 | 64 | `convert test.png -filter point -resize 2000 test2.png` 65 | 66 | * [PrinterToPDF](https://github.com/tomverbeure/PrinterToPDF) 67 | 68 | `/opt/printerToPDF/bin/printerToPDF -o output -f /opt/printerToPDF/lib/PrinterToPDF/font2/Epson-Standard.C16 dump.epson` 69 | 70 | # Misc 71 | 72 | * [Tweet by Sell My Retro](https://twitter.com/SellMyRetro/status/1614215674024398848) 73 | 74 | 75 | # CircuitPython 76 | 77 | 78 | * Download UF2: https://circuitpython.org/board/raspberry_pi_pico/ 79 | * Terminal: `picocom /dev/ttyACM0` 80 | 81 | Gives a command line 82 | 83 | Ctrl-A Ctrl-X to exit picocom 84 | 85 | * Copy `code.py` to CIRCUITPY drive and power cycle -> your code will run 86 | 87 | # Protocol Compatibility mode 88 | 89 | host to device: 90 | 91 | * nINIT: pulsed low to reset device. 92 | * nSELIN: driven low by host to activate the device 93 | * nAUTOF: driven low by host to enable auto-line feed. Ignore? 94 | 95 | * nSTROBE: set low by host when data is valid. Used to store data into an latch 96 | * D[7:0]: data must be stable as long as nSTROBE is low 97 | 98 | device to host: 99 | 100 | * nACK: Pulsed low by device to acknowledge received of data. Length of pulse? 101 | 150kB/s -> 6uS is upper bound length. Let's do 2uS. 102 | * BUSY: driven high by device to indicate that device is not ready. 103 | * nERROR: driven low by device to indicate an error. 104 | * SEL: driven high by device to indicate that device is present. 105 | * PE (Paper Error): driven high by device to indicate a paper error 106 | 107 | # References 108 | 109 | * [Parallel-Port Interface Powers Low Voltage Systems](https://www.analog.com/en/design-notes/parallelport-interface-powers-low-voltage-systems.html) 110 | 111 | Not useful: voltage regulator only goes up to +2V. 112 | 113 | * [Maxim MAX1841 datasheet](https://www.mouser.com/datasheet/2/256/MAX1840-MAX1841-1308121.pdf) 114 | 115 | * [Arduino: Read data from parallel port](https://forum.arduino.cc/t/read-data-from-parallel-port/105648/15) 116 | 117 | * [Rue's Parallel2Serial](https://github.com/ruenahcmohr/Parallel2Serial) 118 | 119 | 120 | -------------------------------------------------------------------------------- /parallel2usb_v1/gerbers/v1/parallel2usb-B_Mask.gbr: -------------------------------------------------------------------------------- 1 | %TF.GenerationSoftware,KiCad,Pcbnew,6.0.10-86aedd382b~118~ubuntu20.04.1*% 2 | %TF.CreationDate,2022-12-31T17:49:26-08:00*% 3 | %TF.ProjectId,parallel2usb,70617261-6c6c-4656-9c32-7573622e6b69,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.10-86aedd382b~118~ubuntu20.04.1) date 2022-12-31 17:49:26* 10 | %MOMM*% 11 | %LPD*% 12 | G01* 13 | G04 APERTURE LIST* 14 | %ADD10C,2.700000*% 15 | %ADD11O,1.500000X1.500000*% 16 | %ADD12O,1.800000X1.800000*% 17 | %ADD13O,1.700000X1.700000*% 18 | %ADD14R,1.700000X1.700000*% 19 | %ADD15C,4.000000*% 20 | %ADD16R,1.600000X1.600000*% 21 | %ADD17C,1.600000*% 22 | G04 APERTURE END LIST* 23 | D10* 24 | %TO.C,H1*% 25 | X183642000Y-78105000D03* 26 | %TD*% 27 | D11* 28 | %TO.C,U2*% 29 | X123354200Y-104025000D03* 30 | X123354200Y-99175000D03* 31 | D12* 32 | X120324200Y-98875000D03* 33 | X120324200Y-104325000D03* 34 | D13* 35 | X120194200Y-110490000D03* 36 | X122734200Y-110490000D03* 37 | D14* 38 | X125274200Y-110490000D03* 39 | D13* 40 | X127814200Y-110490000D03* 41 | X130354200Y-110490000D03* 42 | X132894200Y-110490000D03* 43 | X135434200Y-110490000D03* 44 | D14* 45 | X137974200Y-110490000D03* 46 | D13* 47 | X140514200Y-110490000D03* 48 | X143054200Y-110490000D03* 49 | X145594200Y-110490000D03* 50 | X148134200Y-110490000D03* 51 | D14* 52 | X150674200Y-110490000D03* 53 | D13* 54 | X153214200Y-110490000D03* 55 | X155754200Y-110490000D03* 56 | X158294200Y-110490000D03* 57 | X160834200Y-110490000D03* 58 | D14* 59 | X163374200Y-110490000D03* 60 | D13* 61 | X165914200Y-110490000D03* 62 | X168454200Y-110490000D03* 63 | X168454200Y-92710000D03* 64 | X165914200Y-92710000D03* 65 | D14* 66 | X163374200Y-92710000D03* 67 | D13* 68 | X160834200Y-92710000D03* 69 | X158294200Y-92710000D03* 70 | X155754200Y-92710000D03* 71 | X153214200Y-92710000D03* 72 | D14* 73 | X150674200Y-92710000D03* 74 | D13* 75 | X148134200Y-92710000D03* 76 | X145594200Y-92710000D03* 77 | X143054200Y-92710000D03* 78 | X140514200Y-92710000D03* 79 | D14* 80 | X137974200Y-92710000D03* 81 | D13* 82 | X135434200Y-92710000D03* 83 | X132894200Y-92710000D03* 84 | X130354200Y-92710000D03* 85 | X127814200Y-92710000D03* 86 | D14* 87 | X125274200Y-92710000D03* 88 | D13* 89 | X122734200Y-92710000D03* 90 | X120194200Y-92710000D03* 91 | X168224200Y-104140000D03* 92 | D14* 93 | X168224200Y-101600000D03* 94 | D13* 95 | X168224200Y-99060000D03* 96 | %TD*% 97 | D15* 98 | %TO.C,J1*% 99 | X200508000Y-78055000D03* 100 | X200508000Y-125155000D03* 101 | D16* 102 | X199088000Y-118225000D03* 103 | D17* 104 | X199088000Y-115455000D03* 105 | X199088000Y-112685000D03* 106 | X199088000Y-109915000D03* 107 | X199088000Y-107145000D03* 108 | X199088000Y-104375000D03* 109 | X199088000Y-101605000D03* 110 | X199088000Y-98835000D03* 111 | X199088000Y-96065000D03* 112 | X199088000Y-93295000D03* 113 | X199088000Y-90525000D03* 114 | X199088000Y-87755000D03* 115 | X199088000Y-84985000D03* 116 | X201928000Y-116840000D03* 117 | X201928000Y-114070000D03* 118 | X201928000Y-111300000D03* 119 | X201928000Y-108530000D03* 120 | X201928000Y-105760000D03* 121 | X201928000Y-102990000D03* 122 | X201928000Y-100220000D03* 123 | X201928000Y-97450000D03* 124 | X201928000Y-94680000D03* 125 | X201928000Y-91910000D03* 126 | X201928000Y-89140000D03* 127 | X201928000Y-86370000D03* 128 | %TD*% 129 | D14* 130 | %TO.C,J3*% 131 | X176672000Y-112776000D03* 132 | D13* 133 | X179212000Y-112776000D03* 134 | X181752000Y-112776000D03* 135 | %TD*% 136 | D10* 137 | %TO.C,H2*% 138 | X183642000Y-125095000D03* 139 | %TD*% 140 | D14* 141 | %TO.C,J2*% 142 | X194770000Y-77089000D03* 143 | D13* 144 | X194770000Y-79629000D03* 145 | X194770000Y-82169000D03* 146 | X194770000Y-84709000D03* 147 | X194770000Y-87249000D03* 148 | X194770000Y-89789000D03* 149 | X194770000Y-92329000D03* 150 | X194770000Y-94869000D03* 151 | X194770000Y-97409000D03* 152 | X194770000Y-99949000D03* 153 | X194770000Y-102489000D03* 154 | X194770000Y-105029000D03* 155 | X194770000Y-107569000D03* 156 | X194770000Y-110109000D03* 157 | X194770000Y-112649000D03* 158 | X194770000Y-115189000D03* 159 | X194770000Y-117729000D03* 160 | X194770000Y-120269000D03* 161 | X194770000Y-122809000D03* 162 | X194770000Y-125349000D03* 163 | %TD*% 164 | M02* 165 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | # Fake Parallel Printer 3 | 4 | This repo contains the design files for the Fake Printer tool: a hardware 5 | dongle with a DB-25 connector that plugs into the parallel printer port 6 | that was available on nearly all computers and equipment in the eighties 7 | and nineties. 8 | 9 | Check out this blog post for a detailed description of the design, 10 | and build and usage instructions: 11 | 12 | * [Fake Parallel Printer - A Parallel Port Traffic Capturing Tool](https://tomverbeure.github.io/2023/01/24/Fake-Parallel-Printer-Capture-Tool-HW.html) 13 | 14 | There are 2 versions of the PCB. Revision 2 only uses 2 layers and doesn't 15 | stick out as much out of the device in which is plugged in. It's probably 16 | the best one to build. The firmware is designed to work for both PCB versions. 17 | 18 | ## PCB v1 19 | 20 | ![3D render of PCB v1](./parallel2usb_v1/parallel2usb_v1_3d.png) 21 | 22 | * KiCAD database of the PCB: [`./parallel2usb_v1`](./parallel2usb_v1) 23 | * [Schematic of PCB v1](./parallel2usb_v1/parallel2usb_v1_schematic.pdf) 24 | 25 | ## PCB v2 26 | 27 | **WARNING: v2 hasn't been tested!!!** 28 | 29 | ![3D render of PCB v2](./parallel2usb_v2/parallel2usb_v2_3d.png) 30 | 31 | * KiCAD database of the PCB: [`./parallel2usb_v2`](./parallel2usb_v2) 32 | * [Schematic of PCB v2](./parallel2usb_v2/parallel2usb_v2_schematic.pdf) 33 | 34 | A Digikey cart with all the components to populate version 2 of the PCB can 35 | be found [here](https://www.digikey.com/short/mcb8vf27). Not all 36 | resistors and capacitor must be populated though. Check out the blog 37 | post for details. 38 | 39 | ## Firmware 40 | 41 | [`parallel2usb_hd_on.uf2`](parallel2usb_hd_on.uf2) contains the compiled 42 | firmware for the Raspberry Pico. 43 | 44 | To make changes and recompile yourself: 45 | 46 | * set the `PICO_SDK` environment variable to the path of your locally installed 47 | [Raspberry Pico SDK](https://github.com/raspberrypi/pico-sdk). 48 | * Build the code: 49 | 50 | 51 | mkdir -p ./c/build 52 | cd ./c/build 53 | cmake .. 54 | make 55 | 56 | * If all goes well, a new `parallel2usb.uf2` will be waiting in 57 | `./c/build/parallel2usb`. 58 | 59 | ## Capturing Parallel Port Data 60 | 61 | * Plug in the board into the host with the parallel port. 62 | * Connect your PC to the board with a USB cable. 63 | * Run `python3 ./fake_printer.py -p ` (Use -h for more options.) 64 | * Issue a print operation on the host. 65 | * A new file will be generated for each print operation 66 | 67 | ## Converting a Parallel Port Captured File 68 | 69 | * PCL: use [Ghostscript](https://ghostscript.com/releases/gpcldnld.html) 70 | 71 | `~/tools/ghostpcl-10.0.0-linux-x86_64/gpcl6-1000-linux-x86_64 -dNOPAUSE -sOutputFile=output.png -sDEVICE=png256 -g8000x8000 -r600x600 print_cap.pcl` 72 | 73 | * Epson ESC/P: use [PrinterToPDF](https://github.com/RWAP/PrinterToPDF) 74 | 75 | `/opt/printerToPDF/bin/printerToPDF -o output -f /opt/printerToPDF/lib/PrinterToPDF/font2/Epson-Standard.C16 print_cap.esc_p` 76 | 77 | * Encapsulated Postscript: use Ghostscript and ImageMagick to add a background if necessary. Note that some scopes (TDS 684B) may emit a few chunks of comments that `fake_printer.py` will get with multiple-second delays, and they need to be concatenated together to form a valid `eps` file. 78 | 79 | `gs -dSAFER -dBATCH -dNOPAUSE -dEPSCrop -sDEVICE=pngalpha -r300 -sOutputFile=ph1-zoomout.png ph1-zoomout.eps; convert -background black -alpha remove -alpha off ph1-zoomout.png ph1-zoomout.png` 80 | 81 | # Conversions 82 | 83 | * HP Infinium 84 | 85 | ``` 86 | ./fake_printer.py --port=/dev/ttyACM0 -t 2 -v --prefix=hp_osc_ -s eps 87 | inkscape -f ./hp_osc_0.eps -w 1580 -y=255 -e hp_osc_0.png 88 | convert hp_osc_0.png -crop 1294x971+142+80 hp_osc_0_cropped.png 89 | ``` 90 | 91 | * Advantest R3273 92 | 93 | * Config printer: Config -> Copy Config -> Printer: 94 | 95 | ![Advantest R3273 printer config screen](./docs/advantest_r3273_printer_config.png) 96 | 97 | * To print: Copy 98 | * To convert: 99 | 100 | ``` 101 | ./fake_printer.py --port=/dev/ttyACM0 -t 2 -v --prefix=r3273_ -s pcl 102 | ~/tools/ghostpcl-10.0.0-linux-x86_64/gpcl6-1000-linux-x86_64 -dNOPAUSE -sOutputFile=test.png -sDEVICE=png256 -g8000x8000 -r600x600 r3273_0.pcl 103 | convert test.png -filter point -resize 2000 test2.png 104 | convert test2.png -crop 640x480+315+94 test3.png 105 | ``` 106 | 107 | -------------------------------------------------------------------------------- /parallel2usb_v1/gerbers/v1/parallel2usb-job.gbrjob: -------------------------------------------------------------------------------- 1 | { 2 | "Header": { 3 | "GenerationSoftware": { 4 | "Vendor": "KiCad", 5 | "Application": "Pcbnew", 6 | "Version": "6.0.10-86aedd382b~118~ubuntu20.04.1" 7 | }, 8 | "CreationDate": "2022-12-31T17:49:26-08:00" 9 | }, 10 | "GeneralSpecs": { 11 | "ProjectId": { 12 | "Name": "parallel2usb", 13 | "GUID": "70617261-6c6c-4656-9c32-7573622e6b69", 14 | "Revision": "rev?" 15 | }, 16 | "Size": { 17 | "X": 91.159, 18 | "Y": 53.694 19 | }, 20 | "LayerNumber": 4, 21 | "BoardThickness": 1.6062, 22 | "Finish": "None" 23 | }, 24 | "DesignRules": [ 25 | { 26 | "Layers": "Outer", 27 | "PadToPad": 0.1, 28 | "PadToTrack": 0.1, 29 | "TrackToTrack": 0.1, 30 | "MinLineWidth": 0.1 31 | }, 32 | { 33 | "Layers": "Inner", 34 | "PadToPad": 0.1, 35 | "PadToTrack": 0.1, 36 | "TrackToTrack": 0.1, 37 | "MinLineWidth": 0.1, 38 | "TrackToRegion": 0.508, 39 | "RegionToRegion": 0.508 40 | } 41 | ], 42 | "FilesAttributes": [ 43 | { 44 | "Path": "parallel2usb-F_Cu.gbr", 45 | "FileFunction": "Copper,L1,Top", 46 | "FilePolarity": "Positive" 47 | }, 48 | { 49 | "Path": "parallel2usb-In1_Cu.gbr", 50 | "FileFunction": "Copper,L2,Inr", 51 | "FilePolarity": "Positive" 52 | }, 53 | { 54 | "Path": "parallel2usb-In2_Cu.gbr", 55 | "FileFunction": "Copper,L3,Inr", 56 | "FilePolarity": "Positive" 57 | }, 58 | { 59 | "Path": "parallel2usb-B_Cu.gbr", 60 | "FileFunction": "Copper,L4,Bot", 61 | "FilePolarity": "Positive" 62 | }, 63 | { 64 | "Path": "parallel2usb-F_Paste.gbr", 65 | "FileFunction": "SolderPaste,Top", 66 | "FilePolarity": "Positive" 67 | }, 68 | { 69 | "Path": "parallel2usb-B_Paste.gbr", 70 | "FileFunction": "SolderPaste,Bot", 71 | "FilePolarity": "Positive" 72 | }, 73 | { 74 | "Path": "parallel2usb-F_Silkscreen.gbr", 75 | "FileFunction": "Legend,Top", 76 | "FilePolarity": "Positive" 77 | }, 78 | { 79 | "Path": "parallel2usb-B_Silkscreen.gbr", 80 | "FileFunction": "Legend,Bot", 81 | "FilePolarity": "Positive" 82 | }, 83 | { 84 | "Path": "parallel2usb-F_Mask.gbr", 85 | "FileFunction": "SolderMask,Top", 86 | "FilePolarity": "Negative" 87 | }, 88 | { 89 | "Path": "parallel2usb-B_Mask.gbr", 90 | "FileFunction": "SolderMask,Bot", 91 | "FilePolarity": "Negative" 92 | }, 93 | { 94 | "Path": "parallel2usb-Edge_Cuts.gbr", 95 | "FileFunction": "Profile", 96 | "FilePolarity": "Positive" 97 | } 98 | ], 99 | "MaterialStackup": [ 100 | { 101 | "Type": "Legend", 102 | "Name": "Top Silk Screen" 103 | }, 104 | { 105 | "Type": "SolderPaste", 106 | "Name": "Top Solder Paste" 107 | }, 108 | { 109 | "Type": "SolderMask", 110 | "Thickness": 0.01, 111 | "Name": "Top Solder Mask" 112 | }, 113 | { 114 | "Type": "Copper", 115 | "Thickness": 0.035, 116 | "Name": "F.Cu" 117 | }, 118 | { 119 | "Type": "Dielectric", 120 | "Thickness": 0.2104, 121 | "Material": "FR4", 122 | "Name": "F.Cu/In1.Cu", 123 | "Notes": "Type: dielectric layer 1 (from F.Cu to In1.Cu)" 124 | }, 125 | { 126 | "Type": "Copper", 127 | "Thickness": 0.0152, 128 | "Name": "In1.Cu" 129 | }, 130 | { 131 | "Type": "Dielectric", 132 | "Thickness": 1.065, 133 | "Material": "FR4", 134 | "Name": "In1.Cu/In2.Cu", 135 | "Notes": "Type: dielectric layer 2 (from In1.Cu to In2.Cu)" 136 | }, 137 | { 138 | "Type": "Copper", 139 | "Thickness": 0.0152, 140 | "Name": "In2.Cu" 141 | }, 142 | { 143 | "Type": "Dielectric", 144 | "Thickness": 0.2104, 145 | "Material": "FR4", 146 | "Name": "In2.Cu/B.Cu", 147 | "Notes": "Type: dielectric layer 3 (from In2.Cu to B.Cu)" 148 | }, 149 | { 150 | "Type": "Copper", 151 | "Thickness": 0.035, 152 | "Name": "B.Cu" 153 | }, 154 | { 155 | "Type": "SolderMask", 156 | "Thickness": 0.01, 157 | "Name": "Bottom Solder Mask" 158 | }, 159 | { 160 | "Type": "SolderPaste", 161 | "Name": "Bottom Solder Paste" 162 | }, 163 | { 164 | "Type": "Legend", 165 | "Name": "Bottom Silk Screen" 166 | } 167 | ] 168 | } 169 | -------------------------------------------------------------------------------- /fake_printer.py: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env python3 2 | 3 | import sys 4 | import getopt 5 | import serial 6 | import time 7 | 8 | 9 | def usage(): 10 | print(f"""{sys.argv[0]} 11 | -p , --port= : serial port device. E.g. -p /dev/ttyACM0, --port=COM3. No default. Required. 12 | [-t