PrusaArduinoBoards/README.md

174 lines
8.2 KiB
Markdown
Raw Permalink Normal View History

2019-11-29 21:06:19 +00:00
# Prusa Research AVR Boards
Prusa Research AVR Boards definitions for Arduino compatible boards manufactured/used by Prusa Research
- [Prusa MM Control board](https://github.com/prusa3d/MM-control-2.0)
- Prusa Einsy and miniRAMBo boards by Ultimachine [Einsy](https://github.com/ultimachine/Einsy-Rambo) and [miniRAMBo](https://github.com/ultimachine/Mini-Rambo)
# Table of contents
<!--ts-->
* [Linux build](#linux)
* Windows build
* [Using Linux subsystem](#using-linux-subsystem-under-windows-10-64-bit)
* [Using Git-bash](#using-git-bash-under-windows-10-64-bit)
* [How-to change code and dependencies](#2-How-to-modify)
* [Prepare new version](#3-Prepare-new-version)
<!--te-->
# 1-Build environment
## Linux
## Windows
Please make sure if you modify code, files, etc. that the line endings are UNIX conform (LF and not CRLF).
### Using Linux subsystem under Windows 10 64-bit
_notes: Script and instructions contributed by 3d-gussner. Use at your own risk. Script downloads Arduino executables outside of Prusa control. Report problems [there.](https://github.com/3d-gussner/Arduino_Boards/issues)._
- follow the [Microsoft guide](https://docs.microsoft.com/en-us/windows/wsl/install-win10)
- Tested versions are at this moment
- Ubuntu other may different
- After the installation and reboot please open your Ubuntu bash and do following steps
- run command `apt-get update`
- run command `apt-get upgrade` to update your OS.
#### Some Tips for Ubuntu
- Linux is case sensetive so please don't forget to use capital letters where needed, like changing to a directory
- To change the path to your Prusa-Firmware location you downloaded and unzipped
- Example: You files are under `C:\Users\<your-username>\Downloads\Arduino_Boards`
- use under Ubuntu the following command `cd /mnt/c/Users/<your-username>/Downloads/Arduino_Boards`
to change to the right folder
- Unix and windows have different line endings (LF vs CRLF), try dos2unix to convert
- This should fix the `"$'\r': command not found"` error
- to install run `apt-get install dos2unix`
#### Modify Arduino_Boards with Ubuntu Linux subsystem installed
- open Ubuntu bash
- change to your source code folder (case sensitive)
- Read How-to-modify below
- run `./Prepare-new-version.sh`
- Read How-to-modify part `package_prusa3d_index.json` below
### Using Git-bash under Windows 10 64-bit
_notes: Script and instructions contributed by 3d-gussner. Use at your own risk. Script downloads Arduino executables outside of Prusa control. Report problems [there.](https://github.com/3d-gussner/Prusa-Firmware/issues) Multi language build is supported._
- Download and install the [64bit Git version](https://git-scm.com/download/win)
- Also follow these [instructions](https://gist.github.com/evanwill/0207876c3243bbb6863e65ec5dc3f058)
#### Compile Prusa-firmware with Git-bash installed
- open Git-bash
- Read How-to-modify below
- change to your source code folder
- run `bash Prepare-new-version.sh`
- Read How-to-modify `package_prusa3d_index.json` below
# 2-How-to-modify
Folder Structure:
.
+-- IDE_Boards_Manager
¦ +-- prusa3dboards Please don't change that folder name when you update your Github and post a PR.
¦ +-- bootloaders
¦ +-- prusa_einsy_rambo Which is a clone of https://github.com/prusa3d/stk500v2-prusa
¦ +-- prusa_mm_control
¦ +-- cores
¦ +-- prusa_einsy_rambo
¦ +-- variants
¦ +-- prusa_einsy_rambo
¦ +-- prusa_mm_control
¦ +-- ...
+-- ...
Files:
.
+-- IDE_Boards_Manager
¦ +-- prusa3dboards Please don't change that folder name when you update your Github and post a PR.
¦ +-- boards.txt contains definitions for the boards (board name, parameters for building and uploading sketches, etc.).
¦ +-- platform.txt contains definitions for the CPU architecture used (compiler, build process parameters, tools used for upload, etc.).
¦ +-- avrdude.conf
¦ +-- ...
¦ +-- package_prusa3d_index.json
¦ +-- prusa3dboards.version contains the release version numbers and is used in `Prepare-new-version.sh`. The first line is used.
¦ +-- prusa3dboards-<versions>.tar.bz2 actual used pacakges for Ardunio IDE Boards Manager
¦ +-- prusa3dboards-<versions>.md Info about the version
¦ +-- ...
+-- LICENSE
+-- README.md
+-- ...
More information about [boards.txt](https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5-3rd-party-Hardware-specification#boardstxt)
More information about [platforms.txt](https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5-3rd-party-Hardware-specification#platformtxt)
More information about [package_prusa3d_index.json](https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.6.x-package_index.json-format-specification)
Naming convention for version:
- <`major:#1`.`minor:#2`.`maintenance:#2`"-`devel status:0-4`-`devel build:#6`" where `-devel status` and `devel build` are optional
- `#1` = numbers 0-9
- `#2` = numbers 0-99
- `0-4`= only numbers between 0 and 4. 0=devel, 1=alpha, 2=beta, 3=pre-release, 4=release candidate
- `#6` = numbers 0-999999
Few examples:
- 1.0.0-0-235 Is a version in development and devel build 235.
- 1.0.0 Is the frist stable version
- 1.0.1 Is a stable version that was maintaind...like adding a bootloader or changing tools to existing boards
- 1.1.0-3 Is a pre-release version including new boards
- 1.1.0 Is the first stable version including new boards
After modifying the source code please follow these steps:
- add the new version (following the naming conention) in the first line of `prusa3dboards.version`
- run `Prepare-new-version.sh` to generate `prusa3dboards-<version>tar.bz2` and to show `sha256checksum` and `size` needed in the `package_prusa3d_index.json`
- open `package_prusa3d_index.json`in your prefered editor (like notepad++)
- Directly under
```
{
"packages": [
{
"name": "PrusaResearch",
"maintainer": "Prusa Research",
"websiteURL": "https://www.prusa3d.com/",
"email": "info@prusa3d.com",
"help": {
"online": "https://github.com/3d-gussner/Arduino_Boards"
},
"platforms": [
```
you will find the latest Prusa Research AVR Boards definition ... something like this
```
{
"name": "Prusa Research AVR Boards",
"architecture": "avr",
"version": "1.0.2",
"category": "Contributed",
"url": "https://raw.githubusercontent.com/3d-gussner/Arduino_Boards/V1.0.2/IDE_Board_Manager/prusa3dboards-1.0.2.tar.bz2",
"archiveFileName": "prusa3dboards-1.0.2.tar.bz2",
"checksum": "SHA-256:7d49c48d86644513bd2f2222024934e827783f9f5be160c8a1ae14e177d0393a",
"size": "120855",
"help": {
"online": "https://learn.sparkfun.com/tutorials/installing-arduino-ide/board-add-ons-with-arduino-board-manager"
},
"boards": [
{
"name": "Original Prusa i3 MK3 Multi Material 2.0 upgrade"
},
{
"name": "Original Prusa i3 MK3/MK3S Einsy RAMBo"
}
],
"toolsDependencies": []
},
```
- Copy and paste this section twice
- Modify the top one with new values
- change `"version": "1.0.2",` `"version": "<version shown by Prepare-new-version.sh>",
- change in `"url":` and `"archiveFileName":` the "ArchiveFileName" parts you got from `Prepare-new-version.sh`
- if you have your own github for of this repository and you made a new worktree/branch to test your code you should not forget to modify the `"url":` to your `branch`
- change in `"checksum": ` the "SHA256 checksum" you got from `Prepare-new-version.sh`
- change in `"size":` the "Size" you got from `Prepare-new-version.sh`
- double check the syntax/format of the JSON file. In Notepad++ makes it is quite easy by using the [+] and [-] to see if your changes are correct.
When you have an own github and work localy use `git status` to verify your status.
- You may need to use `git add IDE_Board_Manager/prusa3dboards-<version>.tar.bz2`
- You need to commit your changes with `git commit -a`. Please try to document your changes as detailed as possible.