Related lists

Description

It is an other aspect of the photography to be able to not only show the picture you just took to your friends (on the camera screen), but to physically give the picture.
The aim of this camera is not to make good quality or useful prints. Its give monochrome and tiny prints, but cheap and within few seconds.

It is based on 'affordable easy to find parts' , and Java programming language.

It is worth to mention few facts about the paper. Thermal paper is very cheap and could be easily found without BPA, but it is sensible to sunlight and heat. Exposed to sun, the prints will fade with time.

Software

There is two main external library/executable used by the Java program to achieve picture capturing and printing.

First is the program raspividyuv (in /opt/vc/bin/ of raspbian). It is launched within Java with the argument -o - in order to get the pixels data on stdout in an inputStream.

Second is the use of the Pi4J library. The Serial port is configured to send image data to the printer, a GPIO pin is used to read lines advance of the printer and another GPIO for the 'shutter' button event.

Before the Java program starts, the primary frame buffer is copied to the second frame buffer used for the PiTFT screen in order to see the camera preview on it. This is done by the fbcp program. (Credits to tasanakorn)

The Java program continuously receive the camera image and build a buffered array of pixels. Once the shutter button is pressed, the event launch two sequential process. The gray-scale image is converted in monochrome with Floyd–Steinberg dithering method. Then the printing thread is started, sending data to the printer on the serial port.

The sources and builds are here on: github. On the jar folder, there is the executable .jar file, the built fbcp program, and the config.txt file. On the last file, there is the welcome message, the header message, the printer serial speed and more configuration detailed in the 7th instruction below.

Components

1×
Basic knowledge about linux, wiring/soldering
The printer must be tuned. Files must be put and perhaps edited under RPi linux

1×
Raspberry Pi 2
Works with RPi 1B+ and probably with RPi Zero1.3 but not yet with RPi 3

Project Logs

A very short log entry to show how ages the pictures and to link this project with the PolaPi-Zero

I kept some prints on a desk, close to a windows, and others in a drawer. From left to right, 2 prints from the drawer, one exposed to sunlight behind a windows, and the last one freshly printed with the new version. The dates are correct, the 'old' ones are from mid '15. The papaer is Exacompta 57mm FSC No BPA .

It didn't update this project page for a while now, and I noticed petapixel.com made a nice article about it.

I would like to say I'm rather impressed how internet could spread something at light speed. It's remind me I forgot to mention this project is of course an educational pretext for myself and it was inspired by plenty of other cameras (commercial and hobby). It is not aimed to be the best quality, the cheapest, the nicer, nor even useful.

The instructions are not a nice a step by step list, I'll try to put more time on the documentation.

1 - This printer receives data on a serial port, and by default the speed is slow. And there is a software way to change from 19200 bauds to 115200 thanks to this program: Link. As it is a windows program, we need a USB to 5v TTL serial converter, such as this one. Power the printer, connect the gnd-Tx-Rx, and on the printer program set the right port, the previous speed (19200 in my case), the new speed (115200), code page US (it's the character-set ) and press SET.

If this step is impossible, see instruction 7.

2 - The second step is to have a flow control. For the moment, the only way I found is to solder a wire on a pin of the printer's controller chip to get the line paper advance information. I gently scratch the protective layer of the copper track, and solder a wire there.

3 - The connections are the following. This little wire from the step motor controller will be connected to the pin15 of the raspberry pi.

And the printer's RX to the Raspberry pi TX (pin8). Printer's TX is not used.

Enjoy this project?

Discussions

Become a member

Why did you plug the thermal printer at 5v regulator? The printer's manufacturer recommends 5V-9V for the power supply of the printer (with 1.5A). Can I connect the printer directly to an LiPo 7,4V 2A?

earlier i had done without fbcp but now i am getting prob. while using it...

pi@raspberrypi:~/polapi $ sudo java -jar polapi.jarPolaPi starting.../home/pi/polapi/header.txt not found, using config.txt for header textException in thread "main" java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)Caused by: java.lang.RuntimeException: Unable to open GPIO direction interface for pin [5]: No such file or directory

