# ArduBlock Studio - Visual Arduino Programming IDE | WEB & Offline IDE

**URL:** <https://forum.arduino.cc/t/ardublock-studio-visual-arduino-programming-ide-web-offline-ide/1442478>\
**Category:** General Discussion\
**Created:** [May 3, 2026, 7:41pm UTC](https://forum.arduino.cc/t/ardublock-studio-visual-arduino-programming-ide-web-offline-ide/1442478 "2026-05-03T19:41:10Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![iagolira](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/iagolira/32/1121986_2.png) [@iagolira](https://forum.arduino.cc/u/iagolira)\
**Post date:** [May 3, 2026, 7:41pm UTC](https://forum.arduino.cc/t/ardublock-studio-visual-arduino-programming-ide-web-offline-ide/1442478/1 "2026-05-03T19:41:10Z")

</div>

# ArduBlock Studio — Two Ways to Code Arduino Visually

ArduBlock Studio is a powerful visual programming IDE for Arduino that transforms the way you create embedded projects. Drag, drop, and connect colorful blocks to build complete Arduino programs — the tool automatically generates optimized C++ code, compiles, and uploads directly to your board.

There are now two versions of ArduBlock Studio: the original **Offline Desktop edition** and the brand-new **Online Web edition**. Both share the same mission — making Arduino programming accessible to everyone — but they differ significantly in interface, features, and workflow.

* * *

## ArduBlock Studio WEB — ⭐ RECOMMENDED

**The most up-to-date version, with the most features and the most active development.**

The Web edition runs entirely in your browser at **[ardublockstudio.com.br](https://ardublockstudio.com.br)** or **[ardublockstudio.web.app](https://ardublockstudio.web.app)** — no installation, no setup, no drivers to fight with. It's the version where all new features land first and where active development happens.

 ![image](https://europe1.discourse-cdn.com/arduino/original/4X/4/d/d/4ddc5e8d480289bb022cc9c3bdb8f5dd6257593e.jpeg)

[YouTube Video here!](https://www.youtube.com/watch?v=yJA9q735ViY)

### What makes the Web version special

- **Zero installation** — runs directly in Chrome, Edge, Firefox, or Opera. No Python, no pip, no downloads.
- **Completely redesigned interface** — modern dark theme, refined layout, and a smoother UX. The Web interface is significantly different from the desktop version and reflects the latest design direction of the project.
- **Direct upload from the browser** — uses the **Web Serial API** to flash your Arduino straight from Chrome, no Arduino IDE or avrdude required.
- **Remote compilation backend** — sketches are compiled on a dedicated server via **arduino-cli** , then the resulting `.hex` is flashed through your browser.
- **AI-powered features (Premium)** — generate blocks from a text prompt, translate C++ line by line, and create programming quizzes, all powered by **Groq's LLM API**.
- **Real-time collaboration** — share projects with collaborators and edit the same workspace simultaneously.
- **Cloud project storage** — projects are saved to **Firebase** and synced across devices with your Google account.
- **Modern block library** — **150+ blocks** across **25+ categories** , including sensors (GY-33, TCS230, UV, joystick, encoder), motors (DRV8833, L298N, A4988, TB6612), Ethernet W5100, crypto (AES-128, SHA-256, HMAC), Bluetooth HC-05/HC-06, interrupts, pointers, arrays, bitwise operations, exponentials and logarithms, and much more.
- **Visual C++ library builder** — create complete Arduino libraries (`.h` + `.cpp` + `keywords.txt` + `library.properties`) using visual blocks.
- **Built-in 2D + 3D plotters** — visualize analog sensors in real time with **Chart.js** (2D lines, XY, multi-series) plus a **3D plotter** for scatter clouds, parametric surfaces, and XYZ trajectories.
- **Minimap, block search, linter, auto-format, presentation mode, PNG export** — quality-of-life tools baked in.
- **Multilingual** — English, Portuguese, Spanish, Japanese, Korean, and Hindi.
- **Powered by Blockly v13.**
- **Project export** — save and share your work as `.ardublock` files (JSON + XML) for backup or transfer.

### Who it's perfect for

- Teachers who want students to start coding instantly, without installing anything
- Students and beginners in STEM, robotics, and IoT
- Makers who need to prototype quickly on any machine
- Anyone who wants access to the latest features first

🔗 **Open the Web version:** [ardublockstudio.com.br](https://ardublockstudio.com.br)

* * *

## 💻 ArduBlock Studio DESKTOP — Offline Edition

**The original desktop edition. Fully offline, PyQt6-based, and ideal for classroom environments without reliable internet.**

The Desktop edition is a native Python application built with **PyQt6** and **PyQt6-WebEngine**. It bundles **Blockly v11** inside an embedded web view and communicates with the Python backend through **QWebChannel**. Everything runs locally — including compilation via **arduino-cli** and upload via **pyserial**.

### What makes the Desktop version special

- **100% offline** — works without internet. Ideal for labs, classrooms, and environments with restricted connectivity.
- **Native desktop application** — installable on Windows, macOS, and Linux.
- **Local compilation** — uses the `arduino-cli` binary installed on your machine.
- **ISP programmer support** — upload via AVRISP mkII, USBasp, Arduino as ISP, and other external programmers.
- **Extension system** — add custom blocks, categories, and features dynamically.
- **50+ Arduino boards supported** — from the classic UNO to modern Portenta and ESP32.
- **Project history** — automatic versioning and backup of your work.
- **PDF export** — generate beautiful documentation of your projects.
- **Bilingual (EN/PT)** — English and Portuguese interface.

⚠ **Note:** the Desktop interface differs substantially from the Web version. The Web version has received more recent updates, a redesigned UI, and several features that are not yet available on Desktop (such as AI-powered block generation, real-time collaboration, the browser-based 2D/3D Serial Plotter, and 6-language support).

### Who it's perfect for

- Classrooms without reliable internet access
- Users who prefer a native desktop application
- Makers who need ISP programmer support
- Researchers prototyping locally

### ⚡ Quick Start (Desktop)

```bash
git clone https://github.com/iagolirapasssos/ArduBlock-Studio.git
cd ArduBlock-Studio
pip install -r requirements.txt
python3 main.py

```

📥 **Pre-built binaries** are available in the [Releases section](https://github.com/iagolirapasssos/ArduBlock-Studio/releases) of the GitHub repository.

* * *

## 🆚 Which version should you choose?

| Feature | 🌐 Web | 💻 Desktop |
| --- | --- | --- |
| Installation required | ❌ None | ✅ Python + deps |
| Works offline | ❌ | ✅ |
| Most recent features | ✅ First | ⏳ Delayed |
| Interface design | ✅ Redesigned (latest) | Legacy |
| Languages supported | ✅ **6** (EN/PT/ES/JA/KO/HI) | ✅ 2 (EN/PT) |
| Blockly version | ✅ **v13** | v11 |
| AI features (Groq) | ✅ (Premium) | ❌ |
| Real-time collaboration | ✅ | ❌ |
| Cloud project storage | ✅ | ❌ |
| Browser-based Serial Plotter (2D + 3D) | ✅ | ❌ |
| Visual C++ library builder | ✅ | ❌ |
| Bitwise / interrupt / pointer blocks | ✅ | ⏳ Partial |
| ISP programmer support | ❌ | ✅ |
| PDF export | ❌ | ✅ |
| Extension system | ⏳ Planned | ✅ |
| Direct upload from browser | ✅ | ✅ (native) |

**Rule of thumb:**

- Want the **latest features** and the **newest interface** → use the **Web version**.
- Need to work **offline** or with **ISP programmers** → use the **Desktop version**.

* * *

## 🤝 We need your help!

ArduBlock Studio is hosted on GitHub and we're actively looking for contributors — whether you're a Python developer, JavaScript enthusiast, UI/UX designer, documentation writer, or just passionate about Arduino, there's a place for you!

🔗 **GitHub Repository:** [github.com/iagolirapasssos/ArduBlock-Studio](https://github.com/iagolirapasssos/ArduBlock-Studio)

### Ways to contribute

- Report bugs and suggest features
- Submit pull requests (Python/PyQt6, JavaScript/Blockly, Arduino)
- Translate to new languages
- Improve documentation and tutorials
- Create custom extensions and block libraries
- Enhance the UI/UX design
- Write tests and improve code quality

**Tech Stack:**

- **Desktop:** Python 3.10+ · PyQt6 · PyQt6-WebEngine · QWebChannel · Blockly v11 · arduino-cli · pyserial
- **Web:** HTML5 · CSS3 · JavaScript · Blockly v13 · Web Serial API · Firebase (Auth + Firestore) · Groq API · Chart.js · arduino-cli (backend)
- **Shared:** Firebase · arduino-cli · `.ardublock` project format

🌟 **First-time contributors welcome!** Check our [Issues page](https://github.com/iagolirapasssos/ArduBlock-Studio/issues) for `good first issue` tags.

* * *

## ⭐ Support the project

- **Star the repo** to help it reach more makers
- **Spread the word** — share with your local makerspace, school, or Arduino meetup group
- **Try the Web version** and give us feedback

Let's make Arduino programming accessible to everyone, together. 🤝

#ArduBlock #Arduino #VisualProgramming #BlocklyIDE #ArduinoProjects #STEM #EdTech

* * *

## 📌 TL;DR

🌐 **Try the Web version** (latest)  
[ardublockstudio.com.br](https://ardublockstudio.com.br)

💻 **Desktop version** (offline)  
[GitHub Releases](https://github.com/iagolirapasssos/ArduBlock-Studio/releases)

🤝 **Contribute**  
[github.com/iagolirapasssos/ArduBlock-Studio](https://github.com/iagolirapasssos/ArduBlock-Studio)

The **Web version** features a completely redesigned interface, receives more frequent updates, supports **6 languages** , includes **2D + 3D plotters** , AI features, real-time collaboration, and cloud sync.

The **Desktop edition** is 100% offline, supports ISP programmers, and is ideal for classrooms without internet access.

For the newest features and the modern experience, start with the **Web version**.

---

<div class="post-metadata">

**Author:** ![b707](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/b707/32/854321_2.png) [@b707](https://forum.arduino.cc/u/b707)\
**Post date:** [May 3, 2026, 8:10pm UTC](https://forum.arduino.cc/t/ardublock-studio-visual-arduino-programming-ide-web-offline-ide/1442478/2 "2026-05-03T20:10:51Z")

</div>

Hi

I see that your GitHub repository is new, but its style and concept are very similar to the old ArduBlock:

> **[GitHub - taweili/ardublock: ArduBlock is a Block Programming Language for...](https://github.com/taweili/ardublock)**
>
> ArduBlock is a Block Programming Language for Arduino.

But your project has new authors, and you don't even mention the old project. Isn't your project a development of the previous one?  
As far as I can see, you were not even among the contributors to the ArduBlock project. Please tell me I'm wrong, and you didn't just take someone else's project and post it under your own name?

---

<div class="post-metadata">

**Author:** ![iagolira](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/iagolira/32/1121986_2.png) [@iagolira](https://forum.arduino.cc/u/iagolira)\
**Post date:** [May 3, 2026, 8:16pm UTC](https://forum.arduino.cc/t/ardublock-studio-visual-arduino-programming-ide-web-offline-ide/1442478/3 "2026-05-03T20:16:58Z")

</div>

First of all, it's not ArduBlock, but ArduBlock Studio. The IDE was built from scratch without piggybacking on other repositories. The project mentioned was developed in Java; my project was created entirely in Python.

---

<div class="post-metadata">

**Author:** ![b707](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/b707/32/854321_2.png) [@b707](https://forum.arduino.cc/u/b707)\
**Post date:** [May 3, 2026, 8:20pm UTC](https://forum.arduino.cc/t/ardublock-studio-visual-arduino-programming-ide-web-offline-ide/1442478/4 "2026-05-03T20:20:07Z")

</div>

> [@iagolira](#):
>
> The IDE was built from scratch without piggybacking on other repositories.

Really?

Anybody can compare:

Ardublock

 ![Screenshot from 2026-05-03 23-17-16](https://europe1.discourse-cdn.com/arduino/original/4X/2/f/3/2f3c8eba08698c66f66737bef6371407e3d6ab9c.png)

Ardublock Studio

 ![Screenshot from 2026-05-03 23-19-35](https://europe1.discourse-cdn.com/arduino/original/4X/5/8/0/58036a6aef35f46a5c6abff64e5f9aea77f64fec.png)

---

<div class="post-metadata">

**Author:** ![iagolira](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/iagolira/32/1121986_2.png) [@iagolira](https://forum.arduino.cc/u/iagolira)\
**Post date:** [May 3, 2026, 8:22pm UTC](https://forum.arduino.cc/t/ardublock-studio-visual-arduino-programming-ide-web-offline-ide/1442478/5 "2026-05-03T20:22:15Z")

</div>

The design was inspired by Mit App Inventor and Thinkercad.

---

<div class="post-metadata">

**Author:** ![b707](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/b707/32/854321_2.png) [@b707](https://forum.arduino.cc/u/b707)\
**Post date:** [May 3, 2026, 8:25pm UTC](https://forum.arduino.cc/t/ardublock-studio-visual-arduino-programming-ide-web-offline-ide/1442478/6 "2026-05-03T20:25:37Z")

</div>

> [@iagolira](#):
>
> The project mentioned was developed in Java; my project was created entirely in Python.

If you completely copy someone else's project, even in a different language, that doesn't make it your own. This is called porting, and such a project must acknowledge and link back to the original.

Also, if this is a "completely new project," why is its name practically a carbon copy of its competitor's?

This all looks very ugly.

---

<div class="post-metadata">

**Author:** ![zwieblum](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/zwieblum/32/427702_2.png) [@zwieblum](https://forum.arduino.cc/u/zwieblum)\
**Post date:** [May 3, 2026, 8:36pm UTC](https://forum.arduino.cc/t/ardublock-studio-visual-arduino-programming-ide-web-offline-ide/1442478/7 "2026-05-03T20:36:21Z")

</div>

All desendents of MIT Scratch. All claim "STEM" "easy" "no programming" and "ideal for teachers". All guarantee kids will never try programming again.

---

<div class="post-metadata">

**Author:** ![iagolira](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/iagolira/32/1121986_2.png) [@iagolira](https://forum.arduino.cc/u/iagolira)\
**Post date:** [May 3, 2026, 8:40pm UTC](https://forum.arduino.cc/t/ardublock-studio-visual-arduino-programming-ide-web-offline-ide/1442478/8 "2026-05-03T20:40:48Z")

</div>

It's wrong to criticize without knowing the project. The choice of name was unfortunate.

---

<div class="post-metadata">

**Author:** ![b707](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/b707/32/854321_2.png) [@b707](https://forum.arduino.cc/u/b707)\
**Post date:** [May 3, 2026, 8:45pm UTC](https://forum.arduino.cc/t/ardublock-studio-visual-arduino-programming-ide-web-offline-ide/1442478/9 "2026-05-03T20:45:41Z")

</div>

> [@iagolira](#):
>
> The choice of name was unfortunate.

...the same for design and even the labels on left panel?

My humble opinion is that your post should be deleted. If you find my statements unacceptable - contact the moderator.

---

<div class="post-metadata">

**Author:** ![iagolira](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/iagolira/32/1121986_2.png) [@iagolira](https://forum.arduino.cc/u/iagolira)\
**Post date:** [May 3, 2026, 9:44pm UTC](https://forum.arduino.cc/t/ardublock-studio-visual-arduino-programming-ide-web-offline-ide/1442478/10 "2026-05-03T21:44:53Z")

</div>

ExpensiveDear user, your comments are unfounded. You need to invest in something deeply before launching attacks.

---

<div class="post-metadata">

**Author:** ![iagolira](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/iagolira/32/1121986_2.png) [@iagolira](https://forum.arduino.cc/u/iagolira)\
**Post date:** [September 20, 2026, 10:11pm UTC](https://forum.arduino.cc/t/ardublock-studio-visual-arduino-programming-ide-web-offline-ide/1442478/11 "2026-09-20T22:11:07Z")

</div>

🚀 **ArduBlock Studio Web – A Web-Based Advanced Block Programming Platform for Arduino**

Are you an Arduino enthusiast, educator, student, or maker looking for a more visual and intuitive way to program your Arduino projects?

 ![demo](https://europe1.discourse-cdn.com/arduino/original/4X/c/4/c/c4cb9c92a89638bf5428938181c7f86ac4d11a91.jpeg)

I’m excited to introduce **Arduino Block Studio** , a **web-based platform for advanced block-based Arduino programming**.

🔧 **What is Arduino Block Studio?**

Arduino Block Studio lets you create Arduino programs visually using programming blocks directly in your web browser. It combines the simplicity of block-based programming with advanced programming concepts, making it suitable for both learning and more complex projects.

🌐 **No installation required — simply open the platform in your browser and start programming.**

It can be useful for:

• Arduino beginners learning programming  
• Students and educators  
• Robotics projects  
• Makers and hobbyists  
• Sensor and actuator projects  
• STEM education  
• Advanced Arduino applications

The goal is to make Arduino programming more accessible while providing a powerful visual programming environment for building real projects.

👉 **Try Arduino Block Studio:**

> **[ArduBlock Studio](https://ardublockstudio.web.app/)**

I’d love to hear feedback from the Arduino community!

What features would you like to see in a **web-based advanced block programming platform for Arduino**? 🚀

#Arduino #ArduinoProgramming #ArduinoProjects #BlockProgramming #WebBased #Robotics #STEM #Maker #IoT #Programming #ArduinoIDE

---

<div class="post-metadata">

**Author:** ![zwieblum](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/zwieblum/32/427702_2.png) [@zwieblum](https://forum.arduino.cc/u/zwieblum)\
**Post date:** [September 20, 2026, 11:14pm UTC](https://forum.arduino.cc/t/ardublock-studio-visual-arduino-programming-ide-web-offline-ide/1442478/12 "2026-09-20T23:14:58Z")

</div>

you really think that the left 3/4th of the screen are an improvement to nthe 1/4 on the right?

---

<div class="post-metadata">

**Author:** ![iagolira](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/iagolira/32/1121986_2.png) [@iagolira](https://forum.arduino.cc/u/iagolira)\
**Post date:** [September 20, 2026, 11:17pm UTC](https://forum.arduino.cc/t/ardublock-studio-visual-arduino-programming-ide-web-offline-ide/1442478/13 "2026-09-20T23:17:46Z")

</div>

I didn't understand. Please explain in detail.

---

<div class="post-metadata">

**Author:** ![zwieblum](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/zwieblum/32/427702_2.png) [@zwieblum](https://forum.arduino.cc/u/zwieblum)\
**Post date:** [September 22, 2026, 11:57am UTC](https://forum.arduino.cc/t/ardublock-studio-visual-arduino-programming-ide-web-offline-ide/1442478/14 "2026-09-22T11:57:52Z")

</div>

What make you think that hiding all lanuage elements in the leftmost tree, dragging them to the middle, struggling with white-text-on-yellow-background, clicking all over the place to change a value etc ... is easier than just typing the text on the right?

---

<div class="post-metadata">

**Author:** ![iagolira](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/iagolira/32/1121986_2.png) [@iagolira](https://forum.arduino.cc/u/iagolira)\
**Post date:** [September 22, 2026, 4:57pm UTC](https://forum.arduino.cc/t/ardublock-studio-visual-arduino-programming-ide-web-offline-ide/1442478/15 "2026-09-22T16:57:58Z")

</div>

I understand your point, especially if you already have experience with text-based programming. However, ArduBlock Studio is not primarily designed for experienced programmers who can already write Arduino code fluently. It is designed as an educational tool for beginners and students.

There is a well-established educational rationale for using block-based programming. Research in computer science education has shown that block-based environments can reduce the syntactic burden of programming, allowing novice learners to focus more on programming concepts and computational thinking rather than on memorizing syntax and dealing with syntax errors.

For example, Hao et al. (2023), in the _International Journal of STEM Education_, discuss how novice learners face significant cognitive demands when processing programming structures and note that block-based languages have become popular in education partly because they reduce the burden of complex text-based syntax. Their research also highlights the importance of scaffolding when teaching programming to novices.

> **[The effect of embedded structures on cognitive load for novice learners...](https://link.springer.com/article/10.1186/s40594-023-00432-9)**
>
> Background Coding has become an integral part of STEM education. However, novice learners face difficulties in processing codes within embedded structures (also termed nested structures). This study aimed to investigate the cognitive mechanism...

Research specifically comparing graphical and textual approaches to introductory microcontroller programming has also found educational benefits from graphical environments. A study published in _Education and Information Technologies_ reviewed evidence showing that students using block-based environments can achieve significant learning gains in introductory programming and that graphical environments can support problem-solving development.

> **[Strategy for learning microcontroller programming—a graphical or a textual...](https://link.springer.com/article/10.1007/s10639-023-12024-9)**
>
> Microcontroller programming competencies contribute to the sustainable employability of engineering graduates of both higher and secondary education. To develop the required programming skills, one of the challenges for educators is to determine...

Another study on children's coding experiences explains that syntax is a frequent difficulty in programming education and that block-based environments are widely used to reduce this barrier for learners.

> **[Children’s coding experiences in a block-based coding environment: a...](https://link.springer.com/article/10.1007/s10639-023-11625-8)**
>
> Programming education is an important educational process that enables the development of children's problem solving and algorithmic thinking skills. It is known that children frequently encounter syntax problems in coding activities. Many...

More recent research continues to support this educational approach. Sung and Ozkan (2026), in the _Journal of Science Education and Technology_, found that a block-based programming intervention significantly improved computational-thinking skills among sixth-grade students. The authors specifically describe block-based environments as a way of lowering the syntax barrier so students can focus on computational and scientific reasoning.

> **[Coding Science: The Role of Block-Based Programming Activities in Enhancing...](https://link.springer.com/article/10.1007/s10956-026-10317-5)**
>
> Journal of Science Education and Technology - In the digital era, fostering computational thinking (CT) skills is essential for scientific literacy and engaging students in authentic scientific...

There is also research showing that combining block-based and text-based environments can be particularly useful. A 2024 study involving 240 programming students found benefits from approaches that combine block-based and text-based programming for the development of sustained problem-solving skills.

> **[Modeling students’ algorithmic thinking growth trajectories in different...](https://link.springer.com/article/10.1186/s40561-024-00324-7)**
>
> In recent years, programming education has gained recognition at various educational levels due to its increasing importance. As the need for problem-solving skills becomes more vital, researchers have emphasized the significance of developing...

So, I don't claim that blocks are universally better than text. They are simply designed for a different purpose.

If an experienced Arduino programmer can type:

digitalWrite(LED, HIGH);

faster than dragging a block, that's completely understandable.

But a beginner who has never programmed before is dealing with a different problem. They first need to understand concepts such as variables, conditions, loops, functions, inputs, outputs and program flow. Requiring them to simultaneously memorize syntax, punctuation, function names and language rules adds another layer of difficulty that may have little to do with the concept we are actually trying to teach.

That's the educational purpose behind ArduBlock Studio.

And regarding your UI criticism: that's fair feedback. If some interactions feel cumbersome, such as finding blocks, changing values, or dealing with color contrast, those are legitimate UX issues that can be improved. I'm always open to that kind of feedback.

But the existence of those UI issues doesn't invalidate the educational purpose of block-based programming.

ArduBlock Studio is not intended to replace text-based Arduino programming for experienced developers. The goal is to provide a more accessible entry point into programming and microcontroller development, particularly for students and beginners.

Ideally, the learner starts with visual programming, develops an understanding of the underlying concepts, and then progressively moves toward reading and writing textual code.

So the relevant question isn't simply:

"Why drag blocks when you can type?"

For education, the more useful question is:

"What interface helps a beginner understand programming well enough to eventually be able to type the code themselves?"

That's the problem ArduBlock Studio is trying to solve.

---

<div class="post-metadata">

**Author:** ![zwieblum](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/zwieblum/32/427702_2.png) [@zwieblum](https://forum.arduino.cc/u/zwieblum)\
**Post date:** [September 22, 2026, 5:58pm UTC](https://forum.arduino.cc/t/ardublock-studio-visual-arduino-programming-ide-web-offline-ide/1442478/16 "2026-09-22T17:58:36Z")

</div>

For the sake of argument ... transfer this approach to basic algebra. Learning addition/subtraction and memorizing the multiplication tables is hard. Still, children start lerarning these basics years before being allowed to use a calculator at school. Now your argument is: just give them a calculator, they will learn multiplication tables without knowing. This does not work.

Problem is, that there is no "easy" way to learn programming. You cannot skip the basics. Most (with a minor number of exceptions) of teachers here (austria) that teach programming do not have a clue how to program themselfs. Scratch and its offsprings make the live of these teachers easy - no need to learn programming at all. The outcome is dire to put it politely. And those papers ... I won't comment.

---

<div class="post-metadata">

**Author:** ![iagolira](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/iagolira/32/1121986_2.png) [@iagolira](https://forum.arduino.cc/u/iagolira)\
**Post date:** [September 22, 2026, 11:49pm UTC](https://forum.arduino.cc/t/ardublock-studio-visual-arduino-programming-ide-web-offline-ide/1442478/18 "2026-09-22T23:49:30Z")

</div>

I actually agree with one important part of your argument: there is no magic shortcut around learning programming fundamentals. Students still need to learn variables, data, control flow, abstraction, algorithms, debugging, problem decomposition, etc.

But I think the calculator analogy makes an important category error.

A block-based programming environment is not analogous to giving a child a calculator instead of teaching multiplication. It is more analogous to changing the notation or interface through which the same computational concepts are expressed.

A student using a block-based environment still has to construct the algorithm. They still have to decide what should happen, in what order, under which conditions, how variables change, how loops work, how inputs and outputs interact, and how to debug the program.

The difference is that the learner does not have to simultaneously master all of those concepts AND the syntax of a textual programming language.

And this isn't merely my personal opinion.

A 2021 meta-analysis of 29 empirical studies found a small-to-medium positive overall effect of block-based visual programming on students' academic achievement (random-effects g = 0.47). The authors examined tools including Scratch, Alice and MIT App Inventor and specifically investigated their use with novice learners.

> **[Exploring the Effectiveness and Moderators of Block-Based Visual Programming...](https://journals.sagepub.com/doi/10.1177/0735633120945935)**
>
> Block-based visual programming tools, such as Scratch, Alice, and MIT App Inventor, provide an intuitive and easy-to-use editing interface through which to prom...

There is also a 2025 meta-analysis, covering research published between 2001 and 2024, which found a moderate positive overall effect of block-based programming on academic achievement (Hedges' g = 0.53), with particularly strong effects among elementary students.

[https://doi.org/10.1080/02635143.2025.2593936](https://doi.org/10.1080/02635143.2025.2593936)

Now, I also want to be fair to your position.

A 2019 meta-analysis comparing block-based and text-based programming environments for novice learners did NOT find statistically significant differences in cognitive or affective outcomes. The authors explicitly concluded that more research was needed.

That is important because I don't think the evidence justifies saying "blocks are better than text."

[https://doi.org/10.1080/08993408.2019.1565233](https://doi.org/10.1080/08993408.2019.1565233)

What the research does support is a more nuanced conclusion: block-based programming can be an effective instructional tool for novices, but its effectiveness depends on how it is designed and taught.

There is also a cognitive reason for using visual representations. Research published in the _International Journal of STEM Education_ has shown that novice learners experience substantial cognitive load when processing hierarchical programming structures. This is precisely the kind of cognitive burden that educational programming environments have to consider.

> **[The effect of embedded structures on cognitive load for novice learners...](https://link.springer.com/article/10.1186/s40594-023-00432-9)**
>
> Background Coding has become an integral part of STEM education. However, novice learners face difficulties in processing codes within embedded structures (also termed nested structures). This study aimed to investigate the cognitive mechanism...

And the evidence goes beyond "students enjoy Scratch." A 2024 systematic review and meta-analysis covering 19 studies and 1,523 participants found that coding interventions can improve problem-solving, planning, working memory and inhibition, with the largest effect observed for problem-solving.

[https://doi.org/10.1016/j.compedu.2023.104961](https://doi.org/10.1016/j.compedu.2023.104961)

So I completely agree that students should eventually understand textual programming. In fact, I would argue that a good educational progression should be:

concepts → visual representation → algorithms → debugging → increasingly complex projects → reading text-based code → writing text-based code.

That is very different from saying "give students Scratch and they don't need to learn programming."

Regarding your comment about teachers: I actually think that is a separate issue.

If a teacher doesn't understand programming, putting Scratch, Blockly or any other visual tool in their hands will not magically make them a good programming teacher. The problem there is teacher preparation, curriculum design and pedagogical training — not the existence of block-based languages.

A bad teacher can misuse both Scratch and C++.

Likewise, a good teacher can use blocks as scaffolding and deliberately connect every visual construct to the underlying computational concept and, eventually, to textual code.

That's also how I see ArduBlock Studio.

I'm not claiming that dragging a block is inherently superior to typing Arduino code. If you already know C/C++, typing is obviously faster for many tasks.

ArduBlock Studio is aimed at a different point on the learning curve: students who are learning programming concepts and Arduino simultaneously.

For an experienced programmer, the blocks may look unnecessarily cumbersome.

For a beginner, the same blocks can make the structure of the program visible and eliminate a class of syntax errors that have nothing to do with the concept being taught.

And I don't think we should confuse "this is slower for me" with "this has no educational value."

The interesting question isn't whether an experienced programmer can type the equivalent code faster.

The interesting educational question is:

Does the representation help a beginner understand algorithms, control flow, variables, inputs, outputs and problem solving well enough to eventually write the textual code themselves?

The research suggests that, under appropriate instructional conditions, the answer can be yes.

And that's the educational problem ArduBlock Studio is trying to address.

---

<div class="post-metadata">

**Author:** ![iagolira](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/iagolira/32/1121986_2.png) [@iagolira](https://forum.arduino.cc/u/iagolira)\
**Post date:** [September 23, 2026, 12:13pm UTC](https://forum.arduino.cc/t/ardublock-studio-visual-arduino-programming-ide-web-offline-ide/1442478/21 "2026-09-23T12:13:07Z")

</div>

I respect your opinion, but I only stated the facts. If you come across any article in a magazine that contradicts this, then I will reconsider my thoughts. However, the facts confirm my thoughts.

---

<div class="post-metadata">

**Author:** ![alto777](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/alto777/32/317385_2.png) [@alto777](https://forum.arduino.cc/u/alto777)\
**Post date:** [September 23, 2026, 10:07pm UTC](https://forum.arduino.cc/t/ardublock-studio-visual-arduino-programming-ide-web-offline-ide/1442478/23 "2026-09-23T22:07:19Z")

</div>

@iagolira can the "generate[d] optimized C++ code" be seen easily?

a7

---

<div class="post-metadata">

**Author:** ![iagolira](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/iagolira/32/1121986_2.png) [@iagolira](https://forum.arduino.cc/u/iagolira)\
**Post date:** [September 24, 2026, 7:03pm UTC](https://forum.arduino.cc/t/ardublock-studio-visual-arduino-programming-ide-web-offline-ide/1442478/24 "2026-09-24T19:03:48Z")

</div>

Yes, you can see it on the right side of the screen. In addition to block-based programming, you can write code using C++ or pure C libraries and compile directly for boards such as the Uno, Mega, Nano, Leonardo, ESP32, etc.

[Next page](https://forum.arduino.cc/t/ardublock-studio-visual-arduino-programming-ide-web-offline-ide/1442478.md?page=2)
