zondag 30 mei 2021

Neusbeugel 2

Als het beugeltje uit het vorige bericht het "neusbeugeltje" heet, dan mag de beugel uit dit bericht wel de "neusbeugel" heten. Het neusstuk - of het front - wordt aan de voorkant bevestigd op het chassis. In de twee voorste hoeken van het neusstuk zitten platte horizontale stukken waar nog gaten in geboord moeten worden. Hier gaat dan een bout doorheen richting het chassis. Maar...

  • De body staat ietsje schuin naar rechts op het chassis om rechtsvoor wat meer ruimte te geven (dynamo), dus aan die kant zit het neusstuk wat minder ver op het chassis dan aan de linkerkant.
  • Het neusstuk rust niet echt op het chassis, maar hier zit nog een luchtspleet tussen. Bij mij ongeveer 10 mm. Dit is nodig om de schuine naad met de body netjes te volgen.
  • De afstand aan de binnenkant van het neusstuk tot de sluitmoer van de kleppendeksels is niet veel meer dan de dikte van een vinger.
  • De motorkap moet netjes passen op het neusstuk.

De naad tussen front en body


Ruimte tussen neus en chassis


Meerder factoren om rekening mee te houden. De handleiding doet hier vrij luchtig over: "gaatje boren door het gat van het chassis van onder uit... vulbus of carrosserieringen plaatsen". Hmmm. Ik ga maar weer voor een eigen beugeltje waarmee ik zowel de hoogte als de positie (links/rechts) in kan stellen. Komt'ie:


De neusbeugel uit een stukje 5 mm aluminium

De drie verzonken boutjes steken van onderen door het glasvezel met een carrosseriering en een nyloc aan de bovenkant. De kracht wordt hierdoor verdeeld over een groter oppervlak. Het opstaande deel van de beugel wordt aan de binnenkant van het chassis bevestigd.


Zoiets...

Nog even check dubbelcheck of aan alle kanten het neusdeel nog goed zit en dan de gaten overnemen op het glasvezel.

Beugel vast aan de neus

Op de foto is goed te zien dat de onderkant van de neus niet lekker in lijn ligt met het chassis. De neusbeugel 'overbrugt' deze verschillen.


Beugel vast aan het chassis (M6 bolkop-bout).

Goed, de rechterkant zit vast. In onderstaande foto is de ruimte tussen het chassis en het neusstuk goed te zien. De beugel heeft een hoek die ietsje kleiner is dan 90 graden; dit om de hoek van het laminaat te volgen.



Moer aan de binnenzijde van het chassis


Nu nog de linkerkant. Moet lukken de komende week.

Neusbeugeltje en oude plakband

Vandaag weer genieten van het mooie weer. Ook nog aan de Burton gewerkt. De neus/het front weer eens uit het stof gehaald. Meteen al een dikke tip: laat schilderstape niet te lang zitten. Dat zat er nog op van toen ik een behoorlijke tijd terug alles al eens gepast heb. Destijds natuurlijk om eventuele krassen te voorkomen. Nu is het er niet gemakkelijk meer af te krijgen en laat het vervelende lijmresten achter die met aceton weliswaar te verwijderen zijn, maar zonder lichte krasjes zal dat niet lukken.


Lijmresten schilderstape


De neus heb ik al eens helemaal uitgepast. Volgens de handleiding zet je de twee hoekjes rechts- en linksboven vast aan de body met een boutje en moertje.


Uit de nieuwe handleiding

Uit de oude handleiding


Zelf vind ik dat je dan vrij gemakkelijk teveel kracht zet op het dunne laminaat en het risico loopt dat het hoekje barst of zelfs afbreekt. Misschien ben ik te voorzichtig, maar ik ga hier een beugeltje achter bevestigen.


Beugeltjes van aluminium


Beugeltje bevestigd


Twee boutjes op afstand van het fragiele hoekje.


De boutjes en carrosserieringen vallen weg onder de motorkap en blijven dus uit het zicht. De bevestiging is solide. Voelt goed. Nu nog de bevestiging van de neus aan de voorzijde op het chassis. Daar moet ik nog een list voor verzinnen.

zaterdag 15 mei 2021

CAN-bus - Deel 3: Bit stuffing

In deel 1 en deel 2 van de 'serie' over de CAN-bus is al wat verteld over het principe van deze communicatiebus. In dit deel wil ik wat vertellen over het praktisch meten aan de bus. De ESP32-microcontroller bevat hardware aan boord voor het CAN-protocol. Mijn software gebruikt deze hardware via een driver die door Espressif (de bouwer van de ESP32) aangeboden wordt. De CAN-hardware van de chip gebruikt twee GPIO's - TX en RX - voor de verbinding met de bus. De ESP32 kan echter niet rechtstreeks aan de bus gekoppeld worden, hier moet nog een transceiver tussen.

