raise3d touchscreen configuration

I am working on a repetier build for the raise3D n-series printers. This printer has a linux based touchscreen that is connected to a rumba motion controller board.

It uses marlin by default. I have managed to create a firmware based marlin RC8 firmware for the printer so I know what it is looking for communication wise to talk over the series connection.

Now I would like to make a version of repetier that works on the printer. But the code base for repetier is a bit different.

What I have found is that in order to successfully update any firmware, the touchscreen is looking for an SD init fail message. That is the easy part, I just need to enable the SD card.

the other places that need customized are the M105, M109, and M190 commands for the format that the touchscreen is parsing for.

the most important communication part is with the ok to send message. they are appending block_buffer_head - block_buffer_tail + Block_buffer_size. The code for marlin looks like this.

void ok_to_send() {
  refresh_cmd_timeout();
  if (!send_ok[cmd_queue_index_r]) return;
  SERIAL_PROTOCOLPGM(MSG_OK);
  #if ENABLED(ADVANCED_OK)
    char* p = command_queue[cmd_queue_index_r];
    if (*p == 'N') {
      SERIAL_PROTOCOL(' ');
      SERIAL_ECHO(*p++);
      while (NUMERIC_SIGNED(*p))
        SERIAL_ECHO(*p++);
    }
    SERIAL_PROTOCOLPGM(" P"); SERIAL_PROTOCOL(int(BLOCK_BUFFER_SIZE - planner.movesplanned() - 1));
    SERIAL_PROTOCOLPGM(" B"); SERIAL_PROTOCOL(BUFSIZE - commands_in_queue);
  #if ENABLED(N_SERIES_PROTOCLE)
    SERIAL_PROTOCOL(':');
     if (planner.block_buffer_tail == planner.block_buffer_head)
  {
  SERIAL_PROTOCOL(0);
  }else
  {
    SERIAL_PROTOCOL((planner.block_buffer_head - planner.block_buffer_tail + BLOCK_BUFFER_SIZE)%BLOCK_BUFFER_SIZE);
  }
  SERIAL_EOL;
}
note: this is the code for my marlin RC8 build.
This is the code from raise3D marlin firmware.
void ClearToSend()
{
  previous_millis_cmd = millis();
  #ifdef SDSUPPORT
  if(fromsd[bufindr])
    return;
  #endif //SDSUPPORT
  SERIAL_PROTOCOL(MSG_OK);
  SERIAL_PROTOCOL(':');
  if (block_buffer_tail == block_buffer_head)
  {
SERIAL_PROTOCOLLN(0);
  }else
  {
 SERIAL_PROTOCOLLN((block_buffer_head - block_buffer_tail + BLOCK_BUFFER_SIZE)%BLOCK_BUFFER_SIZE);
  }  
}


The reason I am posting this here is to see if someone can help me with the code I need for repetier.

Comments

  • In repetier-firmware "ok" is just acknowledge part of communication. Responses to any commands are decoupled from this as ok gets send as soon as input buffer is cleared from command but before it is executed (for speed and because it is a different layer).

    You might add some extra conditions for commands that should not return "ok" and do this later on, but it is dangerous and will conflict with other software parsing it as repetier style.

    If display is linux driven this means it runs on a pi or something like that? Then you could also use our repetier-server and use the touchscreen frontend on it. Then it understands the commands. Or make display software recognice temperature commands without "ok ". Even marlin sends them without in M109/M190 if I'm right.
  • first to estabilsh, i dont work for raise3d. the printer has a 7 inch capasitive touchscreen with a imx6, quad 1ghz ARM processor. the touchscreen has ethernet and wireless. it runs a ui by raise3d that is closed source but they have shared the firmware for the motion controller board which is connected via usb to the touchscreen. we are able to login to the touchscreen and kill tge process for the ui then run octoprint which is also installed on the touchscreen. i think it has something else on there but i dont remer what it is called offhand
  • If you can run octoprint you can also run server, that would be no problem. But of course it would need their solution to not run or nothing works since linux allows multiple connections to same port but that gives always trouble since each process gets only part of communication.

  • we have instructions on how to kill their GUI, that is how we run octoprint. I'm interested in setting this up. 
  • It is similar to octoprint. Download and install the deb package and it already starts. Then point browser to the printer frontend url (not the normal web frontend) as it is listed in docs. Requires a license but for testing you can also use the free 30 day trial period.
  • trying to figure out what version I need to grab right now. 

    root@imx6qdlsolo:~# arch
    armv7l

    root@imx6qdlsolo:~# uname -a
    Linux imx6qdlsolo 3.10.53 #72 SMP PREEMPT Sun Sep 6 16:25:47 CST 2015 armv7l GNU/Linux

    root@imx6qdlsolo:~# free
                 total       used       free     shared    buffers     cached
    Mem:       1025604     464028     561576          0     134400      94556
    -/+ buffers/cache:     235072     790532
    Swap:            0          0          0

    it seems to be a armv71 on a imx6q-dl board/touchscreen, installed with GNU/Linux kernal 3.10.53. There doesn't seem to be a distribution type at all. under /ect/ there are no release files.

    searching imx6qdl seems to indicate that is the distribution.

    I'm trying to determine which version to get to install.

    libc version is 2.20
    armv71 is 32 bit.

    so my biggest issue at the momment is, this thing does not have dpkg on it. I do have wget. so it would seem my first issue is to get dpkg installed.


  • found my distro. 

    root@imx6qdlsolo:/# cat /etc/issue
    Poky (Yocto Project Reference Distro) 1.7 \n \l

  • That could be a problem since dpkg or apt-get are part of debian style linux distros. So unless the have removed it to prevent users from updating the distro it might be a problem. If you have a pi you could install it there and simply copy the files in /usr/local/Repetier-Server and the init or systemd script to start it. You would also need to add the repetierserver user, but that is solvable.
  • I did pickup a pi to set this up on as well. I have a monoprice maker select v2 running repetier, so a repetier-server to run that verses my octopi seems like a better option.
  • installing the rasberry pi image now onto the SD card. also making a backup of the file system to my harddrive from raise3d touchscreen

Sign In or Register to comment.