1. Got a question or need help troubleshooting? Post to the troubleshooting forum or Search the forums!

WIP: Cleaning up RoboOS / Work In Progress

Discussion in 'Projects' started by WheresWaldo, Oct 11, 2018.

  1. WheresWaldo

    WheresWaldo Volunteer ( ͠° ͟ʖ ͡°)
    Staff Member

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    After numerous attempts to get RoboOS upgraded to Raspbian Stretch (Debian 9) I have decided to come at this from a different angle. I am going to sort of follow on some previous work (http://community.robo3d.com/index.php?threads/robo-flavored-raspberry-pi-octoprint.16942/) and see if the RoboOS can be streamlined a bit and extraneous files removed (There are two OctoPrints on the SD image, for example). At the same time, trying to reduce the dependence on Robo's GIT repositories and make sure all parts are up to date with current releases of everything on that µSD.

    I am going to start with Guysoft's Stretch version of Octopi as Octopi was the basis for RoboOS. That should give me a working base configuration allowing the R2 / C2 to fully function, minus the LCD screen. If anyone is interested in assisting me, I am not a very good Python coder, I would appreciate it. I will be creating a repository for the parts that need to be rewritten (not too much, as well as a place to store the rPi images. Since 4GB and 8GB µSD cards are nearly impossible to find in a Class 10 card I am going to build this as a 16GB image. This will require a 16GB or larger card to get working.
     
  2. CdRsKuLL

    CdRsKuLL Member

    Joined:
    Sep 27, 2018
    Messages:
    81
    Likes Received:
    35
    I'm up for helping where I can. I did make a little start on this and downloaded Stretch, then installed octo + HAProxy. When I went to install robolcd from git it then asked for a user / password. Now it was after 12 and I just parked it but not had a chance to have another look. Not sure if it needed my git user/pass or if in fact that branch is protected and not for our eyes.

    I think it would also require a matching firmware. I noticed on your version that you did you have the home correct and not like robo where they home the bed at the bottom... very confusing.
     
  3. WheresWaldo

    WheresWaldo Volunteer ( ͠° ͟ʖ ͡°)
    Staff Member

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    So @CdRsKuLL I did a bunch of internet sleuthing and found the current source code for roboLCD (1.11.15) it was up on Amazon web services. I have created a GITHUB repository for it located here: https://github.com/WheresWaldo/roboLCD_current. I already have a currently working rPi Raspbian Stretch OctoPrint (installed in the default sub-directories), with most of the add-ons used by Robo. Instead of using Robo's GITHUB, I pulled them all directly from the authors they cloned. I also omitted the ones that 'phone home'. Right now all that is missing is roboTheme (I installed Themeify instead) and roboLCD. The plan is to take roboLCD and strip all the parts that change sources to Robo's repositories then work on cleaning up all the code to strip all the proprietary G35/G36 crap out of the wizards.

    Basically roboLCD v1.11.15 is RoboOS v2. My end goal is to make RoboLCD a GenericLCD instead, that way it will work on the Robo or pretty much any other OctoPrint controllable printer. The interface while needing some work, is still pretty and usable.
     
  4. WheresWaldo

    WheresWaldo Volunteer ( ͠° ͟ʖ ͡°)
    Staff Member

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    I think if you make it as generic as possible, there is no need for special firmware. Just any old flavor of Marlin should work.
     
    mark tomlinson likes this.
  5. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,912
    Likes Received:
    7,338
    This is my shocked face

    :eek:

    Not really, just being sarcastic :)
     
  6. WheresWaldo

    WheresWaldo Volunteer ( ͠° ͟ʖ ͡°)
    Staff Member

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    It took all morning staring at update scripts before I found the source directories. They basically moved RoboOS from GITHUB to Amazon Web Services, from what I can tell, RoboOS is just a combination of the following parts:
    1. RoboLCD
    2. roboOctoPrint
    3. meta-Reader (Robo)
    4. OctoPrint-Filament (sensor)
    5. OctoPrint-robotheme (Robo)
    In addition, it looks like RoboOS updater:
    1. expands the root partition
    2. stops the webcam during updating
    3. upgrades to Marlin 1.1.6
    4. restores the sample gcode scripts
    5. adds a custom command to OctoPrint to enable/disable ssh
    6. replaces the slicing profiles
     
  7. CdRsKuLL

    CdRsKuLL Member

    Joined:
    Sep 27, 2018
    Messages:
    81
    Likes Received:
    35
    Superb work :)

    I'm happy to play with the robolcd to see if I can help at all. Re the firmware, yes. I'm all for leaving it standard. I meant we would need to give both R2 users the sd image and hex file. Might even be possible to use the update feature for ourselves may be to push updates out.

    I'm working on installing a 40mm fan using the second extruder to power it at the moment.

    Let me know when you have released an image to play with.

    Steve
     
  8. sgomes

    sgomes Active Member

    Joined:
    Dec 29, 2016
    Messages:
    136
    Likes Received:
    57
    Considering Robo refused to provide the source code for the R2 when I requested it, it's a good thing you two managed to find and clone it! Excellent work, @CdRsKuLL, @WheresWaldo! :)

    I'm growing increasingly frustrated with the stock firmware, and the "phone home" stuff is very dodgy. Looking forward to getting a vanilla copy of everything and hopefully start iterating on top of that. A live Z adjust similar to the one on the Prusa i3 mk2/mk3 would be great, for example!
     
  9. WheresWaldo

    WheresWaldo Volunteer ( ͠° ͟ʖ ͡°)
    Staff Member

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    I am working on a µSD image now. It sucks that my only current Linux boxes are all rPi's. I used a 32 GB µSD on this and Win32DiskImager will only backup the entire µSD. Had to add Hyper-V to my Win10 install so I could run a Ubuntu VM to shrink the image. Currently waiting on Ubuntu to finish up it's install.
     
    CdRsKuLL likes this.
  10. WheresWaldo

    WheresWaldo Volunteer ( ͠° ͟ʖ ͡°)
    Staff Member

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    I should have the Raspbian Stretch / OctoPrint image up some place accessible by Sunday evening, I will be testing it in the morning. Using pishrink.sh on Ubuntu I was able to take a 32 GB µsd image and reduce it to just 2.8 GB. This is still missing RoboLCD, but since I have it on GITHUB I am not too worried that the very smart people on this forum can help figure out how to get it working.
     
  11. WheresWaldo

    WheresWaldo Volunteer ( ͠° ͟ʖ ͡°)
    Staff Member

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    Here is a link to the 2018-10-09 Raspbian Stretch (Debian 9) image that I would like to use as a base for building a better RoboOS. The image was tested by loading it onto a 32GB µSD. It auto-expands after the first reboot to fill the entire µSD no matter what size you are using. The image will fit on a 4GB µSD, although those and 8GB are getting harder to find and none are Class 10 cards. It is set up for a HDMI based screen running 800 x 480 resolution, touchscreen drivers are not currently installed (next iteration).

    Here is a list of what is currently installed, with default installation settings:
    1. OctoPrint (naturally)
    2. pybonjour
    3. mjpg-streamer
    4. CuraEngine
    5. haproxy
    6. wiringpi
    7. Kivy (installed globally)
    8. wpa_supplicant.conf (needs to be edited)
    9. Netconnectd
    The following OctoPrint add-ons are installed, all from the original author's repositories:
    1. Active Filters
    2. Custom Control Editor
    3. EEPROM Marlin Editor
    4. Firmware Updater
    5. Print History
    6. Themeify (to replace the limited octoprint-robotheme)
    7. Webcam Tab
    What is not currently installed:
    1. Meta-Reader
    2. OctoPrint Filament Sensor
    3. Alexa Voice Services
    4. KAA Print Event
    5. Lani
    6. RoboLCD
    7. Robotheme (replaced by Themeify)
    What will be in the next iteration:
    1. Cura profiles
    2. Custom controls
    3. Touchscreen driver for Waveshare 5" screen (same as installed in the R2)
     
    #11 WheresWaldo, Oct 14, 2018
    Last edited: Oct 15, 2018
    sgomes, CdRsKuLL and mark tomlinson like this.
  12. CdRsKuLL

    CdRsKuLL Member

    Joined:
    Sep 27, 2018
    Messages:
    81
    Likes Received:
    35
    Looking forward to it. :) great work.
     
  13. WheresWaldo

    WheresWaldo Volunteer ( ͠° ͟ʖ ͡°)
    Staff Member

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    Need to order a V2 raspi camera module, right now I am leaning toward removing mjpg-streamer and using uv4l instead. Need to experiment a bit, but need the camera module to make sure it works. About two hours of work and I have the splash screen working without using additional software, it uses Plymouth themes instead.

    Cura profiles and demo gcode files were added.
     
  14. WheresWaldo

    WheresWaldo Volunteer ( ͠° ͟ʖ ͡°)
    Staff Member

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    Ran into my first big issue last night, RoboLCD will not install on OctoPrint 1.3.9 (current release). I have an experiment to try out to see if it will run but just not install. I am going to take a standard RoboOS2.0 image and then force the install of the new OctoPrint to see if it actually runs or breaks everything.
     
  15. CdRsKuLL

    CdRsKuLL Member

    Joined:
    Sep 27, 2018
    Messages:
    81
    Likes Received:
    35
    I tried and upgraded Octoprint and sadly it did break RoboLCD. However, I have found something similar but it will need some nice graphics doing to make it look good but all the functionality seems there.

    Have a look - https://github.com/timothyhollabaugh/octoscreen

    I've done a few skins in my time when I used to have a car PC so happy to attempt some graphics :)

    Steve
     
  16. CdRsKuLL

    CdRsKuLL Member

    Joined:
    Sep 27, 2018
    Messages:
    81
    Likes Received:
    35
    Infact looking at Octoscreen it looks very similar indeed to RoboLCD. I'll try and install it on your posted image
     
  17. WheresWaldo

    WheresWaldo Volunteer ( ͠° ͟ʖ ͡°)
    Staff Member

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
  18. WheresWaldo

    WheresWaldo Volunteer ( ͠° ͟ʖ ͡°)
    Staff Member

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    CdRsKuLL likes this.
  19. WheresWaldo

    WheresWaldo Volunteer ( ͠° ͟ʖ ͡°)
    Staff Member

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    Okay, I updated the base configuration. It is still missing a frontend GUI. but it is ready to run OctoPrint 1.3.9. A few things to note:
    1. There are no OctoPrint users set up
    2. You have to edit /boot/wpa_supplicant.conf if you want it to connect to wifi, it currently has a .txt extension added on the end, edit it accordingly then remove the .txt, then reboot to connect.
    3. It has boot and shutdown screens that display services run from systemd before completing
    4. netconnectd is not installed
    5. It basically uses only stuff that comes preinstalled in Raspbian Stretch Lite.
    6. Touchscreen driver is not installed.
    7. OctoPrint will go through the first run screens the first time you access it.
    8. SSH is enabled.
    Base OctoPrint v3 Link
     
    #19 WheresWaldo, Oct 17, 2018
    Last edited: Oct 17, 2018
  20. WheresWaldo

    WheresWaldo Volunteer ( ͠° ͟ʖ ͡°)
    Staff Member

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    Here is what I am seeing on GITHUB,

    Octoscreen hasn't been updated in over a year, essentially dead.
    OctoPrint-TFT has been dormant for 8 months, and it is an X app. It might work but needs a lot of cleaning up.
    Leapfrog, basically works on the Leapfrog BOLT printer and would be a significant effort to make work generically.
    OctoPiTouchPanel might be a good choice, it isn't real involved, it isn't an OctoPrint plugin and it is written in Kivy
     

Share This Page