Eerste PCB ontwerpen: waar op te letten?

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Atomstar
  • Registratie: Juli 2002
  • Laatst online: 07-05 12:00
Mijn vraag: Ik wil een PCB laten maken voor mijn esp8266-aangedreven sensor-bordje. Waar moet ik op letten?

TL;DR: hier het verbeterde ontwerp, hier het fysieke eindresultaat, hier helaas nog steeds problemen met self-heating (waarschijnlijk door ESP8266, USB-serial, CO2 sensor).

Specifieke vragen:
  1. Ik wil de ESP8266 (Wemos in dit geval) voeden op de 5V en GND pin ipv de USB connector, werkt dit ook, of sla ik dan een voltage regulator over oid?
  2. Ik wil de PCB bij Aisler bestellen om enigszins beperkte levertijd te hebben, zijn er nog alternatieven?
  3. Hoe kan ik opwarming van de temperatuursensor door de ESP SoC voorkomen?
Wat ik al gevonden of geprobeerd heb
Ik heb al een aantal ESP8266 bordjes met sensoren gemaakt (temp/CO2), en wil deze nu op een PCB aan elkaar koppelen om de snoerbrij te verminderen en het geheel compacter te maken. Omdat ik nog niet eerder een PCB heb (laten) maken vraag ik me af of ik iets over het hoofd zie :)

In eerder ontwerp had ik last van opwarming van de temperatuursensor waardoor deze een 2-3 graden te hoge waarde rapporteert, dit PCB ontwerp is wat luchtiger en hopelijk daarom minder warm. Verder heb ik de temperatuursensor onderaan geplaatst om verse lucht te meten (warme lucht gaat naar boven). Helaas kan ik niet makkelijk een deep sleep / wake cycle gebruiken om de opwarming te verminderen, omdat de CO2-sensor een 3 minuten opwarm tijd heeft, en ik minimaal eens per 5 minuten wil meten.

PCB ontwerp
Ik gebruik de volgende componenten:
  1. Wemos D1 mini - als aansturing
  2. 1.3" I2C Oled display - als display
  3. MH-Z19B CO2 sensor - uit te lezen via serial
  4. BME280 module met level converter - voor T/P/RH, met level converter om op 5V te voeden
  5. DS18B20 - als backup/tweede thermometer
  6. 4.7kOhm weerstand - pull-up voor DS18B20
  7. Micro USB dip adapter - voor flexibelere plaatsing van voeding over USB poort
  8. Headers male straight & male 90 graden - voor mountain van onderdelen.
Ik heb in Fritzing het volgende ontwerp gemaakt (hier het bronbestand): Afbeeldingslocatie: https://tweakers.net/i/Hg17QaszLDjM9JtzIjwnbRSImp8=/800x/filters:strip_exif()/f/image/SWdLLIEIXMvDBJilBO5RF19X.png?f=fotoalbum_large

en daar de volgende PCB uit ontworpen:
Afbeeldingslocatie: https://tweakers.net/i/xgvZvSOWt0GrAWapY0xlprbwLws=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/ublRqX2bO7K63h37nf8BuCiX.png?f=user_large

Overwegingen:
  • De MH-Z19B CO2 sensor stuur ik aan met software-seriële poort om de hardwarepoort vrij te houden voor USB.
  • Beide temperatuursensoren zijn onderaan gemonteerd
  • De traces naar de BME280 temp sensor zijn langer gemaakt om warmtegeleiding van de ESP SOC te verminderen
  • Ik heb een extra USB pin header toegevoegd om de USB-voeding aan de onderkant te monteren
Softwareaansturing
Het geheel wil ik aansturen met esphome, ongeveer met de configuratie in bovenstaand blog.

[ Voor 26% gewijzigd door Atomstar op 27-12-2020 19:21 . Reden: BOM toegevoegd, links naar eindresultaat toegevoegd, formatting ]

Beste antwoord (via Atomstar op 03-12-2020 21:31)


  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 09:19

Septillion

Moderator Wonen & Mobiliteit
1) Grootste tip die ik je mee kan geven als je dit vaker wilt doen, ga netter werken ;) Toegeven, Fritzing maakt het niet makkelijk. Niet voor niet dat meeste met iets meer ervaring gewoon een hekel hebben aan Fritzing diagrammen. Fouten tijdens het ontwerp ontdekken is zo hopeloos op te ondekken. Dit simpele schema kost gewoon al veel tijd. En als je straks misschien moet debuggen is dit ook hel. Dus volledig eens met @Sine!

3. / 2) In open lucht zal je amper last hebben van opwarming van je sensor als je deze niet strak tegen een andere sensor plakt. Waggel spoortjes zijn dus nergens voor nodig. En plaats je het geheel in een doosje (of dek je het anders af) ben je zelfs met afstand hopeloos verloren ;) Alles zal gewoon opwarmen.

3) Yep, ik zou de antenne over de rand laten hangen.

1. / 4) / 5) @Sine Omdat de Wemos deze al heeft :) Dus dat snap ik wel. Maar wat extra buffer kan nooit kwaad. Ook al gebruikt TS voor ESP en BMP al modules met ontkoppeling etc.

Maar ook voeden via de 5V lijn gaat prima. Maar daar zie ik in je ontwerp niets voor. Ah, dat is de header onderaan. Waarom een 5 polige header? Is een header wel handig, waarom geen USB plug of schroefklemmen?

2. Ik heb geen ervaring met Aisler. Zelf vind ik twee/drie weken nooit zo erg (ook al zou het zo rond kerst wat meer kunnen zijn).

En nog dingen die me opvallen:

7) Waarom niet simpelweg Serial1 gebruiken voor de CO sensor? Handig toch, twee hardware serial interfaces ;)

