Another set of eyes to check my kicad schematic - Page 1
Forum section: electronics / projects

author: Stealthrt
author_rank: Regular Contributor
timestamp: August 15, 2025, 02:06:47 pm
content: Hey all I am wanting another set of eyes to review my schematic to make sure I have everything connected correctly. It looks like its connected correctly to me but another set of eyes on it is always a good thingI'm also wanting to find better substitutes for the C1 470uf and C2 1uf caps. Are there any that I can get that are smaller (height wise)? I'm looking to have the smallest height possible.Note that I did my own thing for the power conversion and the RGB.Here is what I used to go by while creating the schematic:Code:1. Bidirectional Level Shifter (3.3V ↔ 5V) - VERIFIED BIDIRECTIONAL LEVEL SHIFTERValentine One Side (5V) ESP32-C3 Side (3.3V)───────────────────────── ─────────────────────────+5V +3.3V│ │╔══╗ ╔══╗║R1║ 10kΩ ║R3║ 10kΩ╚══╝ ╚══╝│ │├─────────── To V1 DATA ├─────────── To GPIO21/TX│ (RJ11 Pin 2) │ To GPIO20/RX│ │Drain Drain│ │┌───┴───┐ ┌───┴───┐│ │ │ ││ Q1 │ │ Q2 ││BSS138 │ │BSS138 ││ │ │ │└───┬───┘ └───┬───┘Gate Gate│ │└─────────────────┬─────────────────────────┘││ +3.3V│ ││ ╔══╗│ ║R2║ 10kΩ│ ╚══╝│ │└──┤ (Gates connected together)│Source│Source│ │┴ ┴GND GNDIMPORTANT: Both MOSFET Sources MUST connect to GNDStep-by-Step Connection Guide for Level Shifter:Install Q1 (BSS138 or 2N7000):================================Source (Pin 1) → Connect to GNDGate (Pin 2) → Leave for now (will connect in step 5)Drain (Pin 3) → Connect to V1 DATA lineInstall Q2 (BSS138 or 2N7000):================================Source (Pin 1) → Connect to GNDGate (Pin 2) → Leave for now (will connect in step 5)Drain (Pin 3) → Connect to ESP32 GPIO21 and GPIO20Install R1 (10kΩ pull-up):================================One end → +5V supplyOther end → Q1 Drain (same point as V1 DATA)Install R3 (10kΩ pull-up):================================One end → +3.3V supplyOther end → Q2 Drain (same point as GPIO20/21)Connect Gates Together with R2:================================Connect Q1 Gate to Q2 Gate with a wireInstall R2 (10kΩ): One end to +3.3V, other end to the connected gatesVerify Connections:================================Both Sources are at GNDGates are connected together and pulled to 3.3VEach Drain has its respective pull-up2. Legacy Mode 1.4V Pull-up Generator - VERIFIED LEGACY MODE 1.4V GENERATORControl Stage Voltage Generation Stage────────────── ─────────────────────────GPIO6 ──┐│╔══╗║R5║ 1kΩ +3.3V +3.3V╚══╝ │ ││ ╔══╗ ╔══╗Gate ║R6║ ║R7║│ ║10kΩ ║10kΩ┌───┴───┐ ╚══╝ ╚══╝│ │ │ ││ Q3 │Drain └────┬────────┘│BSS138 ├──────────────────────Base│ │ │└───┬───┘ ┌───┴───┐Source │ │Collector│ │ Q5 ├────────── To V1 DATA┴ │MMBT │ (1.4V output)GND │2222A ││ │└───┬───┘Emitter│╔══╗║R8║ 4.7kΩ╚══╝│┴GNDStep-by-Step Connection Guide for Legacy Pull-up:================================Install Q3 (BSS138 Control MOSFET):Source → GNDGate → Through R5 (1kΩ) to GPIO6Drain → Will connect to Q5 base circuitInstall Voltage Divider (R6 and R7):================================R6 (10kΩ): One end to +3.3VR7 (10kΩ): One end to +3.3VConnect other ends of R6 and R7 together (creates ~2.1V when active)Install Q5 (MMBT2222A or 2N2222):================================Base → Connect to junction of R6/R7 AND Q3 DrainEmitter → Through R8 (4.7kΩ) to GNDCollector → Connect to V1 DATA lineInstall R5 (1kΩ gate resistor):================================One end → GPIO6Other end → Q3 GateInstall R8 (4.7kΩ emitter resistor):================================One end → Q5 EmitterOther end → GNDOperation Verification:================================GPIO6 LOW: No pull-up on DATA lineGPIO6 HIGH: ~1.4V appears on DATA line3. MUTE Control Circuit - VERIFIED MUTE CONTROL CIRCUITControl Input Output Stage────────────── ──────────────V1 MUTE Pin 5│╔═══╗║R10║ 10kΩ (Internal V1 pull-up)╚═══╝│GPIO5 ──┐ ├────── To V1 Pin 5 (MUTE)│ │╔══╗ Drain║R9║ 10kΩ │╚══╝ ┌───┴───┐│ │ │Gate │ Q4 ││ │BSS138 │┌───┴───┐ │ ││ NC │ └───┬───┘│ │ Source└───────┘ │(R9 protects gate) ┴GNDNote: V1 has internal pull-up, R10 shown for referenceStep-by-Step Connection Guide for MUTE Control:Install Q4 (BSS138 MUTE Control):================================Source → GNDGate → Through R9 to GPIO5Drain → Direct to V1 MUTE (Pin 5 of RJ11)Install R9 (10kΩ protection resistor):================================One end → GPIO5Other end → Q4 GateNote about R10:================================R10 is INTERNAL to V1, do NOT add external pull-upV1 maintains MUTE line at +5V when idleOperation:================================GPIO5 LOW: MUTE line stays at +5V (no mute)GPIO5 HIGH: Q4 pulls MUTE to GND (activates mute)4. Power and Ground Connections - VERIFIED POWER DISTRIBUTIONFrom Valentine One ESP32-C3 Power────────────────── ────────────────RJ11 Pin 4 (+12V) ──┐ USB 5V ──┐│ │ [Internal LDO]│ ││ +3.3VRJ11 Pin 3 (GND) ───┬───────────────────────┤│ │┴ ┴COMMON GND COMMON GNDCRITICAL: V1 GND and ESP32 GND MUST be connected togetherStep-by-Step Connection Guide for Power:Connect Grounds:================================V1 Pin 3 (GND) → ESP32 GNDThis is CRITICAL for proper operationV1 Power (Pin 4):================================NOT USED for powering ESP32Leave disconnected or add protection diode onlyESP32 Power:================================Power via USB (5V)ESP32 generates its own 3.3VAdd Bypass Capacitors:================================100nF ceramic near ESP32 3.3V pin10µF electrolytic on 3.3V rail5. Complete Pin Connection Summary RJ11 CONNECTOR (Looking into jack)┌──────────────────────────┐│ 6 5 4 3 2 1 │└──────────────────────────┘NC MUTE +12V GND DATA NCCONNECTIONS:Pin 1: Not ConnectedPin 2: DATA → Level Shifter Q1 Drain AND Legacy Gen Q5 CollectorPin 3: GND → Common Ground for entire circuitPin 4: +12V → Not used (ESP powered via USB)Pin 5: MUTE → Q4 Drain (MUTE control)Pin 6: Not ConnectedESP32-C3 CONNECTIONS:GPIO20: RX → Level Shifter Q2 DrainGPIO21: TX → Level Shifter Q2 Drain (same connection)GPIO5: → R9 → Q4 Gate (MUTE control)GPIO6: → R5 → Q3 Gate (Legacy control)GPIO8: → R11 (220Ω) → LED → GNDGND: → Common ground3.3V: → Pull-ups and bias resistorsCritical Design Verification Points✅ Level Shifter Checklist:================================Both MOSFET sources connected to GNDGates connected together with 3.3V pull-up5V pull-up on V1 side drain3.3V pull-up on ESP32 side drainNo direct 5V to 3.3V connection✅ Legacy Generator Checklist:================================Q5 collector to DATA line (provides 1.4V)Q5 emitter through 4.7kΩ to GNDVoltage divider creates ~2.1V at baseQ3 controls activation✅ MUTE Control Checklist:================================Q4 drain to MUTE pinQ4 source to GNDNO external pull-up (V1 has internal)Gate protection resistor installed✅ Power Checklist:================================Common ground between V1 and ESP32ESP32 powered via USB only12V from V1 NOT connected to ESP32Bypass capacitors installed

