remove knowledge SQLs

This commit is contained in:
Bane Stojkovic
2026-08-07 11:49:56 +02:00
parent c37a2b8310
commit c34e5a2d38
7 changed files with 0 additions and 10209 deletions
-112
View File
@@ -1,112 +0,0 @@
DELETE FROM diylc_knowledge_base WHERE category IN (
'guitar_pedals', 'guitars', 'guitar_amplifiers',
'hifi_amplifier', 'tube_circuits', 'ham_radio', 'synth_effects'
);
INSERT INTO diylc_knowledge_base (category, section, content) VALUES
('guitar_pedals', 'Popular Op-Amps for Guitar Pedals', 'TL072, JRC4558, and NE5532 are the most used op-amps for overdrive and distortion pedals. The JRC4558 is famous for its use in the Tube Screamer.'),
('guitar_pedals', 'Classic Transistors for Fuzz Effects', 'BC108, 2N2222, and 2N3904 are common choices for fuzz pedals. The BC108 gives a vintage fuzz tone, especially in classic Fuzz Face designs.'),
('guitar_pedals', 'Silicon vs Germanium Diodes for Clipping', '1N4148 silicon diodes produce sharper clipping, while 1N34A germanium diodes create softer, warmer distortion.'),
('guitar_pedals', 'Capacitor Choices for Tone Circuits', 'Film capacitors like WIMA or Panasonic are used for tone-shaping; electrolytics are used for coupling and power filtering.'),
('guitar_pedals', 'Common Footswitches for Pedal Bypass', '3PDT mechanical footswitches are standard for true-bypass switching in DIY guitar pedals.'),
('guitar_pedals', 'Power Supply Filtering in Pedals', '100uF electrolytic capacitors are often placed across DC inputs to reduce hum and stabilize supply voltage.'),
('guitar_pedals', 'Input Buffer Design', 'Op-amp buffers (like using half a TL072) or JFET buffers (like the J201) improve signal integrity and prevent tone loss.');
INSERT INTO diylc_knowledge_base (category, section, content) VALUES
('guitar_pedals', 'Boutique Op-Amps for Overdrive', 'RC4558P is the original op-amp used in the Ibanez Tube Screamer. Burr-Brown OPA2134 can be used for hi-fi pedal designs.'),
('guitar_pedals', 'Specialty Diodes for Clipping', 'BAT41 Schottky diodes are used for smooth, soft clipping in some boutique overdrive pedals. Red LEDs are sometimes used for harder, louder clipping.'),
('guitar_pedals', 'Germanium Transistors for Fuzz', 'AC128 and AC127 germanium transistors are prized for vintage fuzz pedals like the Fuzz Face. They provide a softer, more musical distortion.'),
('guitar_pedals', 'Voltage Regulators for Pedal Power', '78L05 and 78L09 are popular linear regulators used to stabilize pedal supply voltages.'),
('guitar_pedals', 'Classic Clipping Schemes', 'Symmetrical diode clipping produces Tube Screamer-like tones, while asymmetrical clipping produces a more amp-like breakup.');
INSERT INTO diylc_knowledge_base (category, section, content) VALUES
('guitar_pedals', 'Gain-Based Effects Overview', 'Boost pedals simply increase the signal level without adding clipping. Overdrive circuits use soft clipping to mimic a cranked tube amp, producing mild-to-moderate distortion that responds dynamically to playing. Distortion pedals use hard clipping to create a more aggressive, saturated tone. Fuzz pedals push clipping to extremes, often creating a thick, square-wave-like sound. Classic fuzzes used germanium transistors for a warmer feel, while silicon fuzzes are more aggressive and temperature-stable.'),
('guitar_pedals', 'Modulation Effects Overview', 'Modulation effects include chorus, flanger, phaser, and tremolo. A chorus pedal splits the signal, detunes one part, and recombines it for a rich ensemble sound. A flanger uses a short delay and feedback to create a sweeping, jet-like sound. A phaser passes the signal through all-pass filters to create moving notches, producing a swirling effect. Tremolo varies the signal volume up and down using an LFO, resulting in a pulsing sound.'),
('guitar_pedals', 'Delay and Reverb Effects', 'Delay pedals record the input and replay it after a set time, creating echo repeats. Analog delays use bucket-brigade chips for warm, degraded repeats, while digital delays offer clear, long echoes. Reverb pedals simulate acoustic spaces. Spring reverb uses actual springs to create reflections, while digital reverb models rooms, halls, and plates. Controls typically include delay time, feedback, mix level, and reverb decay.'),
('guitar_pedals', 'True Bypass vs Buffered Bypass', 'True bypass connects the input directly to the output when off, preserving tone but risking signal loss over long cable runs. Buffered bypass includes an active circuit that maintains signal strength and brightness. A good pedalboard mixes both types: buffered pedals early in the chain and true bypass for gain-based effects. Improper buffers can interfere with vintage fuzz and wah pedals.'),
('guitar_pedals', 'Power Supply and Headroom', 'Most analog pedals run on 9V DC. Higher voltage operation (12V or 18V) increases headroom, offering cleaner dynamics before distortion. Some designs use charge pumps to internally double voltage. Always check component voltage ratings before running pedals at higher voltages. Some fuzz pedals intentionally use low voltages (starving) to create gated, sputtery textures.'),
('guitar_pedals', 'Understanding Impedance', 'Pedal input impedance should be high (~1MΩ) to avoid tone loss from guitar pickups. Output impedance should be low to drive subsequent pedals or amplifiers. Buffers or emitter-follower stages help maintain low output impedance. AC coupling capacitors block DC between stages and shape the frequency response with resistors, acting as high-pass or low-pass filters.'),
('guitar_pedals', 'Choosing Diodes for Clipping', 'Diodes control clipping in distortion pedals. Germanium diodes clip around 0.3V for soft distortion. Silicon diodes clip around 0.7V for harder distortion. LEDs clip at 1.5–2V, allowing louder, more open sounds. Clipping can be symmetrical (even clipping) or asymmetrical (tube-like dynamics). Different diode arrangements drastically change a pedal’s tone and response.'),
('guitar_pedals', 'Choosing Op-Amps for Pedals', 'Op-amps provide amplification and shaping in pedals. Common choices include TL072, NE5532, and LM358. Different op-amps affect pedal noise levels, output drive, and tonal character. Swapping op-amps can subtly or dramatically alter a pedal’s feel. Some pedals use op-amps in feedback clipping designs, where diodes inside the feedback loop soften distortion.'),
('guitar_pedals', 'Transistors in Pedals', 'Transistors act as gain stages, buffers, or clipping elements. Germanium BJTs (e.g., AC128) offer warm, smooth distortion, but are temperature-sensitive. Silicon BJTs (e.g., 2N3904) offer brighter, more consistent performance. JFETs mimic tube-like saturation and are used in amp-in-a-box circuits. MOSFETs can clip signals softly and act as rugged buffers.'),
('guitar_pedals', 'Debugging: Power and Ground Checks', 'First, verify power and ground connections. Measure voltage across the pedal’s power input; 9V is typical. Check all grounds are tied together: input jack ground, output jack ground, and circuit ground. Reverse polarity can damage parts. Missing grounds are a very common cause of non-functional builds.'),
('guitar_pedals', 'Debugging: Component Orientation', 'Check that all polarized components are oriented correctly. Electrolytic capacitors have a positive lead. Diodes have a stripe marking the cathode. Transistors must match their pinout (C-B-E) to the circuit. Reversed components are one of the most common building mistakes and can kill a pedal instantly.'),
('guitar_pedals', 'Debugging: Finding Bad Solder Joints', 'Carefully inspect all solder joints. Cold solder joints appear dull or cracked and can cause intermittent issues. Reflow suspicious joints with fresh solder. Check for accidental solder bridges shorting pins together. Ensure all jack and switch wires are secure and in the right places. Many issues stem from simple bad soldering.'),
('guitar_pedals', 'Debugging: Signal Tracing with an Audio Probe', 'Use an audio probe to trace the guitar signal through the circuit. Build a probe with a 0.1uF capacitor connected to an amplifier input. Feed a test signal (guitar or oscillator) into the pedal and listen at key circuit points: input, after gain stages, after tone stack, before output. Identify where the signal disappears or changes.'),
('guitar_pedals', 'Grounding and Noise Problems', 'Poor grounding can cause hum, hiss, or high-pitched oscillations. Star grounding all grounds to a single point minimizes ground loops. Keep input and output wires short and separated to avoid feedback. Shielded cable can help reduce hum, especially for input wires in high-gain pedals.'),
('guitar_pedals', 'Modding: Clipping Diodes', 'Swapping clipping diodes changes the sound. Silicon diodes produce standard distortion. Germanium diodes produce smoother, vintage fuzz tones. LEDs clip less, making pedals louder and more open. Add switches to toggle between diode types for flexible clipping options.'),
('guitar_pedals', 'Modding: Tone Stack Changes', 'Changing capacitor or resistor values in a tone stack can shift the EQ response. Increasing tone cap values boosts bass. Reducing cap values tightens bass and boosts highs. Mid-scooped pedals like the Big Muff can be modded for flatter midrange or more aggressive tone by tweaking the tone circuit.'),
('guitar_pedals', 'Modding: Voltage Sag Controls', 'Adding a voltage sag control to a fuzz pedal simulates a dying battery. Use a pot to reduce supply voltage. Lower voltage makes fuzz sputtery, gated, and glitchy. Higher voltage keeps fuzz smooth and sustaining.'),
('guitar_pedals', 'Power Filtering Best Practices', 'Place a 47–100uF electrolytic capacitor across the power input to ground for ripple reduction. Add a 0.1uF ceramic capacitor to suppress high-frequency noise. Adding a reverse polarity protection diode can save the circuit if power is plugged in backward.'),
('guitar_pedals', 'Enclosure and Shielding', 'Use a metal enclosure for shielding against noise. Ensure jacks make solid ground contact to the box. Scrape paint around jack holes if needed for good ground contact. Keep inside wiring neat and short to avoid oscillations. Isolate jacks if ground loops become an issue.');
INSERT INTO diylc_knowledge_base (category, section, content) VALUES
('guitars', 'Common Potentiometers for Volume and Tone', 'CTS and Bourns make high-quality potentiometers. 250kΩ pots are used for single coils, 500kΩ for humbuckers.'),
('guitars', 'Switches for Pickup Selection', 'CRL 3-way and 5-way switches are standard for Strat and Tele-style guitars.'),
('guitars', 'Capacitors for Guitar Tone Controls', 'Typical tone capacitors are 0.022uF for humbuckers and 0.047uF for single-coil pickups.'),
('guitars', 'Shielding Materials for Noise Reduction', 'Copper tape and conductive paint are common materials used for shielding guitar cavities and pickguards.'),
('guitars', 'Common Pickup Wire Gauges', 'Vintage-style pickups use 42 AWG enameled copper wire, providing classic sound characteristics.');
INSERT INTO diylc_knowledge_base (category, section, content) VALUES
('guitars', 'Shielded Wiring for Guitars', 'Shielded twisted pair cables are often used in high-end guitars to reduce hum and noise.'),
('guitars', 'High-End Pickup Selector Switches', 'Switchcraft brand switches are known for their reliability in guitar wiring.'),
('guitars', 'Treble Bleed Mod', 'Adding a small capacitor (typically 150pF to 1nF) across the volume pot prevents treble loss when rolling back volume.');
INSERT INTO diylc_knowledge_base (category, section, content) VALUES
('guitar_amplifiers', 'Preamp Tubes for Guitar Amps', '12AX7 is the most widely used preamp tube for guitar amps, providing high gain. Alternatives like 12AT7 and 12AU7 offer lower gain options.'),
('guitar_amplifiers', 'Popular Power Tubes', '6L6GC, EL34, and EL84 tubes define the output stages of Fender, Marshall, and Vox amplifiers respectively.'),
('guitar_amplifiers', 'Solid-State Power Transistors', '2N3055 and MJ2955 transistors were common in early solid-state guitar amplifier designs.'),
('guitar_amplifiers', 'Output Transformers for Tube Amps', 'Hammond and ClassicTone are top brands for guitar amp output transformers. Choosing the correct impedance matching is critical.'),
('guitar_amplifiers', 'Rectifiers in Guitar Amps', 'Solid-state diodes like 1N5408 or tube rectifiers like 5AR4 are commonly used for converting AC to DC.');
INSERT INTO diylc_knowledge_base (category, section, content) VALUES
('guitar_amplifiers', 'How Tube Amplifiers Work', 'Tube guitar amplifiers boost the tiny signal from your guitar through several gain stages. A tube\'s heated cathode emits electrons, which are controlled by the grid and attracted to the plate (anode). This flow amplifies the signal. The signal path typically includes a preamp stage using 12AX7 tubes, a tone stack for EQ shaping, a phase inverter to split signals, and a power amp section with tubes like 6L6 or EL34 driving the output transformer and speaker. Coupling capacitors between stages block DC and allow the AC audio signal through, shaping the final tone. Distortion can occur at the preamp, power amp, or both, giving amps their dynamic, touch-sensitive feel.'),
('guitar_amplifiers', 'Classic Amplifier Topologies', 'Fender amps emphasize clean tones with 6L6/6V6 tubes and strong negative feedback, creating scooped mids and sparkling highs. Marshall amps modified Fender circuits with EL34 tubes and different tone stacks, giving a midrange-forward, aggressive crunch. Vox amps like the AC30 use EL84 tubes, cathode bias, and minimal negative feedback, producing bright, chimey tones with rich harmonics. Modern high-gain amps like Mesa Boogie add extra gain stages for heavy distortion and channel switching. Understanding these topologies helps predict how changes affect tone, feel, and distortion characteristics.'),
('guitar_amplifiers', 'Understanding Tube Types', '12AX7 tubes dominate preamp stages, offering high gain and rich harmonics. Lower gain tubes like 12AT7 or 12AY7 are used for cleaner sounds or phase inverter roles. Power tubes like 6V6 deliver soft breakup and sweetness at low volumes, while 6L6 tubes provide punchy clean headroom. EL84s are known for chimey, early breakup tones, while EL34s deliver aggressive British crunch. Rectifier tubes like 5Y3 and GZ34 convert AC to DC and introduce sag, compressing the tone under load. Choosing the right tube set is critical to shaping an amplifier’s sound and dynamic response.'),
('guitar_amplifiers', 'Power Supply Basics', 'The power transformer converts AC mains into high-voltage AC, which the rectifier (tube or diodes) converts to DC. Filter capacitors smooth this DC, and resistors or chokes further filter it before distribution. A tube rectifier introduces sag, giving a compressed, vintage feel, while solid-state diodes provide firm, immediate response. The output transformer matches the high-voltage, low-current signal of the tubes to the low-impedance speaker load, influencing tone and saturation. Transformer size and quality greatly impact bass response, volume, and clean headroom. A good power supply design ensures stable operation and defines the amplifier\'s feel under dynamic playing.'),
('guitar_amplifiers', 'Preamp Gain Stages', 'The preamp uses common-cathode triode stages to amplify the guitar signal. Each stage provides voltage gain, and cascading stages create overdrive. Coupling capacitors set bass response by forming high-pass filters with grid resistors. Early volume or gain controls set how hard later stages are driven, influencing where distortion occurs. Some designs add bright caps to retain treble at low volumes. Cathode followers, often used before tone stacks, buffer the signal and prevent tone loss. Designers tune component values to balance clean headroom, distortion onset, and frequency shaping, crafting the amp\'s voice and responsiveness.'),
('guitar_amplifiers', 'Tone Stack Overview', 'Most amps use a passive three-knob tone stack controlling bass, midrange, and treble. The classic Fender/Marshall tone stack scoops mids and emphasizes bass and treble. Adjusting cap and resistor values shifts the EQ focus: Marshall stacks have more mids, while Fender stacks are brighter and cleaner. Vox amps add a "Cut" control after the phase inverter for high-end roll-off. Some designs use Baxandall tone stacks, offering flatter response and independent bass/treble boost and cut. Tone stack placement in the circuit affects whether it shapes a clean or already-distorted signal, impacting final tone control.'),
('guitar_amplifiers', 'Phase Inverter Types', 'The phase inverter splits the signal into two out-of-phase signals for push-pull output stages. Cathodyne (split-load) inverters use a single triode and produce symmetrical outputs with minimal gain, found in small amps like the Fender Princeton. Long-Tailed Pair (LTP) inverters, common in larger amps, use two triodes to amplify and balance signals, providing more drive and symmetrical clipping. Paraphase inverters are older, less balanced designs. LTP inverters provide more headroom and are preferred in high-wattage amps, while cathodyne inverters contribute to smoother overdrive onset and vintage feel.'),
('guitar_amplifiers', 'Single-Ended vs Push-Pull Output', 'Single-ended output stages use one tube to amplify the full signal waveform, producing rich even-order harmonics and natural compression, but are low-power (5–15W). Push-pull stages use two tubes, each handling half the waveform, cancelling even harmonics and providing higher efficiency and cleaner output at low levels. Most high-power amps use push-pull configurations for 15–100W output. Push-pull amps can deliver tight bass and aggressive crunch when overdriven, while single-ended amps tend to have smoother saturation and a more forgiving, compressed feel at breakup.'),
('guitar_amplifiers', 'Class A vs Class AB Operation', 'Class A output stages conduct the entire signal cycle, producing smooth, immediate response but running hot and wasting power. Class AB stages conduct more than half the cycle, improving efficiency and output power. Most guitar amps are Class AB for practical reasons. Biasing impacts tone: cathode-biased amps self-bias with resistors, introducing some compression under load. Fixed-bias amps use negative voltage supplies, offering more clean headroom and tighter bass but requiring careful setup. Bias settings affect tube life, headroom, and distortion onset, and adjusting them can tune an amp\'s feel.'),
('guitar_amplifiers', 'Negative Feedback and Presence Control', 'Negative feedback loops feed a small portion of the output signal back into the phase inverter or earlier stage to reduce distortion and flatten frequency response. Fender amps use strong feedback for clean tones, while Vox amps often omit feedback for livelier response. Reducing feedback increases gain, touch sensitivity, and harmonic content but can also introduce noise. Presence controls adjust high-frequency feedback, boosting upper mids and treble by reducing feedback at those frequencies. Carefully tuning feedback levels shapes an amp\'s tightness, punch, and "feel" under dynamic playing conditions.'),
('guitar_amplifiers', 'Hybrid Amplifiers Explained', 'Hybrid amplifiers combine tubes and solid-state technology. Some use tube preamps and solid-state power amps (e.g., Marshall Valvestate), delivering tube warmth with reliable, lightweight solid-state amplification. Others, like vintage Music Man amps, use solid-state preamps feeding tube power amps, offering clean headroom with tube warmth at high volumes. Hybrids are cost-effective and durable but may sacrifice some "all-tube" dynamics, especially if the solid-state stage clips. Modern hybrids often run tubes at lower voltages ("starved plate") to simulate tube saturation safely. Well-designed hybrids blend tube tone generation with efficient solid-state output stages.'),
('guitar_amplifiers', 'Common Amplifier Troubleshooting', 'If an amp hums, squeals, or loses power, first suspect the tubes. Swapping known-good tubes one at a time can quickly isolate issues. Persistent hum could indicate failed filter capacitors or bad grounding. High-pitched squeals often result from bad lead dress or reversed feedback leads. Use an audio probe or signal injector to trace faults through the amp. Always power up new builds through a current-limiting light bulb tester to catch shorts safely. Pay attention to grounding layout and wire routing to minimize noise. Safety first: always discharge filter caps before working inside.'),
('guitar_amplifiers', 'Popular Modifications', 'Common amp mods include adjusting negative feedback levels to alter tightness and touch sensitivity, swapping coupling or bypass capacitors to change frequency response, and adding master volume controls for low-volume overdrive. Bright cap mods on volume pots can tame excessive treble or add sparkle. Power scaling or triode/pentode switches reduce output power for quieter playing. Adding bias adjustment pots helps tune tube performance. Modifications should be reversible where possible and done incrementally to evaluate tonal changes. Always follow safety practices when modifying high-voltage circuits.'),
('guitar_amplifiers', 'Safety and Layout Best Practices', 'Tube amps contain lethal voltages even when powered off. Always unplug the amp and discharge filter capacitors safely before working inside. Use star grounding or bus grounding to minimize hum. Twist heater wires tightly and route them away from sensitive preamp leads. Shield input signal wires and keep them short. Orient transformers at 90 degrees to each other to reduce magnetic coupling. Use fuses properly rated for safety. Following proper wiring and grounding techniques minimizes noise, oscillation, and risk of electric shock, ensuring a quiet, reliable, and safe amplifier build.');
INSERT INTO diylc_knowledge_base (category, section, content) VALUES
('guitar_amplifiers', 'Alternative Preamp Tubes', '5751 tubes can replace 12AX7s to lower gain slightly, offering more headroom.'),
('guitar_amplifiers', 'Popular Tube Rectifiers', '5U4GB rectifier tubes are used for more vintage sag compared to 5AR4/GZ34.'),
('guitar_amplifiers', 'Mercury Magnetics Transformers', 'Mercury Magnetics makes premium upgrade transformers for boutique guitar amplifiers.');
INSERT INTO diylc_knowledge_base (category, section, content) VALUES
('hifi_amplifier', 'Low-Noise Op-Amps for Hi-Fi', 'OPA2134, NE5532, and LM4562 are popular choices for ultra-low noise, high fidelity audio paths.'),
('hifi_amplifier', 'Preferred Capacitors for Audio', 'WIMA film capacitors and Nichicon Muse electrolytics are commonly used for signal coupling and power filtering in hi-fi amplifiers.'),
('hifi_amplifier', 'Power MOSFETs for Amplifier Output', 'IRFP240 and IRFP9240 are complementary pairs often used in Class AB hi-fi amplifier designs.'),
('hifi_amplifier', 'Toroidal Transformers for Power Supplies', 'Toroidal transformers are preferred in hi-fi amps for their low noise and efficiency. Brands like AnTek and Hammond are well regarded.');
INSERT INTO diylc_knowledge_base (category, section, content) VALUES
('hifi_amplifier', 'Ultra-Low Distortion Op-Amps', 'The ADA4898-2 and LME49720 op-amps are used in ultra-high-fidelity preamps and DACs.'),
('hifi_amplifier', 'Premium Capacitors for Audio', 'Mundorf and ClarityCap produce high-end film capacitors favored by audiophiles for signal paths.'),
('hifi_amplifier', 'Linear Power Supplies for Hi-Fi', 'Using linear regulated supplies reduces switching noise compared to SMPS in hi-fi amplifier designs.');
INSERT INTO diylc_knowledge_base (category, section, content) VALUES
('tube_circuits', 'Common Preamp Tubes', '12AX7 tubes are standard for gain stages, 12AU7 and 12AT7 for driver stages or reverb circuits.'),
('tube_circuits', 'Coupling Capacitors for Tube Amps', 'Orange Drop 716P series capacitors are famous for coupling stages in vintage and modern tube amps.'),
('tube_circuits', 'Rectifier Tubes Overview', '5Y3GT and GZ34 (5AR4) are popular rectifier tubes, providing different voltage sag characteristics.');
INSERT INTO diylc_knowledge_base (category, section, content) VALUES
('tube_circuits', '12DW7 Tubes', 'The 12DW7 is a hybrid tube with one half like a 12AX7 and one half like a 12AU7, useful in some amplifier circuits.'),
('tube_circuits', 'High Voltage Capacitors', 'Sprague Atom electrolytics are a premium choice for filter capacitors in tube amplifier power supplies.'),
('tube_circuits', 'Grid Stoppers and Protection', 'Using 1kΩ to 10kΩ grid stopper resistors can help prevent oscillations and radio interference in high-gain tube circuits.');
INSERT INTO diylc_knowledge_base (category, section, content) VALUES
('ham_radio', 'RF Transistors for Ham Projects', '2N2222 and 2N3866 transistors are used in VHF amplifiers and RF driver stages.'),
('ham_radio', 'Crystals for Oscillators', 'Common crystals like 7.040 MHz (40m band) and 14.318 MHz are used for building ham radio oscillators.'),
('ham_radio', 'Popular Tubes for Ham Transmitters', '6146B and 807 tubes are classic choices for homebrew transmitters.');
INSERT INTO diylc_knowledge_base (category, section, content) VALUES
('ham_radio', 'IF Transformers for Homebrew Receivers', '455 kHz IF transformers are widely used in AM radio circuits and simple ham receivers.'),
('ham_radio', 'Common Crystal Oscillator Frequencies', '10.000 MHz and 7.030 MHz are common crystals used for QRP CW transmitters.'),
('ham_radio', 'VFO Components', 'Varactor diodes like MV209 are often used in variable frequency oscillator circuits for fine-tuning.');
-44
View File
@@ -1,44 +0,0 @@
DELETE FROM diylc_knowledge_base WHERE section = 'Circuit Building Tips - Component placement';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('Building', 'Circuit Building Tips - Component placement','
When designing a circuit layout, it''s a good practice to align the component placement with the signal path—typically from left to right, though the reverse can also work depending on the context. One key consideration is to keep AC power sources as far away from the signal path as possible to minimize noise and interference. A common strategy is to position the power supply on the opposite side of the board from the input and ensure that the DC supply flows in the opposite direction of the signal.
Components are often arranged perpendicular to the signal path. This orientation can help make efficient use of space while maintaining a clear flow of the circuit.
When working with integrated circuits—like in a Tubescreamer-style overdrive pedal—the same principles apply, although it can be a bit more challenging. A useful approach is to place the IC at the center of the layout and arrange surrounding components in a “bug-like” formation, radiating outward. This helps maintain logical signal flow and simplifies connections, especially in point-to-point builds.');
DELETE FROM diylc_knowledge_base WHERE section = 'Circuit Building Tips - Grounding scheme';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('Building', 'Circuit Building Tips - Grounding scheme','
For both amplifiers and effects, a variation of the bus grounding scheme is often effective. The input jack should be grounded either through direct contact with the chassis or via a short ground lead to minimize noise at the entry point.
It''s a good idea to ground all stages of the amplifier in close proximity to each other, along with their corresponding filter capacitors. This approach resembles star grounding and helps reduce ground loops and hum.
When grounding control pots, it''s best to connect them to the bus near the stage they belong to. Keeping grounds local to each stage helps maintain a clean, stable ground reference throughout the circuit.');
DELETE FROM diylc_knowledge_base WHERE section = 'Circuit Building Tips - Lead dress';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('Building', 'Circuit Building Tips - Lead dress','
Lead routing plays a critical role in minimizing noise. Keep the following guidelines in mind:
- Shorter is better: Keep leads as short as practical to reduce the chance of picking up interference.
- Separate AC and signal paths: Maintain as much distance as possible between leads carrying AC power and those carrying audio signals.
- Use orthogonal crossings: If AC and signal leads must cross, do so at right angles to minimize crosstalk.
- Respect signal levels: Avoid routing high-level signal leads close to low-level signal paths. If necessary, use shielded wire or route the leads orthogonally to each other.
Balancing these principles often involves compromise, but following them as closely as possible leads to cleaner, quieter builds.
');
DELETE FROM diylc_knowledge_base WHERE section = 'Circuit Building Tips - Shielded wire';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('Building', 'Circuit Building Tips - Shielded wire','
Shielded wire can help eliminate noise and oscillations, especially in sensitive parts of a circuit. It’s most useful at the input, where low-level signals are especially vulnerable to interference. Since any noise picked up there will be amplified downstream, keeping this path clean is essential.
Generally, only one end of the shield should be grounded to avoid ground loops. However, in some cases—such as connecting a gain pot—it may be practical to ground both ends and use the shield as the ground conductor.
While shielded wire improves noise resistance, it’s harder to work with than standard wire. Teflon-coated shielded wire is a strong choice due to its durability and resistance to melting during soldering, though it''s less flexible than PVC-insulated wire.
Use shielded wire where it matters most, and route it thoughtfully—keeping input and output paths orthogonal and avoiding tight clusters with unrelated leads. This helps reduce crosstalk and keeps the layout clean and quiet.
');
DELETE FROM diylc_knowledge_base WHERE section = 'Circuit Building Tips - Twisted wire pair';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('Building', 'Circuit Building Tips - Twisted wire pair','
Twisting wire pairs is a simple and effective technique for reducing noise in AC-carrying leads—such as tube heater lines or high-voltage secondaries. By twisting the wires tightly, electromagnetic radiation from one lead cancels out that of the other, helping to minimize interference.
To create a clean and consistent twist, place both wires in the chuck of a hand drill and twist slowly while holding the other end about 5 inches apart. This method produces uniform results in seconds and is far more effective than twisting by hand.
For best results, twists should be tight, uniform, and run parallel to the target route. Zip wire (parallel conductor cable) is also effective for AC lines, as it naturally maintains close and consistent spacing, which also aids in noise rejection.
As a general rule, keep AC leads well separated from sensitive signal paths and ensure good grounding practices—such as grounding central tube socket pins to a chassis lug—to further reduce noise and hum.');
DELETE FROM diylc_knowledge_base WHERE section = 'Circuit Building Tips - Shielding with Components and Materials';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('Building', 'Circuit Building Tips - Shielding with Components and Materials', '
Effective shielding isn’t limited to wires—many components can serve as physical barriers to block noise. For example, transformers can act as shields when placed between noisy elements (like rectifier diodes) and sensitive circuitry. Grounding the transformer’s metal housing enhances this shielding effect.
Large electrolytic capacitors also serve a dual purpose. Since one terminal is grounded, they can be positioned between noise sources and signal paths to absorb interference.
Sheet metal, such as aluminum L-profiles, can be used to mount and simultaneously shield power transformers or tubes from other parts of the circuit. Even tube sockets may contribute—some include a central metal sleeve that can be grounded to help reduce pin-to-pin interference.
Pots also offer shielding when their bodies make contact with a grounded chassis. If using a painted enclosure, ensure bare metal contact by stripping paint around pot holes. Alternatively, grounding a bus wire across the pot backs works too—but avoid mixing both methods to prevent ground loops.
Strategic placement and grounding of these components can significantly reduce noise and improve circuit performance.');
-23
View File
@@ -1,23 +0,0 @@
DELETE FROM diylc_knowledge_base WHERE section = 'Summary: Guitar Components';
INSERT INTO diylc_knowledge_base (category, section, content) VALUES ('Component Summaries', 'Summary: Guitar Components', 'The Guitar category features components designed for guitar electronics, including various pickups (e.g., Schaller Megaswitch, Stingray Bass Pickup, Single Coil, Humbucker, P-90, Jazz Bass Pickup) and specialized switches (e.g., LP Toggle Switch, Lever Switch). Their properties such as color, orientation, marker options, type selections, and transparency allow realistic modeling of guitar circuits.');
DELETE FROM diylc_knowledge_base WHERE section = 'Summary: Passive Components';
INSERT INTO diylc_knowledge_base (category, section, content) VALUES ('Component Summaries', 'Summary: Passive Components', 'Passive components include fundamental circuit elements such as resistors, capacitors (electrolytic, film, tantalum, ceramic, mica, multi-section), inductors, and potentiometers. Key properties include electrical ratings (resistance, capacitance, voltage, power), physical dimensions, spacing, and visual display settings, which are essential for designing filters, bias networks, and other core circuit functions.');
DELETE FROM diylc_knowledge_base WHERE section = 'Summary: Board Components';
INSERT INTO diylc_knowledge_base (category, section, content) VALUES ('Component Summaries', 'Summary: Board Components', 'Board components represent the physical substrates for circuit assembly. This category includes blank boards, prototyping boards (such as Proto Board 780 Holes, Perf Board with pads, TriPad Boards), Tag Strips, and other specialized boards. Properties cover board shapes, dimensions, coordinate systems, color settings, borders, and options for underside display.');
DELETE FROM diylc_knowledge_base WHERE section = 'Summary: Schematic Symbols';
INSERT INTO diylc_knowledge_base (category, section, content) VALUES ('Component Summaries', 'Summary: Schematic Symbols', 'Schematic symbols are standardized graphical representations used in circuit diagrams to denote electrical components like resistors, capacitors, diodes, and transistors. They emphasize accurate sizing, labeling, and line styling to clearly communicate circuit functions.');
DELETE FROM diylc_knowledge_base WHERE section = 'Summary: Connectivity Components';
INSERT INTO diylc_knowledge_base (category, section, content) VALUES ('Component Summaries', 'Summary: Connectivity Components', 'Connectivity components include items such as connectors, jumpers, terminal blocks, and wiring interfaces. They represent the physical means of interconnecting circuit elements, with properties like pin count, spacing, orientation, and color coding ensuring accurate representation of connection points.');
DELETE FROM diylc_knowledge_base WHERE section = 'Summary: Electro-Mechanical Components';
INSERT INTO diylc_knowledge_base (category, section, content) VALUES ('Component Summaries', 'Summary: Electro-Mechanical Components', 'Electro-mechanical components blend electrical functionality with mechanical design. This category covers devices such as relays, various switches, and jacks, featuring mechanical dimensions, mounting details, and tactile properties that are essential for reliable physical operation.');
DELETE FROM diylc_knowledge_base WHERE section = 'Summary: Tube Components';
INSERT INTO diylc_knowledge_base (category, section, content) VALUES ('Component Summaries', 'Summary: Tube Components', 'Tube components are specialized for vintage and high-fidelity audio circuits, including vacuum tubes and associated circuitry. Their properties include filament specifications, tube configurations, pin arrangements, and thermal considerations, which are crucial for accurately modeling tube amplifiers and related designs.');
DELETE FROM diylc_knowledge_base WHERE section = 'Summary: Miscellaneous Components';
INSERT INTO diylc_knowledge_base (category, section, content) VALUES ('Component Summaries', 'Summary: Miscellaneous Components', 'The Miscellaneous Components category comprises various graphical elements, such as labels, images, graphical shapes, etc, that do not into other electronic categories. Their properties typically focus on display settings, positioning, and sizing options to help annotate and structure circuit diagrams effectively.');
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-152
View File
@@ -1,152 +0,0 @@
#!/usr/bin/env python3
"""
Script to parse DIYLC update_archive.xml and update.xml files to generate
SQL INSERT statements for the diylc_knowledge_base table with JSON content.
"""
import xml.etree.ElementTree as ET
import json
import os
# Paths to the XML files
ARCHIVE_XML_PATH = "../diylc/diylc-core/src/main/resources/update_archive.xml"
CURRENT_XML_PATH = "../diylc/diylc-core/src/main/resources/update.xml"
OUTPUT_SQL_FILE = "diylc_version_history.sql"
def parse_xml_file(file_path):
"""Parse the XML file and extract version information."""
try:
tree = ET.parse(file_path)
root = tree.getroot()
# The root is <java.util.Arrays_-ArrayList>
# Inside it there is an <a> element containing <org.diylc.appframework.update.Version> elements
versions = []
for version_elem in root.find('a').findall('org.diylc.appframework.update.Version'):
version_info = {}
# Extract version number
version_number = version_elem.find('versionNumber')
major = version_number.find('major').text
minor = version_number.find('minor').text
build = version_number.find('build').text
version_info['version'] = f"{major}.{minor}.{build}"
# Extract release date if available
release_date_elem = version_elem.find('releaseDate')
if release_date_elem is not None and release_date_elem.text:
version_info['releaseDate'] = release_date_elem.text
# Extract name if available (might be empty)
name_elem = version_elem.find('name')
if name_elem is not None and name_elem.text:
version_info['name'] = name_elem.text
# Extract changes
changes = []
changes_elem = version_elem.find('changes')
if changes_elem is not None:
for change_elem in changes_elem.findall('org.diylc.appframework.update.Change'):
change_type_elem = change_elem.find('changeType')
description_elem = change_elem.find('description')
if change_type_elem is not None and description_elem is not None:
# Replace underscores with spaces in change type
change_type = change_type_elem.text.replace('_', ' ')
description = description_elem.text
if description: # Skip empty descriptions
changes.append({
'type': change_type,
'description': description
})
# Extract URL if available
url_elem = version_elem.find('url')
if url_elem is not None and url_elem.text:
version_info['url'] = url_elem.text.strip()
version_info['changes'] = changes
versions.append(version_info)
return versions
except Exception as e:
print(f"Error parsing XML file {file_path}: {e}")
return []
def generate_sql_insert(version_info):
"""Generate SQL INSERT statement for a single version with JSON content."""
version = version_info['version']
# Create a JSON object with version info and changes
json_data = {
'version': version,
'changes': version_info['changes']
}
# Add optional fields if available (excluding URL)
for field in ['releaseDate', 'name']:
if field in version_info:
json_data[field] = version_info[field]
# Convert to JSON string and escape single quotes for SQL
json_string = json.dumps(json_data, indent=2).replace("'", "''")
sql_insert = f"""-- Version {version}
DELETE FROM diylc_knowledge_base WHERE section = 'DIYLC Version {version}' and category = 'History';
INSERT INTO diylc_knowledge_base (category, section, content)
VALUES ('History', 'DIYLC Version {version}',
'{json_string}');
"""
return sql_insert
def generate_sql_file(versions, output_file):
"""Generate SQL file with INSERT statements for all versions."""
with open(output_file, 'w') as f:
f.write("-- SQL script to insert DIYLC version history into diylc_knowledge_base table\n")
f.write("-- Generated from update_archive.xml and update.xml data\n")
f.write("-- Content is stored as JSON for easier parsing and flexibility\n\n")
# Sort versions by version number
versions.sort(key=lambda v: [int(x) for x in v['version'].split('.')])
# Remove duplicates (prefer entries from update.xml over update_archive.xml)
unique_versions = {}
for version_info in versions:
unique_versions[version_info['version']] = version_info
for version_info in unique_versions.values():
sql_insert = generate_sql_insert(version_info)
f.write(sql_insert)
f.write("\n")
if __name__ == "__main__":
# Check if files exist
versions = []
# Try to parse the archive file
if os.path.exists(ARCHIVE_XML_PATH):
print(f"Parsing archive XML file: {ARCHIVE_XML_PATH}")
archive_versions = parse_xml_file(ARCHIVE_XML_PATH)
print(f"Found {len(archive_versions)} versions in archive file.")
versions.extend(archive_versions)
else:
print(f"Warning: Archive XML file not found at {ARCHIVE_XML_PATH}")
# Try to parse the current file
if os.path.exists(CURRENT_XML_PATH):
print(f"Parsing current XML file: {CURRENT_XML_PATH}")
current_versions = parse_xml_file(CURRENT_XML_PATH)
print(f"Found {len(current_versions)} versions in current file.")
versions.extend(current_versions)
else:
print(f"Warning: Current XML file not found at {CURRENT_XML_PATH}")
if not versions:
print("Error: No versions found in either file.")
exit(1)
print(f"Total unique versions found: {len(set(v['version'] for v in versions))}")
generate_sql_file(versions, OUTPUT_SQL_FILE)
print(f"SQL file generated: {OUTPUT_SQL_FILE}")
print("Done!")
-298
View File
@@ -1,298 +0,0 @@
DELETE FROM diylc_knowledge_base WHERE section = 'User Manual - System requirements';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('User Manual', 'User Manual - System requirements','* [Java JRE/JDK](http://www.oracle.com/technetwork/java/javase/downloads/index.html) 1.8 or newer
* 1GB free RAM memory is recommended, 2GB or more is ideal
* **Mac OSX** users must allow 3rd party apps before installing DIYLC. [This document](https://support.apple.com/en-us/HT202491) covers how to do it.');
DELETE FROM diylc_knowledge_base WHERE section = 'User Manual - Installing the app - Windows';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('User Manual', 'User Manual - Installing the app - Windows','There are several ways to run DIYLC on Windows:
**Windows 64bit** – Download the Windows installer build (ending with *-win64.exe*) and follow the wizard to install it. Java JRE is not required as it comes bundled with the installation.
– Download the Windows ZIP build (ending with *-win64.zip*) and unpack to the desired folder. Java JRE is not required as it comes bundled with the installation.
**Windows 32bit** – Download the universal ZIP build (ending with *-universal.zip*) and unpack to the desired folder. Java JRE 17 or newer is required because universal builds come without a bundled JRE.');
DELETE FROM diylc_knowledge_base WHERE section = 'User Manual - Installing the app - Mac OS';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('User Manual', 'User Manual - Installing the app - Mac OS','Download the OSX build matching your Mac\'s architecture (ending with *-osx-arm.zip* for Apple Silicon M1/M2/M3 processors or *-osx-x86.zip* for older Intel-based Macs) and unpack it into the Applications folder. Java JRE is not required as it comes bundled with the app. There are two ways to get DIYLC to run on a Mac:
– Download a signed and notarized version from DIYLC Patreon (no extra steps needed). Visit DIYLC\'s Patreon to become a member.
– Download the unsigned build and allow DIYLC to run after OSX Gatekeeper blocks it initially as unsafe (details below).');
DELETE FROM diylc_knowledge_base WHERE section = 'User Manual - Installing the app - Mac OS - Installing on OSX Sierra and El Captain';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('User Manual', 'User Manual - Installing the app - Mac OS - Installing on OSX Sierra and El Captain','Since version 4.0.0, DIYLC runs on Java 8 which supports newer Mac machines, but can cause issues on older Sierra and El Capitan Macs. If the OSX application bundle *diylc-4.X.Y-osx.zip* fails on Sierra or El Capitan, you can still run the multi-platform version:
1. Download the latest *diylc-4.X.Y.zip* (without "osx" in the name) and extract it to a folder.
2. Open the Terminal, navigate to the extracted DIYLC directory, and change the permissions of *run.sh*:
`sudo chmod 755 run.sh`
3. Run the app using: `./run.sh`
If DIYLC still fails to start, try double-clicking on **diylc.jar** to launch the app.');
DELETE FROM diylc_knowledge_base WHERE section = 'User Manual - Installing the app - Linux';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('User Manual', 'User Manual - Installing the app - Linux','DIYLC for Linux is packaged as an AppImage (since version 5.0.0) and includes a bundled JRE 17. If you encounter issues with the AppImage build, you can always use the universal build.');
DELETE FROM diylc_knowledge_base WHERE section = 'User Manual - Installing the app - Universal';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('User Manual', 'User Manual - Installing the app - Universal','The universal build should work on any Linux/Unix machine as well as MacOS, provided Java JRE is installed. To run DIYLC universal build:
1. Extract the entire *diylc-[version]-universal.zip* file into a separate directory.
2. Open the Terminal.
3. Change directory (`cd`) into the extracted DIYLC folder.
4. Make *run.sh* executable: `chmod +x run.sh`.
5. Launch DIYLC by running: `./run.sh` (or `sh run.sh`).');
DELETE FROM diylc_knowledge_base WHERE section = 'User Manual - User interface';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('User Manual', 'User Manual - User interface','The DIYLC user interface is divided into four main sections:
1. **Canvas** – A WYSIWYG editor area for creating the project layout.
2. **Component tree (toolbar)** – Lists all available components, organized in categories. You can select a component here to add to the project.
3. **Main menu** – Provides file operations (save, load, export), clipboard actions, etc.
4. **Status bar** – Displays context-specific information (selected component details, zoom level, memory usage, update notifications).');
DELETE FROM diylc_knowledge_base WHERE section = 'User Manual - Mouse operation';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('User Manual', 'User Manual - Mouse operation','**Left mouse button**:
* Single-click a component on the canvas to select it.
* **Ctrl + Click** to add a component to an existing selection on the canvas.
* Single-click a component type in the Toolbox/Toolbar to select it (for placement).
* Drag a component type from the Toolbox onto the canvas to create that component.
* Click and drag on the canvas to draw a selection rectangle (multi-select).
* Double-click a component on the canvas to edit its properties.
**Right mouse button**:
* Single-click empty canvas space for the project context menu.
* Single-click a component for the component context menu.
**Middle mouse button**:
* Click and drag on the canvas to pan (move the visible area).');
DELETE FROM diylc_knowledge_base WHERE section = 'User Manual - Configuring the application';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('User Manual', 'User Manual - Configuring the application','DIYLC settings can be adjusted via the **Config** menu. Key options include:
* **Anti-Aliasing** – Smooths graphics and text (better visuals, slightly slower). Disable if experiencing performance issues.
* **Auto-Create Pads** – When enabled, automatically adds solder pads when a component is placed (for applicable layouts).
* **Auto-Edit Mode** – When enabled, the component edit dialog pops up each time a new component is added (like DIYLC 1.x behavior).
* **Continuous Creation** – When enabled, after placing a component, the tool remains active for repeated placements of that same component type (speeds up multiple inserts).
* **Enable Cache Boost** – Improves rendering speed at the cost of higher memory usage (generally recommended unless low on memory).
* **Export Grid** – If enabled, grid lines are included in exported images, PDFs, or prints.
* **Extra Working Area** – Adds extra space around project boundaries for auxiliary components (excluded from final output).
* **Hi-Quality Rendering** – Slightly improves rendered image quality (minor performance tradeoff).
* **Highlight Connected Areas** – Switches project to a read-only debug mode (cursor becomes crosshairs). Clicking a component highlights all directly connected conductive parts (wires, traces, copper, etc.) in green. (To exit, disable this mode in the Config menu.)
* **Language** – Changes the UI language.
* **Mouse Wheel Zoom** – When enabled, zoom is controlled by the mouse wheel (instead of scrolling the canvas).
* **Outline Mode** – When enabled, components are drawn as outlines only (no fill or decoration).
* **Renumber on Paste** – When enabled, pasted components get new unique names instead of retaining duplicates.
* **Show Rulers** – Toggles display of rulers along the canvas edges.
* **Show Grid** – Toggles visibility of grid lines on the canvas.
* **Snap to** – Controls snapping behavior of control points: to grid, to other components, or no snap. (Tip: Hold **Ctrl + Shift** while dragging to temporarily disable grid snap, allowing free movement.)
* **Sticky Points** – If enabled, components snap/stick to each other when moved. (Tip: Hold **Ctrl** while dragging to temporarily toggle sticky behavior.)
* **Theme** – Select a theme (background and grid colors). Themes are XML files in the DIYLC *themes* directory; you can create custom themes by copying and editing an existing theme file.');
DELETE FROM diylc_knowledge_base WHERE section = 'User Manual - Adding components to the project';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('User Manual', 'User Manual - Adding components to the project','To add an existing component from the library to your project:
1. Find the component in the component tree (components are grouped in category folders, e.g., Passive, ICs, Guitar). Use the search box at the top of the component tree to filter the list if needed.
2. Click the desired component type in the tree. (The status bar will update to reflect the active component type.)
3. Click on the canvas where you want to place the component. Some components (e.g., solder pads, trace cuts) place with a single click; others (e.g., resistors, wires) require two clicks to set start and end points. Follow the instructions in the status bar during component placement. The component will appear semi-transparent until placement is complete.
**Tip**: Press the tilde (~) key to repeat the last added component type at the current mouse location.');
DELETE FROM diylc_knowledge_base WHERE section = 'User Manual - Moving components around';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('User Manual', 'User Manual - Moving components around','There are multiple ways to move components on the canvas:
**Method 1:** Click and drag the selected component(s) to the desired location. When hovering over a component, the cursor changes to a hand icon and the status bar shows the name of the component that will be moved.
**Method 2:** Use the keyboard: select component(s), then press arrow keys while holding **Ctrl** to nudge them.
**Notes for Methods 1 & 2:**
– If multiple components are selected, all will move together.
– If a moved component has other components stuck to its control points, those stuck components will move or stretch accordingly. (The status bar lists components affected by the move.) Hold **Ctrl** during the drag or nudge to temporarily unstick components, moving only the selected items.
**Method 3:** Use the **Nudge** function from the *Transform* menu (shortcut **Ctrl + Q**). This opens a dialog where you can specify an exact X and Y offset and whether to include stuck components in the move.');
DELETE FROM diylc_knowledge_base WHERE section = 'User Manual - Control points';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('User Manual', 'User Manual - Control points','Many components have one or more **control points**, which determine their position and allow connections to other components. For components like resistors or wires, each control point can often be repositioned individually when the component is selected.
**Key points:**
* The status bar will list all components that will be affected when dragging a control point (especially if components are stuck together at that point).
* Control points become draggable (turn green) when the component is selected. You can only drag a control point when it is highlighted (green).');
DELETE FROM diylc_knowledge_base WHERE section = 'User Manual - Editing component properties';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('User Manual', 'User Manual - Editing component properties','Newly added components start with default parameters (size, color, value, name, etc.), but you can edit these properties in several ways:
* **Double-click** a single component to open its edit dialog.
* **Right-click** and choose "Edit Selection" (or press **Ctrl + E**) to edit one or multiple selected components at once.
When editing **multiple components** together, only properties common to all selected components are shown. If a property has different values among selections (e.g., a resistor\'s resistance vs. a capacitor\'s capacitance), its input field will appear highlighted in yellow, indicating a mixed value. Changing a yellow-highlighted field will apply that new value to all selected components.
**Default Values:** In the edit dialog, each property has a "Default" checkbox. Checking it sets the current value as the new default for that component type, so future added components will use that value instead of the original default.
**Units & Expressions:** For numeric properties with units (size, resistance, capacitance, etc.), you can enter math expressions. For example, typing `3/32` will automatically convert to a decimal, and you can use parentheses and basic arithmetic operators (+, -, *, /) for complex expressions.');
DELETE FROM diylc_knowledge_base WHERE section = 'User Manual - Assigning keyboard shortcuts to components';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('User Manual', 'User Manual - Assigning keyboard shortcuts to components','DIYLC allows assigning up to 12 component types to function keys (F1–F12) as shortcuts for quick access:
* In the component tree, click the drop-down menu (triangle icon) next to a component category, and choose **Assign Shortcut** for the desired component. Select one of the available **F** keys.
* Components with an assigned shortcut display an indicator (e.g., "F2") next to their name in the component tree.
* To remove a shortcut, use the Assign Shortcut menu and choose "None".
Once set, pressing that function key will activate the component tool, allowing you to place that component without needing to click in the toolbar.');
DELETE FROM diylc_knowledge_base WHERE section = 'User Manual - Using component variants';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('User Manual', 'User Manual - Using component variants','Every component type starts with default values (size, color, etc.), but you can create **variants** with customized properties:
* After editing a component to the desired settings, right-click it and choose **Save as Variant** from the context menu. This stores the current component properties as a reusable variant.
* To apply a variant to an existing component, right-click the component and select the variant from the context menu. The component will update to match the variant\'s properties.
* To add a new component using a saved variant, right-click the component type in the component tree; a context menu will list available variants – choose one to create a component with those properties.
* To set a variant as the default for new components, right-click the component type in the tree and click the pin icon next to the variant (pin icon means "use this variant by default"). New components of that type will now use the variant\'s properties. (A trash icon in that menu can delete a variant.)');
DELETE FROM diylc_knowledge_base WHERE section = 'User Manual - Grouping components together';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('User Manual', 'User Manual - Grouping components together','DIYLC supports grouping components, similar to grouping objects in vector drawing tools, to manipulate them as a single unit:
* Select two or more components and press **Ctrl + G** (or use *Group Selection* from the menu) to create a group. Once grouped, moving or editing will apply to all components in the group.
* Double-click any component in a group to open a combined edit dialog showing all properties common to the group\'s components (so you can batch-edit them).
* While components are grouped, you cannot individually drag their control points; you must ungroup to do so.
* To ungroup, select the group and press **Ctrl + U** (or use *Ungroup Selection* from the menu).
**Note:** Nested grouping (grouping groups into larger groups) is not supported – grouping two existing groups will merge them into one single group.');
DELETE FROM diylc_knowledge_base WHERE section = 'User Manual - Using building blocks';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('User Manual', 'User Manual - Using building blocks','When you frequently use a cluster of components configured in a specific way, you can save them as a **Building Block** for reuse:
1. Arrange and configure the components (e.g., a transistor with three wires forming a TO-92 package).
2. Select all these components, right-click, and choose **Save as Building Block**.
3. The new building block will appear under the **(Building Blocks)** category in the component tree. You can now add this cluster to any project with a single click, just like a normal component.
4. To delete a building block, right-click it in the component tree and choose the delete option from its context menu.');
DELETE FROM diylc_knowledge_base WHERE section = 'User Manual - Working with layers';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('User Manual', 'User Manual - Working with layers','Each component in DIYLC has not only X and Y position but also a **Z-order layer** that controls stacking (what appears on top of what). Unlike free-form graphics editors, DIYLC uses fixed layers based on component types: **Chassis**, **Board**, **Trace**, **Component**, **Wiring**, **Text** (from bottom to top). For example, all traces are drawn above boards, and all components above traces, etc.
**Bring to Front/Send to Back** commands usually operate within a component\'s designated layer. If you move a component beyond its layer bounds, DIYLC will prompt to confirm crossing into a different layer (unusual cases).
Layer management features:
* Temporarily **hide** an entire layer (useful to work on buried components).
* **Lock/unlock** a layer, which keeps its components visible but not selectable/editable.
* **Select all** components on a given layer (for quick bulk edits).');
DELETE FROM diylc_knowledge_base WHERE section = 'User Manual - Showing board underside';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('User Manual', 'User Manual - Showing board underside','To simplify designing and assembling circuit boards, DIYLC can display a board\'s underside along with its top side:
* Double-click a board component (or open its edit dialog through other means) and adjust the underside settings:
- **Underside Display**: Choose how to position the bottom view relative to the top (None, Above, Below, Left, Right of the original).
- **Underside Offset**: Set the distance (spacing) between the top view and the bottom view.
- **Underside Transparency**: If enabled, the bottom side is drawn semi-transparent to differentiate it from the top side.
Once configured, DIYLC will render both sides of the board simultaneously, making it easier to visualize double-sided layouts.');
DELETE FROM diylc_knowledge_base WHERE section = 'User Manual - Using the status bar';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('User Manual', 'User Manual - Using the status bar','The status bar (typically at the bottom of the window) provides several info panels from left to right:
* **Information bar** – Contextual hints and messages guiding you through actions (e.g., instructions during component placement, or details about the current tool).
* **Selection size** – The dimensions of the bounding box around all selected components (respects current unit, e.g., inches or cm).
* **Zoom control** – A slider or control to zoom in/out on the canvas.
* **Announcements** – Displays any public announcements (if present).
* **Auto-update** indicator – A light bulb icon that lights up when a new version of DIYLC is available. Click it for more info.
* **Memory bar** – A blue bar indicating current memory usage. Hover to see details, or click it to trigger garbage collection (free up memory). It turns red if memory usage is high, signaling potential performance issues.');
DELETE FROM diylc_knowledge_base WHERE section = 'User Manual - Using ''Highlight Connected Areas'' Feature';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('User Manual', 'User Manual - Using ''Highlight Connected Areas'' Feature','Introduced in DIYLC 3.42.0, the **Highlight Connected Areas** feature helps trace connections in your layout by highlighting conductive paths:
* Activate it from **Analyze → Highlight Connected Areas**. The cursor changes to crosshairs and the project becomes temporarily read-only (you cannot move components in this mode).
* Click on any component or connection point. DIYLC will highlight in green all components and traces that are electrically connected to that point (assuming zero-resistance connections).
* This is particularly useful for debugging stripboard/veroboard layouts, PCBs, breadboards, or point-to-point wiring – it visually confirms which nodes are connected.
* To exit this mode and resume editing, uncheck **Highlight Connected Areas** in the “Analyze” menu (which will turn the feature off).');
DELETE FROM diylc_knowledge_base WHERE section = 'User Manual - Drawing and Analyzing Guitar Wiring Diagrams (Part 1)';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('User Manual', 'User Manual - Drawing and Analyzing Guitar Wiring Diagrams (Part 1)','DIYLC can be used to create and analyze guitar wiring diagrams. Drawing the diagram uses the same tools and steps as any DIYLC project (with guitar-specific components under the **Guitar** category and common parts like jacks and switches under **Electro-Mechanical**). The powerful part is the **Guitar Wiring Analyzer** feature, which helps you understand and troubleshoot the wiring:
*The analyzer is accessed via File → Analyze → Guitar Wiring Diagrams, and requires a fully drawn diagram.* You should have at least one guitar pickup wired through any switches/pots and ultimately connected to an output jack (the jack is required for analysis). The analyzer will perform these checks:
- Identify all switches and consider every combination of switch positions. (For example, a 3-way toggle plus a push-pull pot yields 3 x 2 = 6 distinct configurations.) For each configuration, it will:
- Determine which pickup coils are active.
- Check if humbuckers are in full humbucking mode or split-coil.
- Check if active coils are wired in series or parallel.
- Check the phase relationship of each coil (and if multiple coils are active, whether they are in-phase or out-of-phase with each other).
- Determine if the active pickup combination is noise-cancelling (hum canceling).
- See if any potentiometers are functioning as volume or tone controls in that configuration.
- Check if a treble bleed network is present on any volume control.');
DELETE FROM diylc_knowledge_base WHERE section = 'User Manual - Drawing and Analyzing Guitar Wiring Diagrams (Part 2)';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('User Manual', 'User Manual - Drawing and Analyzing Guitar Wiring Diagrams (Part 2)','Below is an example of a fully wired guitar diagram analyzed by DIYLC: it has two rail humbucker pickups, a 3-way toggle switch, and one push-pull volume pot (which splits the humbuckers when pulled) plus a treble bleed circuit on the volume.
*(You can download this example as a DIYLC file named "travelcaster.diy".)*
To run the analyzer, go to File → Analyze → Guitar Wiring Diagrams. The output will be divided into sections for each switch configuration. For instance, here\'s the output for the middle position of a 3-way switch with the push-pull not engaged:
- It shows a **parallel/series connectivity tree** representing the circuit from the output jack\'s perspective for that configuration. The tree uses parentheses for hierarchy, "+" for series connections, and "||" for parallel connections. Pickup coils are labeled like **PickupName.North** or **PickupName.South**, with an arrow indicating polarity.
- Below the tree, DIYLC lists notes deduced from the connectivity, such as which coils are active, their phase relationship, whether the combination is hum-cancelling, etc. This is where the analysis "magic" happens – it provides insights into the wiring\'s behavior.
For a full detailed analysis of this example, DIYLC provides an HTML report (accessible via an online viewer for *travelcaster_analysis.html*).');
DELETE FROM diylc_knowledge_base WHERE section = 'Component API - General advice';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('User Manual', 'Component API - General advice','When creating a new DIYLC component, strive for consistency with existing components in both appearance and behavior, as well as code style. This ensures a uniform user experience and maintainable codebase across all components. **Key advice:** follow the established visual design patterns and coding standards in DIYLC for any custom component.');
DELETE FROM diylc_knowledge_base WHERE section = 'Component API - Prerequisites';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('User Manual', 'Component API - Prerequisites','Before developing DIYLC components, ensure you have:
* Java **JDK 17** (or later) installed.
* A Java IDE, e.g. IntelliJ IDEA
* Maven
* A working **Git** client (to fetch and manage DIYLC code).
* Solid Java knowledge (including generics, annotations, and familiarity with **Graphics2D** for rendering).
* Docker (only for building the deployment packages)
Note: Unlike DIYLC v2, versions 3 and higher components require actual Java coding for custom appearance and behavior. This raises the bar for non-programmers but gives greater flexibility and performance.');
DELETE FROM diylc_knowledge_base WHERE section = 'DIYLC Cloud';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('User Manual', 'DIYLC Cloud',
'The DIYLC Cloud feature connects users to a central hub and offers several powerful capabilities:
- Upload and Share Projects: Save your DIYLC projects online and share them with the community.
- Search and Download Projects: Access a library of existing projects uploaded by other users.
- Access AI Assistant: Use the AI Assistant to get help with using the app, designing circuits, and troubleshooting projects.
The Cloud feature is open to all users but requires creating an account with a valid email address. Your email is used only for login purposes and will never be shared or used for any other reason.
The only way to create and access a DIYLC Cloud account is through the "Cloud" tab in the main menu of the DIYLC application.');
DELETE FROM diylc_knowledge_base WHERE section = 'AI Assitant/Chatbot/ChatGPT/GPT';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('User Manual', 'AI Assitant/Chatbot/ChatGPT/GPT',
'DIYLC AI Assistant is an integrated feature that allows users to interact with DIY Layout Creator (DIYLC) using natural language. It functions as a chatbot powered by the OpenAI API to generate helpful responses. The AI Assistant is available only while logged into the DIYLC Cloud with an active account and requires an internet connection.
There are two subscription tiers for using the AI Assistant:
- Free Tier: Provides limited monthly usage and access to basic AI models. This option is automatically available to all registered DIYLC Cloud users.
- DIYLC Supporter tier: increases monthly credits to 50 and unlocks a slightly more advanced AI model.
- DIYLC Pro tier: offers up to 500 requests per month using more advanced AI models.
The paid subscription can be purchased by becoming a DIYLC Patreon subscriber at http://www.diy-fever.com/get-premium.
In order to activate your paid subscription, please make sure to link your DIYLC Cloud account to your Patreon account from DIYLC''s "Cloud" menu.
');
DELETE FROM diylc_knowledge_base WHERE section = 'AI Assitant/Chatbot/ChatGPT/GPT - Using the AI Assistant';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('User Manual', 'AI Assitant/Chatbot/ChatGPT/GPT - Using the AI Assistant',
'DIYLC AI Assistant can assist users with a wide variety of tasks, including:
- General Electronics Questions: Ask about electronics theory, parts, components, guitars, and related topics.
- Circuit Design Assistance: Describe the type of circuit you want to build, and the AI Assistant will suggest design ideas and possible circuit layouts.
- Circuit Troubleshooting: Get help with specific questions or troubleshoot problems with your circuit. The AI Assistant can read your project file, analyze all components and connections, and provide detailed explanations of the circuit’s behavior.
- Learning DIYLC Features: Ask questions about DIY Layout Creator (DIYLC). The AI Assistant is trained on the complete DIYLC user manual and can explain software features, tools, and workflows.');
DELETE FROM diylc_knowledge_base WHERE section = 'AI Assitant/Chatbot/ChatGPT/GPT - Tips';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('User Manual', 'AI Assitant/Chatbot/ChatGPT/GPT - Tips',
'Below are some tips for using the DIYLC AI Assistant:
- Be specific and detailed in your questions.
- If you are asking about a specific component, make sure to include the component name and any relevant details.
- If you are asking about a DIYLC feature, make sure to include the words "DIYLC" or "DIY Layout Creator" and the feature in question to ensure that the AI assistant understands the context of the question.
- Use simple language and avoid complex technical terms.
- Ask follow-up questions if needed.
- Use the "Clear" button to reset the conversation.
- Each chat conversation is associated with the current project and is saved in the cloud and will be automatically downloaded when that project is opened.');
DELETE FROM diylc_knowledge_base WHERE section = 'User Manual - Keyboard Shortcuts';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('User Manual', 'User Manual - Keyboard Shortcuts','
- X key: quick jump to the search box in the Project Explorer pane (if visible)
- Q key: quick jump to the search box in the component toolbox tree
- ~ key: repeat previously added component
- Ctrl and drag to "unstick" a component
- Ctrl (Command on Mac) + Alt (Option on Mac) and drag to move a component with more precision, without snapping to the grid
- Ctrl (Command on Mac) + G to group components
- Ctrl (Command on Mac) + U to ungroup components
- Ctrl (Command on Mac) + H to hide the status bar
- Ctrl (Command on Mac) + L to lock the status bar
- Ctrl (Command on Mac) + P to print the current project
- Arrow keys to move components 1 grid spacing at a time
- Shift + Arrow keys to move components in 1 px increments
- Alt (Option on Mac) + Left or Right arrow key to rotate a component by 90 degrees counterclockwise or clockwise respectively
- Alt (Option on Mac) + Up or Down arrow key to move a component up or down in the Z-order
- Alt (Option on Mac) + H to mirror the selected components horizontally
- Alt (Option on Mac) + V to mirror the selected components vertically
- Ctrl (Command on Mac) + number keys 1 through 6 to toggle the visibility of layers from Chassis, Board, Trace, Component, Wiring, Text
- ');
DELETE FROM diylc_knowledge_base WHERE section = 'User Manual - Creating a New Component';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('User Manual', 'User Manual - Creating a New Component','
There are several ways to create a new component:
- if it can be composed of existing components, you can combine multiple components together in a "building block" from the context menu and then easily recall it from the component tree
- for more complex components that require custom appearance and behavior, you can create a new component from scratch using the Component API, as described in the [Component API](https://github.com/bancika/diy-layout-creator/blob/wiki/ComponentAPI.md) documentation
- you can file a component request on the [DIYLC GitHub repository](https://github.com/bancika/diy-layout-creator/issues) and I will implement it if I think it would be useful for other users without guaranteeing if and when it will be implemented
- you can reach out to me at [bancika@gmail.com](mailto:bancika@gmail.com) to sponsor a custom component for your project and expedite its development');
DELETE FROM diylc_knowledge_base WHERE section = 'User Manual - Panning/Moving the Screen/Canvas';
INSERT INTO diylc_knowledge_base(category, section, content) VALUES ('User Manual', 'Panning/Moving the Screen/Canvas','
There are several ways you can pan the screen/canvas and move around:
- horizontal and vertical scroll bars
- touch pad (if available)
- mouse scroll button (if available) - hold ctrl for horizontal scrolling
- click on the tiny "Auto-scroll" button in the bottom-right corner of the canvas to open a miniature version of the canvas and quickly jump to any part of it');