`8) Al je rand devices zijn 5V, let erop dat deze de data lijnen niet nar 5V mogen trekken. Voor de I2C devices betekend dit dat ze geen pull up mogen hebben naar de 5V. Plaats vervolgens deze pull up op je eigen board naar de 3v3.

Voor de MH-Z19B heb je de mazzel dat deze de communicatie al op 3v3 heeft liggen en voor de DS18B20 dat deze open drain is. Maar dan mag deze NIET met een pull naar de 5V. Makkelijkste oplosing: hele weerstand van je bord af en de interne pull up weerstanden van de ESP gebruiken.

Alle reacties


Acties:
  • +2 Henk 'm!

  • Fordox
  • Registratie: Maart 2011
  • Laatst online: 06-06 12:04

Fordox

00101010

Ik wil de ESP8266 (Wemos in dit geval) voeden op de 5V en GND pin ipv de USB connector, werkt dit ook, of sla ik dan een voltage regulator over oid?
Ja dat zal wel werken.
Ik wil de PCB bij Aisler bestellen om enigszins beperkte levertijd te hebben, zijn er nog alternatieven?
Er zijn wel wat chinese webshops die dit prima en goedkoop doen, ander kun je ook kijken bij bijvoorbeeld Eurocircuits, al is dat niet goedkoop en misschien een beetje een kanon voor een klein ontwerp. Eurocircuits heeft wel een lijst met hele chille PCB design rules.
Hoe kan ik opwarming van de temperatuursensor door de ESP SoC voorkomen?
Misschien door een koelelement op de ESP te plakken zodat deze ergens anders zn warmte kwijt kan, en dan je sensor op het bord zo ver mogelijk van de ESP weg te halen. Verder zijn copper planes leuk voor je design, die werken ook als een thermische massa voor je printplaat. Die wil je ook aan de 0 hebben aangesloten. Je wil eigenlijk zo min mogelijk koper weghalen in je print design (behalve in de buurt van je antenne).

Je printplaat ziet er eerlijk gezegd een beetje uit als een puinhoop :p Veel zigzag-lijnen en willekeurige hoeken. Ik ben niet bekend met je PCB design programma (misschien is cadsoft Eagle een beter alternatief). Je wil zoveel mogelijk 45 graden hoeken gebruiken in je traces om je ontwerp overzichtelijk te houden en het de printplaatfabrikant makkelijk te maken.
Verder zie ik ook geen enkele vorm van filtering bij je sensoren. Opzich geen probleem voor een hobbyprojectje maar het kan storen veroorzaken en opvangen, een paar SMD capaciteitjes voor je voedingslijnen zal al wat uitmaken.
Als je wil weten welke values handig zijn en waar je ze moet plaatsen, volg dan de datasheet van het component dat je gebruikt (zoals de BME sensor). De datasheets hebben vaak een 'recommended layout design' of een 'typical application' of iets in die geest.
Bijvoorbeeld https://www.bosch-sensort...eets/bst-bme280-ds002.pdf op pagina 39. Het kan zijn dat het sensorbordje al wordt verkocht met deze componentjes erop (waarschijnlijk wel), maar dat zal je even moeten checken.
Sowieso is het handig om een capaciteitje te plaatsen vlakbij elke sensor in de voedingslijn. Dus vlak voordat de 5V in je sensor gaat, een C plaatsen van een aantal uF met de andere kant aan de 0.

Paar simpele tips over routing van traces:
- Zie elektriciteit een beetje als een waterleiding. Veel bochten, dunne slangen en lange lengte brengt weerstand met zich mee, wat je zoveel mogelijk wil vermeiden.
- Alle draden met een signaal wil je zo min mogelijk in de buurt van je sensoren hebben. Vermeid dus om traces te trekken onder je sensoren door.
- Signalen hebben altijd voorrang voor een kortere trace t.o.v. DC voeding
- Zorg ervoor dat je stroompad van je voeding (van + naar -) geen lus maakt (dat is al gauw te verhelpen met een groundplane), en dat je je signaallijnen (SPI, I2C) per sensor naast elkaar laat lopen. Dus je MOSI en MISO lijnen bijvoorbeeld mooi in een paar laten lopen, en niet helemaal als een lus links en rechts over de printplaat. Je wil ook niet dat de signaallijnen van een sensor te dicht langs een ander signaallijn van een andere sensor loopt.

Succes :)

Edit: Ik gebruik de edit-knop vaak.


Acties:
  • +1 Henk 'm!

  • Sine
  • Registratie: Juni 2001
  • Nu online
1. AAARGH Fritzing! (friends don't let friends use fritzing) zeker niet voor PCB ontwerp.
Als je in de toekomst meer pcb's wilt gaan bakken kijk dan eens naar https://gitlab.com/kicad/code/kicad

2. Je waggel spoortjes gaan niet heel veel doen als je de sensor zo dicht bij de ESP plakt.

3. Zorg dat de antenne van je ESP zo vrij mogelijk staat.

4. als je het ding USB gaat voeden, waarom dan geen USB connector op het bordje?

5. Zorg voor stevige spoortjes voor je voeding (die ESP heeft een nogal "spiky" verbruik) ook een ontkoppel C-tje zou niet heel verkeerd zijn.

6. Die BME280 is in 1e instantie een luchtdruk sensor, het temperatuurcomponent ervan is bonus, die DS18B20 doet dat een stuk beter ( als je daar tenminste geen Chinees cloontje voor gebruikt )

[ Voor 32% gewijzigd door Sine op 30-11-2020 08:32 ]

Repareren doe je zo.


Acties:
  • Beste antwoord
  • +2 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 09:19

Septillion

Moderator Wonen & Mobiliteit
1) Grootste tip die ik je mee kan geven als je dit vaker wilt doen, ga netter werken ;) Toegeven, Fritzing maakt het niet makkelijk. Niet voor niet dat meeste met iets meer ervaring gewoon een hekel hebben aan Fritzing diagrammen. Fouten tijdens het ontwerp ontdekken is zo hopeloos op te ondekken. Dit simpele schema kost gewoon al veel tijd. En als je straks misschien moet debuggen is dit ook hel. Dus volledig eens met @Sine!

3. / 2) In open lucht zal je amper last hebben van opwarming van je sensor als je deze niet strak tegen een andere sensor plakt. Waggel spoortjes zijn dus nergens voor nodig. En plaats je het geheel in een doosje (of dek je het anders af) ben je zelfs met afstand hopeloos verloren ;) Alles zal gewoon opwarmen.

3) Yep, ik zou de antenne over de rand laten hangen.

1. / 4) / 5) @Sine Omdat de Wemos deze al heeft :) Dus dat snap ik wel. Maar wat extra buffer kan nooit kwaad. Ook al gebruikt TS voor ESP en BMP al modules met ontkoppeling etc.

Maar ook voeden via de 5V lijn gaat prima. Maar daar zie ik in je ontwerp niets voor. Ah, dat is de header onderaan. Waarom een 5 polige header? Is een header wel handig, waarom geen USB plug of schroefklemmen?

2. Ik heb geen ervaring met Aisler. Zelf vind ik twee/drie weken nooit zo erg (ook al zou het zo rond kerst wat meer kunnen zijn).

En nog dingen die me opvallen:

7) Waarom niet simpelweg Serial1 gebruiken voor de CO sensor? Handig toch, twee hardware serial interfaces ;)

`8) Al je rand devices zijn 5V, let erop dat deze de data lijnen niet nar 5V mogen trekken. Voor de I2C devices betekend dit dat ze geen pull up mogen hebben naar de 5V. Plaats vervolgens deze pull up op je eigen board naar de 3v3.

Voor de MH-Z19B heb je de mazzel dat deze de communicatie al op 3v3 heeft liggen en voor de DS18B20 dat deze open drain is. Maar dan mag deze NIET met een pull naar de 5V. Makkelijkste oplosing: hele weerstand van je bord af en de interne pull up weerstanden van de ESP gebruiken.

Acties:
  • +1 Henk 'm!

  • SuperKris
  • Registratie: Juni 2010
  • Laatst online: 04-06 09:37
Recent ben ik zelf ook begonnen met PCB's ontwikkelen. Na wat research ben ik voor het ontwerp bij EasyEDA uitgekomen. Ik heb een aantal gratis paketten vergeleken waaronder ook Kicad en Fritzing. De pros gebuiken vaak Altium of Eagle, maar die zijn niet gratis.

De reden om voor EasyEDA te kiezen was voor mij simpel
- Goede en duidelijke interface. Het voelt modern aan werkt vlot.
- Thuis gebruik je een programma, maar alles wordt in de cloud opgeslagen en je kan overal via een browser de boel openen en bewerken.
- Zeer uitgebreide bibliotheek aan onderdelen. Je hebt de basis bibliotheek, de volledige LCSC.com bibliotheek, en ook een uitgebreide door users aangemaakte bibliotheek. Als je zelf een nieuw onderdeel aanmaakt komt deze ook in deze bibliotheek en kunnen andere users deze weer gebruiken. Dat zelf aanmaken van onderdelen gaat trouwens redelijk eenvoudig.

Het grootste nadeel van EasyEDA vind ik de simulatie (SPICE). Dit schijnt allemaal wel te kunnen, maar ik vindt het erg onprettig werken. Voor simulatie val ik dan meestal terug op Multisim of LTSPICE/TINA-TI voor specifieke onderdelen.

Er is echte nog een andere reden voor mij waarom EasyEDA een groot voordeel bied over andere EDA software. Het is onderdeel (of werk samen) met LCSC en JLCPCB. Dat betekend dat ik binnen 1 omgeving alles kan ontwerpen en doorsturen voor productie.

JLCPCB vindt ik sowieso al een hele goede PCB bakker. Alle youtube mannetjes worden hier ook door gesponsord maar het lijkt ook echt verreweg de goedkoopste te zijn. Mijn 3e PCB krijg ik vandaag binnen. Het is bizar hoe snel ze kunnen leveren voor die prijs, en de kwaliteit is tot nu toe super. Zeker met coupons is het gewoon belachelijk goedkoop en meestal zit er max 2 weken tussen bestellen en hier ontvangen (inclusief SMD).

Ze vragen een paar dollar voor prototypes, bijv. 5 of 10 stuks. Dat klinkt te mooi om waar te zijn, maar dat is het dus niet. Er komt nog wel een paar euro verzendkosten bij natuurlijk.

SMD assemblage kan je meteen ook maar het beste uitbesteden. Ook dit is belachelijk goedkoop, en ik heb nog geen enkele aanmerking op de kwaliteit. De componentkeuze is dan wel van belang. Ze doen alleen assemblage op componenten uit hun eigen bibliotheek. Daar heb je 2 categorieën:

