Problems with mBot 2 (Neo)


Questions about the new mBot 2 (Neo)

1. IR remote control

For the device expansions, the mBlock5 IDE also offers an IR expansion:

  • Is this available?
  • What does it costs?
  • Is the IR remote control of the mBot V1.1 supported?
  • Is it supported by mBlock5 / microPython in terms of software?

2. TFT LCD display

The Makeblock 2.4" TFT display from the mBot 1 is no longer supported. Will there be an alternative for the mBot 2? If yes: When?

3. Category display in mBlock 5:

  • What is the difference between “Show str to x y” and show labelx to x y "?
  • The screen is cleared each time when these two blocks are output! For example, how can I get the text “Hello” and
    the text “World” is displayed at position 101: 56? I think this is a BUG and not a feature.

4. A menu with four options is displayed in the CyberPi’s home menu. The currently active option is highlighted in blue.
How can I realize this in my own sketch? Where can I view the program of the Home-Menu source as an mBlock script or in mircroPython?



Hi phg1, please check the answers below:

  1. IR Transceiver is available in mBuild kits. You can contact with your local distributors for it. We just tested it and you can control your mBot 2 with this module attached using the IR remote controller from mBot first version. It supports programming in Python.

  2. At the moment we don’t have any plan to support TFT display on mBot 2.

  3. “Show str to x y” was the old version of show label x to x y ". The newer one allows to show different content in one program as below. Soon we might remove the old one.

  4. Can you contact me via to provide a bit more description of this question? I’m a little confused with this one


Hello tech_support,

OK, I didn’t realize that there is always only one text that is displayed for each label.
BUT: Why are there only eight labels? I need 16 !! Is there a trick to do this?

If I want to display labels in the program at the same time and also want to draw lines (with doodle), that is not possible. If you switch from display to doodle or from doodle to display, the screen will be cleared. Why? How can I prevent this?

Regarding my fourth question: If you press the home button on the mBot 2, a menu appears:

 Switch program settings

At the beginning of the line, all items have a small symbol.

The first item (Restart) has a blue background.

I would like to include such a menu in my own program. How can I achieve this?



  1. Why are there only eight labels? I need 16 !! Is there a trick to do this?
    -----We don’t provide over 8 labels. If you need more, please consider to use sprites.

  2. If I want to display labels in the program at the same time and also want to draw lines (with doodle), that is not possible. If you switch from display to doodle or from doodle to display, the screen will be cleared. Why? How can I prevent this?
    -----It’s designed to be an alternative choice, you cannot use both of them. Label is easier while doodle is more free.

  3. I would like to include such a menu in my own program. How can I achieve this?
    -----It’s in the firmware, and it’s designed not to be changed.


Hi Tech Support,
In your reply to the message from CommandeR, you wrote that you are trying to answer the user questions. Unfortunately, my second question has not been answered. I can see that text (labels) and graphics (doodle) cannot be output at the same time. You say it is wanted in this way! My question: why should that be? What is the advantage? It is possible in mBlock3 for the mBot 1! Why not in mBlock5? For me mBot Neo is not a step forward but a step backwards!
The designer should think again about this: I think, it is not a feature but a bug.




Hi phg1,

There are many explanations for putting or not a feature. Technological limitation, performance obstruction, forgets, bugs or intentionally removed for consistency. The support has answered your question, it is the answer that you find incomplete.

Usually, Makeblock takes user suggestions on this forum into consideration and transfers them to research and development for analysis (especially early in a product’s life). I offered a lot of functionality in Neurons early in life and have seen my requests added for the most part. However, you need to make a post a little more substantial.

I suggest you make a new post with an image of the old feature (mBot1) that you have seen, an example and an explanation. Personally, I have always gone further by showing the result in the new product (mBot2). You can make a Photosphop or trust them. There are categories for suggestions and I vote when I like the functionality. Ok, I don’t have mBot2 yet but I am waiting for it to be available.

This approach does not guarantee anything in returns because I still do not have the possibility of retrieving the current time (IOT) on the Codey but for other requests (I did not do much, see on the forum), j was very surprised by Makeblock.

Hoping that the product offers as much possibility as possible for even more creativity.


Hi Crackerl,

Thank you for your detailed contribution. First of all: Unfortunately, my English has always been very bad. My English teacher said “You speak an excellent accent without the slightest english”. And that was over 60 years ago. I can read English articles quite well with Google’s help, writing is only possible with Google Translate. And then everything is not always understandable.

First of all: I’m excited about the mBot 1. And much more from the hardware of zje new mBot Neo.
I wrote down my experiences in a kind of blog on my own website Unfortunately this page is in German. But there is the Google translator.

