Keresés

Részletes keresés

titusz99 Creative Commons License 2015.12.30 0 0 1506

Nézd meg a bootloader-ek forrását - wdt- re kell keresni.

Ami a biteket illeti máshol kell beállítani.

Benne volt a linkelt anyagban.

 

ATmegaBOOT_168.c:

 

int main(void)
{
    uint8_t ch,ch2;
    uint16_t w;

#ifdef WATCHDOG_MODS //<- Ez nincs definiálva
    ch = MCUSR;
    MCUSR = 0;

    WDTCSR |= _BV(WDCE) | _BV(WDE);
    WDTCSR = 0;

    // Check if the WDT was used to reset, in which case we dont bootload and skip straight to the code. woot.
    if (! (ch &  _BV(EXTRF))) // if its a not an external reset...
        app_start();  // skip bootloader
#else
    asm volatile("nopnt");
#endif

Előzmény: szatti (1505)
szatti Creative Commons License 2015.12.30 0 0 1505

Hol van ez a kapcsoló?

Nincs véletlenül ott egy olyan kapcsoló is ami a code protectet kapcsolja be?

Előzmény: titusz99 (1497)
Törölt nick Creative Commons License 2015.12.30 0 0 1504

Befejeztem egyelőre a kisérletezést, rendeltem még 2 db nanot.

Kiszedtem a fűtésvezérlőből egy nanot, nem működik az usb csatlakozása.

ICSP csatlakozással összekötöttem a tartalék nanoval, azt előtte felprogramoztam ArduinoISP-nek IDE 1.6.7-el, arról simán működik a bootloader feltöltése.

A wdt funkciót így nem tudtam tesztelni.

Előzmény: szatti (1503)
szatti Creative Commons License 2015.12.30 0 0 1503

Van egy Megám is. Most próbáltam ki a Watchdogot. Persze ezen sem működik!

Előzmény: Törölt nick (1494)
szatti Creative Commons License 2015.12.30 0 0 1502

Vicces ez a számítástechnika.

 

A programom 1 hónapig működik hibátlanul, majd egyszercsak nem.

Átírtam a részt ahol megakadt, most működik.

Nem értem az okát. A kritikus programrészlet:

 

// send data length
cmd = "AT+CIPSEND=";
cmd += String(getStr.length());
ser.println(cmd);

if(ser.find(">")){
ser.print(getStr);
}
else{
ser.println("AT+CIPCLOSE");
// alert user
Serial.println("AT+CIPCLOSE1");
}

}
return;
}

 

Itt ugye if után várja a >  karaktert ami meg is érkezik, csak éppen nem fogja fel csupán 30-40 alkalomból egyszer.

Kihagyva az if-et és társait, csak simán küldöm az adatokat, így működik.

Ezt soha nem fogom megérteni, főleg, hogy egy hónapig így működött stabilan.

szatti Creative Commons License 2015.12.29 0 0 1501

Véletlenül kifoghatsz olyat is :-)

Cseréld le a bootloadert és nem kell rendelni!

Előzmény: Törölt nick (1494)
titusz99 Creative Commons License 2015.12.29 0 0 1500

Én direktbe programozom Arduino IDE-ből.

Egyenlőre a minta:

Nano küld serial-on adatokat ESP-nek serial-ra.

Ezt továbbítja serial1-en az ESP számítógépnek (innen kap mindenki tápot).

Aki meg becsatlakozik telnettel az is látja.

Sajna még gyatra a térerő, így még nem megy élesben.

Teszten kommunikáció megy, ESP vekkere NTP-n szinkronizálva.

Telnet kapcsolat él.

Tetszik, hogy van bőven erőforrása.

 

Előzmény: szatti (1498)
szatti Creative Commons License 2015.12.29 0 0 1499

Nem értem mi történhetett az ESP8266-os logolásommal.

Lassan egy hónapja ment hibátlanul. Ma miután visszakapcsoltam egy bootloader cserés Nanoval, teljesen rendszertelenül

küld adatokat. Va amikor 10 perc de van amikor 40 perc a szünet.

A régi Nanot visszarakva sem változott a helyzet, így nem a bootloader az oka.

szatti Creative Commons License 2015.12.29 0 0 1498

Na akkor kíváncsian várom a fejleményeket.

Én ma egész délután ESP8266-al küzdök.

 

Van 2db amivel tudok csatlakozni. Ezeket vettem régebben.

Válaszol az AT parancsokra., Listázza amit lát és felmegy a routerre.

 

Ugyanott vettem még 5db-ot.

AT-re OK-ot ad.

A reset és a firmware parancsot még válaszolja, de az AT+CWLAP  már error-t ad.

A firmware frissebb ezeken, de nem tudom így használni.

 