- Basic components: Hierin staat wat je zou verwachten, weerstanden, condensatoren, en een basis assortimentje transistoren en IC's. Soms zit hier wel een MOQ aan. Een weerstandje van 0,1 cent of minder moet je er misschien wel 50 vanaf nemen. Als je er maar 5 nodig hebt betaal je dan wel de 50 stuks prijs. Dit is echter dan nog steeds maar 5 cent totaal dus goedkoper in kleine aantallen is onmogelijk.

- Extended components: Hier vind je een behoorlijk breed assortiment aan IC's en transistoren. Misschien niet die ene MOSFET van merk x, maar zeker wel 10 alternatieven van een ander merk met vergelijkbare specs. Per component uit de extended library betaal je echter iets van € 2,80 extra kosten voor het wisselen van de reel. Dat is per soort, dus als je 10 MOSFETs van een specifiek type nodig hebt, die 10 cent kosten, betaal je 10x0,10+2,80 = 3,80. Toch is dit vaak niet veel duurder dan als je deze bij een Europese webshop zou bestellen.

Om je een paar voorbeelden te noemen van wat ik betaald heb:

5 stuks 140x120mm, 2 layer, ca. 80 basic SMD componenten per PCB: Totaal 37,-
5 stuks 120x110mm, 4 layer, ca. 200 componenten per PCB waarvan 10 extended: totaal 145,-
5 stuks 75x50mm, 2 layer, ca. 50 basic SMD componenten per PCB: totaal 25,-

Alles dus inclusief verzending, import belasting, en dus assemblage. Bij de laatste variant zijn de PCB's bijvoorbeeld € 1,70, SMD assemblage inclusief componenten € 17,-, en verzending € 12,40

Ik heb nog niets gevonden dat hierbij in de buurt kan komen. Voor het 2e voorbeeld heb ik ook elders gekeken, maar dat zat inclusief assemblage overal tussen de 800,- tot 4000,- voor 5 stuks. Wanneer de aantallen (veel) hoger worden veranderd dat verschil uiteraard.

Ik kan EasyEDA + JLCPCB dan ook van harte aanraden. Het enige echte nadeel is dat je goed moet opletten welke onderdelen je selecteert. Om het goedkoop te houden moet je zoveel mogelijk werken met de basic library.

Acties:
  • 0 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 09:19

Septillion

Moderator Wonen & Mobiliteit
SuperKris schreef op maandag 30 november 2020 @ 12:08:
Alles dus inclusief verzending, import belasting, en dus assemblage.
Weet je dat zeker? Volgens mij moet je die gewoon nog zelf betalen. Zo mis ik dat ook in je rekenvoorbeeld. Dat je er vaak mee weg komt is een ander :+

Acties:
  • 0 Henk 'm!

  • SuperKris
  • Registratie: Juni 2010
  • Laatst online: 04-06 09:37
Septillion schreef op maandag 30 november 2020 @ 16:00:
[...]

Weet je dat zeker? Volgens mij moet je die gewoon nog zelf betalen. Zo mis ik dat ook in je rekenvoorbeeld. Dat je er vaak mee weg komt is een ander :+
Ja, dat weet ik zeker. In het gedetailleerde voorbeeld zijn de kosten van de materialen zelf onder de 21,- en betaal je dus geen importbelastingen of BTW. De coupon van 6-7 euro heb ik daar overigens ook niet in meegenomen.

Bij die grotere order heb ik de kosten vooraf al bij JLCPCB betaald.

Je kan via DHL laten versturen en bij een waarde boven de 21 betaal je bij DHL sowieso. Daar controleren ze bij DHL altijd op. Natuurlijk is dit gewoon de wet, maar ik denk dat ze dit ook gewoon doen zodat ze nog eens 15,- extra kosten in rekening kunnen brengen.

Bij JLCPCB heb je echter ook een optie om deze kosten van tevoren te betalen. Europacket noemen zit dit volgens mij. Je betaald dan extra maar ze beloven geen import kosten. Ze sturen het dan eerst naar Duitsland en een bedrijf genaamd PATAC stuurt dan een DHL pakketje door. Dit duurt wel iets langer, maar dit is onderaan de streep goedkoper en zo kan DHL je niet extra pakken!

[ Voor 3% gewijzigd door SuperKris op 30-11-2020 16:29 ]


Acties:
  • 0 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 09:19

Septillion

Moderator Wonen & Mobiliteit
@SuperKris Ah, je hebt gelijk. Ik dacht te herinneren dat verzendkosten tegenwoordig meededen. Maar voor het vrije bedrag inderdaad niet, voor de eventueel te betalen belastingen grappig genoeg wel. :+