author: MK14
author_rank: Super Contributor
timestamp: August 15, 2025, 03:36:11 pm
content: "Postimage, Image not found or was removed", is what I can see?

author: Stealthrt
author_rank: Regular Contributor
timestamp: August 15, 2025, 05:05:26 pm
content: I have added a new link to the schematic image. Hopefully it works now?

author: Alex Nikitin
author_rank: Super Contributor
timestamp: August 15, 2025, 05:45:24 pm
content: Please tell me this circuit is made by AI.CheersAlex

author: PGPG
author_rank: Frequent Contributor
timestamp: August 15, 2025, 05:54:15 pm
content: You draw the schematic in the way that it is:- easy to understand by you,- easy to interpret by PC,- hard to read by other human beings.

author: floobydust
author_rank: Super Contributor
timestamp: August 15, 2025, 06:11:38 pm
content: What a dog's breakfast. "Legacy Mode 1.4V Pull-up Generator" so clear to understand lol.cross-postedhttps://www.electro-tech-online.com/threads/another-set-of-eyes-to-check-my-kicad-schematic.167961oh gave up on ushttps://forum.allaboutcircuits.com/threads/another-set-of-eyes-to-check-my-kicad-schematic.207764/#post-1996743https://www.electronics-lab.com/forums/threads/another-set-of-eyes-to-check-my-kicad-schematic.312650

author: Alex Nikitin
author_rank: Super Contributor
timestamp: August 16, 2025, 01:17:08 am
content: So my guess about AI was spot onCheersAlex

author: floobydust
author_rank: Super Contributor
timestamp: August 16, 2025, 01:37:23 am
content: Getting posts of AI circuits and are asked if they will workhint: nope. It's a new problem for the forums.In other website forums the thread instantly dies when people realize the post is AI shit, some people even for their employment post the "circuit" and ask for more.It's really gross. Why should people waste time helping/fixing that, for nothin'?I guess we're in an era of "gimme the answer, I'm lazy" - instead of learning the craft.

author: MK14
author_rank: Super Contributor
timestamp: August 16, 2025, 01:40:26 am
content: Quote from: floobydust on August 16, 2025, 01:37:23 amThey also (as you seem to have found out and pointed out, above), have the cheek, to post exactly the same thing (apparently or substantially), to a number of forums. Which is also annoying.Lazy?

author: floobydust
author_rank: Super Contributor
timestamp: August 16, 2025, 01:51:39 am
content: It's worse - in the post they don't explain what the I/O connects to, what the thing does. It's kind of hilarious.AI can't do electronics design, just a collection of symbols plopped down and sorta connected.This AI battery charger, fromcircuit.A 10-pin 555 timer? Just dremel it a little bit lol.ChatGPT King of Junk schematic.

