zondag 16 april 2023

Hardtop - Achterschelp aanpassingen

De tweedehands hardtop die ik alweer een hele tijd geleden heb aangeschaft ziet er niet meer zo fris uit. Dat mag, het is een tweedehandsje nietwaar. En da's eigenlijk best fijn, want dan durf je er ook her en der een stuk schuurpapier tegenaan te zetten. Gaat wel weer een heleboel tijd in zitten. Op het moment dat ik dit schrijf is er trouwens al een heleboel tijd in gaan zitten. Dus bij dezen even een update.

Eerst maar eens enkele details. De hardtop is er een in de typische Burton Car Company-kleuren; oranje en zwart, met de website onder het achterruitje. Daar gaan we natuurlijk afscheid van nemen. Ik denk dat als je in een Burton rijdt je al genoeg reclame maakt voor BCC. De kleur wordt (waarschijnlijk) gewoon helemaal zwart, net als de body.


Misschien iets te vast aangetrokken?


..en wat spanning in het polyester.





Wil je dit weer een beetje fraai krijgen moet je ferm ingrijpen. Je weet wel, zachte heelmeesters... Dus de powerfile en de Dremel komen weer tevoorschijn.








De rand heeft van onderen een holle vorm. Hier zit normaliter nog een stuk chassisband onder geplakt. Mooi om af te dichten, maar het risico van spanning in het laminaat als de bevestigingsschroeven te vast aangedraaid worden ligt op de loer. De pasvorm is trouwens sowieso niet super en dat helpt niet mee:


Je kijkt zo naar buiten onder de rand van de schelp door.


Om de schelp beter op de body aan te laten sluiten wil ik een dikke rups plamuur onder de rand smeren. Vervolgens wordt dan de schelp op de juiste positie op de body gedrukt. Als dan het plamuur uithardt, zal de schelp de vorm van de body precies aannemen. Dat is althans het idee.

Om dit plan goed uit te voeren moet de schelp wel precies op de juiste positie geplaatst worden. En dat is gemakkelijker gezegd dan gedaan. De hardtop heeft op zijn zachts gezegd een uitdagende pasvorm. Om de schelp goed te plaatsen moet de gehele hardtop geplaatst worden. Dus ook de vleugeldeurtjes.




Nu kan de kier tussen de deur en de schelp gesteld worden. Daar heb ik wat latjes voor gebruikt. Maar zelfs dan kreeg ik de onderdelen niet fijn uitgelijnd. Daarom heb ik ook nog wat gaatjes geboord om de deurtjes met wat boutjes/moertjes te bevestigen aan de achterschelp. Die gaatjes plamuur ik later wel weer dicht.


Latjes, boutjes en moertjes...


...en aan de andere kant ook.


Nu alles ten opzichte van elkaar juist zit - weliswaar met nog best wat spanning - staat de achterschelp op zijn plek. Tijd om de bevestigingsgaten te boren. Normaliter vijf gaten, maar ik wil nieuwe gaten boren en - net als bij de spatborden, eigenwijs als ik ben - iets méér dan BCC voorschrijft.


Nieuwe gaten.


Op zijn plek.


Nu de plaats van de schelp 'definitief' is, kan de rand aangesmeerd worden. Ik heb gekozen voor epoxy-plamuur. Is iets duurder dan polyester-plamuur, maar heeft - ook op polyester - een betere kleefkracht. Bovendien krimpt het niet, zoals polyesterplamuur wél een beetje doet. De onderrand heb ik met de powerfile goed opgeruwd. De body had ik al beplakt met schilderstape, maar daarop heb ik plastic tape geplakt en die heb ik nog ingesmeerd met wax. Dit om de plamuur maar niet op de body te laten plakken.


Afstandhouders.


Met afstandhouders is wat ruimte geschapen om goed wat plamuur onder de rand te krijgen. Nadat er genoeg plamuur onder de rand zat, zijn die afstandhouders verwijderd en zijn de bouten licht aangedraaid. Die bouten zijn vooraf voorzien van kaarsvet zodat ze later wat gemakkelijker los komen.


Kaarsvet op de bouten.


Lekker in de plamuur gedrukt.


