# Modifications to PowerWASP firmware with a few extras The later versions of the PowerWASP controller board have power loss detection on pin 65 (low on loss). this has been configured in POWER_LOSS_RECOVERY. Because of this there is no need to save each command line just in case of a power loss to the machine. The board will hold enough power to allow the print to be saved to the SD card. The retract position on finishing the print has been set at Z190 X0 Y0 There are provisions made here to use ESP3D wireless printer control. https://github.com/luc-github/ESP3D The original PowerWASP board has available a internal serial port connection with Arduino Serial3. The connections are as follows: ``` .------------.---------------------. | | Serial3 | | | [O] 5V | Front | FAN | [O] GND | panel | | [O] TX | side | | [O] RX | `------------´---------------------´ ``` With the option of wireless file upload to the SD card, the idea of updating the Firmware from the SD can also be useful. This option has been selected, but requires a modified boot loader that can be found here: https://github.com/rainerumrobotics/MicroBridge-Arduino-ATMega2560 USB and SDCARD Firmware flashing for the ARDUINO ATMEGA 2560 and ADK --------------------------------------------------------------------- The bootloader looks for byte in eeprom at address 0x3FF: -if it is set to 0xF0 bootloader will look for a bin file on the sdcard named firmware.bin and use it to flash the firmware then reset the byte to 0xFF so it does this only once -otherwise no action is taken and bootloader works as a arduino bootloader except some of the debugging functions are missing Setup ADAFruit micro sdcard 5V ready: SDCARD on ATMEGA 2560 or ADK pin 50 - DO pin 51 - DI pin 52 - CLK pin 53 - CS Generate BIN file for firmware update: To generate a bin file you need issue the following command on you apps elf executable: avr-objcopy -I elf32-avr -O binary firmware.cpp.elf firmware.bin this generates firmware.bin which can be put on the sd for flashing your firmware. You can find the elf file in you apps build directory. Using olimex usb to upload bootloader: avrdude -c stk500v2 -p m2560 -P /dev/tty.usbmodemfd131 -B 500 -e -u -U lock:w:0x3F:m -U efuse:w:0xFD:m -U hfuse:w:0xD8:m -U efuse:w:0xFF:m -F avrdude -p m2560 -c stk500v2 -P /dev/tty.usbmodemfa131 -F -U flash:w:stk500boot.hex -b 115200 -B1 -U lock:w:0x0F:m avrdude -p m168 -c usbtiny -e -u -U lock:w:0x3f:m -U efuse:w:0x00:m -U hfuse:w:0xDD:m -U lfuse:w:0xFF:m avrdude -p m2560 -c stk500v2 -P /dev/tty.usbmodemfd131 -U flash:w:stk500boot_v2_mega2560.hex -U lock:w:0x0F:m -v avrdude -c stk500v2 -p m2560 -P /dev/tty.usbmodemfd131 -U lock:w:0x3F:m -U efuse:w:0xFD:m -U hfuse:w:0xD8:m -U lfuse:w:0xFF:m -e -v