Anyone Built the Firmware for the Ganglion on Linux? / nrfutil

NaughtiusMaximusNaughtiusMaximus San Diego, California
edited November 2018 in Ganglion
Hi All,

I've setup the build system for Ubuntu instead of Max OS X as instructed here:

But paging down a ways, one gets to this on the webpage:
"Move the files called mkdfuzip, nrfutil_macosx, and platform.txt into your Simblee/1.1.0 folder. Restart or launch Arduino."

The question is: Is there a version of "nrfutil_macosx" (maybe "nrfutil_linux") for Linux?

Thanks,
Max

Comments

  • wjcroftwjcroft Mount Shasta, CA
    Max, did that work? The OpenHAK device (wrist heart rate / HRV / Sp02 / motion monitor), was/is a project of Joel @biomurph.

    As you might know RF Digital, the manufacturer of RFduino and Simblee, is under some transition. So they've unfortunately shut down some of their community forum support networks.
  • NaughtiusMaximusNaughtiusMaximus San Diego, California
    Hi William,

    Many thanks again for your support!  Your responsiveness is amazing!

    I added the nrfutil_linux to the correct folder and was able to build a HEX file.  I had to go to a meeting and am now just getting back to it.

    Best regards,
    Max
  • NaughtiusMaximusNaughtiusMaximus San Diego, California
    Hi William,

    Yes, it worked!!!  I use Ubuntu.

    I put the "nrfutil_linux" file in the "~/Desktop/arduino-1.8.7/portable/packages/Simblee/hardware/Simblee/1.1.4" folder.

    In the same folder, I modified "platform.txt" by comparing the one for the Mac and the one from the OpenHAK link you supplied editing to what looked correct.

    After that, I had trouble building the Ganglion code (which I put in my "Downloads" folder) - it would silently not compile changes I made to the CPP file (OpenBCI_Ganglion_Library.cpp).  I was a bit puzzled.  I discovered during the setting up of the build environment (http://docs.openbci.com/Hardware/09-Ganglion_Programming_Tutorial), you install the Ganglion code in the Arduino tree.  I then modified the CPP code in the tree and opened the corresponding project there:

    ~/Desktop/arduino-1.8.7/portable/sketchbook/libraries/OpenBCI_Ganglion_Library

    I built the project.  When you select "Sketch", "Export compiled Binary" in the Arduino IDE, there is a read-only error and you are prompted to save elsewhere.  I saved to the "Documents" folder.  I loaded the ZIP file there over-the-air via my iPhone to the Ganglion - it works!

    Thanks,
    Max

    PS:
    Below is the contents of "platform.txt" I used:


    # Simblee compile variables
    # -------------------------

    # arduino 1.6.3:
    #   {runtime.ide.path} => {runtime.tools.arm-none-eabi-gcc.path}
    # arduino 1.6.6:
    #   {build.path}/{archive_file} => {archive_file_path}
    #   {build.path}/syscalls.c.o => {build.path}/core/syscalls.c.o

    name=Simblee Boards
    # version=1.0.0

    compiler.path={runtime.tools.arm-none-eabi-gcc.path}/bin/
    compiler.c.cmd=arm-none-eabi-gcc
    compiler.c.flags=-c -g -Os -w -std=gnu11 -ffunction-sections -fdata-sections -fno-builtin -MMD
    compiler.c.elf.cmd=arm-none-eabi-g++
    # -u _printf_float
    compiler.c.elf.flags=-Wl,--gc-sections --specs=nano.specs
    compiler.S.flags=-c -g -assembler-with-cpp
    compiler.cpp.cmd=arm-none-eabi-g++
    #compiler.zip.cmd=nrfutil
    compiler.zip.cmd.linux=nrfutil_linux
    ## compiler.zip.cmd=mkdfuzip
    compiler.cpp.flags=-c -g -Os -w -std=gnu++11 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -fno-builtin -MMD
    compiler.ar.cmd=arm-none-eabi-ar
    compiler.ar.flags=rcs
    compiler.objcopy.cmd=arm-none-eabi-objcopy
    compiler.objcopy.eep.flags=-O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0
    compiler.elf2hex.flags=-O ihex
    compiler.elf2hex.cmd=arm-none-eabi-objcopy
    compiler.elf2bin.flags=-O binary
    compiler.ldflags=
    compiler.size.cmd=arm-none-eabi-size
    compiler.define=-DARDUINO=

    # this can be overriden in boards.txt
    build.extra_flags=

    # Simblee compile patterns
    # ------------------------

    ## Compile c files
    recipe.c.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.c.flags} -mcpu={build.mcu} -DF_CPU={build.f_cpu} -D{software}={runtime.ide.version} {build.extra_flags} {includes} {build.variant_system_include} "{source_file}" -o "{object_file}"

    ## Compile c++ files
    recipe.cpp.o.pattern="{compiler.path}{compiler.cpp.cmd}" {compiler.cpp.flags} -mcpu={build.mcu} -DF_CPU={build.f_cpu} -D{software}={runtime.ide.version} -D__PROJECT__="{build.project_name}" {build.extra_flags} {includes} {build.variant_system_include} "{source_file}" -o "{object_file}"

    ## Create archives
    recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} "{archive_file_path}" "{object_file}"

    ## Combine gc-sections, archives, and objects
    recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} -mcpu={build.mcu} {build.extra_flags} "-T{build.variant.path}/{build.ldscript}" "-Wl,-Map,{build.path}/{build.project_name}.map" -Wl,--cref -o "{build.path}/{build.project_name}.elf" "-L{build.path}" -Wl,--warn-common -Wl,--warn-section-align -Wl,--start-group "{build.path}/core/syscalls.c.o" {object_files} "{build.variant.path}/{build.variant_system_lib}" "{build.variant.path}/libSimblee.a" "{build.variant.path}/libSimbleeBLE.a" "{build.variant.path}/libSimbleeGZLL.a" "{build.variant.path}/libSimbleeForMobile.a" "{build.variant.path}/libSimbleeCOM.a" "{build.path}/{archive_file}" -Wl,--end-group

    ## Create eeprom
    recipe.objcopy.eep.pattern=

    ## Create hex
    recipe.objcopy.hex.pattern="{compiler.path}{compiler.elf2hex.cmd}" {compiler.elf2hex.flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.hex"

    ## Save hex
    #recipe.output.tmp_file={build.project_name}.hex
    #recipe.output.save_file={build.project_name}.{build.variant}.hex

    ## Create zip
    ##recipe.objcopy.zip.pattern="{runtime.platform.path}/{compiler.zip.cmd}" "{build.path}/{build.project_name}"
    recipe.objcopy.zip.pattern="{runtime.platform.path}/{compiler.zip.cmd}" "dfu" "genpkg" "{build.path}/{build.project_name}.zip" "--application" "{build.path}/{build.project_name}.hex" "--application-version" "0xffff" "--dev-revision" "0xffff" "--dev-type" "0xffff" "--sd-req" "0xfffe"
    ##nrfutil dfu genpkg $1.zip --application $1.hex --application-version 0xffff --dev-revision 0xffff --dev-type 0xffff --sd-req 0xfffe

    ## Create bin
    recipe.objcopy.bin.pattern="{compiler.path}{compiler.elf2hex.cmd}" {compiler.elf2bin.flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.bin"


    ## Compute size
    recipe.size.pattern="{compiler.path}{compiler.size.cmd}" -A "{build.path}/{build.project_name}.elf"
    recipe.size.regex=^(?:\.text|\.ARM.exidx|\.relocate)\s+([0-9]+).*
    recipe.size.regex.data=^(?:\.relocate|\.bss)\s+([0-9]+).*

    ## prebuild hook
    recipe.hooks.prebuild.0.pattern=

    ## postbuild hook
    recipe.hooks.postbuild.0.pattern=


    recipe.output.tmp_file={build.project_name}.zip
    ##recipe.output.save_file={build.project_name}.{build.variant}.hex
    recipe.output.save_file={build.project_name}.{build.variant}.zip


    # Simblee Uploader tools
    # ----------------------

    tools.RFDLoader.path={runtime.platform.path}/
    tools.RFDLoader.compiler.path={runtime.tools.arm-none-eabi-gcc.path}/bin/

    tools.RFDLoader.script=loader
    tools.RFDLoader.script.windows=loader.bat

    tools.RFDLoader.cmd.windows=RFDLoader.exe
    tools.RFDLoader.cmd.macosx=RFDLoader_osx
    #tools.RFDLoader.cmd.macosx=RFDLoader32_osx
    tools.RFDLoader.cmd.linux=RFDLoader_linux
    #tools.RFDLoader.cmd.linux=RFDLoader32_linux
    #tools.RFDLoader.cmd.linux=RFDLoader_pi

    tools.RFDLoader.upload.params.verbose=
    tools.RFDLoader.upload.params.quiet=

    tools.RFDLoader.upload.pattern="{path}{script}" {cmd} {serial.port} "{build.path}" "{build.project_name}" "{path}" "{compiler.path}"


    tools.nrfDFU.upload.params.verbose=
    tools.nrfDFU.upload.params.quiet=
    tools.nrfDFU.path={runtime.platform.path}/
    tools.nrfDFU.cmd.macosx=nrfDFU
    tools.nrfDFU.upload.pattern="{path}{cmd}" update "{upload.uuid}" "{build.path}/{build.project_name}.bin"
    #tools.nrfDFU.upload.pattern="{path}{cmd}" update F7902AB4-95CA-4955-8966-035FA518C533 "{build.path}/{build.project_name}.bin"




  • wjcroftwjcroft Mount Shasta, CA
    Max, that's great, congrats.

    Would you (please) consider posting your Ganglion related code as a Github repository? Both the demo Android app / library, and the sample firmware / build environment for Linux. I believe the firmware was based on AJ's mods? Such a repo would be an excellent touchstone for those following in your footsteps with Ganglion development.

    Regards,

    William

  • NaughtiusMaximusNaughtiusMaximus San Diego, California
    Hi William,

    It is great, mostly thanks to you!

    Yes, I can put it on a GitHub repository.  I am under a bit of time pressure now, so maybe in a week.

    Thanks,
    Max
  • wjcroftwjcroft Mount Shasta, CA

    @NaughtiusMaximus, (Jonathan Spurgin), hi.

    Do you have a link to your 'platform.txt' file that is more readable? The one posted here on the forum has messed up formatting. I think you said you had a Github? Link?

    This other recent thread is by a Windows user having trouble building a working Ganglion upload file.

    https://openbci.com/forum/index.php?p=/discussion/2736/ganglion-ota-programming-for-windows

    Authored by @teknomage.

    Regards, William

  • wjcroftwjcroft Mount Shasta, CA

    As I stated in the previous comment, when we moved the OpenBCI 'Vanilla Forum' software to the newer version, the formatting was screwed up on the 'platform.txt' file posted above in Nov 2018 by Max/Jonathan. I've appended a repaired version of 'platform.txt' to this comment. It would be instructive to do a diff against the original to see what changes Jonathan made. I think most of his changes saved the original lines by commenting them out with sharp signs.

    Mentioning @teknomage and @NaughtiusMaximus.

    # Simblee compile variables
    # -------------------------
    
    # arduino 1.6.3:
    #   {runtime.ide.path} => {runtime.tools.arm-none-eabi-gcc.path}
    # arduino 1.6.6:
    #   {build.path}/{archive_file} => {archive_file_path}
    #   {build.path}/syscalls.c.o => {build.path}/core/syscalls.c.o
    
    name=Simblee Boards
    # version=1.0.0
    
    compiler.path={runtime.tools.arm-none-eabi-gcc.path}/bin/
    compiler.c.cmd=arm-none-eabi-gcc
    compiler.c.flags=-c -g -Os -w -std=gnu11 -ffunction-sections -fdata-sections -fno-builtin -MMD
    compiler.c.elf.cmd=arm-none-eabi-g++
    # -u _printf_float
    compiler.c.elf.flags=-Wl,--gc-sections --specs=nano.specs
    compiler.S.flags=-c -g -assembler-with-cpp
    compiler.cpp.cmd=arm-none-eabi-g++
    #compiler.zip.cmd=nrfutil
    compiler.zip.cmd.linux=nrfutil_linux
    ## compiler.zip.cmd=mkdfuzip
    compiler.cpp.flags=-c -g -Os -w -std=gnu++11 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -fno-builtin -MMD
    compiler.ar.cmd=arm-none-eabi-ar
    compiler.ar.flags=rcs
    compiler.objcopy.cmd=arm-none-eabi-objcopy
    compiler.objcopy.eep.flags=-O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0
    compiler.elf2hex.flags=-O ihex
    compiler.elf2hex.cmd=arm-none-eabi-objcopy
    compiler.elf2bin.flags=-O binary
    compiler.ldflags=
    compiler.size.cmd=arm-none-eabi-size
    compiler.define=-DARDUINO=
    
    # this can be overriden in boards.txt
    build.extra_flags=
    
    # Simblee compile patterns
    # ------------------------
    
    ## Compile c files
    recipe.c.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.c.flags} -mcpu={build.mcu} -DF_CPU={build.f_cpu} -D{software}={runtime.ide.version} {build.extra_flags} {includes} {build.variant_system_include} "{source_file}" -o "{object_file}"
    
    ## Compile c++ files
    recipe.cpp.o.pattern="{compiler.path}{compiler.cpp.cmd}" {compiler.cpp.flags} -mcpu={build.mcu} -DF_CPU={build.f_cpu} -D{software}={runtime.ide.version} -D__PROJECT__="{build.project_name}" {build.extra_flags} {includes} {build.variant_system_include} "{source_file}" -o "{object_file}"
    
    ## Create archives
    recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} "{archive_file_path}" "{object_file}"
    
    ## Combine gc-sections, archives, and objects
    recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} -mcpu={build.mcu} {build.extra_flags} "-T{build.variant.path}/{build.ldscript}" "-Wl,-Map,{build.path}/{build.project_name}.map" -Wl,--cref -o "{build.path}/{build.project_name}.elf" "-L{build.path}" -Wl,--warn-common -Wl,--warn-section-align -Wl,--start-group "{build.path}/core/syscalls.c.o" {object_files} "{build.variant.path}/{build.variant_system_lib}" "{build.variant.path}/libSimblee.a" "{build.variant.path}/libSimbleeBLE.a" "{build.variant.path}/libSimbleeGZLL.a" "{build.variant.path}/libSimbleeForMobile.a" "{build.variant.path}/libSimbleeCOM.a" "{build.path}/{archive_file}" -Wl,--end-group
    
    ## Create eeprom
    recipe.objcopy.eep.pattern=
    
    ## Create hex
    recipe.objcopy.hex.pattern="{compiler.path}{compiler.elf2hex.cmd}" {compiler.elf2hex.flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.hex"
    
    ## Save hex
    #recipe.output.tmp_file={build.project_name}.hex
    #recipe.output.save_file={build.project_name}.{build.variant}.hex
    
    ## Create zip
    ##recipe.objcopy.zip.pattern="{runtime.platform.path}/{compiler.zip.cmd}" "{build.path}/{build.project_name}"
    recipe.objcopy.zip.pattern="{runtime.platform.path}/{compiler.zip.cmd}" "dfu" "genpkg" "{build.path}/{build.project_name}.zip" "--application" "{build.path}/{build.project_name}.hex" "--application-version" "0xffff" "--dev-revision" "0xffff" "--dev-type" "0xffff" "--sd-req" "0xfffe"
    ##nrfutil dfu genpkg $1.zip --application $1.hex --application-version 0xffff --dev-revision 0xffff --dev-type 0xffff --sd-req 0xfffe
    
    ## Create bin
    recipe.objcopy.bin.pattern="{compiler.path}{compiler.elf2hex.cmd}" {compiler.elf2bin.flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.bin"
    
    
    ## Compute size
    recipe.size.pattern="{compiler.path}{compiler.size.cmd}" -A "{build.path}/{build.project_name}.elf"
    recipe.size.regex=^(?:\.text|\.ARM.exidx|\.relocate)\s+([0-9]+).*
    recipe.size.regex.data=^(?:\.relocate|\.bss)\s+([0-9]+).*
    
    ## prebuild hook
    recipe.hooks.prebuild.0.pattern=
    
    ## postbuild hook
    recipe.hooks.postbuild.0.pattern=
    
    
    recipe.output.tmp_file={build.project_name}.zip
    ##recipe.output.save_file={build.project_name}.{build.variant}.hex
    recipe.output.save_file={build.project_name}.{build.variant}.zip
    
    
    # Simblee Uploader tools
    # ----------------------
    
    tools.RFDLoader.path={runtime.platform.path}/
    tools.RFDLoader.compiler.path={runtime.tools.arm-none-eabi-gcc.path}/bin/
    
    tools.RFDLoader.script=loader
    tools.RFDLoader.script.windows=loader.bat
    
    tools.RFDLoader.cmd.windows=RFDLoader.exe
    tools.RFDLoader.cmd.macosx=RFDLoader_osx
    #tools.RFDLoader.cmd.macosx=RFDLoader32_osx
    tools.RFDLoader.cmd.linux=RFDLoader_linux
    #tools.RFDLoader.cmd.linux=RFDLoader32_linux
    #tools.RFDLoader.cmd.linux=RFDLoader_pi
    
    tools.RFDLoader.upload.params.verbose=
    tools.RFDLoader.upload.params.quiet=
    
    tools.RFDLoader.upload.pattern="{path}{script}" {cmd} {serial.port} "{build.path}" "{build.project_name}" "{path}" "{compiler.path}"
    
    
    tools.nrfDFU.upload.params.verbose=
    tools.nrfDFU.upload.params.quiet=
    tools.nrfDFU.path={runtime.platform.path}/
    tools.nrfDFU.cmd.macosx=nrfDFU
    tools.nrfDFU.upload.pattern="{path}{cmd}" update "{upload.uuid}" "{build.path}/{build.project_name}.bin"
    #tools.nrfDFU.upload.pattern="{path}{cmd}" update F7902AB4-95CA-4955-8966-035FA518C533 "{build.path}/{build.project_name}.bin"
    

    William

  • edited October 2020

    Thanks for this, William. I've been looking into the various libraries I could glean for the compilation and for the sake of completeness, I'm including the OpenHAK platform.txt that I found within Simblee-master from the OpenHAK link you posted earlier on this thread. As you can see, the boards name is OpenHAK (obviously) but more importantly, the tools.nrfDFU defines are missing in here, so am glad you uploaded the corrected version above:

        # Simblee compile variables
        # -------------------------
    
        # arduino 1.6.3:
        #   {runtime.ide.path} => {runtime.tools.arm-none-eabi-gcc.path}
        # arduino 1.6.6:
        #   {build.path}/{archive_file} => {archive_file_path}
        #   {build.path}/syscalls.c.o => {build.path}/core/syscalls.c.o
    
        name=OpenHAK Boards
        # version=1.0.0
    
        compiler.path={runtime.tools.arm-none-eabi-gcc.path}/bin/
        compiler.c.cmd=arm-none-eabi-gcc
        compiler.c.flags=-c -g -Os -w -std=gnu11 -ffunction-sections -fdata-sections -fno-builtin -MMD
        compiler.c.elf.cmd=arm-none-eabi-g++
        # -u _printf_float
        compiler.c.elf.flags=-Wl,--gc-sections --specs=nano.specs
        compiler.S.flags=-c -g -assembler-with-cpp
        compiler.cpp.cmd=arm-none-eabi-g++
        compiler.zip.cmd.windows=nrfutil.exe
        compiler.zip.cmd.macosx=nrfutil
        compiler.zip.cmd.linux=nrfutil_linux
        compiler.cpp.flags=-c -g -Os -w -std=gnu++11 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -fno-builtin -MMD
        compiler.ar.cmd=arm-none-eabi-ar
        compiler.ar.flags=rcs
        compiler.objcopy.cmd=arm-none-eabi-objcopy
        compiler.objcopy.eep.flags=-O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0
        compiler.elf2hex.flags=-O ihex
        compiler.elf2hex.cmd=arm-none-eabi-objcopy
        compiler.ldflags=
        compiler.size.cmd=arm-none-eabi-size
        compiler.define=-DARDUINO=
    
        # this can be overriden in boards.txt
        build.extra_flags=
    
        # Simblee compile patterns
        # ------------------------
    
        ## Compile c files
        recipe.c.o.pattern="{compiler.path}{compiler.c.cmd}" {compiler.c.flags} -mcpu={build.mcu} -DF_CPU={build.f_cpu} -D{software}={runtime.ide.version} {build.extra_flags} {includes} {build.variant_system_include} "{source_file}" -o "{object_file}"
    
        ## Compile c++ files
        recipe.cpp.o.pattern="{compiler.path}{compiler.cpp.cmd}" {compiler.cpp.flags} -mcpu={build.mcu} -DF_CPU={build.f_cpu} -D{software}={runtime.ide.version} -D__PROJECT__="{build.project_name}" {build.extra_flags} {includes} {build.variant_system_include} "{source_file}" -o "{object_file}"
    
        ## Create archives
        recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} "{archive_file_path}" "{object_file}"
    
        ## Combine gc-sections, archives, and objects
        recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} -mcpu={build.mcu} {build.extra_flags} "-T{build.variant.path}/{build.ldscript}" "-Wl,-Map,{build.path}/{build.project_name}.map" -Wl,--cref -o "{build.path}/{build.project_name}.elf" "-L{build.path}" -Wl,--warn-common -Wl,--warn-section-align -Wl,--start-group "{build.path}/core/syscalls.c.o" {object_files} "{build.variant.path}/{build.variant_system_lib}" "{build.variant.path}/libSimblee.a" "{build.variant.path}/libSimbleeBLE.a" "{build.variant.path}/libSimbleeGZLL.a" "{build.variant.path}/libSimbleeForMobile.a" "{build.variant.path}/libSimbleeCOM.a" "{build.variant.path}/libSimbleeSensor.a" "{build.path}/{archive_file}" -Wl,--end-group
    
        ## Create eeprom
        recipe.objcopy.eep.pattern=
    
        ## Create hex
        recipe.objcopy.hex.pattern="{compiler.path}{compiler.elf2hex.cmd}" {compiler.elf2hex.flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.hex"
    
        ## Create ZIP
        recipe.objcopy.zip.pattern="{runtime.platform.path}/{compiler.zip.cmd}" "dfu" "genpkg" "{build.path}/{build.project_name}.zip" "--application" "{build.path}/{build.project_name}.hex" "--application-version" "0xffff" "--dev-revision" "0xffff" "--dev-type" "0xffff" "--sd-req" "0xfffe"
    
        ## Save Zip
        ##recipe.output.tmp_file={build.project_name}.hex
        ##recipe.output.save_file={build.project_name}.{build.variant}.hex
    
        recipe.output.tmp_file={build.project_name}.zip
        recipe.output.save_file={build.project_name}.zip
    
        ## Compute size
        recipe.size.pattern="{compiler.path}{compiler.size.cmd}" -A "{build.path}/{build.project_name}.elf"
        recipe.size.regex=^(?:\.text|\.ARM.exidx|\.relocate)\s+([0-9]+).*
        recipe.size.regex.data=^(?:\.relocate|\.bss)\s+([0-9]+).*
    
        ## prebuild hook
        recipe.hooks.prebuild.0.pattern=
    
        ## postbuild hook
        recipe.hooks.postbuild.0.pattern=
    
        # Simblee Uploader tools
        # ----------------------
    
        tools.RFDLoader.path={runtime.platform.path}/
        tools.RFDLoader.compiler.path={runtime.tools.arm-none-eabi-gcc.path}/bin/
    
        tools.RFDLoader.script=loader
        tools.RFDLoader.script.windows=loader.bat
    
        tools.RFDLoader.cmd.windows=RFDLoader.exe
        tools.RFDLoader.cmd.macosx=RFDLoader_osx
        #tools.RFDLoader.cmd.macosx=RFDLoader32_osx
        tools.RFDLoader.cmd.linux=RFDLoader_linux
        #tools.RFDLoader.cmd.linux=RFDLoader32_linux
        #tools.RFDLoader.cmd.linux=RFDLoader_pi
    
        tools.RFDLoader.upload.params.verbose=
        tools.RFDLoader.upload.params.quiet=
    
        tools.RFDLoader.upload.pattern="{path}{script}" {cmd} {serial.port} "{build.path}" "{build.project_name}" "{path}" "{compiler.path}"
    
Sign In or Register to comment.