Ez működik:

 

AT+GMR
AT version:0.25.0.0(Jun 5 2015 16:27:16)
SDK version:1.1.1
Ai-Thinker Technology Co. Ltd.
Jun 23 2015 23:23:50

 

Ez nem:

 

ready
AT+GMR
AT version:0.40.0.0(Aug 8 2015 14:45:58)
SDK version:1.3.0
Ai-Thinker Technology Co.,Ltd.
Build:1.3.0.2 Sep 11 2015 11:48:04
OK
AT+CWLAP

ERROR

 

 

 

Előzmény: titusz99 (1497)
titusz99 Creative Commons License 2015.12.29 0 0 1497

Ezzel teszteltem a nano-mat. Naná, hogy elszált.

Majd ha odajutok lecserélem én is. Most a ESP8266-ot akarom üzembe állítani.

Egyébként a bootloader-ek forrásában gyönyörűen látszik a hiba.

A sima bootloader esetén egy kapcsolót be kell kapcsolni, hogy jó legyen.

Optiboot-nál alapban be van kapcsolva. Ezért jó.

 

Előzmény: szatti (1493)
Kugynok Creative Commons License 2015.12.29 0 0 1496

Sziasztok!

 

433Mhz RF Transmitter With Receiver Kit For Arduino ARM MCU Wireless

 

Rendeltem belőle kettőt. Az első fogadó panel kimenő adat lábán fix 3.65v mértem. (letudtam azzal, hogy biztos hibásan küldték)

Bekötöttem a második párból való fogadó panelt, az remekül működött kb 2 napig, aztán a kimenő data láb szintén beállt 3.65n-re.

Ezzel kapcsolatban van valakinek tapasztalata?

Használta vagy használja valaki ezt a típust?

 

Köszi!

K.

szatti Creative Commons License 2015.12.29 0 0 1495

Most a Wifi adta meg magát.

 

Azt hittem összefügg a bootloaderrel, de a régivel is rosszalkodik.

 

Nem is értem mi lehet,  mert van itthon 5 db de eddig csak 1-el működött, pedig mind új.

Itt is valami frissítés gond lesz szerintem. Sajnos az USB soros adapter még nem érkezett meg, hogy tudjam

őket programozni.

Törölt nick Creative Commons License 2015.12.29 0 0 1494

Ez már haladás, a kérdés, hogy lehet-e rendelni olyan nanot, amiben működik a wdt.

Előzmény: szatti (1493)
szatti Creative Commons License 2015.12.29 0 0 1493

Ezt a tesztet futtatom és szépen újraindul:

 

 

#include <Arduino.h>
#include <wdt.h>
/*
watchdog timer example code.

flashes LED three times quickly on boot up. Then goes thru a loop delaying
an additional 250ms on each iteration. The LED is on during each delay.
Once the delay is long enough, the WDT will reboot the MCU.
*/

const int onboardLED = 13;

void setup() {

int k;

// immediately disable watchdog timer so set will not get interrupted

wdt_disable();

// I often do serial i/o at startup to allow the user to make config changes of
// various constants. This is often using fgets which will wait for user input.
// any such 'slow' activity needs to be completed before enabling the watchdog timer.

// the following forces a pause before enabling WDT. This gives the IDE a chance to
// call the bootloader in case something dumb happens during development and the WDT
// resets the MCU too quickly. Once the code is solid, remove this.

delay(2L * 1000L);

// enable the watchdog timer. There are a finite number of timeouts allowed (see wdt.h).
// Notes I have seen say it is unwise to go below 250ms as you may get the WDT stuck in a
// loop rebooting.
// The timeouts I'm most likely to use are:
// WDTO_1S
// WDTO_2S
// WDTO_4S
// WDTO_8S

wdt_enable(WDTO_4S);

// initialize the digital pin as an output.
// Pin 13 has an LED connected on most Arduino boards:

pinMode(onboardLED, OUTPUT);

// at bootup, flash LED 3 times quick so I know the reboot has occurred.

for (k = 1; k <= 3; k = k + 1) {
digitalWrite(onboardLED, HIGH);
delay(250L);
digitalWrite(onboardLED, LOW);
delay(250L);
}
// delay a bit more so it is clear we are done with setup
delay(750L);
}

void loop() {

int k;

// this loop simply turns the LED on and then waits k*250ms. As k increases, the amount of time
// increases. Until finally the watch dog timer doesn't get reset quickly enough.
for (k = 1; k<= 10000; k = k + 1) {
// at the top of this infinite loop, reset the watchdog timer
wdt_reset();
digitalWrite(onboardLED, HIGH);
delay(k*250L);
digitalWrite(onboardLED, LOW);
delay(250L);
}
}

