IWT FPGA for 3DP
Science & Tech
Today hardware engineers provide the platform to run any algorithm as fast and efficient as possible with application specific IC’s (ASIC), FPGA and GPU. Robots, 3D printing and artificial intelligence are changing the world in a very disruptive way. Understanding technology is the first step to prepare for what is coming.
Interested? Want to learn more about the community?

Learn more first
June 19, 2020

REPRAP:

The printer that prints itself (*): https://reprap.org/wiki/RepRap
TIP: get familiar with 3D printing terms, this is not included in this training.
Focus on the names of the different reprap parts: heatbed, extruder, heatbreak, heaterblock, ...

I have two original Prusa printers (MK2S and MK3 upgraded to MK3S later), those are reprap printers.
Since Stargate, I am fascinated with replicators, which matches my early fascination as kid with Battelestar Galactica. I printed and painted one (several parts glued together) for old times sake (see attached image).

Basically Prusa uses an Atmega processor (Arduino) and specific boards. The open source community uses other boards. I use the Arduino mega with the RAMPS v1.4 board but not for those two original Prusa printers.

I started somewhere in 2017 with 3D printing and since then I encountered shitloads of issues. Longs tory for another time :-).
The issue I have with Prusa:

  • One board, if one chip fails you need to be a solder iron superhero to fix it. Usually better to just buy a new one. So, I like the RAMPS board that has the drivers for stepper motors. Stepper motors need specific dirver chips that apply the current to "step" in one or the other direction.
  • Arduino means sequential execution, hardware like FPGA can do true parallel.
  • Firmware builds from Prusa are end of life for MK2S. And I always have issues recreating the hex file to load into the board because it uses specific Arduino IDE versions and needs to resolve a library name issue. This kind of issue that repeats is something that I loath.
  • Firmware builds need to fit into the memory on the board, algorithms need to be short to make sure the sequential execution of the motor control isn't delayed.
  • Protection mechanism used stop the printer. They don't remember the position so if I was printing 10 parts in one go and the printer aborts after 5 hours, I cannot continue. The MK2S extruder filament feed gets stuck sometimes and a bondtech gear (double gear), see picture on https://www.bertverrycken.com/mk3, solves this. There are by now thousands of 3D printed extruder bodies to fix one or another thing. It is chaos in my opinion. Anyway, I upgraded the MK2S with a MK3(S) bondtech extruder and used a wider fan but with the MK2S original firmware. I get a temperature runaway abort, all parts lost after 5 hours of printing. Most likely because the software assumes the MK2S fan and it is a slightly different fan. I need to be creative when something fails or needs replacement, I use what I have lying around. I want to make sure I am in control when something happens.
  • In MK3, the extruder was improved and I thought I was forever free of the "ticking" problem of the MK2(S). Not. If you ever want to reliable operate 3D printers (every day printing), the extruder must be your main priority. Detecting issues and the right way to react, needs to be under my control.

Hence, my idea to do the FPGA to replace the pure software based Marlin firmware (Arduino) and Klipper (RPi).

(*) Electronics, wires, nuts, bolts, heaters, thermistors, endstops, rods, motors, ... are not printed (yet). They refer to the plastic parts in the design.

post photo preview
Interested? Want to learn more about the community?

Learn more first
What else you may like…
Videos
Posts
July 09, 2020
Button press moves the motor

Full step mode with A4988 driving a NEMA-17 (200 steps per 360 degrees) with one output from the FPGA (button 0 is wired to the output IO(0)) and direction is strapped to a fixed direction.

00:00:21
July 09, 2020
LED test with resistor in series (don't blow up a pin!)

To make sure the change I did to the original demo does what I want it does, I check the output pin with a LED and a series resistor of 220 ohm.

00:00:10
July 06, 2020
FPGA training slides 2

Some information on the GPIO demo and its purpose.

00:00:40
August 14, 2020

Discord for more interaction: https://discord.gg/VpyXH5

August 11, 2020

Status August 11:
1. Started a contract for an exciting startup.
2. This (and I mentioned it briefly before) is not just an open source FPGA for 3D print project, this is my springboard to a startup. Very important companies were started as a side business in a garage, Apple, Microsoft.

For a startup one does not need:

  • Investors: nice to have, but as a side project it doesn't need much except buying parts and potentially licenses/software. That is why I do contract work.
  • A business plan, market or anything, I start from my own dire need, it is system thinking, not goal thinking. Of course there is more to it, but now is not the right time.

For a startup one always needs:

  • A rythm: my days are all roughly the same. Your body needs a bio clocked rythm, get up and go to bed at around the same time. I never sleep in in weekends, I maintain the same rhythm every single day. And that is a learned ability.
  • Maximum focus on nutrients (Magnesium, vitamine, zinc, iron, ..), your mind needs certain ...
August 06, 2020
  • I ordered some Molex ATX (PC supply) connectors to connect 12V in a safer way and it has 3.3V as well. Had to wait until they arrive.
  • Vunit verification of the AXI lite slave.
  • Find an AXI lite VHDL master to access the register map of the slave.
  • Define the register map of the motor slave:
  • one enable disable bit RW.
  • status bit enable/disable, one bit.
  • current position (status).
  • new position (RW).
    And position =
  • no of steps in 360 turns of the motor (NEMA 17 = 200).
  • mm in x/y/z per turn (depends on the axis).
Available on mobile and TV devices
google store google store app store app store
google store google store app tv store app tv store amazon store amazon store roku store roku store
Powered by Locals