author: Nominal Animal
author_rank: Super Contributor
timestamp: August 16, 2025, 06:08:23 am
content: You're not helping, just making schematic design seem "tribal" with us newbies unwelcome and ridiculed.Iknow your intentions are good, but the OP probably doesn't understand this that way.Let me try.There are two approaches to schematics,@Stealthrt: top-down or fully connected, and bottom-up or split-into-parts. There has been some discussions on this forum on these (calling one "horrible"), which is why some of the responses you got were so, uh, direct.First, your schematic exhibits the classical problem with schematics that split apart interacting things. Specifically, GPIO 6, GPIO 20, and GPIO 21 all interact with the DATA pin, making your "legacy mode pull-up circuit" and "bidirectional level shifter" parts, well, fight each other. Not so good.Second, you forgot to describe what the external connections are. MUTE looks like an open collector active-low signal, but what is DATA? RGB is the output to control one or more WS2812B RGB LEDs. You have a 12V external supply that is regulated to 5V for theESP32 C3 Super Mini Development Boardyou use. That board then regulates it down to 3.3V, and all its I/O pins use 3.3V CMOS logic.As it is, we don't know what it is intended to do at all. It is like showing us a turboencabulator, and asking whether it should work right.Attached is myguessas to what you actually want to do.According to thedatasheet (TI, PDF), LM7805MP regulator only needs 0.22µF on input, and 0.1µF on output. I'd use 1µF on input, and 100nF on output.U1, the ESP32-C3 Super Mini, is not a single IC, but a microcontroller development board. It takes 5V in, and regulates that down to 3.3V, as it's I/O pins use 3.3V voltage levels. (That means we don't need any supply bypass capacitors on its +5V or +3.3V rails. You didn't have any, and that's OK, I'm just explaining what I'd do and why.)GPIO5 controlling the open-collector MUTE signal is okay. 10kOhm gate resistor makes it switch quite slowly, though; remember, MOSFET gate behaves like a capacitor. Assuming it is a digital signal, the speed at which it is pulled to ground does not matter. I suggest using a 220Ω resistor here, because it limits the peak current drawn from the I/O pin to 3.3V/220Ω = 15mA.I don't understand why you'd want GPIO6, GPIO20, and GPIO21 all connected to the DATA signal. Assuming you have a good reason to, I'd protect each one (at least during software development phase) with 220Ω resistors. That way, even if two of these end up being outputs, one low and one high, you turn 2×3.3V×15mA = 99mW to heat in the two resistors, but should not burn out anything. You should use resistors rated for at least 1/10th watt dissipation, but most 0603 and 0805 are at least that. If you're absolutely sure at most one of the three pins is ever an output, and the other two inputs, then you can replace these with jumpers (either 0Ω resistors, or by soldering a piece of wire between the pads).WS2812B RGB LEDs use 5V logic level data. That is, "high" is 0.7×5V = 3.5V. ESP32-C3 I/O pins reach between 2.64V and 3.3V, so that won't work.Instead, I'd use aTI TXU0101DBV(or a similar74LVC1T45with DIR tied to GND, VCCB to 3.3V and B to ESP32-C3, and VCCA to 5V and A to WS2812B) unidirectional/one-directional voltage translator chip. TXU0101 has Schmitt trigger inputs but is fixed-direction, whereas 74LVC1T45 has a direction pin. I like to keep a few 74LVC1T45 in SOT23-6 in stock, because it is small enough but not too small to solder directly to wires, putting heatshrink over it, to level-translate a single signal.R5 isn't really needed at all, because both TXU0101 and 74LVC1T45 inputs won't draw much current in any case, but such a small-valued resistor does not harm stuff here; and it does provide some safety when testing, in case you happen to short the signal marked GPIO3 (ie. after the resistor) to ground or VCC.This leaves the three-pin-joined DATA pin. I'd use aTI TXB0101bidirectional voltage level translator here. It requires that VCCA < VCCB, but automatically detects the direction if needed. Such bidirectional translators can be a bit problematic because they use voltage levels to determine the signal direction, and sometimes there is a tiny "step" in the low-level signal when that determination is incorrect; but TI TXB0n0m seems to be better than average in this regard. (If you always knew the signal direction, then using one of the I/O pins for direction, you could use a 74LVC1T45 here instead.)Voltage level translators, and digital ICs in general, wantsupply bypass capacitorsto provide a tiny spike of extra current locally when the innards of the IC switch. Remember, MOSFET gates behave like capacitors, so they mostly draw current only when switching. The supply bypass capacitors act like local reservoirs, so that the supply voltage to the IC stays stable. They do need to be placed as close to the IC as possible, too. Here, I've added 100nF capacitors for both VCCA and VCCB for both translators. In practice, it is possible (but not guaranteed!) the circuit would work fine without them, but they're dirt cheap, and small enough in 0603 size, that there is no reason to omit them. Even real EEs doing commercial products tend to put all of them on the PCB, and then just test in practice which ones can be omitted (to save a cent or two per board).For the 1µF capacitor C1, I recommend Samsung CL10B105KB8NQNC (X7R 1µF 50V in 0603) or CL21B105KBFNNNE (X7R 1µF 50V in 0805), depending on whether you feel comfortable soldering 0603. I use these in just about every circuit I do, and tend to buy these in strips of 100 (around 3€ total at Mouser, Digikey, LCSC).For the 100nF capacitors, I recommend Samsung CL10B104KB8NNND (X7R 100nF 50V in 0603) or CL21B104KBCNFNC (X7R 100nF 50V in 0805), again depending on whether you prefer 0603 or 0805. I usually use several of these per board I do, and do buy these in strips of 100 (around 3€ total at Mouser, Digikey, LCSC).The brand does not matter, but I do recommend picking X7R dielectrics, and 50V, so that you can use the same ones everywhere. Unless you do large batches of boards, the price difference to 25V or 16V rated ones is neglible.I'm only a hobbyist myself, but my design philosophy is to try and make it robust at first, and only try to optimize later on, after getting the software done. So, there are components above that one could omit, but I wouldn't, at least not before I got the software written and to a state I'd trust.

author: Simon
author_rank: Unknown
timestamp: August 17, 2025, 01:34:47 pm
content: I wish people would stop moaning about people posting in other forums, it's not a valid point and makes any other comment diminished.