Om de CAN-bus te kunnen debuggen kan gebruik gemaakt worden van een protocol analyser of een oscilloscoop. Ik heb de beschikking over een HP 54603B digitale scope met nog zo'n prachtig groen schermpje. Deze heeft twee ingangskanalen, ideaal om de CAN-High en CAN-Low signalen gelijktijdig te bekijken. Ben wel benieuwd of alles op beeld er een beetje netjes uit ziet en of ik het allemaal snap.

Mijn testopstelling

Om te testen wordt de knipperlichtaansturing gebruikt. Vanuit de centrale dashboard-node (in bovenstaande foto het bread board) worden achtereenvolgend twee CAN-berichten verstuurd: knipperlicht-links-aan en knipperlicht-links-uit. In mijn CAN-berichtenlijst zijn dit de berichten met respectievelijk de berichtnummers 14hex en 15hex. De scope wordt zo ingesteld dat deze triggert op een opgaande flank van CAN-high en plukt zo een volledig bericht van de bus:

Een volledig CAN-bus-bericht.

Op het plaatje is te zien dat voordat het bericht begint er geen verschil is tussen de spanning op kanaal 1 en kanaal 2. Zowel CAN-High als CAN-Low voeren een spanning van iets minder dan 2.5 volt. Da's ongeveer de helft van de voedingsspanning van 5 volt. Dit is de recessive status en komt overeen met een digitale '1'. Het bericht begint met een startbit waarbij CAN-high en CAN-low actief uit elkaar getrokken worden. Er staat nu iets meer dan 2 volt spanning tussen CAN-low en CAN-high. Dit wordt de dominant status genoemd en komt overeen met een digitale '0'.

In de software is voorlopig gekozen voor een bussnelheid van 25 kbit per seconde (nog niet al te snel dus) wat neerkomt op een tijdsduur van 40 microseconde per bit. In het scope-beeld zie je de t1-cursor op 200.0us, en de t2-cursor op 240.0us staan, hetgeen precies overeen komt met het verwachte verschil van 40us. Eens kijken of het bericht ontcijferd kan worden. Hieronder de twee berichten om het linker knipperlicht aan en uit te zetten:

Knipperlicht uit.

Knipperlicht aan.

In bovenstaande plaatjes heb ik bij de elektrische niveaus de digitale nullen en enen geplaatst. Wat direct opvalt is dat de twee berichten niet dezelfde lengte hebben, het knipperlicht aan-bericht is een bit langer... Het koste even wat hoofdbrekens om te achterhalen wat dit zou kunnen veroorzaken. Google bracht het antwoord, maar eigenlijk had ik het moeten weten. Leeftijd zullen we maar zeggen.

Alle nodes op de CAN-bus gebruiken de opgaande en neergaande flanken van het elektrische signaal om zich met elkaar te synchroniseren. Als er nu bijvoorbeeld veel nullen opeenvolgend in het bericht zitten, dan ontbreekt gedurende een relatief lange tijd een flank waarop nodes zich kunnen synchroniseren met als potentieel gevolg dat een node uit sync raakt en zich kan vergissen in het aantal nullen. Om dit te voorkomen wordt in het CAN-bericht telkens wanneer er vijf gelijke bits voorkomen een extra bit van tegengestelde waarde toegevoegd. Hiermee wordt een signaalflank geïntroduceerd en zo een mogelijkheid om de communicatie synchroon te houden. Dit principe wordt bit stuffing genoemd. De versturende partij stuft de bits in het bericht, de ontvangende partij haalt ze er weer uit. Er kunnen in het ene bericht meer stuffed bits zitten dan in het andere bericht. Zo ook in het knipperlicht-aan-bericht.


Het ontrafelen van het knipperlicht uit-bericht gaat als volgt. Na vijf gelijke bits zit er dus een stuffed bit in dit bericht.

Bericht met stuffed bits (twee stuks) nog aanwezig. Zie bovenstaand scope-beeld:
00000100101010000010000101100011100110

Bericht met stuffed bits verwijderd:
000000010101000000000101100011100110

De onderdelen van het bericht zijn:
0                    Startbit
00000010101          Berichtnummer (id)
0                    RTR
0                    Extended Format
0                    Reserved
0000                 Data Length
0010110001110011     CRC + delimiter
0                    Acknowledge bit

  • Het berichtnummer klopt, 000 0001 0101 komt overeen met 15hex.
  • Het RTR-bit klopt. Het is geen Remote Transmission Request maar een normaal bericht.
  • Het Extended Format wordt niet gebruikt. Gewoon 11-bits berichtnummer.
  • Er wordt geen gebruik gemaakt van data-bytes, de Data Length staat dus op 0.
  • De Cyclic Redundancy Checksum zal juist zijn, anders wordt het bericht niet geaccepteerd.
  • Het Acknowledge-bit wordt door de ontvangende node(s) naar '0' geforceerd.