It's ok muth :) i am actually happy that you are so much active in helping others to whom you dont even know (in this selfish minded world). sometimes santa can be late but for sure it will come !!

actually it's better this way as i worked it out without help. That ofcourse increased my knowledge and patient.

For the motor its the same GPIO3 but for the other part instead of using GPIO 4 or 5 I used GPIO 26.Using GPIO 26 allows the printer and the cam to operate but again i wasnt able to find which GPIO pin will work as the button(i was too happy with that only that it started working with the tft ,so i left it till there as i am appearing in INDIAN ARMY SSB interview for which i had to prpare).i will do it tomorrow then i will tell you the whole functioning.

Great! It start to be a long time, I actually don't have anymore this version of the Polapi.If I remember well, pay attention of the GPIO numbering that you've put in the confix.txt file, it should match with the pi4j.com library : http://pi4j.com/pins/model-2b-rev1.htmlCheers

I am doing the same project and i am close to the end.it's just my camera is starting but its not taking pic after this command...even after connecting GPIO pins(checked both GPIO 4 &5 its not working)?

Hello Muth!! I'm having problems running the "polapi.jar" file. After running sudo java -jar /home/pi/polapi/polapi.jar I get the error message "Invalid or corrupt jarfile". I've tried updating oracle-java7-jdk to no help. I'm relativly new to rasbian but I can't understand why it doesn't want to work.

Hello Muth!! First of all thanks you for explaining this awesome project step by step, i am sure you have introduced some photoNerds like me into electronics.

I am pretty noob and i am already stuck at step 1 :( !! ..i bought all components you listed, the only difference is that i bought the tiny thermal printer and i dont know how to have the flow control of it.

The problem is I dont know wich pin is the one I should solder the wire to.

Unfortunately I never tested this printer model. It could be if you connect the USB, it behave as a serial port. You can try to see if a device appears in /dev.

I didn't see any button on this model, do you have a way to print the config ? On the other models, we should press the button before powering the printer. On this page there is the serial com speed. If it is something like 19200 or 9600, there is a chance you don't need to solder a pin to control the line advance.

I added recently an option in the config file to set the serial speed, such as 9600 bauds, so it might work. The issue of lower speed is prints will take a longer time and the printer usually make some pause, resulting horizontal artifacts. However I never test this printer, I can guaranty it'll work :/

Muth, thanks for posting this project. I started the build, but the software instructions you posted are a little vague for me (I am relatively new to Linux and python) and probably intended for advanced users. Any chance you could post some more detail regarding software installation and config? Thanks

Hello Monoroto,Yes sorry I should have specify some linux basics is needed there. Actually I'm not an expert in python but more confident with Java, that's why I used this language.Could you tell me where are you stuck ? It'll be more easy for me to help you.

Hi Muth, well I completed up to step 7 and downloaded fbcp, polapi.jar and config.txt into the created folder. Rebooted and just goes to command prompt.I have the hardware set up as specified.

The raspberry pi could be accessed with ssh and files copied with scp (or winscp).Make the following folders:/home/pi/Photos (where the picture files will be saved)/home/pi/polapiOn the last one, put 3 files. The file fbcp (if not executable, use "chmod +x fbcp"). The file polapi.jar. And make a text file "config.txt" which contains configuration information. You can download it directly here on github.

Hi !All right, I think you are quite close. Do you use the PiTFT screen ?

Anyway, you can yet test if the program runs correctly. In a terminal go to the /home/pi/polapi/ folder and type "sudo java -jar polapi.jar". The camera output is on the HDMI screen, so if you have the SPI screen it might not appear. But you can still press the 'trigger' button and check if there is no bugs. Let me know the program output.

To makes everything running at startup you have to edit the /etc/rc.local file. At the end of the file, add the 3 lines of the last instruction:

PolaPi starting.../home/pi/polapi/header.txt not found, using config.txt for header textException in thread "main" java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoa der.java:58)Caused by: java.lang.RuntimeException: Unable to open GPIO direction interface f or pin [4]: No such file or directory

