Difference between pages "Projects/RFIDpop" and "Mendel90 3D Printer"

From ENTS
(Difference between pages)
Jump to: navigation, search
 
(Future Ideas)
 
Line 1: Line 1:
 +
{{Template:EquipmentPage |owner=ENTS |model=Mendel90 |serial=ENTS000001 |arrived=June 2013 |doesitwork=WORKING |contact= [[User:Hov]] [[User:KHawkings]] |where=Main Workroom |certification= YES |hackable= NO |value= $600 |itemphoto=[[File:Mendel90.jpg|350px|thumb|right|]]}}<br>
  
== RFID Enabled Pop Machine AKA Project "Pop-pi"==  
+
== Current State ==
 +
Currently working with small issues.  Interface is at http://members.ents.ca:5000
  
 +
== Who Can Certify You? ==
 +
[[User:Hov]]
 +
[[User:grelli]]
 +
[[User:KHawkings]]
  
== History ==
+
== Specifications ==
  
After the kind donation of a 70'sish Coca-Cola Vending machine, we started tearing into it to get it workingWhile there were a few issues off the start, it's in good mechanical order and tests showed it's power consumption was >50% less than the existing smaller pop machine in the space.
+
200mm by 200mm by 200mm build volumeThe X and Y are actually a little less than that but the Z is actually about 208mm.
  
One major problem was that the coin mechanism would not accept newer loonies and toonies.  A replacement mechanism would be $200 or more.  A bit pricy for a starving hackerspace, so we are doing what all good hackers do, overengineer a solution with parts at hand.  In this case, utilize the door RFID tags the members have anyways and use them to debit from a pre paid pop account.
+
== Equipment Settings ==
  
== Help Wanted ==
+
As long as the Slic3r settings match with the filament size temps the only other setting for the printer itself is the nozzle diameter. Current hot end is 0.4mm
 +
<p>
 +
When connecting to OctoPrint if the printer (the arduino) isn't connected to the RasPi then use:
 +
* Port: AUTO
 +
* Baudrate: 115200
  
Want to help out? Interested in learning something new and expanding your skill set?
+
Normally OctoPrint should be connected to the printer
  
Join the Pop-PI project!
+
If the options to upload or connect aren't there then you need to log in.  If you don't have a username/password then you probably haven't been certified.  Talk to [[User:Grelli]], [[User:Hov]] or [[User:KHawkings]]
  
We are looking for people with an interest in helping out with the following phases of the project. We will offer assistance and training for any piece involved.
+
== Troubleshooting Problems ==
 +
* Print not sticking to bed
 +
** Any Material
 +
*** If the base or first layer of a print is relatively small then using the brim setting in Slic3r might help.  Turn it on if you're not using it or increase it's size if you already are.  The brim setting is in mm and it's the distance from the print base it builds the brim out to.  Depending on the print this could be relatively high (20 mm).
 +
*** Check the heated bed settings.  ABS needs ~100C or perhaps even higher while PLA or PLA/HPA works best around 60C
 +
*** If you're printing in small layers (<.3mm) then check the first print layer setting in Slic3r.  Set this to a higher value.  The gcode will put down a thicker layer for only the first layer to help the print adhere to the bed.
 +
** ABS
 +
*** To adhere to glass well you need to use a "slurry" of ABS and Acetone.  This puts a thin film of ABS on the glass when it dries and helps the print adhere. When the bed cools this will release and it's not a problem getting the print off the bed.  There should be a small mason jar with the mixture in the printer cabinet.
 +
** PLA or PLA/PHA (ColorFabb)
 +
*** Since there isn't a readily available solvent for PLA the adherence to the bed seems to be most affected by how clean the bed is.  If there are any traces of ABS then clean the bed thoroughly with Acetone and then clean it again with isoproplyl.  Any oils/dirt/dust/anything on the bed seems to affect the adherence a lot.  PLA seems to adhere better than PLA/HPA but both work on the glass bed if you prepare it properly.
 +