Nu uitharden en hopen dat de rand goed los komt. Met wat motivatie is dat goed gelukt.



Na lossing ziet de rand er zo uit.


Met een stukje grof schuurpapier is de rand netjes geschuurd. Vooral in de hoeken zit er best een dikke rand plamuur onder. Dat zijn vast de plekken waar voorheen de meeste spanning ontstond.


De rand van onderen gezien.


Natuurlijk nog even kijken of de schelp nu beter past:


Even passen...


Daar lijkt het wél op 😁. Geen kieren meer, dus voorlopig blij met het resultaat. Maar we zijn nog lang niet klaar, dus er komen nog wel wat vervolgberichtjes.

vrijdag 24 februari 2023

Zijruitjes

Alweer een hele tijd terug werd ik door een andere Burton-bouwer getipt dat er een hardtop op Marktplaats stond. Hij wist dat ik die eentje bij mijn (nog te bouwen) Burton zocht, dus die heb ik toen aangeschaft. Een tweedehandsje... en dat is er wel aan te zien. Maar daar gaat dit bericht niet over, althans niet direct. Bij de hardtop zitten twee zijruiten, de klapraampjes van de Eend. Een design touch waar de gebroeders Göbel trots op mogen zijn. Ook die zagen er bij de hardtop niet meer zo chokotoff uit, dus tijd voor een opfrisbeurt. Dat gaat het gemakkelijkst als de ramen gedemonteerd zijn.


De WD40 vloeit rijkelijk.


De scharnierdelen komen redelijk gemakkelijk los. Om het raam uit elkaar te halen moeten echter ook de twee boutjes onderin losgedraaid worden. Dat ging niet goed. Van beide ramen zijn drie van de vier boutjes kapot gedraaid.


Hier gaat het mis.


Onbruikbaar...


Brrr, waar ben ik aan begonnen.


In het frame zit een stukje staal met hierin drie gaten met getapte schroefdraad. Twee gaatjes om de twee framedelen aan elkaar te bevestigen en eentje voor het "pionnetje" (bij gebrek aan een beter woord) dat als doel heeft om het klapraam in de open stand te fixeren. Dat pionnetje zit voorbij de bocht in het frame. Het stukje staal gaat dus ook de bocht om. Ik schrijf "stukje staal", maar daar is wel wat van verdwenen in de loop der jaren.


Beetje roestig ;-).

Het dunne puntige deel van het stukje staal (zie foto hierboven) is afgebroken van het deel dat nog in het frame zit - daar waar het pionnetje nog in vast zit. Dat stukje laat ik zitten. Ben bang dat die pionnetjes er ook niet heel uit komen namelijk. Om het raam uit elkaar te halen hoeft dat sowieso niet los. Bij het in elkaar zetten spuit ik hier een overmaat aan tectyl in zodat het niet zo gemakkelijk verder roest.

Om het frame weer aan elkaar te bevestigen heb ik twee vervangende plaatjes gemaakt. Ditmaal van RVS. Had meneer Citroën van mij ook wel mogen doen.


M4 gaatjes getapt in een plaatje RVS.


Zo, het eerste raam is na wat krachttermen uit elkaar:


Een berg vieze, maar wel herbruikbare onderdelen.


Afwasmiddel en Dasty, ijzersterke combinatie.


Vieze onderdelen, maar niets wat een uitgebreide wasbeurt niet kan oplossen. Na drogen nog even de frames polijsten en het ziet er weer fris en fruitig uit.


Alles weer netjes, klaar voor montage.


Het rubber is ingesmeerd met glycerine. Ik heb ergens gelezen dat je beter geen vet, afwasmiddel of - erger nog - vaseline kunt gebruiken omdat het rubber hierdoor extra snel veroudert. Glycerine gebruiken als glijmiddel dus. Althans bij het monteren van ruitrubbers.

Ik weet niet of er een geëigende volgorde van monteren is, maar ik heb eerst het raamrubber in het lange frame geplaatst en toen het raam hierin geschoven.




Vervolgens het nieuwe schroefplaatje aan één kant tijdelijk bevestigd. 




