The desktop application is available for Windows/Mac/Linux and runs as a stand-alone executable that can be downloaded from the [Ardublockly repository releases page][4] (once it is stable enough for a first alpha release).
The desktop application is available for Windows/Mac/Linux and runs as a stand-alone executable that can be downloaded from the [Ardublockly repository releases page][4] (once it is stable enough for a first alpha release).
You will also need the [Arduino IDE version 1.6 or higher][2].
You will also need the [Arduino IDE version 1.6.x or higher][2].
In the meantime, you can test __UNSTABLE__ development builds automatically generated on these build servers:
#### Development builds
In the meantime, you can test __UNSTABLE__ development builds automatically generated on these CI build servers:
If you prefer, the main software can be run with Python and a web browser only. Installation instructions for this "developer version" can be found in [this Github repository Wiki][5]. This will work on Windows, Linux and MacOS X, with Python >2.6 and >3.2.
#### "Core version" (Python server only)
If you prefer, the core software can be used by running the Python server, which loads the web interface on your local browser (Chrome recommended).
Full installation instructions for this version can be found in [this Github repository Wiki][5].
The quick version: Clone this repository, initialise all submodules, and execute:
```
python start.py
```
This will work on Windows, Linux (including ARM) and MacOS X, with Python >2.6 and >3.2.
## Running
## Running
1.[Install Ardublockly][5].
1.[Install Ardublockly][5].
2. Install the [Arduino IDE][2] version 1.6 or higher.
2. Install the [Arduino IDE][2] version 1.6.x or higher.
3. Run Ardublockly as defined in your installation method.
3. Run Ardublockly as defined in your installation method.
3. Configure Ardublockly to locate the Arduino IDE [following these instructions][6].
3. Configure Ardublockly to locate the Arduino IDE [following these instructions][6].
...
@@ -55,15 +78,16 @@ A demo of the current state of Ardublockly main interface can be found in the fo
...
@@ -55,15 +78,16 @@ A demo of the current state of Ardublockly main interface can be found in the fo
The documentation, including installation instructions, configuration instructions, and developer information can be found in the [Ardublockly GitHub repository Wiki][7].
The documentation, including installation instructions, configuration instructions, and developer information can be found in the [Ardublockly GitHub repository Wiki][7].
To download the documentation you can git clone the wiki data:
To download the documentation you can git clone the wiki data:
This project has been inspired by [BlocklyDuino][16].
Blockly original source is Copyright of Google Inc. [https://developers.google.com/blockly/][1]
Blockly original source is Copyright of Google Inc. [https://developers.google.com/blockly/][1]. A list of changes to the Blockly fork can be found in the [Blockly subdirectory README][17] file.
## License
## License
...
@@ -73,7 +97,7 @@ The full document can be found in the [LICENSE][9] file.
...
@@ -73,7 +97,7 @@ The full document can be found in the [LICENSE][9] file.
- [ ] Update the documentation build script to work on the project root directory like the other build scripts.
- [ ] Update the py2exe Windows Build to place the executable on the projetct root directory.
- [ ] Should the Windows build be moved to PyInstaller and keep a single build script for all platforms??
- [ ] Add documentation build steps to the CI build servers
## Ardublockly desktop wrapper
- [ ] Wait for resolution and implement appData directory move fixes https://github.com/atom/electron/issues/2721
- [ ] Move Electron front end changes script from ardublockly html injection into preload script executed from Electron
- [ ] Add menu to directly select a between the different Arduino boards supported
- [ ] Executable app signing
- [ ] Check for "built python server executable", if not found check if python is installed, if it is then run the server in a python subprocess.
## Python server
## Python server
- [ ] Complete `compilerserttings` module unit test
- [ ] Complete `compilerserttings` module unit test
- [ ] Complete `actions` module unit test module
- [ ] Complete `actions` module unit test module
- [ ] Check for more possible issues with unicode in Python 2
- [ ] Check for more possible issues with unicode in Python 2
- [ ] Experiment with the `--preserve-temp-files` flag to maintain temporary files and speed up CLI compilation.
- [ ] Experiment with the `--preserve-temp-files` flag to maintain temporary files and speed up CLI compilation
- [ ] Remove tkinker file selection and implement an html version
- [ ] The server should provide fully "headless" execution
#### Linux specific
#### Linux specific
- [ ] Test load to board in Linux with Arduino 1.6 (current test in raspberry pi and ubuntu to load sketches in the IDE) with python 2
- [ ] Test load to board in Linux with Arduino 1.6 (current test in raspberry pi and ubuntu to load sketches in the IDE) with python 2
...
@@ -16,6 +33,7 @@
...
@@ -16,6 +33,7 @@
- [ ] Comprehensive test of server with python 3
- [ ] Comprehensive test of server with python 3
#### Windows specific
#### Windows specific
- [ ] Comprehensive test of server with python 3
#### Python 3 specific
#### Python 3 specific
...
@@ -25,14 +43,9 @@
...
@@ -25,14 +43,9 @@
- [ ] Change delete all icon with "new"
- [ ] Change delete all icon with "new"
- [ ] Similar to Arduino IDE, select area to display button action text, and change the text with button mouse over
- [ ] Similar to Arduino IDE, select area to display button action text, and change the text with button mouse over
- [ ] Ensure that basic empty sketch code shows on page load
- [ ] Ensure that basic empty sketch code shows on page load
- [ ] On low resolutions ensure the blockly vertical height is lower than the viewport
- [ ] On low resolutions ensure the blockly vertical height is lower than the viewport
- [ ] Add tooltips to the action buttons and floating round buttons
- [ ] Add internationalisation, initially only English and Spanish
## Ardublockly desktop wrapper
- [ ] Wait for resolution and implement appData directory move fixes https://github.com/atom/electron/issues/2721
- [ ] Move Electron front end changes script from ardublockly html injection into preload script executed from Electron
- [ ] Add menu to directly select a between the different Arduino boards supported
- [ ] Executable app signing
## Blockly
## Blockly
...
@@ -40,7 +53,7 @@
...
@@ -40,7 +53,7 @@
- [ ] Modify zoom icons to be smaller and placed in top right corner
- [ ] Modify zoom icons to be smaller and placed in top right corner
- [ ] Modify zoom to be available without using the scroll
- [ ] Modify zoom to be available without using the scroll
- [x] ~~Add setup and loop functions to the custom toolbox flyout and ensure only one instance can be included in workspace~~
- [x] ~~Add setup and loop functions to the custom toolbox flyout and ensure only one instance can be included in workspace~~
- [ ] Arduino setup and loop block can be copy/pasted using keyboard shorcuts, stop this from happening
- [ ] Arduino setup and loop block can be copy/pasted using keyboard shorcuts, stop this from happening
#### Blockly changes to feed upstream
#### Blockly changes to feed upstream
- [ ] Any useful changes to the zoom functionality
- [ ] Any useful changes to the zoom functionality
...
@@ -57,7 +70,7 @@
...
@@ -57,7 +70,7 @@
- [ ] controls_forEach block uses lists, these are not implemented in the Arduino generator (possible arrays), when implemented this block needs a getVarType, varType, and getType functions
- [ ] controls_forEach block uses lists, these are not implemented in the Arduino generator (possible arrays), when implemented this block needs a getVarType, varType, and getType functions
- [ ] add getVarType to the procedures blocks
- [ ] add getVarType to the procedures blocks
- [ ] the loops count type is set to int, user could input a decimal, so add input checking to determine type
- [ ] the loops count type is set to int, user could input a decimal, so add input checking to determine type
- [ ] Number blocks automatically trim unnecessary decimal digits "x.0 => x", change this behavior so that "x.0" can be set as a decimal
- [ ] Number blocks automatically trim unnecessary decimal digits "x.0 => x", change this behavior so that "x.0" can be set as a decimal
#### Arduino generator
#### Arduino generator
- [ ] Text trim does not currently generate Arduino valid code
- [ ] Text trim does not currently generate Arduino valid code
...
@@ -75,8 +88,8 @@
...
@@ -75,8 +88,8 @@
## Future features
## Future features
- [ ] Block creator app that also used blockly to create the generator code
- [ ] Block creator app that also used blockly to create the generator code
- [ ] Server component of the block creator to add files into folder and client side update to read them and include them into the toolbox
- [ ] Server component of the block creator to add files into project directory folder and have client side to read them and include them into the toolbox
- [ ] Serial console for comms with Arduino
- [ ] Serial console for comms with Arduino
- [ ] Serial data graphing
- [ ] Serial data graphing
- [ ] SVG image creation to displayed used pins with given function
- [ ] SVG image creation to displayed used pins with given function
- [ ] Auto updating for the desktop app
- [ ] Auto updating from server for the desktop app