Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Development
  3. 4MHz bootloaders

4MHz bootloaders

Scheduled Pinned Locked Moved Development
11 Posts 4 Posters 2.4k Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • gohanG Offline
    gohanG Offline
    gohan
    Mod
    wrote on last edited by
    #2

    Why do you need a 4mhz node?

    1 Reply Last reply
    0
    • B Offline
      B Offline
      boylucky
      wrote on last edited by
      #3

      For me it looks like the best solution when I want to run the node for 2AA batteries without power regulator. As the spec of ATMEGA328P is that with 4MHz it can run from 1.8V. Which is exactely 2AA NiMH bateries at the end of the capacity. Then I also do not want to use 1MHz internal oscilator as it makes sometimes troubles when serial communication is used. So that is the reason for 4MHz node.

      1 Reply Last reply
      0
      • gohanG Offline
        gohanG Offline
        gohan
        Mod
        wrote on last edited by
        #4

        It is not the solution to your problem, but I found that a single LiFePO4 AA battery is great for powering 3.3v pro mini without any regulator

        1 Reply Last reply
        0
        • B Offline
          B Offline
          boylucky
          wrote on last edited by
          #5

          You are right it looks like a good solution for such project. But I wanted to keep the project running on AA NiMH bateries as for me it is safe way let's say :relaxed: As I do not have any experiences with LiFePO4 and also no charger for them. But I should start focus also on such power supply in the future. Anyway, like you said it is a bit different topic :relaxed: but thanks anyway for your reply.

          1 Reply Last reply
          0
          • tbowmoT Offline
            tbowmoT Offline
            tbowmo
            Admin
            wrote on last edited by
            #6

            @boylucky

            Do you need the serial port when running on batteries? Or is it only when uploading a new sketch?

            Also, is it a sleeping node? (it must be, when you want to run it on batteries). Then in theory 8Mhz consumes less power than 1Mhz on an average over time.. This is because when they are sleeping they are using the samme power, regardless of oscillator settings. However, when awake, a 8Mhz performs it's operations faster than a 1Mhz node, and returns to sleep (and low power consumption) 8 times as fast, than a 1Mhz node.

            I have 5 nodes that have been running on the same set of 2xAA batteries for 2½ years now.. They wake up every minute to take a new sample of temperature/humidity, and only transmitting if the new sample differs from the previous sample. they are operating on the 8Mhz internal rc-oscillator.

            1 Reply Last reply
            0
            • B Offline
              B Offline
              boylucky
              wrote on last edited by
              #7

              Yes, I need the serial communication also during the operation of the chip. That is the reason why I want to switch to 4MHz. The node is in sleep mode for 8 seconds. Then it wake up for 500ms to listen if any communication is received on NRF24L01+. Then also every 15 minutes, the node is transfering received data from NRF24 to Sigfox backend (6 sensors values in one message) via LoRa module. Currently I tested 11 days running on 1MHz without problem. The voltage drop after this 11 days is about 0,3V. So on 2AA NiMH bateries it should last for about 1 month without bateries charging. There is required serial communication between ATMEGA328P and Sigfox. That is the reason for 4MHz.

              1 Reply Last reply
              0
              • tbowmoT Offline
                tbowmoT Offline
                tbowmo
                Admin
                wrote on last edited by
                #8

                @boylucky

                I think that you should make a calculation of the power requirements, For example the NRF24 uses around 14mA in listen mode, so waking it up for 500 mili seconds, every 8 seconds, will take a toll on your battery capacity, if you only use 2xAA batteries.

                1 Reply Last reply
                0
                • B Offline
                  B Offline
                  boylucky
                  wrote on last edited by
                  #9

                  Actually the capacitance of the battery is not a problem for now. The time of wake up intervals and listen period can be changed. What I need to solve is the 4MHz bootloader.

                  T 1 Reply Last reply
                  0
                  • B Offline
                    B Offline
                    boylucky
                    wrote on last edited by
                    #10

                    Looks I succeed. I had to change the LOW fuses to correct value. I modified the APM Optiboot bootloader to accept 4MHz external oscilator. Here is the correct settings which need to be add to the boards.txt file:

                    ##############################################################
                    
                    apm96_4MHz.name=APM Optiboot external 4MHz noBOD 38400baud
                    
                    apm96_4MHz.upload.tool=avrdude
                    apm96_4MHz.upload.protocol=arduino
                    apm96_4MHz.upload.maximum_size=32256
                    apm96_4MHz.upload.speed=38400
                    apm96_4MHz.bootloader.tool=avrdude
                    apm96_4MHz.bootloader.low_fuses=0xfd
                    apm96_4MHz.bootloader.high_fuses=0xde
                    apm96_4MHz.bootloader.extended_fuses=0x07
                    apm96_4MHz.bootloader.path=optiboot_v50
                    apm96_4MHz.bootloader.file=atmega328_1a_4MHz.hex
                    apm96_4MHz.bootloader.unlock_bits=0x3F
                    apm96_4MHz.bootloader.lock_bits=0x2F
                    apm96_4MHz.build.mcu=atmega328p
                    apm96_4MHz.build.f_cpu=4000000L
                    apm96_4MHz.build.core=arduino
                    apm96_4MHz.build.variant=standard
                    
                    ##############################################################
                    

                    I had to change following lines:
                    apm96_4MHz.upload.speed=38400
                    apm96_4MHz.bootloader.low_fuses=0xfd
                    apm96_4MHz.build.f_cpu=4000000L

                    I also changed the file name to: apm96_4MHz.bootloader.file=atmega328_1a_4MHz.hex but the file is exactely the same as the original one. I also changed the name in the beginning of each line.

                    Currently looks it is working well. I will add more info later if all runs ok after some testing.

                    And here is also nice FUSES configurator.

                    1 Reply Last reply
                    1
                    • B boylucky

                      Actually the capacitance of the battery is not a problem for now. The time of wake up intervals and listen period can be changed. What I need to solve is the 4MHz bootloader.

                      T Offline
                      T Offline
                      Thomas
                      wrote on last edited by
                      #11

                      @boylucky Thank you a lot, you described the changes nicely. Only one question -> you use atmega328_1a_4MHz.hex file. Where does this file came from? Did you just copy and rename one of the .hex files? What need to be change in this hex file or how to make one?

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      32

                      Online

                      11.7k

                      Users

                      11.2k

                      Topics

                      113.1k

                      Posts


                      Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • MySensors
                      • OpenHardware.io
                      • Categories
                      • Recent
                      • Tags
                      • Popular