In de scope-beelden is het acknowledge bit (het gele cirkeltje) te herkennen omdat het een net ietsje afwijkend spanningsniveau heeft. Dat niveau wordt niet bepaald door de zendende maar door de ontvangende node, vandaar.


Voor het bericht knipperlicht aan gaat dat op gelijke wijze. Het bericht bevat drie stuffed bits en is dus precies één bit langer dan het knipperlicht uit-bericht:

Bericht met stuffed bits (drie stuks) nog aanwezig:
000001001010000010000011101000010101010

Hieruit volgt het berichtnummer 00000010100 ofwel 14hex.

Met een oscilloscoop is een CAN-bericht dus vrij gemakkelijk te debuggen. Alweer een mooie eigenschap van de CAN-bus. Geen wonder dat de bus zo populair is in (o.a.) de automobielindustrie. 

PS.
Voor de die hard nerds onder ons 😉, het principe dat een '0' en een '1' ieder hun eigen specifieke elektrische niveau hebben wordt het NRZ-principe (Non Return to Zero) genoemd. Een alternatief hierop is het Manchester-principe waarbij bijvoorbeeld een '1' met een opgaande en een '0' met een neergaande flank gepresenteerd wordt. Bit stuffing is dan niet nodig omdat er inherent veel flanken zijn waarop gesynchroniseerd kan worden.

donderdag 6 mei 2021

Brandstoffiltertje

Nu de motor weer loopt (zie vorig bericht) wordt het tijd om de brandstofleiding definitief te maken. De leiding ligt al vanuit de tank naar de linker voorpoot. Ook de brandstofpomp zit al op zijn plek met een slangetje naar de carburateur. Nu nog de aansluiting aan de zuigzijde van de brandstofpomp. Ook wil ik nog ergens een brandstoffiltertje plaatsen.

MANN FILTER inline fuel filter type WK 31/2.

Bij de eend had ik ook zo'n filtertje en die had ik voor het gemak tussen de brandstofpomp en de carburateur zitten. Maar dat is eigenlijk niet zo'n goed idee omdat de brandstofleiding daar op druk staat en elke koppeling een potentieel lek is. Koppelingen moeten voor de veiligheid aan deze kant van de pomp ook voorzien worden van slangenklemmen. Tussen de pomp en de tank hoeft dit in principe niet omdat hier geen overdruk heerst. Kan wel zo zijn, maar ook daar gebruik ik voor mijn gemoedsrust gewoon slangenklemmen.

Het filtertje wil ik niet zomaar laten hangen maar bevestigen aan de chassispoot. Hiervoor ga ik een beugeltje maken. Tijd om de 3D-printer weer uit het stof te halen. Eerst maar eens een ontwerpje maken in Tinkercad.

Dit is de bedoeling.


De onderdelen worden gemaakt van PETG, daar is wat gemakkelijker mee te werken dan ABS waar ik ooit mee begonnen ben, maar weer ietsje lastiger dan PLA. Het liefst zou ik alles printen in PLA, maar dat is bio-afbreekbaar en dus niet zo geschikt voor de buitenkant van de auto. Het was wel weer een halve dag prutsen voordat ik de 3D-printer weer de baas was.


Het onderblokje.

Het bovenblokje.


Het onderblokje wordt tegen het chassis gemonteerd met een M4-imbusboutje. In dit blokje tap ik M4-draad voor de bevestiging van het bovenblokje. Dat tappen van draad gaat best goed, hoewel je daar natuurlijk geen boutje met 100 Nm in moet draaien. Het bovenblokje heeft nog een opstaand randje waarmee het filtertje nog een beetje tegen de elementen beschermd wordt.


Na enkele mislukte pogingen gaat het printen nu goed.


De onderdelen print ik met een wanddikte van 2 mm. Zo worden de blokjes lekker stevig. Het filtertje zelf wordt geklemd op het dikkere stukje buis van 8 mm. Het dunnere buisje van 6 mm steekt dan uit zodat hier de brandstofslang op bevestigd kan worden.


Het resultaat.


Vanuit een andere hoek.


In de chassispoot worden twee gaatjes geboord en hierin wordt ook 4 mm draad getapt. De twee onderblokjes passen met vier centimeter lengte tussen de randen van de chassispoot. Het is allemaal ontworpen voor het Der Franzose-chassis.


Zo dus...


Als laatste nog de brandstofslangen aansluiten. Met - zoals gezegd - slangenklemmen. En dat zijn nog van die ietsiepietsie oversized klemmen ook. Ik moet nog opletten dat ik niet in een hogere belastingschaal kom te zitten.





En nu maar enkele reservefiltertjes aanschaffen voordat de afmetingen veranderen...