Replicator 5th Gen - Camera streaming in web browser

1,715 views
Skip to first unread message

Burn Zero

unread,
Apr 15, 2014, 5:36:09 AM4/15/14
to make...@googlegroups.com
Hi,

Got my 5th Gen for 2 weeks ego. I wonder if anyone has found out wich port camera operate ? I would like to be able to stream it in my web browser... Or this is also "Locked" as evrything else on this bot ??

Regards,

Burn-Zero

Nate Rush

unread,
Apr 15, 2014, 3:21:47 PM4/15/14
to make...@googlegroups.com
I think it's locked.

James Balletta

unread,
May 14, 2014, 10:28:51 AM5/14/14
to make...@googlegroups.com
What is the protocol with "locked" features? do they ever get unlocked?

Jetguy

unread,
May 14, 2014, 12:48:26 PM5/14/14
to make...@googlegroups.com
Ok, so here is the problem:
The code isn't open source. YES, if you feel brave, you can hit the internal console on the board and begin poking around. It's nothing but a Linux operating system with an application we call "firmware" running on top.
That said, nothing is documented. You are in a giant unknown land of hardware hacks. If you brick it, will they honor warranty?
As others have pointed out with sniffers, it's not exactly just listen on a port and it's streaming the data.
It seems that the new "Desktop" software must connect over TCP/IP and that sets a command or a flag that then allows a streaming protocol.
You would then have to reverse engineer that switch and system in the firmware to then force streaming of the video feed and then determine the port and so forth.
 
Nobody yet seems to know what or how that works exactly, this is just highly educated guesses from all the informatin provided.

Lovelyday

unread,
May 14, 2014, 2:33:43 PM5/14/14
to make...@googlegroups.com
For what purpose do you want to do this?

If you just want to keep an eye on your print. MakerBot is planning to introduce their Mobile Apps soon to access the camera. This is what the camera is actually for.

If you want to steam or record video for any kind of video production purpose, it's good to know that the onboard camera on the new Replicator is very low resolution at only 320x240. That might just be sufficient for the purpose of quickly checking the print, but for anything else I guess you'll have better quality with a GoPro setup.

J. Brad Harris

unread,
May 14, 2014, 4:48:02 PM5/14/14
to make...@googlegroups.com
The camera is sort of exposed at the  "/camera" URL of your makerbot (makerbotipaddress/camera). It takes a ?token=[token] parameter and then responds with an encrypted binary stream. The token is always different. I've captured 3 hours of that camera's feed and not identified the mechanism that is used to generate the token. Without a token you get an "access denied" error at that URL.

There is a little JSONRPC traffic just before each camera refresh, so maybe the token is sent from the Makerbot to Makerware, then Makerware requests the feed with the token, but the JSONRPC traffic is encrypted so I can't sniff it. Anyone know how to make use of heartbleed to sniff the certs from the Makerbot's firmware?

I also have the firmware opened up and am currently working to extract the rootfs image from it. I have the kernel extracted and decrypted, but the filesystem uses some pretty strong mcrypt ciphering.

I'll post progress as I move forward.


On Tuesday, April 15, 2014 5:36:09 AM UTC-4, Burn Zero wrote:

Dan Newman

unread,
May 14, 2014, 5:18:30 PM5/14/14
to make...@googlegroups.com

> I also have the firmware opened up and am currently working to extract the
> rootfs image from it. I have the kernel extracted and decrypted, but the
> filesystem uses some pretty strong mcrypt ciphering.

There's no mcrypt ciphering. In a private e-mail I'll send you the simple
Linux kernel mod you need to mount the file system.

Dan

J. Brad Harris

unread,
May 14, 2014, 6:26:47 PM5/14/14
to make...@googlegroups.com
I used binwalk to crawl through the rootfs, but I guess the mcrypt was a false positive. I'll take a further look at this and post findings. 

Really I just want to be able to relay the camera feed to our web server so members of our makerspace know if someone is printing so they don't drive across town to start a print when one is already underway (very annoying).

Brad

Jeff Rebeiro

unread,
Jul 27, 2014, 2:45:16 AM7/27/14
to make...@googlegroups.com
Did you ever figure this out? I want to get a timelapse of my builds to create videos and stream to my phone since there is no Android app yet and I'm impatient.

I was hoping someone else figured this out (I got here by doing a Google search for camera?token since that showed up in tcpdump) so I didn't have to go through the trouble of setting up a proxy to decrypt the communication between the replicator and makerbot desktop. I've been poking though all the python daemon code and am not finding anything useful.

Jeff Rebeiro

unread,
Jul 28, 2014, 2:44:58 AM7/28/14
to make...@googlegroups.com
I've cracked this nut.. with a little help.

The bot uses OAuth to generate the tokens.

Once you authorize on the bot and get an auth code, you can generate tokens using it over and over. For some reason, you need a token for every image... which is kinda dumb.

Anyway, the data coming off the bot is a python struct which you have to unpack and then you get a YUYV encoded image which you'll probably need to convert to another format to display on the web.


Props go out to gryphius for figuring out the OAuth stuff. I just figured out the image unpacking since that's where he got stuck.

I hope to have a Python library created to handle this flow for you. I'll be contributing to https://github.com/gryphius/mini-makerbot-hacking though we may want to rename it makerbot-gen5 or something.

Good luck!

On Wednesday, May 14, 2014 3:26:47 PM UTC-7, J. Brad Harris wrote:
Reply all
Reply to author
Forward
0 new messages