💬 Various bootloader files based on Optiboot 6.2
-
I have tried with your bootloader on 16MHz and 8 MHz with crystal.
8MHz, crystal, 1V8
Warning: Board breadboard:avr:atmega328bb doesn't define a 'build.board' preference. Auto-set to: AVR_ATMEGA328BB Build options changed, rebuilding all Sketch uses 16,680 bytes (51%) of program storage space. Maximum is 32,256 bytes. Global variables use 942 bytes (45%) of dynamic memory, leaving 1,106 bytes for local variables. Maximum is 2,048 bytes.16MHz, crystal, 1V8
Warning: Board breadboard:avr:atmega328bb doesn't define a 'build.board' preference. Auto-set to: AVR_ATMEGA328BB Build options changed, rebuilding all Sketch uses 16,694 bytes (51%) of program storage space. Maximum is 32,256 bytes. Global variables use 942 bytes (45%) of dynamic memory, leaving 1,106 bytes for local variables. Maximum is 2,048 bytes.So the 16Mhz file is actally even a bit bigger. I also tried if changing the BOD voltage would change anything, but nope on that.
Might be something to look into in a spare hour.
-
@mar.conte - Your question isn't very clear. If you're asking what the name means its broken down as:
8mhz - Crystal speed/frequency
38k4 - 38400 upload speed
D13 - Pin 13 to flash the LED (if needed) just for visual indication that the bootloader has been burnt/installed.Not sure if that is what you meant but I could only assume. If not then please attempt to explain a little clearly for us :)
Hope that sorts your problem!
-
@mar.conte - Your question isn't very clear. If you're asking what the name means its broken down as:
8mhz - Crystal speed/frequency
38k4 - 38400 upload speed
D13 - Pin 13 to flash the LED (if needed) just for visual indication that the bootloader has been burnt/installed.Not sure if that is what you meant but I could only assume. If not then please attempt to explain a little clearly for us :)
Hope that sorts your problem!
@Samuel235
Sorry for my english, your answer is ok Tanks you -
@Samuel235
Sorry for my english, your answer is ok Tanks you@mar.conte - Its okay, i understood you, just about ;)
Now just apply that description to all of the other bootloader varients that the great @Gertsanders has provided us with :)
-
I'm sorry, i don't understand the issue at hand.... Could you attempt to explain any clearer?
-
I'm sorry, i don't understand the issue at hand.... Could you attempt to explain any clearer?
@Samuel235
Hy
My project is simple atmega328 with internal clock 8 mhz in powerdown mode end rfm69 hw which send to gateway when pir motion is high powered all with 2 aa battery.
The First test what i do is in breadboard atmega328 with optiboot 6.2 ( i have upload bootloader 8mhz internal , 38vk, bod 2v7) and simple sketch j gammon: result no microampere but around 2/5 mah in sleep mode; -
@Samuel235
Hy
My project is simple atmega328 with internal clock 8 mhz in powerdown mode end rfm69 hw which send to gateway when pir motion is high powered all with 2 aa battery.
The First test what i do is in breadboard atmega328 with optiboot 6.2 ( i have upload bootloader 8mhz internal , 38vk, bod 2v7) and simple sketch j gammon: result no microampere but around 2/5 mah in sleep mode;@mar.conte I'm not familiar with the sketch you mentioned. The best is to use the voltmeter and oscillograph to determine consumption.
Why do you have BOD 2.7v? I do not have any BOD - this would let a node to run on two batteries until voltage drops to below 1.9V
-
@mar.conte I'm not familiar with the sketch you mentioned. The best is to use the voltmeter and oscillograph to determine consumption.
Why do you have BOD 2.7v? I do not have any BOD - this would let a node to run on two batteries until voltage drops to below 1.9V
-
@alexsh1
I have only voltmeter extec, can i mesure ua?
Can you send simple sketch for deep sleep ?@mar.conte - Are you basically saying that your hardware is using too much power to enable you to run on battery for any substantial time?
-
@mar.conte - Are you basically saying that your hardware is using too much power to enable you to run on battery for any substantial time?
@Samuel235
Yes, i want obtain few micro amp but its two month wich i try without result..... -
@Samuel235
Yes, i want obtain few micro amp but its two month wich i try without result.....@mar.conte Which skecth did you use ?
Did you have radio errors in your log ? -
Could you please either include your sketch here or give us a link to the example sketch that you used please.
-
Could you please either include your sketch here or give us a link to the example sketch that you used please.
@Samuel235
Resolved
I have try with sketc j gammon https://www.gammon.com.au/forum/?id=11497
And the problem are pir input (model hrc-501)
Are ever high and the cpu dont go in sleep.
I have remove pir and all ok the atmega run 20 uah very good.
Can you advise a good pir wich run to 3,3 V for my project?
Tanks -
@Samuel235
Resolved
I have try with sketc j gammon https://www.gammon.com.au/forum/?id=11497
And the problem are pir input (model hrc-501)
Are ever high and the cpu dont go in sleep.
I have remove pir and all ok the atmega run 20 uah very good.
Can you advise a good pir wich run to 3,3 V for my project?
Tanks@mar.conte
im not sure why pir with simple test like this http://playground.arduino.cc/Code/PIRsense is ok
but with my sketch the cpu reset forever#include <Arduino.h> // assumes Arduino IDE v1.0 or greater #include <avr/sleep.h> #include <avr/wdt.h> #include <avr/power.h> #include <avr/io.h> ISR (PCINT2_vect) { // handle pin change interrupt for D0 to D7 here } // end of PCINT2_vect const unsigned long WAIT_TIME = 4000; const byte LED =8 ; const byte LED2 =9 ; int wakepin =3 ; unsigned long lastSleep; volatile boolean motionDetected=false; float batteryVolts = 5; char BATstr[10]; //longest battery voltage reading message = 9chars char sendBuf[32]; byte sendLen; void checkBattery(void); #include <RFM69.h> //get it here: https://www.github.com/lowpowerlab/rfm69 #include <SPI.h> //********************************************************************************************* // *********** IMPORTANT SETTINGS - YOU MUST CHANGE/ONFIGURE TO FIT YOUR HARDWARE ************* //********************************************************************************************* #define NETWORKID 100 // The same on all nodes that talk to each other #define NODEID 2 // The unique identifier of this node #define RECEIVER 1 // The recipient of packets //Match frequency to the hardware version of the radio on your Feather //#define FREQUENCY RF69_433MHZ //#define FREQUENCY RF69_868MHZ #define FREQUENCY RF69_868MHZ #define ENCRYPTKEY "sampleEncryptKey" //exactly the same 16 characters/bytes on all nodes! #define IS_RFM69HW true // set to 'true' if you are using an RFM69HCW module //********************************************************************************************* #define SERIAL_BAUD 115200 #define RFM69_CS 10 #define RFM69_IRQ 2 #define RFM69_IRQN 0 // Pin 2 is IRQ 0! #define RFM69_RST 9 int16_t packetnum = 0; // packet counter, we increment per xmission RFM69 radio = RFM69(RFM69_CS, RFM69_IRQ, IS_RFM69HW, RFM69_IRQN); void setup () { pinMode (wakepin,INPUT); pinMode(LED, OUTPUT); pinMode(LED2, OUTPUT); digitalWrite(wakepin,HIGH); char buff[50]; Serial.begin(SERIAL_BAUD); Serial.println("Arduino RFM69HCW Transmitter"); // Hard Reset the RFM module pinMode(RFM69_RST, OUTPUT); digitalWrite(RFM69_RST, HIGH); delay(100); digitalWrite(RFM69_RST, LOW); delay(100); // Initialize radio radio.initialize(FREQUENCY,NODEID,NETWORKID); if (IS_RFM69HW) { radio.setHighPower(); // Only for RFM69HCW & HW! } radio.setPowerLevel(31); // power output ranges from 0 (5dBm) to 31 (20dBm) radio.encrypt(ENCRYPTKEY); pinMode(LED, OUTPUT); Serial.print("\nTransmitting at "); Serial.print(FREQUENCY==RF69_433MHZ ? 433 : FREQUENCY==RF69_868MHZ ? 868 : 915); Serial.println(" MHz"); } uint16_t batteryReportCycles=0; void loop () { //rf(); sleepNow(); rf(); //radio.sleep(); // sleep function called here radio.sleep(); } void wake () { // cancel sleep as a precaution //sleep_disable(); // precautionary while we do other stuff detachInterrupt (1); } // end of wake void sleepNow() { if (millis () - lastSleep >= WAIT_TIME) { lastSleep = millis (); byte old_ADCSRA = ADCSRA; // disable ADC ADCSRA = 0; // pin change interrupt (example for D0) PCMSK2 |= bit (PCINT16); // want pin 0 PCIFR |= bit (PCIF2); // clear any outstanding interrupts PCICR |= bit (PCIE2); // enable pin change interrupts for D0 to D7 set_sleep_mode (SLEEP_MODE_PWR_DOWN); power_adc_disable(); power_spi_disable(); power_timer0_disable(); power_timer1_disable(); power_timer2_disable(); power_twi_disable(); //PORTB = 0x00; UCSR0B &= ~bit (RXEN0); // disable receiver UCSR0B &= ~bit (TXEN0); // disable transmitter sleep_enable(); noInterrupts (); attachInterrupt (1, wake,HIGH); digitalWrite (LED, LOW); interrupts (); sleep_cpu (); digitalWrite (LED, HIGH); sleep_disable(); power_all_enable(); ADCSRA = old_ADCSRA; PCICR &= ~bit (PCIE2); // disable pin change interrupts for D0 to D7 UCSR0B |= bit (RXEN0); // enable receiver UCSR0B |= bit (TXEN0); // enable transmitter } // end of time to sleep } void rf() { char radiopacket[20] = "Hello World #"; itoa(packetnum++, radiopacket+13, 10); Serial.print("Sending "); Serial.println(radiopacket); if (!radio.sendWithRetry(RECEIVER, radiopacket, strlen(radiopacket))) { //target node Id, message as string or byte array, message length Serial.println("OK"); } radio.receiveDone(); //put radio in RX mode Serial.flush(); //make sure all serial data is clocked out before sleeping the MCU } -
Firstly, i can't read the structure the way you have posted your sketch. You should use the code function in the reply, the icon looks like "</>" above where you make your reply. Put your code in there for us to have any chance of reading it at all.
Secondly, I don't think that this is the place to be posting this issue. For a start, this isn't an issue relevant to the bootloader in this thread and secondly, it doesn't even have anything to do with MySensors.
-
@alexsh1
I have only voltmeter extec, can i mesure ua?
Can you send simple sketch for deep sleep ?@mar.conte yes, you can measure consumption (should be in uA) while sleeping with a good voltmeter.
However, I really fail to understand what has Nick's sketch you mentioned to do with MySensors? I suppose some people here may be aware of sleeping issues, but again your problem has nothing to do with MySensors.
Please see the following - it may help you troubleshoot your issue
https://www.mysensors.org/build/battery -
Firstly, i can't read the structure the way you have posted your sketch. You should use the code function in the reply, the icon looks like "</>" above where you make your reply. Put your code in there for us to have any chance of reading it at all.
Secondly, I don't think that this is the place to be posting this issue. For a start, this isn't an issue relevant to the bootloader in this thread and secondly, it doesn't even have anything to do with MySensors.
@Samuel235
I wanted to build my projects with mysensors, first of all I started with bootloader found in this section to try them with examples that I know because I do not know yet mysensors, I wanted to learn it so I took the liberty to insert code in your section. if you can figure out my problem thank you or I apologize for the trouble thanks