Forum:Integrated server (network attatched / driverless)

Server Basis

Software Side Since this is going to be an open design, I would suggest an Open, Unix-like OS, with Linux being a fairly obvious first choice due to the number of people familiar with it and it's general ease to mod and work the guts of.

However, the idea of using something lighter on it's own board is an interesting concept, it would increase cost and technical issues.

Possible Linux Distributions

Since this is going to be a mostly stand-alone device, requiring as little user input as possible, I would suggest something that is known as stable, so my suggestions are as follows:

Debian Easy to use, good support and designed around stability - can easily be run headless, as this system would most likely be run.

Slackware

Yes, this is a hardcore system, hard to use and has serious dependency issues. But it is one of the most stable distributions and has a good record of being fairly stand-alone once set up.

Communicating Software

...

Driver software

While the connected computers may not need a driver to drive the printer, the inbuilt server will, and as such, we need to draft out what needs to be controlled and to what level, as well as if we are going to have swappable parts with different functions - maybe make the driver a bit more module based?

Needs to control

At least one axis

Paper feed driver

At least one printhead

Ink feed

RGB transcoding into CYMK

Possible extras

Second Axis

Five or six printheads

Possible scalpel blade for cutting designs out?

Paper sensor Different printhead designs

Hardware

Are we planning to go down the embedded route? Single Board Computer (SBC)? Or something more like an old Pentium 3 we have lying about somewhere?

Further more, what interfaces do we need on the hardware?

Embedded Route

Discus

Single Board Computers

Single board computers are cheep, relatively easy to use and not exactly power hungry. Most importantly, they are small.

Since this project, by it's design, should not need anything majorlly heavy, with the board only needing to process the data at the speed that the printer can print, and transform it into basic vectors and commands (OK, maybe a fair amount of work), this does not need to be a high speed processor and 10GB of RAM - but it will need storage space for the files to be read from and trans-coded to, with a decent through-put speed, and with this being networked as well, I would suggest having at least 2GB of memory free for this purpose.

To this end, there are several small SBCs available with the required I/O functions of (at least) USB and Network, for example: http://www.gumstix.com produce a set of SBCs with add-on boards that could conform to the project's needs

http://www.thelinuxstamp.com also has a similar device, and would not have the need for add-on boards as it already has a flash card slot, USB port and network port built in

Old Machines

Picked up from the scrapyard or found in your attic, or even ebay, old computers are cheep and versatile. However, they have a tenancy to be big, power hungry leviathan with bad tempers and worse drivers. However, they are cheep, will almost certainly have the needed ports ore be able to be outfitted with them and are available in large numbers - however they are nowhere near open source.

Interfaces

We need to at least:

Connect with the users computer

Connect to the printer

It would be preferable if we could have both set up as I/O (input/output) to allow for users to receive ready and error messages, and for the printer to send error messages to the server.

Input

For connection to the client machines, it was suggested that a network could be used, so a network port is a possibility. Another option may be some form of two-way USB memory stick that files could be dropped onto and taken off automatically by the server, and WIFI is always a possibility.

So, possible input ports include:

USB

RJ45 Network port

WIFI connection

Output

For connection to the printer, there is going to be a set data stream to a number of parts, so Serial connections may be in order, as they are fairly easy to control. However, serial has died on most PC motherboards, and as such, USB is a more viable option, although it is harder to code for.

So, possible output ports include:

USB

Serial