author: Stealthrt
author_rank: Regular Contributor
timestamp: August 18, 2025, 02:46:28 pm
content: Quote from: Nominal Animal on August 16, 2025, 06:08:23 amThank you for taking the time to explain to me (and others) what i am wanting to get out of my post here. This is the first time I ever used Ai to do anything and i was wondering how close it really did come to the correct design. If its 50% correct then at least i have a somewhat visual of what the circuit may/might look like.Quote from: Simon on August 17, 2025, 01:34:47 pmYes, I agree as well. There are more people in the world than there are registered here. And as they always say, there's always someone who's smarter than you. I like to broaden my reach with different people and their backgrounds. One may not know about something when someone else on another forum does but I would have never gotten that feedback if i just posted here and that's all.My post is about how to communicate to a radar detector from my esp32-c3 and get its visual details (strength, direction of radar, etc)....

author: Alex Nikitin
author_rank: Super Contributor
timestamp: August 18, 2025, 04:56:33 pm
content: You should understand that an AI created diagram is an equivalent of a hard slap in the face for an electronic engineer capable of reading circuit diagrams. It takes a while to recover and restore mental balance after looking at one of the monstrosities like the one you’ve posted.CheersAlexP.S. - and you’ve formulated your first post as if you have checked connections on the diagram and happy with it! Which, frankly, if true, shows that you better not touch anything electrical or electronic, sorry to say!

author: Simon
author_rank: Unknown
timestamp: August 18, 2025, 05:28:05 pm
content: Why are you bothering to use AI. And yea, don't come asking people to make suggestions about your AI generated diagrams. It basically means that you care little for the engineering and just want a result and that explaining to you may be pointless. We are engineers! We would rather explain how to do something than comment on a mess made by something that does not know or care what it is doing, human or machine.

author: tooki
author_rank: Super Contributor
timestamp: August 18, 2025, 05:28:23 pm
content: Quote from: Stealthrt on August 18, 2025, 02:46:28 pmThe problem is that the skills needed to proofread/review an AI-generated schematic are the same skills needed to just create the thing yourself.*IMHO it's hugely disrespectful of people's time to have them review an AI-generated circuit without telling them that's what it is. Reviewing an AI schematic is actually worse than helping someone who tried to do it themselves (even if unsuccessfully) because the human who posted the AI schematic likely doesn't have the knowledge to even begin to understand any feedback given to them, making it a totally fruitless endeavor for all parties involved. With the human-created schematic, the person can at least explain what they were thinking, so you can help them straighten out their misunderstandings or gaps in knowledge. When the person wasn't involved in creating it, it's a black hole.*Years ago, I was hired at a small software company to translate the software, as well as all documentation (manual, contextual help, FAQs, etc) from German to English. When I started, a preliminary translation (prepared by a former employee who was not a native English speaker) was already present. Naturally, we all assumed I could just tune it up and copyedit it. After a while, and a few instances of comparing an unclear English text with the German original, and discovering to our horror that the other employee hadcompletelymisunderstood the German original and written a translation that was essentially nonsense (or worse,lookedplausible, but was actually totally incorrect), it became clear that I would need to compare every single English text to the German original. And doingthatactually takesmoretime than just translating it myself. So that's what we did: we discarded the first translation and I made an all-new one, carefully, from scratch. (Now, 15 years after the English version debuted, my translation, including all the English core terminology in the program, remain essentially unchanged in the current version, because we took the time to get it right.) The non-native speaker's unskilled translation is akin to an AI schematic: seems plausible at first (and second) glance, but then you realize in horror that it's got fundamental problems that make it useless.

author: Nominal Animal
author_rank: Super Contributor
timestamp: August 18, 2025, 06:51:44 pm
content: Quote from: Stealthrt on August 18, 2025, 02:46:28 pmIt's not 50% correct, it's more like asking a nearby crack addict how to do linear algebra, and getting an answer that sounds like it could be true to someone who hasn't done any calculus. Remember, current AI's are just large language models: perfect imposters, designed and built to produceplausibleoutput without any understanding or logic or rational thought. Any "logic" the LLM peddlers claim their products have is at best a bolt-on solution, like having a buddy that has once seen a calculus handbook and will prod the crack addict if their output sounds iffy.(Some here believe I'm a Luddite for not jumping on the AI bandwagon. This is funny to me, because I actually know how these models work, and they don't. To me, the loudest proponents remind me of the radioactivity enthusiasts a century ago, with their radium health potions and so on. Sure, it's a heck of an invention — and I do like smoke detectors using radioactive Americium, and eat bananas with gusto even if they make a detector tick; and will train my own LLM models on my self-curated data when the hype has quietened down a bit — but it is not doing what the snake oil salesmen are claiming it does. Most people will look back and laugh at this in a decade or two, and the most hyping proponents will remember their part in the history differently than actually happened. It always happens when this kind of societally disruptive inventions occur.)Quote from: Stealthrt on August 18, 2025, 02:46:28 pmAh, so that is what the "Valentine One" referred to. Lessee... Ah, officialgithub.com/ValentineResearch/AndroidESPLibrary2containsSpecification/ESP Hardware Specification 1.0.pdf.These three PDF documents, from official Valentine Research sources, are the key in what you want to do:ESP Hardware specificationLegacy protocolESP protocolIn essence, what you want to do, is update the suggested schematics in the abovelinked PDFs to 3.3V logic (and UART and SPI peripherals).Starting with that would have been 10000000% better than asking an "AI", to be honest.Now, the legacy protocol is easiest to receive and send using SPI (MISO and MOSI), with clock set to 1985.94 Hz (or its multiples, in which case you get duplicates of each bit; the most interesting being around 15887.52 Hz, where each bit in the message is one full byte). SPI clock (SCK) or slave select (SS) signals are not used. The ESP protocol uses standard serial, 57600 baud, 8 data bits, no parity, 1 stop bit, no flow control.That means that on the ESP32-C3 Super Mini, I'd connect GPIO5 and GPIO20 as RX through 220Ohm resistors, GPIO6 and GPIO21 as TX through 220Ohm resistors, GPIO7 as TX enable, GPIO 4 as ESP/Legacy mode, and GPIO10 as MUTE. That leaves GPIO9/SCL, GPIO8/SDA, GPIO0/A0, GPIO1/A1, GPIO2/A2, and GPIO3/A3 unused — six digital I/O pins, including one I2C bus and four analog pins. Note that only the SPI (MOSI) or the UART (TX) should be enabled at the same time, as otherwise they're fighting against each other as I explained earlier. The 220Ohm resistors just act like safety cushions if that fighting happens.Scratch the above two paragraphs. The data rate in the legacy protocol is so slow it is better bit-banged (if you end up needing it at all) using a timer and syncing at every rising and falling edge instead. Even the ADC would be fast enough. Use UART in ESP mode, and bit-bang GPIO it in Legacy mode. Connect DATA to 2kOhm resistor to 220Ohm resistor to unidirectional voltage level translator with Schmitt trigger inputs to GPIO20 as RX. Connect GPIO21 as TX to an unidirectional voltage level translator with output enable controlled by GPIO10, output to 220Ohm resistor to the existing 2kOhm resistor which goes to DATA. Connect GPIO0 as ESP/Legacy mode, exact circuit to be discussed. Finally, use GPIO1 as MUTE. On the MUTE, the PDFs recommend adding a 10k resistor in series. In my suggested schematic, it'd be between Q1 and pin 5 of J1. That ensures that if something has pulled MUTE to +5V or higher, very little current is drawn anywhere when muting. I like it; it's safer that way.That leaves both I2C and SPI for future uses, plus two analog input capable GPIO pins (four, if you don't use SPI).There is no need to use an analog comparator for wakeup, as ESP32-C3 (and all modern MCUs) can wake up on pin change in RX (here, GPIO20).

