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. MYSBootloader 1.3.0-beta.3

MYSBootloader 1.3.0-beta.3

Scheduled Pinned Locked Moved Development
182 Posts 44 Posters 59.4k Views 42 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.
  • W Werwolfx

    @tekka said:

    @Werwolfx Please also update the bootloader file.

    I'll update more than once, but there is no effect.
    avrdude writes that everything is OK
    I do not know what to do = (

    avrdude: AVR device initialized and ready to accept instructions
    
    Reading | ################################################## | 100% 0.00s
    
    avrdude: Device signature = 0x1e950f (probably m328p)
    avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
             To disable this feature, specify the -D option.
    avrdude: erasing chip
    avrdude: auto set sck period (because given equals null)
    avrdude: warning: cannot set sck period. please check for usbasp firmware update.
    avrdude: reading input file "/media/werwolfx/SSDData/arduino-1.8.0/hardware/arduino/avr/bootloaders/MySensors/MYSBootloader.hex"
    avrdude: writing flash (32762 bytes):
    
    Writing | ################################################## | 100% 0.00s
    
    avrdude: 32762 bytes of flash written
    avrdude: verifying flash memory against /media/werwolfx/SSDData/arduino-1.8.0/hardware/arduino/avr/bootloaders/MySensors/MYSBootloader.hex:
    avrdude: load data flash data from input file /media/werwolfx/SSDData/arduino-1.8.0/hardware/arduino/avr/bootloaders/MySensors/MYSBootloader.hex:
    avrdude: input file /media/werwolfx/SSDData/arduino-1.8.0/hardware/arduino/avr/bootloaders/MySensors/MYSBootloader.hex contains 32762 bytes
    avrdude: reading on-chip flash data:
    
    Reading | ################################################## | 100% 0.00s
    
    avrdude: verifying ...
    avrdude: 32762 bytes of flash verified
    avrdude: reading input file "0x0F"
    avrdude: writing lock (1 bytes):
    
    Writing | ################################################## | 100% 0.01s
    
    avrdude: 1 bytes of lock written
    avrdude: verifying lock memory against 0x0F:
    avrdude: load data lock data from input file 0x0F:
    avrdude: input file 0x0F contains 1 bytes
    avrdude: reading on-chip lock data:
    
    Reading | ################################################## | 100% 0.00s
    
    avrdude: verifying ...
    avrdude: 1 bytes of lock verified
    
    avrdude done.  Thank you.
    
    
    tekkaT Offline
    tekkaT Offline
    tekka
    Admin
    wrote on last edited by
    #28

    @Werwolfx sorry, maybe I was not clear - please upload it here to the forum I will try to reproduce your setup.

    1 Reply Last reply
    0
    • tekkaT tekka

      @Werwolfx Please also update the bootloader file.

      W Offline
      W Offline
      Werwolfx
      wrote on last edited by Werwolfx
      #29

      @tekka If i ENABLE #define MY_OTA_FIRMWARE_FEATURE
      i see ST_FIRMWARE_CONFIG_REQUEST in MYSCONTROLLER logs!!!
      if i DISABLE //#define MY_OTA_FIRMWARE_FEATURE msg not in log

      i not have external flash/

      402	14.01.2017 21:29:28	TX	4 - Water Meter	N/A	C_INTERNAL	NO	I_REBOOT	0
      403	14.01.2017 21:29:28	RX	4	1	C_REQ	NO	V_VAR1	
      408	14.01.2017 21:29:34	RX	4	INTERNAL	C_STREAM	NO	ST_FIRMWARE_CONFIG_REQUEST	FFFFFFFF48044E100300
      409	14.01.2017 21:29:34	TX	4	N/A	C_STREAM	NO	ST_FIRMWARE_CONFIG_RESPONSE	0A0001005000D446
      410	14.01.2017 21:29:34	RX	4	INTERNAL	C_PRESENTATION	NO	S_ARDUINO_NODE	2.1.0
      411	14.01.2017 21:29:34	RX	4	INTERNAL	C_INTERNAL	NO	I_CONFIG	0
      412	14.01.2017 21:29:34	TX	4	INTERNAL	C_INTERNAL	NO	I_CONFIG	M
      414	14.01.2017 21:29:34	RX	4 - Water Meter	INTERNAL	C_INTERNAL	NO	I_SKETCH_NAME	Water Meter
      417	14.01.2017 21:29:34	RX	4 - Water Meter	INTERNAL	C_INTERNAL	NO	I_SKETCH_VERSION	1.1
      419	14.01.2017 21:29:34	RX	4 - Water Meter	1 - S_WATER	C_PRESENTATION	NO	S_WATER	
      

      i load this HEX
      load from Arduino IDE 1.8.0
      0_1484418874223_MYSBootloader.hex

      board.txt

      proMYSBL.bootloader.tool=avrdude
      proMYSBL.bootloader.low_fuses=0xFF
      proMYSBL.bootloader.high_fuses=0xDA
      proMYSBL.bootloader.extended_fuses=0xFE
      proMYSBL.bootloader.unlock_bits=0x3F
      proMYSBL.bootloader.lock_bits=0x0F
      proMYSBL.bootloader.file=MySensors/MYSBootloader.hex

      tekkaT 1 Reply Last reply
      0
      • W Werwolfx

        @tekka If i ENABLE #define MY_OTA_FIRMWARE_FEATURE
        i see ST_FIRMWARE_CONFIG_REQUEST in MYSCONTROLLER logs!!!
        if i DISABLE //#define MY_OTA_FIRMWARE_FEATURE msg not in log

        i not have external flash/

        402	14.01.2017 21:29:28	TX	4 - Water Meter	N/A	C_INTERNAL	NO	I_REBOOT	0
        403	14.01.2017 21:29:28	RX	4	1	C_REQ	NO	V_VAR1	
        408	14.01.2017 21:29:34	RX	4	INTERNAL	C_STREAM	NO	ST_FIRMWARE_CONFIG_REQUEST	FFFFFFFF48044E100300
        409	14.01.2017 21:29:34	TX	4	N/A	C_STREAM	NO	ST_FIRMWARE_CONFIG_RESPONSE	0A0001005000D446
        410	14.01.2017 21:29:34	RX	4	INTERNAL	C_PRESENTATION	NO	S_ARDUINO_NODE	2.1.0
        411	14.01.2017 21:29:34	RX	4	INTERNAL	C_INTERNAL	NO	I_CONFIG	0
        412	14.01.2017 21:29:34	TX	4	INTERNAL	C_INTERNAL	NO	I_CONFIG	M
        414	14.01.2017 21:29:34	RX	4 - Water Meter	INTERNAL	C_INTERNAL	NO	I_SKETCH_NAME	Water Meter
        417	14.01.2017 21:29:34	RX	4 - Water Meter	INTERNAL	C_INTERNAL	NO	I_SKETCH_VERSION	1.1
        419	14.01.2017 21:29:34	RX	4 - Water Meter	1 - S_WATER	C_PRESENTATION	NO	S_WATER	
        

        i load this HEX
        load from Arduino IDE 1.8.0
        0_1484418874223_MYSBootloader.hex

        board.txt

        proMYSBL.bootloader.tool=avrdude
        proMYSBL.bootloader.low_fuses=0xFF
        proMYSBL.bootloader.high_fuses=0xDA
        proMYSBL.bootloader.extended_fuses=0xFE
        proMYSBL.bootloader.unlock_bits=0x3F
        proMYSBL.bootloader.lock_bits=0x0F
        proMYSBL.bootloader.file=MySensors/MYSBootloader.hex

        tekkaT Offline
        tekkaT Offline
        tekka
        Admin
        wrote on last edited by
        #30

        @Werwolfx Ok, seems like you also upload the sketch via USBasp thereby erasing/overwriting the bootloader. Try uploading the sketch via serial or OTA after flashing the bootloader.

        1 Reply Last reply
        1
        • Mark SwiftM Offline
          Mark SwiftM Offline
          Mark Swift
          wrote on last edited by Mark Swift
          #31

          @tekka am I correct in thinking the HEX found on Github can be used with all Arduino's? I noticed my old folder has one hex for 16, 8 and 1Mhz?

          I'm using this board.txt

          menu.cpu=Processor
          
          ##############################################################
          
          MYSBL13.name=MYS Bootloader - atmega328p
          
          MYSBL13.upload.tool=arduino:avrdude
          MYSBL13.upload.protocol=arduino
          MYSBL13.upload.maximum_size=30720
          MYSBL13.upload.maximum_data_size=2048
          
          MYSBL13.bootloader.tool=arduino:avrdude
          MYSBL13.bootloader.unlock_bits=0x3F
          MYSBL13.bootloader.lock_bits=0x0F
          
          MYSBL13.build.mcu=atmega328p
          MYSBL13.build.board=AVR_PRO
          MYSBL13.build.core=arduino:arduino
          MYSBL13.build.variant=arduino:standard
          
          ## -------------------------------------------------
          
          MYSBL13.menu.cpu.16MHzatmega328=ATmega328 16MHz (XTAL, BOD1V8)
          MYSBL13.menu.cpu.16MHzatmega328.upload.speed=115200
          MYSBL13.menu.cpu.16MHzatmega328.bootloader.low_fuses=0xFF
          MYSBL13.menu.cpu.16MHzatmega328.bootloader.high_fuses=0xDA
          MYSBL13.menu.cpu.16MHzatmega328.bootloader.extended_fuses=0x06
          MYSBL13.menu.cpu.16MHzatmega328.bootloader.file=MYSBootloader/MYSBootloader.hex
          MYSBL13.menu.cpu.16MHzatmega328.build.f_cpu=16000000L
          
          MYSBL13.menu.cpu.8MHzatmega328=ATmega328 8MHz (RC, BOD1V8)
          MYSBL13.menu.cpu.8MHzatmega328.upload.speed=38400
          MYSBL13.menu.cpu.8MHzatmega328.bootloader.low_fuses=0xE2
          MYSBL13.menu.cpu.8MHzatmega328.bootloader.high_fuses=0xDA
          MYSBL13.menu.cpu.8MHzatmega328.bootloader.extended_fuses=0x06
          MYSBL13.menu.cpu.8MHzatmega328.bootloader.file=MYSBootloader/MYSBootloader.hex
          MYSBL13.menu.cpu.8MHzatmega328.build.f_cpu=8000000L
          
          MYSBL13.menu.cpu.1MHzatmega328=ATmega328 1MHz (RC/8, BOD1V8)
          MYSBL13.menu.cpu.1MHzatmega328.upload.speed=9600
          MYSBL13.menu.cpu.1MHzatmega328.bootloader.low_fuses=0x62
          MYSBL13.menu.cpu.1MHzatmega328.bootloader.high_fuses=0xDA
          MYSBL13.menu.cpu.1MHzatmega328.bootloader.extended_fuses=0x06
          MYSBL13.menu.cpu.1MHzatmega328.bootloader.file=MYSBootloader/MYSBootloader.hex
          MYSBL13.menu.cpu.1MHzatmega328.build.f_cpu=1000000L```
          1 Reply Last reply
          0
          • Mark SwiftM Offline
            Mark SwiftM Offline
            Mark Swift
            wrote on last edited by
            #32

            I guess not... The old hex for 8Mhz works, but the one from this thread does not... :(

            I'm trying to upload this to my Pro Mini, does anyone have an 8Mhz that works?

            1 Reply Last reply
            0
            • Mark SwiftM Offline
              Mark SwiftM Offline
              Mark Swift
              wrote on last edited by Mark Swift
              #33

              @tekka I've noticed some odd things with my nodes when running the bootloader.

              To test I uploaded a simple count time sketch. When running the MYS bootloader the timer resets every 10 seconds, see:

              Time: 999
              Time: 2000
              Time: 3000
              Time: 4001
              Time: 5001
              Time: 6002
              Time: 7004
              Time: 8003
              Time: 9005
              Time: 0
              Time: 999
              Time: 2000
              Time: 3000
              Time: 4001
              Time: 5001
              Time: 6002
              Time: 7004
              Time: 8003
              Time: 9005
              Time: 0
              

              Using the stock Pro Mim 8Mhz 3.3v bootloader it works fine, any ideas?
              Perhaps this is because I'm testing using a non-MySensors sketch?

              tekkaT 1 Reply Last reply
              0
              • Mark SwiftM Mark Swift

                @tekka I've noticed some odd things with my nodes when running the bootloader.

                To test I uploaded a simple count time sketch. When running the MYS bootloader the timer resets every 10 seconds, see:

                Time: 999
                Time: 2000
                Time: 3000
                Time: 4001
                Time: 5001
                Time: 6002
                Time: 7004
                Time: 8003
                Time: 9005
                Time: 0
                Time: 999
                Time: 2000
                Time: 3000
                Time: 4001
                Time: 5001
                Time: 6002
                Time: 7004
                Time: 8003
                Time: 9005
                Time: 0
                

                Using the stock Pro Mim 8Mhz 3.3v bootloader it works fine, any ideas?
                Perhaps this is because I'm testing using a non-MySensors sketch?

                tekkaT Offline
                tekkaT Offline
                tekka
                Admin
                wrote on last edited by tekka
                #34

                @Mark-Swift yeah, this is intended behavior: the watchdog kicks in after ~8s, so either you reset it in loop() or disable it in setup().

                1 Reply Last reply
                0
                • rmtuckerR Offline
                  rmtuckerR Offline
                  rmtucker
                  wrote on last edited by
                  #35

                  Is there a version or branch of this for the rfm69?

                  tekkaT 1 Reply Last reply
                  0
                  • rmtuckerR rmtucker

                    Is there a version or branch of this for the rfm69?

                    tekkaT Offline
                    tekkaT Offline
                    tekka
                    Admin
                    wrote on last edited by
                    #36

                    @rmtucker No, but everybody is welcome to contribute and enhance the functionality.

                    1 Reply Last reply
                    0
                    • Mark SwiftM Offline
                      Mark SwiftM Offline
                      Mark Swift
                      wrote on last edited by
                      #37

                      @tekka, I'm trying to compile the HEX using OSX. I have installed avr-gcc with homebrew but I get

                      rm *.o
                      rm: *.o: No such file or directory
                      make: [clean] Error 1 (ignored)
                      rm *.elf
                      rm: *.elf: No such file or directory
                      make: [clean] Error 1 (ignored)
                      rm *.hex
                      rm: *.hex: No such file or directory
                      make: [clean] Error 1 (ignored)
                      "avr-gcc" -funsigned-char -funsigned-bitfields -DF_CPU=16000000L -Os -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -mrelax -Wall -Wextra -Wundef -pedantic -mmcu=atmega328p -c -std=gnu99 -MD -MP -MF "MYSBootloader.d" -MT"MYSBootloader.d" -MT"MYSBootloader.o" -I MYSBootloader.c -o MYSBootloader.o
                      avr-gcc: fatal error: no input files
                      compilation terminated.
                      make: *** [MYSBootloader.o] Error 1

                      When issueing the Make command, can you help, any suggestions?

                      tekkaT 1 Reply Last reply
                      0
                      • Mark SwiftM Mark Swift

                        @tekka, I'm trying to compile the HEX using OSX. I have installed avr-gcc with homebrew but I get

                        rm *.o
                        rm: *.o: No such file or directory
                        make: [clean] Error 1 (ignored)
                        rm *.elf
                        rm: *.elf: No such file or directory
                        make: [clean] Error 1 (ignored)
                        rm *.hex
                        rm: *.hex: No such file or directory
                        make: [clean] Error 1 (ignored)
                        "avr-gcc" -funsigned-char -funsigned-bitfields -DF_CPU=16000000L -Os -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -mrelax -Wall -Wextra -Wundef -pedantic -mmcu=atmega328p -c -std=gnu99 -MD -MP -MF "MYSBootloader.d" -MT"MYSBootloader.d" -MT"MYSBootloader.o" -I MYSBootloader.c -o MYSBootloader.o
                        avr-gcc: fatal error: no input files
                        compilation terminated.
                        make: *** [MYSBootloader.o] Error 1

                        When issueing the Make command, can you help, any suggestions?

                        tekkaT Offline
                        tekkaT Offline
                        tekka
                        Admin
                        wrote on last edited by
                        #38

                        @Mark-Swift I haven't tested that with OSX - maybe somebody can help here?

                        ? 1 Reply Last reply
                        0
                        • Mark SwiftM Offline
                          Mark SwiftM Offline
                          Mark Swift
                          wrote on last edited by
                          #39

                          @tekka, started a windows VM, run via MinGW and got this when running makefile, does it look okay?

                          C:\MySensorsBootloaderRF24-development>mingw32-make.exe
                          rm *.o
                          process_begin: CreateProcess(NULL, rm *.o, ...) failed.
                          make (e=2): The system cannot find the file specified.
                          Makefile:40: recipe for target 'clean' failed
                          mingw32-make.exe: [clean] Error 2 (ignored)
                          rm *.elf
                          process_begin: CreateProcess(NULL, rm *.elf, ...) failed.
                          make (e=2): The system cannot find the file specified.
                          Makefile:40: recipe for target 'clean' failed
                          mingw32-make.exe: [clean] Error 2 (ignored)
                          rm *.hex
                          process_begin: CreateProcess(NULL, rm *.hex, ...) failed.
                          make (e=2): The system cannot find the file specified.
                          Makefile:40: recipe for target 'clean' failed
                          mingw32-make.exe: [clean] Error 2 (ignored)
                          "C:/Arduino/hardware/tools/avr/bin/avr-gcc" -funsigned-char -funsigned-bitfields
                           -DF_CPU=16000000L -Os -ffunction-sections -fdata-sections -fpack-struct -fshort
                          -enums -mrelax -Wall -Wextra -Wundef -pedantic -mmcu=atmega328p -c -std=gnu99 -M
                          D -MP -MF "MYSBootloader.d" -MT"MYSBootloader.d" -MT"MYSBootloader.o"  -IC:/Ardu
                          ino/hardware/tools/avr/avr/include/avr MYSBootloader.c -o MYSBootloader.o
                          In file included from Core.h:40:0,
                                           from MYSBootloader.c:69:
                          HW.h:51:2: warning: #warning is a GCC extension
                           #warning BAUD_RATE error greater than 2%
                            ^
                          HW.h:51:2: warning: #warning BAUD_RATE error greater than 2% [-Wcpp]
                          In file included from Core.h:42:0,
                                           from MYSBootloader.c:69:
                          MyMessage.h:292:3: warning: ISO C99 doesn't support unnamed structs/unions [-Wpe
                          dantic]
                            };
                             ^
                          "C:/Arduino/hardware/tools/avr/bin/avr-gcc" -nostartfiles -Wl,-s -Wl,-static -Wl
                          ,-Map=".map" -Wl,--start-group -Wl,--end-group -Wl,--gc-sections -mrelax -Wl,-se
                          ction-start=.text=0x7800 -mmcu=atmega328p   -o MYSBootloader.elf MYSBootloader.o
                           -lm
                          "C:/Arduino/hardware/tools/avr/bin/avr-objcopy" -O ihex -R .eeprom MYSBootloader
                          .elf MYSBootloader.hex
                          "C:/Arduino/hardware/tools/avr/bin/avr-size" MYSBootloader.elf
                             text    data     bss     dec     hex filename
                             2036       6      72    2114     842 MYSBootloader.elf
                          
                          tekkaT 1 Reply Last reply
                          0
                          • Mark SwiftM Offline
                            Mark SwiftM Offline
                            Mark Swift
                            wrote on last edited by
                            #40

                            @tekka Just wanted to check if the above log looks okay, currently rolling the bootloader out to 14 nodes (painful process!) and wanted to check if it looks okay before I do.

                            I'm also using this board.txt, I made a separate entry for my Uno's, do they all look okay? I basically used the fuses from the standard Arduino boards.txt with the change of 0x05 to 0x06 for the BOD? I noticed in the makefile that you can specify the fuses, do I need to compile a bootloader for each device with the exact fuses, or will one bootloader for 16 / 8 / 1Mhz suffice?

                            Thank you very much in advance, the bootloader is amazing work.

                            menu.cpu=Processor
                            
                            ##############################################################
                            
                            pro.name=MySensors Bootloader for Pro Mini
                            
                            pro.upload.tool=arduino:avrdude
                            pro.upload.protocol=arduino
                            pro.upload.maximum_size=30720
                            pro.upload.maximum_data_size=2048
                            
                            pro.bootloader.tool=arduino:avrdude
                            pro.bootloader.unlock_bits=0x3F
                            pro.bootloader.lock_bits=0x0F
                            
                            pro.build.mcu=atmega328p
                            pro.build.board=AVR_PRO
                            pro.build.core=arduino:arduino
                            pro.build.variant=arduino:standard
                            
                            ## Arduino with MYSBootloader Beta 2
                            ## -------------------------------------------------
                            
                            ## pro.menu.cpu.16MHzatmega328=ATmega328 16MHz (XTAL, BOD1V8) 1.3 Beta 2
                            ## pro.menu.cpu.16MHzatmega328.upload.speed=115200
                            ## pro.menu.cpu.16MHzatmega328.bootloader.low_fuses=0xFF
                            ## pro.menu.cpu.16MHzatmega328.bootloader.high_fuses=0xDA
                            ## pro.menu.cpu.16MHzatmega328.bootloader.extended_fuses=0x06
                            ## pro.menu.cpu.16MHzatmega328.bootloader.file=MYSBootloader/MYSBootloader_B2_16Mhz.hex
                            ## pro.menu.cpu.16MHzatmega328.build.f_cpu=16000000L
                            
                            ## pro.menu.cpu.8MHzatmega328=ATmega328 8MHz (RC, BOD1V8) 1.3 Beta 2
                            ## pro.menu.cpu.8MHzatmega328.upload.speed=38400
                            ## pro.menu.cpu.8MHzatmega328.bootloader.low_fuses=0xE2
                            ## pro.menu.cpu.8MHzatmega328.bootloader.high_fuses=0xDA
                            ## pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses=0x06
                            ## pro.menu.cpu.8MHzatmega328.bootloader.file=MYSBootloader/MYSBootloader_B2_8Mhz.hex
                            ## pro.menu.cpu.8MHzatmega328.build.f_cpu=8000000L
                            
                            ## pro.menu.cpu.1MHzatmega328=ATmega328 1MHz (RC/8, BOD1V8) 1.3 Beta 2
                            ## pro.menu.cpu.1MHzatmega328.upload.speed=9600
                            ## pro.menu.cpu.1MHzatmega328.bootloader.low_fuses=0x62
                            ## pro.menu.cpu.1MHzatmega328.bootloader.high_fuses=0xDA
                            ## pro.menu.cpu.1MHzatmega328.bootloader.extended_fuses=0x06
                            ## pro.menu.cpu.1MHzatmega328.bootloader.file=MYSBootloader/MYSBootloader_B2_1Mhz.hex
                            ## pro.menu.cpu.1MHzatmega328.build.f_cpu=1000000L
                            
                            ## Arduino with MYSBootloader Beta 3
                            ## -------------------------------------------------
                            
                            pro.menu.cpu.16MHzatmega328=ATmega328 16MHz (XTAL, BOD1V8) 1.3 Beta 3
                            pro.menu.cpu.16MHzatmega328.upload.speed=115200
                            pro.menu.cpu.16MHzatmega328.bootloader.low_fuses=0xFF
                            pro.menu.cpu.16MHzatmega328.bootloader.high_fuses=0xDA
                            pro.menu.cpu.16MHzatmega328.bootloader.extended_fuses=0x06
                            pro.menu.cpu.16MHzatmega328.bootloader.file=MYSBootloader/MYSBootloader_B3_16Mhz.hex
                            pro.menu.cpu.16MHzatmega328.build.f_cpu=16000000L
                            
                            pro.menu.cpu.8MHzatmega328=ATmega328 8MHz (RC, BOD1V8) 1.3 Beta 3
                            pro.menu.cpu.8MHzatmega328.upload.speed=38400
                            pro.menu.cpu.8MHzatmega328.bootloader.low_fuses=0xFF
                            pro.menu.cpu.8MHzatmega328.bootloader.high_fuses=0xDA
                            pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses=0x06
                            pro.menu.cpu.8MHzatmega328.bootloader.file=MYSBootloader/MYSBootloader_B3_8Mhz.hex
                            pro.menu.cpu.8MHzatmega328.build.f_cpu=8000000L
                            
                            pro.menu.cpu.1MHzatmega328=ATmega328 1MHz (RC/8, BOD1V8) 1.3 Beta 3
                            pro.menu.cpu.1MHzatmega328.upload.speed=9600
                            pro.menu.cpu.1MHzatmega328.bootloader.low_fuses=0x62
                            pro.menu.cpu.1MHzatmega328.bootloader.high_fuses=0xDA
                            pro.menu.cpu.1MHzatmega328.bootloader.extended_fuses=0x06
                            pro.menu.cpu.1MHzatmega328.bootloader.file=MYSBootloader/MYSBootloader_B3_1Mhz.hex
                            pro.menu.cpu.1MHzatmega328.build.f_cpu=1000000L
                            
                            ##############################################################
                            ##############################################################
                            ##############################################################
                            ##############################################################
                            ##############################################################
                            
                            menu.cpu=Processor
                            
                            ##############################################################
                            
                            uno.name=MySensors Bootloader for Uno
                            
                            uno.upload.tool=arduino:avrdude
                            uno.upload.protocol=arduino
                            uno.upload.maximum_size=32256
                            uno.upload.maximum_data_size=2048
                            
                            uno.bootloader.tool=arduino:avrdude
                            uno.bootloader.unlock_bits=0x3F
                            uno.bootloader.lock_bits=0x0F
                            
                            uno.build.mcu=atmega328p
                            uno.build.board=AVR_UNO
                            uno.build.core=arduino:arduino
                            uno.build.variant=arduino:standard
                            
                            ## Arduino with MYSBootloader Beta 2
                            ## -------------------------------------------------
                            
                            ## uno.menu.cpu.16MHzatmega328=ATmega328 16MHz (XTAL, BOD1V8) 1.3 Beta 2
                            ## uno.menu.cpu.16MHzatmega328.upload.speed=115200
                            ## uno.menu.cpu.16MHzatmega328.bootloader.low_fuses=0xFF
                            ## uno.menu.cpu.16MHzatmega328.bootloader.high_fuses=0xDA
                            ## uno.menu.cpu.16MHzatmega328.bootloader.extended_fuses=0x06
                            ## uno.menu.cpu.16MHzatmega328.bootloader.file=MYSBootloader/MYSBootloader_B2_16Mhz.hex
                            ## uno.menu.cpu.16MHzatmega328.build.f_cpu=16000000L
                            
                            ## Arduino with MYSBootloader Beta 3
                            ## -------------------------------------------------
                            
                            uno.menu.cpu.16MHzatmega328=ATmega328 16MHz (XTAL, BOD1V8) 1.3 Beta 3
                            uno.menu.cpu.16MHzatmega328.upload.speed=115200
                            uno.menu.cpu.16MHzatmega328.bootloader.low_fuses=0xFF
                            uno.menu.cpu.16MHzatmega328.bootloader.high_fuses=0xDA
                            uno.menu.cpu.16MHzatmega328.bootloader.extended_fuses=0x06
                            uno.menu.cpu.16MHzatmega328.bootloader.file=MYSBootloader/MYSBootloader_B3_16Mhz.hex
                            uno.menu.cpu.16MHzatmega328.build.f_cpu=16000000L
                            
                            1 Reply Last reply
                            0
                            • Mark SwiftM Mark Swift

                              @tekka, started a windows VM, run via MinGW and got this when running makefile, does it look okay?

                              C:\MySensorsBootloaderRF24-development>mingw32-make.exe
                              rm *.o
                              process_begin: CreateProcess(NULL, rm *.o, ...) failed.
                              make (e=2): The system cannot find the file specified.
                              Makefile:40: recipe for target 'clean' failed
                              mingw32-make.exe: [clean] Error 2 (ignored)
                              rm *.elf
                              process_begin: CreateProcess(NULL, rm *.elf, ...) failed.
                              make (e=2): The system cannot find the file specified.
                              Makefile:40: recipe for target 'clean' failed
                              mingw32-make.exe: [clean] Error 2 (ignored)
                              rm *.hex
                              process_begin: CreateProcess(NULL, rm *.hex, ...) failed.
                              make (e=2): The system cannot find the file specified.
                              Makefile:40: recipe for target 'clean' failed
                              mingw32-make.exe: [clean] Error 2 (ignored)
                              "C:/Arduino/hardware/tools/avr/bin/avr-gcc" -funsigned-char -funsigned-bitfields
                               -DF_CPU=16000000L -Os -ffunction-sections -fdata-sections -fpack-struct -fshort
                              -enums -mrelax -Wall -Wextra -Wundef -pedantic -mmcu=atmega328p -c -std=gnu99 -M
                              D -MP -MF "MYSBootloader.d" -MT"MYSBootloader.d" -MT"MYSBootloader.o"  -IC:/Ardu
                              ino/hardware/tools/avr/avr/include/avr MYSBootloader.c -o MYSBootloader.o
                              In file included from Core.h:40:0,
                                               from MYSBootloader.c:69:
                              HW.h:51:2: warning: #warning is a GCC extension
                               #warning BAUD_RATE error greater than 2%
                                ^
                              HW.h:51:2: warning: #warning BAUD_RATE error greater than 2% [-Wcpp]
                              In file included from Core.h:42:0,
                                               from MYSBootloader.c:69:
                              MyMessage.h:292:3: warning: ISO C99 doesn't support unnamed structs/unions [-Wpe
                              dantic]
                                };
                                 ^
                              "C:/Arduino/hardware/tools/avr/bin/avr-gcc" -nostartfiles -Wl,-s -Wl,-static -Wl
                              ,-Map=".map" -Wl,--start-group -Wl,--end-group -Wl,--gc-sections -mrelax -Wl,-se
                              ction-start=.text=0x7800 -mmcu=atmega328p   -o MYSBootloader.elf MYSBootloader.o
                               -lm
                              "C:/Arduino/hardware/tools/avr/bin/avr-objcopy" -O ihex -R .eeprom MYSBootloader
                              .elf MYSBootloader.hex
                              "C:/Arduino/hardware/tools/avr/bin/avr-size" MYSBootloader.elf
                                 text    data     bss     dec     hex filename
                                 2036       6      72    2114     842 MYSBootloader.elf
                              
                              tekkaT Offline
                              tekkaT Offline
                              tekka
                              Admin
                              wrote on last edited by
                              #41

                              @Mark-Swift What changes did you make to the bootloader - the code size seems increased

                              Mark SwiftM 1 Reply Last reply
                              0
                              • tekkaT tekka

                                @Mark-Swift What changes did you make to the bootloader - the code size seems increased

                                Mark SwiftM Offline
                                Mark SwiftM Offline
                                Mark Swift
                                wrote on last edited by Mark Swift
                                #42

                                @tekka None that I'm aware of? :(

                                I just changed the fuses in the makefile to match the ones in my boards.txt, not sure if that's required, can you take a look at my questions above, I really want to be sure I'm doing all of this right before deploying.

                                To recap with regards the bootloader.

                                1. Installed Windows 7
                                2. Installed mingw (core and c++ compiler)
                                3. Installed Arduino IDE and MySensors library (Installed at the same location as you, at c drive root)
                                4. Downloaded bootloader from github
                                5. Edited the fuses and clock speed at the top of the makefile to match my boards.txt
                                6. Ran makefile from cmd
                                tekkaT 1 Reply Last reply
                                0
                                • Mark SwiftM Mark Swift

                                  @tekka None that I'm aware of? :(

                                  I just changed the fuses in the makefile to match the ones in my boards.txt, not sure if that's required, can you take a look at my questions above, I really want to be sure I'm doing all of this right before deploying.

                                  To recap with regards the bootloader.

                                  1. Installed Windows 7
                                  2. Installed mingw (core and c++ compiler)
                                  3. Installed Arduino IDE and MySensors library (Installed at the same location as you, at c drive root)
                                  4. Downloaded bootloader from github
                                  5. Edited the fuses and clock speed at the top of the makefile to match my boards.txt
                                  6. Ran makefile from cmd
                                  tekkaT Offline
                                  tekkaT Offline
                                  tekka
                                  Admin
                                  wrote on last edited by
                                  #43

                                  @Mark-Swift ok, most probably a false alarm. I assume you tested it after compilation?

                                  1 Reply Last reply
                                  0
                                  • Mark SwiftM Offline
                                    Mark SwiftM Offline
                                    Mark Swift
                                    wrote on last edited by
                                    #44

                                    @tekka It seems to work? I guess if there was an issue it wouldn't work at all?

                                    Please can you conform my fuses look okay in the boards.txt I posted above? Also, do I need to change the fuses in the makefile and make a file for each device, or just 1 x 16Mhz and 1 x 8Mhz for example?

                                    tekkaT 1 Reply Last reply
                                    0
                                    • Mark SwiftM Mark Swift

                                      @tekka It seems to work? I guess if there was an issue it wouldn't work at all?

                                      Please can you conform my fuses look okay in the boards.txt I posted above? Also, do I need to change the fuses in the makefile and make a file for each device, or just 1 x 16Mhz and 1 x 8Mhz for example?

                                      tekkaT Offline
                                      tekkaT Offline
                                      tekka
                                      Admin
                                      wrote on last edited by
                                      #45

                                      @Mark-Swift I'm not at my workstation right now - you have to adjust the fuse settings according to your HW configurations and preferences. The fuse settings in the makefile are obsolete if you use the Arduino IDE / boards.txt for flashing. Please use the AVR fuse calculator to calculate to correct fuse settings:

                                      http://www.engbedded.com/fusecalc/

                                      1 Reply Last reply
                                      0
                                      • Mark SwiftM Offline
                                        Mark SwiftM Offline
                                        Mark Swift
                                        wrote on last edited by
                                        #46

                                        I @tekka, I thought as much, so basically I just need a bootloader with the right Mhz and then set fuses in the Arduino IDE boards.txt.

                                        I used the fuse settings from the original boards.txt included with the Arduino IDE, but adjusted the extended one to 0x06 (Adjust BOD).

                                        I noticed you used slightly different fuses to the Arduino IDE, you're using fuses that indicate a floating crystal or something?

                                        1 Reply Last reply
                                        0
                                        • A Offline
                                          A Offline
                                          andreground
                                          wrote on last edited by andreground
                                          #47

                                          @tekka

                                          First of all, thanks for working so hard on the new version of the BL.

                                          My setup:

                                          • MYSBootloader 1.3.0-beta3 (md5 49ef3dc263110613c9c25ac21a8c3d83)
                                          • MYSController 1.0.0.beta (updated to latest version)
                                          • GW on Arduino Nano
                                          • Node on Arduino Pro Mini @ 5V 16 Mhz with MockMySensors sketch running

                                          What I did:

                                          • Flashed latest bootloader version from github on the Pro Mini ATMEGA328P (using AVRDUDESS 2.4 & USBasp, fuses L: 0xFF, H: 0xDA, E: 0x05)
                                          • Flashed latest mysensors lib on both node & gw (tested with both 2.0.0 & 2.1) on the Nano

                                          What I got:

                                          • FW upgrade through MYSController: Working
                                          • Reboot through MYSController: Working
                                          • Serial flashing with Arduino IDE: Working
                                          • Request presentation through MYSController: Working
                                            Request heartbeat through MYSController: Working

                                          But...

                                          Reassign ID through MYSController: NOT WORKING (the node reboots but still preserves the old ID)
                                          (MY_NODE_ID IS NOT DEFINED / THUS SET AS AUTO AS PER MYSENSORS DEFAULTS)
                                          Clear EEPROM through MYSController: NOT WORKING (the node reboots but still holds the value saved in EEPROM using saveState)

                                          Node bootlog after Clear EEPROM from MYSBootloader (you can see my debug LOADSTATE which still loads the value 123 from EEPROM):

                                          Starting sensor (RNNNA-, 2.0.0)
                                          TSM:INIT
                                          TSM:RADIO:OK
                                          TSP:ASSIGNID:OK (ID=4)
                                          TSM:FPAR
                                          TSP:MSG:SEND 4-4-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
                                          TSP:MSG:READ 150-150-255 s=255,c=3,t=7,pt=0,l=0,sg=0:
                                          TSP:MSG:BC
                                          TSP:MSG:READ 0-0-4 s=255,c=3,t=8,pt=1,l=1,sg=0:0
                                          TSP:MSG:FPAR RES (ID=0, dist=0)
                                          TSP:MSG:PAR OK (ID=0, dist=1)
                                          TSM:FPAR:OK
                                          TSM:ID
                                          TSM:CHKID:OK (ID=4)
                                          TSM:UPL
                                          TSP:PING:SEND (dest=0)
                                          TSP:MSG:SEND 4-4-0-0 s=255,c=3,t=24,pt=1,l=1,sg=0,ft=0,st=ok:1
                                          TSP:MSG:READ 0-0-4 s=255,c=3,t=25,pt=1,l=1,sg=0:1
                                          TSP:MSG:PONG RECV (hops=1)
                                          TSP:CHKUPL:OK
                                          TSM:UPL:OK
                                          TSM:READY
                                          GW Started
                                          LOADSTATE
                                          123
                                          

                                          And...is it expected that the "Info" tab on my node shows bootloader version 1.2?

                                          0_1485283480870_Schermata 2017-01-24 alle 19.43.36.png

                                          Is there anything I'm missing to have these features working?

                                          Thanks in advance

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


                                          18

                                          Online

                                          11.7k

                                          Users

                                          11.2k

                                          Topics

                                          113.0k

                                          Posts


                                          Copyright 2019 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