I recently decided to use three circuit boards in my Hangprinter v4 prototype: One DuetWifi, and two ODrives. It turned out to be a challenge to get wiring and communication to work the way I wanted.
I wanted to use stock RepRapFirmware (RRF) on the DuetWifi, and stock ODrive Firmware (OF) on the ODrives. No special "Hangprinter Firmware", only Hangprinter configuration of stock firmware. I wanted to connect the two types of boards directly with jumper wires. No special multiplexers, filters, level shifters or anything like that between the boards.
I aimed for something like this:
Convenience. Let's call them convenience wires. The step/dir wires can only be used to communicate a desire for incremental movement. Through convenience wires we can tell ODrives to more exciting things, like:
The first exciting thing I'll focus on implementing in HP4 is better auto-calibration. Anchor positions and line buildup parameters should be calibrated during the same routine, and the user should just have to start this routine and wait for it to finish.
The basic step/dir communication was straightforward to set up. Both boards and firmwares had good support and documentation already. So we got to feature parity with HP2 quickly. Not super exciting, but a really nice start. With no more than basic setup and a step/dir connection, the ODrives showed promise of being able to make HP4 run really really fast.
The HP3 got beyond HP2 features by talking i2c protocol through convenience wires (and a level shifter). Unfortunately, ODrives lack i2c support. ODrives are only prepared for controller communication via their universal asynchronous receiver-transmitter (UART). To be more precise, ODrives have one pair of Tx/Rx pins with 3V3 logic levels, talking RS-232 with 8-bit words, no parity bit, one stop bit, at a rate of 115200 bits per second.
So, I had to go for UART in the HP4 convenience wires. There were two small problems to overcome:
Madcowswe, ODrive's main dev, helped solve the first problem real quick. Within a few hours, he added firmware support for step/dir and UART to be enabled simultaneously. I carried out some basic tests of the step/dir communication.
Dc42, who is DuetWifi and RRF's main dev, helped me with the second problem. He told me that one of the DuetWifi's pair of SPI pins were really USART pins, and could be reconfigured in software to act as UART pins. It took me a few days to get the pin re-configuration right, and stock RRF currently doesn't support it. I will of course stay in touch with dc42 and try to get all HP4 functionality merged.
There are 12 communication wires to be connected between the DuetWifi and the two ODrives:
All the pre-compiled binaries and configuration files you need are found in the firmware directory of the version_4_dev branch.
To enable the right pins on the ODrive, use ODrive Tool to send
odrv0.config.enable_uart = True odrv0.axis0.config.step_gpio_pin = 6 odrv0.axis0.config.dir_gpio_pin = 5... to both ODrive boards. Save and reboot as always after updating ODrive configuration. The pin ordering on the ODrive side might seem a bit funny:
I'm still a bit unsure whether dir signal on the non-filtered pin 5 will work well in the long run. An oscilloscope would be needed to really see if the dir signal quality is good enough. The small tests I've conducted by just counting steps with the encoder have shown no dir errors thus far.
The following gcodes will enable right UART pins on the DuetWifi:
M569 Q0:1:115200 ; Connect ODrive 0 to Serial device 1 at 115200 baud M569 Q1:99:115200 ; Connect ODrive 1 to Serial device 99 at 115200 baud... and the following gcodes maps step/dir signals to the right pins on the DuetWifi:
M669 K6 ; This is a Hangprinter M584 A5 B6 C7 D8 P4 ; map ABCD-axes to ext driver pins (four visible)
- tobben
I recently got my own dedicated Hangprinter space. It is a room in an old industrial building, in a collective of potters and musicians. Well, it wasn't really a room when I first got it. We built a wall, and made it a room. To the right in pic below.
It's within walking distance from my home, has home made coffee cups in the kitchen, two massive kilns at the entrance, and good live music every single evening. It's a messy, friendly, and beautiful place. I feel free here.
If you look closely at the picture you'll notice my little Mendel and its latest offspring; the latest HP4 prototype. I've been working on it quite intensely since I got my new space. Check out the version_4_dev branch if you want the source. Here's a quick overview:
This hardware prototype is made to allow faster, stronger, smoother, more accurate motion. The first three goals motivate choices like
To really get more accurate, we need better calibration, which motivates
Other hardware changes are made just for looks and tidy order:
Previous anchor line rollers could break if you stepped on or kicked them by accident. The new ones are much more likely to survive such treatment.
(At least better than the first HP3 prototype's slogan: might be awesome if it works.)
Those hardware changes are all fine and dandy, but the more important improvements require better software, which is not yet written. The more important improvements include
Without them, we can't ave adequate accuracy, except close to the origin. I mean, you can make 1 m movements (video), but you can't print a decent Benchy out there.
Flex is an obvious pain point in the HP3 since its firmware assumes nothing flexes, while in reality everything flexes. In extreme positions, this can give errors at the order of centimeters.
I mentioned earlier that all axes are geared down with pulleys on the HP4 prototype. This means twice as much line between anchors and effector, and hence only half the flex. Sturdier plastic parts also helps.
The real fix however, is to measure flex and compensate for it in firmware. The equations have been worked on in an earlier post, and the HP4 should definitely use them when planning its every move.
There's actually a conceptual error in the current semi-automatic calibration routine
(apart from the truncation error that was found and fixed).
The M114 S1
command outputs line lengths.
It gets these line lengths by reading motor shaft position and compensating for line buildup.
But line buildup compensation requires correct anchor calibration in order to work correctly.
So the data is imperfect even if the user does a perfect job while collecting it.
The obvious way to fix this is to have M114 S1
output shaft positions,
and do the line buildup compensation within the cost function instead.
And once we've moved buildup compensation into the auto-calibration code, then we have the chance to throw the buildup factor in there too. The buildup factor is a measure of how much volume a meter of line takes up. This has been guesstimated based on line diameter up until now, and it's been known that the guesstimate is imperfect, which makes the whole buildup compensation even more imperfect than it could be.
Hopefully, the improvements described above would allow us to auto calibrate by moving the nozzle to known positions. Such calibration would give more accurate result than the current random-position-based method. We tried it with the HP3, but it failed. I think it failed because errors from flex, truncation, and imperfect buildup compensation were too big for the optimization algorithms to work with.
Perhaps the most obvious accuracy bottleneck in HP3 stems from the manual homing. Human hands are great precision tools, but not good enough for 3d printing. Three things vary between manual homing procedures.
A good, cheap, and simple homing routine would be to crash (with a repeatable force) the effector into a bracket in the ceiling, and then tighten ABC-lines to a repeatable tension, before moving down to the origin in a controlled fashion.
We have previously been prevented from doing that long moves in a controlled fashion. This was due to inaccurate calibration parameters, both for the anchor positions and the buildup compensation. It's funny how bad accuracy leads to worse accuracy and vice versa.
And, well, that's only the beginning of the prototype's overwhelming unfinishedness. Will the belts stay on, or will they jump off? Will they wear out quickly? I don't know.
I'm still unsure if the extensive use of vgroove bearings is wise, or if the lines will occasionally fall off. My unstructured testing has convinced me to at least try and trust the 44 line guiding bearings in this prototype. I've only been able to make lines fall off bearings by pushing hard with needles and the tip of a knife. But you know, I fear Murphy's law will come and bite me. Time will show.
I'm also unsure if the BLDCs will give satisfactory stiffness and smoothness at the same time. I'm planning to use the experimental anti-cogging feature to make the motors move really smoothly like expensive BLDCs with tilted magnets do.
Last, but not least, will the world make fun of my line_verticalizer
because it looks like a fish?
Only the brave gets to learn interesting stuff the hard way.
- tobben
The Hangprinter support in RepRapFirmware is looking for pre-alpha testers! You can be the first person to combine Hangprinter with Duet, RepRapFirmware, and 32-bit controllers. If you get it working, your Hangprinter will be the fastest one on earth. You will be on the bleeding edge, and help Hangprinter development. See the previous blog post and duet3d.com for more on how Duet and RepRapFirmware will make HP4 better than HP3.
I don't have a Duet specific wiring diagram. You will have to compare with two other diagrams: Compared to Duet's default wiring, you will wire the ABCD (Mechaduino) motors differently. You will not connect endstops or bed heater, but you will connect i2c cables.
Compared how the RAMPS is wired in the HP3 manual (click for larger):
Once your Hangprinter+Duet parts are put together, upload the latest official RepRapFirware release to your Duet. Recommended resources: Duet getting started guide, and RepRapFirmware releases page.
Then go on to learn about the changes I've made in the pull request, here. I've built a Duet2_RTOS binary that you can upload directly. It is found here. If you're experiencing RTOS related bugs, you could try the non-RTOS build. Binary here.
Now, with the Hangprinter compatible binary uploaded and installed, you need to configure it right. There is a slightly outdated Hangprinter config guide on the duet3d dozuki.
After the dozuki-guide was written, I've added spool buildup compensation, and support for ABCD-parameters to the gcodes
M589
, M92
, M201
, M906
, M203
, M208
, M350
, and M566
.
I've also added support for torque mode (G95
) and gcodes needed for auto calibration (G96
and M114 S1
).
Here are some gcodes I would use to set up my RepRapFirmware for use with Hangprinter and a DuetWifi:
M669 K6 ; Set Hangprinter Kinematics M669 Aax:ay:az Bbx:by:bz Ccx:cy:cz Ddz ; Set anchor positions M584 A5 B6 C7 D8 P4 ; The step/dir of Mechaduinos connect to exp E2 E3 E4 E5 M584 E0:1:2:3:4 ; Regard all TMC2660s as extruder motor drivers M569 P5 I0x0a ; The Mechaduino connected to driver 5 (E2_step/dir) ... M569 P6 I0x0b ; ... is connected to i2c and has address 0x0a M569 P7 I0x0c ; ditto for BCD. M569 P8 I0x0dIf you have configured Marlin for a Hangprinter before, you notice that many settings are missing in the above. Right now, the
M669
, after first getting K6
configured, will also accept parameters
Q
, W
, R
, U
, O
, G
, H
, J
.
These are, however, likely to change and only used for fine tuning anyways, so I don't want to document them here.
Should you need to use these parameters, see
the lines where they are parsed in the source code.
Sending a M669
with no arguments will print settings, which will also give you hints.
The Mechaduino firmware found here
should make your Mechaduinos respond to RepRapFirmware's G95
and G96
calls.
This month (July 2018) I will take my first ever holiday from the Hangprinter Project. Me and my wife will seek family roots in the northernmost parts of Norway. This means I won't check the forums as often as usual, if at all.
I'm sure the RepRapFirmware maintainer dc42, and the general community of Duet/RepRapFirmware users, will do their best to help if you ask good questions. Reading the Duet documentation and information in the pull request itself will help you ask good questions.
The dev branch that I'm making the pull request from is found here. Remember that no RepRapFirmware users have previous experience with the Hangprinter.
Both the forum thread and the Facebook group reach people who are knowledgeable about Hangprinter. They are eager to help and to see you succeed. If you haven't already, give them a chance and ask a question =)
- tobben
For Hangprinter v4, I'm changing out the design goals, and hence also the electronics and the firmware. TL;DR: I'm going for DuetWifi and RepRapFirmware.
To talk meaningfully about design goals, I feel like I must first give you some:
The initial goal of the v1 design was simply to prove the Hangprinter concept. I was not convinced that it would work at all, so it didn't make sense to talk about design goals beyond proof-of-concept.
However, reading between the lines of the potential rewards that I listed in a forum thread at the time, one can get some hints about what I hoped for:
The concept worked, and the v1 and v2 designs fulfilled the hopes in the above list (except the one about becoming popular where indoor area is scarce).
The above picture was taken at the recording of a campaign video. The subtitle of the campaign was (and still is) a design goal
Many Reprappers embraced the Hangprinter concept, but failed to complete their first Hangprinter build. In a blog post in January 2017, I wrote in a blog post:
In March 2017, Alexander Osika (above) suggested a dual-unit Hangprinter, with the motors in the ceiling. This would allow us to lay the spools out in a two-dimensional pattern, and could be made straightforward to put together.
I also knew that new challenges would face us once ease of assembly got figured out. The v1 and v2 machines had been hard to calibrate, and quite unreliable, so in April 2017 I stated some new design goals in a blog post:
Even before achieving those goals, we started getting way better prints out with the dual-unit than we ever got with the v1 and v2s. Here from December 2017:
By the end of 2017 I iterated on this blog that I wanted Hangprinter to be spread and be useful. The goal of usefulness motivated some compromising. Auto calibration and closed-loop control were made possible with Mechaduinos, who also made the build harder.
Below is an experimental single unit prototype using Mechaduinos. It was never made standard because it was very hard to assemble.
The Mechaduinos are also very expensive. Up until this point, I had stuck to cheap parts because both myself and most builders I've met wanted to keep investments low. Keeping parts cheap had helped the design spread, but using cheap components was not a goal in itself.
This might seem contradictory to the goal of low cost stated above, but cost must be compared to that of other large scale 3d-printers, ie thousands of dollars per print. Cost must also take raw materials and percentage of failed prints into account.
With (human assisted) auto calibration in place, the dual-unit design with Mechaduinos was ready to spread through assembly workshops. Below is a picture from the very first hangprinter assembly workshop in May 2018.
The Mechaduinos with their powerful processors and "smartness" also gave a glimpse of a machine I'd really like to own and use. There is a new local design optimum down that road, one I hope we will call HP4 or HP5.
Version 4 will not seek to prove a minimal investment concept anymore. The new design goals on the block are
Since Hangprinters will often run over night close to where people live and sleep, there's also a smaller and more specific new design goal:
There's also a social goal in the Hangprinter Project. As I see it, robots are rising towards becoming the dominant power factor in society. I think it's important that the people owns the robots who fill their needs.
Giving away and selling robots is easy, but having it fill peoples needs is hard. I think the best strategy for getting us there in the long run will involve gearing Hangprinter (and indeed other designs) towards:
Needless to say, the software part of the Hangprinter Project will grow with time.
To create the version 4, we'll aim for:
Getting on towards the UMM from there will involve:
Some of the listed experiments have already been started by myself and others. Today I want to dive into the first one:
I won't try to give rigorous reasoning, because the parameters are so many. Instead, I will give a vague list of priorities and share my limited knowledge and experiences.
Most HPs in operation have this solution. Builders add the optional Octopi for its web interface. Stuttering from serial gcode transmission has been annoying on some prints, but bearable on new Pi hardware. The top speed limitation caused by RAMPS (Atmega2650) being slow is also annoying, but has been bearable in the pre-SuperVolcano era, since melt rates have limited print speeds anyways.
The required 5V->3V3 level shifting on the i2c serial pins has been an issue. Failure to get the level shifting right on first try has caused burned boards and lots of debugging.
This is by far the solution with the most processing power. It might be the only commercially available 3d-printer solution that can realistically do onboard computer vision processing.
This solution doesn't have the four exposed step/dir pins we need to connect our Mechaduinos. There have been some signals from lead dev Elias Bakken that we might get our pins in future versions of his new board Revolve :)
As far as I know, the Smoothieboard also lack the extension pins we need to hook in the Mechaduinos. If I'm wrong, or if you know how to get the servos in there in another way, go for it and show us how! I honestly have too little knowledge about this platform.
This was our first idea for HP4, and it is a strong candidate simply because it's the cheapest viable 32-bit option. It requires very little programming to HP3's firmware onto a RADDS board. However, Marlin devs are worried that merging Hangprinter support upstream will disturb their work flow. See pull request here.
This is the solution I'm currently developing for. It ticks all the boxes. The well written RepRapFirmware, the great support, and all the available extension pins are really killer features. See my RepRapFirmware fork here, and my first substantial pull request here.
RepRapFirmware, despite being most often used with DuetWifi, also has support for RADDS, so users who prefer the cheaper RADDS are not left in the dark here ;)
- tobben
I got the chance to test out E3D's coming Super Volcano hot end recently. The high melt rate let me try to print really fast for the very first time. At first, I just upped the speed, and it looked like this:
Encouraged by these initial results, I went on to try to to test printing with much stiffer strings, expecting better print quality. The first layers did look rather good. Warning: video is noisy.
However, the Hangprinter at E3D has very long lines, with anchors more than 4m from the printer's origin. The long stiff lines started acting like springs, and the ringing was very significant. The following octopus was printed at a mere ~30 mm/s:
I knew what had to be done, since I had experienced similar issues last summer when I tested the version 2 with extremely thin lines; I had to constrain xy-rotations by doubling up the A, B, and C-lines.
Lastly, a little video of the printer running with the doubled mechanical advantage.
With the added mechanical advantage, I got far less ringing. Prints done at 70 mm/s came out with much less ringing than the ~30 mm/s printed octupus depicted above, so the improvement was significant. Sadly, my camera broke, and I didn't bring my prints with me home from England, so I can't show you pictures yet.
If you're going to try the doubled abc-lines at home, use
the doubled_abc dev branch over at Gitlab.
And remember to configure your mechanical advantage and correct line lengths in Marlin's Configuration.h
.
- tobben
In preparation of the Hangprinter Assembly Workshop (HAW), I tested out the Hangprinter Assembly Workshop System (HAWS) recently. I'm fascinated by self-replication in software as well as in hardware, so I made Ubuntu run HAWS as a virtual machine that copied itself onto a USB stick that could then be mounted. Sort of a parasitic strategy. I recorded the whole thing as documentation:
I also did another video where I create a new Hangprinter part in HAWS.
The part CADded in the above video has already proved to be handy during anchor assembly.
Now, there is a lot more than templates and OS work going on in the Hangpriter Project. Yesterday, I did my first successful test print with the Super Volcano hot end over at E3D's headquarters in Oxford:
The deposition rate of ~250g/h is very promising. I hope we'll be able to go even faster, as print times currently limits the practical usefulness of the Hangprinter.
For more live updates (and a link to a live stream directly from the ceiling of E3D HQ) do check out my Twitter.
- tobben
I demoed Hangprinter v3 at the 3D Meetup Sweden recently. I could not mount it in the ceiling of the venue, so I had to build a temporary frame. Knowing how to whip up a temporary Hangprinter frame is useful, so I'm documenting it here.
Bill of materials:
Now you're done, you just want to make sure it stays the way it is.
Big thanks to my dad for coming up with this frame design while me and Fred were running around him like chickens in the middle of the night before Maker Faire Rome 2017.
- tobben
Hangprinter Assembly Workshop Nemesis is an operating system that you put on a USB-drive (size 4GB or more). It boots directly from the USB-stick, and loads itself into RAM memory. The hard drive of your computer will not be touched.
It contains all the computer tools that I use when I use and develop Hangprinter, and Hangprinter related programs. It will be given to participants of the forthcoming series of Hangprinter Assembly Workshops. The following video shows everything working on a virtual machine (VirtualBox) with 3 GB of RAM:
Watch on Youtube instead if above video doesn't load for you: HAW Nemesis on Youtube.
It's packaged as an iso-archive, available here.
Extract the contents of the archive to a USB stick.
I use Archive Manager for this job.
Then execute boot/Porteus-installer-for-Linux.com
(or boot/Porteus-installer-for-Windows.exe
),
and follow the instructions to make your USB stick bootable.
Pro tip: If you're comfortable with formatting your USB stick, format it to ext4 before extracting the iso. It will enable you to save your changes.
Now, reboot your computer and get into BIOS. Usually repeatedly pushing F2, F10, or ESC during reboot does that. Otherwise, a web search on "boot from USB your computer model here" is recommended.
The iso-image is build from the Porteus with Arch packages called Nemesis. Some recommended sources of further information are:
HAW-Nemesis has two goals:
A test of the fore-runner of HAW-Nemesis, called D3D-Porteus, is motivated and described in my Master's thesis. It also contains lots of advise for future development that are not yet implemented.
HAW-Nemesis will see continued development as I collect experience from my series of workshops.
The first of those workshops are already planned together with RichRap and E3D! Read more and buy tickets here: eventbrite.com.
I've opened two Hangprinter Merchandise web shops. One for Sweden (hope it works in all of Europe): spreadshirt.se, and one for the USA (hope it works internationally): spreadshirt.com.
- tobben
Today's Hangprinter firmwares assumes no flex at all in the movement axes. This is obviously a very rough approximation. In reality, all Hangprinter axes act like springs. Accounting for this can win us several millimeters of accuracy near the limits of our reachable print volume.
Some flex comes from line modulus, but adding infinitely stiff lines alone won't solve our problems because ceilings, floors, ceiling unit sheets and plastic parts also flex. Very stiff lines are also thick, building more on the spools and making the imperfection of our buildup compensation more severe.
Another brute force solution would be to closely monitor the mover and constantly compute and execute ad-hoc compensation. This could be made to work well, but it would add to hardware cost and complexity.
A third solution is to include flex in the firmware's internal model of the movement system. This keeps hardware simple. Configuration overhead must be minimized by using standardized parts and providing scripted and straight forward instructions.
It would be possible completely circumvent configuration overhead by collecting flex data with force sensors. This would require extra hardware, which in turn would have to be configured. It is in the spirit of the Hangprinter Project to make hardware additions beyond the bare bones setup optional, and solve as much as possible in software.
The scribbles below derive how to synchronize the four forces from the four motors, so that all lines can be tightened or slackened, without moving the mover. A force magnitude can be approximately mapped to a line shortening/elongation by using Hooke's law, where a guessed or measured Young's modulus gives the spring constant \(k\). Note that the spring "constant" will vary with line length in our case.
The no-flex line lengths that current firmwares calculate can be used to calculate a new line length that does (approximately) account for flex:
\begin{equation} l_{acc} = l - F/k(l), \end{equation}
where \(l_{acc}\) is the new line length that accounts for flex, \(l\) is the line length calculated and used by current Hangprinter firmwares, \(k(l)\) is the spring constant of the suspended line, and \(F\) is the desired force to be exerted by the line. The four different forces \(F\) are called \(A\), \(B\), \(C\), and \(D\) in the derivation/scribble notes below.
Lots of divisions. Probably not simple enough to be done on a Atmel2560. So... What to do?
As my professors always told me:
"Taylor expand, my good boy. Taylor expand for the sake of glory and honor! Taylor expand, and use only the first two terms, because everything ... Yes! EVERYTHING worth fighting for can be approximated to be perfectly linear! I tell you, boy, if you ever ever feel doubt in your heart, just Taylor expand, and your problems will all be cake."
Ok, they didn't quite say it like that, and maybe we should use three terms, but I'll save you the expansion for another post. If you're so excited right now that you want to Taylor expand yourself: do it around the origin, and remember that
$$ \begin{align} a_x &= \phantom{\text{ANCHOR_A_X}} - x,\\ a_y &= \text{ANCHOR_A_Y} - y,\\ a_z &= \text{ANCHOR_A_Z} - z, \end{align} $$
where ANCHOR_A_X is non-existent by convention, ANCHOR_A_Y is the y-coordinate of your A-anchor, ANCHOR_A_Z is the z-coordinate of our A-anchor, and \((x, y, z)\) is the position of your mover relative to the origin.
Also remember to handle the cases when denominators are zero in a graceful way. Fancy new 32-bit CPUs can probably compute the full expressions, but they can't handle division by zero.
Best regards,
- tobben
I made a script recently, to get learn how a Hangprinter axis with bad anchor positions behaves. The script itself is here.
Moving directly from/towards an anchor gives small errors, almost regardless of calibration errors.
Four plots are shown below. Only the XY axes are shown, but the results are similar in three dimensions. Line length errors in different XY-positions are shown with color codes. They are normalized so that the error in the origin is 0 in all plots. In negative areas, the mis-calibrated axis will over-tighten. In positive areas, the mis-calibrated axis will let out too much line. Click the plots to get larger versions.
- tobben
I've converted the extruder_holder
bracket to be ziptie based like the rest of the mover:
It is a great deal sturdier than it's screw-clamping predecessor. I tested lots of little tweaks to find the stiffest solution around all axes.
The motor was possible to tilt downwards no matter how I changed the model it seemed. The winning tweak turned out to be adding a third ziptie first. Like this:
And to tighten the third ziptie with a wedge. Like this:
The end result is dead sturdy and looks like this:
All new files and are published to the working branch of the repo: Openscad_version_3.
- tobben
I've implemented Tom's suggestion to use zipties on the mover corners.
Using zipties in stead of screws has some advantages.
I also find it easier to assemble since there are no fiddling with small screws and nuts.
For wooden movers, I've also thrown away the old beam_clamp. It's both more sturdy and lighter to just clamp the crossbeam with a little M3 screw and nut.
These two improvements combined save ca 60 g of weight compared to the previous mover.
I've also added a little nutlock to beam_slider, to make it easier to tighten/untighten with one hand.
More improvements inspired by what I learned in Hamburg is in the pipeline. Happy new year!
- tobben
This is the 50'th Hangprinter blog post, and I think it's a good opportunity to elaborate on why I develop Hangprinters. Read more...
It's been a busy month and the next one will be busy too. I've helped fredrudolf build a v3.3 (aka HP3). We're preparing a live demo at Maker Faire Rome (Dec 1-3). After that, I will help Tom create a video series on Hangprinter. Read more...
It's been a month of very technical development. I feel like I'm searching for the version 3.3 among a forest of new ideas and insights. Read more...
First Hangprinted Benchy: Read more...
The Hangprinter v3 has developed very quickly recently. We've been developing so intensely, we almost forgot to print a Benchy with the current prototype, called v3.2. Read more...
This video shows how the closed loop ABC axes act like springs when hot end meets an obstacle. Read more...
I put together a closed loop single unit Hangprinter with pancake steppers recently. The following video shows that it can run upwards along the D-line at 26.6 mm/s. Read more...
Following up on what I planned 35 days ago: "When the version 3 is up and running, I will focus my dev time on adding closed loop control, auto calibration and DC motors, in that order. Read more...
The Hangprinter Hackathon at Bitraf produced some technical progress. Read more...
This beauty was posted by Mario Lucas here. This impressive bottom plate was posted by Jonathan Bahrs here. Read more...
To recharge before the Hangprinter Hackathon in Oslo next weekend, I threw together a Babel Tower time lapse. Read more...
The Hangprinter repo on has had its first merged pull request! Committer was awigen. Read more...
Check it out: hangprinter.org! Big thanks to Piyush Dharnidharka for taking the initiative and building the page. Read more...
In this forum post, NOVAprint confirmed what I had suspected was a weakness in the sandwich design. A gap might open between the snelle and the sandwich gear, so that line wraps around the center cylinder. I never really liked the super-short screws in the sandwich either, so I've designed a push fit solution: Read more...
I got the chance to test the improved extruder design recently. It worked better than the previous Sstruder, so stls were pushed to the repo today. Read more...
I posted a few Tweets recently. Reposting them here now. Read more...
Hello Reprappers and Hangprinterers! The Babel print gives a lot of lessons, so there's a lot of posts this week. Ca 1.5 m above ground and with 20 m of line on the D-spool, I've noticed a previously undocumented problem. Read more...
I managed to sneak up the anchor points yesterday. The secret trick is to pause and move one anchor point at a time. Read more...
920 first millemeters of a Babel Tower in a staircase. Read more...
It seems like some collaboration and maybe even a little community is gathering around the Hangprinter Project. Right now, there are 5-6 builders out there wrapping their heads around the source files, assembly process and calibration. Read more...
Those who have zoomed in on my Hangprints after I added the worm drive will have noticed a periodic error. Read more...
I've conducted a few experiments recently, and I think I've arrived at a usable implementation of the line buildup compensation that I described in an earlier blog post. In this post, I'll try to go a bit more in detail. Read more...
I've been helped by some friends to make a campaign. It has a presentation video and a logo and a picture of me and everything! Read more...
The line compensation code may increase print volume noticeably. During testing, it has allowed Hangprinter version 2 to go places where version 1 surely would have over-tightened lines and skipped steps. Read more...
I've added to Hangprinter-Marlins some code that compensates for line buildup on the spools. Without it, I found that error in steps/mm grew to several percent as print dimensions grew close to 1 m. The problem was particularly noticeable on the D-axis since it has three doubled lines, so moving 1 mm in the D-direction puts 6 mm of line on the D-spool. Read more...
Just tested the worm drive. I was so happy to see it work that I made a little video. Read more...
Just made the D-line lengths easier to adjust independently. This is useful to get Hangprinter's corners in level with bed. Newest changes are at a new branch in the repo. Read more...
The best part is that the worm is pure parametrized OpenSCAD and renders nicely. Read more...
Hangprinting 0.9 m high twisted P at Teknisk Museum's 3D-printerfestival. Note: this text was edited on 7-11-2016. Read more...
This post will make it easier to calibrate Clerck by avoiding the need for measurements like this: Read more...
Clerck was demonstrated in public for the first time this weekend! Read more...
I've thought some more about Hangprinter recently, since I'm going to demonstrate it on the 3d printer festival arranged by the Norwegian Museum of Science and Technology in Oslo. I've only ever mounted and calibrated Hangprinter once before, so getting the manual homing to work fast enough worries me a bit. I don't have the time to implement the proposed accelerometer dependent homing procedure before the festival. Read more...
I've thought about a second generation Hangprinter lately, including the extruder. My current favourite re-design uses two motors running synchronously. Read more...
RepRappers have noticed me that basing the story line of my my Master's thesis on productivity numbers doesn't resonate with them. This tickled me to think about and formulate why I do what I do, hence this post. Read more...
Today I asked a question on reprap forums that has puzzled me for a long time. Why don't we share gcode instead of 3d models? The technical obstacles are small and it would be an obvious optimization of chaotic production. See the forum post for details. Hoping for an interesting discussion there. Read more...
I presented my Master's recently, with a story line that was very RepRap centric. I'd like to re-present and develop my thoughts with some colors here. Be warned that this is a post about why I RepRap, not how I RepRap. Read more...
I've been working on Open Source Ecology 3D printer workshops (see my work log for exactly what I've been up to) the past month, and will continue to work on that until mid summer. Read more...
Hangprinter Campaign: Bountysource Salt
Hangprinter Merchandise USA: Spreadshirt.com
Hangprinter Merchandise Sweden: Spreadshirt.se
Hangprinter Project: [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14], [15], [16], [17], [18], [19], [20], [21], [22], [23], [24], [25], [26], [27], [28], [29], [30], [31], [32], [33], [34], [35], [36], [37], [38], [39], [40], [41], [42], [43], [44], [45], [46], [47], [48], [49], [50], [51], [52], [53], [54], [55], [56], [57], [58], [59], [60], [61], [62], [63], [64]
Hangprinter Project Homepage: hangprinter.org
Print Issue Solution Filter Project: [1], [2], [3], [4]
Sourcing RepRappro Mendel in Larvik: [1], [2], [3], [4], [5], [6], [7]
Archive: 2014, 2015, 2016, 2017, 2018, 2020
Github Profile: link
Gitlab Profile: link
Hangprinter project on Gitlab: link
Vimeo User: link
Youtube User: link
Twitter User: link
Master's Thesis: link
Linkedin Profile: link
Appropedia User: link
RepRap Forums User: link
Forums threads: Hangprinter version 1, Hangprinter version 2, Hangprinter version 3, List of Hangprinter threads
Source for this blog: Gitlab repo
Everything on this homepage, except the videos, is licenced under the Gnu Free Documentation Licence. The videos published via Vimeo or Youtube are also licenced via Vimeo or Youtube.