author: Simon
author_rank: Unknown
timestamp: August 18, 2025, 07:04:57 pm
content: As someone who made a youtube video about builder.AI said, these days people are claiming to use AI just to keep up with the joneses marketing wise even when they are not:For some reason people think that any decision making in software is AI, they fail to realize that even they know that IF, THEN / ELSE is the most fundamental building block in programs, used to make decisions.

author: Nominal Animal
author_rank: Super Contributor
timestamp: August 23, 2025, 05:06:36 pm
content: I normally do not post in threads that mention AI, ChatGPT, or similar myself.Anyway, attached is the schematic I suggested above, in split-apart style. Some consider this horrible, but I find it easier to switch microcontroller pins this way. Note that there is only one pair of pin labels (except for voltage rails), so there should be absolutely no confusion.Top left, we have the 5V supply. The diode is for polarity protection. S1M-13-F is just a bog-standard rectifier diode from Diodes Inc. For at least the input capacitor C1, use one that is rated for say 50V, just in case there are voltage spikes on the 12V rail.Top right is the ESP32-C3 Super Mini board.Center left is the RJ11 connector. When you look into the female connector, with its contact on top, the pins are in numerical order from left to right. Usually there are just four pins, 2 to 5, so 2 is leftmost. In the schematic, I used a symbol that resembles the female RJ11 connector, when you look at it as if you yourself were the cable.Top center, we have the mute circuit. Always keep your MUTE pin as an output. When you set it high, the mute is active (pulled to ground through 10kOhm resistor). When you set it low, the AUDIO/MUTE signal is not affected.Bottom center, we have the DATA circuit. U3 is a TI TXU0101 voltage translator that is always enabled, converting from +5V logic levels to +3.3V as used on the ESP32-C3. U4 is another TXU0101, but note it is mirrored horizontally; it translates from 3.3V to 5V but only when TX_ENA is high. As suggested in the hardware documentation, there is a 2.2k series resistor in the data line.The top part of the DATA circuit, consisting of the bog-standard BJT NPN transistor Q2 and resistors R4, R5, R6, should form the Legacy/ESP mode pull-up to about 1.4V. I only adjusted the voltage divider from the 5V used in the hardware documentation to 3.3V, but haven't even simulated it to see if it works correctly. (NXP has aSPICE model for it.) MODE pin should always be an output. When low, the DATA is not affected. When high, DATA is pulled to 1.4V as needed by the legacy mode.In legacy mode, RX and TX pins should be in GPIO mode, RX an input and TX and output. In ESP mode, they should be in UART mode, at 57600 baud, 8 data bits, no parity, 1 stop bit, and TX_ENA should be low unless you are transmitting something. (Note that when transmitting, you should pull TX_ENA high, then send the data, and then check the ESP32 registers until all UART data has been sent: it has internal transmit buffers, you see. Only when the buffers are empty, pull TX_ENA back low.)

author: Stealthrt
author_rank: Regular Contributor
timestamp: August 24, 2025, 04:50:22 am
content: Thanks for drawing that out. I took some time and put it into my kicad:Ignore everything other than what you had laid out.

