Git Product home page Git Product logo

prusa-cw-firmware's Introduction

Prusa-CW1-Firmware

Original Prusa Curing and Washing machine firmware

Table of contents

Building with make

Automatic, remote, using travis-ci

Create new github user, eg. your_user_name-your_repository_name-travis. This step is not mandatory, only recomended to limit access rights for travis to single repository. Grant this user access to your repository. Register this user on https://travis-ci.org/. Create API key for this user. In Github click on this user, settings, Developer settings, Personal access tokens, Generate new token, select public_repo, click on Generate token and copy this token.

Login into https://travis-ci.org/ enable build of your repository, click on repository setting, add environment variable ACCESS_TOKEN and paste your token.

Each commit is build, but only for tagged commits Prusa-CW1-Firmware-LANG-GIT_TAG.hex files are attached to your release by travis.

Automatic, local, using script and prepared tools package

You need to install unzip, wget and make tools, next run the following command:

./build.sh

It downloads neccessary tools, creates build subfolder, extracts tools to build/env, builds firmware using make and puts the result into build subfolder.

Manually with installed tools

You need make, avr-gcc and avr-libc installed.

To build version with debug turned on use:

make

or with language code:

make LANG=xx

The file build/Prusa-CW1-Firmware-LANG-devel.hex will be generated.

To build version without debug use:

make dist

or with language code:

make LANG=xx dist

The file build/Prusa-CW1-Firmware-LANG-GIT_TAG.hex will be generated.

Flashing

PrusaSlicer (previously Slic3er PE)

Configuration > Flash printer firmware, then fill up the path to generated .hex and hit Flash!

Avrdude

Board needs to be reset to bootloader. Bootloader has 5 seconds timeout and then returns to the application.

This can be accomplished manually by clicking reset button on CW1 (near microUSB port), or programmatically by opening and closing its virtual serial line at baudrate 1500.

Than flash it using following command, replace <virtual serial port> with CDC device created by CW1 usually com<nr> under Windows and /dev/ttyACM<nr> under Linux. -b baud rate is don't care value, probably doesn't have to be specified at all, as there is no physical uart.

avrdude -v -p atmega32u4 -c avr109 -P <virtual serial port> -b 57600 -D -U flash:w:build/Prusa-CW1-Firmware-LANG-GIT_TAG.hex:i

Linux with ModemManager installed

There is known issue with ModemManager: you either need to deinstall it, or blacklist the Prusa Research USB devices:

  • create or edit /etc/udev/rules.d/99-mm.rules in order to add:
# Original Prusa CW1
ATTRS{idVendor}=="2c99", ATTRS{idProduct}=="0007", ENV{ID_MM_DEVICE_IGNORE}="1"
ATTRS{idVendor}=="2c99", ATTRS{idProduct}=="0008", ENV{ID_MM_DEVICE_IGNORE}="1"
  • Then reload udev rules :
$ sudo udevadm control --reload-rules

A request has been sent to Ubuntu, Debian and ModemManager to blacklist the whole Prusa Research VID space.

Building documentation

You need make and doxygen installed.

make doc

The documentation is generated in doc/ subfolder.

prusa-cw-firmware's People

Contributors

mkbel avatar tritol avatar michalrudolf avatar jaroslavdancziwski avatar jarodan avatar jakoobcz avatar michalprusa avatar iamgnat avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.