at com.pi4j.wiringpi.GpioUtil.export(Native Method) at com.pi4j.io.gpio.RaspiGpioProvider.export(RaspiGpioProvider.java:89) at com.pi4j.io.gpio.impl.GpioPinImpl.export(GpioPinImpl.java:158) at com.pi4j.io.gpio.impl.GpioControllerImpl.provisionPin(GpioControllerI mpl.java:517) at com.pi4j.io.gpio.impl.GpioControllerImpl.provisionPin(GpioControllerI mpl.java:496) at com.pi4j.io.gpio.impl.GpioControllerImpl.provisionDigitalInputPin(Gpi oControllerImpl.java:591) at com.pi4j.io.gpio.impl.GpioControllerImpl.provisionDigitalInputPin(Gpi oControllerImpl.java:619) at com.pi4j.io.gpio.impl.GpioControllerImpl.provisionDigitalInputPin(Gpi oControllerImpl.java:613) at com.pi4j.io.gpio.impl.GpioControllerImpl.provisionDigitalInputPin(Gpi oControllerImpl.java:636) at polapi.Launcher.(Launcher.java:159) at polapi.Launcher.main(Launcher.java:191) ... 5 more

Thanks for the raw program output. I presume you are using a SPI screen (Am I right ?) Some linux setup uses GPIO pins for the screen, so the Java lib could not access to these in particular. I cannot predict which one is left free without knowing the screen you're using, but there is a way to setup the java program to use other pins.Apparently the GPIO4 (pin16) is already used:

"Unable to open GPIO direction interface for pin [4]: No such file or directory"

So for the trigger button which is using GPIO 4 you have to exchange to another one. Let's try GPIO 5 (pin18). To do so,

Hi Muth, thanks for your quick response. I should have clarified, I am using the new pi zero board with camera header and an Adafruit PiTFT 2.8 . I was able to reassign the trigger to GPIO 1 (pin 12) and the other lead to 3.3v. I assume fbcp buffer is working as I can now see console (same as hdmi output) on the pitft spi lcd. Here is the output I get when I run sudo java -jar polapi.jar, but I still do not get any camera output on either hdmi or tft, either before or after I press trigger button.

I'm glad you are making progress, at least the program does not insult you with exceptions anymore.

Is the printer print the welcome message after you got the message "Printer: end config" on the console ?

Next, on the console it should be printed something like "Print button pressed !" once you press the trigger button. Do you have such behavior ? This will confirm the program car read the button status. But could fail due to the following.

And finally I see you got the "end camera" message on the console, which means the official "raspivid" camera program was closed. And I can't figure out why right now, but it explains why you don't see the camera output either on the TFT screen or the hdmi.

I don't own a RPi Zero, yet. But I should very soon. So for now what I can propose is to wait a little bit I receive it (should be very few days now). I anyway planned to redo a camera with the RPi Zero and the new nano thermal printer from adafruit.

Hi Muth, thanks. The printer actually did not print anything when I ran the program. I have verified that the printer works (test print) and that Tx from pi is connected to rx on printer (nano). Also, did not see anything on console or printer when I pushed the trigger. I have trigger connected to GPIO 1 and 3.3v and modified config.txt to reflect the GPIO change from 4 to 1. One thing I didn't do was connect the print buffer to GPIO 3. As I could not update printer speed to 115200 (default is 9600), I did not think overrun would be a problem. Also, here is a link to a project someone built using pi zero, camera and nano printer, without TFT screen, for reference.

Hi Muth, thanks for your help. I have tried to see if I can identify anything that would cause the end camera command. I tried the raspistill command to see if the camera works and got a message tvservice not connected. Not sure if the two are related. Anyways, hope to hear your thoughts. I was looking a trying to find a bridge between two projects on adafruit (one for a camera with thermal printer no pitft) and one with pitft no printer,) to see if I can somehow combine the two, but as of yet, no luck.