szatti Creative Commons License 2015.12.29 0 0 1492

Köszönjük a hasznos linket!!!

 

Égetőm ugyan nincs, de egy másik Nanoval tudtam égetni.

 

Sajnos a halottnak tűnő Nanot ez a bootloader csere sem csinálta írhatóvá.

Azzal még küzdenem kell.

Előzmény: titusz99 (1490)
szatti Creative Commons License 2015.12.29 0 0 1491

Hű srácok, ez működik!!!

Nem fagy a Nano a wdt tesztnél!

 

Igaz fel kellett tennem az 1.0.6-os software-t és nem hozzámásoltam a txt-hez hanem egy az egyben lecseréltem.

A hozzámásolásnál kiírta, hogy nem megfelelő a file és nem tudtam semmit égetni.

 

Most csak optiboot panelek jelennek meg az alappaneleknél, de szépen égeti a Nanot és nem fagy le a kutya!

Előzmény: titusz99 (1490)
titusz99 Creative Commons License 2015.12.28 0 0 1490
Törölt nick Creative Commons License 2015.12.28 0 0 1489

A DUE csatlakoztatásakor az IDE nem fordítja le a reset kódot, a nano csatlakoztatásakor az IDE nem fordítja le a WDT kódot.

Törölt nick Creative Commons License 2015.12.28 0 0 1488

Ez a reset kód, a nanora feltölthető, de lefagyasztja, tehát nem működik a wdt:

 

#include <avr/wdt.h>

void setup() {
wdt_disable(); // бесполезная строка до которой не доходит выполнение при bootloop
Serial.begin(9600);
Serial.println("Setup..");

Serial.println("Wait 5 sec..");
delay(5000); // Задержка, чтобы было время перепрошить устройство в случае bootloop
wdt_enable (WDTO_8S); // Для тестов не рекомендуется устанавливать значение менее 8 сек.
Serial.println("Watchdog enabled.");
}

int timer = 0;

void loop(){
// Каждую секунду мигаем светодиодом и значение счетчика пишем в Serial
if(!(millis()%1000)){
timer++;
Serial.println(timer);
digitalWrite(13, digitalRead(13)==1?0:1);
delay(1);

wdt_reset();
}
}

 

Előzmény: Törölt nick (1487)
Törölt nick Creative Commons License 2015.12.28 0 0 1487

Ez a WDT kód, a DUE-ra feltölthető, és működik a wdt:

 

/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.

Most Arduinos have an on-board LED you can control. On the Uno and
Leonardo, it is attached to digital pin 13. If you're unsure what
pin the on-board LED is connected to on your Arduino model, check
the documentation at http://arduino.cc

This example code is in the public domain.

modified 8 May 2014
by Scott Fitzgerald
*/
void watchdogSetup(void)
{
watchdogEnable(1000); //restart idő 1000-tól
}

// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
Serial.begin(115200);
Serial.println ("start");
}

// the loop function runs over and over again forever
void loop() {
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(13, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
Serial.println("Hello World");
delay(1000);
while (1){
delay (100); // 100-tól
Serial.println(millis());
watchdogReset();
}
}

 

Előzmény: szatti (1484)
Zizikus Creative Commons License 2015.12.28 0 0 1486

Sziasztok!

 

Mint mondtam kezdő vagyok a témában, de én vetettem fel a watch dog használatát.

 

Én nem az Arduino-ban lévő valamit gondoltam ide, hanem egy külső áramköri megoldásra gondoltam. Ha jól emlékszem akkor olyasmi lehet, hogy adott idő között küldeni kell rá egy jelet a loop-on belül adott lábra, mert ha nem akkor az eszköz vagy reset-jelet küld a nano felé, vagy egyszerűen lekapcsolja a tápfeszt egy időre.

 

Ti nem ezt csináljátok? Szerintem az lenne a tuti, ha pl 1s hosszra kikapcsolja a tápot, majd újra indul minden. Azaz az Arduino erről az IC-ről kapná a feszt. (De ilyet nem találtam, csak reset jeleset.)

 

 

ilyesmire gondolok:

 

http://www.ebay.com/itm/1pc-DS1232LP-DIP-8-LOW-POWER-RESET-WATCH-DOG-TIMER-MAX1232CPA-DS1232L-DS1232-/121129873641?hash=item1c33e730e9:g:1z0AAOSwstxVDpfy

Előzmény: Prof (1485)
Prof Creative Commons License 2015.12.28 0 0 1485

Sziasztok!

Nekem van téglásodott Nano-m, valószínűleg (illetve szinte biztos) egy PROGMEM túlcsordulás verte ki a „biztosítékot”. Azt meg tudtam csinálni (egyszer), hogy sima "copy-paste" módszerrel egy másik, működő kártyáról átraktam egy működő szoftvert, ami futott is, de ezt többször nem sikerült. Mindent megnéztem rajta minden létező szoftverrel, de semmi.

 

Ami a watchdogot illeti.

Ezen a szinten én egyszerűen kiiktatnám a bootloadert. Ha van hozzá eszköz, a sketch direktben is feltölthető. Ennek három következménye lesz (egyszerűen fogalmazva), az egyik, hogy számottevően gyorsabb lesz a boot (nem kell a bootloadert kivárni), másrészt közvetlenebb lesz a kapcsolat a szoftver és a mikrokontroller között. A gáz az, hogy innentől csak így lehet programozni, simán USB-re dugva nem, legalábbis addig, amíg egy új bootloadert nem kap a kontroller.

Pár fórumba beleolvastam és voltak érdekességek a watchdog és a bootloader összeakadásával.

 

szatti Creative Commons License 2015.12.28 0 0 1484

 

 

Szerintem ebben az irányban kell elindulni.

A Fuse biteket kellene beállítani, vagyis a WDT-t bekapcsolni!

 

Azon is gondolkodtam már, hogy le lehet-e védeni olvasás ellen a kész programot a Nanoban.

Szerintem ennek  a megoldása is errefelé lesz!

szatti Creative Commons License 2015.12.28 0 0 1483

Gondod, hogy az Atmel chipet is hamisítják?

Nem hinném, hogy kihagynák belőle a watchdogot.

 

Majd csak sikerül megfejteni hol van a "kutya elásva" :-))

