BlocklyProp Updates 2020 - Transition to BlocklyProp Solo
BlocklyProp is transitioning from the original account-based system at blockly.parallax.com to the secure, no-login BlocklyProp Solo site where users store their projects on their computers. An updated Launcher (replaces Client) is needed for BlocklyProp Solo.
- See the BlocklyProp Bulk Project Download page to retrieve your personal projects from the original system.
- See Getting Started with BlocklyProp Solo to enjoy the new, easier to use system.
New blocks to support new products with be released on the BlocklyProp Solo site going forward.
BlocklyProp Updates June 21, 2019
- Added support for the 296 x 128 2.9" ePaper Display (#28084). See the ePaper block reference.
- Added a block for the OLED module, also available on the ePaper module, to display a bitmap from an SD card. see the OLED block reference.
- Added support for the BME680 Environmental Sensor Module.. See the Air Quality block reference.
- Added a warning to the New Processor block, reminding not to use it in loops, as only up to 7 processors at most may be launched.
- Fixed bugs for uploading SVG files.
- Fixed bugs for using the WiFi blocks.
- Improved timing in the generated C code that controls WS2812B RGB LEDs.
- Improved generated C code for the Badge WX to prevent unintended speaker noise.
BlocklyProp Updates January 25, 2019
- Updated the BlocklyProp core provided by Google, to fix a core bug related to variables. This slightly changed the process for creating variables. See the Variable Blocks tutorial.
- Expanded the options in the Color Picker menu.
BlocklyProp Updates Released November 12, 2018
Bug fixes and improvements
- Serial LCD send command block - fixes bug causing it to not generate any code
- Improve User Defined Code block - allows copies of a block to work in the same project
- String scan multiple block - fix bug where user input would not save
- String operator blocks - improve and fix generated code
- Fix bug related to variables containing strings
- Add blocks and improve output pin selection for WAV, text-to-speech, and Sound blocks
- Add "other" or constants for defining pins in most protocol and sensor blocks
BlocklyProp Updates Released September 5, 2018
New devices
- New Badge WX board/device type
- Includes blocks and libraries to support the Badge WX
- Supports Parallaxy robot within the Propeller Activity Board WX board/device type
- Allows direct-load of base firmware and calibration specific to the platform
New/improved blocks
- User-defined code block
- Allows the user to create a block that generates user-defined code
- New blocks and improvements to existing blocks in Operators > Strings
- Allows for cleaner manipulation of strings, reduces the likelihood of memory and compiler errors.
- Strings in Blockly changed from 1-referenced entities to 0-referenced entities.
- Blocks that "1-referenced" strings are now deprecated (see About Deprecated Blocks below)
- Send multiple and receive multiple blocks added to all communication devices/protocols (and string operators)
- Allows for floating point to/from integer in to and out of the Propeller
- Allows generation of more complex string and number combinations
- Fixes XBee block errors and bugs
- Adds Advanced WX blocks for interacting with the WX module on WiFi networks
- Potential Internet of Things (IoT) applications
- Adds “to”/”thru” option to the repeat x times block
- Adds SD card blocks for text file manipulation
- Improves/simplifies IMU (LSM9DS1) magnetometer calibration routine
- Adds named constants blocks
- Better than variables for defining things like Pins.
- Unlike variables, named constants do not use memory.
- Adds sound blocks
- Can be used for polyphony
- Can be used to generate DTMF tones
- Adds wav set pins block to Propeller ActivityBoard WX board/device type
- Allows .wav files to be played out to breadboard pins instead of the earphone jack
Improvements to Propeller C generated code
- Detects variables shared across processors and declares them volatile
- Prepares BlocklyProp for user-selectable compiler optimization (to be released in a future update)
- Improved string variable code generation
- Generates string variables that are cleaner that won’t collide in memory
- Cleaner Propeller C generation
- Several Blockly-generated functions have been moved inside of simpletools.h
- More concise, readable code
- Improves 4x4 keypad block generated code
- Solves button “bounce” and inconsistent/incorrect readings
System/User interface improvements
- Adds X-Y series (scatter plotting) to graphing blocks
- Allows for direct comparison of two (or four, six, eight, or ten) input quantities.
- Overall code efficiency improvements, as well as improvements designed to support offline use in future versions.
- Database and project code improvements
- Deceased load on server databases - reduces project load time
- Server upgrades
- Eliminates an overloading error that caused site downtime on rare occasions
- Split server-side and client-side code into separate repositories
- Allows for smaller, more frequent updates
- In preparation for a future offline version of BlocklyProp
BlocklyProp Updates Released May 24, 2018
- ActivityBot 360° is now the default option for Robot initialize, ActivityBot calibrate, and ActivityBot display calibration blocks.
- Community Projects: the former Sharing options Private and Shared have been updated to List in Community Projects options Unlisted and Listed.
- Share project using link checkbox for new projects creates a permanent link for that project. The link can be activated, de-activated, and re-activated with this checkbox.
- Terminal character echo now takes place in the Terminal itself, not in the Propeller chip, for improved performance.
- SimpleText in the library the Terminal print text blocks updated to better handle new lines (/n) and carriage returns (/r).
- The Project description field has been shortened so the buttons underneath are visible on lower resolution screens.
- Connection checking functionality has been temporarily disabled for XBee and Serial protocol blocks pending planned improvements. An incorrectly structured code may not compile but alleviates a bug that prevented users from being able to re-open saved projects that used specific blocks.
About Deprecated Blocks
Occasionally, we "retire" blocks. Sometimes we integrate a block's functionality into a related one, to reduce the number of blocks. Other times, we may need to replace the code that a set of blocks generate, in a way that is not backward-compatible and so would "break" existing programs. Then, we "retire" the old set when we release the new set.
When a block is deprecated, it will turn orange to alert you that it is time to update that spot in your code with a current block.
Blocks deprecated June 27th, 2018
- find substring (1-referenced version)
- get character at (1-referenced version)
- set character at (1-referenced version)
- get substring (1-referenced version)
Blocks deprecated January 18th, 2018
- Serial transmit number and Serial transmit text — to be replaced with an improved Serial Transmit block that handles both text and numbers
- Serial receive text and Serial receive number — to be replaced with a block that handles both text and numbers
Released January 19th, 2017
For the best experience, Windows and Mac users should update their BlocklyProp Client software to version 0.7.x or higher, but anything in the 0.6.x range will work.
- Map, a new number operator block scaling and offsetting a value from one range to another — great for tying sensor or human input to actuator output
- Math operation block updated to support additional terms - just click the gear icon.
- Parentheses block, to change the order of operations in math operations
- Music note, a new value block to specify a frequency by note and octave
- Terminal print multiple, OLED print multiple, and LCD Print multiple: each device has a new block for printing a list of terms of different types such as a text label followed by a decimal value, on a single line
- Scale and display integers as floating point decimal values with the Terminal, OLED, and LCD print multiple block
- New Serial transmit and Serial receive blocks that can handle both text and number values (deprecating the current blocks, see below.)
- Additional Serial Init options for customizing the baud rate and mode
- Multiple device support for RGB LED init, ColorPal init, and Serial init connections
- Advanced options in the Feedback 360° servo configure (formerly setup) block
- Feedback 360° servo status, a new block to support applications that require coordinated movement among several servos at once
- The option to specify the PIN in certain SERVO and ANALOG/PULSES blocks with another block instead of a drop-down menu
- Improved instructions for launching your BlocklyProp Client/Launch if not found
- All projects created as private by default, even when using the "save as" feature with your own shared project or with other user's community project.
Released October 2017
- Feedback 360 servo blocks for the new Parallax Feedback 360 High-Speed Servo
- Updated Robot blocks to support the ActivityBot 360° robot in the Robotics with Blockly tutorial.
- Deprecated PWM Initialize block; its functionality was incorporated into the PWM set block.
What we are working on next
- Wireless Terminal support via WX WiFi modules
- An offline version of BlocklyProp (Windows/Mac/Linux only)
- Searchable and sortable project listings
- User and project preference settings
- Propeller C editing capability within BlocklyProp
- Support for additional devices and sensors
- one-wire thermometers
- parallel character LCDs
- digital potentiometer
- real-time clock modules
We strive to coordinate our updates to keep all of our tutorials up to date with the very latest changes in BlocklyProp once they are released. However, due to the volume of the tutorials and educator resources, there may be some unavoidable lag time.
Change History
For all the gory details, see our BlocklyProp-related GitHub repositories:
BlocklyProp website, BlocklyProp server, BlocklyProp client, Propeller Cloud Compiler.