* Printing won't start from Octoprint
 +
** Octoprint, for various reasons, disconnects from the Arduino.  Manually homing the Z axis is an example of a command that will disconnect the Arduino - not sure why yet.  Can be fixed by reconnecting from Octoprint.
  
Display Design - ART - Replace the coke sign with a plexiglass version, needs to be able to show a screen.
+
== Modifications ==
Screen Saver - Screen saver that would display fake ad's
+
The firmware has been modified to make extruder 1 (of extruders 0 and 1) behave like extruder 0.  There was a magic smoke event that cooked the current limiting resistor for the extruder 0 heater.
Screen mount - Mount a monitor to the outer door
+
Outer Shell Design - self explanatory
+
PHP Web Interface - only needs to tie into Pay Pal
+
  
 +
== What Could it Use? ==
  
 +
* [[User:KHawkings]] will be working on a Bowden Tube based extruder to move the stepper and cold end off the X-Carriage
 +
* A mounting system/brackets/case for the LCD screen
 +
* A Cover/Case/Fan Mount for the electronics
 +
* The X carriage is noisy.  It's probably because the linear rods are slightly smaller than the bearings.  8mm rods should be swapped in.
 +
* Mounting system/brackets for the RasPi and USB Hub
 +
* Carrying Handle
 +