Előzmény: Törölt nick (1481)
szatti Creative Commons License 2015.12.28 0 0 1482

Az Arduino alappogram tartalmazza a bootloadert?

Letöltöttem a legújabbat és frissítettem. A helyzet ugyanaz.

 

Van egy nem programozható Nano-m. Ott is kipróbáltam. A Bootloadert rá tudtam tenni, de továbbra sem tölthető rá semmi.

Előzmény: szatti (1480)
Törölt nick Creative Commons License 2015.12.28 0 0 1481

Ma megkapta az új tápot, az esti leállásnál kiderül, maradt-e a lefagyási hajlam a kazánszivattyú leállásakor.

Az is felmerült bennem, hogy egy sima időrelével kapcsoltatom a tápfeszt, ha nem zárja a nano, hardweres resettel.

Vagy a bootloaderben van a hiba, vagy benne sincs a wdt áramkör....

Kicsi, óccsó, ígyjártunk!

Vagy csak benéztünk valamit.

Előzmény: szatti (1478)
szatti Creative Commons License 2015.12.28 0 0 1480

Igen, pont azt keresgélem, hogyan és mit...

Előzmény: titusz99 (1479)
titusz99 Creative Commons License 2015.12.28 0 0 1479

A nano-ra sokan panaszkodnak emiatt.

Szerintem új bootloader kell rá.

Előzmény: szatti (1478)
szatti Creative Commons License 2015.12.28 0 0 1478

Kipróbáltam a Watchdogot, de lefagyasztja a Nanot.

 

Beállítottam 8 másodpercre ( a kódom 4 alatt lefut).

Nem volt hiba fordításkor és fut is a program.

Kíváncsiságból beiktattam egy 10 másodperces delay-t, hogy teszteljem újraindul-e.

Hát nem.  Annyira megfagy, hogy csak gyorsan villog a L  led rajta és még a reset gomb is hatástalan lett.

Újraprogramozni is csak úgy tudtam, hogy áramtalanítottam és még mielőtt kiáll erre a hibára gyorsan rátöltöttem a régi programot.

Előzmény: Törölt nick (1469)
Tomiali Creative Commons License 2015.12.27 0 0 1477

Üdv!

 

Én is apríték égetővel fűtök amit egy arduino nano-val vezérlek.

Nekem vezérli a szoba függvényében a füst  hőmérsékletet, a füst hő függvényében pedig a ventilátor fordulatát.

Szerintem a lambda szonda nem igazán jó kazánokba mert ahhoz hogy jól működjön magas hőfok kell és tiszta égés.

A magas hőmérséklethez és tiszta égéshez sok levegő kell.

A sok levegő pedig veszteséget mivel tolod ki a kéményen a meleget.

Esetleg úgy lehetne megoldani ha a kazánba magas hőmérséklet lenne majd utána lenne egy kondenzációs hőcserélő.

Szerintem elég lenne ha le cserélnéd az idő alapú vezérlésed egy enyém hasonlóhoz.

 

De szerintem ezt már nem itt kéne meg tárgyalni hanem az aprítékos fórumon.

 

Előzmény: cifkó (1476)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!