Hi Muth, figured out the problem with pi zero. Needed to run rpi-update (with kernel exception) and upgrade raspi-config to enable camera. I also noticed that the trigger button needs to be wired to gpio 4 and ground (not 3.3v) in order to work. I was not able to upgrade printer speed as I did not have a serial interface board, so I changed it to 9600 in the config.txt and did not run the printer buffer wire. However, i am getting gibberish printed when the shutter is triggered. I thought at such low speed I would not overrun the print buffer.

Yes, as I said, the camera works with PiZero only with the last raspbian image (or rapi-update).

I'm quite surprise you should connect the shutter button to ground. In the code, I configured the GPIO with a pull-down resistor, it means when the button is at rest position (the circuit is open) the value on the GPIO IS gnd, and to see a transition, 3.3V should be applied. Actually, it is working like that on my side.

Hi Muth, I downloaded the new polapi and config.txt. I was able to get serial adapter and change baud rate on printer to 115200. I also soldered a wire to motor control pin and connected to GPIO 3 on RPi. I modified config.txt to use gpio 1 for shutter trigger (wondering if this is why it will only work with other wireto ground instead of 3.3v) and motor control to gpio 3 as I am using gpio 4 for a shutdown button. I still have a few bugs: I cannot disable serial or polapi.jar will not load, so I get about 6 feet of console boot messages. Also, when I press the trigger, it goes into a loop, taking a new photo every 10 seconds or so (without pressing the button again). Finally, I have poor resolution on pictures, with vertical line artifacts and spaces. But making progress :) I will try to upload some pictures of my setup as maybe that will help understanding my setup. Thanks. Marco

I am using a raspi 3 with raspbian jessie. The camera is showing once the Gui loads up, but the printer is not showing 'welcome to polapi'. When i press the button, nothing seems to happen. I turned the serial back on, so you can see what is going on (in the photo). I have tried a second printer. But it is doing the same thing. Any thoughts ?

Hi ! Sorry for the delay.The first thing I can see is compatibility with the raspberry pi 3 (I only tested with 1 & 2). I found this "The Raspberry Pi 3 only works with our USB receipt printer so it might not be the best option." in an adafruit tutorial : https://learn.adafruit.com/instant-camera-using-raspberry-pi-and-thermal-printer . But I don't know yet the cause of the RPI3 fail to send data to this printer.I will investigate a bit.

Another solution could be to use a small USB to TTL R232 insdead of the gpio serial port. I know it's not very elegant but I added the possibility to put your serial port device name in the config.txt at

SERIALPORT:#defaultwhere #default could be replaced by something different of /dev/ttyAMA0 ...

Thanks for the extra info. I ended up getting a second-hand raspi2 and using raspbian wheezy, and it works perfectly. If I decide to attempt it again on a raspi3 i'll try the options above. thanks again

I built a stationary version of it using an old 6'' CRT display, worked like a charm and looked so freaking cool.... until i accidentally killed the tube. Now i'm trying to build a portable version with some 3.2inch Waveshare display which i've still lying around, but its using pin 15 for driving the LCD.

I have no experience with java, but is there an easy way to change that pin in your code to 5 or something else?

Hi Pierre,I'm photo/hacker myself and I love the concept of this camera although I'm a begginer with Pi programming and so hence my question.Do you think it would be technically and on the code side possible to modify Polapi so it would work as a slitscan camera?Let's say using just one vertical line of pixels from camera image and printing it constantly in some desired rate?With best,Vitek

It is a very clever idea ! While it's perfectly doable on "real-time" on the code side, I see only a small limitation which I must study a bit. I imagine to achieve nice results, the printing rate should be constant. Unfortunately, except at very low speed, the little printer prints at a speed depending of how many dark point should be made in a line.

EDIT: I see that Pi4J has to be installed, in its page it says "If you are using a recent build of Raspbian, then an Oracle Java runtime environment is pre-installed. Nothing more to do." so I suppose that your diagram should be the one I must use when using the Oracle Java runtime environment, after installing the Pi4J native library.