En ja, blijf het gek vinden dat je dit niet echt vooraf kunt regelen (alleen via zo'n constructie dan) maar het alleen kunt aan laten komen op de bezorger. Naast dat deze absurde bedragen vragen, als ze je bedrag niet geloven dan zit je :/

Acties:
  • 0 Henk 'm!

  • Atomstar
  • Registratie: Juli 2002
  • Laatst online: 07-05 12:00
Bedankt voor de suggesties en designtips! Ik heb mijn parts list toegevoegd om het eea hopelijk te verduidelijken.

Samenvattend:
  • Netter ontwerpen (korte signaal lijnen, rechtere lijnen, weg van sensoren)
  • Liever geen Fritzing gebruiken, maar bijv kicad
  • Antenne vrijhouden
  • Nog te begrijpen: ground plane, weerstanden weg/aanpassen/serial1 gebruiken
Nog vragen/opmerkingen:
  • @Fordox: bedoel je met 'ground plane' één copper layer opofferen voor ground? Kom ik dan nog weg met een 2-layer PCB voor routing?
  • @Fordox: ik doe geen filtering omdat ik modules gebruik, volgens mij is het dan niet nodig?
  • @Sine / @Septillion : op de 5-pin header monteer ik een micro usb module
  • @Sine: 6.: tips om te voorkomen dat ik een kloon koop? Ik koop meestal bij tinytronics.nl
  • @Septillion 7: wat bedoel je met serial1? Vziw heeft de Wemos d1 mini maar 1 HW seriele poort.
  • @Septillion: dat van pull-up/down weerstanden heb ik nooit begrepen :S heb je daar een goede intro over in deze context? Dit ontwerp 'werkt' met mijn houtje-touwtje Dupont jumper wires, wat is het voordeel van de weerstand weghalen?
  • @SuperKris : ik zal eens kijken naar EasyEDA, bedankt! JLCPCB had ik ook gevonden, maar heeft wat lange levertijd.

Acties:
  • 0 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 09:19

Septillion

Moderator Wonen & Mobiliteit
Waarom dan niet gewoon die van de ESP gebruiken of direcht een USB connector op je print?
• @Septillion 7: wat bedoel je met serial1? Vziw heeft de Wemos d1 mini maar 1 HW seriele poort.
Nope, 2 Maar ik was even vergeten dat van de tweede de Rx pin gedeeld wordt met de flash :| In practeik dus send-only. Dan is software serial misschien wel makkelijker.
• @Septillion: dat van pull-up/down weerstanden heb ik nooit begrepen :S heb je daar een goede intro over in deze context? Dit ontwerp 'werkt' met mijn houtje-touwtje Dupont jumper wires, wat is het voordeel van de weerstand weghalen?
Dat is ook wel een aardig gebied. Maar twee vuistregels:
- Trek een lijn nooit naar een spanning die niet op de pin mag staan.
- Pull up (of down) zijn nodig op lijnen die anders zweven (bijvoorbeeld open drain pinnen).

Ik dit geval is het device dus open drain dus zal je een pull up weerstand moeten plaatsen. Maar aangezien de ESP geen 5V mag hebben (officieel) mag dit dus niet naar de 5V lijn. Naar de 3v3 mag wel en moet ook werken, zelfs als je de DS18B20 op 5V draait (zou ook op 3V3 mogen).

Verder valt me de levertijd van JLC of DirtyPCB's ofzo me wel mee. Gemiddeld week of twee als ik voor de slow boot kies. Via DHL wel sneller maar vind ik voor de hobby zelf het geld niet waard.

Acties:
  • 0 Henk 'm!

  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 06-06 22:28

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Hier ook een gebruiker van easyeda, maar de koppeling met lcsc klinkt leuker dan het is. Jlc heeft zelf een erg beperkte catalogus en de onderdelen van lcsc kun je niet door Jlc laten plaatsen. Een ESP8266 zit er dus al niet in (tenzij je echt vanaf de 6x6mm IC wil opbouwen, maar dus geen ESP12f).

Verder is mijn ervaring dat de printjes zelf juist warmte doorgeven, dat is niet beperkt tot de banen. Voor mij destijds reden om inderdaad de deep sleep te gebruiken. Resultaat scheelt enkele graden. Misschien kun je een gleuf laten frezen in de PCB, om hittespreiding tegen te gaan? Of een externe timer IC gebruiken om eerst je sensor, en later de ESP aan te zetten?

/Edit: zie mijn blog van een paar maanden geleden @ Thijsmans' Tweakblog: Eerste ervaring met JLCPCB

[ Voor 12% gewijzigd door Thijsmans op 30-11-2020 18:11 ]

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


Acties:
  • 0 Henk 'm!

  • SuperKris
  • Registratie: Juni 2010
  • Laatst online: 04-06 09:37
Thijsmans schreef op maandag 30 november 2020 @ 18:06:
Hier ook een gebruiker van easyeda, maar de koppeling met lcsc klinkt leuker dan het is. Jlc heeft zelf een erg beperkte catalogus en de onderdelen van lcsc kun je niet door Jlc laten plaatsen. Een ESP8266 zit er dus al niet in (tenzij je echt vanaf de 6x6mm IC wil opbouwen, maar dus geen ESP12f).

Verder is mijn ervaring dat de printjes zelf juist warmte doorgeven, dat is niet beperkt tot de banen. Voor mij destijds reden om inderdaad de deep sleep te gebruiken. Resultaat scheelt enkele graden. Misschien kun je een gleuf laten frezen in de PCB, om hittespreiding tegen te gaan? Of een externe timer IC gebruiken om eerst je sensor, en later de ESP aan te zetten?

/Edit: zie mijn blog van een paar maanden geleden @ Thijsmans' Tweakblog: Eerste ervaring met JLCPCB
JLCPCB doet alleen SMD, en hoewel je kan beargumenteren dat zon ESP ding dat ook is, hebben we het natuurlijk niet over een traditioneel SMD FETje ofzo.

Overigens hebben ze wel degelijk ESP chips: https://jlcpcb.com/parts/componentSearch?searchTxt=esp

De truck is dat je zelf moet zoeken naar alternatieven en het moet doen met de componenten die ze wel hebben. Daar kan je echt heel veel mee. Je moet alleen wel zelf de kennis hebben om die alternatievent te vinden. Als jij een schemaatje hebt gemaakt of gevonden met een bepaalde MOSFET voordat je in EasyEDA aan de slag gaat kan het zo maar voorkomen dat jouw MOSFET er in in staat. Je moet dan weten welke parameters van belang zijn om een vervanging te zoeken.

In mijn geval had ik een P-channel MOSFET nodig met een VDS van 200V, een zo laag mogelijke Rdson, en een vrij "hoge" SOA. Als je dan op de juiste manier zoekt vind je tientallen opties. Voor standaard tekenwerk en simulaties grijp ik nogt altijd naar de BC547 en BC557. Deze hebben ze ook niet, en wat JLCPSB wel heeft wisselt nog wel eens, maar een goed extreem goedkoop alternatief is er altijd.

De koppeling tussen EasyEDA en JLCPCB zou echter wel beter moeten. Binnen EasyEDA kan je niet op parameters zoeken zoals footprint, maximaal voltage, etc. Uitgebreidere specs zoals Vds of ESR kan je daar zelfs helemaal niet zien. Dat maakt het zoeken wel ingewikkeld. Daarvoor moet je dan toch weer LCSC gebruiken en daar staat dan weer niet wat een JLCPCB basic part of extended part is. Dit vindt ik echt het enige echte nadeel van het platform.

Acties:
  • +2 Henk 'm!

  • SuperKris
  • Registratie: Juni 2010
  • Laatst online: 04-06 09:37
Voor wie het leuk vind, hier 2 van de PCB's zoals deze zijn binnengekomen.

Afbeeldingslocatie: https://tweakers.net/i/0BEN4T3vcs10uH7pBFJCQ6gHUIw=/full-fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():fill(white):strip_exif()/f/image/VZtOREp0ll1XzQIG9Q2imOL1.jpg?f=user_large

Afbeeldingslocatie: https://tweakers.net/i/gd2bxVP1HC_XhIBqaIetAEXF03M=/full-fit-in/4920x3264/filters:max_bytes(3145728):no_upscale():strip_icc():fill(white):strip_exif()/f/image/uMWOJViswdFb6wq8EMK6GOUL.jpg?f=user_large

Acties:
  • 0 Henk 'm!

  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 06-06 22:28

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Een Mosfet vervangen is geen punt, maar als je eigenlijk elke sensor van je project moet vervangen voor onderdelen waarvoor geen libraries/modules voor zijn geschreven, wordt het wel een moeizaam verhaal :) Ik kijk nu naar een diy reflow oven.

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


Acties:
  • 0 Henk 'm!

  • Fordox
  • Registratie: Maart 2011
  • Laatst online: 06-06 12:04

Fordox

00101010

Atomstar schreef op maandag 30 november 2020 @ 17:27:

• @Fordox: bedoel je met 'ground plane' één copper layer opofferen voor ground? Kom ik dan nog weg met een 2-layer PCB voor routing?
Nee. met een ground plane bedoel ik dat je hele PCB bestaat uit koper voor ground en dat daartussen je signaal loopt. Eigenlijk een copper pour, een plane is idd een gehele laag dedicated aan ground, een pour is een gedeeltelijke stuk van je layer.
Plaatje van google:
Afbeeldingslocatie: https://www.researchgate.net/profile/Avinash_Surendran/publication/322835080/figure/fig3/AS:589427155939328@1517541793053/Left-panel-Final-PCB-design-for-Lunar-Scintillometer-without-the-ground-plane-and-the.png
Hier zie je 2 kleuren, lichtgroen en donkergroen. Het lichtgroene is koper en donkergroen is kaal PCB (het is groen want dat is de kleur van de soldermask, niet heel belangrijk). Het lichtgroene helemaal omheen is de ground copper pour en de lichtgroene lijnen tussen het donkergroene zijn het signaal. Als het goed is heeft elk PCB programma de simpele mogelijkheid om copper pours te tekenen.

Je wil dus zo min mogelijk kaal PCB en zo veel mogelijk koper dat is aangesloten op je gnd :)
• @Fordox: ik doe geen filtering omdat ik modules gebruik, volgens mij is het dan niet nodig?
Klopt, je maakt eigenlijk een soort doorlink bord als vervanging van draden. Filtering is niet nodig, maar wel wenselijk in elk PCB ontwerp als je toch al bezig bent om een PCB te ontwerpen.
Je ziet ook vaak dat mensen een simpele cap op de 2 horizontale lijnen van een breadboard plaatsen waar je je voeding vandaan trekt (gnd en 5V), misschien is dat ook fijn om te hebben in jouw ontwerp. Het verminderd spanningsdipjes/ruis.
Nodig is het niet, wenselijk wel :)

Edit: Ik gebruik de edit-knop vaak.


Acties:
  • 0 Henk 'm!

  • SuperKris
  • Registratie: Juni 2010
  • Laatst online: 04-06 09:37
Thijsmans schreef op maandag 30 november 2020 @ 19:22:
Een Mosfet vervangen is geen punt, maar als je eigenlijk elke sensor van je project moet vervangen voor onderdelen waarvoor geen libraries/modules voor zijn geschreven, wordt het wel een moeizaam verhaal :) Ik kijk nu naar een diy reflow oven.
Tja, al die populaire arduino sensoren zijn vaak niet SMD, dus die kan je later zelf makkelijk solderen. Als als die weestanden en condensatoren er maar op zitten, maar kijk maar eens naar mijn voorbeeld. De MAX488, de INA180, de ADS1015.. Allemaal in de JLCPCB library. Alleen de LTC4380 niet, en SOIC8 solderen vindt ik een drama :'(