Daarna het korte framepje geplaatst. Steeds met een behoorlijke hoeveelheid glycerine. Voordat de boutjes met het afdekplaatje definitief aangedraaid zijn, is wat spanning op het glas en de frames gezet.




Nieuwe inbusboutjes.


De ramen zitten weer in elkaar.


Nu nog even inpakken en opbergen voor later.

dinsdag 20 december 2022

Snelheidsmeter

Eerder al heb ik wat berichten (hier en hier) geschreven over de snelheidssensor en hoe die het analoge signaal van de versnellingsbak (lees: kabel naar de oorspronkelijke snelheidsmeter) omzet naar een digitaal signaal (blokgolf). De sensor geeft twee pulsen per omwenteling. Als de k-factor gelijk is aan 1.0, dan betekent dit per omwenteling precies één meter afgelegde weg.


Bij 120 km/h (haal ik waarschijnlijk nooit) wordt één meter afgelegd in 3600 [s/h] / 120 [km/h] = 30 milliseconde. De lengte van één puls is dan minimaal 30 / 4 = 7.5 milliseconde. De ESP32 heeft een standaard Tick Time (o.a. gebruikt voor het schakelen tussen Tasks) van 10 milliseconde. De puls al pollend inlezen in een Task is dan geen optie. Hiervoor is de blokgolf/pulstrein te snel. Met een Interrupt moet dit echter wél lukken. Interrupts kunnen de 'normale' afloop van het programma onderbreken. Wanneer een Interrupt Event optreedt, wordt een Interrupt Service Routine (ISR) aangeroepen. Dit is een functie die gebruikt wordt om het event af te handelen.

In eerste instantie heb ik gekozen om de interrupt zo in te stellen dat deze reageert op de opgaande flank van de blokgolf. Telkens wanneer de ISR doorlopen wordt, wordt de systeemtijd (het aantal microsecondes vanaf de start) van de microcontroller in een buffer gezet. Die buffer (de juiste term is eigenlijk Queue) wordt later door een 'normale' taak uitgelezen en verwerkt tot snelheid.

De eerste resultaten van deze opzet waren niet bepaald hoopgevend. Om niet te zeggen: frustrerend slecht. De tijd tussen twee pulsen schiet echt alle kanten op.

Pulstijd bij verschillende snelheden van de accuboormachine

In bovenstaande grafiek wordt de tijdsduur tussen twee interrupts in microsecondes getoond. Een korte tijd is een hoge snelheid. De meting is uitgevoerd met een accuboormachine die omgerekend ongeveer een snelheid van 120 km/h kan nabootsen. Maar wat gaat hier nu mis? Is dit een elektrisch, mechanisch of softwareprobleem? Hoe dan ook, het moet opgelost worden want met deze data kan ik geen stabiel en actueel snelheidssignaal genereren.

Mogelijk ligt het aan de snelheidskabel. Da's nog de oude kabel uit de Eend. Ik heb de snelheidsmeter in de Eend ook wel eens op en neer zien trillen bij bepaalde snelheden. Dit probleem is uit te sluiten door een meting te doen met de boormachine direct op de speedsensor; dus zonder kabel ertussen. Helaas zien die metingen er ongeveer hetzelfde uit.

Een andere mogelijkheid is de boormachine zelf. Het is er een van het brushless type. Hierin zit een softwarematige besturing van de elektromagneten die misschien iets van onbalans veroorzaakt. Een meting met een oude boormachine mét koolborstels laat ook weer zien dat het probleem niet opgelost is.

Elektrisch misschien? In eerste instantie leek dit voor mij onwaarschijnlijk omdat de meting optisch is, er een laagdoorlaatfilter met een tijdsconstante van 1 milliseconde toegepast is en de analoge meting netjes digitaal gemaakt wordt met een LM393 comparator.