EDIT2: When I launch de Rasp with the Wheezy image that you provide I reach this screen: http://i.imgur.com/SUTbvdP.jpg and I can't input anything at all, do you have any idea of what I'm doing wrong? I've read that I should run raspi-config, but no input command line appears.

The last diagram on your last link is for the very first version of the Raspberry pi B. I suppose you have at least the RPi B+ or the RPi 2B. Anyway, the pin numbers are correct and the same on all diagrams, use pin 16 for the button, pin 15 for the printer stepper motor. It is the GPIO numbering for programming that is differing. (22 = 3 and 23 = 4)

The Pi4J library is included in the Jar file, there is no need to install it. If you use a recent Raspbian SD image, or the Adafruit version for the use of the PiTFT screen, Java8 is already installed.

As said in the 7th instruction, In theory you need only 3 files. 'fbcp' if you use the PiTFT, 'polapi.jar', and 'config.txt'.

I took the photo from the HDMI because the PiTFT is not showing anything at all (the screen goes black after the initial white screen). Indeed, I'm using the Raspberry Model B+.

I'm now downloading the Raspbian Wheezy from the link you've provided in order to install the PiTFT Adafruit from there (there's a script for that). I hope this works.

Cheers.

EDIT: The Wheezy image of the last link shows the same screen. I'm now Googling for some explanation.

EDIT2: I've commented out the "dtoverlay=pitft28c" in config.txt and the Rasp booted successfully :) Although I will not be able to use the screen this way, for the moment I'm not going to use it.

EDIT3: In the Instructions section you use a TTL serial converter, which is not mentioned in the Components section. I suggest that you add it there, as I was not aware of it until reaching that step :)

However, when I use the trigger, the printer does not print. I tried with and without fbcp running.

I've not purchased the TTL serial converter yet, so I wrote "19200" in the config.txt file instead of "115200" (under the "SERIAL:" line), besides trying with config.txt untouched. I will try to get the converter tomorrow and use the config.txt file just as you did it.

I found the converter that you use in the Instructions but it's a bit expensive for me, can I use the following one?

The converter seems correct, however it is used only to increase the printer baud rate (in order to get prints without vertical artifacts lines). It's done by connecting it to a windows computer and running the small config program. On the raspberry pi, the printer is directly connected to pin 8.

To see the console output hidden by the camera preview, you could launch the program from another computer via SSH. By the way, if the camera starts it a good sign. Let me know if you have error message on the console. Some people had conflicts with the gipo pin used by the button and the PiTFT screen, but I can change the code to use another pin.

Good to see you back! Indeed you're very close, and the program seems working correctly. It seems data are sent to the printer as well, if not the paper should not scroll.

I see two possibilities related to the printer. It could be faulty or the paper is not thermal or in the wrong side. (The paper should turn black by itself with the heat of an soldering iron)

If I remember well, if you hold the button on the printer itself before put the power on, keep pressed, put the power on, hold for few second and release, the printer should print a test page with its configuration information. It could be done after power up by pressing the small button on the PCB of the printer, just on the top of the GND connector.

If this works, I have to thinks a bit more to understand why the program send only white points...

Thinks are moving, but it's worrying me a bit. The worst is the printer self test page, which actually failing. Whatever the configuration, it should print something like that :

(For this, I just press the paper forward button while I put only power, and leave the com unplugged)

Even if by seeing the picture of your soldering and I think it's fine, could you try to desolder the wire, check the copper track integrity between the two chips. And with the printer back to untouched state, redo the self test print ?

There is another hypothesis. It could be the power supply fail to absorb the current peak while printing. Even if your 5v regulator is design to deliver 3A, it maybe let the voltage drop too much on current peaks. So, as the printer spec are 5 to 9v, if your battery is 7.4v (8.4v fully charged), you can plug it directly to the printer. The lipo or NiMH batteries can handle large current peaks. I think it is worth to try to make a self test print with the printer directly powered from the battery. The reason I didn't use the printer in a such way is while discharging, the voltage decrease, and then the darkness of the print changes. With a fixed voltage, the printer parameters could be kept constant.

