Flowcode
Flowcode is a Microsoft Windows-based development environment commercially produced by Matrix TSL for programming embedded devices based on PIC, AVR (including Arduino) and ARM technologies using graphical programming styles (such as flowcharts) and imperative programming styles (through C and Pseudocode). It is currently in its eighth revision. Flowcode is dedicated to simplifying complex functionality such as Bluetooth, Mobile Phones Communications, USB communications etc. by using pre-developed dedicated component libraries of functions. This is achieved by dragging virtual representations of hardware onto a visual panel, providing access to associated libraries. Flowcode is therefore ideal for speeding up software  development times and allowing those with little programming experience to get started and help with projects. This makes it appropriate for the formal teaching of principles of programming microcontrollers .. Flowcode allows the user to develop and view their program using four different visual modes. These are the Flowchart view, the Blocks view (a graphical programming paradigm inspired by Blockly), the C code view and the Pseudocode view. Flowcode also has compatibility with Solidworks. There is a large and helpful online community based at the Matrix user forums. There is also a dedicated Wiki.