General Firmware Questions

Added by bkubicek over 9 years ago

I have a couple of questions about the firmware:
a) Why mbed? Is the Mhz really required, opposed to e.g. an Mega2560? The most critical thing seems to be the Laser PWM, which is hardware-accelerated in both cases? Or are the steps/mm so large that you need to achieve high step frequencies?

b)In the firmware I failed to understand how bitmaps are engraved? Is this a hostside-thingie? In the planner there is however an enum that contains Bitmap stuff?

c) From my first glance, the Laser PWM is constant over the whole cut distance, although the velocity is not. Does one experience any effects of this in real life? E.g. when cutting high-detailed aprooximated splines or curves?
Or is it that the reaction time of the laser to intensity changes is slow anyhow?

would be really cool is somebody could enlighten me.
I am thinking about buying a cheap chinese cutter, and to convert it. It would however be nice to understand beforehand what to expect as a result.

Bernhard Kubicek

Replies (3)

RE: General Firmware Questions - Added by Springuin over 9 years ago

a) That was a choice made in the beginning, the advantage of the mBed is the large library, ethernet support, quick time-to-something-useful and just a plugin module (no SMD soldering). The high clock frequency is not really required. It could have been done using a mega2560 but (imo ARM cpu's in general and specifically) the mBed is easier to develop for. If the hardware would have been optimized for price, choices may have been different.

mBed versus just an lpc1769 has been discussed in meetings in the past, but changing now would save you 40 euros, cost quite some time to implement and would make the board impossible to solder for beginners (because of a.o. the ethernet phy chip and lpc1769 with its 0.5mm pitch).

b) bitmaps are sent as blocks of bits, see

c) I believe that's correct. I think you can see the effect of this in corners, I suppose the effect can be reduced when lowering the speed (and thus shortening the accelleration/decelleration time to a minimum). I do agree that "laser power per unit of distance" should ideally be equal all the time but it's not that visible that it becomes a problem.

When buying a machine on eBay: make sure you know the rules about opening a case and the related time limits, in case things don't go as planned. My machine arrived with a broken laser tube, everything turned out fine, but only because I opened a case on time.

RE: General Firmware Questions - Added by peteruithoven over 9 years ago

a) I'd like to emphasize the benefit on the Mbed above something like a Arduino is that you can connect it to your network and use the lasercutter wireless. This is still a benefit

c) To work around this issue you can increase the Additional space per raster line setting in Visicut. You can find this under: Edit > Settings > Manager lasercutters... > a specific lasercutter

RE: General Firmware Questions - Added by bkubicek over 9 years ago

hey, thanks for the answers. hi peter, long time ago we met, Joris and you showed me the then new fablab while the 3d printing conference was in the former Philips areal.

The answers help me a lot. I always thought that the laser power needs a lot of cpu to control it. Thats why I was a bit flabbergasted when I found that the cheapcutters have an ampere meter on there, having hardly any power changes....

About a) I have nothing against mbed, I just want to understand why :) its used. When starting freshly in this year, one maybe might building upon "machinekit" (the Real-Time-Coprocessor using LinuxCNC on BeagleBoneBlack) might be a nice choice. Also network, filesystem, and superhigh steprates, bonus: hdmi.

b) Bitmaps. Are multiple bits modulated within a single G1, or do you need to accelerate/break between bit alterations?
c) 3d printers have the same problem, overdepositions at direction changes. Although the extruder is driven as a 4th axis in the step generator within the Bresenham, you have a hysteresis that leads to flow delays. So breaking mostly means higher deposition. The xy-jerk velocity introduced by EvdZ by Grbl helped a lot in this context.

I was obviously quite unaware of how laser cutters work.

So anyhow, I think it would not be that tricky to modulate while accelerating. Since the acceleration is always constant, in the acceleration parts of a movement the PWM can change according to the current velocity simply by using a increasing/decreasing counter. This can be put in the ISR bit where the next ISR-Time is calculated. The problem I might expect without is: if you have a small circle, with many small lines, average speed will drop because you never reach the plateau speed. The deposited laser energy then will be too high. Might also happen for a chain of very small lines, e.g. a spline. However, without a lasercutter to test, I better not touch the firmware... yet.

Thanks, my motivation to gamble on a cutter is increased :)