author: Simon
author_rank: Unknown
timestamp: August 24, 2025, 07:51:28 am
content: This reminds me of a now departed colleague who saw no value in schematic readability and just shit schematics out as a means to get to the PCB design. No pride in the design, development or documentation, just wanted to show off the result.Don't use the actual pins as a junction point, it looks sloppy and is inconsistent.Don't come off a pin at 90 degrees unless you really need to it looks sloppy and is inconsistent.Don't draw wires across symbols like they are an inconvenience, without that component you design won't work. Symbols have datasheet links attached, these are opened by hovering over the symbol and pressing "D" on the keyboard or using the right click menu, I don't know how well that works with wires all over it. You are putting all relevant information into the symbols?On your RJ11 input/output section you don't need to do that, put the two connectors facing each other with the wires connecting them, put the labels above or below and take vertical wires to them from the wires crossing between the connectors. Alternatively turn that all 90 degrees and your text labels will work better.The 3.3V section, I would move the ground symbol to be under the regulator ground wire like you did on the 5V.On the ESP section your labels are touching, if you wanted some separation you can pull every other one further out, or your symbol could have pins further apart. Normally 2x 1.27mm grid spacing is common, don't be afraid to put pins 3x 1.27mm squares apart. Schematic space is free and people rarely print these days, plus a cluttered schematic only begs to be printed bigger anyway.Your LED's lack connecting wires to their labels, but that reminds me. Do NOT place symbols so that they connect without wires, that is terrible, if you do that you effectively create a new symbol that people will not immediately recognize. Hovering over a symbol and pressing "G" will allow you to drag symbols with wires remaining attached, so a neat trick for speed especially with lots of parallel wires like those RJ11 connectors is to drop one symbol on the other so that the pins make a connection, then simply mouse over it and press "G" and pull the symbol away, voila' the connecting wire(s) appears by itself, very handy for say ground symbols but invaluable with parts that have larger wires. Learning the schematic tool is invaluable to editing your schematic on mass with ease instead of having to redraw things, but it takes creativity. I used to use kicad for wiring loom diagrams and learnt tricks to use it's tool to move and edit multiple wires at once or make significant changes without having to redraw it all.Something a bit more personal to me maybe, get rid of those silly boarders, use the whole space and spread things out a little to separate sections rather than put such harsh boxes round them, then the labelling will still be clear. Anyone reading the schematic should have sufficient understanding to not need the labels ring fencing the actual section, you enhance that by drawing things correctly and clearly, if someone has to ask which one the 3.3V regulator circuit is you probably made a mess of the 3.3V regulator layout of have some god awful symbol that no one will recognize.Oh and one last thing, DON'T download symbols off the internet! they are autogenerated garbage that won't help you and w2ill be missing the data YOU want in them for YOUR BOM, as an added annoyance you will have a ton of info in there that the company supplying these ai generated bits of crap wanted you to have to get you to order parts from who they want. Nothing is free on the internet even when it is.

author: tooki
author_rank: Super Contributor
timestamp: August 24, 2025, 05:21:01 pm
content: For what it’s worth, given how excruciatingly difficult it is to move existing components and wires in KiCad’s schematic editor without making a spider web of diagonal lines, I dosomewhatunderstand why people break things up and use ports/net labels to connect things. (Is the latest version any better finally?? I haven’t touched it for 2 years…)This is a rather egregious example, though.

author: Simon
author_rank: Unknown
timestamp: August 24, 2025, 05:30:33 pm
content: Well I find KiCad quite easy to use, as with any engineering tool you need to be smart enough to work out how to use the tools.

author: tooki
author_rank: Super Contributor
timestamp: August 24, 2025, 06:07:48 pm
content: Quote from: Simon on August 24, 2025, 05:30:33 pmThat misses my point: if doing something in a specific program is annoying, then people will tend to do things in ways that avoid the annoyance.Most EDA software at least makes an attempt to keep wires rectilinear when dragging components in a schematic. Unless they’ve finally fixed it, KiCad doesn’t do this, but instead leaves a mess of diagonal wires. You shouldn’tneedto find tricks to get around this, it should just work as expected.(Several years ago, some KiCad developer shared a video of a preliminary rectilinear dragging algorithm that actually worked really well, as it basically used a rudimentary autorouting algorithm to intelligently avoid making unwanted connections. But I suspect the feature is stuck in the “I’ll release it when it’s PERFECT!” mindset, ignoring the fact that what they have now is horrible, and that the preliminary demo was already better than any other EDA program’s rectilinear dragging. I would be delighted to be informed that my knowledge is out of date and they’ve actually rolled it out.)