About the window config program, did you try to invert TX-RX lines ? From the log file, it's look like the printer do not respond.

It's plenty of good news ! First one is your printer is fine ;) Secondly, you successfully change the printer baud rate from 19200 to 115200 !

And that's why you have full of "aaaaaa" chars. You have to edit now the config.txt file and put back 115200 insead of 19200 after the "SERIAL:" line.

Another point is your power supply. The printer shown (on the self test) it's only 4.2v. Which kind of battery did you choose ? If it's Ni-MH and not discharged, you should add one on the stack to rise the voltage. If it's a 2S lipo, and not discharged, is it because you are using just one cell ? (there is a connector to recharge where there is 3 wires,{ground , cell1 , cell1+cell2} ).

Anyway, if your source voltage is below 5v, it's normal you get worse results with the regulator on the chain. So this regulator is working properly, it is just the source that is not high enough ;)

It seems the information from the hacked soldered printer PCB track is not going to the raspberry pi. It is precisely the purpose of this hack, when data arrives too fast compare to the printer paper speed, the internal data buffer is overriding - resulting garbage printing... It is not easy to diagnose, but if by chance you have a scope, you could check if a square signal is present on the r-pi pin15. I see two solution to progress.

With a low baud rate, this phenomenon is less present. It means switch back the printer to 19200 bauds using the windows program (configure the com port with 115200, and change the baud rate to 19200), and edit the config.txt. The counter part is a slower print speed and vertical artifacts on the prints.

I could update the polapi.jar in order to output more diagnostic output on the console related to the printer stepper motor signal (or more elegant with a 'debug' flag in the config.txt).

To summarize, try to check if this wire is correctly solder, while I'll try to find few minutes to update the java code.

EDIT: I've been taking pictures for more than an hour and none of them came out corrupted, so I think the issue has been solved. It may have been related to a bad connection in the GPIO pins. So I think that I can claim victory!

The PolaPi has been powered by a USB cable from the PC, I just need to add a battery and it's done!

I really appreciate your support, thanks a lot Muth!

BTW: Is there a way to NOT to print the Linux booting messages? When I turn the Raspberry Pi on it automatically happens.

I'm back!

I've re-soldered the Stepping Motor cable, but the problem persists, corrupt characters come out when pressing the shooter (or corrupted images). The voltage is 5.2 and the baud rate is 115200.

Hello there, thanks a lot for your work :) I will try to make one of these.

I have a question regarding the battery, I'm not able to find the 3600 mAh where I live, but I see that you use a 4200 mAh battery in one of your pictures (and I found this one in my city: http://tinyurl.com/j78grxo)... Is this battery usable too? I would also like to know if I should use specific models of Raspberry Pi, the screen and printers (for example, is the following screen right for the project? http://tinyurl.com/znzeh83).

Cheers!

(Note: I don't have a big knowledge on electronics and I'm not an English native speaker.)

The choice of the battery is rather flexible. The important thing is to get at least 2~3 Amps on the 5v side. I choose a 2s lipo for several reasons. Because of the stored energy density, to have a more portable device. And the step-down regulator, when tuned to deliver 5v stop working when the battery reach 6v. It is convenient as the 3v per cell (3v x 2 : 2s battery pack) is the lower limit to not damage the lipo.

You can use as well a set of 6x AA batteries Ni-MH. It's heavier and energy density is less, but more robust and safe.

The choice of the screen is not fix also. It is used only as a 'view finder'. I still have to work to make a feature allowing reviewing and printing previous pictures. The one you shown seems suitable. You can choose to don't use a screen at all.

The raspberry pi 1 (A or B) might work. It you have already one, you can give a try. The version 2 is more powerfull and then more suitable for a Java program.

nb: I'm not a native English speaker either. Do not hesitate to send me a message for any question. It's help me improve the instructions/description.