Acties:
  • 0 Henk 'm!

  • Atomstar
  • Registratie: Juli 2002
  • Laatst online: 07-05 12:00
Bedankt voor de input allemaal, ik heb een nieuw (hopelijk beter ;)) ontwerp gemaakt:

Afbeeldingslocatie: https://tweakers.net/i/ECvPAhbbfiUkVMfYX7AzuBD5yYA=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/FnCgmOOjE4vBNkVu0ZhsdCZq.png?f=user_large
  • Korte signaal lijnen
  • Rechtere lijnen
  • Antenne vrijhouden
  • Dikkere voeding voor 'spiky esp8266 gebruik'
Dit bewaar ik voor een volgend project:
  • Liever geen Fritzing gebruiken, maar bijv kicad
  • ground plane
  • weerstanden weg/aanpassen
  • Misschien PCB met SMD ontwerpen
Septillion schreef op maandag 30 november 2020 @ 17:44:
[...]
Waarom dan niet gewoon die van de ESP gebruiken of direcht een USB connector op je print?
Ik heb een extra USB pin header toegevoegd om de USB-voeding aan de onderkant te monteren

@Thijsmans : interessant projectje, een stap verder dan mijn 'draadjeswirwar vervangen', leuk idee voor volgende project :) Helaas kan ik niet makkelijk een deep sleep / wake cycle gebruiken om de opwarming te verminderen, omdat de CO2-sensor een 3 minuten opwarm tijd heeft, en ik minimaal eens per 5 minuten wil meten.

@Fordox : bedankt voor de toelichting over copper plane, Fritzing snapt dat niet dus bewaar ik het ook even :p

Acties:
  • 0 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 09:19

Septillion

Moderator Wonen & Mobiliteit
Atomstar schreef op donderdag 3 december 2020 @ 21:30:
Dit bewaar ik voor een volgend project:
  • weerstanden weg/aanpassen
Uhm, laat die nouw weheg. :+ Die brengt de boel mooi buiten spec door hem naar 5V te trekken, dat mag een ESP pin niet hebben. Wil je nu alsnog eventueel een overbodig component plaatsen, trek hem dan netjes naar de 3V3 lijn ;)
Ik heb een extra USB pin header toegevoegd om de USB-voeding aan de onderkant te monteren
Je kan ook de ESP aan die kant plaatsen als je daar de USB wilt :P Of denk ik nu te makkelijk? Anders zou ik zelf niet voor een USB-via-header constructie gaan maar er een USB socket op plakken.

Acties:
  • 0 Henk 'm!

  • Fordox
  • Registratie: Maart 2011
  • Laatst online: 06-06 12:04

Fordox

00101010

Kijk eens aan, dat is al een stuk overzichtelijker :)
Er valt nog genoeg ervaring op te doen en te optimaliseren, maar iedereen moet ergens beginnen en je hoeft geen expert te zijn. Zo zag mijn eerste print er ook uit.

Lekker bezig :)

Edit: Ik gebruik de edit-knop vaak.


Acties:
  • 0 Henk 'm!

  • Atomstar
  • Registratie: Juli 2002
  • Laatst online: 07-05 12:00
Septillion schreef op donderdag 3 december 2020 @ 21:36:
[...]

Uhm, laat die nouw weheg. :+ Die brengt de boel mooi buiten spec door hem naar 5V te trekken, dat mag een ESP pin niet hebben. Wil je nu alsnog eventueel een overbodig component plaatsen, trek hem dan netjes naar de 3V3 lijn ;)
dit artikel geeft wat achtergrond en heeft me geholpen het beter te begrijpen. Ik probeer het eerst wel zonder weerstand, als het werkt ben ik klaar :) Maakt het dan nog uit met welke ESP pin ik de DS18B20 verbind? Volgens dat artikel moet de pin een interne pull-down weerstand hebben.
Septillion schreef op donderdag 3 december 2020 @ 21:36:
[...]

Je kan ook de ESP aan die kant plaatsen als je daar de USB wilt :P Of denk ik nu te makkelijk? Anders zou ik zelf niet voor een USB-via-header constructie gaan maar er een USB socket op plakken.
Ja dat kan, echter qua warmteflow heb ik juist gekozen om de ESP bovenaan te plaatsen zodat de temp sensor minder verstoord wordt. Of het op deze kleine schaal werkt moet ik nog uitvinden :p

@Fordox Bedankt! :)

Acties:
  • 0 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 09:19

Septillion

Moderator Wonen & Mobiliteit
Atomstar schreef op zondag 6 december 2020 @ 08:20:
dit artikel geeft wat achtergrond en heeft me geholpen het beter te begrijpen. Ik probeer het eerst wel zonder weerstand, als het werkt ben ik klaar :)
En als het niet werkt, zorg dan dat je deze weerstand dus naar Vcc / 3V3 kunt doen ;)
Maakt het dan nog uit met welke ESP pin ik de DS18B20 verbind? Volgens dat artikel moet de pin een interne pull-down weerstand hebben.
Pull up ;) En klein beetje, niet anders dan anders bij het uitzoeken van een pin op de ESP. Bijvoorbeeld GPIO15 is bijvoorbeeld altijd voorzien van een pull down dus die is niet te gebruiken. De rest van de pinnen kan je gewoon de pull up aanzetten. Wel blijft dat GPIO0 en GPIO2 niet laag mogen zijn tijdens boot. Op zich zou de DS niets spontaan moeten sturen (en dus geen probleem moeten vormen) maar zou ze zelf niet voor een DS gebruiken.
Ja dat kan, echter qua warmteflow heb ik juist gekozen om de ESP bovenaan te plaatsen zodat de temp sensor minder verstoord wordt. Of het op deze kleine schaal werkt moet ik nog uitvinden :p
Bedoelde dus meer de andere kant van de PCB waar je de USB header unit wilt doen. :+

Acties:
  • 0 Henk 'm!

  • Atomstar
  • Registratie: Juli 2002
  • Laatst online: 07-05 12:00
Septillion schreef op maandag 7 december 2020 @ 08:44:
[...]

En als het niet werkt, zorg dan dat je deze weerstand dus naar Vcc / 3V3 kunt doen ;)
Ja dat begrijp ik nu ook van dat artikel (ondanks dat ik nog niet precies weet waarom/hoe een pull-up werkt), maar dat gaat in m'n ontwerp nu lastig :P
Septillion schreef op maandag 7 december 2020 @ 08:44:
[...]

Pull up ;) En klein beetje, niet anders dan anders bij het uitzoeken van een pin op de ESP. Bijvoorbeeld GPIO15 is bijvoorbeeld altijd voorzien van een pull down dus die is niet te gebruiken. De rest van de pinnen kan je gewoon de pull up aanzetten. Wel blijft dat GPIO0 en GPIO2 niet laag mogen zijn tijdens boot. Op zich zou de DS niets spontaan moeten sturen (en dus geen probleem moeten vormen) maar zou ze zelf niet voor een DS gebruiken.


[...]
Ok, dus geen GPIO15, liever geen 0 en 2. Ik heb 'm nu op GPIO0, dus zou moeten werken(TM) :p
Septillion schreef op maandag 7 december 2020 @ 08:44:
Bedoelde dus meer de andere kant van de PCB waar je de USB header unit wilt doen. :+
Wat bedoel je hier? Ik wil de USB connector aan de achterkant.

Acties:
  • 0 Henk 'm!

  • Fordox
  • Registratie: Maart 2011
  • Laatst online: 06-06 12:04

Fordox

00101010

Een pull-up weerstand is heel simpel. Het voorkomt dat je pin gaat 'zweven' en voorkomt dirty bitjes (een leraar van mij noemde het zo, met zijn uitspraak natuurlijk hilarisch).

Met een hoge weerstand naar 5V garandeer je dat die pin altijd op 5 volt hangt, totdat je hem laag maakt door hem hard op GND te hangen door middel van een signaal of knop. Als de weerstand naar 5V er niet is, kan het signaal van alles zijn, bijvoorbeeld 1, 2 of 3 volt, waarbij je in de regio zit dat je controller het soms uit kan lezen als een 1 en soms als een 0.

