User Tools

Site Tools


raspberry-pi
A PCRE internal error occured. This might be caused by a faulty plugin

===== Using a Raspberry Pi as a Host ===== {{wiki:jitsbuild:with-raspberry-pi.png?800}} ==== Why? ==== The Raspberry Pi is very small. (It's about the same size as the Azteeg controller; in the photo above it's hiding in the background, between the printer and the monitor.) It's so small that it could be embedded into the printer itself, making the Bukobot completely free-standing (except for monitor, keyboard, and mouse). It can also connect to a network, perhaps allowing the user to run the printer from a web browser on another computer. The cost to do all this is very small. Current US prices: * Raspberry Pi, $35 * Power supply, $6 (adafruit has a nice one) * SD card, $8 * cables, case, keyboard, mouse, hub, maybe $50 total * monitor, maybe $150 (but see below) Of course you may already have some of the above. ==== Parts Required ==== * Raspberry Pi, Model B, with 512MB of RAM * High quality power supply for same, 5V, at least 1A, plus micro USB cable to connect it to the Pi * SD card, at least 8GB, preferably class 10 or better * Powered USB hub * Keyboard, USB (must be a wired keyboard, don't try this with a wireless one, at least not at first) * Mouse, USB (wired, at least at first) * Monitor, HDMI, with HDMI cable (or see below) * Ethernet cable, with Internet on the other end (do not try to use wireless, at least at first) * Mini USB cable to connect Pi to printer (should be included with printer) * Printer (the Bukobot is highly recommended) One of the primary reasons for having problems with a Raspberry Pi is the power supply. There are many different power supplies on the market (most smartphones and similar small devices use this type) and a lot of these power supplies are of poor quality. The Pi needs a high-quality power supply, and it must be rated at one amp or more. The adafruit unit (their [[https://www.adafruit.com/products/501|#501]]) is recommended by Lady Ada, so it's a good one (and the price is good too). If you intend to connect the Azteeg, a keyboard, and a mouse to the Pi then you'll need a USB hub for sure (the Pi only has two USB ports). Might as well make that a powered hub and be sure you won't overwhelm the Pi's power supply. (For not much more, you could instead get a powered hub that also has card slots, if you think you might want to connect memory cards to the Pi for some reason. The Pi does have a built-in SD card slot, but you boot from that and can't remove the card while the Pi is running). === Video Options === For best picture quality, use a monitor (or high-def television) with an HDMI connection. The Pi can do 1080p resolution. If you have a monitor sitting around that has VGA input but not HDMI, you can use a [[http://www.farnell.com/datasheets/1669934.pdf|Pi-View]] adapter. (The system shown above is using one of these.) You can get these from any Farnell/element14 affiliate (Newark in the U.S. currently has these for about $33). Also now available from Adafruit: [[https://www.adafruit.com/products/1151|HDMI to VGA Video + Audio Adapter]], which also has audio output, and costs even less. Of course the Pi also has a standard-definition TV output ("composite") through its RCA jack, that can be connected to an old-fashioned television. It's low resolution, but perhaps sufficient to get the Pi set up and running headless. (Anyone try this?) You will need a monitor to get the Pi set up, and perhaps to administer and maintain it later. (Unless you know how to use SSH and want to do everything from the command line.) But if you set up the Pi to run headless (using a web interface, for example), you wouldn't need to keep a monitor connected all the time, so you could temporarily borrow a monitor from somewhere else and not have to buy one just for your Bukobot. Also, many monitors and TVs have multiple inputs, and can be connected to more than one computer at a time. Just press the input button on the display to switch between computers. ==== Getting Started ==== (In all of the following, it is assumed that you are using the default username, pi. If you use a different user name, you may have to change some of the things below, replacing pi with your username. You can wait to set up a different user name until you have gotten the Pi running and tested it for a bit.) Download the latest version of [[http://www.raspberrypi.org/downloads|Raspbian Wheezy]] (but not the soft-float version). Follow the directions on that page to put the image on the SD card. Note the default user name and password. Follow the directions on that page to sync the filesystem so that the card can be safely removed from the computer. Insert the card into the Pi. **Alternatively**, you can download the new NOOBS installer shown on that page, and follow the directions there to put that on your 8GB card. Or, for $40 you can buy the new package that contains one Raspberry Pi and one NOOBS card (but be warned, the card that comes with that package only holds 4GB and the directions below would have to be modified so that the card doesn't get too full, and nobody has documented that yet). If you use NOOBS, select Raspian Wheezy when it asks you. Connect the powered USB hub to one of the two USB ports on one end of the Pi. Connect an Ethernet cable to the Pi's Ethernet jack (next to the USB ports). Connect the other end of the Ethernet cable to a working Internet connection. Connect the wired keyboard and the wired mouse to the powered USB hub. Apply power to the hub. Don't connect the Azteeg controller to the hub yet. Connect the monitor to the Pi's HDMI jack with the HDMI cable. Turn the monitor on. Connect the Pi to its power supply using the micro USB cable, and plug the power supply in. (This is the closest thing you have to an on/off switch on the Pi; always remember to power down the Pi through its menu before removing power.) Watch the monitor. See the text fly by as the Pi boots up. Eventually, a menu should appear. If it doesn't, troubleshoot. (You can ask for help in the Linux Specific Software section of the forum. Don't be intimidated by this software; millions of people have successfully gotten Pis running, including a lot of nine-year-old kids.) {{wiki:jitsbuild:raspi-config.png}} This menu is navigated with the up and down arrows, <Tab>, and <Enter>. First, try to update this menu program (update). Use the menu to set the graphics memory to 32MB (memory_split). Use the menu to tell the Pi to boot into the graphical user interface on next boot (boot_behaviour). Use the menu to tell the Pi to expand its file system to maximum size on next boot (expand_rootfs). Select your keyboard, locale, and time zone (configure_keyboard, change_locale, and change_timezone). (Remember that the Raspberry Pi comes from England, and the defaults assume UK and GB and the like, and you should change those values if you live somewhere else in the world.) Use the menu to reboot (tab over to <Finish>). Watch it boot again. It should boot into the LXDE desktop environment. If it doesn't, troubleshoot. Start the Midori web browser and verify that the Pi can see the Internet. Browse to this page. Follow the rest of these directions. At this point, it's probably safe to switch to a wireless keyboard and/or mouse if you prefer those. It's probably safe to switch to a wireless Internet connection too (but some wi-fi units may not work with the Pi, so do the research and do the testing). (If you want to run that configuration menu again at a later date, open a terminal and type: <code> sudo raspi-config </code> However, it may not work properly if you have heavily reconfigured the system in the meantime, so try to get all of the configuration choices set properly the first time you run it.) ==== Install more software ==== Start a terminal. (There's an icon for LXTerminal on the Desktop. Remember that for this terminal program, and for many other common ones, the keyboard shortcut for pasting text is Shift-Ctrl-V instead of Ctrl-V.) In all the following, if it asks questions, say yes. (Hitting <Enter> generally will work.) In the terminal window, use the following command to update the software: <code> sudo apt-get update && sudo apt-get upgrade </code> If it finds updated packages to install, and asks if it should do so, hit <Enter> to say yes. This may run for a while. (You should do this periodically to get the latest software.) When that's done, <code> sudo apt-get install arduino git libgtk2.0-dev synaptic pistore python-serial python-wxgtk2.8 \ python-pyglet python-tk build-essential libwxgtk2.8-dev libwx-perl libmodule-build-perl \ libnet-dbus-perl curl cpanminus gcc libsdl1.2-dev </code> (That's all one command, copy and paste the whole thing.) Next, this command will install lots of potentially useful things: <code> sudo apt-get install task-lxde-desktop </code> That command (which may run for a good long while) will install a variety of utilities that are handy for maintaining and managing this machine, and a collection of common applications. This includes the complete LibreOffice suite, and a web browser called IceWeasel (a version of Firefox). But, be warned: Both of these are heavy users of memory, which is in short supply on the Pi. They will probably run, but may run slowly. Don't even think of running these on a 256MB Pi. === Next... === At this point, your Raspberry Pi is set up as a modern general-purpose desktop computer. Test it for a bit. Get used to its quirks. It's roughly equivalent in power to a high-end desktop system from the 1990's, so don't expect it to be fast. Startup times may annoy you, but you won't be starting programs very often; you will be starting your host software and letting it run for minutes or hours as it tells your printer how to make things. You should change the default system password. You may also want to create a new user (other than 'pi') and disable the pi account; these are all standard security measures to protect your system from evil. At this point, you can connect the Azteeg controller. Plug it into your powered USB hub. === Install software to run the Bukobot === The only software you need to run on the Pi is your host software. This is the software that talks to the Azteeg controller and transfers the contents of your G-code file to it, and may also monitor the printer's operations. Many people also run other kinds of software on their host machine, such as slicing software. It's best not to do this on the Pi, as it may not have enough memory and may slow down tremendously. If you have another computer to do slicing on (highly recommended), you can make a G-code file on that computer and transfer it to the Pi, and then you don't need slicing software like skeinforge or Slic3r on the Pi. The Pi is network connected, and can also talk to USB drives, so there are lots of ways of getting files across. If you have the Azteeg X3, you can also put files on a microSD card and plug the card into the X3, or use your host software to copy gcode files onto the microSD card through the USB cable (but be warned, this is very slow). == pronterface == Pronterface is a host control program. It's a good idea to install pronterface, even if you intend to use a different host control program; it's light on resource requirements, and gives you something to switch to if you suspect that your other host control program might be causing problems. (If you switch to a different host program and the problem doesn't go away, then the problem is probably being caused by something other than the host program.) Install pronterface (Printrun directory) into your home directory: <code> cd ~ git clone git://github.com/kliment/Printrun.git </code> You can put an icon on the Desktop for launching Pronterface. On the Desktop, create a new file (right-click in an empty area of the Desktop, select Create new... Blank file), name it pronterface.desktop, right-click on the file and select LeafPad, then paste the following text into it: <code> [Desktop Entry] Name=Pronterface Comment=3D Printer Exec=/usr/bin/python /home/pi/Printrun/pronterface.py Icon=/home/pi/Printrun/pronsole.ico Terminal=false Type=Application Categories=Application;Development; </code> and save the file. (If you are using a different username than pi, change that in two places above.) == slicers == Slic3r and skeinforge are programs for slicing (turning shapes into G-code files so they can be printed). It's best to do this on a machine other than the Pi, but if you want to try them on the Pi [[raspberry-pi-slice|here's how to install them]]. ==== How to run the programs ==== === Getting files onto the Pi === Many people use the Pi only for controlling the printer, using a host program like Pronterface, and do all their slicing on a different machine that has a lot more memory and speed. G-code files (.gcode extension) are generated on the other machine and transferred to the Pi through the network or by other means (USB thumb drive, etc.). It's trivial to access shared network folders from the Pi: start the File Manager, and do Go >> Network Drives. === Arduino === To run Arduino (for example, if you want to put a different firmware on the Azteeg controller), find Arduino in the main menu (click the start icon at lower left): Start >> Programming >> Arduino. (Connect Pi to Azteeg first, if you haven't already. Use the powered hub.) You have to select the board type (Arduino Mega 2560), the COM port (probably only one listed there), and the baud rate (250000). For more details see [[http://reprap.org/wiki/Azteeg_X3|here]]. (You don't have to install any drivers.) === pronterface === Create a desktop icon as described above and use that to launch pronterface, or go to ~/Printrun and run pronterface.py: <code> cd ~/Printrun ./pronterface.py </code> The first time you run it, you have to tell it the board type and COM port. There is also a command-line interface (pronsole.py) and a web browser interface for pronterface. See [[https://github.com/kliment/Printrun|here]] for more information. There are also other host softwares available for running your printer. Those ought to be described by someone who has actually used them on a Pi. ==== 256MB Raspberry Pi ==== (This section is here for completeness, but remember that the 256MB model has been out of production for months, and you can get a new 512MB model for only $35. Time and effort expended on getting things working on the obsolete model is not of great value -- how much is your time worth, anyway? In any case, some of the things described below may be useful to you no matter which model you use.) The original 256MB Raspberry Pi is capable of running Pronterface as well, following the instructions above (might be a good idea to use 16MB graphics memory instead of 32MB). It is possible, at least in some cases, to directly connect the Azteeg X3 to the Raspberry Pi without a powered hub (but this is risky -- if your print suddenly goes all pear-shaped and gets ruined, it's time to get a powered hub, they're not expensive). By installing tightvnc via: <code> sudo apt-get install tightvncserver xfonts-base </code> It is possible to connect to the Raspberry Pi running Pronterface from any computer on the network, providing a 'print over ethernet' type of capability. Additionally, it is possible to install usb-redirector, which can convert the Raspberry Pi into an ethernet-to-USB bridge, allowing any machine on the network to directly control the printer. This has been demonstrated to work with Pronterface, but efforts are still ongoing to use Repetier-Host in a similar manner. --------------------------- More experiments to come. //The contents of this page may be re-used under any of the following licenses: The [[http://creativecommons.org/licenses/by-sa/3.0/|Creative Commons Attribution-ShareAlike 3.0 Unported License (CC BY-SA 3.0)]], or the [[http://www.gnu.org/copyleft/fdl.html|GNU Free Documentation License (GFDL, version 1.2 or later)]].//

raspberry-pi.1378588131.txt.gz · Last modified: 2013/09/07 16:08 by jit