1 of 22

© Brigham Young University–Idaho

Pancake Printer

ECEN 361 - Fall, 2023

Ryan Whitehead, Caleb Hall, Esteban Lopez

© Brigham Young University-Idaho

0

2 of 22

Project Overview

  • Prints designs over a griddle using pancake batter
  • Scope
    • Features
      • SD card reader
      • Fine print control
      • Fast print rate
    • Features we cut, why?
      • Settings
      • LCD touchscreen display

© Brigham Young University-Idaho

1

3 of 22

Project Overview

  • Design Process
    • Hardware
    • Software
    • Challenges
    • Outcomes

© Brigham Young University-Idaho

2

4 of 22

Hardware Design

© Brigham Young University-Idaho

3

5 of 22

Hardware Design

  • Gantry
  • Movement/Control
  • Processing

© Brigham Young University-Idaho

4

6 of 22

Gantry

  • Modified Ender 3 to save costs
  • 3D printed mounts for extruder and controller board
    • Softwares used
      • Fusion 360, Cura
    • TINA2S 3D printer
  • Stepper motors move print head along X and Y axis

© Brigham Young University-Idaho

5

7 of 22

Movement/Control

  • Positioning
    • Nema 17 Stepper Motors
    • Powered w/ 24V DC power Supply
    • Each pulse of the step pin rotates 0.1125 degrees
    • 20 steps/mm - belt drive
  • Extrusion Valve Servo
    • Lifts/Lowers plunger to block/unblock batter from coming out.
    • Batter held in a half liter syringe
    • Chopstick with rubber attachment on end.
    • Powered w/ 5V using buck converter

© Brigham Young University-Idaho

6

8 of 22

Processing

  • SD card reader
    • SPI serial connection with touchscreen LCD and SD card module
  • STM32L476RG MCU with Arduino compatibility
  • CNC Arduino shield
  • DRV8825 drives stepper motors
  • 24v cooling fan

© Brigham Young University-Idaho

7

9 of 22

Software Design

FreeRTOS

Interface

Movement

© Brigham Young University-Idaho

8

10 of 22

FreeRTOS

  • Separated into:
    • 2 tasks
      • Parser Task
      • Movement Task
    • 2 main queues
      • Command Queue
        • Stores commands as integers
      • Parameter Queue
        • Stores additional commands parameters
  • Why?
    • RTOS allows us the ability to organize processes into task and allow the OS to worry about scheduling.
    • It also allows us to scale the project in the future without creating an overly messy, disorganized main loop.
    • Allows for constant movement
      • When SD reading slower than movement commands, the queue provides a buffer.
      • When SD reading faster, the queue fills up.

© Brigham Young University-Idaho

9

11 of 22

Interface

  • Parser Task
    • translate gcode into actual movement commands for our motors
    • puts gcode commands into our command queue for move by move instructions to the movement task.
  • Interpreter Function
    • Pulls from the output of the SD Driver to grab organize commands into various command queues and pull vital data from the command, such as the x and y float or the speed set integer.
    • The command and parameters are then put into their respective queues.
  • SD Driver
    • We read lines from the only as needed, i.e. when the queue has space and the file still has lines left to be read.

© Brigham Young University-Idaho

10

12 of 22

Movement

  • Movement Task
    • Gets the next command from the queue, and any parameters needed for the command
    • Calls the appropriate function with associated parameters in the movement driver
  • Movement Driver
    • Home - Moves to printers origin using the limit switches.
    • Move(X, Y) - Moves from current position to specified coordinate. Calculates how to move there in a straight line.
    • SetSpeed(speed) - Changes how fast stepper motors move.
    • Wait(ms) - Delay next command for certain amount of time.
    • Extruder On/Off - Calculates angle of servo needed to open and close extruder control valve.

© Brigham Young University-Idaho

11

13 of 22

Additional Software Information

  • Main/Initialization
    • Initializes stepper motors
    • Mounts SD card
    • Opens file containing g-code commands
    • Starts tasks
    • Gives control to FreeRTOS to act as our scheduler
  • Pancake Painter
    • Open source software
    • Generates g-code files compatible with our printer

© Brigham Young University-Idaho

12

14 of 22

Project Demonstration

  • Video (or series of videos) demonstrating the project
  • Show each aspect of the design, including hardware and software (and all software features)

© Brigham Young University-Idaho

13

15 of 22

Challenges and Victories

  • Challenges
    • Speed Limitations
    • Extrusion Delay
  • Victories
    • Movement Control
    • SD Card implementation
    • Extrusion Control

© Brigham Young University-Idaho

14

16 of 22

Not capable of speeds greater than 50mm/s

  • Cause: Delay function accuracy of 1ms prevented taking more than 1000 steps per second
  • Solution - Custom μs delay
      • Chosen because it simplified moving 2 motors together at different speeds.
      • While loop polling timer value
      • Cons:
        • Polling while loop prevents other tasks from running if empty, had to run useless code inside

© Brigham Young University-Idaho

15

17 of 22

Problem: Extrusion Delay

  • Cause: Pressure build up in tube over longer distances
  • Solutions:
    • 1 - Move closer to print head
      • Reduced tube length and pressure build up
      • Added valve to prevent leaking from pressure buildup
      • Cons:
        • Pressure still to great causing motor to skip and inconsistent extrusion
        • Valve slows flow, but still leaked to much
    • 2 - Mount syringe directly on print head
      • Enlarged syringe hole for gravity
      • Space for less leaky valve design
      • Cons:
        • Heavy, increasing vibrations at higher speeds
        • Slows down as pancake batter level decreases
  • Takeaway:
    • Test before integration

© Brigham Young University-Idaho

16

18 of 22

Victories

  • Movement Control
    • We had good results building the barebones cnc controls in software and using gcode commands to make these function calls.
    • Within a couple weeks of starting this project we were able to get the movement sorted to some degree of satisfaction.

© Brigham Young University-Idaho

17

19 of 22

Victories (Continued)

  • SD Card Implementation
    • This was almost a stretch goal for us considering how we could have hard coded designs rather than importing them, however we wanted a device that could be used without modifying the code and flashing the controller each time.
  • Extrusion control switched from a plunger acting as a pressure controller in order to push out batter at a set rate to a servo controlled stopper that physically blocked/opened at our extrusion point over the griddle.

© Brigham Young University-Idaho

18

20 of 22

What We Learned/Takeaways

  • Test before integration
    • saves us post-integration debugging
  • Plan for more time to debug/organize code.
    • code refinement
    • unintended consequences of certain functionality
  • Meet in person as often as possible when working with hardware

© Brigham Young University-Idaho

19

21 of 22

Path Forward

  • Where do you see this project going from here?
    • Creation of an to follow guide allowing others convert their Ender 3 printer into a pancake printer
  • If you could continue working on it, what would you do next?
    • Improved gantry
      • Improve balance allowing for quicker printing
      • Larger size for usage of full giddle area
    • Fine-tuning printing
      • Various variables that control the overall quality of a print
        • extrusion rate, movement speed, movement software delay time
  • Future Features
    • Menu interface for easily adjusting parameters affecting print quality

© Brigham Young University-Idaho

20

22 of 22

Conclusion

  • Evolved from a simple idea into a fun project that touched many technologies
  • Using FreeRTOS, CNC arduino shield, motors and a good deal of other hardware/software items to create something functional

© Brigham Young University-Idaho

21