Received: from PCH.mit.edu (18.7.21.50) by mail.efplus.com (192.168.0.8) with Microsoft SMTP Server (TLS) id 8.3.485.1; Fri, 17 Jan 2020 11:55:00 -0800 Received: from PCH.MIT.EDU (localhost.localdomain [127.0.0.1]) by PCH.mit.edu (8.14.7/8.12.8) with ESMTP id 00HJi2n1022014; Fri, 17 Jan 2020 14:46:11 -0500 Received: from outgoing-exchange-7.mit.edu (OUTGOING-EXCHANGE-7.MIT.EDU [18.9.28.58]) by PCH.mit.edu (8.14.7/8.12.8) with ESMTP id 00HJi0rN022002 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 17 Jan 2020 14:44:00 -0500 Received: from w92exedge4.exchange.mit.edu (W92EXEDGE4.EXCHANGE.MIT.EDU [18.7.73.16]) by outgoing-exchange-7.mit.edu (8.14.7/8.12.4) with ESMTP id 00HJhlxa031049 for ; Fri, 17 Jan 2020 14:43:53 -0500 Received: from w92exhyb2.exchange.mit.edu (18.7.71.32) by w92exedge4.exchange.mit.edu (18.7.73.16) with Microsoft SMTP Server (TLS) id 15.0.1293.2; Fri, 17 Jan 2020 14:41:20 -0500 Received: from oc11exhyb5.exchange.mit.edu (18.9.1.110) by w92exhyb2.exchange.mit.edu (18.7.71.32) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Fri, 17 Jan 2020 14:43:37 -0500 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.168) by oc11exhyb5.exchange.mit.edu (18.9.1.110) with Microsoft SMTP Server (TLS) id 15.0.1395.4 via Frontend Transport; Fri, 17 Jan 2020 14:43:37 -0500 Received: from BYAPR01CA0064.prod.exchangelabs.com (2603:10b6:a03:94::41) by MN2PR01MB5374.prod.exchangelabs.com (2603:10b6:208:10d::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2644.23; Fri, 17 Jan 2020 19:43:35 +0000 Received: from DM3NAM03FT060.eop-NAM03.prod.protection.outlook.com (2a01:111:f400:7e49::200) by BYAPR01CA0064.outlook.office365.com (2603:10b6:a03:94::41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2644.20 via Frontend Transport; Fri, 17 Jan 2020 19:43:35 +0000 Received: from mail-ed1-f49.google.com (209.85.208.49) by DM3NAM03FT060.mail.protection.outlook.com (10.152.83.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2644.19 via Frontend Transport; Fri, 17 Jan 2020 19:43:34 +0000 Received: by mail-ed1-f49.google.com with SMTP id e10so23360769edv.9 for ; Fri, 17 Jan 2020 11:43:34 -0800 (PST) From: Sean Breheny To: Microcontroller discussion list - Public. Sender: "piclist-bounces@mit.edu" Date: Fri, 17 Jan 2020 11:43:21 -0800 Subject: Re: [EE]:: What do you wish you had known before you started with Electronics. Thread-Topic: [EE]:: What do you wish you had known before you started with Electronics. Thread-Index: AdXNcAEiFj0bXWAIS52aGzNZpgGXAA== Message-ID: References: List-Help: List-Subscribe: , List-Unsubscribe: , In-Reply-To: Reply-To: Microcontroller discussion list - Public. Accept-Language: en-US X-MS-Exchange-Organization-AuthAs: Anonymous X-MS-Exchange-Organization-AuthSource: TS500.efplus4.local X-MS-Has-Attach: X-Auto-Response-Suppress: All X-MS-Exchange-Organization-SenderIdResult: Pass X-MS-Exchange-Organization-PRD: mit.edu X-MS-TNEF-Correlator: received-spf: Pass (protection.outlook.com: domain of gmail.com designates 209.85.208.49 as permitted sender) receiver=protection.outlook.com; client-ip=209.85.208.49; helo=mail-ed1-f49.google.com; dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cornell.edu; s=g.20171207; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=ReDJ12iWW/80LSvxFvB8Cg+cEl/zgEiW+AFdatDnreY=; b=kTziBUe8b+WOK1Ek5NXTDdNN4FtKyF5HsKR1s7pFXzZIqaWKWmFhn9Sx6Nyixsiueh k0qAEVcRIYrKrU7vY53jdLxAU1VrUMJjoQST/wVwppkdRQm3mFPRiJhmKtFiCdkxjhRE 6Rqc0PnKBZa+tX7h4oP6oeuyX1UqvsbwJ9FK0SkLQTxeTe4A3zCqcPqvVS5ZmS+IBZme LfwHztO4ObptzhypC+K19PAxaZBq/1z/AKK4XhpMueyOAIuGFuJFooQs+nVIP9sAFU6n 9EZQSRhs9CdvUWImAuSOs2Z/NK6yx36yrCbUu0NYIMjrfDQNuGUVHVeHBvZqohJ2nUCb CQxQ== authentication-results: spf=pass (sender IP is 209.85.208.49) smtp.mailfrom=gmail.com; mit.edu; dkim=pass (signature was verified) header.d=cornell.edu;mit.edu; dmarc=pass action=none header.from=cornell.edu;compauth=pass reason=100 errors-to: piclist-bounces@mit.edu list-id: "Microcontroller discussion list - Public." list-post: x-beenthere: piclist@mit.edu x-mailman-version: 2.1.6 x-received: by 2002:a17:906:d935:: with SMTP id rn21mr9396663ejb.147.1579290213219; Fri, 17 Jan 2020 11:43:33 -0800 (PST) x-topics: [EE] x-content-filtered-by: Mailman/MimeDel 2.1.6 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 I've had much better luck with hot glue than Russell ;) I use certain higher-quality (supposedly) glue sticks which melt at a higher temp and have a very distinctive odor (I don't have the brand handy). If I am bonding to plastic or wood and the surfaces are clean, I have some projects which have used it 10 years ago and are still holding fine. Used only for moderately structural stuff at no more than maybe 2 psi (7kPa) tension or shear - no strong "peeling" moments. On Thu, Jan 16, 2020, 4:28 PM RussellMc We have had discussions like this long ago (I think). > I'll post this and see if there is any interest in an updated ramble. It > might lead to a worthwhile summary. Or not. TBD. > > In January 2012 I answered a Stack Exchange question "What do you wish yo= u > had known before you started with Microcontrollers?" > My answer was intentionally more along the line of "What do you wish you > had known before you started with Electronics." > > For reasons disparate the Q&A was locked long ago, which I think is a > shame, as the subject is useful. > My now locked answer is here: > https://electronics.stackexchange.com/a/25294/3288 > I've copy & pasted my answer below. Formatting has been 'altered'. > > Lines [in square brackets] have been added just now. > > Much more could be said :-). > > Russell > > _____________________________________________________ > > RS232 is upside down > > [Logic 0 is negative wrt ground] > > Most of everything you will have problems with will be caused by "boundar= y > conditions" - stuff that happens as things get going or start stopping. > > Always initialise your variables. ALWAYS. > And your interrupt vectors. > > Little endian. > Big endian. > High/low byte first. > Left adjust N bits. > > Flags left still set when work is done (eg IRQ flags). > > Stack overf > ck underflow. > > RTS versus RTI > > Watchdog what ? > > Simple interrupt driven timer real time round robin scheduler that looks > like a full RTOS but can be understood and written as you go. Trivial and > amazing. > > Microcontroller pin specs - Vout / Iout relationships. Vin limits. Holdin= g > pins near mid rail. > > Always define all pin states under all conditions. > > Thermal resistance. > > NEVER let a body diode conduct (or mayhap a few uA if you really really > must) that your life shall be long on the face of the land - even when th= e > great satans come and tell you it will be alright and that you CAN safely > use them for input clamping. > [Even when eg Microchip application notes use body diodes for clamping hi= gh > high impedance mains inputs, believe them you musn't. Court the dark side > do not] > > Absolute parameters and operating parameters in data sheets mean totally > different things and must NEVER be used interchangeably (or at least not > the former for the latter) that your days may be long ... etc. > ["Typical minimum" does NOT mean "minimum" allowable and may mean differe= nt > things in different cases. > eg LM741 [RIP] typical min operating voltage is shown as +/-12V. It can > legitimately be run on loweer without violating specifications. How much > lower may be hard to tell] > > V =3D I x R. The V doesn't happen if the I isn't happening so drawing > conclusions re V without I is pointless, or worse. > > Hex Schmitt inverters !!!! God's gift to DIY digital AND analog > electronics. (74xx14, CD40106, ...). > > CMOS logic !!! > > Opamp common mode range. > > Opamp output headroom - high and low. > > [Opamp Vout drives to "almost ground" - implications, solutions, problems= , > ...] > > Voltage regulator dropout - ON TOP OF Vout min. > > Voltage regulator Iout min when relevant. > > Lead acid battery sulfation. Don't let it !!! > [V_bat-la >=3D 12.6V ALWAYS] > > The utter magic of LiIon batteries, despite their drawbacks. > > The utter nasty chicaneries of NimH batteries, despite their nicenesses. > > [The benign loveliness of LiFePO4, mostly.] > > [Battery chemistry-very-variable temperature limits, high and low, charge > and discharge, performance when near limits, work arounds, do not work > arounds]. > > LSD NimH (no, not lysergic ...) > > Adjustable current limit adjustable voltage power supplies for prototype > life maintenance. > > MOSFETS !!!!!!!!!!!!!!!!!!! Yee ha > > Low Vgsth MOFETS and digital electronics and large loads. Yee Ha. > > MOSFET, 2-jellybean-transistor gate drivers. > Why you NEED a gate driver. > > Tantalum capacitors die die die !!! (and they do) > > Input leakage current. What's that? > Input off what ? > > Accuracy / resolution / linearity / monotonicity / ... > > Isochronous. > Asynchronous? > No, Isochronous. > > [Clock stability crystal / ceramic / RC / ...] > [Aging. Worst case. Across range. Cumulative. ...] > > Asynchronous. 1 bit, 2 bit, 1.5 bit, more. > LSB first!. First? YES! Start bit, stop bit, parity bit, forced parity, n= o > parity, do you know if parity is on? > Bit sampling - middle of bit, samples per bit. > [Accuracy with RC - absolute error per end, shared drift (temperature), > resonator, crystal internal clock - old one and new.] > Always more !!! > > Crystals shatter on high g./ Or just drift and jump. > Or shatter. > [Crystals shatter on high drive. Not so much an issue with IC driven cloc= k > circuits.] > > Hot melt glue fails. Always. Always ? *Always *! Weeks to months to just > maybe years. > [If you MUST use hot-melt glue with aims of long term retention, it MUST = be > mechanically locked through holes or slots s that when the bond fails the > part is retained. This is a very poor system - but the best you can > manage]. > > Acid cure silicone rubber is a no no no no. > [Neutral cure SR - very very useful] > [AlkOxy "neutral cure] is cheaper than full neutral cure but is corrosive > to bare copper (but not much else]. > Thermally or electrically conductive epoxy is filled with X - you can fil= l > it too. > > Silicone rubber and cornflower say 50-50 to start. Try it, you'll like it= .. > > Heating a large pottle of fibreglass resin on a cold morning may make it = go > off faster but THAT fast ??? !!!! > > Tin whiskers. > > If they say ROHS their magic machine will spot your non compliance > instantly. > > Learn to solder. Well. > Note that solderability can vary very very greatly. > Bad solder is a waste of calories and not worth sharing your life with. > ALWAYS clean / abrade a bare board that has sat around a while before > soldering - time and stress saved can be monumental. > Learn to NOT catch falling soldering irons. > Learn to kick falling soldering irons while grabbing their cords, if they > have one. > Learn not to drop soldering irons. > > Nd2Fe14B (and similar "rare earth") magnets are great fun BUT - > They can do you a very serious injury. > A good one can take out a wallet of magnetic cards at a single bound. The= y > shatter chip and break with ease. > The US process ones are significantly inferior in field strength to the > Japanese process ones. > Provide up to about 0.5 Tesla across an airgap of about half material > thickness. > Magnetic field drops as inverse SQUARE of distance from one pole but two > poles are always involved so it looks like 1/d^3 at a distance. > [They corrode with time - fast enough to merit providing some sort of > conformal coating in environmentally adverse conditions. This is probably > usually due to breaks in the plated surface. Handle accordingly.] > > Much more ... :-) > -- > http://www.piclist.com/techref/piclist PIC/SX FAQ & list archive > View/change your membership options at > http://mailman.mit.edu/mailman/listinfo/piclist > --=20 http://www.piclist.com/techref/piclist PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist .