ok so the SD card just looks like place to dump all your .cube3 files (the objects you print) there are a couple of other language files and a config and xml file with some version numbers in (ios android windows mac) maybe something todo with client software numbers... dunno. The main processor is indeed made by PIC and is a PIC32MX695F the drivers chips for the controllers are drv8811 there is no authentication chip you speak of though ? "DS2465"
@Oderbang, WooHoo!!! You da MAN!! You just saved my Cube3's life... Because, it was seconds away from going under the knife (screwdriver). If there's anything you ever need from me, just ask. Windows, Linux, ARM (RPi), AVR (Arduino) my areas of knowledge. Just beginning to dive into PICs. Found this on the Net for 1.60mm filament to fit the Cube's stepper and extruder: justfilament.com. Thanks Again.
Write my own Firmware in C. Needed to know the hardware specifics to compile properly and config files for the PIC. Save your MB and such for your Cube might be able to save it. If I am successful (20% chance) without bricking the MB. I'll let you know. I don't think this falls under reverse engineering or hacking because I am creating my own software. Similar to putting a new module in your car's computer to increase performance.
Great information here guys, I have one of the $180 clearout units on the way and will be embarking down some path of either reverse engineering or board swap. I wish its micro was in the AVR or STM family and we could just port Marlin or Repetier with a little work.
Dear Geezer, Will the firmware that you are writing in objective C be able to remove the chip/filament feature which locks users into using cartridges only made by the manufacture, and also would you be able to provide it as an open source file once you are finished?
This is great to see, I have a new printer on its way, should be delivered today, and looking forward to not having to use the cartridges it comes with! Thanks in advanced for your time and hard work on this, it is much appreciated!
OK, I am impressed! I have been on 'back-burner'/read only mode since I joined and started New job in new country and having to learn a new lang. - no time for even a chat.. but I did manage to build a 24" x 18" MPCNCMT (Mostly-printed CNC Multi-Tool) that is not only a 3d printer ( currently up to 3 color), but a laser etcher, cutter and engraver, and 500w 0-50,000RPM mill/drill/shaper and 3-D scanner platform as well. So... now I have a bit of time (actually have moved again too) and the CNC got slightly damaged in the process and needs some parts printed for itself. I was looking for a cheap, 6x6 printer that I need just for that and found these 3D Cube 2-color units all over for a song of what they were in 2013. While I will order one, my main concern is with it's reportedly bad 'exactness of size of print as to the .STL file source' I have heard that these are 'sloppy' and iffy at best. Are the steprates/distance travelled per step user adjustable? My plan was to get one, print the replacement parts and some upgrades I need, then l shelve it until I need parts again, BUT if they don't print accurately, it is worthless except for printing doodads and fobs I too was going to eventually gut it and use RAMPS and Ardunio or RUMBA which I just got, to make it (the 3D cube) MUCH better. I guess in that respect I am in the right place and addressing the right group
Me too - will order today ($150-$179 and free shipping is hard to beat for ANY 6x6x6, 2-color, HACKABLE 3D printer
SO - Anyone know? ... my main concern with the 3D Cube no matter the price is with it's reportedly bad 'size of print vs. the .STL file source' Are the steprates/distance travelled per step user adjustable? PIC-based controllers are notoriously 'lock-step' and do only what they are programmed to unless the programmer 'allows' the user to tweak a variable i.e. steps/mm travel for the X and Y axis. I see the Z is micro-adjustable after auto-levelling is done, but do any of you know if there also am option for micro-fine adjustment of the X-Y so that a 30mm Stepped CUBE w/ 5mm steps is indeed, exactly 5mm in all directions and that 2 onece printed and put face-to-face are exactly 30mm square? Find one and give it a try at: h**p://w*w.thingiverse.com/thing:24238
Have you tried version 2.24 of the client software? I think it's the one that was released alongside 1.11A firmware. http://cubify.s3.amazonaws.com/Printers/Cube/cubify_2.24.exe
I just bought one of the Cube 3rd gens for $164 on eBay, with free shipping. It's too bad 3D Systems got too greedy concerning their proprietary & overpriced filament system, as the hardware seemed to be very good. I'll likely be dismantling mine after I run through the included filament. I thought this little video was pretty cool in showing what this printer was made out of. This is What a 3D Printer Looks Like Completely Disassembled
Id be willing to make a donation for helping the progress of new firmware. I am currently designing a mount for the extruder for easy access. not needing the entire cartridge just the metal extruder part. ill upload it to thingiverse when done. One way or another this printer will become more usefull.
Hey All, Ok. Here's where I'm at with the Firmware. I purchased a chipKit WF32. It has the same processor as the Cube 3, a PIC32MX695F512L. Also, a WiFi Card and a Micro SD Slot. Overall, pretty close to a Cube 3's hardware config. This is where it things become interesting. The WF32's bootloader is written to allow an Arduino Sketch to be loaded via the USB and executed. Digilent (the mfg of the WF32) has a test Sketch "deWebIOServer.zip. It loads the .pde file into Flash and the HTTP Server on to the SD card. And then run, communicating with WiFi. Big Woop you say? You bet it is! After staring at Cube's Firmware 1.10A, it can be broken down as sections. Look at it with a Hex editor (Notepad++). First part are the Language Apps that are loaded on to the SD card via the Bootloader. Next is the Hex Image file "Image695.hex", (1D00_0000 to 1D07_FFFF) that can be loaded directly into "MPLAB x IDE"(Free D/L) and ran on the simulator. Then three files: boot.bin, btn.bin and the Bootloader, (1FC0_2FFC). Here's a couple of strategies: Since the WF32 can load an Arduino Sketch, it certainly can load REPRAP with some modifications, compiled and loaded onto the PIC32MX695 resulting in an IMAGE.hex which can be read off of the PIC with the "PICKit 3" (an ICE) and Read and Saved thru MPLAB x. debugged with the Simulator or the PICKit 3. Thus converting the Cube 3 to a REPRAP via software. Possible? yes. Easy? Lots of debugging and hacking to get the hardware adjusted just right. Hacking the existing Cube's Firmware. Load IMAGE695.hex in MPLAB X. At 1D05_3D40 are, what appears to be status information concerning the Cartridges: Update Cartridge Check Present: steps = %i start = %i used = %i if new =%i New Quantity_mm = 0 Write Cartridge Status = %i e1:STATE.bin At 1D05_E650: Write Cartridge Read Chip D0W_FF_READ "D0W"(0) D_0W_FF_READ Which obviously has to do with communicating with the Chip. Start hacking by changing "used = %i" variable to fixed "used = 0" Easy? Yes, no, maybe. Find the line of code in the original firmware 1.10a or any other Cube Firmware. Modify the code using PIC's architecture and calculate the checksum which is a 2's compliment of that line. Easy enough to compute. However, the file also has a Checksum. No so easy. Take this new modified file, load it on a USB Stick and use the cube's Firmware app to load it. Then pray you don't Brick the Mother Board. Anyone willing to hack the Mother Board thru the ICSP with a PICKit 3 (<$20US on Ebay)? This sure is long winded! And might be confusing. Get over it, I'm old and don't give a crap... Thoughts? ideas? Let's get some chatter going... Geezer
@supertechster ****, that's a sweet looking CNC. What's the footprint? What NEMA Steppers are you using? As far as the Cube 3 goes, I use Autodesk 124 for drawing and Meshmixer (freebies) to slice my files into .stl's. Cube Print will directly import and convert these files. It's more accurate and produces better default supports than Cube print.. With using .200mm setting my prints are accurate enough for my use. Round peg into a round hole with same diameter will not fit. Round peg into a round hole with .005-.010" difference will fit using force (pressure fit). I haven't tried the .070mm setting yet.
ok So are you saying if im willi/ng to get a pickit3 and hack it in can get your firmware mod to work? You basically are by passing the chip function. Am i on the right track here?
I am willing to try about anything to get this thing to use regular filament. or use reprap software.
Curious where these various efforts are at. I just picked up a Cube gen 3 yesterday myself for $150. It's printing away fine with it's included spools but I'm looking at my various options to switch to bulk filament as soon as these run out. So far I've seen the "swap cartridges" method, the "use a external switch and two chips to swap cartridges" method, and this thread where we're talking about gutting the machine and replacing the electronics or swapping the firmware on the board. Has there been any more progress on firmware? Has anyone tried the suggestion from Geezer70 above? I also saw some comment somewhere about bridging a circuit with a diode to prevent the board from being able to write to the chip on the cartridge. I'll need to find that reference again, not sure if it has any credibility. I'm assuming people have tried hacking the chips themselves like what was done with the DaVinci cartridges to up the counter to 999m, is that not possible or just more difficult with the 3ds cartridges?
I found more reference sources for the Zener diode trick. This is the thread that probably matters: kisslicertalk.com • View topic - Cubepro gcode The response below that comment suggest it won't work. I don't know if anyone has actually tried.
@jh1985, and all. To hack the PIC32MX695F512L that the Printer uses would involve disassembling the printer per Oderbang's (Thanks to his great contributions) follow the instructions to the point of gaining access to the Motherboard. Once this is accomplished determine if, big IF, the MB has an ICSP header. PIC32 Chip pins 13 (MCLR), 24 (PGEC), and 25 (PGED are what have to be probed to find probably a 6-pin header on the PCB. If found, then the Pickit3 could be attached and used to access the printer's FLASH and read into MPLAB X via the Pickit3 and a Hex dump created. Then look at the assembly code at the addresses I mentioned in another post to see where the Dallas CHIP read/write routine is found and modify the code to bypass the actual function. What I was asking is if anyone is willing to do this. Mean while, I have successfully loaded an Arduino Sketch into MPIDE v0023 (Google it), compiled and loaded the chipKIT WF32. Read the chip's FLASH via the Pickit3 attached to the WF32's ICSP header and imported to MPLAB X. where it was disassembled and saved as a .HEX file Pursuing this path could lead to a totally new firmware for the printer tweaked specifically for the Cube and released as OPEN Source as a different version of Marlin's Open source. However, the pretty LCD would probably have to go, its hardware is proprietary, not worth hacking. If this comes to fruition, I will be asking for a lot of help from you REPRAP guys and gals to help with the tweaking because I fall short in that area. Hip, hip! Ya all! Let's get little puppy paper trained... Geezer
Hey I just got interested in the cube 3, since I don't have one to visually inspect I have what will probably be a dumb question to y'all, but here goes. Why couldn't you disassemble the cartridge and fill with filament from a bulk spool, then run it thru the pigtail to the extruder? I'm assuming it's not that simple considering someone probably would have. I like the idea of the cartridge keeping the filament sealed, clean look, and design seems like it would help for easy feed.
I'm also interested in open source for the cube 3D. Would like to tinker with the advanced settings. I'm probably going to order one because you can't beat the price. I'm I correct that with the cube software you can't alter simple things such as the hot end temp? On the other hand I like that it's suppose to be simple. So kind of torn.
Ok well I am your guy. It will Take me a little bit but i am willing to tear it down and do everthing you say. I am going to be learning how to do alot of this for the first time like reading the flash. I have used arduino but thats it. However I am willing to learn and do my best. This type of thing has had my interest for years. So its about time i get into it. Ill take photos up close along the way so you know every component their is to deal with. I just ask for a bit of help when it comes to the code part. I think you laid it out very well already tho. Thanks alot. The kit should get to me next week so ill tear the printer down this weekend in prep for its arrival. Thankyou again.
If you try to connect telnet session to your Cube 3D printer you will get diag output. Of course you need login and password. I was not able to find it in firmware but after firmware modification I get diagnostic output. Below there is some output: 92234.675 BUF: DirExRpm=1000 92234.675 BUF: DirectAbs: st=-1 h=1 92234.675 ExtruderPerformDirectCommandAbs: 0 s=-1 h=1 92234.675 vSetDirectExtrusionParams: direct_startSteps=0 direct_targetSteps=-1 direct_targetSpee 92234.675 PA: D direct_currentSpeed=0 92234.675 EXTRUDER_PR_REG = 1 92234.700 BUF: M108 E1 40 92234.700 BUF: M108 E2 40 92234.700 BUF: M108 E3 40 92234.700 BUF: DirExRpm=1000 92234.700 BUF: DirectAbs: st=0 h=0 There is also part related to writing to 1-wire memory: 92235.800 UpdateCartridgeQntCheckPresent: steps=38950 92235.800 UpdateCartridgeQntCheckPresent: start=99825 used=660.2 new=99164 92235.800 eWriteCartridgeCurrentQty: idx=1 current=99170 new=99164 92235.825 eWriteCartridgeCurrentQty: Read chip=99170 92235.825 eWriteCartridgeCurrentQty: Wrote=99164 92235.825 UpdateCartridgeQntCheckPresent: eWriteCartridgeStatus=0
If I put in a E3D V6 volcano extruder and have the normal thermistor could I use the ardiuno board since the 24v wouldn't be required? I believe I'm follow correctly that the only reason the 24v is required is because the thermostat. I don't know much about the rumba board you talk about. I'm simply just wanting to get my cube 3 open source, with a reliable board. The software used should dictate the user friendliness. I'd also like to have the LCD work. Even if I had to get a different LCD that could be mounted in the old spot. If it's too difficult or impossible then the LCD won't stop me from swapping the electronics out.
It seems to me that the problem is between the cartridge chip and the chip reader. Has anyone read and decoded the data from a normal/full cartridge? Why couldn't they just read this data and load it into a normal chip? And if the chip contains a counter (down) then it must be re-writeable. Then I would suspect that with the data structure I mentioned above that one should be able to re-load printer cartridges the same way the counter is implemented to count it down. We just need the raw data on a full & empty cartridge (preferably of the same color & filament type) and the difference should reveal the data necessary to modify. And knowing that we can work out a simple solution (even if as gross as just soldering wires with this coded data). Ultimately we should collect up sample data from various color cartridge (and types: PLA, ABS as well as the INV support structure cartridge -- because I'm assuming this affects the printer temperature too). Anyone up for it?
See my comment below. This would be the best method. Simply decode the chip data structures and when you get low, rewrite the "full" data back onto the cartridge. If they can be counted down, then those chips must be re-writeable (and so can be written to and re-loaded). I'd just need some sample chip data from various Colors, Types and Full/Empty status. Since the primary issue is Full/Empty, then let's start there. Get me the data of a full cartridge, nearly full/empty cartridge, and also an empty cartridge and let's start deciphering the data structure. Then re-write the "full" value back to those empty cartridges. And for my part, I've cut a feeder hole into my cartridge for external feed, but I'd still like to modify the "color" and "quantity" values to match.
The only thing better would be data from the same cartridge (when it is full and when it is low/empty/anywhere in between -- as long as I also know what %) just in case the cartridges are serialized. In any case, I should think that THIS would be the better solution. Isn't there some Arduino chip reader which could do the trick? Certainly this would be cheaper than a $1000 rebuild. I like my Cube 3D printer and would like to keep it as long as it can be useful to me -- like not forcing me to waste money. If nothing else, down the road, our old Cube 3Ds could be useful cores to newer re-builds. But we'd certainly want to cap off that old chip requirement. Even if just hardcoding the "full" values.
Yeah I thought about this also. Taking a new chip that's origins aren't from an 3DS cartridge and has no locked restrictions. Then using data from the cartridge chips, and edit the counter etc. I'm also interested in the stock mother board hack that geezer is looking into also. Keep all the cool features of the cube 3 but making it open source to get around the cart chip, use with cura, and many more benefits. Or if this can't be done then do the board swap to handle all the restrictions. Only issue with that is the auto function and other won't work.