Don't expect help from MakeBlock here


#1

I sent an email on March the 6th. So almost three weeks later no reply. Thanks makeblock. Thanks johnny@makeblock.cc


#2

I have never had troubles contacting Makeblock ad they have been prompted with technical details.try contacting pioneer@makeblock.cc


#3

Well I sent an email to johnny@makeblock.cc on March 6th, still no reply, Cyndi Lai replied to a different question quickly though.

They have a hopeless customer service. It is always unclear which software is appropriate to which board, port numbers change seemingly at random, an out of date set of instrcutions on Instructables led me astray. Why not simply take it down? It is a mess.

They clearly make good hardware, but could probably double their sales if they appointed someone technical to reply properly to posts in this forum. Why should I rely on you telling me how to contact? MakeBlock should be doing that job.

It feels like a company which is disorganised.


#4

Try reading each program it tells you which port to use. the programs are written by different people. and the programs are for demo purposes.The makeblock Platform is for learning to program and you can use all of the programming languages I suggest Learning to use the Arduino IDE it uses the C language and is easy to learn. I started to learn programming on the Arduino with no programming experience at all. The graphical programming languages are very limited.


#5

Try reading each program it tells you which port to use.” That’s impossible and error prone do to their hardaware software mess. Have a look at the code for GCodeParser. For example:

int X_STEP_PIN = 8;
int X_DIR_PIN = 11;
int X_ENABLE_PIN = 4;
int X_MIN_PIN = A4;
int X_MAX_PIN = A5;

int Y_STEP_PIN = 12;
int Y_DIR_PIN = 13;
int Y_ENABLE_PIN = 4;
int Y_MIN_PIN = A1;
int Y_MAX_PIN = A0;

int Z_STEP_PIN = A3;
int Z_DIR_PIN = 9;
int Z_ENABLE_PIN = 4;
int Z_MIN_PIN = A1;
int Z_MAX_PIN = A0;
int Z_ENABLE_SERVO = 1;

This was written by someone who does not understand the normal practices in C/C++. Upper case is used for defines, not variable names. And the initialization is wrong, it would not work on my machine. It was probably written before they started using the limit switches…

It seems that at some point these values can be changed by a program which runs on the IDE, but that is not explained or commented on. They were probably #defines initially, then they thought it would be more flexible to make them variables, so they changed from #define to int without changing the case.

Now look at this indentation inside setup()

    //Do startup stuff here
    Serial.begin(115200);
        if(Z_ENABLE_SERVO==1){
          servo.attach(Z_STEP_PIN);
        }

Why is the if indented so far? Because the program was written in a rush, tested a few times and then sent out into the world.

This too is indented chaos…

        if (c != '\n')
        {
            if(c==0x18){
                Serial.println("Grbl 1.0");
            }else{
                          if (c == '('){
                            comment = true;
                          }
                          // If we're not in comment mode, add it to our array.
                          if (!comment)
                          {
                            commands[serial_count] = c;
                                    serial_count++;
                          }
                          if (c == ')'){
                            comment = false; // End of comment - start listening again
                          }
                        }
                
        }

There are lots of places where they use number literals and comments instead of defines:

            //Clockwise arc
            case 2:
            //Counterclockwise arc
            case 3:
                FloatPoint cent;

I’m not blaming the programmer. He/she is probably rushed and/or inexperienced, but these are clearly not good source codes, ESPECIALLY if you want to learn programming.


#6

In forgot to mention I’ve published this…

Working XY plotter pinouts

…since I did not trust the many versions of various undated documents out there.


#7

I am sure your assistance is appreciated. It is, after all, an open-sourced based product. The beauty is that skilled folks such as yourself CAN get under the hood and play.

IMO Makeblock products provide a platform more than a comprehensive end-product.

I would imagine that having programs so bullet proof they could be used for teaching would vastly increase the price. Plus then they might just make the code inaccessible so you cannot mess it up, like other cookie cutter robot toys.


#8

I really doubt that. I bet they could get a software student who wants to improve his English and earn some money on the side to monitor this forum. Only a guess of mine of course.

But even though the hardware is good quality, I bet initial frustation turns off a lot of people from carrying on with MakeBlock. Again, only a guess!

But I can’t help asking myself why have they not jumped into this discussion to dispel doubts and offer help in the future? I get an idea of a company disconnected from their customers…


#9

This is not Makeblock code every code I could find uses port numbers and not regular Arduio pinout.I looked at all of the x, y, plotter code i could find and all of its names start with ME and all of it uses port numbers, But i do agree that they do need to make comments on the code any decent programmer knows that comments are very important.


#10

CGodeParser, quoted at the top of this thread, is MakeBlock code, picked up from the MakeBlock site, or their Git hub stuff.


#11

Possibly it is a simple adaptation of the cut-down grbl code that was used to make the original Gremote software communicate with the arduino. See this link

By comparison, mDraw seems to have been written specifically for the collection of drawing robots, not just the plotter.

As regards code comments, despite having been a programmer for 30 years now, I have never paid as much attention to the comments in the code as I did to the actual code itself. The compiler doesn’t check the comments for errors, and debuggers don’t work with them either :slight_smile:

There is nothing to stop you creating a fork of either Gremote or mDraw, setting up a github repository, and advising people of it. If you search the forum threads, somebody has already done this.


#12

Tel the truth! Have you never found a piece of code which you wrote maybe just months before, which you can’t explain why you wrote it? I know I have!

:slight_smile:


#13

@Pioneer isn’t with Makeblock any longer. He pointed me to Cyndi for help.


#14

Yes, and Cyndi was quick to reply.

Maybe half the problem is old documents with old diagrams and old emails.


#15

That sucks he always gave prompt service, a lot of times on the same day


#16

I never relied on their software, I tried out the software demo’s then wrote my own I Because their software is very basic and I wanted to add other components like GPS. I quit using the make block electronics and changed to the Raspberry Pi without the Arduino.


#17

Yes the hardware is good.

Why did you change to the Raspberry Pi?


#18

I wanted to use openCV face tracking and voice recognition to do voice commands I know you can do some of that on the Arduino. but the Raspberry Pi is a computer and it can multi task and it is much better for video streaming.


#19

Ah yes well…the Arduino is a bit small for that!


#20

I agree with GG’s assessment. I am on the verge of giving up after several sessions trying to find reliable information about Makeblock software in the Forrest of Confusion that is the Makeblock website.