De weerstand zit eraan zodat je geen harde short maakt tussen je 5V en 0V lijn, maar dat je de stroom limiteert. Dus kies een lekker grote weerstand, iets van 10K of hoger. Anders verbruikt je knop meer stroom dan dat nodig is wanneer je hem indrukt.

Het kan ook andersom met een pull-down weerstand, die garandeerd dat je lijn altijd 0 is tot je er 5V op zet :)

[ Voor 8% gewijzigd door Fordox op 07-12-2020 10:10 ]

Edit: Ik gebruik de edit-knop vaak.


Acties:
  • 0 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 09:19

Septillion

Moderator Wonen & Mobiliteit
Atomstar schreef op maandag 7 december 2020 @ 09:32:
Ja dat begrijp ik nu ook van dat artikel (ondanks dat ik nog niet precies weet waarom/hoe een pull-up werkt), maar dat gaat in m'n ontwerp nu lastig :P
Vergelijk de state van een een pin met een bal in je kofferbak. (bear with me 8)) Deze kan links (low) liggen of rechts (high) zijn. Als er niets aan zit zal hij tijdens het rijden alle kanten op gaan, hij heeft geen gedefinieerde state. Nu zijn er dingen die de bal naar een kant kunnen drukken. Maar sommige dingen kunnen de bal zelf maar naar één kant drukken. Zo kan een DS de pin alleen low (links) houden of loslaten. En zodra de DS de bal loslaat rolt deze weer alle kanten op. Dit kan je oplossen door de bal naar rechts te trekken met een elastiek (pull up). Zodra niets eraan trekt ligt de bal nu netjes rechts maar hij ligt daar niet vast dus de DS kan hem gewoon naar links trekken.

Voordeel aan een open drain sturing (zoals alleen laag (links) trekken heet) is dat er meerdere dingen aan de lijn kunnen trekken zonder ruzie. Elke afzonderlijke DS zou de bal naar links kunnen trekken. Doen meerdere dit tegelijk is dit niet erg, ze willen allemaal links. En de DS die niet trekken maakt de positie ook niet uit.

Dit is anders als je high/low sturing had gehad met meerdere devices/mensen. Als dan één de bal links wil hebben en de andere de bal rechts heb je ruzie :9

Een elastiek link (low) is natuurlijk de boel omgekeerd en heet een pull down. Dit werkt alleen als het aangesloten device dus de pin actief high kan maken.

En ow, in deze analogie is een pull up naar 5V ipv naar de 3v3 van de esp vergelijkbaar met een elastiek aan de auto rechts naast je. Als je geluk hebt blijft je kofferbak heel en de bal in je kofferbak, maar is het elastiek te sterk is nu je kofferbak gesloopt omdat hij dwars door de wand getrokken is :+
Ok, dus geen GPIO15, liever geen 0 en 2. Ik heb 'm nu op GPIO0, dus zou moeten werken(TM) :p
Vergeten erbij te zeggen, dat zijn de GPIO namen op de ESP zelf. Deze komen niet overeen met de nummers op de meeste (D) namen op de WeMos of andere borden. Even opzoeken welk dat dus zijn op het bord dat je gebruikt.
Wat bedoel je hier? Ik wil de USB connector aan de achterkant.
Dan zou je de WeMos ook aan de achterkant kunnen plaatsen. Als je dan de temperatuur sensoren aan de voorkant houdt heb je nog betere scheiding dan allen de sensor onder de ESP. Maar goed, dit moet wel uitkomen natuurlijk. Maar een USB op een header is ook niet echt compact. :+

Acties:
  • 0 Henk 'm!

  • Atomstar
  • Registratie: Juli 2002
  • Laatst online: 07-05 12:00
@Fordox & @Septillion Ok, bedankt voor de uitleg, ik begrijp ongeveer hoe het werkt :), maar nog niet waarom het werkt met m'n vwo-natuurkunde-elektronica. Hoe groot is de interne weerstand van de sensor bijv als ie naar low gaat, of naar high? Kan ik met de juiste pull-up weerstand de spanning verdelen en zo alsnog op 3.3V uitkomen? Dan moet ik dus R_pull-up = 3.3V / (5-3.3V) * R_sensor ~ 1.9 * R_sensor hebben, klopt dat?

En verder: waarom heb ik dit bij de DS wel nodig en waarom niet bij de UART van MH-Z19B, of de SDA/SCL van de BME, en waar kan ik dit aan zien?
Septillion schreef op maandag 7 december 2020 @ 10:15:
[...]

En ow, in deze analogie is een pull up naar 5V ipv naar de 3v3 van de esp vergelijkbaar met een elastiek aan de auto rechts naast je. Als je geluk hebt blijft je kofferbak heel en de bal in je kofferbak, maar is het elastiek te sterk is nu je kofferbak gesloopt omdat hij dwars door de wand getrokken is :+
Ok, de 5V-3.3V snap ik nu idd, bedankt :)
Septillion schreef op maandag 7 december 2020 @ 10:15:
[...]
Vergeten erbij te zeggen, dat zijn de GPIO namen op de ESP zelf. Deze komen niet overeen met de nummers op de meeste (D) namen op de WeMos of andere borden. Even opzoeken welk dat dus zijn op het bord dat je gebruikt.
Ja dat wist ik, ik gebruik deze tabel van WeMos naar ESP-pin.
Septillion schreef op maandag 7 december 2020 @ 10:15:
[...]
Dan zou je de WeMos ook aan de achterkant kunnen plaatsen. Als je dan de temperatuur sensoren aan de voorkant houdt heb je nog betere scheiding dan allen de sensor onder de ESP. Maar goed, dit moet wel uitkomen natuurlijk. Maar een USB op een header is ook niet echt compact. :+
Die zit toch aan de achterkant? Maar misschien is m'n ruimtelijk inzicht te beperkt gebleken :p Misschien was ik wat vaag, maar de PCB heeft voor en achterkant, en ik wil 'm recht op zetten zodat de BME/DS vooraan-onderaan zitten en de MH-Z19B achteraan/onderaan. De LCD en WeMos zitten vooraan/bovenaan en achteraan/bovenaan.

Header + USB is niet supercompact nee, maar we gaan het er maar mee doen ;) Misschien strip ik wel een kabel of adapter en soldeer er Dupont stekkertjes aan.

Acties:
  • 0 Henk 'm!

  • Fordox
  • Registratie: Maart 2011
  • Laatst online: 06-06 12:04

Fordox

00101010

Je kan er vanuit gaan dat de input van digitale elektronica hoog-ohmig/impedant is. Dus er loopt bijna geen stroom naar je input.

Afbeeldingslocatie: https://tweakers.net/i/sARutsbas2mnL3x5TGoZ29hAItc=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/ZLfj3fwpvi2I3ZMr9A44Kngz.png?f=user_large
Hier heb ik een simpele pull-up getekend waarbij er een knooppunt wordt aangegeven met punt P. De voltage die op P staat, staat ook op de input van je microcontroller

Dit is eigenlijk heel makkelijk, je stroom loopt met de schakelaar gesloten in serie je microcontroller in. Wanneer je de schakelaar indrukt, ziet de stroom een pad dat minder weerstand heeft naar ground, en gaat daarom ook direct naar de 0.

Omdat de input van een microcontroller heel hoog is, krijg je wanneer je de knop niet indrukt, een spanningsdeler tussen de microcontroller en de pull-up weerstand. Doordat de weerstand van de microcontroller een aantal factoren hoger ligt dan de 10k pull-up, gaat bijna alle voltage op de weerstand van je microcontroller staan.
Afbeeldingslocatie: https://tweakers.net/i/wppt3RJEmklskFmJxOmfYKgJNII=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/SGNegIulH18RbAeqIE1z4NUp.png?f=user_large
Op die manier dus. Dit is altijd in verhouding, als je weerstanden 1:1 ratio hebben, zal de spanning door de helft gaan. Is de verhouding 2:1, dan heeft de ene weerstand 2/3 en de andere 1/3 van de spanning, enzovoorts. Als het 1000:1 is, dan zou 99,9% van de voltage dus op de ene weerstand staan en 0,1% op de andere.

