Changelog
What changed in the library each week: sources added, parsing fixes and changes to the site. 262 changes so far. The code and the full history are on GitHub.
Week of Nov 2 – Nov 8, 2026 5
- Thu, Nov 5
README: what the site shows and what it never publishes, how the scraper behaves, and how a source can ask to leave Akashic e6d226e
- Thu, Nov 5
Workbench links: the Vero P2P note describes the blog only 71c1c66
- Thu, Nov 5
Workbench links: shorter note on the Vero P2P link b5e07a5
- Thu, Nov 5
Remove Vero P2P at the author's request: the adapter, its registry entries and the README row are gone, and the blog is linked under Workbench links (Learn) instead of listed in the library. Point to point builds came only from it, so the guide no longer names them f250d4f
- Wed, Nov 4
Substitutes for ICs, diodes and optocouplers from datasheet figures: partspecs.json holds about 290 parts read off the linked datasheets (the page cited), each in a group (an IC's socket: function, pin count and pinout; a diode's kind; an opto's construction); partspecs.py ranks the rest of the group and says what differs (input type, supply limit, compensation pins, forward drop), exported as specsubs.json and shown on each part page. HotKits: a board also sold as a kit or assembled kept the offer's price text as its price, so those pages failed to prerender and were missing from the site f560e45
Week of Oct 26 – Nov 1, 2026 7
- Sat, Oct 31
Bump serialize-javascript from 7.1.2 to 7.1.4 in /app (#26)
Bumps [serialize-javascript](https://github.com/yahoo/serialize-javascript) from 7.1.2 to 7.1.4. - [Release notes](https://github.com/yahoo/serialize-javascript/releases) - [Commits](https://github.com/yahoo/serialize-javascript/compare/v7.1.2...v7.1.4)
ad2c923 - Sat, Oct 31
New source: turretboard.org (turretboard.knucklehead.dk), 122 stripboard, perfboard, tagboard and turret layouts of vintage pedals by Sinner and b.man; parts read from the DIY Layout Creator PDFs the posts link (layouts.diylc_pdf: values counted, pots by name, semiconductors from the notes), family pages split by hand, versions as variants and other boards as alternate builds de100f7
- Sat, Oct 31
Bump svelte in /app in the app group across 1 directory (#25)
Bumps the app group with 1 update in the /app directory: [svelte](https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte).
68a839d - Sat, Oct 31
Bump undici and wrangler in /app (#24)
Bumps [undici](https://github.com/nodejs/undici) to 7.30.1 and updates ancestor dependency [wrangler](https://github.com/cloudflare/workers-sdk/tree/HEAD/packages/wrangler). These dependencies need to be updated together.
6fbce57 - Sat, Oct 31
Bump fast-uri from 3.1.8 to 3.1.9 in /app (#23)
Bumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.8 to 3.1.9. - [Release notes](https://github.com/fastify/fast-uri/releases) - [Commits](https://github.com/fastify/fast-uri/compare/v3.1.8...v3.1.9)
268ee77 - Mon, Oct 26
scrape --reset keeps delisted boards: instead of deleting the vendor's rows before the run, it waits for a full, error-free run and drops only the listed boards that run did not store, never a delisted one and none if more than a tenth would go; it refuses --only and --limit instead of ignoring them. Docs brought up to date: the table-parser rule (most rows wins), --only as a substring, the kit and repo vendor kinds, the akashic Worker and custom domain, the vendor list, PRODUCT.md's counts and currencies 24d905b
- Mon, Oct 26
Guide: six pages under Guide in the menu on how to use Akashic (a first look and the words it uses, searching and combining the filters, reading a circuit page and how far to trust its parts list, originals and parts with datasheets and transistor substitutes, My bench and What can I build, and common questions), linked from the footer and the About page 6cbc9bf
Week of Oct 19 – Oct 25, 2026 7
- Fri, Oct 23
Graph for Claude: scripts/graphify_export.py builds a graphify graph of the library (boards, vendors, the originals they're based on with spelling variants merged, and their ICs, transistors and diodes) for the akashic-graph MCP server in .mcp.json; the weekly refresh rebuilds it bb6bf9c
- Thu, Oct 22
Bump wrangler from 4.151.1 to 4.151.2 in /app in the app group (#20)
Bumps the app group in /app with 1 update: [wrangler](https://github.com/cloudflare/workers-sdk/tree/HEAD/packages/wrangler).
9f424bb - Wed, Oct 21
Bump the app group across 1 directory with 4 updates (#19)
Bumps the app group with 4 updates in the /app directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [svelte](https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte), [svelte-check](https://github.com/sveltejs/language-tools) and [wrangler](https://github.com/cloudflare/workers-sdk/tree/HEAD/packages/wrangler).
744d522 - Wed, Oct 21
Bump certifi from 2026.7.22 to 2026.10.19 in /scraper (#17)
Bumps [certifi](https://github.com/certifi/python-certifi) from 2026.7.22 to 2026.10.19. - [Commits](https://github.com/certifi/python-certifi/compare/2026.07.22...2026.10.19)
80b7484 - Wed, Oct 21
Bump pillow from 12.3.0 to 13.0.0 in /scraper (#18)
Bumps [pillow](https://github.com/python-pillow/Pillow) from 12.3.0 to 13.0.0. - [Release notes](https://github.com/python-pillow/Pillow/releases) - [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst) - [Commits](https://github.com/python-pillow/Pillow/compare/12.3.0...13.0.0)
d660973 - Wed, Oct 21
Bump vite from 8.3.2 to 8.3.5 in /app (#16)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 8.3.2 to 8.3.5. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v8.3.5/packages/vite)
ffae1a4 - Tue, Oct 20
New source: HotKits, 81 PCBs for pedals and tube preamps from Alex's Google Drive price list (USD prices and stock, kit and assembled-board prices folded in, parts by count from each build document with the multi-build documents' variants kept apart, and how to order by message); Matt Garman's modules, from his notes: gerbers, BOM and placement files with his fabrication caveats, the DIYStompBoxes thread beside the PedalPCB one, and his KiCad project in the Schematic section; a circuit with build variants shows the first variant's parts as the page opens 25da839
Week of Oct 12 – Oct 18, 2026 30
- Sun, Oct 18
Cryptid Effects: Proteus, a PCB and faceplate for MicTester's Silicon Tonebender, listed with the other boards of that circuit (Fuzz Dog's PitBull now among them, as its page credits Mic Tester's SiTB); the adapter finds dated faceplate, PCB and build pictures and drops a 'build report: To Do' placeholder fc456a0
- Sun, Oct 18
Dependabot: hold back the SvelteKit 3, adapter-static 4 and vite-plugin-pwa 2 majors until @vite-pwa/sveltekit supports SvelteKit 3 (closed #14: its install fails on the peer range, and SvelteKit 3 no longer reads svelte.config.js); the minor and patch bumps still come in weekly 711abe0
- Sun, Oct 18
Code scanning: the audit's generic-transistor pattern ends each word at a word boundary, so a value like 'bjtbjt...' no longer backtracks exponentially (fixes alert #9, same result on all 6,920 stored values); Eff Dub's script and style stripping ignores case and accepts '</script >' (fixes alert #8) 3e2d38e
- Sun, Oct 18
New source: Matt Garman (MattG), his three microcontroller bypass modules from mcu-bypass-hardware (ATtiny13A and ATtiny202 buffered electrical bypass quasi-ICs, ATtiny13A relay module), parts read from the KiCad schematics, each linking the mcu-bypass-firmware repository, its firmware image from the latest release, the flashing guide, the forum thread and its build reports; a repo source that shares KiCad files says so on its button bb5a595
- Sun, Oct 18
New source: Revolution Deux, Fred Briggs' blog of boutique and vintage pedal schematics: 248 circuits from 161 posts, parts read by eye, with the 23 corrections the posts give for their schematics applied to the parts and listed above them on the circuit page (transcriptions can now carry 'fixes') 8f4555e
- Sat, Oct 17
Circuits: My bench at the top of the filters, with a note on how to add circuits and where the bench is while it is empty e065d4c
- Sat, Oct 17
Circuit pages open without the 7 MB index: each circuit's record carries the other boards based on its original (same list and order as the page computed), so a page opened directly works at once on a phone 3eb925e
- Sat, Oct 17
My bench: the circuit page's button appears once the bench has been read, never in the wrong state while the page loads; circuit and part pages come from the network first, so a cached copy from an earlier release (whose scripts are gone) is used only offline ff93e4d
- Sat, Oct 17
My bench: save circuits with a note, kept in the browser (circuit page button, Workbench page, circuits filter and row tag, What can I build option, export/import and share link); the service worker serves precached pages whatever their query; What can I build's Surprise me button; Kit Rae's Big Muff page under Links; Cryptid Effects' five utility boards, the faceplate tag only where a faceplate exists 92b7cea
- Fri, Oct 16
New source: Amplified Parts, 34 turret, stripboard and terminal strip build guides with parts from their tables; Mod Electronics gains nine bare PCBs from their build guides and Amplified Parts prices and stock on the kits; '1 knob' under a one-knob faceplate 8c978c6
- Thu, Oct 15
New source: Jon Patton (midwayfair), the five pedal boards he shares on OSH Park, with parts read from his Eagle board files (eagle.py now reads .brd files too); the Hamlet Delay and Clipper Ship list as the originals other sources' clones name; 'projects' buttons name the fab 0ac94bf
- Thu, Oct 15
EfektPol's layouts are CC BY-NC-SA 4.0 on the layouts wiki: source note, README row and a license tag c4f66e2
- Thu, Oct 15
EfektPol: a line on each layout to message @efektpol on Instagram, and the source links there; vendor rows are upserted so renames and notes in db.py reach the database (Naegele Audio's name, the delyk and PCBWay notes were stale) b54fb77
- Thu, Oct 15
New source: EfektPol, seven turret board layouts hosted on the Cryptid Effects layouts wiki (parts from the wiki BOM tables, the .diy file linked); Cryptid: the MOSFET Driver Redux's original and category; terminal strips are hardware, not parts d6612f5
- Thu, Oct 15
Naegele Audio is the source's name (PedalBuilder on the PedalPCB forum): the contact line says to message PedalBuilder and mentions their relay bypass and I/O boards, and the free boards now carry that line too f057fd4
- Thu, Oct 15
New source: PedalBuilder (Naegele Audio), 18 circuits from the PedalPCB forum: 16 build reports whose PCBs PedalBuilder sells by message (parts read by eye from the posts' schematics, a 'message PedalBuilder' line on each page) and two free boards for Chuck D. Bones circuits, read from the layouts wiki 590c3df
- Wed, Oct 14
Circuit records in 512 bundles (data/sets/) for moves between circuits; the per-circuit files are only read while prerendering and stay out of the deploy, which was over the 20,000-file limit 0489215
- Wed, Oct 14
New source: Vero P2P, 381 stripboard, point-to-point, tag board and turret layouts; point to point is a new build kind; Workbench links: the Vero P2P Tone Bender MkIII component values table 252a8c0
- Tue, Oct 13
New source: Mod Electronics (MOD Kits DIY), 27 pedal kits read from their instructions (captioned parts-list drawings on the terminal-strip kits, the bill of materials on the PCB kits), and a Kits group on the Workbench links da02496
- Tue, Oct 13
App dependencies: vite 8.3.2, wrangler 4.147.0, @types/node 26.6.4 (the small bumps from PR 13; SvelteKit 3 waits for @vite-pwa/sveltekit) 921ca40
- Tue, Oct 13
A line above the circuits table and above each circuit's parts list points to What can I build 93fa2bb
- Tue, Oct 13
What can I build, under Workbench: list the parts on hand from the catalog and see the circuits they cover and the ones up to three parts away; the export writes each board's needs with alternatives, quantities and spellings that stand in for each other 915c360
- Tue, Oct 13
Workbench links: Huntington Audio Labs, for breadboarding tools and learning kits 7571ca4
- Mon, Oct 12
Datasheets checked against Aion FX's component pages: Xvive's VTL5C6 sheet hosted, the VTL5C4, VTL5C9 and LT44 sheets linked, and eight spellings linked to the sheet their part already had d1ebe77
- Mon, Oct 12
Aleph Null circuits say where to get a PCB: a note on each of the 13 pages links the designer's PedalPCB forum profile 37b712a
- Mon, Oct 12
Workbench links: the Tayda UV Artwork Processor beside Sightings under 'My tools', the layouts repo link removed (it is in the library), and a to-do for the artwork templates wiki dedda6f
- Mon, Oct 12
Workbench links: Stompbox Layout for drill templates, and Sightings (wiki, downloads, source) f9047b3
- Mon, Oct 12
Phone header: the section links sit on their own row under the logo and search field, now that five of them ran wider than the screen 8cd7813
- Mon, Oct 12
Workbench: a builder's notes on sourcing parts, building a board and helpful sites and tools, worked in from the diy-guitar-effects notes; the clone count on a circuit page leaves out the maker's own board; drill templates noted as a to-do 62930bd
- Mon, Oct 12
A maker's own board is the original that layouts and clones of it name: 29 boards say 'The original' and list what is built from them, and each layout or clone links back to the maker's board (the Effects Layouts Tremshifter to Dead Astronaut's) afb30bf
Week of Oct 5 – Oct 11, 2026 95
- Sun, Oct 11
Dead Astronaut Tremshifter: full parts list read by eye, GL5516 or GL5528 suggested for its 2k-24k LDRs on the board and the perfboard layout, and Senba's GL55 series datasheet hosted 5ffe1de
- Sun, Oct 11
Layout audit flags reviewed against the drawings (11 drawing typos carry the real part, 6 capacitors get their unit, the audit knows more real parts, pots in ohms and D-taper pots parse) and 22 near-duplicate originals merged, 7 two-original boards listed under both 5b8756e
- Sun, Oct 11
Datasheets for the crystals and audio transformers: Abracon and Triad sheets linked, the KDS DT-38 specification and Xicon's 42TM, 42TL and 42TU series sheets hosted, with a note for a hosted sheet of a part still made 639f991
- Sun, Oct 11
Tagline: 'Guitar effects circuit lookup' in the header, page title, manifest, wordmarks and link-preview image, now that layouts sit beside the PCBs c1fcba8
- Sun, Oct 11
Offline use switched on (the service worker and manifest were built but never registered), 'Check before you build' notes from by-eye readings on the circuit page, two multi-layout posts split into nine circuits, and part links that always reach a part page (1,369 led nowhere) 9f20dc6
- Sun, Oct 11
Layouts: 28 early layouts read by eye (their picture links used an old Blogger address), 12 turret boards filed as Turret, 14 posts that are not circuits dropped; FuzzDog Bearhug under the Jon Patton Bearhug and Slate Drive IC1 TL051 b88a6b0
- Sun, Oct 11
Scraper: user agent names the right GitHub account (drlholloway) 465fa04
- Sun, Oct 11
Circuit page: spacing between two originals ('the BN5 Black Noise and the SP-5 Slam Punk') 8e3ec99
- Sun, Oct 11
Originals: a board that builds two originals is listed under each (original_covers.json: Ibanez BN5 / SP5, two Devi Ever pairings), and Devi Ever pedals sold under several names for one circuit are one original 7d5a6f5
- Sun, Oct 11
Originals: near-duplicates settled (4,207 to 3,560) with a maker-last rule, word order ignored, and a hand list of 494 originals and their 1,137 spellings in original_aliases.json f7b0d68
- Sun, Oct 11
Lighter site: the index is fetched once instead of written into the circuits page (8.4 MB to 217 KB), the offline cache precaches 71 files instead of 28,242, the originals list is paged, and originals match across PCBs and layouts through makers learned from the layout sites (4,698 to 4,244) bb67cae
- Sun, Oct 11
Build: service worker file limit raised to 16 MiB, as the prerendered circuits page is 8.4 MB with the layouts 8cbac1c
- Sun, Oct 11
Board layouts beside PCBs: 3,899 vero, perfboard and tagboard layouts from Tagboard Effects, Dirtbox Layouts and the Effects Layouts blog, with a Build filter, Verified tags, per-build counts on Originals and parts lists read from each drawing by eye; Parasit's stripboard layouts attach to their PCB circuits a75a96a
- Sat, Oct 10
Originals: listed by name, brand then pedal, instead of by how many boards clone them bb090e3
- Sat, Oct 10
Circuit filters fold: each filter expands and collapses at its header, with Collapse all / Expand all; a folded filter says how many of its choices are on, and the choice is remembered in the browser (fold.svelte.ts, shared with the parts index) 14a617d
- Sat, Oct 10
Parts index: section headers expand and collapse, with Collapse all / Expand all; the choice is remembered in the browser and a filter opens every section b723d44
- Sat, Oct 10
1N4146: described as a DO-27 silicon rectifier (3 A, 1200 V), Diode Semiconductor Korea sheet hosted; the BOSS SD-1 note no longer calls it a typo for 1N4148 8581470
- Sat, Oct 10
Export: diode and transistor descriptions kept apart, so the transistor placeholders GE and SI no longer take the diode wording 58e8fba
- Sat, Oct 10
Diodes: placeholders (GE, SI, SCHOTTKY, ZENER) and Maestro house numbers described; HZ5B1, 1SZ46A, 10E-2, MA522, 2D503B and SH270 described, CDSH270 corrected to DO-35; Renesas HZ and Central CDSH270 sheets linked, NEC 1SZ46A and Nihon Inter 10E2 sheets hosted (248 of 263 diodes described) 346d23d
- Sat, Oct 10
MN3011: described as a 3328-stage BBD with 6 taps (DIP-12), Panasonic sheet hosted 0d9b306
- Sat, Oct 10
0A9 DIL: described as a 4-pin DIL bridge rectifier; MN3011 reverb's PSU bridge is B1, rectifying the transformer output for the ±15 V supply 1329fc9
- Sat, Oct 10
1N346: described as a DO-4 stud-mount silicon rectifier, New Jersey Semiconductor sheet hosted (both pages kept) 1d196aa
- Sat, Oct 10
Search and filter by control: a Controls filter (combined with AND) and control names in the search box, with vendors' spellings grouped as synonyms and matched as whole words; circuit pages link each control to the circuits that share it a5c315c
- Fri, Oct 9
AVR32DB28: described as an 8-bit microcontroller (DIP-28 / SOIC-28 / SSOP-28) with Microchip's AVR DB datasheet linked (505 of 592 ICs described) 1eb1e61
- Fri, Oct 9
Fuzz Dog Frequency Freebooter: U1 corrected to 78L05 (the build doc prints 70L05) dc28f8e
- Fri, Oct 9
Parts index in columns: part number, circuit count and description line up in each section, sized to its entries, wrapping on a phone; descriptions say TH, SMD, N-ch and P-ch 33a7e7e
- Fri, Oct 9
ICs: TL044 quad low-power op-amp (DIP-16, datasheet hosted), HT8955A echo, TA7179P ±15 V tracking regulator, M5M4246AP DRAM, BA6124 LED level-meter driver; the 5-stage envelope filter's BA6214 corrected to BA6124 (504 of 593 described) 77ca290
- Fri, Oct 9
ICs: 98% described (499 of 593): op-amps, regulators, VCAs, BBDs and echo chips, voice changers, DACs, memory, MCUs, CMOS and TTL logic with packages; Mitsubishi M5/M50/M51, ROHM BA and Toshiba TA chips; HT8950 datasheet hosted; 32 maker datasheet links 9e9022e
- Fri, Oct 9
Parts: every category says what it is (ICs with function, input type and packages, pots with taper, switches, optos, inductors, transformers, crystals); resistor and trimmer ranges kept; lamps, X-ref resistors and ICs, and MH inductors filed right; Repeater, Kruger, Tremshifter, Master Phaser, Nostalgitone and '22 Standard Reverb corrections df97fcf
- Fri, Oct 9
Diodes: each diode says what it is ('Si Schottky DO-41 Through-Hole', 'Si Zener 9.1 V 1 W DO-41 Through-Hole'); diode audit corrections; ROHM BA chips filed as ICs; TODO transistor and diode sections
Kind and package from the part number's family (diodes.py), zener voltage, power and package from the series (1N957-992 added) or the number. Misprints and OCR slips traced to their source and corrected. The parts audit accepts every diode the descriptions know.
e6f6eb9 - Fri, Oct 9
Parts: each transistor says what it is ('Si NPN BJT TO-92 Through-Hole') in the index and on its page; package from the registered part number, both for metal-can parts also sold in plastic (2N2222A: TO-18 / TO-92)
Material, polarity or channel and kind come from the transistor database; Darlingtons, unijunctions and the PUT are named. The package is left out where it is not certain.
de4494d - Fri, Oct 9
Cleanup run: PCBWay SD9, TS 808 V2, Distortion+ and Rat read from their project images, AMT M1 EQ/controls pots, Bent Fishbowl Clearglass (Mk2 and Bk3) and Narrowcast V2, GuitarPCB utility boards 43e5b37
- Fri, Oct 9
Experimentalists Anonymous: the last 106 OCR schematics read by eye (3,168 rows to 12,481), so every schematic with parts is read by eye; Taurus R147 and 901B R2 corrections fixed; audit range and four-digit rules tightened
Readers worked whole service sets page by page (Korg MS-50, Minimoog D, Prophet-600, Moog modules, Boss and Ibanez factory sheets, the Nobels range). Corrections that disagreed with the new readings were checked against the drawings; ones the readings now carry or that would add duplicate rows were retired. Capacitor codes with a tolerance letter ('472J') parse.
a2a826e - Fri, Oct 9
Experimentalists Anonymous: the last 187 thin-OCR schematics read by eye (491 rows to 7,644); eight retired corrections; the audit counts prefixed quantity rows
Readers applied legend and note values to the parts they name and read a PDF's own parts list where it prints one. Ten drawings hold nothing to list; the Roland TR-707 notes and M-110 scan need a separate read.
b3a0b80 - Fri, Oct 9
TODO: discontinued datasheet counts after the October 9 additions (69 of 241 hosted, 159 to download; D9 family near the top) 36b92c3
- Fri, Oct 9
Datasheets: Belton BTDR-2/3, Spin FV-1, TI MC3403, RC4559, RC4136, LM319 and LM79 linked; NTE's NTE102/NTE103 sheet served; TIS92, TIS97 and the D9 family on the discontinued list
A sheet listed in PAGES keeps exactly those pages (the trailing-page trim had dropped the NTE103's second page of characteristics).
2195262 - Fri, Oct 9
Datasheets: grade and package spellings take their base part's sheet (2SC2240BL, HD14011BF, MMBF201, uPC4558C; 26 parts); TODO updated with the transistor audit and current counts
MMBF with a three-digit number is the J-series JFET (MMBF201 is the J201, not the 2N201).
26514f8 - Fri, Oct 9
Transistors: the A02650 (TI house number, low-gain PNP germanium, hFE about 30) takes the OC71's parameters and substitutes 500a79a
- Fri, Oct 9
Pompei read by eye (453 parts on three boards, every transistor); Saw Waveshaper, EMS VCS3 oscillator and Minimoog ladder filter drawings read whole; TS-10 Q2-Q5; confirmed typos 2SK11B and 2N5809, CV10805 as the BC108
The audit accepts board-prefixed designators and knows the LM394; Tremolito's shopping-list row is corrected by value ('=2N5809'), a new corrections form for rows that share a quantity designator.
144ffcf - Fri, Oct 9
Transistor audit: 55 boards corrected at the source (doc typos, OCR misreads, legend values on the wrong designator, shifted rows); lookup no longer matches 2SK30 to the 2SK301 and reads C2240BL, 3904 and value lists; FuzzDog keeps whole values
Every transistor checked against the transistor database and each mismatch traced to the doc. Japanese short forms and bare 2N numbers normalize to the full part; FS36999, TR1623 and CV10805 resolve to the 2N5133, 2SC1623 and BC108; BF245 is a JFET. Crystals, LEDs, trimmers and sockets on Q designators get their own category.
89b5c4a - Fri, Oct 9
Zeners: the low-level 1N4678-4717 series (1.8-43 V) joins the voltage options and the cross-reference, so 1V8 (Ethos TWE-1 clones) lists the 1N4678 and the red LED stand-in 34511ce
- Fri, Oct 9
Parts: a diode given only by voltage lists the stock zeners of that voltage with series, power, package, datasheet and boards using each 62f0728
- Fri, Oct 9
GuitarPCB: read the heading-free grid table when it finds more parts than the table parser (Blues Power diodes no longer from OCR); numbered knobs, bracketed roles, zener voltages and footnote stars handled 565d212
- Fri, Oct 9
Parts index: BA6110, BA718, HD14011, L78L0x and NJM4558 filed as ICs; Korg TX-429D is a MOSFET, not an opto cf0b1cd
- Fri, Oct 9
Corrections: merge the duplicate Digitech PDS2020 entry so U22 LM358 (and R60, R90) apply again beside D16 1N4148 d2bc168
- Fri, Oct 9
Datasheets: 111 more parts link the maker's own sheet; 27 out-of-production parts join the discontinued list; 1N4148/2N2222A typos corrected
Every current part used more than once was searched by hand ("<part> datasheet pdf", maker's site only): BAT41, 2N5458, 2N5484, MMBFJ201, IRF740, BS250, LF351, LM301A, the 1N52xxB zeners, the 78L regulators and more. BC557A/B move to onsemi's BC556B sheet. 1N414B, 1N1418 and 2N222A rows are corrected to 1N4148 and 2N2222A. TODO.md counts brought up to date.
65fea56 - Thu, Oct 8
Datasheets: BBD new production named and linked like the MN3207 (MN3101 -> Cabintech CT3101 with the archived Panasonic sheet, BL3208 -> Coolaudio V3208) 9428cfa
- Thu, Oct 8
Datasheets: discontinued list grows to 210 sheets for parts the newer lists brought in; other spellings link to hosted sheets; 47 more maker links d379220
- Thu, Oct 8
Datasheets: keep every fab's sheet for a discontinued part and name the maker (2N2646 Comset, 2N4124 onsemi, 2N5133 New Jersey Semiconductor) 788fa88
- Thu, Oct 8
Experimentalists Anonymous: last batch of synth circuits read by eye (2,829 parts: OB-8, Juno-106, TR-606 voice boards and more) 5741c15
- Thu, Oct 8
Experimentalists Anonymous: second batch of synth circuits read by eye (1,868 parts, synth service manuals) 40bdf4c
- Thu, Oct 8
Experimentalists Anonymous: first 40 synth/utility circuits read by eye (376 parts); read truncated images 9bf1031
- Thu, Oct 8
PCBWay: 24 boards read from their login-only schematic PDFs (1,446 parts, multi-circuit boards as variants) 4d9943e
- Thu, Oct 8
PCBWay: Diezel VH4, VHT Deliverance and Tech21 Character Series read from their full-size schematic PDFs a55ece0
- Thu, Oct 8
PCBWay: all 303 boards with a schematic read by eye (6,930 parts) 6a7e1d9
- Thu, Oct 8
PCBWay: find schematics named schem.png/schematic.png, and 14 unnamed ones picked by hand 34db4cb
- Thu, Oct 8
Experimentalists Anonymous: last batch of no-parts-list pedals read by eye (28 circuits) fb6907f
- Thu, Oct 8
Experimentalists Anonymous: batch 8 of no-parts-list pedals read by eye (41 circuits); drop 29 OCR corrections the readings replace 5882d95
- Thu, Oct 8
Experimentalists Anonymous: batch 7 of no-parts-list pedals read by eye (43 circuits); four PDFs name their schematic page 6a04237
- Thu, Oct 8
Experimentalists Anonymous: 46 more no-parts-list pedals read by eye; tapered trimmers parse; audit looks up normalized transistors 5ec3551
- Thu, Oct 8
Experimentalists Anonymous: 45 branded pedals with no parts list read by eye; MPS-A transistors match c735d7a
- Thu, Oct 8
Experimentalists Anonymous: last 26 pedal schematics read by eye; Lovetone Meatball reads page 2 a38f718
- Thu, Oct 8
Experimentalists Anonymous: 48 more pedal schematics read by eye; '1meg', '220E' and 'A4k7' values parse 78fdf20
- Thu, Oct 8
Experimentalists Anonymous: 48 more pedal schematics read by eye; page override for multi-page PDFs; capacitor codes parse 63412e5
- Thu, Oct 8
Experimentalists Anonymous: 20 worst OCR'd schematics read by eye (transcribed/); leading-point values parse 774a708
- Thu, Oct 8
Basic Saw VCO (Experimentalists Anonymous): parts read by eye; D1 is a diode, the CA3140 is U2 ee980f7
- Thu, Oct 8
Dead Astronaut: read Eagle parts lists from text (Pendulum Tremolo+ and eight more) f365ff5
- Thu, Oct 8
GuitarPCB: read heading-free parts grids from text (Mastodon Fuzz V3/V4 and 41 more boards) 3487375
- Thu, Oct 8
Override sharp to 0.35.5 (wrangler pins 0.35.4; GHSA fix) 9c81271
- Wed, Oct 7
Zeners: one part per voltage however it is written, and part numbers count toward their voltage 859d389
- Wed, Oct 7
VTL5C2 links Xvive's 5C2 datasheet; --add keeps a local copy of a linked sheet e9e507f
- Wed, Oct 7
TA7136P datasheet (Toshiba TA7136AP technical data) a7546f1
- Wed, Oct 7
29 more discontinued datasheets found on datasheet4u; 2N5306 table kept for the 2N5308 5015f70
- Wed, Oct 7
1N100 datasheet (Taitron) 29d3fb4
- Wed, Oct 7
Philips OC/OA catalog, pages turned upright, covers ten germanium parts 7530073
- Wed, Oct 7
XR2206 datasheet (Exar) a7ff6ba
- Wed, Oct 7
Real datasheets for 2SC1815, AC128, 2N404A and 2N5172; parts page mentions datasheets and substitutes bae9d72
- Wed, Oct 7
Eff Dub Audio: 14 DIY projects, parts read from their Eagle schematics 907c7b7
- Wed, Oct 7
Real datasheets replace four selector tables; LM13600, MN3101, BA482, 2N4125 and more 17e721a
- Wed, Oct 7
Germanium selector tables cover AC187, 2N1306 and 2N404 (checked by eye) da85c36
- Wed, Oct 7
Eight more discontinued datasheets; selector tables marked as such 55e2b4a
- Wed, Oct 7
Host 14 discontinued datasheets; one sheet serves every part it covers ef792f9
- Wed, Oct 7
Host discontinued datasheets: ad-free archive copies, checked for the part eef6279
- Wed, Oct 7
Host the M51134P datasheet: discontinued, no maker's copy 3cf738f
- Wed, Oct 7
Bump source-map-js to 1.2.2 (GHSA-68fv-2mgg-jv7q) 3a5e506
- Wed, Oct 7
Cryptid Effects: the site's own layouts, with schematic and photo 34579a6
- Wed, Oct 7
PT2399 and TAPLFO3 datasheets from Electric Druid
The PT2399 links to the sheet Electric Druid keeps, the TAPLFO3 (and STOMPLFO, for later boards) to Electric Druid's own. Madbean's Wavelord24 spells the TAPLFO3 as TAPFLO3; corrected so both boards share one part.
73c2145 - Wed, Oct 7
BBD datasheets from Cabintech
MN3102 links to Panasonic's sheet, MN3005 and MN3007 to Xvive's (in production again), MN3207 and MN3205 to the Coolaudio V3207 and V3205 that replace them; all hosted by the distributor Cabintech.
400dab6 - Wed, Oct 7
J201 datasheet from Linear Systems
onsemi no longer publishes a J201 sheet. Linear Systems still makes the part; J201, J202 and SST201 link to its datasheet in their data book (page 62).
b3a9928 - Wed, Oct 7
Link parts pages to the manufacturer's datasheet
236 parts (81% of part uses) link to the maker's own datasheet, each link checked: TI, Microchip, Vishay, Nisshinbo and Diodes from a script; onsemi, Analog Devices and Renesas, which block scripts, in a browser. The site links rather than hosts them (manufacturer copyright); pcblib datasheets caches a local copy and finds links for new parts.
e8cafb6 - Tue, Oct 6
GuitarPCB Space Modulator: IC2 is the PT2399 (OCR read PT239) 6882246
- Tue, Oct 6
Fuzz Dog Duo Boost: IC2 is the LT1054, not the doc's LT0154 a7b47a0
- Tue, Oct 6
One parts entry per IC
Parts lists name the same chip with package and grade suffixes (TL072CP, LM386N-1) and second-source prefixes (RC/JRC/NJM 4558, MN/V/BL 3207), and '072' for the TL072. ic_name() gives each a canonical name per chip family; chips that only share a number stay apart (LM4040/CD4040, TLC555/NE555, 7660/7660S). IC entries: 528 to 299. Searches find a board by either name.
1703563 - Tue, Oct 6
One name per original circuit
Vendors spell the same original many ways ('EHX Big Muff', 'Electro-Harmonix Big Muff Pi', 'Big Muff'), splitting it across the Originals list. The export now gives each board a canonical original: brand aliases spelled one way, the best-known models matched with their siblings kept apart, a brand filled in when only one brand has the model, and one spelling per group. The app groups, links and labels by it; older links with a vendor's spelling resolve to the whole group. Originals: 2,567 rows to 2,304; Big Muff: 39 to 11.
434b094 - Mon, Oct 5
delyk: read the static catalog after the shop closed
delyk stopped selling online and replaced its WooCommerce shop (and the REST API the adapter used) with a static catalog. The adapter reads /shop/ and each product page: Downloads for the BOM and drill template, the spec list for difficulty, original and enclosure. No prices; in stock means the maker still has copies. Buzz Box, Conductor's Hand and Lightning Bolt gain parts lists; El Rey de la Gloria Azul II is transcribed as its four versions.
44d0d07
Week of Sep 28 – Oct 4, 2026 32
- Sun, Oct 4
Weekly refresh: pass each vendor to xargs as an argument
macOS xargs refuses an -I{} command over 255 bytes, so the Sunday run failed before scraping any vendor ('command line cannot be assembled, too long') and deployed unchanged data. Each vendor now goes to sh as $1 with -n 1.
f5a9143 - Sat, Oct 3
Move the adapters to selectolax 1.0's LexborHTMLParser
selectolax 1.0 removed the Modest HTMLParser. All twelve HTML adapters now use LexborHTMLParser; re-scraping them from cache on 0.4.12 and on 1.0.0 gave identical boards, fields and parts rows, except Madbean's Snarkdoodle, whose malformed table cell the old parser dropped, now reading its 1590A enclosure.
71ac080 - Sat, Oct 3
Bump devalue from 5.9.2 to 5.9.4 in /app
Bumps [devalue](https://github.com/sveltejs/devalue) from 5.9.2 to 5.9.4. - [Release notes](https://github.com/sveltejs/devalue/releases) - [Changelog](https://github.com/sveltejs/devalue/blob/main/CHANGELOG.md) - [Commits](https://github.com/sveltejs/devalue/compare/v5.9.2...v5.9.4)
f826674 - Sat, Oct 3
Bump serialize-javascript from 7.1.1 to 7.1.2 in /app
Bumps [serialize-javascript](https://github.com/yahoo/serialize-javascript) from 7.1.1 to 7.1.2. - [Release notes](https://github.com/yahoo/serialize-javascript/releases) - [Commits](https://github.com/yahoo/serialize-javascript/compare/v7.1.1...v7.1.2)
e609c0a - Sat, Oct 3
CI installs the scraper from uv.lock; cap selectolax below 1.0
selectolax 1.0 removed the Modest HTMLParser every adapter imports, and CI installed the newest release, so both jobs failed on import. CI now syncs the locked versions, and the cap keeps fresh installs on 0.4 until the adapters move to LexborHTMLParser.
333e973 - Fri, Oct 2
Hand transcriptions for unreadable docs; name controls from parts lists
- corrections.TRANSCRIBED replaces a board's parts list (with variants) for docs no parser reads: Five Cats Supa Fuzz and Fuzz Face inserts, Effects Layouts Drivestortion (six versions) and Lawn Darts; fixes to American Metal, GIG BUFF v2.0 and the Moog 901B. corrections.CONTROLS names knobs directly. - Empty or counted controls take the parts list's pot names when every pot has one; names read off scans must be known control words. 132 boards.
2fce7a4 - Fri, Oct 2
PCBWay parts from schematic value labels; OCR words after a quote kept
- PCBWay boards: the schematic's value labels are OCR'd, typed and counted ('×4 470k'), ICs once, with named knobs; the drawings carry no designators and the member uploads no BOM. Ten seconds between any two PCBWay requests. - Tesseract word boxes are read with QUOTE_NONE: a word read as a quote mark no longer swallows the rest of the page's words.
d76c0d5 - Fri, Oct 2
Check the last schematic candidates; correct Betty Boost's grid
Remaining Experimentalists Anonymous candidates checked on the drawings, with the clean Nobels DT-1, Distortion Xtreme, Fu-Z and Ross Phaser drawings filled in; Lectric-FX Betty Boost's misread values and phantom R0/C0 fixed.
54c8c79 - Thu, Oct 1
GuitarPCB reads text tables first; MUFF'N variant chart, dual combos split
- Text layer before OCR; OCR only adds parts the text does not list. - Variant headers that wrap onto adjacent lines are rebuilt by position; grouped designators and P1-Name pots expand in variant tables. - Dual-combo docs with one 'Bill of Materials <pedal>:' table per pedal keep each pedal as a variant. - Version-block labels regain a space lost to tight type (SUF Mascis Muff).
7139f32 - Thu, Oct 1
Restore checked schematic values, read sub-2pF caps as µF, split duplicate titles
- Experimentalists Anonymous: ~200 values on 57 schematics, proposed by a wider pairing pass and each checked on the drawing; Nobels CO-2 and PH-D in full. Two files under one title are now two boards with their own images. - A machine-read capacitor under 2pF is taken as µF (OCR reads µ as p). - Hand corrections run last, after designator repairs; Lectric-FX Double*Take and the GuitarPCB MUFF'N corrected by hand.
8a72f87 - Thu, Oct 1
Bump the app group in /app with 3 updates
Bumps the app group in /app with 3 updates: [@sveltejs/vite-plugin-svelte](https://github.com/sveltejs/vite-plugin-svelte/tree/HEAD/packages/vite-plugin-svelte), [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) and [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).
3817326 - Thu, Oct 1
Add Holy Island Audio
Four DIY PCBs sold as options of one Big Cartel product; parts read from each board's Google Doc build guide. Changelog also covers the hand-correction fixes.
78556b8 - Thu, Oct 1
Hand corrections can target a variant and add missed rows
Fixes Five Cats Rattus (RAT C13 1µF, missing RAT2/Turbo RAT rows), Lectric-FX Mongrel (D1, R18, C10, two junk rows) and restores Experimentalists Anonymous values on the BOSS OC-2, Tau 1010 and Univox Microphaser, each checked against the drawing.
c928efc - Wed, Sep 30
About page text runs the width of the footer 35ada7d
- Wed, Sep 30
Update wrangler to 4.145.0 for the patched undici
Clears the six Dependabot alerts on undici 7.29.0 (a transitive dependency via miniflare, used only at deploy time; nothing ships in the static site).
6085bef - Wed, Sep 30
Add an About page for the wider community
/about (header and footer) explains what the library holds, where the parts lists come from and how to read the ocr / sch / fixed markers, prices and delisted boards, what is linked rather than copied, and how to report an error. Its counts and last-refreshed date come from a meta.json the export now writes.
3dc2390 - Wed, Sep 30
Mark each value's source on circuit pages; clear the last check warning
A parts row's notes already say how it was read; the value cell now carries a small 'ocr', 'sch' or 'fixed' marker (with a tooltip) and a legend sits above the list when a board has any, so builders know which values to check against the build document. The notes column no longer repeats them.
4605359 - Wed, Sep 30
Audit records when it ran
pcblib audit prints the run time and the previous run's, the HTML report's header carries the date and time, and data/cache/audit/meta.json keeps both with the counts.
84717dc - Wed, Sep 30
1N34A fixes: 1M34A misread repaired, Moonn Kloppe Gerät typo corrected by hand
A diode row reading 1M34A is 1N34A (no diode is numbered 1M...), which fixes the Guitar-Electronics OCD. Moonn's Kloppe Gerät build doc itself prints 1A34A for D1 and D2; corrections.py sets them to 1N34A.
54b3fde - Wed, Sep 30
Add Scientific Guitarist; optocouplers are not capacitors
Scientific Guitarist publishes DIY projects on a Wix site, each linking a GitHub repository with the Eagle project. The adapter follows every project page to its repository and reads Eagle's BOM exports (per-designator CSV, grouped CSV, or KiCad's designator list), top-level or inside the project zip one level deep; parts with no value take the device (PT2399_TH -> PT2399), pots keep their knob names and DUALGANG marks a dual-gang pot. Repositories without an export are read from the Eagle schematic PDF's labels or the build document's parts table. 30 boards, kind 'repo'.
00fe94a - Tue, Sep 29
Weekly refresh routine; delisted boards kept and labelled
scrape --refresh-pages re-fetches a vendor's pages (listings, product pages, JSON) but keeps cached documents, and a network error or server error during a refresh falls back to the cached copy. After a full clean scrape, boards still listed get last_listed = today and boards no longer listed are marked delisted, never deleted; a board is only marked when its own page is gone, and a scrape that finds far fewer boards than before marks nothing. The site shows 'no longer listed' with the date on the circuit page and in the table.
9931892 - Tue, Sep 29
pcblib audit command; Dirt Monger broken-font passives read by OCR
pcblib audit runs the parts-list audit on the library: values that do not parse or sit off the standard series, parts filed as the wrong kind, one-off part numbers a character from a common one, unknown transistors, mangled or duplicated designators. It writes a filterable HTML report, a CSV and JSON to data/cache/audit/ and lists the flags added and cleared since the last run, so a parser change that makes rows worse shows up before a deploy. CLAUDE.md adds it to the parser-change routine.
c18c8a6 - Tue, Sep 29
Transformers category, resistor codes, bare-number knobs, zero-width characters
Audio transformers get their own XFM category (Transformers on the parts page) instead of trimmer, pot or other: 42TM022, TY-141P, LT44, OEP1200 and T1/TR1 rows carrying one (40 rows). A 4-digit resistor code reads as its value when the plain number is not standard (1002 -> 10k; 4700 stays). Pot and trimmer rows whose value is a bare small number or unit-less taper ('A5', '16', '1') are OCR prose or schematic pin numbers and are dropped. Zero-width characters are stripped, and Guitar-Electronics' '1pcs.' BOM lines are no longer also read as reversed placement rows. Rescraped every vendor: only those rows changed.
5457251 - Tue, Sep 29
Drop words and placeholders from semiconductor rows; repair part-number slips
A diode, transistor or IC row whose value is a word or placeholder ('for', 'Clipping', 'empty or your choice', 'Jumper', '(optional)') is not a part and is dropped when a board is stored (about 200 rows); generic descriptions ('Germanium', 'NPN JFET', 'Dual op amp', 'LDR (photocell)') stay. Slips that spell no real part are repaired in well-known families: TLO72 -> TL072, ZN3904 -> 2N3904, 14001 -> 1N4001, BAT-41 -> BAT41, CO4047 -> CD4047, LM9324/XM324 -> LM324, RCY558 -> RC4558, WA741 -> uA741, pt2395 -> PT2399. Rescraped every vendor: only those rows changed. Audit 1,759 -> 1,496 flags.
18906ec - Tue, Sep 29
Hand correction: Dead End FX 2952 Clean knob is A20K
The schematic prints CLEAN A15K and the parts table A20K; A20K is right. Corrections now match designators regardless of case.
cd2acc6 - Tue, Sep 29
One row per knob, 2SK part numbers, jack pin labels, hand corrections
A knob read from both the schematic and the parts-table OCR (Level and LEVEL) collapses to one row, keeping the reading whose value parses and preferring a text table, then the schematic, then OCR (332 rows, mostly Dead End FX). OCR's '25K30A-Y' reads 2SK30A-Y, and a jack's pin label read as a pot ('MONO 5W' for MONO_SW) is dropped. corrections.py holds hand-checked fixes no rule can make, applied when a board is stored: Dead End FX Zuul IC3 is an LM324. Reported on the Zuul; rescraped every vendor, no other rows changed.
399b246 - Tue, Sep 29
Dirt Monger lists from the text layer; prose, footers and hardware rows out of parts
Dirt Monger lays parts out value first in two columns, with or without a 'Parts List' title; the list parser now reads that layout (value beside its designators, knob names as refs, trimmers, name-first pots) and stops at the bypass-buffer board below it. Distortion H, Bigger Muff, XT-2, Bass Grunge, Dual Octave and American Metal lose their mispaired OCR rows (R1 = 100n); where a font drops letters (PW-2, HMT-2) values that lost their units are left out and '2 5088' reads 2N5088.
41b7413 - Mon, Sep 28
Match link hosts by parsing the URL, not by substring
CodeQL flagged seven checks like '"drive.google.com" in url' (py/incomplete-url-substring-sanitization), which a domain named in a path or query string would also pass. A shared on_host() helper parses the URL and matches the host or a subdomain; Dead Air, Effects Layouts, Mask Audio, Dirt Monger and On The Road use it. Rescraped all five: identical output.
f3a09a0 - Mon, Sep 28
Gigahearts FX: add PIP BOY
A triangle Big Muff after the Fallout Cloud, with bass and treble controls, a 3-way clipping switch and a clean blend. Listing only: the product page has no build doc or schematic.
9299e8e - Mon, Sep 28
Changelog page and a collapsible Sources list
A /changes page lists what changed each week, built from the commit history when the site is exported: each change opens to the first paragraph of its message and links to its commit, and the page links the source on GitHub. The footer's Sources list opens and closes (closed by default), and the colophon links the changelog in place of the GitHub link.
98d03f7 - Mon, Sep 28
Moody kit lists: IC headings, sockets, part numbers, dual pots, Lysdiod
Moody's shopping lists head their chips 'IC's:' or 'IC's and IC sockets:', which the heading pattern missed, so ICs were filed under the Diodes or Transistors heading above (Spring Reverb, Flanger, Analog Delay and about 50 more). Sockets are skipped, a part number keeps its 'or' alternatives and drops the description after it, a part under the wrong heading is filed by its value, 'Dual Gang' pots keep their type, and 'Lysdiod' is an LED. Rescraped Moody: 53 kits changed, no part dropped.
0f3c1f0 - Mon, Sep 28
Parts cross-reference: alphabetical categories, pots by taper then resistance
Each category lists its parts alphabetically with numbers compared as numbers (2N1302 before 2N3904, A10k before A100k). Pots are grouped under A (log), B (linear), C (reverse log), W and no-taper headings, each ordered by resistance.
6ae4c9e
Week of Sep 21 – Sep 27, 2026 32
- Sun, Sep 27
Interactive BOMs: keep the designator when the part is typed into it
Five Cats' Not So Clear names its chips 'U1 - LM386' and 'U3 - PT2399' in the KiCad reference field; they now read as U1 and U3, filed as ICs rather than sockets. Rescraped Five Cats, Griffin and RWL: only those two rows changed.
9ad7d81 - Sun, Sep 27
Parts values: 2m2 as megohms, T-numbered transistors, pot types, ranges everywhere
A resistor written '2m2' is 2.2M (143 rows were read as milliohms). T1, T2 on a transistor value is a transistor, not a trimmer (87 rows, Moody's Carlin and BJF kits). Pot values keep their type: 'B100K DUAL' is a B100K pot of type Dual, '100K Trim' a trimmer; footnote marks and lower-case or trailing tapers parse. Designator ranges are expanded for every parser just before a board is stored, per build variant (Fuzz Dog's 'Q1-4').
86a93aa - Sun, Sep 27
Five Cats One Knob Fuzz reads as five variants
The insert's five-build table (ColorSound, 1996, Meathead, Dark Meathead, Ritual) sits on a grey dot grid that made Vision drop cells; the aligned table pass now also reads a copy with the mid-greys whitened, and reads all 77 rows. Stray accents Vision adds are cleaned (dropped after a value, unaccented inside a word, and on schematics the word is left to tesseract). A generic 'Pot' line is kept as the knob, a line of knob labels is not taken for build names (GuitarPCB Guitar/Bass Driver lost its bogus GAIN / BASS / TREB / BOOST variants), and Five Cats pack-size listings collapse to the single board. Rescraped every vendor: 10 boards gained, none lost.
23a919a - Sat, Sep 26
Add Gigahearts FX
UK Shopify shop, PCB collection only (five boards, prices in GBP): the GIG BUFF versions of the EHX/JHS Big Muff 2, a Broadcast with mods and the Full Moon (Moon Rock / Coyote). GIG BUFF v1.3's build doc parses in full (53 rows, three knobs; the LED brightness pot is a trimmer); v2.0 has no public doc and is read from its schematic image (23 rows). The other three are listing-only: their docs ship with the board.
519de02 - Sat, Sep 26
Build the Vision OCR helper as a Swift package
GitHub's CodeQL default setup found the new Swift file and tried to add a Swift scan, whose autobuild failed with no project to build. The helper moves to scraper/pcblib/vision_ocr/main.swift and a root Package.swift builds it, so `swift build` and the scan both work; vision.py still compiles it with swiftc on first use.
9d0db06 - Sat, Sep 26
Schematic pairing: wide pass for archive PDFs, diode and phantom-digit repairs
Experimentalists Anonymous vector PDFs take the mutual-nearest wide pass (PT2399 echo 7 -> 21 rows, DOD FX75 4 -> 8, Obesifier 4 -> 17), decided on the strict pairing so scans with a stray text layer still go to OCR. 1N-series diodes read as IN/iN/lN are repaired, Vision's dotless i maps to i, a leading 3 Vision reads from a resistor's zigzag is dropped when the rest is a standard value, and diode numbers no longer pass as capacitor values. Against the Vision commit: 3 boards gained, 6 lost only junk rows. The boards still below the live export are listed in TODO.
85fb959 - Fri, Sep 25
Apple Vision OCR beside tesseract on macOS
pcblib/vision.py runs a small Swift helper (vision.swift, compiled into data/cache/_bin on first use) that reads thin, small and coloured type tesseract garbles. It joins the thorough page passes, the per-variant column strips and schematic label pairing; a page tesseract reads thin but Vision reads well gets the thorough passes. Off macOS nothing changes.
eb9dcc5 - Fri, Sep 25
Dirt Monger: read the two-column 'value - refs' parts list from the text layer
The Integrated Preamp goes from 11 wrong OCR rows to 47 with its pots named. Guerrero Oro's guide link is a coming-soon placeholder; TODO updated.
4159191 - Fri, Sep 25
Parts catalog: rank descriptions by use, drop repeated table headers as part types, keep J-series JFETs
A Qty / Value / Parts header repeated over a second part type on a PCB Guitar Mania page read as a section name, so 106 boards described capacitors as "Qty Value Parts". A repeated header is a header now. Each catalog entry's descriptions are ranked by how many parts lists use them instead of listed alphabetically, and the junk filter no longer drops J201, J113 and the other single-letter JFET numbers.
d1e61bc - Fri, Sep 25
Parts catalog: index part identities, not parts-list prose
The cross-reference keyed every value verbatim, so OCR fragments ("Optional", "Your"), packages (DIP16) and misfiled resistor values became parts. The export now runs each value through catalog_keys: part numbers with alternatives split and annotations stripped, a few generic descriptors (Ge, Si, NPN, JFET, Zener), canonical pot and switch forms, common OCR slips repaired, and each key refiled by its part-number family (a TL072 under D3 is an IC). Indicator LEDs leave the catalog like resistors and capacitors. 1,318 entries become 1,161.
859b16f - Fri, Sep 25
Show source counts: "Sources (47 total)" in the footer, "A of B vendors" in the results bar 51c529e
- Fri, Sep 25
OCR pass for image-only parts tables and scanned schematics
Tesseract runs a second time with word gaps preserved and the text-table parsers read the result, so per-variant tables (Effects Layouts One-Knobber), side-by-side Qty / Value / Parts lists (Dirt Monger) and Tonepad's image layouts parse. Side-by-side Qty / Value / Parts tables are split and read as two, and that parser keeps pot and switch categories for named refs. Scanned documents with no schematic heading are searched page by page for the one that pairs the most labels, in three orientations and two segmentation modes, with a wider mutual-nearest pass for thin scans. OCR word boxes and page text are cached, and a cache is trusted only when newer than its image.
99cdd83 - Fri, Sep 25
TODO: Griffin SCH-1 reads its interactive BOM; Tayda prices come from the listing 057130e
- Fri, Sep 25
Bump the app group across 1 directory with 3 updates
Bumps the app group with 3 updates in the /app directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [svelte](https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte) and [wrangler](https://github.com/cloudflare/workers-sdk/tree/HEAD/packages/wrangler).
3a59947 - Thu, Sep 24
Override cookie to 0.7.2 under SvelteKit (GHSA-pxg6-pf52-xh8x)
SvelteKit 2.70 still pins cookie ^0.6.0, which accepts out-of-bounds characters in cookie names, paths and domains. The override is scoped to @sveltejs/kit so miniflare's youch keeps its own cookie 1.x.
c6e3528 - Thu, Sep 24
Add ten sources from issue #6: Moody Sounds, Tayda, Guitar-Electronics.eu, delyk, OP Electronics, Griffin, Schalltechnik_04, Coda, Electric Druid, Zeppelin
Adapters for the shops listed in the issue that publish build documents: Moody Sounds kits (SEK; own, BJFE, Carlin, Vallhagen, Lehle-clone and BYOC kits plus the archive of discontinued kits, packing lists OCR'd because the text layer is shattered), Tayda's DHEA Instruction Center pages with prices from the store listing, Guitar-Electronics.eu placement lists, delyk BOM PDFs matched from the media library, OP Electronics datasheets in five layouts (zip and rar sets unpacked with bsdtar, .ods BOMs read), Griffin project PDFs with dash lists and interactive BOMs, Schalltechnik_04's online instructions for its discontinued kits, Coda's Google Drive documents, Electric Druid construction guides and the Zeppelin Quaverato kit.
bff472c - Wed, Sep 23
TH Custom: read the HTML build documentation behind the shop table
The main shop page is a product table whose rows link 'Build Instructions', an HTML page per board with a Ref / Qty / Value / Notes table; boards only in the store API carry the same link on their product page. 22 boards, 20 with parts lists. The grid reader now converts worded pot cells (10 kΩ log (A10K), 50k-lin, 1k-B) to taper-coded values and skips section rows.
3dd9f73 - Wed, Sep 23
Add eight sources: God City, 1776, Rullywow, MAS, Tonepad, WRAA, Frog, TH Custom
God City Instruments, 1776 Effects and Rullywow Industries have text build documents with named pots. Tonepad's layouts are served only with a session and the project page as referer (the fetcher can now send extra headers); their parts lists are 'R1, R2 – 1M' lines or per-section 'qty - value' counts. MAS Effects' documents sit on GitHub and mas-effects.com; WRAA's lists are inline in the guide's page text. Frog Pedals and TH Custom publish no documents and are listing-only.
2f8245c - Wed, Sep 23
Add Other Pedals
Squarespace shop whose DIY documents are JPEG images: each board's BOM, schematic and drill images are bundled into one cached PDF. The value-first parts list ("4k7 - R4C,R10", "A100k - LEVEL") is OCR'd whole and split at two column positions, the readings unioned. The two PDF build docs use an EasyEDA-style Name / Designator / Footprint / Quantity table, now a shared parser for every vendor.
d0e7079 - Wed, Sep 23
Link RWL and Sheepylove GitHub boards to their Bent Fishbowl write-ups
Each RWL board on a dylan159 design links the Bent Fishbowl post (or the freestompboxes thread where that is where it was published), and dylan159 is credited as Bent Fishbowl in originals and descriptions so the boards group with the library's Bent Fishbowl entries.
8f3d46e - Wed, Sep 23
Add Sheepylove on GitHub
Twelve layouts of dylan159 designs with gerbers, nine not in the Sheepylove shop; kind repo. Parts from the one CSV (the grid reader now accepts a RefDes column); controls read off the board render, inverted and rotated, pairing each taper with the nearest printed name. Originals mapped to the classics the README names so they group with the shop and Bent Fishbowl entries.
5a3a9e4 - Wed, Sep 23
Add RWL Pedals, a GitHub repository of KiCad layouts with gerbers
The first source of the new repo kind ("Get the gerbers at"). The root README's tables name every board, its type, original and designer; project READMEs carry markdown parts tables (bold headers, per-build variant columns) with the KiCad interactive BOM filling in pots and switches; folders the index has not listed yet are walked from the tree.
d967dc4 - Wed, Sep 23
Shipping caution on Moonn Electronics
A one-person shop that can be slow to ship but does ship everything; shown on every Moonn circuit page next to the buy link.
f97e64f - Wed, Sep 23
Add Dead Air Studios
Big Cartel product feed; only the five DIY PCB products are circuits. Build guides are Google Docs with one part per paragraph (glued pot lines like MODULATIONB2M handled), one board's BOM is a Google Sheet keyed on PART #. Drill guides and schematic images link as extra docs.
0b6f49b - Wed, Sep 23
Transistor substitutes for parts the database spells or lists differently
A part known only by a longer maker's spelling (BS250 as BS250P, 2SK30A as 2SK30ATM, LND150 as LND150K1) is found by prefix. Three parts the database lacks are anchored to a listed equivalent and the parts page says so: CV7351 to the 2N1308 (its commercial number), 1T308A to the GT308A (its Latin spelling), OC139 to the ASY29 (closest ratings). Coverage rises from 258 to 279 transistor values.
7a0014f - Tue, Sep 22
Side charts in build notes become variants
A small "Part | DC | AC" or "Part | Standard | Bass" table gives the parts it names one row per build, with the builds as the cross product of the charts (JMK AC/DC Drive: DC, AC, DC Bass, AC Bass; Aion Meridian and Refractor). A Standard column adds nothing to a name, "none" omits the part, "jumper" keeps it as one. Commentary columns are dropped and a chart of bare numbers is read as measured gains, not parts.
ec0d313 - Tue, Sep 22
JMK PCBs: name the seven unnamed originals
Fuzz Factory, Xotic AC/RC Booster, Darkglass B3K, EA Tremolo, Ampeg Scrambler, Phase 90 and Jon Patton's Blue Warbler, read from the build notes. Descriptions no longer start with the description tab's HTML attributes or end with the review stub. Enclosures have no source: the drill templates draw only the board and the shop carries no size.
4cdc425 - Tue, Sep 22
Repair OCR designators with a stray digit
An OCR row whose number sits far outside the board's range for that prefix (R111 among R1-R30) is renamed to the designator one dropped digit gives, when that lands inside the range and is not already taken in the same variant; the note keeps what was read. The range comes from designators below 100 so two strays cannot vouch for each other.
0918b12 - Tue, Sep 22
Variant notes become variant selectors
A parts-list note such as "Omitted in Nano version", "B1M for High Gain version" or "220n in Bass Fuzz variant" now yields per-build rows. Notes phrased as mods keep a Standard build; notes phrased as builds name the builds themselves. Alternate-part notes are excluded, names are cut at punctuation, and a note with its first letter sliced off merges with its full spelling. Notes are carried across to the column parser's rows when it wins the row count, which is how Super Stevie's were lost.
84af67c - Tue, Sep 22
Schematic pairing for every vendor
A board whose parts list is thin, quantity-only or names no controls gets its pot and switch names (and designators if need be) from the schematic page: vector text first, then OCR at two resolutions and three orientations, cached per board. Named pots replace a knob count when the schematic names them all. Archive and fab-project sources are skipped.
f9b41a7 - Mon, Sep 21
TODO: note the EAE and C2C parse state 44182f6
- Mon, Sep 21
Add C2C Electronics
WooCommerce Store API listing; build documents from the site or Google Drive read as wrapped Comment / Description / Designator / Quantity tables (chunks assigned by content and position, records merged across lines and pages). Quantity-only lists become ×n shopping-list rows with a knob count.
a163871
Week of Sep 14 – Sep 20, 2026 54
- Sun, Sep 20
Keep the results header sticky on phones
The table no longer sits in a horizontal-scroll wrapper below 1000px, which trapped the sticky column header. Narrow screens hide Based on, Box and Knobs and fold them under the circuit name instead.
9f8e6fc - Sat, Sep 19
Add Electronic Audio Experiments
Squarespace DIY collection read as JSON; parts from the BOM spreadsheet (header-driven xlsx reader, comma-list designators) or the LaTeX-set Qty/Value/Ref tables in the builder's guide (column-sliced, wrapped cells); controls from the guide's control paragraph; pot tapers as A/B/C values. Pot values written as 1Meg now normalize to 1M.
39ad33f - Sat, Sep 19
Google Sheet parts lists for Lectric-FX; OCR pots with digits and switch rows
Three Lectric-FX boards keep their parts list in a Google Sheet; a new reader takes every tab of the workbook's xlsx export (adds openpyxl). OCR'd parts lists keep pots whose name ends in a digit and switch rows, and the adapters' named-knob test accepts a trailing digit: 'Zilla names its four knobs and its toggle.
40ca5d9 - Sat, Sep 19
Display polish: currency selector in the results bar; cleaner originals; Fuzz Dog builds
The price currency selector moves from the header to the results bar beside Sort. An original's name is stored without the adjectives a description wraps it in. Fuzz Dog docs with a BOM page per version yield one variant per page named from the page title, a table whose parenthesized values make a second named build splits in two, other alternates stay as notes, and pot names one space from their value are read: 37 boards gain a variant selector.
e526dfe - Sat, Sep 19
Read value-first parts lists (PART / QTY / TYPE / NOTES)
Aion FX modules print values on the PCB and list parts without designators. The shopping-list parser accepts that layout under a Parts List heading or wherever its header sits, keeps the notes, takes a designator's value from the notes (LEDR, recommended 4.7k) and ignores bare numbers.
5f598fe - Sat, Sep 19
Footer: issue links and Cryptid Effects colophon; per-circuit report link
The footer links the GitHub issue forms and names Cryptid Effects with a link to the main site and the source. Each circuit page has a link that opens the wrong-parts-list form with its own URL filled in; the prerender origin is set so those links carry the real site address.
2e34478 - Fri, Sep 18
Expand designator ranges whichever parser wins
Q1-Q5 2N5088 is five transistors; the plain table parser kept the range as one part of unknown type on 24 Sheepylove and Aion FX boards. Ranges and comma lists are now expanded after the winning parse.
4102b9d - Fri, Sep 18
Column-strip OCR for tables with one column per variant
When the OCR sees a piped variant header, the page is cut into vertical strips halfway between the header words and each strip is read alone, so a noisy line can no longer drop a column. Rattus goes from 13 to 16 rows per variant to 23 to 26. A stray digit before a 1N diode number is removed.
ce5db2a - Fri, Sep 18
Controls cleanup: alias dedupe, PedalPCB list filter, OmniMuff pots, 1590BBM
A knob named two ways by two sources keeps the longer name; PedalPCB's bold list no longer contributes changelog lines or footswitch labels; version blocks read Title-case pots one space from their value; the 1590BBM enclosure is recognized.
438edde - Fri, Sep 18
Transistor substitutes on part pages
A transistor parameter database (imported from a MySQL dump with pcblib import-transistors into the git-ignored data/transistors.sqlite) supplies material, polarity or channel and the key limits for every transistor the parts lists name. Candidates share material and polarity, stay in the same device class and are ranked by closeness of gain, voltage, power and speed; package variants of one die collapse. The part page shows the part's limits, the substitutes other boards here use, and the closest by the numbers, with a note that pinouts are not in the data.
c3589ed - Fri, Sep 18
Grid OCR: read scanned parts tables cell by cell
Ruled tables in scanned docs (Lectric-FX's Mongrel) defeat page-level OCR. The thorough pass now finds the rules on the binarized page, OCRs each cell on its own and pairs adjacent cells as designator and value, inferring an unreadable designator from its column's sequence. Grid rows are unioned with the page-level read so a partial grid never displaces a fuller one. Repairs learned a serifed 1 read as T, a 7 read as / or i, and upper-case capacitor units. Adds numpy to the scraper.
7ba2207 - Fri, Sep 18
Parallel Drive variants, Effects Layouts doc pages, broader variant headers
The Damnation Audio Parallel Drive's Guitar Mod / Bass Mod table parses and named pots pair on vector schematics. Effects Layouts products that link a build-doc page are followed to the PDF it links (Black & Tan, Transmogrifying Repeater). Variant headers may start with a part-type heading, be a label group repeated per part type, or be a bare line of version names followed by a matching row; label validation rejects OCR fragments, parts-row text and net names. Controls are deduplicated when a board is stored.
fa2d1fc - Fri, Sep 18
Build variants: keep every version column and add a selector
Parts rows carry a variant label. Three table shapes are read: value columns headed per version (Effects Layouts), repeated titled blocks in Word docs and across PDF pages (Mask Audio, PedalPCB's Muffin Fuzz, On The Road's OmniMuff), and OCR'd tables with a piped header (Five Cats Rattus). The circuit page offers a variant selector; counts and the parts cross-reference use the first variant.
cd224cd - Fri, Sep 18
Pot-aware OCR repair; fetch the three documents that failed
OCR'd pot values keep their taper letter and have only the digit run repaired, so A500K read as ASOOK is no longer dropped: 143 more pot rows across the OCR vendors. GuitarPCB prefers the build doc over the faceplate-art PDF beside it, restoring two NostalgiTone 60s boards; Fuzz Dog strips a line break from inside the Astrotone doc link.
1881c98 - Fri, Sep 18
PedalPCB: parse the older qty/value/ref layout, skip faceplates
The 2019 docs list parts as 'qty value ref' triplets side by side under part-type headings; a fourth table parser handles that. Faceplate products are no longer indexed as circuits. The shopping-list header is now split on column gaps so multi-word column names survive.
f473e43 - Fri, Sep 18
Fuzz Dog: find the parts table on any page; Madbean VFE shopping lists
Fuzz Dog docs from 2023 on put the parts table a few pages after the schematic, and FuzzPup pages link the family guide ahead of the circuit doc; both are handled and knob names come from the pot rows. Madbean's VFE docs carry a shopping list rather than a designator table, so the shopping-list parser reads its column order from the header and the adapter falls back to it; VFE control lines are read as well.
cf4e7e8 - Fri, Sep 18
Name the controls on Madbean and legacy Aion FX boards
Madbean reads the doc's Controls section (bulleted or plain NAME: lines, switches and trimmers filtered by how their description opens) or falls back to the named pots in the parts table; the table is no longer cut at column 66, which hid the pots and semiconductors. Legacy Aion FX docs without a USAGE section take controls from the parts table. A pot name in a column table can no longer swallow the end of the previous column.
eae8106 - Fri, Sep 18
OCR the parts tables on older Five Cats inserts and thin GuitarPCB docs
Five Cats boards without an interactive BOM get their insert's typeset table OCR'd; GuitarPCB escalates to the thorough OCR pass when the quick one is thin and names controls from the pot rows; component packs it sells are no longer indexed. OCR repairs: a leading 7 or 4 giving a non-E24 value is a misread 1, 1N-series diodes are rebuilt from look-alike letters, and R0/C0 designators are dropped.
2b1d88f - Fri, Sep 18
Classify add-on boards as Utility and ignore packing lists
A rotary clipping daughterboard was landing in Vibrato / Chorus on the word rotary, and Zero G IOD fuzzes were landing in Utility because their packing list mentions a bypass board. Daughterboards and clipping selectors now classify first, rotary only counts without switch/clip/ select after it, Fuzz-prefixed names, Bosstone and Acapulco Gold clones match, and the Zero G IOD adapter classifies without the packing list.
659705c - Fri, Sep 18
Five Cats: read the enclosure from the insert's minimum-enclosure badge
Newer inserts stamp the size as a graphic on page one, so page one is OCR'd (right column first, then the whole page) with the badge font's misreads repaired: B read as 6 or 8, a leading 1 read as I or l. 69 of 126 boards now carry an enclosure, up from 27.
729d90d - Fri, Sep 18
Add Effects Layouts and JMK PCBs, a vendor caution, and column-parser fixes
Effects Layouts comes from the WooCommerce Store API with two-column build docs; JMK PCBs from the product sitemap and JSON-LD pages with multi-column parts tables. A per-vendor caution now shows on circuit pages and is set for PCB Guitar Mania. The column parser handles pot names next to 100nF, comma lists of designators, lowercase tapers, untapered trimmers and Version title blocks, and a junk pairing no longer shadows the real row. Docs with only a shopping list yield quantity-named rows as a last resort.
0ac17e9 - Fri, Sep 18
Add Mask Audio Electronics, a docx table reader and a parse-gap TODO
Mask Audio's build documents are Word files on Dropbox and Google Docs; pcblib/docx.py reads their parts tables straight from the OOXML. The freebie bundle is split into its four boards. The normalizer now accepts lowercase-r resistors, capacitor values followed by a dielectric word and Ge/Si as diode values, which raised parts-per-board across the other text-table vendors. TODO.md tracks documents that parse thin or wrong.
ea08abd - Fri, Sep 18
Dirt Monger: parse text tables before OCR, fix originals and categories 705efba
- Fri, Sep 18
Add Dirt Monger Instruments 21b8b88
- Fri, Sep 18
Classify OTRFX boards by original within combined sections c778fe4
- Fri, Sep 18
Add On The Road Effects a57ebba
- Fri, Sep 18
Spell Sheepylove as one word 0eb27c6
- Thu, Sep 17
Redirect subdomains of the typo domain to their real counterparts
akashic.cryptid-fx.com now lands on akashic.cryptideffects.com.
c3af0db - Thu, Sep 17
Add the cryptid-fx.com redirect worker e7e08cc
- Thu, Sep 17
Move the live site to akashic.cryptideffects.com 8d2b58d
- Thu, Sep 17
Add the Akashic mark, wordmark, icons and link-preview image
An eye whose iris is a knob, drawn in the app's own tokens: favicon, app icons with a maskable variant, the mark beside the name in the header, wordmark PNGs for the README (light and dark), and an Open Graph image with meta tags.
2730575 - Thu, Sep 17
Rename to Akashic: Guitar Effects PCB Lookup b529d64
- Thu, Sep 17
Serve the real prerendered home page
The static adapter's SPA fallback was written to index.html, replacing the prerendered home page with an empty shell. The fallback is now 404.html and Cloudflare serves it for unknown routes.
f57ab5f - Thu, Sep 17
- Thu, Sep 17
Bump astral-sh/setup-uv from 6 to 7 (#1)
Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 6 to 7. - [Release notes](https://github.com/astral-sh/setup-uv/releases) - [Commits](https://github.com/astral-sh/setup-uv/compare/v6...v7)
2c08d0a - Thu, Sep 17
Bump @types/node from 22.20.3 to 26.5.1 in /app in the app group (#5)
Bumps the app group in /app with 1 update: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node).
d5bd156 - Thu, Sep 17
Let CI build from an empty export; keep TypeScript on SvelteKit's supported major b4a1fb2
- Thu, Sep 17
Set up the public repository
PolyForm Shield license, code of conduct, contributing guide with the vendor-adapter recipe, security policy, changelog, CLAUDE.md, issue forms (bug, feature, vendor request, wrong parts list), PR template, dependabot, funding link, and a CI workflow that checks the scraper imports and value normalization and builds the app from an empty export.
4fb35eb - Thu, Sep 17
Let footer text run to the grid width dc62ac9
- Thu, Sep 17
Add Cloudflare deploy
Workers static-assets config for the build folder, cache headers for hashed assets, fonts and the data bundle, and `npm run deploy`, which exports the data (never with images), builds, and runs wrangler deploy.
16268df - Thu, Sep 17
Add a buy-me-a-coffee section to the footer 75c676d
- Thu, Sep 17
Link every source from the footer
The footer lists all vendors from the exported vendor data, sorted by name, each linking to the vendor's site with its licensing note as a tooltip.
49f02ae - Thu, Sep 17
Add Zero G IOD and archive its documentation in the repo
The store is closed with everything sold out and its only documentation is product images (BOM photo, drill guide, schematic). The adapter reads the BOM photos with a new standalone-image OCR pass and copies every image into data/archive/zerogiod, which is un-ignored so the schematics outlive the store. Pot values like A1M are exempt from digit repair.
66fb621 - Thu, Sep 17
Add the Experimentalists Anonymous schematic archive
A plain file index of ~780 traced schematics in category folders becomes one entry per file with the image cached and values read by positional OCR where legible. New "archive" vendor kind: the primary action is "Open the schematic" and the folder replaces the build-doc link.
f8088e3 - Thu, Sep 17
Add Lectric-FX and harden OCR for scanned docs
- Lectric-FX: WooCommerce Store API; older versions of a board collapse onto the newest; text docs parse fully, scanned docs fall back to the thorough OCR mode plus vector schematic labels where present. - Page renders are capped to a sane pixel size (some scans declare 35x45 inch pages), and the thorough OCR mode adds a thresholded pass that strips coloured table grids; Pillow becomes a dependency. - Column parser handles "Q1-Q4" ranges and "LEVEL tr 10K" trimmers. - Restores the Qty/Value/Parts parser that an earlier refactor dropped.
44196a3 - Thu, Sep 17
Improve OCR for schematic images and low-resolution BOM scans
- Schematic-image OCR scales from the true pixel size instead of the file's dpi tag, which had shrunk 300 dpi-tagged PNGs before OCR; Bent Fishbowl prefers PNG figures and tries the next one when the first does not read like a schematic. - A thorough OCR mode merges the page render with the embedded image upscaled, in two segmentation modes, keeping per designator the value most passes agree on; Dead Astronaut uses it for its screenshot BOMs. - Values ending in a unit get look-alike digit repairs (A7T0k -> 470k).
0aa2ba6 - Thu, Sep 17
Add General Guitar Gadgets
Shopify PCB collection linked to per-version project PDFs on the main site; the BOM title gives the board's name and original, three pot-row layouts parse into named controls, and products without a project link are located through the site's WordPress search. Shared: the "ų" micro glyph normalizes and trailing commas are stripped from values.
2cf9edd - Thu, Sep 17
Add PCB Guitar Mania, Dead Astronaut FX, and the Bent Fishbowl blog
- PCB Guitar Mania: WooCommerce Store API; docs state the original, enclosure and difficulty in a header table; regional and gerber-only duplicates collapse onto the physical board. - Dead Astronaut FX: Wix pages named from the nav menu, GBP PayPal prices, raster build docs OCR'd for the parts list. - Bent Fishbowl: Wix schematic blog; the first figure is OCR'd with word positions and designators are paired to nearby values, reusing the vector-schematic pairing (now a shared _pair_labels helper). - Vendor kinds (shop / projects / blog) drive the circuit page's primary action and notes, so blog entries say "read the post". - Shared: the document processor keeps whichever table parser recovered the most designators; "1m" resistors read as one megohm; "100K B" pot values parse; schematic heading detection ignores tables of contents; more OCR designator repairs.
ff389f6 - Thu, Sep 17
Recognize more Hammond enclosure sizes
The enclosure pattern knew 1590DD but not 1590D, and missed 1590C, 1590J, 1590X, 1590BBS and others; the faceplate glyph gets footprints for the new sizes so wide boxes draw in landscape.
409e99a - Thu, Sep 17
Add Moonn Electronics, Five Cats Pedals, Parasit Studio, and PCBWay projects
- Moonn Electronics: Big Cartel catalog, Dropbox build docs; new parser for Qty/Value/Parts tables with grouped designators, Device/Notes variants, and the doc's own "clone of" line for the original. - Five Cats Pedals: WooCommerce Store API listing; parts read exactly from the KiCad interactive BOM zip (pcblib/ibom.py, both pre- and post-2.4 layouts); vector schematic PDF rendered for the preview; no OCR of the low-quality inserts. - Parasit Studio: circuits from the static /pedals/ pages since the shop is an Ecwid widget; build doc parsed; originals filtered to real pedals. - PCBWay member projects: JSONP member listing, "Brand - Pedal" titles as name and original, public CC BY-SA schematic PNG cached; BOM is login-gated so none is indexed. Adapter is keyed by member id. - Shared: RVn designators count as pots (trimmers when the footprint says so), ICs in socket footprints stay ICs, taper-less trimmers in column tables, and lzstring added as a dependency.
9d1fd8f - Wed, Sep 16
Fix pot and trimmer extraction from OCR'd parts tables
- Accept lowercase tapers and l/I/O digit slips in pot values (al00k). - Recognize taper-less trimmers by name (BIASTRIM 22k) and categorize any designator containing TRIM as a trimmer. - Dead End FX OCRs every page whose text says BOM, so daughterboard parts lists are read instead of stopping at the first good page. - Hyphenated control names (IP-GAIN) keep their names instead of falling back to a knob count.
a6fdf0d - Wed, Sep 16
Add Dead End FX with schematic-label BOM extraction
- Dead End FX adapter: Big Cartel catalog via products.json, build docs matched by name from the /build-doc-links page and fetched from Google Drive; "Clone board of the X" as the original circuit. - pdf.schematic_bom pairs designator labels with their nearest value label on vector schematic pages, giving exact R/C/D/Q/IC rows for Eagle and KiCad exports whose parts table is only an image. - The OCR parts-list routine moves from the GuitarPCB adapter into pdf.py and is shared; it now repairs more slips (IN4148, 25C1815, TLOV2, taper-first pot values) and reads single-pair lines.
d5e1671 - Wed, Sep 16
Add Sheepy Love, selectable currency, and sticky header fix
- Sheepy Love adapter: Shopify catalog via products.json, build-doc PDFs read from each product page, "Sounds like" as the original circuit. - PDF parser: Reference/Value/Quantity tables, grouped and ranged designators (C2, C5 / D3-D6), token-split fallback for misaligned columns, POTn designators; applied to every text-based vendor. - Currency: export bundles ECB USD rates; the app defaults to USD with a header selector for EUR, GBP, or the vendor's listing, and sorts by the converted price. - Sticky column header now measures the title block's real height and is no longer trapped by the table's overflow wrapper on wide screens.
e0fd0fd - Wed, Sep 16
Build the PCB Schematic Library: vendor scrapers, parts database, and PWA
Scraper (scraper/, Python package `pcblib`): adapters for PedalPCB, Aion FX, Madbean, GuitarPCB and Fuzz Dog; cached polite fetching; build-document PDF parsing for table and multi-column parts lists, with OCR for GuitarPCB's image-only lists; part value normalization and a shared effect taxonomy; SQLite store; JSON export; attach-kicad for owner-drawn schematic fragments.
fc0fe52