Hello!
I’m excited to announce the new XOD version — v0.13.0. Our team worked hard to introduce few massive changes.
Most notable one is redesign of the patch board.
Many liked the slot system used previously, however working with XOD for few months it became obvious the big slots have some critical flaws. Specifically, when you work with single pin nodes like terminals or constants a patch is going to be very wide and poorly structured. The new grid/slot hybrid system solves that problems. Although the snapping is still coarse enough so that a perfectionist would not cry.
The next thing, we implemented Quick Search. Super productivity booster. You’re no longer required to remember the alphabet and spend time on scrolling the Project Browser.
Another big thing is the Helpbar. No longer necessary to switch to the web help and back while discovering the nodes.
Note for existing users
If you already have XOD installed, then you have a workspace with your projects and a copy of the standard library. We won’t touch the workspace during the update. To use the new nodes you’ll have to either:
Delete the existing workspace at C:\Users\<yourname>\xod
and restart IDE
Create a new workspace after the update via main menu: File → Select Workspace
You can update manually by reinstalling XOD or simply click “Update” right within the current XOD IDE when it launches.
Release notes
Formal detailed list of changes goes below.
Features and enhancements
- Switch patch board layout from slots to a slot/grid hybrid.
- Add nodes quick search. Hit Edit → Insert Node, or Double click the patch
board, or pressI
key to invoke it. - Add the Helpbar. The new pane that shows contextual help for a node. Hit View → Toggle Helpbar or press
H
key to show it. - Implemented panning of the patch board. Now you can navigate large patches by pressing spacebar or middle mouse button and drag.
- The terminal nodes now have their own outstanding look (circles) so that you can quickly scan a patch to find its inputs and outputs.
- Now you can set starting values for
flip-flop
,count
, and many other simply binding a desired initial value to their outputs. - Add few missing tooltips for UI controls in the Inspector and Project Browser.
- Browser-based IDE now shows the direct download link for the desktop IDE when trying to upload.
- The Help main menu item now goes last in the desktop IDE as it should be.
New nodes
- xod/core/discretize-2
- xod/core/discretize-3
- xod/core/discretize-4
- xod/core/nth-number-2
- xod/core/nth-number-3
- xod/core/nth-number-4
- xod/core/word-to-number
- xod/core/i2c-begin-transmission
- xod/core/i2c-begin-transmission
- xod/core/i2c-end-transmission
- xod/core/i2c-end-transmission
- xod/core/i2c-read
- xod/core/i2c-request-bytes-6
- xod/core/i2c-request
- xod/core/i2c-send-byte
- xod/core/i2c-send-bytes-2
- xod/core/i2c-write
- xod/common-hardware/adxl335-accelerometer
- xod/common-hardware/adxl335-convert
- xod/common-hardware/l3g4200-gyro
- xod/common-hardware/l3gd20h-gyro
- xod/common-hardware/lis331dlh-accelerometer
- xod/common-hardware/lis331hh-accelerometer
- xod/common-hardware/lis3dh-accelerometer
- xod/common-hardware/st-imu-generic-sensor
- xod/common-hardware/st-imu-normalize-acc
- xod/common-hardware/st-imu-normalize-va
- xod/common-hardware/st-imu-round-sensitivity
Bug fixes
- Fix upload on boards with multiple controller variants. Notably, Arduino Nano which has ATmega328 and ATmega168 versions.
-
xod/core/count
node now works fine with a fractionalSTEP
’s. - Fix compilation error saying “
dtostrf
is not defined” which occurred on non-AVR platforms when trying to cast a number to a string. - Avoid false
xod/common-hardware/button
triggering on boot. - Tweak buttons overlapping long node label for a selected item in the Project Browser.
- Double click on the add (+) button in the Project Browser no longer drops you to the clicked node implementation. You can still drill down if you’d click the label outside of a button.
Optimizations
- Move most of the static data in generated C++ to flash memory section. It lowers RAM consumption at the order of 2× to 3×.
- Get rid of a separate
topology
mapping in C++. Now all node IDs are already sorted topologically. It saves one or two bytes of RAM and Flash per native node. - Provide API for native nodes to access values stored in their outputs directly. It saves RAM for the nodes which keep their internal state, e.g.
flip-flop
,count
,fade
, etc.
Deprecations and removals
- Rudimental support for JS-based platforms is dropped so that we can focus on C++ microcontroller platforms and support them well.
Download the new version
Follow to the downloads page or start existing desktop IDE and confirm the upgrade.
We’re waiting for your feedback