From 2aace256cbb5229e8fe79ae2e603f5de1993689f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20K=C3=BChn?= Date: Wed, 24 Jul 2019 18:59:40 +0200 Subject: [PATCH] Updated readme for win build --- README.md | 82 +++++++++++++++++++++++-------------------------------- 1 file changed, 34 insertions(+), 48 deletions(-) diff --git a/README.md b/README.md index c44983ba7..3d1f8e373 100644 --- a/README.md +++ b/README.md @@ -34,68 +34,54 @@ The script downloads Arduino with our modifications and Rambo board support inst ## Windows ### Using Arduino -note: Multi language build is not supported. +_Note: Multi language build is not supported._ + #### 1. Development environment preparation - a. install `"Arduino Software IDE"` for your preferred operating system -`https://www.arduino.cc -> Software->Downloads` -it is recommended to use version `"1.8.5"`, as it is used on out build server to produce official builds. -_note: in the case of persistent compilation problems, check the version of the currently used C/C++ compiler (GCC) - should be `4.8.1`; version can be verified by entering the command -`avr-gcc --version` -if you are not sure where the file is placed (depends on how `"Arduino Software IDE"` was installed), you can use the search feature within the file system_ -_note: name collision for `"LiquidCrystal"` library known from previous versions is now obsolete (so there is no need to delete or rename original file/-s)_ +**a.** Install `"Arduino Software IDE"` from the official website `https://www.arduino.cc -> Software->Downloads` + + _It is recommended to use version `"1.8.5"`, as it is used on out build server to produce official builds._ - b. add (`UltiMachine`) `RAMBo` board into the list of Arduino target boards -`File->Preferences->Settings` -into text field `"Additional Boards Manager URLs"` -type location -`"https://raw.githubusercontent.com/ultimachine/ArduinoAddons/master/package_ultimachine_index.json"` -or you can 'manually' modify the item -`"boardsmanager.additional.urls=....."` -at the file `"preferences.txt"` (this parameter allows you to write a comma-separated list of addresses) -_note: you can find location of this file on your disk by doing the following: -`File->Preferences->Settings` (`"More preferences can be edited in file ..."`)_ -then choose -`Tools->Board->BoardsManager` -from viewed list and select the item labeled `"RAMBo"` (will probably be labeled as `"RepRap Arduino-compatible Mother Board (RAMBo) by UltiMachine"` -_note: select this item for any variant of board used in printers `'Prusa i3 MKx'`, that is for `RAMBo-mini x.y` and `EINSy x.y` to_ -'clicking' the item will display the installation button; select choice `"1.0.1"` from the list(last known version as of the date of issue of this document) -_(after installation, the item is labeled as `"INSTALLED"` and can then be used for target board selection)_ +**b.** Setup Arduino to use Prusa Rambo board definition - c. modify platform.txt to enable float printf support: -add "-Wl,-u,vfprintf -lprintf_flt -lm" to "compiler.c.elf.flags=" before existing flag "-Wl,--gc-sections" -example: -`"compiler.c.elf.flags=-w -Os -Wl,-u,vfprintf -lprintf_flt -lm -Wl,--gc-sections"` -The file can be found in Arduino instalation directory, or after Arduino has been updated at: -"C:\Users\(user)\AppData\Local\Arduino15\packages\arduino\hardware\avr\(version)" -If you can locate the file in both places, file from user profile is probably used. + * Open Arduino and navigate to File -> Preferences -> Settings + * To the text field `"Additional Boards Manager URLSs"` add `https://raw.githubusercontent.com/DRracer/Arduino_Boards/master/IDE_Board_Manager/package_prusa3d_index.json` + * Open Board manager (`Tools->Board->Board manager`), and install `Prusa Research AVR MK3 RAMBo EINSy board` + +**c.** Modify compiler flags in `platform.txt` file + + * The platform.txt file can be found in Arduino instalation directory, or after Arduino has been updated at: `"C:\Users\(user)\AppData\Local\Arduino15\packages\arduino\hardware\avr\(version)"` If you can locate the file in both places, file from user profile is probably used. + + * Add `"-Wl,-u,vfprintf -lprintf_flt -lm"` to `"compiler.c.elf.flags="` before existing flag "-Wl,--gc-sections" + + For example: `"compiler.c.elf.flags=-w -Os -Wl,-u,vfprintf -lprintf_flt -lm -Wl,--gc-sections"` + +_Notes:_ + + +_In the case of persistent compilation problems, check the version of the currently used C/C++ compiler (GCC) - should be at leas `4.8.1`; +If you are not sure where the file is placed (depends on how `"Arduino Software IDE"` was installed), you can use the search feature within the file system_ + +_Name collision for `"LiquidCrystal"` library known from previous versions is now obsolete (so there is no need to delete or rename original file/-s)_ #### 2. Source code compilation -a. place the source codes corresponding to your printer model obtained from the repository into the selected directory on your disk -`https://github.com/prusa3d/Prusa-Firmware/` +**a.** Clone this repository`https://github.com/prusa3d/Prusa-Firmware/` to your local drive. -b. In the subdirectory `"Firmware/variants/"` select the configuration file (`.h`) corresponding to your printer model, make copy named `"Configuration_prusa.h"` (or make simple renaming) and copy it into `"Firmware/"` directory. +**b.** In the subdirectory `"Firmware/variants/"` select the configuration file (`.h`) corresponding to your printer model, make copy named `"Configuration_prusa.h"` (or make simple renaming) and copy it into `"Firmware/"` directory. -c. In file `"Firmware/config.h"` set LANG_MODE to 0. +**c.** In file `"Firmware/config.h"` set LANG_MODE to 0. -run `"Arduino IDE"`; select the file `"Firmware.ino"` from the subdirectory `"Firmware/"` at the location, where you placed the source code -`File->Open` -make the desired code customizations; **all changes are on your own risk!** +**d.** Run `"Arduino IDE"`; select the file `"Firmware.ino"` from the subdirectory `"Firmware/"` at the location, where you placed the source code `File->Open` Make the desired code customizations; **all changes are on your own risk!** -select the target board `"RAMBo"` -`Tools->Board->RAMBo` -_note: it is not possible to use any of the variants `"Arduino Mega …"`, even though it is the same MCU_ +**e.** Select the target board `"Tools->Board->PrusaResearch EINSY RAMBo"` + _note: It is not possible to use any of the variants `"Arduino Mega …"`, even though it is the same MCU_ -run the compilation -`Sketch->Verify/Compile` +**f.** Run the compilation `Sketch->Verify/Compile` -upload the result code into the connected printer -`Sketch->Upload` +**g.** Upload the result code into the connected printer `Sketch->Upload` -or you can also save the output code to the file (in so called `HEX`-format) `"Firmware.ino.rambo.hex"`: -`Sketch->ExportCompiledBinary` -and then upload it to the printer using the program `"FirmwareUpdater"` +* or you can also save the output code to the file (in so called `HEX`-format) `"Firmware.ino.rambo.hex"`: `Sketch->ExportCompiledBinary` and then upload it to the printer using the program `"FirmwareUpdater"` _note: this file is created in the directory `"Firmware/"`_ ### Using Linux subsystem under Windows 10 64-bit