Dan moet het wel aan de software liggen. Maar veel simpeler dan wat er nu geprogrammeerd is, kan het niet gemaakt worden. De ISR leest 'slechts' de processortijd uit en zet die in een buffer. Gaat er dan toch iets mis met de interruptafhandeling in de ESP32 zelf? Of zit hier jitter op of lagging in, in verband met het Real Time Operating System (FreeRTOS) van de ESP32? Het gebruik van een interrupt in een Task Switching systeem is ook wel een beetje discutabel... "Op een andere manier meten", tipte een collega. Da's natuurlijk geen slecht idee. Om uit te sluiten dat de interruptafhandeling van de ESP32 debet is aan het probleem, heb ik de meting in een Arduino UNO geprogrammeerd. De Arduino heeft geen RTOS en is hierdoor per definitie veel eenvoudiger. Er is niet veel wat de werking van de interrupt kan beïnvloeden.

De test met de Arduino liet twee problemen zien:
  1. Met enige regelmaat (ongeveer 50%) wordt de interrupt twee keer direct na elkaar afgevuurd.
  2. De tijdsduur tussen de interrupts is de helft van wat de ESP32 als resultaat gaf.
Probleem 2. is erg vreemd, want dat zou betekenen dat de Burton 240 km/h zou rijden ;-). Het lijkt net alsof de neergaande flank ook een interrupt oplevert. Probleem 1. zou betekenen dat er iets met de opgaande flank aan de hand is. Het wordt tijd om de blokgolf nog maar eens met een oscilloscoop te bekijken (5 milliseconde per divisie):


120 km/h: pulslengte ongeveer 7.5 milliseconde


Bovenstaand plaatje komt overeen met ongeveer 120 km/h. Mooie nette pulsen, korter zullen ze niet worden. Geen reden tot zorg toch? Als er echter ingezoomd wordt op de opgaande flank (500 nanoseconde per divisie), dan wordt de oorzaak duidelijk:


Onregelmatigheden in de opgaande flank.


De opgaande flank ziet er in het microseconde-bereik helemaal niet zo mooi uit. Het is heel goed mogelijk dat er twee opgaande flanken gedetecteerd worden. Dus twee snelle interrupts na elkaar. Probleem 1. is hiermee verklaard. Als er vervolgens naar de neergaande flank gekeken wordt (geen plaatje van), dan zie je ook hier wat bouncing/dender. Heel goed mogelijk dat ook hier een opgaande flank gedetecteerd wordt. Mooi, want dat verklaart probleem 2.

Interrupt events in opgaande en neergaande flank


Wel vreemd dat de LM393 dit lijkt te veroorzaken. Een snelle blik in de datasheet van de LM393 laat zien dat deze comparator een Response Time heeft van 300 nanoseconde.


Response Time uit de datasheet van de LM393


Dat klopt wel ongeveer met het scope-beeld hierboven. Verderop staat er nog een notitie in de datasheet:



www.ti.com


"Oscillation Tendencies", daar had ik geen rekening mee gehouden. Ze worden minder als de weerstand aan de ingang kleiner is dan 10 kOhm. Bij mij is die weerstand precies 10 kOhm, dus dat er nog iets dendert valt dus te verwachten. De interrupt van de Arduino/ESP32 pikt die oscillaties naadloos op.

Nu de oorzaak bekend is, kan een oplossing bedacht worden. Die is eigenlijk achteraf gezien niet zo ingewikkeld. Door een tweede interrupt binnen een bepaalde tijd ná de eerste te negeren (het grijze vlak in onderstaande figuur) wordt probleem 1. opgelost. Als de software zo geconfigureerd wordt dat er naast de opgaande flank ook een interrupt gegenereerd wordt voor een neergaande flank, en dat ook hier een snel opvolgende tweede interrupt genegeerd wordt, houden we twee nette interrupt events over. Eentje op de opgaande flank en eentje op de neergaande flank.


Twee nette voorspelbare interrupt events


Dat betekent dat er vier events per omwenteling optreden (het vijfde event in onderstaande figuur is het eerste event van de volgende omwenteling). De vier tijdsduren bij elkaar opgeteld levert precies de tijd op van één volle omwenteling en dus één meter afgelegde weg. Ideaal om de snelheid mee uit te rekenen.




Dit alles levert het volgende resultaat op met een Arduino:


Omwentelingstijden bij verschillende snelheden van de accuboormachine