The mBot was originally designed as a robot. It has a variety of sensors to which it can react. And he does it excellently.
In addition to technical IT, there is also commercial data processing. This represents my professional background. It therefore made sense that I try to use the computing power of the mBot in this regard as well. As examples, I have chosen various mind games for which there are a multitude of solutions on the Internet.
I also created and published YouTube video for each of them. The corresponding .sb2 files can also be downloaded from my website. Here is a page from which everything can be accessed:

All examples are based on the Makeblock 2.4 "TFT-LCD display and the IR remote control. And on an extension that outputs both text and graphics on the TFT display. Since this is no longer possible with mBlock5, almost nothing can be done These very instructive examples can be transferred to the mBot Neo, and of course I’m very angry about that.


Hi phg1,

My English also goes through Google Translate and I understand you. Usually we can go through the extentions but the Mbot2 is too rescent.

I did an example a few weeks ago with Codey for a Forum member (the same request) and it was technically the same problem and the result was it was flickering. Otherwise, I did another method in Python for Neurons that worked perfectly.

Unfortunately, the Neo mBot (Canada) does not have it. I am quite creative and probably it would be possible for me to create an image and text block for you, but I do not currently have access to this Product.

I would like to reassure you. With Makeblock, development is possible through their development tools. You need an idea or a need, a programmer and your block to create. There are a few exceptions but their tools are pretty well done.

I will create a new Post for you tonight … You will correct me if I do not explain your need well.


Hi Crackel,

many thanks. I am very curious and excited


Hi phg1,

The mBot Néo will be available August …

  1. I have no idea about what you said that “It is possible in mBlock3 for the mBot 1” cause there’s no display in mBot 1. I wonder if you can provide a video or picture to show to us about this.

  2. In terms of design, we have made a restrained design for the blocks under the classification of display, and it is for beginners. For blocks under the extension block of “display+”, where the function of “sprite” and “doodle” is more complete, is for the programmers who have a certain foundation and want to achieve cool effects. In fact, you can customize a “text box” with the function of setting the sprite to XX text display under “sprite” block category, which can replace the functionality of the text display under the “display” block category, and it has a higher degree of freedom. For example, you can control the text sprite to rotate, hide, and display the text at any angle.

  3. Regardless of whether it is technical or design, we have not found a suitable way to implement it so that the blocks under the “display” blocks can be easy to use, and the blocks under the categories of “sprite” and “doodle” can have a sufficiently complete display screen programming function, and the two sets of designs are compatible (what we can do now is that the two sides do not conflict) and follow a unified logic. If you have a better design or suggestion, please feel free to give us feedback.


Thank you for supporting, Crackel :hugs:


Hi phg1,

I’m sad because looking at the Display + block, I think I can see a concept that can be used with OLED1306 (Arduino). This is what you seem to be looking for but impossible for me to test …

If this is what I think, I think Makeblock can add a pretty simple addition … Patience, I think the mBot 2 and CyberPi have a lot of potential … I JUST JUST CAN ORDER ONE. It’s a matter of months but it’s going to happen, you’re too fast.


Hello tech_support,

now I don’t understand anything anymore. Maybe it’s because of my bad English, maybe it’s my old age (> 80 years) or something else.

You write “there’s no display in mBot 1.”
I bought this from Generation robots in Luxembourg. At the moment it is also on sale at Amazon: Here is the screenshot:

Here the front:

Here the back:

When I call the Extension Manager in mBlock 3, the following comes up:


And in this forum there is a post under:

How can you say that there isn’t a TFT screen for the mBot 1 ???

If you want to see it actively, just call up the following:
There are seven links to YouTube videos.

Furthermore, I don’t understand what do you mean by referring to sprites.
The UserGuide for mBlock5 says:
Sprites are objects on the stage. You can operate a sprite by programming it. "

I don’t want to program anything for the stage, but rather display something on the CyberPi screen. The mBot should act completely autonomously, i.e. without a connection to the PC.
If this is possible via sprites, please provide a suitable example.

You write: Quote “we have not found a suitable way to implement it so that the blocks under the ‘display’ blocks can be easy to use, …”. Then please have a look at the TFT extension for the mBot 1. I think that’s a good solution.

Did I understand you correctly that you want to eliminate the conflict between Display and Doodle? When will that be? How do I know that it’s available?

I hope Google translates this into understandable English. Maybe Commander and Crackel can help with that.


