Het probleem

Op de Canta moet één indicatielampje alles over de batterij vertellen. Alleen de groene LED wordt gebruikt en die knippert in verschillende patronen voor laden, celbalancering en verwarmen. Gebruikers zien het verschil niet tussen normaal laden en een echt probleem, denken dat er iets kapot is en bellen het bedrijf. Dat kost ondersteuningstijd en vertrouwen.

Omdat het bedrijf de Canta zelf bouwt en aanpast, kan het probleem aan de bron worden opgelost: met een microcontroller tussen de CAN-bus en de indicator.

De aanpak, in drie stappen

Stap 1 · Slimmere LED's

Dezelfde drie LED's, maar elke situatie krijgt een eigen patroon. Het aantal brandende LED's groeit mee met de laadtoestand, als een balk, en verwarmen en balanceren gebruiken patronen die bij normaal laden nooit voorkomen. De driver controleert de situaties in een vaste volgorde van prioriteit.

Stap 2 · OLED-display

Een klein monochroom OLED-scherm (128×64 pixels) toont iconen in plaats van patronen die de gebruiker moet leren: een batterij die zich vult met een percentage, een vlam als de batterij wordt verwarmd, bewegende cellen tijdens het balanceren, een stekker als er geen data binnenkomt en een code bij storingen. Alle schermen worden door mijn eigen firmware pixel voor pixel getekend, zonder grafische bibliotheek.

Stap 3 · Eigen printplaat

Een eigen print met een eigen microcontroller, CAN-transceiver, voeding en het OLED-scherm, zodat het ontwikkelbord niet meer nodig is. Hij is ontworpen om goedkoop te assembleren en om op de plek van de oorspronkelijke indicator te passen.

De printplaat

De eerste prototypeprint (35 × 70 mm, twee lagen) is ontworpen in EasyEDA Pro en besteld. De afbeeldingen hieronder zijn renders van het ontwerp, geen foto's van de geleverde printen.

Render van de prototypeprint met een OLED-scherm dat het opstartscherm en een batterij op 60 procent toont
Render van de prototypeprint met het opstartscherm (links) en het laadscherm op 60 % (rechts).
Render van de print met de tien functionele gebieden gemarkeerd en benoemd
De functionele gebieden van de print.
Blokschema van de print: CAN-connector en -transceiver, voeding, STM32F103C8T6-microcontroller, OLED-voedingsschakelaar en OLED-scherm
Blokschema: de CAN-bus komt binnen, de microcontroller decodeert hem en stuurt het OLED-scherm aan.

Hoe het is gebouwd

  • Alleen meeluisteren. De module luistert alleen mee op de CAN-bus. Hij verstuurt nooit berichten en het batterijmanagementsysteem hoeft niet aangepast te worden, dus hij kan achteraf op bestaande Canta's worden gemonteerd.
  • Gevoed tijdens het laden. De module krijgt alleen stroom tijdens het laden, dus de indicatie is ontworpen voor de laadsituatie.
  • Drie berichten. De firmware decodeert drie berichten van het batterijmanagementsysteem: laadtoestand, laadfase en diagnosecodes.
  • Eén codebasis voor beide versies. De CAN-, LED- en OLED-code staan in aparte modules, zodat de LED- en OLED-versie dezelfde CAN-logica delen. De tekencode is onafhankelijk van de hardware: ik kan hem op een pc compileren en elk scherm daar renderen, en dezelfde code draait ongewijzigd op de microcontroller van de print.
  • Prototypen op een ontwikkelbord. De eerste twee stappen draaien op een Olimexino-STM32F3-bord, geprogrammeerd in C++.
  • De chip kiezen. Voor de print heb ik vier microcontrollers met CAN en I²C vergeleken. De STM32F103C8T6 is goedkoper dan de chip van het prototype, breed verkrijgbaar en komt met een langetermijn-beschikbaarheidsgarantie van de fabrikant.
  • Ontworpen voor goedkope assemblage. Alleen SMD-onderdelen, allemaal op de bovenkant, zoveel mogelijk standaardonderdelen ("basic parts") uit de catalogus van de assemblagedienst en een programmeerconnector, zodat de firmware bijgewerkt kan worden zonder de print los te halen. De print is ontworpen in EasyEDA Pro.

Stand van zaken

De LED- en OLED-prototypes waren eerder klaar dan gepland, dus ik kon in week 6 al aan de print beginnen. De print is ontworpen en de eerste prototypes zijn besteld; ze zijn nog niet binnen. Nog te doen: de printen testen, een test op een echte Canta, een bruikbaarheidscheck en een kostenvergelijking tussen de huidige module, de verbeterde LED-versie en de OLED-versie. De stage loopt tot 22 januari 2027 en deze pagina wordt bijgewerkt zodra er resultaten zijn.

Tools

  • C++
  • STM32
  • CAN-bus
  • I²C
  • OLED (SSD1306)
  • EasyEDA Pro
  • Printontwerp

Meer weten over dit project?

Ik loop je graag door het ontwerp heen.