Wanneer je de knop in drukt, krijg je eigenlijk dit:
Afbeeldingslocatie: https://tweakers.net/i/tuUP3KF5VIphHwcYTMm3bWwFDOQ=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/GZCFwUB439QVGYH9udUn4BTa.png?f=user_large
Je input hangt nu eigenlijk direct op 0 en de stroom vanuit je weerstand gaat ook naar de 0 lijn. De weerstand heeft nu de volle 5V op zich in de spanningsdeler, want de verhouding is nu 0:1. De stroom loopt ook naar GND en niet de microcontroller in, dus hij heeft geen invloed op je input :)

Als je van je 5V 3.3V wil maken, kan dat ook door een spanningsdeler, waarbij je over 1 weerstand 3.3V wil en de andere weerstand 1.7V. Dit is bijna een 2:1 verhouding wat je op kan lossen met een 20k en een 10k weerstand. Dan krijg je dit:
Afbeeldingslocatie: https://tweakers.net/i/J4AEAsDliHXPUwps8EKMdHI10JA=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/maWHoyzYbdiOqgBgIdyxCpdT.png?f=user_large
Nu zijn er vast mensen die denken, "Heeee die weerstanden staan nu parallel, werkt je spanningsdeler nog wel?"
Yup, wanneer je de knop indrukt zal je weerstand veranderen en er zal niet 3.3V staan op de pull-up weerstand. Maar dat is toch triviaal (onbelangrijk) want je input hangt nog steeds aan de 0V lijn :)

[ Voor 20% gewijzigd door Fordox op 07-12-2020 19:38 ]

Edit: Ik gebruik de edit-knop vaak.


Acties:
  • 0 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 09:19

Septillion

Moderator Wonen & Mobiliteit
Atomstar schreef op maandag 7 december 2020 @ 17:28:
Hoe groot is de interne weerstand van de sensor bijv als ie naar low gaat
Laag (denk enkele tot tientalle Ohms). Maar de waarde is niet zo van belang, zolang je pull up maar een order hoger is. Ofwel, als je elastiek maar niet zo sterk is kan ook een klein kind de bal nog bewegen. Hoe sterk de pull up exact is is niet zo boeiend. Zolang de lijn maar (redelijk) hoog blijft zolang er niet getrokken word en de DS de lijn maar laag kan trekken (ofwel, de stroom aan kan door de pull up als hij de lijn laag trekt) dan zit je goed (=> Zolang hij zorgt dat de bal niet spontaan naar links kan en de je de bal nog naar links kunt trekken als het moet.)
, of naar high?
De DS is open drain, die trekt dus alleen maar laag of trekt niet. Denk dus ∞ Ohm.
Kan ik met de juiste pull-up weerstand de spanning verdelen en zo alsnog op 3.3V uitkomen? Dan moet ik dus R_pull-up = 3.3V / (5-3.3V) * R_sensor ~ 1.9 * R_sensor hebben, klopt dat?
Nee, want de waardes van de sensor zijn niet exact. En dat hoeft ook niet, want je denkt veel te lastig :+ Gewoon aan de eerder genoemde vuistregel houden:
Septillion schreef op maandag 30 november 2020 @ 17:44:
- Trek een lijn nooit naar een spanning die niet op de pin mag staan.
Ofwel, je plaatst de pull up naar de laagste maximale spanning van de dingen op de bus. In dit geval is dat de ESP die maximaal 3V3 mag hebben.

Enige waar je dan tegenaan kunt lopen is dat de devices met een hogere spanning op diezelfde lijn/bus de pulled up high state (hier dus 3V3) niet meer als high lezen. Daarom kan je in de datasheet vinden wat het minimale voltage voor een high state is voor een device. De "Input Logic-High" van de DS18B20 (pagina 2) is 2,2V onder non-parasite power. Lager dan de 3,3V dus prima.

En nu je toch daar bent, je ziet eronder de maximale "sink current", deze is 4mA. Ofwel, bij 5V mag de pull up weerstand niet lager zijn dan 5V / 4mA = 1k3 of bij 3V => 3V / 4mA = 750Ω. De design examples tonen 4k7.
En verder: waarom heb ik dit bij de DS wel nodig en waarom niet bij de UART van MH-Z19B,
Dat is het verschil tussen de signaal levels, de DS is gebaseerd op 1-wire waarbij alle signalen open drain zijn waar de UART van de MH-Z19B push-pull is. Dat is gebruikelijk bij (TTL) UART maar de datasheet geeft altijd extra informatie.
of de SDA/SCL van de BME, en waar kan ik dit aan zien?
Nee! Ook SDA en SCL zijn open drain! Dit is ook vastgelegd bij I2C. Maar zeker als je modules gebruikt is het redelijk standaard dat er ergens pull up weerstanden zitten. Maar dit nakijken is altijd verstandig.
Die zit toch aan de achterkant? Maar misschien is m'n ruimtelijk inzicht te beperkt gebleken :p Misschien was ik wat vaag, maar de PCB heeft voor en achterkant, en ik wil 'm recht op zetten zodat de BME/DS vooraan-onderaan zitten en de MH-Z19B achteraan/onderaan. De LCD en WeMos zitten vooraan/bovenaan en achteraan/bovenaan.
Ahh, nee, dit had ik door de Fritzing niet door.
Header + USB is niet supercompact nee, maar we gaan het er maar mee doen ;) Misschien strip ik wel een kabel of adapter en soldeer er Dupont stekkertjes aan.
Of je zorgt dat de USB van de ESP op een makkelijke plek zit :+ Zelf zou ik niet zo bang zijn voor warmte transport door het bord. Meeste zorg(en O-) ) zou ik stoppen in de airflow van de behuizing.

  • Atomstar
  • Registratie: Juli 2002
  • Laatst online: 07-05 12:00
Bedankt @Fordox en @Septillion voor de uitleg! Ik denk dat ik het nu redelijk begrijp en zelf toe kan passen. De 4k7 Ohm weerstand laat ik in ieder geval achterwege ;)

Ik heb recent de PCB's ontvangen en gesoldeerd, en het werkt in een keer (zelfs zonder 4k7 Ohm pull-up op de verkeerde lijn ;)) :)

Afbeeldingslocatie: https://tweakers.net/i/Pj2kOxmd0v7qMv8ckT89TlO7sZs=/x800/filters:strip_icc():strip_exif()/f/image/mqg999rzIWnI4uRFmKqK3Kde.jpg?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/nPi1CFWnugag6vosWzrCKDJFDbA=/x800/filters:strip_icc():strip_exif()/f/image/pkua6XZXhVN8edPDV5fh9HCL.jpg?f=fotoalbum_large

Helaas heb ik nog wel last van self-heating van ongeveer 2 graden, dus ik moet toch een oplossing in de richting van @Thijsmans zoeken. Ik ga proberen de DS18B20 langere draden te geven, en als dat niet lukt toch naar deep sleep gaan (helaas want dan is display meestal uit). Hier heeft iemand een soortgelijk probleem en vooral deze IR foto geeft het probleem weer. Zijn er nog zuinigere SoCs met Wifi waar esphome.io op draait?

[ Voor 14% gewijzigd door Atomstar op 17-12-2020 11:54 ]


  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 06-06 22:28

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Ziet er netjes uit! Ik word niet echt wijs uit de IR-foto. De meeste warmte komt vermoedelijk van de AM1117 op de D1. Als je de ESP12F los op een print zet, en zelf een AM/LM1117 op de print plaatst, kun je deze voorzien van een koelvin.

/edit:
Ik ga proberen de DS18B20 langere draden te geven, en als dat niet lukt toch naar deep sleep gaan (helaas want dan is display meestal uit).
Het display kun je aanlaten. Die zal op 5V werken en weinig/geen warmte produceren. De laatst geschreven informatie blijft als het goed is gewoon staan, ook als de ESP zelf in deep sleep staat.

[ Voor 43% gewijzigd door Thijsmans op 17-12-2020 12:57 ]

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 09:19

Septillion