Hehehe, Makeblock misspoke his answer. The mBot1 does not have a display as standard. It’s an add-on like Talkative Pet. For the possibilities of obtaining the same result, I believe it is possible but the mBot1 has evolved a lot since its release.

The mBot2 is so rescent that I can’t even access it. So when the community is bigger, so will the possibilities.

I’m not an expert but you only want to have new instruction blocks that allow you to have text and icons on the same display and at the same time ??? If the need is this, I believe Makeblock could forward your request to research and development to assess the possibility.

Personally, I would use this possibility regularly.

Unfortunately, getting a date … good luck …

  1. I didn’t say that there isn’t a TFT screen for mBot. What I meant is that mBot Neo comes with a self-contained display screen, while mBot doesn’t if you don’t buy extra add-on packs or the TFT screen alone, and most of our users only buy the mBot alone without TFT. For mBot Neo, no matter which option you choose, there’s a self-contained screen that users can use.
  2. mBot Neo is able to show text and icon on the screen at the same time. Check the attachment mBlock file and upload to your CyberPi to try
  3. I think you have misunderstood “sprite”. The sprite in my previous comment is the extension used on mBlock, not for stage in mBlock 5 in stage mode. Actually mBot Neo comes with the sprite which is able to run on CyberOS(the system runs on CyberPi) and control the display content. It has the similar function as the sprite in stage mode of mBlock 5, but not 100% same.
  4. The function of Sprite and Doodle extension covers all the function under the blocks of Display. You can regard Sprite and Doodle come with better functions than Display but require higher user requirement (184.6 KB)


Hello tech_support,

Please excuse me for misunderstanding you. This is probably because English is not your mother tongue or me.

I tried to start the sample script.

The following appears on the display of the mBot Neo: Traceback (most recent call last) File “main”. line 22 in on_start.

If I then switch to the python editor and press Run, the following message appears:


When I then press Yes, it appears:


After Check Log I Get:

Looking in indexes:\Public\Programs\mblock\resources\app\mlink-v2\exec\python-env\win\python.exe
Collecting event
Downloading (56 kB)
| ███████████▌ | 20 kB 1.4 MB / s eta 0:00:01
| ████████████████████████████████ | 56 kB 393 kB / s
ERROR: Command errored out with exit status 1: command: ‘C: \ Public \ Programs \ mblock \ resources \ app \ mlink-v2 \ exec \ python-env \ win \ python.exe’ -c ‘import sys, setuptools, tokenize; sys.argv [0] = ‘"’" ‘C: \\ Guenther \ AppData \ Local \ Temp \ pip-install-6qj09oie \ event \’ "’"’; file __ = ‘"’" ‘C: \\ Guenther \ AppData \ Local \ Temp \ pip-install-6qj09oie \ event \’ “’”’; f = getattr (tokenize, ’ “’”’ open ‘"’" ', open) ( file __); code = (). replace (’ “’”’ \ r \ n ‘"’" ‘,’ “’”’ \ n ’ “’”’); f.close (); exec (compile (code, file, ‘"’" ‘exec’ “’”’)) ‘egg_info --egg-base’ C: \ Guenther \ AppData \ Local \ Temp \ pip-install-6qj09oie \ event \ pip-egg-info 'cwd: C: \ Guenther \ AppData \ Local \ Temp \ pip-install-6qj09oie \ event \ Complete output (6 lines): Traceback (most recent call last ): File “”, line 1, in File “C: \ Guenther \ AppData \ Local \ Temp \ pip-install-6qj09oie \ event \”, line 20 print 'found libevent build directory ‘, best ^ SyntaxError: Missing parentheses in call to’ print '. Did you mean print (‘found libevent build directory’, best)? ----------------------------------------
ERROR: Command errored out with exit status 1: python egg_info Check the logs for full command output.

I also have this error with other example scripts. What can I do?

Hope, you can help.

EDIT: Today I tried it with a Samsung Tablet. The Error is the same: Program starts, but exits with the shown error.


Hello Tech_support,

Today I started your script sprite_doodle_demo again as a test: It worked !! ??

I had set “English” as the language.


After changing the language to “German”, it no longer works.


I would like to familiarize myself with sprites and doodle. Unfortunately, the help is not yet available. When will it be available?
Is there any documentation anywhere?

Many thanks for your help.


Hi phg1, thanks for pointing this out! It’s confirmed to be a parameter error. I just forwarded this to my colleague and we got it handled. You will see the change next time when mBlock 5 updates


Hi tech_support,

thank you for your answer to my first question. Do you have any idea, when the next update of mBlock 5 will be available?

And what about my second question about the missing help and documentation for Sprite and doddle?

Thank you for your help.