I'm a dumba$$

Okay, so I’ll admit it before anyone else has to question it.

I’ve got the table physically ready to draw, but now comes the difficult part for me - the ethereal world of downloads and software. Damn me for being born before the Macintosh Lisa, but please help me to understand what to do next.

My Mini-Rambo (purchased through V1) comes up with the glorious claim of being a CNC, however, I want to use it as a ZenXY. What do I need to do to make it a ZenXY? Please spell it in the small words that my Neanderthal brain can comprehend.

Thanks!

2 Likes

I can’t remember if Ryan flashes the zen firmware on there or not. You’ll need to install the correct firmware since this is running core xy and not a regular cartesian motion system.
https://docs.v1engineering.com/electronics/marlin-firmware/
Run yourself though those docs, you’ll want to use the xenxy firmware at the bottom of the list on the github page. If you have a screen, you’ll want the last one, it has the screen stuff.

1 Like

Thanks, Barry. So… I followed your/the instructions several times and always came to the same end point - “Error compiling for board RAMBo”. It gave me a litany of code which I understood exactly none of, but I’ll try to copy here. In the end, the LCD still reads “V1 E CNC Ready”. Any additional help would be greatly appreciated!

Mike

sketch\src\lcd\dogm\u8g_dev_ssd1306_sh1106_128x64_I2C.cpp: In function ‘uint8_t u8g_dev_sh1106_128x64_2x_2_wire_fn(u8g_t*, u8g_dev_t*, uint8_t, void*)’:

sketch\src\lcd\dogm\u8g_dev_ssd1306_sh1106_128x64_I2C.cpp:117:29: error: ‘U8G_SPI_CLK_CYCLE_300NS’ was not declared in this scope

   u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS);

                         ^~~~~~~~~~~~~~~~~~~~~~~

sketch\src\lcd\dogm\u8g_dev_ssd1306_sh1106_128x64_I2C.cpp: In function ‘uint8_t u8g_dev_ssd1306_128x64_2x_2_wire_fn(u8g_t*, u8g_dev_t*, uint8_t, void*)’:

sketch\src\lcd\dogm\u8g_dev_ssd1306_sh1106_128x64_I2C.cpp:185:29: error: ‘U8G_SPI_CLK_CYCLE_300NS’ was not declared in this scope

   u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS);

                         ^~~~~~~~~~~~~~~~~~~~~~~

sketch\src\lcd\dogm\u8g_dev_st7920_128x64_HAL.cpp: In function ‘uint8_t u8g_dev_st7920_128x64_HAL_fn(u8g_t*, u8g_dev_t*, uint8_t, void*)’:

sketch\src\lcd\dogm\u8g_dev_st7920_128x64_HAL.cpp:111:29: error: ‘U8G_SPI_CLK_CYCLE_400NS’ was not declared in this scope

   u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS);

                         ^~~~~~~~~~~~~~~~~~~~~~~

sketch\src\lcd\dogm\u8g_dev_st7920_128x64_HAL.cpp: In function ‘uint8_t u8g_dev_st7920_128x64_HAL_4x_fn(u8g_t*, u8g_dev_t*, uint8_t, void*)’:

sketch\src\lcd\dogm\u8g_dev_st7920_128x64_HAL.cpp:154:29: error: ‘U8G_SPI_CLK_CYCLE_400NS’ was not declared in this scope

   u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS);

                         ^~~~~~~~~~~~~~~~~~~~~~~

sketch\src\lcd\dogm\u8g_dev_uc1701_mini12864_HAL.cpp: In function ‘uint8_t u8g_dev_uc1701_mini12864_HAL_fn(u8g_t*, u8g_dev_t*, uint8_t, void*)’:

sketch\src\lcd\dogm\u8g_dev_uc1701_mini12864_HAL.cpp:115:29: error: ‘U8G_SPI_CLK_CYCLE_300NS’ was not declared in this scope

   u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS);

                         ^~~~~~~~~~~~~~~~~~~~~~~

sketch\src\lcd\dogm\u8g_dev_uc1701_mini12864_HAL.cpp: In function ‘uint8_t u8g_dev_uc1701_mini12864_HAL_2x_fn(u8g_t*, u8g_dev_t*, uint8_t, void*)’:

sketch\src\lcd\dogm\u8g_dev_uc1701_mini12864_HAL.cpp:144:29: error: ‘U8G_SPI_CLK_CYCLE_300NS’ was not declared in this scope

   u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS);

                         ^~~~~~~~~~~~~~~~~~~~~~~

sketch\src\lcd\dogm\lcdprint_u8g.cpp: In function ‘int lcd_put_wchar_max(uint32_t, pixel_len_t)’:

sketch\src\lcd\dogm\lcdprint_u8g.cpp:36:24: error: ‘class U8GLIB_ST7920_128X64_RRD’ has no member named ‘getPrintCol’; did you mean ‘setPrintPos’?

unsigned int x = u8g.getPrintCol(),

                    ^~~~~~~~~~~

setPrintPos

sketch\src\lcd\dogm\lcdprint_u8g.cpp:39:23: error: ‘ret’ was not declared in this scope

u8g.setPrintPos(x + ret, y);

                   ^~~

sketch\src\lcd\dogm\lcdprint_u8g.cpp:39:23: note: suggested alternative: ‘reti’

u8g.setPrintPos(x + ret, y);

                   ^~~

                   reti

sketch\src\lcd\dogm\lcdprint_u8g.cpp:39:28: error: ‘y’ was not declared in this scope

u8g.setPrintPos(x + ret, y);

                        ^

sketch\src\lcd\dogm\lcdprint_u8g.cpp: In function ‘int lcd_put_u8str_max(const char*, pixel_len_t)’:

sketch\src\lcd\dogm\lcdprint_u8g.cpp:45:24: error: ‘class U8GLIB_ST7920_128X64_RRD’ has no member named ‘getPrintCol’; did you mean ‘setPrintPos’?

unsigned int x = u8g.getPrintCol(),

                    ^~~~~~~~~~~

                    setPrintPos

sketch\src\lcd\dogm\lcdprint_u8g.cpp:48:23: error: ‘ret’ was not declared in this scope

u8g.setPrintPos(x + ret, y);

                   ^~~

sketch\src\lcd\dogm\lcdprint_u8g.cpp:48:23: note: suggested alternative: ‘reti’

u8g.setPrintPos(x + ret, y);

                   ^~~

                   reti

sketch\src\lcd\dogm\lcdprint_u8g.cpp:48:28: error: ‘y’ was not declared in this scope

u8g.setPrintPos(x + ret, y);

                        ^

sketch\src\lcd\dogm\lcdprint_u8g.cpp: In function ‘int lcd_put_u8str_max_P(const char*, pixel_len_t)’:

sketch\src\lcd\dogm\lcdprint_u8g.cpp:53:24: error: ‘class U8GLIB_ST7920_128X64_RRD’ has no member named ‘getPrintCol’; did you mean ‘setPrintPos’?

unsigned int x = u8g.getPrintCol(),

                    ^~~~~~~~~~~

                    setPrintPos

sketch\src\lcd\dogm\lcdprint_u8g.cpp:56:23: error: ‘ret’ was not declared in this scope

u8g.setPrintPos(x + ret, y);

                   ^~~

sketch\src\lcd\dogm\lcdprint_u8g.cpp:56:23: note: suggested alternative: ‘reti’

u8g.setPrintPos(x + ret, y);

                   ^~~

                   reti

sketch\src\lcd\dogm\lcdprint_u8g.cpp:56:28: error: ‘y’ was not declared in this scope

u8g.setPrintPos(x + ret, y);

                        ^

sketch\src\lcd\dogm\u8g_dev_st7565_64128n_HAL.cpp: In function ‘uint8_t u8g_dev_st7565_64128n_HAL_fn(u8g_t*, u8g_dev_t*, uint8_t, void*)’:

sketch\src\lcd\dogm\u8g_dev_st7565_64128n_HAL.cpp:154:29: error: ‘U8G_SPI_CLK_CYCLE_400NS’ was not declared in this scope

   u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS);

                         ^~~~~~~~~~~~~~~~~~~~~~~

There’s more that may mean something to one of you, but it keeps freezing up the forum responses. Please tell me if it tickles anyone’s big brains and I’ll try to get it on here.

Thanks again!

Looks like it’s bitching about the display libraries. That gets a lot of folks.
Scroll down to “how to flash”. Pay attention to the “Sketch-Include Library-Manage Libraries” part.
https://docs.v1engineering.com/electronics/marlin-firmware/

