Home JGAurora A5S, A1 & A3S-V2 Modifications & Upgrades

Custom Community Firmware for A5S & A1

1234689

Comments

  • TemTem Posts: 7Member
    edited August 2019
    Looks better now but still is finished with error (actually it's not in terminal, there are only warnings... a bit weird) and `firmware_for_sd_upload.bin` wasn't generated. (see attachment)

    Is `firmware.bin` the same as `firmware_for_sd_upload.bin` ?
    Post edited by Tem on
  • Samuel PinchesSamuel Pinches Posts: 2,997Administrator
    edited August 2019
    Sorry, with that branch the firmware file is generated in the main marlin folder. e.g. "/<firmware folder>/A5S_EN.bin".

    Please delete that entire folder, and redownload from github, if that doesnt work we can do a teamviewer session.

    Post edited by Samuel Pinches on
  • Samuel PinchesSamuel Pinches Posts: 2,997Administrator
    FYI in that branch I also changed the /buildroot/share/PlatformIO/scripts/jgaurora_a5s_a1_with_bootloader.py
  • Samuel PinchesSamuel Pinches Posts: 2,997Administrator
    I just realised - you're on a mac, so it could be a directory that needs to be changed in that python script.
  • TemTem Posts: 7Member
    ok, I'v found already changes in `jgaurora_a5s_a1_with_bootloader.py`, will check this, I'm glad that it's not a problem of compilation, thanks for advise, will keep you updated with my results, and again, thanks for your work, it's amazing!
  • Samuel PinchesSamuel Pinches Posts: 2,997Administrator
    edited August 2019
    I'm so glad its useful for you, and I'm a little relieved that it has turned out to have been a worthwhile effort! :smiley:
    Post edited by Samuel Pinches on
  • TemTem Posts: 7Member
    I've changed one line in `jgaurora_a5s_a1_with_bootloader.py` file from:
    `buildfolder = target[0].dir.path+'../../../' + binfilename`
    to :
    `buildfolder = target[0].dir.path+'/' + binfilename # will generate firmware as .pioenvs/jgaurora_a5s_en/A5S_v2.0D_en.bin`
    and it works now.

    Thanked by 1Samuel Pinches
  • Samuel PinchesSamuel Pinches Posts: 2,997Administrator
    Excellent! Thanks for sharing your success. I'm thinking I might move the build bin back to that folder, I thought it would make things simpler but apparently not.
  • MsinMsin Posts: 6Member
    edited November 2019

    Edit: Forgot to mention im using A5S variant

    First off thank you very much for putting this together. Very impressed with the mimicking of certain features found on Prusa firmware such as moving the nozzle up during filament changes and the autoload features.

    Is it safe to say that filament run-out and power outage are still WIP when running community firmware?

    I'm also planning to add a precision piezo sensor for auto bed leveling in the near future and my plan is the following:

    1. Download source and make edits to account for a nozzle based sensor system.
    2. The precision peizo sensor adds length to the hotend so things like unload and autoload would need to be adjusted by 20-50mm where abouts would I find this in source to edit the values used for autoload and unload?
    3.

    Again thank you everyone for putting work into the firmware and bringing it this point.

    Post edited by Msin on
  • Samuel PinchesSamuel Pinches Posts: 2,997Administrator
    Welcome @Msin , glad the firmware is working for you. I haven't had time to work on this for a few months now, and no-one else has jumped onboard yet either unfortunately.

    I'm not familiar with piezo levelling, but most of the settings are in configuration.g and configuration_adv.h.

    cheers, Sam
  • MsinMsin Posts: 6Member
    Thanks for the tips and welcome Samuel. 

    I'm wondering if you have any guidance on purging off the side of the bed. I'm looking to not create a purge line but instead, purge off the side of the bed. 

    When G28 X occurs the nozzle is placed over the bed however when commands something like G1 X0 the nozzle actually moves onto the bed which is not what im looking todo. Its as if any movement command forces it to get back within range, any thoughts on how I could get around this? 

    G28;

    ; Set initial warmup temps

    M104 S160 ; set extruder no-ooze temp

    M140 S[first_layer_bed_temperature] ; set bed final temp

     

     

    ; Final warmup routine

    M104 S[first_layer_temperature] ; set extruder final temp

    M109 S[first_layer_temperature] ; wait for extruder final temp

    M190 S[first_layer_bed_temperature] ; wait for bed final temp

     

    ; Prime line routine

     

    M201 X500 Y500 Z100 E5000

    M205 S0.00 T0.00 B20000 X5 Z0.4 E5.00

    M420 S1

    G1 Z0.2 F3000 ; get ready to prime

    G92 E0 ; reset extrusion distance

    G1 X0 E15 F600 ; prime nozzle

    G1 X0 Y180 F5000 ; quick wipe


    Thanks!


  • Samuel PinchesSamuel Pinches Posts: 2,997Administrator
    @Msin in the firmware there is an offset programmed for the printable area relative to the endstop. This results in the behavior you see. Why not just home X each time you want to get off the bed?
  • MsinMsin Posts: 6Member
    edited November 2019
    That's what I figured. I've been meaning to compile the code from source and I'll put that on my list to change. I wonder if disabling software endstops would allow me to purge off the side of the bed?  Could you point me to what variables should be getting changed in the config?

    While homing to X gets me off the bed if I try to purge after doing a G28 X it moves back to the print bed which defeats the ability to purge off the side of the bed. It seems any E command returns you to the printable area which makes sense for standard use.

    Thanks for your thoughts!
    Post edited by Msin on
  • MsinMsin Posts: 6Member
    I tried to compile using VScode and your great walkthrough but getting some odd errors. I usually do this through the Arduino IDE but seems like VS code and the workflow you've described is definitely nicer! 


     Executing task: C:\Users\repto\.platformio\penv\Scripts\platformio.exe run <

    Processing megaatmega2560 (platform: atmelavr; framework: arduino; board: megaatmega2560)
    ------------------------------------------------------------------------------------------
    Verbose mode can be enabled via `-v, --verbose` option
    PLATFORM: Atmel AVR 1.15.0 > Arduino Mega or Mega 2560 ATmega2560 (Mega 2560)
    HARDWARE: ATMEGA2560 16MHz, 8KB RAM, 248KB Flash
    PACKAGES: toolchain-atmelavr 1.50400.190710 (5.4.0), framework-arduinoavr 4.1.2
    Converting Marlin.ino
    LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
    LDF Modes: Finder ~ chain, Compatibility ~ soft
    Found 15 compatible libraries
    Scanning dependencies...
    Dependency Graph
    |-- <U8glib-HAL> 0.4
    |   |-- <SPI> 1.0
    |   |-- <Wire> 1.0
    |-- <LiquidCrystal> 1.3.4
    |   |-- <Wire> 1.0
    |-- <TMCStepper> 0.6.1
    |   |-- <SPI> 1.0
    |   |-- <SoftwareSerial> 1.0
    |-- <Adafruit NeoPixel> 1.1.3
    |-- <LiquidTWI2>
    |   |-- <Wire> 1.0
    |-- <Arduino-L6470> 0.7.0
    |-- <TMC26XStepper>
    |   |-- <SPI> 1.0
    |-- <SailfishLCD>
    |-- <SailfishRGB_LED>
    |   |-- <Wire> 1.0
    |-- <SlowSoftI2CMaster>
    |-- <SPI> 1.0
    |-- <Wire> 1.0
    Building in release mode
    Compiling .pio\build\megaatmega2560\src\src\HAL\HAL_AVR\HAL.cpp.o
    Compiling .pio\build\megaatmega2560\src\src\HAL\HAL_AVR\HAL_spi_AVR.cpp.o
    Compiling .pio\build\megaatmega2560\src\src\HAL\HAL_AVR\MarlinSerial.cpp.o
    Compiling .pio\build\megaatmega2560\src\src\HAL\HAL_AVR\persistent_store_eeprom.cpp.o
    In file included from Marlin\src\HAL\HAL_AVR\../../inc/../pins/pins.h:468:0,
                     from Marlin\src\HAL\HAL_AVR\../../inc/MarlinConfig.h:32,
                     from Marlin\src\HAL\HAL_AVR\HAL.cpp:25:
    Marlin\src\HAL\HAL_AVR\../../inc/../pins/stm32/pins_JGAURORA_A5S_A1.h:32:4: error: #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
       #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
        ^
    In file included from Marlin\src\HAL\HAL_AVR\../../inc/../pins/pins.h:468:0,
                     from Marlin\src\HAL\HAL_AVR\../../inc/MarlinConfig.h:32,
                     from Marlin\src\HAL\HAL_AVR\persistent_store_eeprom.cpp:24:
    Marlin\src\HAL\HAL_AVR\../../inc/../pins/stm32/pins_JGAURORA_A5S_A1.h:32:4: error: #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
       #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
        ^
    In file included from Marlin\src\HAL\HAL_AVR\../../inc/../pins/pins.h:468:0,
                     from Marlin\src\HAL\HAL_AVR\../../inc/MarlinConfig.h:32,
                     from Marlin\src\HAL\HAL_AVR\MarlinSerial.cpp:39:
    Marlin\src\HAL\HAL_AVR\../../inc/../pins/stm32/pins_JGAURORA_A5S_A1.h:32:4: error: #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
       #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
        ^
    In file included from Marlin\src\HAL\HAL_AVR\../../inc/../pins/pins.h:468:0,
                     from Marlin\src\HAL\HAL_AVR\../../inc/MarlinConfig.h:32,
                     from Marlin\src\HAL\HAL_AVR\HAL_spi_AVR.cpp:34:
    Marlin\src\HAL\HAL_AVR\../../inc/../pins/stm32/pins_JGAURORA_A5S_A1.h:32:4: error: #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
       #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
        ^
    *** [.pio\build\megaatmega2560\src\src\HAL\HAL_AVR\HAL.cpp.o] Error 1
    *** [.pio\build\megaatmega2560\src\src\HAL\HAL_AVR\HAL_spi_AVR.cpp.o] Error 1
    *** [.pio\build\megaatmega2560\src\src\HAL\HAL_AVR\MarlinSerial.cpp.o] Error 1
    *** [.pio\build\megaatmega2560\src\src\HAL\HAL_AVR\persistent_store_eeprom.cpp.o] Error 1
    ============================== [FAILED] Took 18.50 seconds ==============================

    Environment               Status    Duration
    ------------------------  --------  ------------
    megaatmega2560            FAILED    00:00:18.496
    megaatmega1280            IGNORED
    at90usb1286_cdc           IGNORED
    at90usb1286_dfu           IGNORED
    DUE                       IGNORED
    DUE_USB                   IGNORED
    DUE_debug                 IGNORED
    LPC1768                   IGNORED
    LPC1769                   IGNORED
    melzi                     IGNORED
    melzi_optiboot            IGNORED
    rambo                     IGNORED
    sanguino_atmega644p       IGNORED
    sanguino_atmega1284p      IGNORED
    STM32F1                   IGNORED
    fysetc_STM32F1            IGNORED
    BIGTREE_SKR_MINI          IGNORED
    STM32F4                   IGNORED
    STM32F7                   IGNORED
    ARMED                     IGNORED
    alfawise_U20              IGNORED
    mks_robin                 IGNORED
    mks_robin_lite            IGNORED
    mks_robin_mini            IGNORED
    mks_robin_nano            IGNORED
    jgaurora_a5s_a1           IGNORED
    black_stm32f407ve         IGNORED
    BIGTREE_SKR_PRO           IGNORED
    teensy31                  IGNORED
    teensy35                  IGNORED
    malyanm200                IGNORED
    esp32                     IGNORED
    fysetc_f6_13              IGNORED
    linux_native              IGNORED
    adafruit_grandcentral_m4  IGNORED
    ========================= 1 failed, 0 succeeded in 00:00:18.496 =========================
    The terminal process terminated with exit code: 1

    Terminal will be reused by tasks, press any key to close it.
  • Samuel PinchesSamuel Pinches Posts: 2,997Administrator
    in configuration.h you could look at:
    line 1068, #define MIN_SOFTWARE_ENDSTOPS - try commenting this out
    line 1317, #define MANUAL_X_HOME_POS -6 , try changing this to zero perhaps


  • Samuel PinchesSamuel Pinches Posts: 2,997Administrator
    regarding the build errors, please use the "gotta-build-them-all" branch in my github fork.
  • Samuel PinchesSamuel Pinches Posts: 2,997Administrator
    the build settings are in platformio.ini, the settings for marlin will be in /marlin/configuration_A5S.h
  • Samuel PinchesSamuel Pinches Posts: 2,997Administrator
    if you have teamviewer, and private message me in the next 5 mins, I can connect to your computer and help you build.
  • MsinMsin Posts: 6Member
    Thanks for the help Samuel! Sadly hit another roadblock. After moving the .bin over to the SD card the update swiftly executes but fails to leave the 100% screen. I changed back to the official .bin file for community firmware and it flashes properly. Tried reformating and then placing it and got the same behaviour. 
  • eyeseyes Posts: 70🌟 Super Member 🌟
    I am recently having the same problem getting stuck at 100% even though it has worked in the past. Please post the solution if you figure it out. I can't even upload my file with the bootloader with the ST link. 
  • MsinMsin Posts: 6Member
    Additional information:

    Tried the Titan MKII V2 firmware provided on the inventbox website and it flashed fine. I wonder if the gotta build them all version is messing with things.
  • EarthboundEarthbound Posts: 57🌟 Super Member 🌟
    Can't seem to get any non-factory firmware to load successfully. Hangs at 100% like others have reported above. Cycling power brings up message:

    ->Fat mount fail
    ->exacute FW...

    And sits there forever. Can load factory firmware to restore operation.
    Could the latest factory firmware have killed the ability to load community firmware? Is there older factory firmware stashed somewhere? It doesn't appear to be available on factory site.
  • Samuel PinchesSamuel Pinches Posts: 2,997Administrator
    edited December 2019
    @Earthbound - are you trying my pre-compiled builds from firmware.jgmakerwiki.com, or are you trying to create your own builds?

    On the motherboard is there a version or date printed somewhere? Could you send us a photo of it perhaps?

    Post edited by Samuel Pinches on
  • EarthboundEarthbound Posts: 57🌟 Super Member 🌟
    Have been trying the pre-compiled builds at link above.

    Will see about getting mobo details.
    Thanked by 1Samuel Pinches
  • Samuel PinchesSamuel Pinches Posts: 2,997Administrator
    edited December 2019
    FYI old A5S factory firmware versions are here: https://www.dropbox.com/sh/jss7hg5lewh71qw/AAChU1mS0SB9bT52yOSSGzP0a?dl=0


    Thanked by 1Earthbound
    Post edited by Samuel Pinches on
  • EarthboundEarthbound Posts: 57🌟 Super Member 🌟
    Mainboard is "A3S A5S A1 Main Control V1.1 2018/11/21".
  • EarthboundEarthbound Posts: 57🌟 Super Member 🌟
    I have been using the SD upload method to attempt loading the new firmware and falling back to the factory firmware.

    If I go the ST-link upload route and load new firmware w/bootloader, will I lose the capability for SD upload if I need to revert?
  • eyeseyes Posts: 70🌟 Super Member 🌟
    I was having the same problem with SD upload but after using st-link and uploading a version with the bootloader I am now able to use the SD card again. 
  • Samuel PinchesSamuel Pinches Posts: 2,997Administrator
    Interesting. Maybe there was an issue with factory installed bootloader? @Earthbound - if you do go the ST-Link route, can you please try and dump a copy of the entire firmware first, before you upload the new one?
    And no, the firmware with bootloader is safe - the bootloader component is a copy of the factory bootloader from my machine.
Sign In or Register to comment.