Skip to main content

Site Navigation

Your Account

Choose Language


Revision to Firmware

Tyler Anderson

== MatterControl ==
* [|Linux]
* [|MacOS]
* [|Windows]
The latest build of MatterControl has the latest Brainwave Pro drivers built in as well. The software comes with a toll free support telephone number. The line are staffed by the MatterHacker's print solutions group, who have great experience handling 3D Printers (including the Kossel Pro and various other deltabots) and are in a much better position to offer better support. They can help with connectivity issues and software issues on both MatterControl and MatterSlice.
== Arduino ==
* The official firmware requires [|Arduino 1.0.6], not 1.6.0.
* [|Brainwave Arduino Bundle]
** Copy the folder inside called '`brainwave'` to the `'hardware`' directory in your Arduino sketchbook directory. Under Linux this is at ``~/sketchbook``. On Mac it is in ``Documents/Arduino``. On Windows this is in `'My Documents/Arduino'`
== Firmwares ==
* [|Official Firmware]
* [|PJR's Firmware] with endstop calibration and leveling fixes
** [|Instructions]
** This is in the process of being merged into the official firmware
== Before You Begin ==
=== Linux ===
The ModemManager package can cause corruption of the serial data stream when uploading new firmware to the printer. This will at best cause the upload to fail, and at worst may corrupt the bootloader, bricking the board. You can either uninstall modemmanager, or configure your system such that it leaves the printer alone.
* Uninstall from Ubuntu: ``sudo apt-get remove modemmanager``
* Uninstall from Fedora: ``sudo rpm -e ModemManager``
* Uninstall from Arch: ``sudo pacman -R modemmanager``
If you would rather keep ModemManager you will need to tell it to ignore the printer and it's bootloader. Create a file called ``/etc/udev/rules.d/50-ignore-serial.rules`` with the contents below
# LUFA bootloader
SUBSYSTEM=="usb", ATTR{idVendor}=="239a", ATTR{idProduct}=="0001", MODE="0660", GROUP="plugdev", ENV{ID_MM_DEVICE_IGNORE}="1"
# Marlin on Brainwave Pro
SUBSYSTEM=="usb", ATTR{idVendor}=="16d0", ATTR{idProduct}=="076b", MODE="0660", GROUP="plugdev", ENV{ID_MM_DEVICE_IGNORE}="1"
=== Windows ===
In order to see the printer you may need to install a driver. MatterControl should automatically install drivers on Windows when connecting to the printer. If it doesn't, they can be loaded manually from ``C:\Program Files (x86)\MatterControl\StaticData\Drivers\`` or from the Brainwave Arduino Bundle.
=== Mac ===
You may have trouble running Arduino on MacOS if you lack the right version of Java. See for instructions on installing Java 1.6. You do not need to make it the default (which is a security risk) just have it installed.
== Uploading Firmware Using Arduino ==
# Open Arduino
# Open the Marlin.ino file in your firmware package.
# Connect and power on the printer.
# On the Brainwave Pro board, find the RESET and BOOT buttons.
# Hold down BOOT while you briefly press RESET. The Status LED should start pulsing. If not, try again.
# Choose 'Brainwave Pro' from the Tools->Board menu in Arduino
# From the Tools->Serial Port menu select the serial device that just showed up
** Under Linux is will be /dev/ttyUSB0 (or ttyUSB1, etc)
** Under MacOS it will be ?????
** Under Windows it will be COM<something>
# Click the Upload button in Arduino and wait until it says 'Done uploading' in the status bar.
# Power cycle the printer
You should now be able to connect to the printer with your favorite host software. It is recommended that you [|tune the PID controller] before printing.
== Manual Firmware Upload ==
# Install [|avrdude]
# After compiling firmware in Arduino, ``Marlin.cpp.hex`` file will be generated in ``/tmp/build##################.tmp/``. You can use this file for uploading manually or you can download a precompiled .hex file of the firmware.
** [|KosselProMarlin-20150117.hex]
# Hold down BOOT while you briefly press RESET. The Status LED should start pulsing. If not, try again.
# Find the device name that just showed up (/dev/ttyACM0, COM17, etc)
# run the avrude command below in a terminal window, replacing devicename with the device name found in step 4.
** Linux/MacOS: ``avrdude -p at90usb1286 -c avr109 -P /dev/devicename -b 115200 -D -U flash:w:KosselProMarlin-20150117.hex:i``
** Windows: ``avrdude -p at90usb1286 -c avr109 -P devicename -b 115200 -D -U flash:w:KosselProMarlin-20150117.hex:i``
# Power cycle the printer
== Unbricking ==
* [|Bootloader]
* [|Pinouts]
* The Brainwave uses a standard [|6 pin AVR ISP] connection.
* Bus Pirate: Do not connect Vcc. Power from PSU. Connected pullups to +5V but probably not necessary
* AVRDUDE commands using Bus Pirate on Linux. These commands will vary depending on your OS and AVR programmer.
** Flash Fuses: ``avrdude -c buspirate -P /dev/ttyUSB0 -p at90usb1286 -U lfuse:w:0xFF:m -U hfuse:w:0x9B:m -U efuse:w:0xF0:m``
** Flash Bootloader: ``avrdude -c buspirate -P /dev/ttyUSB0 -p at90usb1286 -U flash:w:BootloaderCDC-bwpro-1.hex:i``
** Flash Firmware:``avrdude -c buspirate -D -P /dev/ttyUSB0 -p at90usb1286 -U flash:w:Marlin.cpp.hex:i``