1 Like

I’ve followed those instructions about a dozen times and keep receiving the Error Compiling code. I’m curious if it is because the board manager is Rambo and I am trying to flash a Mini-Rambo. I tried to find a Mini-Rambo board manager, but didn’t find one. Is there a different way to make this work for the ZenXy? Thanks!

What exactly does it say, scroll up, what is the first few errors.

Nope

Ryan, you are the man. I appreciate what you’ve set up here and the help you offer. Can’t get it all to copy, but here are the first lines.

sketch\src\lcd\dogm\u8g_dev_ssd1306_sh1106_128x64_I2C.cpp: In function ‘uint8_t u8g_dev_sh1106_128x64_2x_2_wire_fn(u8g_t*, u8g_dev_t*, uint8_t, void*)’:

sketch\src\lcd\dogm\u8g_dev_ssd1306_sh1106_128x64_I2C.cpp:117:29: error: ‘U8G_SPI_CLK_CYCLE_300NS’ was not declared in this scope

   u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS);

                         ^~~~~~~~~~~~~~~~~~~~~~~

sketch\src\lcd\dogm\u8g_dev_ssd1306_sh1106_128x64_I2C.cpp: In function ‘uint8_t u8g_dev_ssd1306_128x64_2x_2_wire_fn(u8g_t*, u8g_dev_t*, uint8_t, void*)’:

sketch\src\lcd\dogm\u8g_dev_ssd1306_sh1106_128x64_I2C.cpp:185:29: error: ‘U8G_SPI_CLK_CYCLE_300NS’ was not declared in this scope

   u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS);

                         ^~~~~~~~~~~~~~~~~~~~~~~

sketch\src\lcd\dogm\u8g_dev_st7920_128x64_HAL.cpp: In function ‘uint8_t u8g_dev_st7920_128x64_HAL_fn(u8g_t*, u8g_dev_t*, uint8_t, void*)’:

sketch\src\lcd\dogm\u8g_dev_st7920_128x64_HAL.cpp:111:29: error: ‘U8G_SPI_CLK_CYCLE_400NS’ was not declared in this scope

   u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS);

                         ^~~~~~~~~~~~~~~~~~~~~~~

sketch\src\lcd\dogm\u8g_dev_uc1701_mini12864_HAL.cpp: In function ‘uint8_t u8g_dev_uc1701_mini12864_HAL_fn(u8g_t*, u8g_dev_t*, uint8_t, void*)’:

sketch\src\lcd\dogm\u8g_dev_uc1701_mini12864_HAL.cpp:115:29: error: ‘U8G_SPI_CLK_CYCLE_300NS’ was not declared in this scope

   u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS);

                         ^~~~~~~~~~~~~~~~~~~~~~~

sketch\src\lcd\dogm\u8g_dev_st7920_128x64_HAL.cpp: In function ‘uint8_t u8g_dev_st7920_128x64_HAL_4x_fn(u8g_t*, u8g_dev_t*, uint8_t, void*)’:

sketch\src\lcd\dogm\u8g_dev_st7920_128x64_HAL.cpp:154:29: error: ‘U8G_SPI_CLK_CYCLE_400NS’ was not declared in this scope

   u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS);

                         ^~~~~~~~~~~~~~~~~~~~~~~

I read one of your other posts which said to use Arduino 1.9, but the Marlin website says 1.8.12 is the most current.

Looks like you are missing the U8glib library, should be step 5 or so of the flashing instructions.

https://docs.v1engineering.com/electronics/marlin-firmware/

I tried the Arduino Beta 1.9, included the U8glib, and followed the directions explicitly. Still came up with the same error message. Still not sure what I’m doing wrong.

I got a little further this time. I was downloading the u8g2 instead of the u8glib. I finally received a DONE UPLOADING, however the LCD screen is now blank and the red light is now solidly on. I reset twice and tried to swap plugs around.

The Arduino beta’s are very very beta. Best to use the current stable release and u8g2 is not the right one.

delete the arduino library folder between installs.

SUCCESS! I went back to the 1.8.12 and used the u8glib. Deleted everything before I tried again. And… Mission Accomplished!

Thank you for all the help! Now I just have to finish the table and begin posting pictures.

Mike

1 Like