Moderator Wonen & Mobiliteit
@Atomstar Ziet er inderdaad prima uit! Ik denk dat je de verkeerde de zwartepiet toespeelt. Zo veel warmte komt er ook niet van een ESP af, ik veracht dat de CO meter een heel stuk meer doet, zeker omdat deze actief de lucht circuleert. Dus ja, kan je super zuinig gaan voor de uC maar dan schiet je er weinig mee op. En heel veel zuiniger (voor normaal bedrijf) ga je denk ik niet vinden. Wifi is gewoon nooit bedacht om zuinig te zijn.

Dus ja, als je de DS aan lange draden hebt zou de te hoger reading weg moeten zijn. Maar dan zal hij wel echt buiten bereik van de CO meter moeten komen.

Overigens houdt je scherm gewoon de laatste data in (deep) sleep. Dus die wordt niet zwart alleen update niet meer.

Acties:
  • 0 Henk 'm!

  • Atomstar
  • Registratie: Juli 2002
  • Laatst online: 07-05 12:00
@Thijsmans Bedankt voor de tip. Ik had niet bedacht dat het display gewoon de laatste data zou blijven tonen :) Wat betreft de IR-foto, ik concludeerde alleen dat de ESP nog best warm wordt. Ik lees hier en daar ook dat de USB-serial chip wat warmte genereert, terwijl ik die niet eens gebruik en wss ook niet in deep sleep gaat.

@Septillion De CO2-sensor circuleert geen lucht maar werkt middels membranen/tissue oid. Ondanks dat ook deze sensor idd warmte kunnen genereren. Is er een ESP8266 module zonder usb-serial chip? Ik zit te denken of dat misschien helpt. Initieel had ik de Wemos d1 mini pro gekocht met meer features (die ik (nog) niet gebruik), maar achteraf had ik beter voor feature-arme bordjes kunnen gaan :p

Ik heb nu een paar dingen geprobeerd, en 10cm jumper wires om de temp sensor weg van de warmtebron te krijgen lijkt goed te werken, ook zonder deep sleep. Helaas maakt dat m'n compacte design weer wat lomper, dus ik ben nog niet helemaal tevreden. Misschien toch temp sensing uitbesteden aan commerciele oplossingen op batterij ipv zelf te prutsen :p

Afbeeldingslocatie: https://tweakers.net/i/NXAmjmNUPqI9WcF4e92trH97H0Q=/800x/filters:strip_icc():strip_exif()/f/image/BbAaVUcFdg1yHCa3XxJcaC3A.jpg?f=fotoalbum_large

Acties:
  • 0 Henk 'm!

  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 06-06 22:28

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Atomstar schreef op zondag 27 december 2020 @ 11:33:
Ik lees hier en daar ook dat de USB-serial chip wat warmte genereert, terwijl ik die niet eens gebruik en wss ook niet in deep sleep gaat.

[...] Is er een ESP8266 module zonder usb-serial chip? Ik zit te denken of dat misschien helpt. Initieel had ik de Wemos d1 mini pro gekocht met meer features (die ik (nog) niet gebruik), maar achteraf had ik beter voor feature-arme bordjes kunnen gaan :p
De ESP komt eigenlijk standaard zonder CH340-chip, dus ja, er zijn zat kale ESP's ;) Zelf gebruik ik het liefst gewoon een ESP12F, maar iets gemakkelijker in het onderhoud zijn de ESP-breakout boards. Van die witte adapterplaatjes naar 0.1" pin-spacing (dus breadbord/print-vriendelijk):

Afbeeldingslocatie: https://internetofhomethings.com/homethings/wp-content/uploads/2015/05/20150519_ESP8266-adapter-apart.jpg

Bij deze printjes hoort als wederhelft een aparte print met CH340-chip. Dus je trekt de ESP zo uit je project voor een firmware-update, maar in je project komt 'ie zonder verdere "bagage"/ballast.

In jouw project zou ik kijken naar een externe timer in combinatie met deep sleep. Stel dat je elke tien minuten een meting wil, dan stel je de externe timer in op zeven minuten. Daaraan hang je je CO-meter. Die begint drie minuten voor de meting op te warmen. Drie minuten later ontwaakt de ESP, die doet zijn trucje en trekt de externe timer weer zeven minuten in slaap.

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


Acties:
  • 0 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 09:19

Septillion

Moderator Wonen & Mobiliteit
Okay, ik ben niet bekend met deze sensor. Alleen wel eens wat van meegekregen. Maar een vorm van circulatie lijkt me verplicht als je iets wat nauwkeurige metingen wilt hebben, anders sample je steeds dezelfde lucht. Maar deze zal zeker wat warmte produceren als het alleen al 3 minuten opwarmtijd nodig heeft voor een meting.

De USB naar Serieel lijkt me weer een zwarte piet. Deze (CH340) verbruikt max 30mA (en typisch maar 12mA) wanneer in gebruik (= data doet). In rust draagt dat echt niet significant bij. Je zou in een revisie direct een ESP12 kunnen pakken maar voor de prijs van een D1 Mini zie ik hier geen andere reden voor dan size. Zeker als je deze weer op een breakout gaat plakken.

Grootste deel komt gewoon van de ESP. Dit is natuurlijk ook aardig een beest van een uC, zeker met Wifi aan. Laatste is gewoon niet bedacht voor zuinig. Ik zou zelf dus eens beginnen met de ESP in deep sleep (of überhaupt beginnen met Wifi uit) te zetten en de CO sensor gewoon aan te houden. Ik zie nooit nut om de trigger hiervan extern te doen en niet van de ESP te laten komen.

Overigens ben ik wel verbaast hoe veel verschil je ziet. Dit is dus echt gewoon zoals op de foto maar dan met de sensor direct op de print? Zelfde software? Geen behuizing?

Acties:
  • 0 Henk 'm!

  • SuperKris
  • Registratie: Juni 2010
  • Laatst online: 04-06 09:37
Ik zou eens meten hoeveel stroom dat ding gebruikt en hoeveel daarvan naar de verschillende "componenten" gaat. Stel je gebruikt 50mA en 48mA daarvan gaat naar je ESP module, dan hoef je het probleem niet elders te zoeken.

Stroom besparen (en dus warmte ontwikkeling beperken) kan je doen door de externe componenten uit te schakelen en alleen aan te schakelen wanneer je deze nodig hebt. Hoe goed je dat kan toepassen op jouw componenten weet ik niet. De DS18B20 heeft bijvoorbeeld best veel tijd nodig om een meting te doen. Dit kan zo oplopen tot een seconde, maar deze zal sowieso amper stroom gebruiken.

Ik heb te weinig ervaring met ESP om iets zinnigs over het stroomverbruik te zeggen, maar voor de meeste microcontrollers gaat op dat het verbruik in slaap modus erg laag is. Schrijf je code zo efficient mogelijk zodat de uC het grootste deel van de tijd in slaapstand staat. Het is aan jou om te bepalen hoe vaak de de verschillende waarden worden uitgelezen en verwerkt. Moet dit 2x per seconde, of is 1x per minuut voldoende?

Wat heb je verder nodig aan hardware die ESP module? Ik zie wel erg veel componenten. Kan je niet zonder de USB-> serial chip bijvoorbeeld? En wat zit er verder nog allemaal op?

Ik neem overigens aan dat je de voeding met 5V doet, maar de meeste componenten zullen 3V zijn of misschien nog wel lager kunnen. Zeker als je lineaire spanningsregelaars gebruikt ben je daar ook onnodig aan het dissiperen. Met 3V voeden zal wel veel minder praktisch zijn, en ik zou de oplossing eerst zoeken in het laten slapen van de uC en componenten.

Acties:
  • 0 Henk 'm!

  • Septillion
  • Registratie: Januari 2009
  • Laatst online: 09:19

Septillion

Moderator Wonen & Mobiliteit
@SuperKris Hoef je niet te meten, is al voor je gedaan ;) ESP doet zo'n 150-250mA met Wifi. Daarvan gaat het gros op aan Wifi. Zonder Wifi is het verbruik nog maar 10-20mA. Light sleep nog maar 0,5mA en deep sleep 10-20uA.

Ofwel, de ESP is zo'n beetje een orde van grootte meer dan al het andere. Lijkt mij dus de meest logische plaats om te beginnen. Op de tweede plaats staat de CO2 sensor.
Pagina: 1