* Replacement of the resistor for extruder 0 (I think it's a 0805 smd but no idea on the resistance).
  
== Mechanics ==
+
If you're willing to tackle any of these please let someone know.
  
The machine is a Vendo V384. [http://soda-machines.com/index.php?option=com_content&task=view&id=554&Itemid=14 Soda-Machines.com]
+
== Working on it ==
 +
* [[User:KHawkings]] - Bowden Tube extruder
  
Oricanus did much of the work to figure out the mechanics of the machine and how to bypass the coin mech to allow us to dispense product.  It's actually very easy.  On the connector to the coin mech, short pins 1-7 together (all the time) and then momentarily contact pins 1-3 and then make your selection.
+
== Known Problems ==
 +
If the hot end stops making itself hot then unplug and plug back in the connectors for the hot end on the x-carriage (the 4 pin connectors to the protoboards)
  
The original coke sign is a plexiglass insert, easily replacedBehind it is a florecent ballast with a 120v supply line running to it.
+
Occasionally the filament stops being extruded.  In order of frequency it's probably:
 +
* The filament has been "stripped" on the hobbed bolt.  Take the panel on the right off the extruder, remove the big gear and hobbed bolt and clean themThere was probably an issue with the filament feeding that caused this.
 +
* The small gear has moved/shifted/started to slip on the stepper motor shaft. 
 +
* The connector to the stepper motor is loose.  Reseat it.
  
Photo of the internal electromechanical schematic:
+
== Future Ideas ==
[[Media:RFIDpop_mech_schematic.jpg]]
+
* Add more feedback/failsafe controls.
 +
** Additional limit switches w/ failsafe wiring.
 +
** Extra temperature sensors
 +
** Rotary encoder or other measuring tool for filament
 +
** Reporting code to feed back on alarms, such as limit switch failure.
  
== Feature Roadmap ==
+
== Useful Software / Websites ==
 +
[http://www.freecadweb.org/ FreeCAD] - A CAD program that can produce STLs and interchange many CAD formats (even some support for OpenSCAD)
  
Planned and Implemented features, if you would like to participate or learn about any of the features contact the people who are associated with the feature or talk to one of us.
+
[http://slic3r.org/ Slic3r] - A slicing tool preferred for use with the ENTS Mendel90 (config file below).
  
 +
[http://cloud.netfabb.com/ NetFabb STL Repair] - A tool for repairing broken STL files.
  
   
+
[http://www.thingiverse.com/ Thingiverse] - A place to find things to print. Don't reinvent the wheel if you don't have to (or unless you want to)!
<table border = 1 width = 100%>
+
    <tr>
+
        <th>Feature
+
        </th>
+
        <th>Description
+
        </th>
+
        <th>Version
+
        </th>
+
        <th>Complete
+
        </th>
+
        <th></th>
+
    </tr>
+
    <tr>
+
        <td>Read RFID
+
        </td>
+
        <td>
+
            Ability to read members&#39;s RFID tag</td>
+
        <td>1
+
        </td>
+
        <td>Yes
+
        </td>
+
      <td>Render, Colin
+
        </td>
+
    </tr>
+
 
+
    <tr>
+
        <td>Credit Vending Machine</td>
+
        <td>
+
            Ability to credit the vending machine to allow the dispencing of caffeene</td>
+
        <td>1</td>
+
        <td>Yes</td>
+
    </tr>
+
 
+
    <tr>
+
        <td>Track Member Account</td>
+
        <td>
+
            Ability to track member&#39;s pop account balance</td>
+
        <td>1</td>
+
        <td>Yes</td>
+
<td>Colin
+
        </td>
+
    </tr>
+
 
+
    <tr>
+
        <td>Deduct From Member Account</td>
+
        <td>
+
            Ability to deduct a credit from a members&#39;s account balance</td>
+
        <td>1</td>
+
        <td>Yes</td>
+
<td> Colin
+
        </td>
+
    </tr>
+
 
+
    <tr>
+
        <td>Email Balance to Member</td>
+
        <td>
+
            Ability to email a balance to a member&#39;s account from pop.pi@ents.ca</td>
+
        <td>2</td>
+
        <td>No</td>
+
<td>Render, Colin
+
        </td>
+
    </tr>
+
 
+
    <tr>
+
        <td>Member Account Top Up</td>
+
        <td>
+
            Ability to top up a members account.</td>
+
        <td>2</td>
+
        <td>No</td>
+
<td>Colin
+
        </td>
+
    </tr>
+
 
+
    <tr>
+
        <td>Pay Pal Top Up</td>
+
        <td>
+
            Ability to top up a members account from paypal payment</td>
+
        <td>TBD</td>
+
        <td>No</td>
+
<td>        </td>
+
    </tr>
+
 
+
    <tr>
+
        <td>Video Display Balance</td>
+
        <td>
+
            Video display member balance information</td>
+
        <td>3</td>
+
        <td>No</td>
+
<td></td>
+
    </tr>
+
 
+
    <tr>
+
        <td>Video Advertizing</td>
+
        <td>
+
            Make use of the video monitor for displaying ad&#39;s</td>
+
        <td>4</td>
+
        <td>No</td>
+
<td></td>
+
    </tr>
+
 
+
    <tr>
+
        <td>Mounting Brackets</td>
+
        <td>3D Printed Mounting Brackets Modeled to hold the PI and Relay</td>
+
        <td>2</td>
+
        <td>No</td>
+
<td></td>
+
    </tr>
+
    <tr>
+
        <td>RFID Mounting</td>
+
        <td>3D Printed Mounting Brackets Modeled to hold the RFID where the Change was inserted.</td>
+
        <td>3</td>
+
        <td>No</td>
+
<td></td>
+
    </tr> 
+
    <tr>
+
        <td>Bitcoin Payments</td>
+
        <td>Have the ability to take bitcoin payments.</td>
+
        <td>TBD</td>
+
        <td>No</td>
+
<td></td>
+
</tr>
+
    <tr>
+
        <td>Speaker Feedback</td>
+
        <td>Make use of the audio jack on the pi to output auditory feedback on payment.</br>
+
Sounds to be determined.
+
(Lottery Machine noises, Portal Sounds)
+
</td>
+
        <td>TBD</td>
+
        <td>No</td>
+
<td></td>
+
  
    </tr>
+
== Support Files ==
    <tr>
+
        <td>Motion Detector</td>
+
        <td>Make use of a motion detector as a type of Occupancy sensor for the display screen as well as feedback on when to enable/disable the rfid reader.</td>
+
        <td>TBD</td>
+
        <td>No</td>
+
<td></td>
+
    </tr>
+
</table>
+
  
API to interface to paypapal.
+
* [[File:Einstein-Marlin.zip]]
 
+
* [[File:Mendel90.zip]] Slic3r configuration file
3D Printed mount for the RFID reader.
+
* [[File:Mendel90STL.zip]] STL's for all the printed partsIncludes a modified bar clamp for a different end stop.  This file should be modified slightly by Kyle (he has the modeling source).   If there is a filename with "fixed" in its title then use it since it was repaired with NetFabb.
 
+
== PI Pinout Assignments ==
+
 
+
In Progress.
+
<Table>
+
<tr>
+
<th>Assignment</th>
+
<th>Pin</th>
+
<th>Pin</th>
+
<th>Assignment</th>
+
</tr>
+
<tr>
+
<td>3v3 to LV on Logic Converter</td><td>1</td><td>2</td><td>5V to HV on logic converter</td>
+
</tr>
+
<tr>
+
<td></td><td>3</td><td>4</td><td>5V to + on Relay</td>
+
</tr>
+
<tr>
+
<td></td><td>5</td><td>6</td><td></td>
+
</tr>
+
<tr>
+
<td></td><td>7</td><td>8</td><td>GND to Logic Converter</td>
+
</tr>
+
<tr>
+
<td></td><td>9</td><td>12</td><td>To S on Relay</td>
+
</tr>
+
<tr>
+
<td></td><td>11</td><td>14</td><td></td>
+
</tr>
+
<tr>
+
<td></td><td>13</td><td>14</td><td></td>
+
</tr>
+
<tr>
+
<td></td><td>15</td><td>16</td><td></td>
+
</tr>
+
<tr>
+
<td></td><td>17</td><td>18</td><td></td>
+
</tr>
+
<tr>
+
<td></td><td>19</td><td>20</td><td></td>
+
</tr>
+
<tr>
+
<td></td><td>21</td><td>22</td><td></td>
+
</tr>
+
<tr>
+
<td></td><td>23</td><td>24</td><td></td>
+
</tr>
+
<tr>
+
<td></td><td>25</td><td>26</td><td></td>
+
</tr>
+
</table>
+
 
+
== Fritzing Schematic ==
+
Fritzing can be found at http://fritzing.org/download/
+
 
+
 
+
 
+
 
+
 
+
 
+
 
+
https://github.com/adafruit/Fritzing-Library
+
 
+
== V1 ==
+
 
+
Version 1 is to basically setup the nessecary hardware to replace the coin mech and to use the RFID tags to debit from an account with little or no modification to the existing electro mechanical dispensing system.  Various options were considered but parts on hand and flexibility came together in the following:
+
 
+
*Raspberry Pi running Raspian 2013-09-25 (Render)
+
*Parallax Serial RFID Reader (Render)
+
*TTL level shifter for 5v RFID reader to talk to 3.3v Pi serial gpio pins (Colin)
+
*Solid state relay board (on order)
+
*HDMI to DVI Adapter (Render)
+
*Random LCD monitor from around the space
+
*Powered USB hub (Render)
+
 
+
 
+
Current goals: Users provide cash or paypal to director who adds to account for thier tag via web interface or 'credit' tags on the pi.
+
 
+
On scan, Pi checks database for balance.  If sufficient balance, deduct $1 and dispense product.  If insufficent balance, then display an unhappy message .  Once product is dispensed display the username and balance remaining for 15 seconds.  When 'idle' the screen will goto a slide show of comical and ficticious beverages (Duff, Slurm, Nukacola, etc)
+
 
+
Curent Status: In prototype.  RFID via GPIO working.  GPIO relay control working. Rough software  proof of concept working.
+
 
+
To-Do:
+
*Clean machine mechanics.  Lube everything inside.  Test all mechanics
+
*Paypal integration
+
*Web Front End for manual account balance adjustment
+
*Custom graphics for sides, front
+
*Custom made circut boards for sturdy integration
+
*3d print mounting brackets once layout confirmed
+
 
+
== V2 ==
+
 
+
Feature requests/ideas:
+
 
+
*Product remaining display
+
*Tie in with mastercontrol
+
*Ability to paypal monies directly to the pi to increase balance (or user added code via web interface)
+
*Random dispense mode (slot machine)
+
*Ability to dispense products at different prices (water $.25, beer $5)
+
*Consumption graphs
+
 
+
 
+
== Useful Links ==
+
 
+
[http://www.susa.net/wordpress/2012/06/raspberry-pi-relay-using-gpio/ http://www.susa.net/wordpress/2012/06/raspberry-pi-relay-using-gpio/]
+
 
+
[http://soda-machines.com/index.php?option=com_content&task=view&id=554&Itemid=14 http://soda-machines.com/index.php?option=com_content&task=view&id=554&Itemid=14]
+
 
+
[http://stackoverflow.com/questions/372885/how-do-i-connect-to-a-mysql-database-in-python http://stackoverflow.com/questions/372885/how-do-i-connect-to-a-mysql-database-in-python]
+
 
+
[http://www.sundh.com/blog/2013/09/connect-parallax-rfid-to-raspberry-pi/ http://www.sundh.com/blog/2013/09/connect-parallax-rfid-to-raspberry-pi/]
+
 
+
[http://zetcode.com/db/mysqlpython/ http://zetcode.com/db/mysqlpython/]
+
 
+
[http://openmicros.org/index.php/articles/94-ciseco-product-documentation/raspberry-pi/217-getting-started-with-raspberry-pi-gpio-and-python http://openmicros.org/index.php/articles/94-ciseco-product-documentation/raspberry-pi/217-getting-started-with-raspberry-pi-gpio-and-python]
+
 
+
[https://developer.paypal.com/
+
https://developer.paypal.com/]
+
 
+
== Notes ==
+
 
+
Power is no problem.  The existing light ballast for the original backlight is 120v line that is perfectly placed to power everything.
+
 
+
There is lots of room to mount everything behind plexiglass on the outer door or against the inner doorApproximatly 4" depth is available
+
 
+
Need to also write up how to properly load product or else bad things happen
+
 
+
A large number of vending machines use the same interface for the 'credit' function.  This project can be easily adapted to other models of vending machines. Could be useful for other hackerspaces.
+
 
+
== Code Repository ==
+
 
+
Code is GPLv2 and available on Github at [https://github.com/renderlab/ENTS-Pop-Pi https://github.com/renderlab/ENTS-Pop-Pi]
+

Revision as of 22:28, 16 February 2014

Back to list of Equipment

Mendel90.jpg

Contents

Label

Mendel90 3D Printer http://ents.ca/index.php/Mendel90_3D_Printer

General

  • Owner/Loaner: ENTS
  • Make/Model: Mendel90
  • Usability: WORKING
  • Contact: User:Hov User:KHawkings
  • Where: Main Workroom
  • Certification Needed: YES
  • Hackable: NO
  • Estimated Value: $600

Current State

Currently working with small issues. Interface is at http://members.ents.ca:5000

Who Can Certify You?

User:Hov User:grelli User:KHawkings

Specifications

200mm by 200mm by 200mm build volume. The X and Y are actually a little less than that but the Z is actually about 208mm.

Equipment Settings

As long as the Slic3r settings match with the filament size temps the only other setting for the printer itself is the nozzle diameter. Current hot end is 0.4mm

When connecting to OctoPrint if the printer (the arduino) isn't connected to the RasPi then use:

  • Port: AUTO
  • Baudrate: 115200
Normally OctoPrint should be connected to the printer If the options to upload or connect aren't there then you need to log in. If you don't have a username/password then you probably haven't been certified. Talk to User:Grelli, User:Hov or User:KHawkings

Troubleshooting Problems

  • Print not sticking to bed
    • Any Material
      • If the base or first layer of a print is relatively small then using the brim setting in Slic3r might help. Turn it on if you're not using it or increase it's size if you already are. The brim setting is in mm and it's the distance from the print base it builds the brim out to. Depending on the print this could be relatively high (20 mm).
      • Check the heated bed settings. ABS needs ~100C or perhaps even higher while PLA or PLA/HPA works best around 60C
      • If you're printing in small layers (<.3mm) then check the first print layer setting in Slic3r. Set this to a higher value. The gcode will put down a thicker layer for only the first layer to help the print adhere to the bed.
    • ABS
      • To adhere to glass well you need to use a "slurry" of ABS and Acetone. This puts a thin film of ABS on the glass when it dries and helps the print adhere. When the bed cools this will release and it's not a problem getting the print off the bed. There should be a small mason jar with the mixture in the printer cabinet.
    • PLA or PLA/PHA (ColorFabb)
      • Since there isn't a readily available solvent for PLA the adherence to the bed seems to be most affected by how clean the bed is. If there are any traces of ABS then clean the bed thoroughly with Acetone and then clean it again with isoproplyl. Any oils/dirt/dust/anything on the bed seems to affect the adherence a lot. PLA seems to adhere better than PLA/HPA but both work on the glass bed if you prepare it properly.
  • Printing won't start from Octoprint
    • Octoprint, for various reasons, disconnects from the Arduino. Manually homing the Z axis is an example of a command that will disconnect the Arduino - not sure why yet. Can be fixed by reconnecting from Octoprint.

Modifications

The firmware has been modified to make extruder 1 (of extruders 0 and 1) behave like extruder 0. There was a magic smoke event that cooked the current limiting resistor for the extruder 0 heater.

What Could it Use?

  • User:KHawkings will be working on a Bowden Tube based extruder to move the stepper and cold end off the X-Carriage
  • A mounting system/brackets/case for the LCD screen
  • A Cover/Case/Fan Mount for the electronics
  • The X carriage is noisy. It's probably because the linear rods are slightly smaller than the bearings. 8mm rods should be swapped in.
  • Mounting system/brackets for the RasPi and USB Hub
  • Carrying Handle
  • Replacement of the resistor for extruder 0 (I think it's a 0805 smd but no idea on the resistance).

If you're willing to tackle any of these please let someone know.

Working on it

Known Problems

If the hot end stops making itself hot then unplug and plug back in the connectors for the hot end on the x-carriage (the 4 pin connectors to the protoboards)

Occasionally the filament stops being extruded. In order of frequency it's probably:

  • The filament has been "stripped" on the hobbed bolt. Take the panel on the right off the extruder, remove the big gear and hobbed bolt and clean them. There was probably an issue with the filament feeding that caused this.
  • The small gear has moved/shifted/started to slip on the stepper motor shaft.
  • The connector to the stepper motor is loose. Reseat it.

Future Ideas

  • Add more feedback/failsafe controls.
    • Additional limit switches w/ failsafe wiring.
    • Extra temperature sensors
    • Rotary encoder or other measuring tool for filament
    • Reporting code to feed back on alarms, such as limit switch failure.

Useful Software / Websites

FreeCAD - A CAD program that can produce STLs and interchange many CAD formats (even some support for OpenSCAD)

Slic3r - A slicing tool preferred for use with the ENTS Mendel90 (config file below).

NetFabb STL Repair - A tool for repairing broken STL files.

Thingiverse - A place to find things to print. Don't reinvent the wheel if you don't have to (or unless you want to)!

Support Files

  • File:Einstein-Marlin.zip
  • File:Mendel90.zip Slic3r configuration file
  • File:Mendel90STL.zip STL's for all the printed parts. Includes a modified bar clamp for a different end stop. This file should be modified slightly by Kyle (he has the modeling source). If there is a filename with "fixed" in its title then use it since it was repaired with NetFabb.

Personal tools
Namespaces

Variants
Actions
Navigation
Members
Toolbox