Generic powder machine controller

Powder and inkjet printing
david
Posts: 73
Joined: Wed Sep 21, 2016 8:43 pm

Re: Generic powder machine controller

Post by david »

PPS more words on the software and firmware

This controller is designed as a complete central controller. The host software slices the 3D model into 2D raster image in the CMYK format. Standard format, like PNG, would be fine. The controller takes a ZIPed package of such print file via its high speed USB or network(later upgrade) and can optionally copy it into its own internal TF card, so that the data source can be freely disconnected and the printer will work on its own. There is a 64MByte on board SDRAM which can hold the decoded image for a single layer, and the MCU part of the head driver will transfer the CMYK data to printhead data. The FPGA may help some low level bit transform as although the MCU has 500MHz main clock it may not be efficient to handle the bit operation, e.g. interleaving 6 colour head data.

The MCU firmware is currently with FREERTOS, which is a standard RTOS and it free. So that I would be able to disclose the application source code and make it as a useful reference design if I could deliver a kind of SDK for the inkjet 3D print.
maxt
Posts: 36
Joined: Fri Apr 26, 2019 10:38 am

Re: Generic powder machine controller

Post by maxt »

Hi david, this sounds really great! let's see how the epson head performs, you'll probably need to make some experiments to find the right glue density to prevent clogs.

One question about the slicing: how do you do it ?

Last few months I've spent some time analysing possible implementations of a slicing software. My findings were that it's pretty simple and fast to slice any 3D mesh monochrome, or with vertex/face colors.

However it looks quite complicated to slice a textured mesh, which is unfortunately necessary to retain high resolution, without explosively growing the number of polygons. My best guess is to do it via OpenGL (which is slowing me down a lot because I know very little about it).
david
Posts: 73
Joined: Wed Sep 21, 2016 8:43 pm

Re: Generic powder machine controller

Post by david »

Colour slicing is a bit complicated, simply because there are not many public available examples. The initial test of my printer will be based on single colour or manually set colour. Later development, in my option, will tweak a VRML reader and add a slicing function, for example, using the VTK package. Have a look at Slicer and Paraview. I think it'll be that sort of thing.
maxt
Posts: 36
Joined: Fri Apr 26, 2019 10:38 am

Re: Generic powder machine controller

Post by maxt »

david wrote: Tue Oct 08, 2019 9:42 am Colour slicing is a bit complicated, simply because there are not many public available examples. The initial test of my printer will be based on single colour or manually set colour. Later development, in my option, will tweak a VRML reader and add a slicing function, for example, using the VTK package. Have a look at Slicer and Paraview. I think it'll be that sort of thing.
yes, I've had a look at slicer as well. It may do textured slicing as well but if it does, the functionality is so well hidden that I was not able to find it. It's a very powerful but complicated application. I'll have a look at paraview; heard of it but never looked into it.

Unfortunately I know of only two slicers able to slice textured objects, and none of them is open source.
Wonko
Posts: 110
Joined: Sat Aug 15, 2015 8:13 pm

Re: Generic powder machine controller

Post by Wonko »

Iota https://github.com/MatthiasWM/IotaSlicer is by no means complete, but it is an open source texture slicer. The texture functionality is currently disabled because optimizing voxel code had priority for a while, but the source code is still there. There is an improved texture slicing system in the works, but I did have to spend some time in the hospital, and I am only now restarting development. If you have specific questions, please contact me here or at iota@matthiasm.com
maxt
Posts: 36
Joined: Fri Apr 26, 2019 10:38 am

Re: Generic powder machine controller

Post by maxt »

Hi wonko. thank you for the link to your slicer. I already had a brief look at it in the past, I had dismissed it too quickly because I thought that, by voxelising, it was able only to handle face/vertex colors and not textures.

I'll look again how you approach this issue, thanks
david
Posts: 73
Joined: Wed Sep 21, 2016 8:43 pm

Re: Generic powder machine controller

Post by david »

I'll make my powder printer taking a pack of ZIPed PNGs as print file, just like the current de facto LCD 3D print format. So that different slicer can be supported. Also, regarding the 3D colour model, is VRML better than OBJ? I see many colour 3D printer using VRML format.

PS, the 3D print format I'm currently implementing is actually a GZIPed TAR file. TAR file is efficient in packing serial files like the slices. Also, GZIP is easier to handle than PKZIP, according to my experience in developing LCD printers. This TGZ should contain a info file in JSON format (I feel JSON file is easier to handle than XML), a few preview pictures, and a lot of numbered slice PNG files. And if using colour, the PNG file should be 32bit including the alpha channel, actually the RGBA is somehow mapped to CMYK. Converting from CMYK to printhead waveforms would be the job of the printer at runtime.
david
Posts: 73
Joined: Wed Sep 21, 2016 8:43 pm

Re: Generic powder machine controller

Post by david »

Wonko wrote: Fri Oct 11, 2019 9:22 pm Iota https://github.com/MatthiasWM/IotaSlicer is by no means complete, but it is an open source texture slicer. The texture functionality is currently disabled because optimizing voxel code had priority for a while, but the source code is still there. There is an improved texture slicing system in the works, but I did have to spend some time in the hospital, and I am only now restarting development. If you have specific questions, please contact me here or at iota@matthiasm.com
That's very nice. Your slicer is on my support list. I'm wondering how far your slicer is to produce image files instead of gcode?
maxt
Posts: 36
Joined: Fri Apr 26, 2019 10:38 am

Re: Generic powder machine controller

Post by maxt »

Hi david, the 3DS printer accepts only vrml and ply files, but only because their slicer is quite old software (but very fast anyway). There is no significant difference between the 3D formats. You can generally convert them back and forth without loosing any information.

So you can choose whatever format you prefer to slice, the printer will only pring pngs after all. I prefer the OBJ format and I know that there are more recent formats which are better defined (but not so ubiquitous as OBJ).

Indeed the vrml format is quite old and bulky and some 3D manipulation tools don't handle it too well. OBJ is far more universal. I usually work with OBJ and convert it to only when ready to send to printer. If it handled OBJ directly I would stick just to that.

Just don't forget the A channel, transparent ink is the only way to print white areas.
Wonko
Posts: 110
Joined: Sat Aug 15, 2015 8:13 pm

Re: Generic powder machine controller

Post by Wonko »

david wrote: Mon Oct 14, 2019 9:35 am That's very nice. Your slicer is on my support list. I'm wondering how far your slicer is to produce image files instead of gcode?
This is a volumetric slicer. The models are handled as voxels. Layers and slices are images. Images can be written anywhere in the process. It's as simple as adding a single image writing call. I will try to put something useful into the next version, so you can try that out.
Post Reply