CityEl laddarens funktion.

Så för att få en bra fuktion på laddaren är det några saker man behöver fundera på.
Skall laddaren först se om batteriet är anslutet.
Skall laddaren detektera om batteriet kopplas bort. (lösningen är kanske att minska pwm utan delay).
Skall en Soft-start rutin implementeras. (ja Soft start men inte soft shutoff).

Är batteriet anslutet:
Prova om man kan få resistans i batteriet. Om ingenting är anslutet bör pwm begränsas så att när någonting ansluts så rusar inte strömmen. En ”CheckIfBatteryConnected”-rutin bör implementeras, och först efter att laddaren detekterat batteriet bör laddningen börja.

För att få en fungerade laddare relativt snabbt så begränsas funktionaliteten initialt.
Funktioner som skall implementeras:

Ver 2.0
Check battery connected.
integrerad autostart.
Softstart
Simple error detektion. ex. battery dissconnected.

I ver 2.1 splittar vi på ladd-inteligensen och styrningen av laddning.
Laddaren skall kunna styras via CAN-Buss. Autostart blir en separat process som detekterar om laddaren styrs via can-buss. Om den inte styrs via can-bus skall den ha möjlighet till ett defaulp-ladd-program.

Ver 2.1
CAN-Bus controlled.
Möjlighet till autostart av laddning. (Om ingen CAN-bus enhet styr laddaren).
Smartare error-detekt.
Möjlighet till att köra en primary och flera slave-laddare.

 

 

 

Små LCD displayer

Jag har kollat vidare.
Om man läser ut vilket ID det är på lilla 2.8″ Displayen säger den 0C0C, men den fungerar utmärkt på 9328.

Den större 3.5″ är en 9481. Den fungerar med mcufriend_kvb.

Jag skall kolla om det finns någon generell driver jag kan använda.
Deras grapictest är mycket fräsigare med scroll-demo av hela eller delar av skärmen. Kollar vidare på det.

 

CAN och ODB2 i bilen. Några hack.

Här kommer lite info om hur man kan koppla in sig i bilens ODB2-uttag, och i många fall komma vidare in i den mer ”maskin”-relaterade CAN-bussen.
Till att börja med kommer lite info om hur man kan använda en ELM 327 Bluetooth adapter men manuellt, hur man programmerar den och vilka funktioner som finns.
Stora delar av infon kommer från denna site.

 

AVR-gcc och Eclipse

Jag är lite sugen på att gå över till att använda Eclipse som IDE för samtliga project. Både för Windows, Linux, Macos och även för Embedded utveckling. Eclipse ser ut att vara ett ok IDE, och det kan vara enkelt att använda ett och samma IDE, så att man känner igen sig.

Ladda ner Eclipse från deras hemsida och installera:
https://www.eclipse.org/downloads/?

(Old) För att installera Eclipse i Ubuntu:
http://ubuntuhandbook.org/index.php/2016/01/how-to-install-the-latest-eclipse-in-ubuntu-16-04-15-10/

För Linux c++ och för Windows är det inte några problem.
För AVR har jag testat lite med denna:
http://avr-eclipse.sourceforge.net/updatesite

Ser ut att fungera. AVR-gcc behöver vara installerad sedan tidigare.
Vill man installera senaste versionen kan man kolla på:
https://www.lxrobotics.com/setup-avr-gcc-with-eclipse

När det gäller Arduino finns en färdig Eclipse installation för detta. Man kan gå in under Help -> Marketplace och söka efter Arduino. Det finns två spår att välja. Soebere är ett försök att likna Arduino IDE mer, och Eclipse C++ IDE for Arduino 3.0 är skrivet av samma person som skrivit C++ pluginen för Eclipse och liknar mer utveckling i standard C++. Jag har valt C++ spåret för att inte bygga fast mig i Arduino, och för att likna andra typer av CPU:r som kan programmeras med C++.

Det finns även en bra sida för att komma igång med FreeRTOS för AVR.
https://feilipu.me/2011/09/22/freertos-and-libraries-for-avr-atmega/

Jag installerade FreeRTOS från ”Arduino download manager” som finns tillgänglig eter att man installerat ”Eclipse C++ IDE for Arduino 3.0”.

CAN modul

Så var det dags att kolla på hur man kommunicerar via CAN.

Första försöket blir med en gammal Lavicel CANUSB kopplad till datorn, och på andra sidan blir det en Arduino Nano med en MCP2515_CAN modul.

Jag tror att CANUSB fungerar direkt i Linux. Jag hade lite problem att få den att fungera i XP, men det har kanske mindre betydelse. Som jag förstår så är den av den gammla typen, med annan UID.

För att få Arduinon att communisera använder jag detta bibliotek.
Jag skall även kolla på Adafruits bibliotek.

 

Dator och mobilappar med Qt

Har kollat lite på hur jag kan göra mina egna dator och mobilappar och fastnat för att utveckla i Qt. Först gjorde jag ett försök med gtk men det blev för krångligt. Jag ser bara ett ev. problem med Qt och det är att man måste ha källkoden open source. Just nu är det inte något problem utan kanske bara bra.

Just nu kör jag QtCreator, men det finns en plan att utveckla alting i Eclipse, både Arduino och dator/mobilapp.

Första steget blir att bemästra några grundläggande delar som:
Standard GUI
Cross platform (Windows, MAC och Linux).
MobilApp
Threds
Serial port
Graphs
Network

parser i qt

Smedby Charger story

För er som inte redan är bekanta med SmedbyCharger kommer här sammanfattning.
Jag ville göra en laddare baserat på en Atmel-prosessor. Arduino blev det naturliga valet och efter lite uppfriskande av gamla programmerings kunskaper fick jag klart för mig att OOP (Object Orienterad Programmering) var bra, eller rentav nödvändigt om man skall göra en robust och pålitlig produkt. Jag ville göra den bästa laddaren som finns, så OOP det blev.
PWM output, analog (ADC) input med analog filter och digitalfilter på det. Analog strömmätning. några LED och knappar, vips så var det nästan klart.
Hittade även appen LogViewer, som loggar laddning från div. RC laddare och beslutade mig för att integrera min laddare mot LogView.
En LCD-display är också bra att ha.

Tanken var att först göra en laddare till mina 9,6V accar, som jag använder till el-sparkcykeln. Men jag vill även kunna göra en laddare till City-El:n och även en färdig platform för att uppgradera en ”osmart” bilbatteri laddare till en smart laddare.
Leverans av data till LogView fungerar bra. Uträkning av mAh ser ut att fungera. Delta peak V fungerar bra. Så vad kan bli bättre??
Skall den vara WiFi ansluten??
Skall den få en full-matrix LCD??