Dat ziet er strak uit. De software is ongeveer een-op-een van de Arduino naar de ESP32 gezet, met als resultaat dat het hierin nu ook prima werkt. Da's fijn, want nu hoef ik in ieder geval geen nieuwe oplossing te zoeken in de hardware. Zoals de collega het al tipte, soms is het nodig om even uit te zoomen en op een andere manier te meten om achter eventuele problemen en bijbehorende oplossingen te komen.


zondag 11 december 2022

Brandstofmeter

De tankinhoud, die weergegeven wordt op het display in het dashboard - wordt gemeten met een vlotter in de tank die via een armpje een soort van potentiometer bedient. De weerstand is hoog als de tank leeg is en laag als die vol is. Jammer genoeg heb ik de tank niet uitgeliterd, dus de precieze weerstand per liter brandstof is niet helemaal bekend. Wat ik wél weet is de weerstand bij een lege tank - die kan ik namelijk meten nu er nog geen benzine in zit. De multimeter toont 380 ohm. Verder vermoed ik dat de weerstand ongeveer 0 ohm zal zijn als de tank vol is.
Ik kan natuurlijk ook nog wat meten aan de brandstofmeter in het dashboard van de Eend. Door hier een potmeter op aan te sluiten kan ik de vlotter nabootsen. Hoe die aangesloten moet worden is nog niet zo voor de hand liggend. Het metertje is namelijk van het type kruisspoelmeter.


Schematische weergave



In de meter zitten twee spoeltjes die kruislings geplaatst zijn. De spoeltjes zijn in serie aangesloten op de accuspanning. Tussen de twee spoeltjes zit een middenaftakking die naar de tankvlotter gaat. Als de tankvlotter een relatief hoge weerstand heeft gaat er door de twee spoeltjes ongeveer dezelfde stroom en genereren ze dus een vergelijkbaar magnetisch veld. Ze zijn in evenwicht en de meter staat nu op 0 (leeg). Als de weerstand van de tankvlotter afneemt, zal een deel van de stroom via de middenaftakking naar de tankvlotter lopen. Door het eerste spoeltje loopt nog de 'volledige' stroom, door het tweede spoeltje echter maar een deel. De spoeltjes zijn steeds meer uit evenwicht waardoor de meter uitslaat richting 1 (vol). Het fraaie van dit systeem is dat de voedingsspanning nauwelijks invloed heeft op de uitlezing. Het gaat niet zozeer om de absolute stroom door de spoeltjes, maar de verhouding van de stroom door de twee spoeltjes die de uitslag van de meter bepaalt.


De 'echte' spoeltjes.


Het is een beetje moeilijk te zien, maar op bovenstaande foto zie je de kruislings in elkaar geschoven spoeltjes.


De aansluitingen


Nu de potmeter (van bijv. 1 kohm) tussen de VLOTTER-aansluiting en de GND zit en de voeding (12V) aangesloten is, kan gecontroleerd worden bij welke weerstand de meter op vol en leeg staat.



spanningsloos



380 ohm



116 ohm



0 ohm


Conclusie: bij 380 ohm geeft de meter inderdaad leeg aan. Bij 0 ohm wordt vol aangegeven. Ik heb nog wat tussenstanden gemeten en kom tot de volgende tabel en grafiek:


Tabel incl. trendlijn


De wijzer van de meter staat precies op nul als de weerstand 300 ohm is. Boven de 300 ohm (tot 380 ohm) zie ik als een soort van 'reserve'. Misschien dat ik een lampje laat branden in het dashboard om dit aan te geven. De kolom 'trendlijn' laat de uitkomst van de trendlijn-functie zien die in Excel is bepaald. In onderstaande grafiek is de trendlijn (met formule) te zien die door de meetpunten loopt.


Grafiek met curve fit


Ik denk dat een rechte lijn van het beginpunt tot het eindpunt ook heel goed werkbaar is, maar omdat ik toch de beschikking heb over rekenkracht, kan ik daar net zo goed gebruik van maken.

De weerstandswaarde van de vlotter wordt in mijn Burton door één van de microcontrollers gemeten door deze in serie met een vaste weerstand te schakelen. De spanning tussen de twee weerstanden gaat variëren als er meer of minder brandstof in de tank zit. Die spanning wordt gemeten via een analoge ingang en met bovenstaande formule omgerekend naar liters.