author: Nominal Animal
author_rank: Super Contributor
timestamp: August 25, 2025, 03:11:21 pm
content: After simulating it a bit, I've found some more reasonable values for the MODE pull-up.To recap: It should be nominally 1.4V at one, and overpowerable by a couple of milliamps.You see, R21 (R6 in mine) sets the approximate maximum pull-up current, and R21=2.2k gives about 1.5mA or thereabouts. The nominal voltage is determined by the ratio of R22:R23. Their exact resistances don't matter much, but you'll want to keep their sum in the 10k to 200k range for BC847C. You could even use a 50k to 100k trimpot, supply 3.3V to MODE, load DATA down using one of two resistors (to 0V), and adjust the trimpot until both yield acceptable voltages.The DATA line is always loaded at least a tiny little bit, because anything measuring the line will havesomeinput leakage current. (We could make sure by adding say a 10 Mohm resistor between DATA and ground, corresponding to 140nA of input leakage current when it idles at 1.4V, adding 500nA = 0.5µA of current needed to pull it to 5V. In practice, we don't need to, because with physical wires and ICs in automotive use, some leakage is basically quaranteed. How much, I don't know exactly, because I'm just a hobbyist, but I assume 10 Mohm equivalent leakage is a reasonable start.)In my simulations, I ended up with R22=33k and R23=39k, which yields a pull-up of 1.43V at 10Mohm equivalent load.When no more than 100µA = 0.1mA is drawn from the data line, the pull-up can keep it at 1.2V (to 1.4V as load decreases). This is roughly equivalent to a 14k resistor between data and 0V.There is a sharp "knee" at 1.1V (900µA = 0.9mA load), after which the voltage falls extremely fast.At 1mA current draw, the voltage drops to 1V.At 1.5mA current draw, the voltage drops below 0.1V.This means that to pull the signal to ground, the other side needs to draw 1.5mA or more, or roughly equivalent to a 1k resistor between data and 0V.Thus, with R21=2.2k, R22=33k, R23=39k, the simulation indicates that the MODE pull-up suffices for up to 0.1mA "idle load", and will be completely overpowered by 1.5mA or higher load; this seems to match the technical requirements stated in the PDFs.Simulations are one thing, but practice is another.I've found that whenever I create a design, especially for one-offs, I end up twiddling some of the resistor values to get the voltage and current levels "just right" for that one unit.This means that when you go to Mouser/Digikey/LCSC/etc. with your Bill Of Materials (BOM),expectto need to vary the values a bit. Do not trust that you have everything you need, because at least I never do unless I anticipate some fiddling and twiddling of the values.As an example, in my schematic examples I've used Nexperia NX138AKR instead of BSS138, simply because I keep a strip of hundred or so at hand (costs about 8€), it's slightly faster than BSS138 to switch, but otherwise a jellybean replacement. It is SOT23-3 package, meaning small but hand-solderable, with 1.9mm between the two legs on the same side. Similarly, I have a strip of BC847C,215 (NPN BJT) and BC857C,215 (PNP BJT) at hand. For 100nF, 1µF and 10µF X7R ceramic capacitors, I always get the 50V ones, so I don't need to worry about the voltage derating. (Which reminds me: don't use a 6.5V cap on a 5V input! Use at least a 16V rated one, because running at DC close to the rated voltage its effective capacitance will be very low, not the 10µA you expect.)Dave'sµSleeves are an excellent way to store these SMD component strips, by the way.In my own orders, I always throw in these "jellybean parts" to keep at hand. Even a strip of 20 oddish-value resistors can be a lifesaver, and won't cost much. Because I play with microcontrollers rather than analog circuits, I also have various TXU0n0munidirectional level translators at hand for UART and SPIreliably, some 74LVC1T45/74LXC1T45 dual-supply single translators with a direction bit, and so on. I find 0603 hand-solderable (for both resistors and capacitors, although larger capacitors only come in 0805 and larger packages), and prefer SOT23 for the '1T45, because in a pinch, I can solder it directly to wires and just cover it with heatshrink, to make a quick (but good) dual-supply single-line voltage level translator. (It's very useful in e.g. sniffing data buses using a microcontroller, especially when the logic voltage levels are something wonky like 2.7V or similar. And it has enough drive strength to drive a LED with a current-limiting resistor on the output, to see if there is activity. LXC is just TI's name for LVC logic with Schmitt trigger inputs; other manufacturers tend to use LVC for those too.)Quote from: tooki on August 24, 2025, 05:21:01 pmYes, I think so, very much; I'm now on 9.0.2, and feel comfortable. I'm still faster/more efficient when using online EasyEda (Standard), though.The reason I used labels and not wires in my suggestion, is simply because at PCB design time, I almost always end up shuffling which I/O pins I use for what purpose. The MCUs I use tend to have multiple options, so it just isn't sensible to make that decision at schematic design phase: the end result is better, if I know I can still change which I/O pins I use if it makes more sense when creating the PCBs.I do not like fully split apart designs like Stealthrt's reply #19. The way separate parts interactwillcause a bug at some point. While I do use labels, I do not let separate parts interact; each separate part must be a "module", self-contained, and it must be clear how it interacts with other parts. In my own one in reply #18, you'll see that except for the voltage rails (+12V, +5V, +3.3V, 0V), there are exactly two of each labels on the schematic. There is no risk of confusion or interaction between separately-drawn parts (except perhaps via ripple and noise on the voltage rails and such).Here, the problem is easiest to see with DATA, MODE, and RX/TX to ESP32. From the RJ11 connector, on the DATA line, the first one should be the emitter of Q1, then the 2.2k resistor in series, and then the level translators. Indeed, Stealthrt's schematic above does do it this way, because the first segment, before the resistor, is "V1_DATA", and the second segment, after the resistor, is "TO_V1_DATA". You'll see it easily now that I've pointed it out, but give it a couple of months, and even Stealthrt will have forgotten that detail, so any modification to the existing schematic is likely to create a problem. I don't like that at all, I want schematics (as well as computer program source code!) to bemaintainable, not just one-shot thrown at the wall with the bits that stuck scraped and packaged.It is unfortunate that the discussion on good, maintainable, useful schematic style guidance for us hobbyists has degraded into "how horrible" even here at EEVblog forums. It would be more useful to look at the exact use cases, ignoring ones own intuitive preferences and habits, to pick out the good, and show how the bad will bite oneself sooner or later. Just telling hobbyists using MCUs to connect everything with wires isn't sensible, because that makes swapping I/O pins at PCB design time an annoying and irritating task, leading to worse designs than one is actually capable of because the tooling fights you instead of helping you. Labels and separation can be useful, but is a loaded footgun, too.I'vewrittenhere in the Beginners section something about efficient and working communications styles in technical forums like this one, but just don't have enough experience myself to even start something similar regarding schematic diagram design. 😢

author: Doctorandus_P
author_rank: Super Contributor
timestamp: August 25, 2025, 03:23:50 pm
content: Quote from: tooki on August 24, 2025, 06:07:48 pmKiCad has had rectilinear wires in the schematic editor since the dark ages. (Before KiCad V4, when they used Bazaar numbers). I had to go searching though the preferences to get it to draw a wire anything else then rectilinear (even when dragging). The setting is in:Schematic Editor / Preferences / Preferences / Schematic Editor / Editing / Line drawing modeIt can be either 90 degree, 45 degree or Free Angle.And before you complain: You can also assign hotkeys to these functions for fast switching. KiCad has a lot of functions which can be assigned to a hotkey, but do not have any hotkey by default. There are many more functions then there are keys on your keyboard.

author: Doctorandus_P
author_rank: Super Contributor
timestamp: August 25, 2025, 03:26:52 pm
content: Quote from: Simon on August 17, 2025, 01:34:47 pmI do believe it's a valid point. It's like missing half (or more) of the conversation. This leads to extra work for people answering questions, as very similar answers are likely posted on (multiple?) different forums. To me it is an indication of lack of respect (for the time and effort of others) from the person posting the question.And that also fits with using an AI to generate a faulty schematic and then dumping the garbage on a forum to let others solve it. There some inventiveness in the amount of laziness.

author: tooki
author_rank: Super Contributor
timestamp: August 25, 2025, 05:19:44 pm
content: Quote from: Doctorandus_P on August 25, 2025, 03:23:50 pmI know you candrawrectilinear wires in the schematic.But I wasn't talking about drawing, but what happens to wires when youdrag a component.

author: tooki
author_rank: Super Contributor
timestamp: August 25, 2025, 05:32:33 pm
content: FYI, I just checked the KiCad 7 installed on my work computer, and it seems to have rectilinear dragging. So evidently they did add it eventually!

author: Nominal Animal
author_rank: Super Contributor
timestamp: August 25, 2025, 07:12:18 pm
content: Quote from: tooki on August 25, 2025, 05:32:33 pmAh,nowI understood what you meant!Yes, dragging elements in Kicad Schematic editor does not generate skew lines, they stay axis-aligned. You can even "push" and pull lines perpendicularly, to move where it goes, and it will guess where to add the corners. It doesn't always get them right, but well enough. Kicad 9 seems quite stable in my use, too.One thing I've found is that Kicad is one of those applications where one must spend some time to configure it to ones' own liking. It does still have a few UI kinks to iron out, too. One that irks me in the Schematic editor is that if you select something, then double-click something else, you get the properties of the selected item and not the item you double-clicked. It is obvious that the UI was created by people who use keyboard shortcuts for everything, with mouse/touchpad just a pointing device and not a manipulation device; the entire select + apply-tool logic in it feels wonky to me.

author: Nominal Animal
author_rank: Super Contributor
timestamp: August 25, 2025, 07:38:06 pm
content: Quote from: Doctorandus_P on August 25, 2025, 03:26:52 pmTrue, but I do not believe this is the case with OP (Stealthrt) here: they are just verynewto both the hobby, and possibly to effectively interacting on a highly technical forum.The rules here are completely different than in social media, or when chatting with a coworker on a break. The first rule is to spend some effort first, to show that the asker values answerer's time, and is not just looking for an easy answer; and is willing to do the work to learn. In real life, our bodies communicate frustration, uncertainty, hesitation, angst etc. extremely well, but online those do not convey at all. Most humans instinctively rely on such cues when interacting with others. In highly technical discussions, emotions just come in the way of interaction and understanding, so are best tuned down as much as possible — although politeness, in things like followup ("I ended up doingX, which worked except forY, ..."), is highly useful. Also, admitting to ones own errors is not a sign of weakness, but of willingness to learn and not lead others astray (as these threads are easily found via web searches and read by many more people than actually participate in it). I personally highly distrust people who never admit to an error: who knows what kind of monstrous errors they're hiding.In the same vein,Iknow that everyone who posted in this thread would love for new hobbyists creating schematics to just do better; for OP to not fall into the most common traps for young players, as Dave might say. Some are frustrated at the now-common error of splitting schematics into too small, confusingly interacting pieces, and rail againstthat. It isn't personal — and I say that as someone having recently been barraged by the same complaints! It is not about persons or personalities: it is about the stuff we do, not about who we are. I'd also say some go too far, and demand labels are to be limited to very large and complicated schematics, but I suspect they just haven't done the kind of microcontrollery stuff where they really help when you have the schematic almost ready and are creating the PCB — if you are careful, that is. All that is okay, no reason to get miffed or disappointed. The breadth of the discussion helps see all possibilities and the thing from different angles and viewpoints. It's all good, really.

author: Simon
author_rank: Unknown
timestamp: August 26, 2025, 07:46:54 am
content: Quote from: Doctorandus_P on August 25, 2025, 03:26:52 pmWe can only moderate within the dominion of this forum. We have nothing to do with other forums. It's complicated enough on the one forum alone when someone double posts. I think it is reasonable to expect that other forums have different people on them. Sure there will be some cross over but does every member have time to be very active on several forums? It's evident that the OP has a lazy approach to the subject, so just take that as your indicator of whether or not you want to help.I mean, what do you want us to do if someone posts on another forum as well? delete the topic here? so lets just close this forum then?

author: MK14
author_rank: Super Contributor
timestamp: August 26, 2025, 08:19:09 am
content: Quote from: Simon on August 26, 2025, 07:46:54 amI basically see what you mean here, and it sounds reasonable.But, (not the case here/OP), what if the same thread appears on ten, twenty or even hundreds of other forums. It would be very likely to be SPAM.If the same thread appears, on the occasional other forum, spaced perhaps 6 weeks apart. E.g. Because the other thread, from a few months ago, ended up getting no replies.Then that can be perfectly reasonable. But even in that case, it may be polite, to mention it.But if someone persistently starts up identical threads at almost the same time, with identical content, on (e.g. four different) forums. That doesn't sound right/fair/reasonable.But I agree with you. Unless it is outright related to SPAM/Trolling etc. The boundaries of this forum, are the limit for most/all moderation on this forum.

author: Nominal Animal
author_rank: Super Contributor
timestamp: August 31, 2025, 06:13:02 pm
content: I just wanted to note that@Stealthrtdefinitely wasn't here to have others do their work for them, they just had a wobbly/unfortunate start to a new ESP32 project.We've been discussing over PMs the details and options in this schematic, from other ESP32 variants, power supply options and circuits, and even how to prevent backfeeding to USB when getting powered by the car battery (I recommended TI LM66200). For each suggestion, they've implemented the changes to their own schematic, for about a dozen revisions by now.(I did redraw mine in KiCad 9, but more to posthereso I could find out more about how todo it better, with the KiCad 9 projectavailable zipped here. Stealthrt is doing their own project, not using mine.)I don't think such missteps can be helped; they will occasionally happen, and we can only fix what we can, and then go on. I just wanted to set the record straight, so this won't negatively affect any future threads or interactions.