manual control

190 views
Skip to first unread message

Quentin Harley

unread,
Jan 2, 2014, 4:15:02 PM1/2/14
to botq...@googlegroups.com
Hi BotQueuers

Just checking in to see if anything happened regarding direct control of bots, even if it is just an open gcode terminal - actually I would prefer it to be as simple as that.

The main reason - Sometimes you want to do stuff other than printing, like cleaning heads, or checking bed levels etc.

Octoprint is a good go between, but it lacks queue functionality, and is not as easy to configure for web use behind a router as botqueue is.

Hope to hear something...

Quentin

Nick Foley

unread,
Jan 2, 2014, 5:54:51 PM1/2/14
to botq...@googlegroups.com

Agree, this would be a good upgrade. Combining features from Octoprint and Botqueue would be ideal. I've switched to Octoprint from Botqueue because the Ultimaker driver is more stable (I think that's it, at least -  prints don't randomly stop the way they did with Botqueue) but neither platform really has all of the necessary features to win at this point. 

Quentin Harley

unread,
Jan 3, 2014, 8:12:31 AM1/3/14
to botq...@googlegroups.com
How about using Octoprint in stead of printrun to control the bots.  Should not be too hard...

That way you can still log in to your Octoprint interface on the local network.

Ideas anyone?

graph...@gmail.com

unread,
Jan 4, 2014, 2:21:53 AM1/4/14
to botq...@googlegroups.com
We're currently working on having meta jobs and subjobs to expand functionality, but direct control is a little bit different than a fully fledge job. Right now, I'm thinking a gcode terminal would just submit a sub job for that printer, but the printer only grabs full jobs right now.

This issue is easily remedied by using web sockets to maintain the connection to the bots, which is one of the next things I want to work on after fixing the current issues in 0.5-dev.

The real problem I'm facing is that I haven't heard anything from Zach in quite a while, and I can't contribute to the main repository, nor do anything with the main BotQueue site. This means that you guys won't be able to see any changes and everything I do contribute has to be pushed to a separate branch in my repo in case Zach denies the pull request (Which is annoying to deal with frankly). He hasn't accepted any of the changes I made a few weeks ago.

I'm going to be working on BotQueue here and there, fixing some stuff, implementing other stuff, but I have no way of actually contributing directly to the repo or the site, which causes our users to suffer. For that, I apologize.

Justin Nesselrotte
--
You received this message because you are subscribed to the Google Groups "BotQueue" group.
To unsubscribe from this group and stop receiving emails from it, send an email to botqueue+u...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Quentin Harley

unread,
Jan 4, 2014, 3:51:18 AM1/4/14
to botq...@googlegroups.com
Can't we fork it in the mean time?

I would also like to run a local botqueue website in my workshop in order to keep traffic local, but I cannot seem to figure out how to make it run.  The instructions are a bit contradictory here and there...

graphmastur

unread,
Jan 4, 2014, 7:19:09 AM1/4/14
to botq...@googlegroups.com

Yeah, the first thing I'm doing is consolidating the instructions and verifying everything.

We could fork the entire thing, sure, but that requires money that I don't have, and I don't necessarily feel comfortable taking money for it when I'm not sure exactly how much dev time I can put into it.

Thank you,

Justin Nesselrotte

On Jan 4, 2014 2:51 AM, "Quentin Harley" <quentin...@gmail.com> wrote:
Can't we fork it in the mean time?

I would also like to run a local botqueue website in my workshop in order to keep traffic local, but I cannot seem to figure out how to make it run.  The instructions are a bit contradictory here and there...

B Gray

unread,
Jan 5, 2014, 7:23:07 AM1/5/14
to botq...@googlegroups.com
I would also like to run a local botqueue setup. My internet was temperamental a while ago and it made me realize how important a local setup would be. Hopefully I will be able to do this sooner then later. 
 thanks for all the hard work

Dr Oetker

unread,
Jan 5, 2014, 4:17:07 PM1/5/14
to botq...@googlegroups.com
I am trying that too. Get stuck after installing the webserver. install.html says: create configure.php, but is don't have a clue where to start.



Op zaterdag 4 januari 2014 09:51:18 UTC+1 schreef Quentin Harley:

graphmastur

unread,
Jan 5, 2014, 6:53:49 PM1/5/14
to botq...@googlegroups.com
The install.html file is not up to date. I just realized at some point
I started emailing Quentin directly as opposed to on the group. Here's
the email I sent him on how to get it all set up:

You grabbed the files from my repo? Go ahead and pull again, because I
changed the install/first_boot.sh file again. (Which still doesn't
work perfectly, but it's useful as a reference to what commands to
run. Also, after pulling, make sure you're on branch 0.5X-dev.

Run the commands in the first_boot.sh file. When I first did it, I
commented out the git command, and the MySQL command. I'm currently
working on making the file better. It should currently work if your
MySQL root user has no password. If it has a password, then comment
out that last line. I'm still working on that.

The current version will change your install directory to wherever it
thinks BotQueue is (whether it realizes it's in an already cloned
repo, or if it clones it into the current directory. You still need to
change the ServerName and ServerAlias to match your Domain name. You
can see that botqueue is “botqueue.com” for the ServerName and
www.botqueue.com” for the ServerAlias. If you're running this off of
a Subdomains, only the ServerName is need.

If you're using ssl, you have to put the ssl-cert.pem, ssl-cert.key
and ssl-cert.int in the extensions folder under BotQueue. If you, like
me, aren't running ssl, Just remove everything from “<IfModule
mod_ssl.c>” down to “</IfModule>” leaving only the VirtualHost on port
80.

If you commented out the MySQL command from the first_boot.sh file, or
if it failed, now is a good time to run it. My command was “mysql -u
root -p BotQueue < install/createdb.sql” from the root of BotQueue.
This told MySQL that I wanted to use the BotQueue table name and to
run the commands from createdb.sql. You need to create the table
before this command is run, though.

Now for the second to last step! Time to edit config.php!
first_boot.sh automatically copied the config-example.php to
config.ph, but we're going to edit it!

When you open it, you'll notice a bunch of variables. I'll just
reference which ones probably need to be changed. You can change
COMPANY_NAME if you want, but it's not needed. All of my servers have
IS_DEV_SITE as true, but the main botqueue.com site and any production
sites should have it as false.

Change the SITE_HOSTNAME here to your desired host. Notice how it's
botqueue.com and not www.botqueue.com. The RR_DB_HOST, RR_DB_PORT,
and RR_DB_USER might be changed if you're running MySQL on another
host, port, or a dedicated user, but for most installs, they can stay
the same. (I would suggest a dedicated user if the root MySQL user has
a password). If you have a password, enter it in RR_DB_PASS. The
AMAZON_AWS and S3 stuff is fairly straightforward. Grab the key and
secret from your AWS account (WARNING: This is as good as a username
and password). The S3_BUCKET_NAME is globally unique, so botqueue
isn't going to cut it.

The EMAIL stuff doesn't currently work, AFAIK, so you can enter that
if you want.

Last step! Go to the main botqueue site, and try to register a new
user. If you can do that, then log into MySQL with the botqueue
database selected. Type the command “update users set is_admin=1 where
id=1;”. This makes the first user (hopefully you) an admin user. You
can do that to whoever you want, just changing the id appropriately.

Let me know how it goes!

Justin Nesselrotte

Justin Nesselrotte

unread,
Jan 5, 2014, 8:19:56 PM1/5/14
to botq...@googlegroups.com
Oh, and for those who need my github url: https://github.com/Jnesselr/BotQueue

I'm currently working on the 0.5X-dev branch, but I can't promise it will be stable. I will find a way to document SQL changes whenever I make them, however.

Nick Foley

unread,
Jan 6, 2014, 2:22:15 AM1/6/14
to botq...@googlegroups.com
Awesome, hope you guys can get this going. There's a huge pile of money waiting in the future for whoever can win the platform layer of distributed manufacturing (certainly more money than there is in the hardware of 3D printing) , and I think there's a shot that Botqueue is one of the critical components of that. The money is probably there now - you just need to build a consumer-facing frontend for Botqueue that allows customers to upload their models or purchase prints of models I've designed. Botqueue team then takes a 5% cut off of all transactions on the site. Basically what Shopify is to Amazon, Botqueue would be to Shapeways ( or even 3D Hubs, to an extent.) A bunch of teams have got to be sprinting towards that goal right now, would love to see it happen here. I'm sure Makerbot is beta testing something like this with Thingiverse and printing in their stores. 3D hubs probably wants to add a storefront interface in addition to the service bureau model. 

graphmastur

unread,
Jan 6, 2014, 2:48:39 AM1/6/14
to botq...@googlegroups.com
Yeah, and one of the ways we could monetize that's already been
suggested is cloud slicing, where a user pays for either a certain
time, or a certain number of models that would automatically be sliced
in the cloud for them.

But I agree that it's something that's going to be important soon.

Dr Oetker

unread,
Jan 6, 2014, 11:18:58 AM1/6/14
to botq...@googlegroups.com
Hi Justin,
thanks for the additional info. This is cool stuff to work on!
Got the website running now, and the bumblebees connecting to (and seen by the server)
However, I face problems in the uploading of files for submitting print jobs.
when uploading a file an XML files is responded from AWS. Would it be difficult to bypass the AWS/S3 stuff and upload directly to the (local) server?

Let me know if you need more information

Regards

DrO




2014/1/6 graphmastur <graph...@gmail.com>

Quentin Harley

unread,
Jan 6, 2014, 11:27:12 AM1/6/14
to botq...@googlegroups.com
Local server would be a preference for me as well...


You received this message because you are subscribed to a topic in the Google Groups "BotQueue" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/botqueue/NUZJCL7IiL0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to botqueue+u...@googlegroups.com.

graphmastur

unread,
Jan 6, 2014, 11:32:04 AM1/6/14
to botq...@googlegroups.com

Well, three things would need to be done to get local storage to work.

1. You'd have to extract the interface of S3 and S3File, and replace every use with something like Storage.getNewStorage()
2. You'd have to implement a file storage protocol, which would involve having a configuration for where to store file names. It would also need to know what to do in case of duplicate names, and it would have to do it quickly.
3. You'd have to expose the downloads in a way the users could access. Botqueue uses a .htaccess file to allow certain things while blocking everything else. The downloads would have to be stored on another subdomain. The only other solution that I can think of is to add another part to .htaccess that lets you download a file if you know it's id number. If local storage is in use, then send the file contents. If S3 is in use, send a 301 redirect.

Thoughts?

Justin Nesselrotte

Dr Oetker

unread,
Jan 6, 2014, 4:22:23 PM1/6/14
to botq...@googlegroups.com
That would be a way to get there. I lack the coding skills to do that however. 
Have you thought about mimicing the S3 behaviour locally? (by using e.g. RIAK or Eucalyptus)? 




2014/1/6 graphmastur <graph...@gmail.com>

graphmastur

unread,
Jan 6, 2014, 4:30:13 PM1/6/14
to botq...@googlegroups.com
So, I looked into S3.php, and I found 2 things:
1) We're using 0.3.5, and the current version is somewhere around 0.5.0
2) It's a better idea to encapsulate S3, rather than extract its interface.

