{"id":22669482,"url":"https://github.com/bkw777/wp-2_ic-card","last_synced_at":"2026-02-04T21:35:55.631Z","repository":{"id":151024291,"uuid":"299196920","full_name":"bkw777/WP-2_IC-Card","owner":"bkw777","description":"IC Cards for TANDY WP-2","archived":false,"fork":false,"pushed_at":"2025-12-29T23:26:10.000Z","size":227951,"stargazers_count":12,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2026-01-02T06:39:48.692Z","etag":null,"topics":["card","cbm-10wp","citizen","ic-card","memory","nts","ram","sram","tandy","wp-10c","wp-2","wp-3"],"latest_commit_sha":null,"homepage":"","language":"OpenSCAD","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bkw777.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-09-28T05:22:36.000Z","updated_at":"2025-12-29T23:26:14.000Z","dependencies_parsed_at":"2024-09-17T01:24:05.703Z","dependency_job_id":"9418c666-ceeb-4a3c-8824-3e015f4e4dd4","html_url":"https://github.com/bkw777/WP-2_IC-Card","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/bkw777/WP-2_IC-Card","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkw777%2FWP-2_IC-Card","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkw777%2FWP-2_IC-Card/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkw777%2FWP-2_IC-Card/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkw777%2FWP-2_IC-Card/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bkw777","download_url":"https://codeload.github.com/bkw777/WP-2_IC-Card/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bkw777%2FWP-2_IC-Card/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29096425,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-04T21:05:08.033Z","status":"ssl_error","status_checked_at":"2026-02-04T21:04:53.031Z","response_time":62,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["card","cbm-10wp","citizen","ic-card","memory","nts","ram","sram","tandy","wp-10c","wp-2","wp-3"],"created_at":"2024-12-09T15:31:58.409Z","updated_at":"2026-02-04T21:35:55.624Z","avatar_url":"https://github.com/bkw777.png","language":"OpenSCAD","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Expansion IC-Card for [TANDY WP-2](tandy.wiki/WP-2), [TANDY WP-3](https://www.retrocoding.uk/tandy-wp-3-word-processor/), [Citizen CBM-10WP](http://mo5.com/musee-machines-cbm10wp.html), [NTS WP-10C](https://munk.org/typecast/2020/09/09/tandy-wp-2-user-manual-happy-septandy/)\n\nThe TANDY WP-2 and other clones of the Citizen CBM-10WP have an expansion slot that accepts [\"IC Cards\"](#reference-material).\n\nHere are a few different cards to fit that slot.\n\n* A [battery-backed SRAM card](#sram-card) like the original cards  \n* A [non-volatile MRAM card](#mram-card), a RAM card that doesn't need a battery  \n* A [ROM card](#rom-card), there is new software that runs from a rom card but no known images of any old original rom cards  \n* A [programming adapter](#programming-adapter) that can read and write both the RAM and ROM cards outside of the WP-2\n* A [bus-tap/breakout card](#bus-tap) to allow connecting the bus to a breadboard or logic analyser etc\n\n![](PCB/out/WP-2_IC-Card_SRAM.jpg)  \n![](PCB/out/WP-2_IC-Card_SRAM.slider.jpg)  \n\n![](ref/sram_cover_exploded.jpg)  \n![](ref/sram_cover_assembled.jpg)  \n![](ref/screen_sram_bank1.jpg)  \n\n## Fabrication \u0026 assembly notes\n\n* **REQUIRES 1.2mm PCB**  \nThe normal default PCB thickness of 1.6mm will NOT fit.  \nIf you don't remember to manually change the PCB THICKNESS to 1.2mm when ordering, you'll get 1.6mm.  \n\n1.2mm  \n![](PCB/out/1.2mm_pcb.jpg)  \n\n1.6mm  \n![](PCB/out/1.6mm_pcb.jpg)  \n\n* The SRAM card has a battery terminal that should be gold.\nENIG copper finish will give you a better battery terminal without the expense and custom steps of proper selective hard gold.\n\n* Attach the cover with thin 3mm or 1/8\" adhesive transfer tape aka \"cell phone / tablet screen repair tape\".  \n![](ref/adhesive_transfer_tape.jpg)\n![](ref/WP-2_IC-Card_MRAM.adhesive.jpg) \nhttps://www.amazon.com/dp/B0C78LJLDR/ 0.2mm  \nhttps://www.amazon.com/dp/B0DRV5D4YG/ 0.2mm  \nhttps://www.amazon.com/dp/B078H298G2/ 0.2mm  \nhttps://www.amazon.com/dp/B019OQ4ZG0/ 0.2mm  \nhttps://www.amazon.com/dp/B01N27LYV9/ 0.09mm  \n\n\u003c!-- https://amazon.com/dp/B06Y34587N/ (This one is wider than 5mm but has no carrier film in the middle, just gummy adhesive that squishes into any form, so the width doesn't matter and you can just lay it anywhere right over the chips and pins etc.) --\u003e\nOr glue, but adhesive is easier to remove later.  \nYou can make the cover easy to remove by just using small bits of tape instead of full lengths like the picture. It doesn't take much to hold it on\n\nThe cover is not just cosmetic. It prevents the components from catching on the lip of the card slot when inserting \u0026 removing, and protects against shorts, and protects against general physical damage to the components.\n\nSimilarly, it's a good idea to cover the bottom of the pcb with a piece of 2 inch shipping or packing tape to protect the pcb from scratching and shorting.  \nJust lay a simple single piece across the main pcb part along the connector edge but not on the connector.\n\nThe various solder-jumpers are mostly for hacking and custom software development like making a ram card emulate a rom card, or possible use in other machines besides the WP-2, for instance maybe some other machine besides the WP-2 could address 256k in ram mode, etc.  \nThey are pre-connected for normal operation and you normally just ignore them. Don't solder them or cut them.  \n\nThe most likely exceptions you might actually use are:  \n. On the ROM card, to make a simple 256k rom card with no bank switch or write-enable switch, hard-wired to always be write-enabled via the S3 pin to work with a matching bodge wire mod in the WP-2, solder-blob the S3 pin pads on the (unpopulated) write-enable switch.  \n. On the SRAM card, to make a simple 128k ram card with no bank switch, solder-blob RAM_CE2 to BUS_CE2 (or RAM_CE2 to VMEM, it doesn't much matter which, but only one or the other not both!)\n\nMost cards have a few different styles and configurations of the printed cover.  \nIf you have trouble printing the fancy switch sliders, the \"finger\" versions are a simpler alternative.  \nThe switches are optional on all cards, so there are versions without any bank-select or write-enable switches.  \nAside from the pre-generated stl files, you can open the scad file in openscad and use the customizer panel to select different options and generate a new stl file. You don't have to touch the scad code. Just play with a few of the main options at the top of the customizer panel.\n\nGerbers, BOMs, and STLs are in [releases](../../releases/)\n\n[pictures](https://photos.app.goo.gl/M8KbMLbY8BXGH7LL8)\n\n----\n\n## SRAM CARD  \n\u003c!--\n[128K SRAM BOM from DigiKey](https://www.digikey.com/short/fdjd3j85)  \n[128K SRAM PCB and COVER from PCBWAY](https://www.pcbway.com/project/shareproject/WP_2_RAM_IC_Card.html)  \nIMPORTANT, when ordering the PCB:  \n* **Thickness: 1.2** \u003c-- MOST IMPORTANT - DO NOT MISS  \n* **Min Track/Spacing: 6/6mil**  \nThe PCBWAY ordering page may auto-select thinner minimum traces which is expensive, but thise pcb actually has all traces at least 0.2mm (7.8mil), so you should manually change the option to 6mil.  \n* **Surface Finish: Immersion gold(ENIG)**  \nMakes it expensive, but you want the battery terminal to be gold.  \n* **Other Special request: Bottom solder mask full cover.**  \nThere are no openings in the bottom soldermask layer, so you have to tell them that you want 100% soldermask coverage rather than 0% coverage.\n\nYou can save some money on the ENIG by using Elecrow instead of PCBWAY.\n\n![](PCB/out/WP-2_IC-Card_SRAM_128K.jpg)  \n![](PCB/out/WP-2_IC-Card_SRAM_128K.covered.jpg)  \n![](PCB/out/WP-2_IC-Card_SRAM_128K.top.jpg)  \n![](PCB/out/WP-2_IC-Card_SRAM_128K.bottom.jpg)  \n![](PCB/out/WP-2_IC-Card_SRAM_128K.svg)  \n![](COVER/out/WP-2_IC-Card_Cover_SRAM.png)\n\n\n****\n### work in progress updated SRAM card\n--\u003e\n\nFully populated for a 256k or 512k chip  \n![](PCB/out/WP-2_IC-Card_SRAM.jpg)\n\nConfigured for a 128k chip  \n![](PCB/out/WP-2_IC-Card_SRAM.ce2.jpg)\n\n![](PCB/out/WP-2_IC-Card_SRAM.slider.jpg)  \n![](PCB/out/WP-2_IC-Card_SRAM.finger.jpg)  \n![](PCB/out/WP-2_IC-Card_SRAM.no_bank.jpg)  \n![](PCB/out/WP-2_IC-Card_SRAM.adhesive.jpg)\n![](PCB/out/WP-2_IC-Card_SRAM.top.jpg)  \n![](PCB/out/WP-2_IC-Card_SRAM.bottom.jpg)  \n![](PCB/out/WP-2_IC-Card_SRAM.svg)\n\n[BOM from DigiKey (512k)](https://www.digikey.com/short/2rpt9c9w)  ([(128k)](https://www.digikey.com/short/qqcwz9tr))  \n[PCB and COVER from PCBWAY](https://www.pcbway.com/project/shareproject/WP_2_RAM_IC_Card.html)\n\n\u003c!--\n(These links are for an earlier simpler version of the card without any banks. It still accepts any size chip from 128K to 512K, but only uses 128K.)  \n[128K SRAM PCB and COVER from PCBWAY](https://www.pcbway.com/project/shareproject/WP_2_RAM_IC_Card.html)  \n[128K SRAM BOM from DigiKey](https://www.digikey.com/short/fdjd3j85)  \n--\u003e\n\n\u003c!--\nWP-2_IC-Card_Cover_SRAM_slider.stl is a cover with a sliding actuator for the bank switch  \nWP-2_IC-Card_Cover_SRAM_finger.stl is a cover with a simple concave opening for the bank switch  \nWP-2_IC-Card_Cover_SRAM_none.stl is a cover with no bank-switch opening  \n--\u003e\n\n\u003c!-- [128K SRAM PCB and COVER from PCBWAY](https://www.pcbway.com/project/shareproject/WP_2_RAM_IC_Card.html)  --\u003e\n\n\u003c!-- When ordering the PCB:  --\u003e\n\u003c!-- * **Thickness: 1.2** DO NOT FORGET  --\u003e\n\u003c!--\n* **Min Track/Spacing: 6/6mil**  \nThe PCBWAY ordering page may auto-select thinner minimum traces which is expensive, but thise pcb actually has all traces at least 0.2mm (7.8mil), so you should manually change the option to 6mil.  \n--\u003e\n\u003c!-- \n* **Surface Finish: Immersion gold(ENIG)**  (for the battery)  \n* **Other Special request: \"Bottom solder mask full cover.\"**  \n--\u003e\n\u003c!-- There are no openings in the bottom soldermask layer, so you have to tell them that you want full soldermask instead of none.  --\u003e\n\n\u003c!-- Elecrow produces ENIG cheaper than PCBWAY. Just upload the gerber zip from [releases](../../releases) --\u003e\n\u003c!--\nFor 128K (AS6C1008, IS62C1024, etc):  \n  Don't populate SW1, D1, R3, R4  \n  Solder-bridge JP4 VMEM-CE2  \n  Print the \"SRAM_none\" cover  \n--\u003e\n\n\n----\n\n## MRAM Card\n\nRAM card without a battery!\n\nThis card is expensive.  \nThe BOM cost is over $50 before tax or shipping and not including the PCB or the 3d-printed top cover.  \nThe total including PCB, BOM, printed cover, tax, \u0026 shipping is over $100.\n\nHowever it does provide **4** 128k cards in a single card, without any battery.\n\nSupports both a 512K chip with a bank-select switch for 4 x 128K banks, or a 128K chip and you simply omit the indicated bank-select parts.\n\nNOTE: MRAM is permanently damaged by strong magnetic fields.  \nThe BOM here specifies the Industrial grade version of the chip which claims to be able to tolerate up to 125 gauss.  \nThe Commercial and Automotive versions are only safe to 25 gauss. A fridge magnet is 100-300 gauss.  \nEven with the Industrial part you should still avoid exposure to magnetic fields.  \n\nYou may want to store the card in a [steel candy tin](https://www.amazon.com/dp/B0DRBBZR8V),  \nwith 5-10mm thick shipping foam affixed to the inside top \u0026 bottom surfaces, so that the card is suspended away from the top or bottom surface.  \nThe 4 edge walls aren't a problem because the center of the mram chip isn't near a card edge.  \nMagnetic fields drop off rapidly with distance, so suspending the card even just 6mm away from the inside walls makes even more difference than the steel shell.  \n\nThis protects against many common magnetic sources that measure in the 100-1000 gauss range.  \nSome examples: large over ear headphones, bluetooth speaker, cell phone, laptop lid, \"refrigerator\" magnets, tablet cover, handbag closer, magnetic usb-c cable end.  \nBut for example a 3900 gauss (very strong) flashlight handle stuck to the outside of the can still measures 500 gauss at the surface of the foam, which is still too high.  \nFor long-term storage, you may want to just keep it in a larger box \u0026 filler that simply adds at least another inch (20-30mm) of distance on all sides.\n\n[512K MRAM PCB and COVER from PCBWAY](https://www.pcbway.com/project/shareproject/512k_MRAM_IC_Card_for_TANDY_WP_2_30f542a7.html)  \n[512K MRAM BOM from DigiKey](https://www.digikey.com/short/d22n7358)\n\n![](ref/IMG_0049.JPG)  \n![](ref/IMG_0050.JPG)  \n![](ref/IMG_0053.JPG)  \n![](ref/IMG_0058.JPG)  \n![](PCB/out/WP-2_IC-Card_MRAM.jpg)  \n![](PCB/out/WP-2_IC-Card_MRAM.slider.jpg)  \n![](PCB/out/WP-2_IC-Card_MRAM.finger.jpg)  \n![](ref/WP-2_IC-Card_MRAM.tin_closed.jpg)  \n![](ref/WP-2_IC-Card_MRAM.tin_open.jpg)  \n![](PCB/out/WP-2_IC-Card_MRAM.top.jpg)  \n![](PCB/out/WP-2_IC-Card_MRAM.bottom.jpg)  \n![](PCB/out/WP-2_IC-Card_MRAM.svg)\n\n----\n\n## ROM CARD  \n\n\u003c!-- [ROM card PCB from OSHPark](https://oshpark.com/shared_projects/F9gte3be) (Select 0.8mm PCB thickness)  --\u003e\n[ROM PCB and COVER from PCBWAY](https://www.pcbway.com/project/shareproject/WP_2_ROM_IC_Card.html)  \n[ROM BOM from DigiKey](https://www.digikey.com/short/3f4nmrp4) (256K \u0026 no bank sw)\n\n![](PCB/out/WP-2_IC-Card_ROM.jpg)  \n![](PCB/out/WP-2_IC-Card_ROM.write_sw.jpg)  \n![](PCB/out/WP-2_IC-Card_ROM.adhesive.jpg)  \n\nSW1 is optional. The marked S3 and R/W pads double as solder jumpers.\n![](PCB/out/WP-2_IC-Card_ROM.no_sw1.jpg)  \n\nFully populated with 512k chip, bank switch, and convenience write-enable switch.  \n![](ref/rom_full.jpg)  \n\nMinimal config with 256k chip, no bank switch, solder blob for WP-2 S3 pin write mod.  \nR1 is not ideal or wanted here because it is a pullup on /WE, and in this configuration, the /WE line is connected to both the S3 and /WR pins inside the WP-2, and they both already have 100k pullups each.  \nIf you leave the solder blob on, then you don't need R1. If you remove the solder blob, then you need R1. Same for the R/W position or S3.  \n![](ref/rom_minimal.jpg)\n\n![](ref/BennVenn_ROM.jpg)  \n![](PCB/out/WP-2_IC-Card_ROM.top.jpg)  \n![](PCB/out/WP-2_IC-Card_ROM.bottom.jpg)  \n![](PCB/out/WP-2_IC-Card_ROM.svg)\n\nThere are 2 options for writing to the ROM card, using a programmer or using software on a modded WP-2.\n\n### Write to the ROM card using a WP-2 with \"S3 write mod\"\n\n* On the WP-2 mainboard, add a bodge wire connecting RA4 pin 5 to RA5 pin 2.  \n  ( RA4p5 is /WR on the cpu, RA4p2 is pin 36 (S3) on the IC Card connector )  \n  This wire can be left there permanently, it doesn't interfere with normal operation.\n\n  ![](ref/WP-2_rom_card_write_mod.jpg)  \n  ![](ref/WP-2_RA4_pin_5.jpg)  \n  ![](ref/WP-2_RA5_pin_2.jpg)\n\n  Solderless option:  \n  ![](ref/solderless_write_mod_1.jpg)  \n  ![](ref/solderless_write_mod_2.jpg)\n\n  Notes if using mini-grabbers instead of soldering:  \n  * Requires mini-grabbers with a thin body and strong hooks: https://www.amazon.com/dp/B0DL5ZLK8H  \n  * Fold X1 away from RA5 to let the grabber reach.  \n  * Ensure the RA5 grabber handle lies on the pcb to the side of the square chip, not on top of the chip.  \n  * Ensure the RA4 grabber lies angled towards the printer port so that the lcd ribbon doesn't lay on top of the grabber handle when you close the case. The sharp corners on the grabber handle will poke into the cable.  \n  The tape in the pic is just to keep the grabbers in the best position long enough to close the case.  \n  * Shift \u0026 wiggle the case halves back \u0026 forth a little while while closing so that the grabber handles get pushed to the sides of the chips where there is just enough room for them so they don't put pressure on the lcd.\n\n* On the card, Select SW1 position S3 or solder-jumper S3 if no switch installed.\n\n* Find Ben Grimmett's software in the files section of the [Model-T Computers](https://www.facebook.com/groups/Model.T.Computers/files/files) group on Facebook.  \n  and especially the latest version of hexview on his [Discord](https://discord.com/channels/761864233855615017/763902318135214084/1429597645520896151).  \n  Copy HEXVIEW v2 (or later) to the WP-2 using a serial cable and TPDD emulator (LaddieAlpha or DL2).  \n  (I would change the name to something like HEXVIEW2.CO)  \n  Run HEXVIEW on the WP-2 (F2-FILES -\u003e RAM DISK -\u003e HEXVIEW2.CO -\u003e F2-RUN)  \n  Run RomCardWriter.exe on a pc and press S in hexview to write a full rom image from the pc to the rom card.\n\n### Write to the ROM card using an eprom programmer\n\n* Build the [programming adapter](#programming-adapter) below  \n\n* See [To program the ROM card](#to-program-the-rom-card)\n\nIf the card has a 512K chip and bank switch installed then there are a few complications to writing the banks.  \nSee https://github.com/bkw777/M4ROM?tab=readme-ov-file#programming-the-chip for explaination from a similar project with the same feature.  \nThis is the main reason the default BOM has a 256K chip and no bank switch.\n\n----\n\n## Programming Adapter\nThe programming adapter supports both ROM and RAM cards.  \nUse with a standard eprom programmer such as TL-866 or T48, etc.  \n\n\u003c!-- Minimalist programming adapter. Requires extreme care not to bend the pins when pulling the card off the adapter.  \n![](PCB/out/WP-2_IC-Card_programming_adapter.jpg)  \n\u003c!-- [Programming Adapter PCB from OSHPark](https://oshpark.com/shared_projects/TkzNwgho)  --\u003e\n[Programming Adapter PCB from PCBWAY](https://www.pcbway.com/project/shareproject/TANDY_WP_2_IC_Card_Programming_Adapter.html)  \n[Programming adapter BOM from DigiKey](https://www.digikey.com/short/5hhj5749)\n\n![](PCB/out/WP-2_IC-Card_Programming_Adapter.jpg)  \n![](ref/horizontal_programmer_1.jpg)  \n![](ref/horizontal_programmer_2.jpg)\n\n\u003c!-- \nExample reading ROM card, jumpers in ROM position.\n![](ref/WP-2_IC-Card_programming_adapter.ROM.jpg)  \n\nExample reading RAM card (SRAM or MRAM), jumpers in RAM position.\n![](ref/WP-2_IC-Card_programming_adapter.RAM.jpg)  \n--\u003e\n\n![](PCB/out/WP-2_IC-Card_Programming_Adapter.svg)\n\n### To program the ROM card\n\nSet all 4 jumpers on the programming adapter to ROM.\n\nSet the write-enable switch on the card to the R/W position.\n\nExample using a TL-866 programmer to write a file named `rom.bin` to the ROM card:  \n`minipro --device SST39SF020A --unprotect --protect --write rom.bin`\n\n\u003c!-- old version of the breakout card also had a footprint for the rom chip and some extra pins to enable/disable it --\u003e\n\u003c!-- current breakout card no longer has that, this is just for reference for TechTangents who has one.--\u003e\n\u003c!-- \n### To program the Breakout/ROM card\n\nSame as for ROM card except:\n\nInstall a jumper from /CE1 to /CE_IC on the card.  \nInstall a jumper from R/W to /WE_IC on the card.  (This one takes the place of the male jumper on the normal rom card above)  \nRemove jumper from  GND to /DET on the card.  \n--\u003e\n\n### Reading/Writing the RAM card\n\nSet all 4 jumpers on the programming adapter to RAM.\n\nExamples using a TL-866 programmer (628128 is the generic part number compatible with the SRAM on the card):  \n`minipro --skip_id --device 628128 --read ram.bin`  \n`minipro --skip_id --device 628128 --write ram.bin`\n\n----\n\n\u003c!-- the bus tap card is the new breakout card --\u003e\n\u003c!-- \n## BREAKOUT CARD\n\n\u003c!-- [Breakout PCB from OSHPark](https://oshpark.com/shared_projects/4spvX9oV) (Select 0.8mm PCB thickness)  --\u003e\n\u003c!--\n[Breakout PCB from PCBWAY](https://www.pcbway.com/project/shareproject/TANDY_WP_2_IC_Card_Breakout.html) (Select 1.2mm PCB thickness)  \n\n[Breakout BOM from DigiKey](https://www.digikey.com/short/323npm39)  \n\n![](PCB/out/WP-2_IC-Card_Breakout.jpg)  \n![](PCB/out/WP-2_IC-Card_Breakout.svg)\n--\u003e\n\n----\n\n## BUS TAP\n\nBreakout card with a card socket to monitor bus signals while a card is in use.  \nThe VHOST-VCARD pins allow to measure the current drawn by the card.  \nVHOST is VCC from the WP-2, VCARD is VCC to the card.  \n\n\u003c!-- [Breakout PCB from OSHPark](https://oshpark.com/shared_projects/4spvX9oV) (Select 0.8mm PCB thickness)  --\u003e\n\u003c!-- [Breakout PCB from PCBWAY](https://www.pcbway.com/project/shareproject/TANDY_WP_2_IC_Card_Breakout.html) (Select 1.2mm PCB thickness)  --\u003e\n\n\u003c!-- [Breakout BOM from DigiKey](https://www.digikey.com/short/323npm39)  --\u003e\n\n![](PCB/out/WP-2_IC-Card_BUS_TAP.jpg)  \n![](ref/bus_tap.1.jpg)  \n![](ref/bus_tap.5.jpg)  \n![](ref/bus_tap.7.jpg)\n\n\u003c!-- ![](PCB/out/WP-2_IC-Card_Breakout.svg) --\u003e\n\n\n# Moving files between a card and a PC\n\nConnect the WP-2 to a PC via [9 pin female-female rs-232 null-modem cable](https://amazon.com/dp/B00QM8ZP5E) and [usb-serial adapter](https://amazon.com/dp/B074VN9ZG4)(usb-c example), \nor a one-piece [usb-null-modem cable](https://amazon.com/dp/B07DRHB264).\n\nRun [DL2](https://github.com/bkw777/dl2) or [LaddieAlpha](https://bitchin100.com/wiki/index.php?title=LaddieCon#LaddieAlpha) on the pc.\n\nThen use the WP-2 (press `F2`+`=`) to copy files between `MEMORY CARD` and `DISKETTE`.\n\n# Reference Material\n[WP-2 Owner \u0026 Service Manuals](https://archive.org/search.php?query=Tandy%20WP-2)  \nCard slot signals \u0026 usage: Service Manual 8-2, C-3.  \nExecutable \"RUN\" files: Service Manual 4-16, D-1.\n\n### Connector:  \n[Original Connectors](ref/JC20-B38S-F1.pdf)  \nDatasheet for both the slot in the computer and the connector in the card.  \n\nYou can't get the real connector any more, but you can get a generic socket header which fits the pins.  \nThe pins inside the card slot are 1 row x 38 pins, 1.27mm pitch, 6.0mm long\n\nSAMTEC 8.5mm Pin Socket  \n\u003chttps://duckduckgo.com/?q=SMS-138-01\u003e  \n\u003chttps://www.digikey.com/en/products/detail/samtec-inc/SMS-138-01-G-S/9773732\u003e  \n\u003chttps://www.mouser.com/ProductDetail/Samtec/SMS-138-01-G-S\u003e\n\nThere are much less expensive generic female 1.27mm pin headers on ebay and aliexpress, but they don't work for this. Sorry :/ The metal parts inside the cheap connectors aren't held in place accurately enough, and the pins in the WP-2 hit the edges of the metal parts in female sockets, and no amount of wiggling gets all 38 pins to line up and let the card insert. And trying just risks damaging the pins inside the WP-2. So, the Samtec socket is both deep enough to take the 6mm-long pins, and is manufactured to tight enough tolerances that the pins slot right into the socket with no problems.\n\n### Notes about some of the card slot signals:  \n\n* Pin 2, /DET Card Detect  \n  Pin 2 -\u003e RA5 -\u003e IC5 pin 64, \"T1\"\n  \n  WP-2 uses this to detect the type of card.  \n  The pin is pulled up to VDD inside the WP-2.  \n  A RAM card connects this pin to GND, which tells the WP-2 that it is a RAM card.  \n  A ROM card leaves this pin not connected, which means it will be pulled high by the pullup resistor inside the WP-2, which tells the WP-2 that it is a ROM card.\n\n* Pin 14, 2nd GND  \n  This pin is tied to GND inside the WP-2, but it looks like it's an un-used input or output, not intended to be used as a power gnd.  \n  It looks like this pin was partially implimented as Pin 14 -\u003e RA5 -\u003e IC5 pin 65, \"T2\", just like S1-S3, but ended up not being used in the final production.  \n  So instead, IC5 pin 65 is pulled up to VDD and not connected to the socket or anything else, and the connector pin is tied to GND and not connected to anything else.  \n  It's possible the \"IC Card\" spec defines a function for that pin, and the gnd is just a way to satisfy that part of the spec in case there are cards that expect it, like how CE2 is hard-wired to VDD.  \n  \n  The cards in this repo all include a cuttable solder-jumper to disconnect pin 14 from GND on the card, in case there is some other machine (not WP-2) that might not like the pin being shorted to gnd.\n\n* Pin 3, CE2, active-high chip-enable  \n  This is not a real CE2 signal from the WP-2, it's just connected directly to VDD inside the WP-2. The card is only enabled/disabled by /CE1. Some of these designs connect the pin anyway as long as the card is based on a chip that actually has a CE2 pin anyway, because it's possible there is some other machines besides WP-2 that use the same card standard, and possibly one of those might actually use the signal. But for instance the 512K MRAM chip does not have a CE2 pin, and that card does not bother to add logic to impliment it, so the pin is NC on that card.\n\n* Pins 15, 16, \u0026 36  \n  \n  Pin 15 -\u003e RA5 -\u003e IC5 pin 66, \"S1\"  \n  Pin 16 -\u003e RA5 -\u003e IC5 pin 67, \"S2\"  \n  Pin 36 -\u003e RA5 -\u003e IC5 pin 68, \"S3\"\n  \n  RA5 is 100k pullup to VDD.\n  \n  IC5 is a gate array with unknown programming.\n  \n  The S1, S2, S3 labels come from a schematic in the service manual. They are not mentioned anywhere else.\n  \n  The service manual says the original IC Cards have no connections on any of these pins (that's in the cards, not in the WP-2).\n  \n  It is unknown if the WP-2 does anything at all with these pins.  \n  They are connected to a chip, and the chip is a gate array that could be programmed to do anything.  \n  The only clues are that the pins are actually connected to anything at all instead of NC, and that they are pulled up rather than down or floating.  \n  It suggests there was a possible reserved usage, and that it was an active-low signal, and that possibly software could do it on the existing hardware.  \n  One guess for pins 15 \u0026 16 might be made purely from their position on the connector. Possibly the spec for the \"Toshiba IC-Card\" interface includes pins for A18 and A19 that the WP-2 just doesn't happen to use. Though, unused address lines pins would more likely be pulled down than up, since address lines are active-high.\n\n* Pin 17, A17: Only used for ROM. the WP-2 only supports up to 128K in a RAM card.\n\n* Pin 37, BCHK/Vchk, Battery Voltage Check: It's unknown exactly how this was intended to be used by the \"IC-Card\" spec.  \n  The SRAM card here simply connects pin 37 to BATT+. This seems to do nothing at all on a WP-2 but maybe some other machine like WP-3 or Citizen uses it.  \n  The schematic on page 8-2 in the servivce manual doesn't show Vchk connecting to anything, and I also cannot find anything anywhere on the motherboard that has continuity with this pin.  \n  Other similar machines did have a pin that was used for the host machine to read the level of the battery on a RAM card.  \n  See the VBB pin in [Atari Portfolio Technical reference Guide, page 11](https://archive.org/details/atariportfoliotechnicalreferenceguide1989/page/n10/mode/1up).  \n\n### Other similar machines and card standards that are NOT the same and NOT compatible\n\nThe \"Toshiba IC-Card\" appears to have been almost a standard, maybe, before PCMCIA type 1 was formalized. And so it's tempting to try to find other possible cards that might be compatible besides the ones sold by Tandy. There might be some but I have not found any yet.\n\nJust for the sake of keeping track somewhere, the following look very similar, but are NOT the same and NOT compatible.\n\n* Amstrad NC100 and clones \u0026 derivatives like NTS DreamWriter 325.  \n  They look very similar but the memory card in those is PCMCIA Type 1, which is totally different from this.\n\n* ITT Canon Star Card  \n  Single row 38 pins (or maybe 39 or 40, references say 38-pin, but you can physically count 39 holes plus another smaller hole in pictures)\n  But no polarity notch on the pin-38 side.\n\n* Yamaha MCD32 / MCD64  \n  This one is insidious. It combines both the fact that it *looks* perfect and probably fits perfectly,\n  with the fact that it would short the WP-2's VCC directly to GND.\n  It has the same single-row 38-pin connector and the same shape of keying notch on one side.\n  You could probably plug this card in and it would probably fit perfectly.\n  The key notch is on the on the wrong side, so you'd have to plug it in upside-down, but maybe the pins are just numbered the other way and doesn't really matter?\n  Well it's not merely the same card but updside down. The pinout is different.\n  Just for starters, MCD has GND on both pin 1 and pin 38, while WP-2 has GND on pin 1 and VCC on pin 38.\n  So, no matter which direction the pin numbers count, no matter what the rest of the pinout looks like,\n  if you managed to insert the card it would short the WP-2's VCC power rail directly to GND!\n\n# TODO\n* CamelFORTH on ROM?  \n  But how to construct rom image?  \n  Try to deduce how a rom is supposed to work by recording the bus while trying to load a dictionary while the breakout board has the /DET pin not connected to GND.\n\n* Document how to create a RUN file.  \n  Figure that out and write some sort of reproduceable toolchain \u0026 Makefile template hello world project to create new executables.  \n  Known examples:  \n  * John Hogerhuis [CamelFORTH](http://bitchin100.com/files/wp2/CAMEL.ZIP)  \n  * \"Christopher\" from \"randomvariations\" [DUMPROM](https://randomvariations.com/category/tandy-wp-2/)  \n  * Ben Grimmett [HEXVIEW](https://www.facebook.com/groups/Model.T.Computers/files/files)\n\n* Use the programming adapter to dump ram card images and reverse engineer the \"filesystem\".  \n  The files themselves (at least .DO) are already fairly well documented: https://bitchin100.com/files/wp2/wp2format.html\n\n* Possibly eventually add an mcu to the card that can read \u0026 write the sram and present a standard usb mass storage interface to a pc.\n\n* Add a 5v power output for a [MounT](https://github.com/bkw777/MounT) \u0026 [PDDuino](https://github.com/bkw777/PDDuino)?\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbkw777%2Fwp-2_ic-card","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbkw777%2Fwp-2_ic-card","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbkw777%2Fwp-2_ic-card/lists"}