About the battery, I would choose either a 7.4v Lipo, or a 7.2v Ni-MH. With a 1800 or 2000 mAh, you could keep the raspberry pi on for more than an hour. Both type of battery could deliver enough peak current. You can choose more mAh to last more. Finally, it is the printer while printing that consume the more. Don't forget the appropriate charger.

Unfortunately, I think you will need 6 AA batteries. 4 batteries gives ~4.8v, which it may be too low for the printer and Rpi. There is some step-up/step-down voltage regulators, but for a minimum of 3A it is not easy to find. However what is explained to use the 6xAA in the article is perfectly fine.

You could give a try with the B+ or A raspberry pi models. It should work, actually the java program seems not limited with memory. I still have an old B model. I should find a bit of time to try.

If you use 4 Alkaline AA batteries, it will work at the beginning, as the total voltage will be 1.5vx4, 6v. But during the discharge, then it will stop at 5.5v (/4= 1.375v), it's correspond to something like the half of the energy stored in the batteries. Despite they are not rechargeable, I think that's represent a quite short time.

With 4 Ni-MH batteries, even fully charged, you will not reach the 5.5v (1.3v x4 = 5.2v).

I forgot one of your question. I don't have model for the case, it's only made of corner rods, glass fiber plates and nylon crews ;)

im stuck, ive got the screen working, but how do i install the other programs? do i navigate to them on the command line interface, or put them on the sd card and somehow install that way? something tells me im in over my head...

This looks freaking awesome! I'm planing to build 1 for my girlfirend. Trying to learn and googling everything to be able to do it. Is the code in the github all the code you needed (with the other programs mentioned) to do the job? I really thank you for this job. I'll make you know if I succeed!

Thanks a lot Jandro!Yes, the Java code I wrote is entirely on Github. However, you'll need the PI4J library (http://pi4j.com/) and the camera program present in the raspbian linux (/opt/vc/bin/raspividyuv). I have to find few minutes to make an executable Jar file, it will save you the javac 'compilation' step.

If you use the adafruit SPI TFT display, in addition of the configuration, the fbcp program is needed to forward the camera preview to the TFT display linux frame buffer.

And finally fbcp and java could be started at startup by editing the /etc/rc.local file.

Thanks a lot for that info. I have more questions to ask you, I just wanna make sure I don't break anything :)

In the basic diagram I can see that the TFT screen is powered directly from the 5v regulator but in the 2nd photo after that, I can see red and black power cables from the Screen to the raspberry PI.

About the pins, I only know where to connect the button and the printerMotor, I have no clue in wich pins are connected the printer connections and the TFT screen connections (I have the mounted version of it, I could simply stick it to the raspberry pi but I'm afraid it wont leave space to the printer connections, you have it connected via cable)

I would love some extra info about the pin connections, I've been searching about but can't find it at the moment. I'll keep searching.

Btw I have all the parts and I'll be ready to build it once I know where goes each connection.

I updated the instructions and some pictures. As well as adding directly the executable Jar in Github. So no need to get the Pi4J library, it is included in the jar.

The screen had some artifacts, and I though the raspberry pi power supply of the GPIO could be too weak. But finally, it seems it doesn't matter where you get the 5v for the screen. 5v for the printer needs to be connected to the regulator as it could eat more than 1 amp.

I added a picture with the pinout of the printer.

If you have the ribbon cable, you can just plug the screen on the raspberry pi and still connect the GPIO. I'll make a log entry in few minutes with picture of the setup I used to redo the instructions.

Do not hesitate to send me a message and I'll try to help you. It will be too bad if you get the parts and be stuck.

I made the case from scratch, I'm sure there is plenty of other methods (and better ones). Actually, I used brass rods for the frame, but it could be the same if I had aluminium ones. For the plates, I had glass fiber, 1mm thickness plates. The same material of printed circuits, without the copper layer. It is very rigid and as the rods are not soldered, it gives the rigidity of the box. I thread/tap the holes I made on the metal rods to don't need a nut for the nylon screws.