So I'm currently working on a clean interface to access files from
botqueue, and from the client. I like the 301 redirect idea the most
so far. The way that works is interesting. If you started out using
local storage, then the you end up with a link like
"https://botqueue.com/file:1/download" to download the local file from
the server. If you started out using S3, then you would probably be
given the exact link to S3, but if you weren't or you wanted to use
abstraction, then you could call the download link and it would give
you a 301 redirect.

Well, I want a way that is agnostic of how it's stored. For example, I
don't necessarily want to use buckets if it's not possible to use
buckets in some method we may want to use for storage. Right now,
however, it's looking like buckets are the way to go.

I think what I'll do is start out with a single class that
encapsulates both S3 and local file storage. Then, I'll use that class
to create an interface for local file storage and a wrapper for S3
since the S3.php class we currently use doesn't lend well to a non S3
API. I'll create another branch and merge it into 0.5X-dev when local
file storage works.

For now, would you like to chat privately about how to fix your xml
issue? Most likely, you're just getting told that your request is
denied which means your AWS keys aren't set up correctly, or your S3
bucket name isn't set up correctly.

Justin Nesselrotte

Dr Oetker

unread,
Jan 6, 2014, 5:03:13 PM1/6/14
to botq...@googlegroups.com
I forgot to mention that I got the S3 working now, so I am happy with that so I can test the full setup now. thanks for your offer to help with it. 

Concerning the way to solve the file storage coding wise, as said I lack the knowledge on that part. If it concerns functionality I hope to add some value.


2014/1/6 graphmastur <graph...@gmail.com>

graphmastur

unread,
Jan 6, 2014, 5:37:29 PM1/6/14
to botq...@googlegroups.com

One things that's been concerning me is that clients by default contact botqueue.com. If you want to set it up to another server, you have to edit three lines in the config.json

Anyone have any ideas of how to fix that? I'm thinking of four ideas right now:
1) ask for a url on bot startup, but default the request to botqueue.com so that you can set up a bot without actually touching it. That's annoying because you have to access it for other sites.
2) the client connects to botqueue.com, and submits an auth request. The user then visits botqueue.com, or some other server. If it's another server, they check with botqueue to see if both are coming from the same ip address. If they are, then, the client knows to look at the other site for auth. This method has so many issues, it's not even funny. Many of the issues can be fixed, but it still requires communication to botqueue.com.
3) some sort of peer to peer thing that allows discovery of clients on the same network. I'm not sure how this would work exactly. Maybe the client would send something to the broadcast address, and another client would automatically let the bot know where to look.

What do you guys think?

Justin Nesselrotte

Dr Oetker

unread,
Jan 7, 2014, 2:08:49 AM1/7/14
to botq...@googlegroups.com
option 1 seems to be the most basic and intuitive for me.


2014/1/6 graphmastur <graph...@gmail.com>
Reply all
Reply to author
Forward
0 new messages