There are way to many changes to put here in one post for these two projects since my last update. I will very quickly just go over some changes. With AtCore we now detect plugins better. Provide a more flexible deployment configuration and and have a Homebrew script for Mac in the KDE-mac tap. (log) AtCore is getting ready for a new release v2.0 this will be required to build Atelier. This will be the topic of my next post. Where plan to cover the journey and changes from AtCore 1.0 to AtCore 2.0.
Atelier has gotten the lions share of the work since the last update at least a diff a day! These include using all AtCoreWidgets for the common items shared with the test gui. Supporting drag and drop to open files. Having the 3d View tracking on the gcode files open the in editor so you can preview the open file. Improvements to the gcode editor. Quite a few more that I am not remembering all while cutting down on the code where possible and making parts leaner. (log)
A few users have asked for Sd card support and hopefully the basic version of that will be merged soon. This feature appears to be a more firmware dependent so it may take some time before each of our target firmwares has full support for SD Cards. The other feature that is being worked on is command injection. I have been thinking about adding this for a long time and I finally have a decent set of changes to support this feature in atcore. I can hear some of you out there asking about what exactly I mean by command injection is so I’ll explain. This feature will allow you to place specific commands for atcore into the gcode file. There is no need to worry about the commands breaking your gcode file since they are added in a way that makes them invisible to other hosts. You can trigger temperature changes, speed changes, pauses and more in this way. Using a few injected codes I was able to modify my test code that I print into a print that was made of abs with a tpu core. I didn’t have to touch atcore’s gui other then to resume after the auto initiated pause(s) and I can make prints with multiple colors and materials.
The Raspberry Pi3 is a small single board computer that costs around $35 (USD). It comes with a network port, wifi , bt , 4 usb ports , gpio pins , camera port , a display out, hdmi, a TRRS for analog A/V out. 1GB of ran and 4 ~1GHz armv8 cores Inside small SOC. Its storage is a microSd card they are a low cost and low power device. The Touchscreen kit is an 800×480 display that hooks to the Gpio for touch and dsi port for video. To hold our hardware is the standard touch screen enclosure that often comes with the screen if you buy it in a kit.
Most of the time it is sufficient to run Raspian the official distro that is made for the raspberry pi. raspian is a fork of debian as much like debian it has some old packages. In order to build AtCore (with the gui) you need at least qt5.8 raspian comes with 5.7. This is not a show stopper but compiling qt does take quite some time and can easily take a week if we were to build it on the rpi itself. Setting up a cross complier will save you a lot of time but even on my fastest machine it will still take some hours to build qt for the pi. I decided it would instead be faster to install a completely unsupported OS on the device. I was going to install install arch linux on the rpi. Arch is a rolling distro that ships with qt 5.10.
Arch linux on the raspberry pi is what you might call “doubly unsupported” That is that the raspberry pi foundation does not support running arch on the pi. You only get support from the arch community. Arch Linux is not officially supported on platforms other then x86_64 the rpi running on arm. Worry not for the Arch community has some forks such as archlinux-arm this is what we will be installing. Like most things arch you get some instructions. After getting the os installed its still arch so you only get a cli interface on your first boot and are left to set up the rest of the system.
For my system I installed plasma-meta , xf86-video-fbturbo-git and sddm. With those I was able to have a working plasma shell. I also installed dolphin, kate and konsole as well as the few atcore dependencies. I then added my user to the uucp group so I was able to r/w to serial devices and restarted. When all the dependencies are installed you can proceed to build atcore. Since this is arch we can simplify the building part just by using atcore-git from the aur. Im Happy to say it took only minutes and 48 seconds to build atcore-git on the rpi. I then used pacman to install the atcore-git package and it was time to see how our gui was looking on such a small screen.
At first the contents of the atcore-gui spill off the screen due to the way our docks are tabbed, however since they are docks you can just adjust them to make a quick usable interface. After adjusting the gui AtCore worked exactly the same as it does on other systems. Below you can see a picture and video.
Can do better
There is lots of room for improvement. Atcore-gui does not save any settings. You’ll need to move the docks around each time you launch the program. Atcore-gui can not automatically connect to a device on launch. Again for reasons of not saving settings This gui is of course not really made for use on a touch screen and it does seam to work good enough to use. Some non atcore changes on the system itself would be nice. A few services running on the pi would improve this over all. Mjpeg streamer or another method of streaming video from the attached camera on my printers extruder. Uploads are done via stfp that’s not always easy for everyone. The pi does not launch atcore-gui on start up . Small stuff like this could easily be adjusted. I was really just playing around to see how atcore ran on the rpi. I was very happy when this worked well.
Today I would like to announce the release of AtCore 1.0.0. This is the first stable release for AtCore. Since its the first release and we have not written a “real” client for it yet we include our test GUI. If you own a 3D Printer you are encouraged to try AtCore for at least one print job.
Using the AtCore test gui is really easy for Linux you only need to make the AppImage executable then run it, On OsX you run the .app file and for Windows run AtCoreTest.exe. To do anything in the application you must first connect to a printer. Use the connection tab in the top area left area of the window. Select your Device and Baud then click connect. If for some reason your firmware is not able to be autodetected or you wish to speed the connection up you can select your firmware from the drop down list. If you don’t know what firmware you have try using repetier. You can find more information on the Test Gui if you view its User Guide. If you are intrested in hacking on/with AtCore you may want to check the Api Docsumentation.
The test gui’s log will show an extra set of I/O for each connect/ disconnect you have done while its running (fixed)
If your printer does not restart upon connection with AtCore then AtCore will not send the firmware request correctly. If this affects you just select your firmware plugin from the list, or send the command M115 from the command tab.
Linux (x86_64, AppImage) – rt.click and “Save as” Make it executable. SHA256[ae9dde58f38853230be36acb5f2ef6975e4fa90a6ade1e2bef92351f2f01c567]
The time has finally come to release our first beta of AtCore for the general public to use. We would really like to ensure that AtCore is working with as many machines as possible so we encourage everyone who can to test AtCore and provide us with feedback on what worked and what did not. Included in this release is the Atcore Test Client a simple GUI. This is easy to use and should work well for most people. This client only for testing Atcore and we will be releaseing Atelier as our offical client at a later time.
We have support for several firmwares, but not all firmwares. If your firmware is not autodetected try selecting the “repetier” plugin. If this happens to you please let us know what firmware you have and if repetier plugin worked for your machine. AtCore’s current feature set is mostly for 3D printers but printing to any G-Code machine that uses serial should work if you have gcode sliced for the machine.
I would like a enclosure for my printer for a couple of reasons. I Print In ABS a lot and I would like to negate effects of the enviroment on my prints. I looked around a lot to see what others have done and many people use Ikea’s Lack table to create an enclosure. They are inexpensive and work well for making a box frame. I must have looked at 3 dozen different enclousers and one printer all made from these tables while looking around for what I wanted. The one that came closest to what I wanted to do was this one https://www.thingiverse.com/thing:1685857. I was planning to make real plans and a full tutorial for what I was about to make but one day my friend dave was over we decided to just build it we went to the local hardware place and got some MDF and a plastic panel for the door, some metal hinges and 90deg brackets. Unfortuantely my printer is too tall to fit inside with the tables just stacked on top of each other. I was going to print something to extend the tableleg but since I had found enough wood to make four legs I made legs at 19″. The legs were very carefully drilled out in center and the Ikea provided double screw could then be used to secure it to the table just like the lacks real legs.
Next the walls were mesured, cut and screwed onto the outside. I want to keep the build as modular as possible this way the panels can come off if needed.
Painted and ready.
Every thing was painted a flat black and after drying it was time to start assembling the enclosure. I first put the lack table down and placed the printer on top of it and cut a small slot for the cabling to sit between the top table and the bottom one. Since the cabling was now recessed enough to place the top on I installed the 3d printer and secured the control box to the bottom of the lower table. Some of the final things like the hole for the filiment feed had to be done after the printer was installed so I could see where things lined up. Then a hole was drilled and a filiment guide installed and finally the top table attached to the bottom one.
It was then time to work on making a the door assembly.Cuttng the plastic is difficult and I would recommend not only having the proper tool but also someone to help you keep it from moving as you score it.(thanks again dave) Drilling thru the plastic very carefully we made holes for the hinges, door latch and handle in the plastic. Put it all together and its looks and works pretty good.
There are some things planned for the future on this such as getting my lighting properly wired into the control box for power instead of on a seperate power source. An Exhaust is needed still and there are currently no cameras in this enclosure. I need to re install my extruder cam as well as a PI (w/camera) for enclosure control. For this I plan to make a fake walls on the sides and hide all the electronics and filters in that space . i will have a 1x24x24 space on each side to hide this all . This will help to keep the clean look it currently has with little change to the inside.
I have been very happy with my printer except for one thing my printer uses a melzi board. The only issue is there is only one firmware for melzi. This makes testing firmwares in AtCore more difficult since I can’t test on a real machine. In order to do that I need to move to a RAMPS kit. This will allow me to flash just about any firmware that I want. I will keep the details to a minimum for this post would be really long otherwise.
After ordering the nessasary parts all the extra stuff I needed to complete this project I can finally begin. The first step is to build the ramps kit and then install some firmware with a sane configuration. For the first firmware I have decided to go with Repetier 0.92 since its the same as my old firmware.Using repetiers web configuration tool I ran thru all the steps only changing the required items. I was able to download and build this firmware and flash it in no time. The first test of the firmware and the screen didnt show anything. Checking the config I can see that I picked the wrong screen. With that fixed I could discover my next problem the control knob moved backward from what I was used to, it was to fast and had to high a repeat rate . So after a few more configs attempts I was able to get everything worked out and my board was now loaded with firmware.
Time to take the old control box apart and wire up the new one.. There is only one problem the plugs dont all fit on the new. Every wire needs new connectors. I made all my crimps, wireed the new board and fired up the machine. But there were problems. Y moved in the wrong direction and the Z motors were spinnng wrong. It didn’t take long before I had these issues fixed. With the motors all checked and working I was ready to try the heaters. That was when the fun really started, almost instantly you could see smoke and the mosfet for the bed was burning up. This killed that ramps board so i had to order another.
After a few days of waiting I receved my new ramps board and an external mosfet for the heated bed. With those installed every thing was ready to be put into the old case. I had to made a ramps holder that didn’t push the reset button . I did this by printing a few ramps holders and chopping them up and glueing them back together in way that worked in my case.
After that hack job was assembled I still needed to mount the mosfet board. Luckly I was able to find another mount and modify it to mount on the two unused melzi mouning posts.I also needed a way to get some space inside the case and a place to put my usb B external plug so we can plugin the ramps nicely from outside the case. I modified a 120mm fan adaptor to include space for my usb port and put the whole thing together to test. Its been working fine for about two weeks now and its printed about half of its new homes parts.
Its been some time since I’ve posted any progress for AtCore. Some may wonder what we have been up to ..
Implimented a Comand Queue
We would like to get some info from the printer while printing we need to have some method of flow control. AtCore now uses a command queue to send all commands. With the command Queue in place we have to handle stop and Emergency stop differently . For example Emergency Stop should skip the queue and be sent as soon as the button is pressed.
Requesting Temperatue from the printer
After you connect to a FW plugin every 5 seconds a m105 will be send to the printer and the temperature results are put onto a pretty graph that Patrick made. In order to make the graph work we need read the M105 return and extract the data from it. While our current methods of parsing this info work its very specific to each firmwares return . Since these string can be differnt between fw versions it can crash so we are working on a way to do this better.
Cleaned up the test Client Gui
The test clients GUI needed some love. All the widgets now live within a dock and the docks can be arranged how ever the user likes. I’ve also added a status bar to show the status of AtCore. We’ve also added a print job timer and remaining print time estimate. A Seperate axis control for relative was asked for by a user and I’ve added one that Lays wrote some time ago . It works well and allows for movements on 1, 10 or 25 units
Fixed the windows build so that It builds and deploys correctly via craft
Lays has been working hard to get atcore buildable via craft. Now we can build and deploy AtCore (and testgui) from craft. After building we had a problem of not finding the plugins on windows and them not deploying to the correct path.I added some instructions for deploy and tweaked plugin detection on window. Everything is now working well.