<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel>
        <title>[NEW] OVM20 Lite, a simple board for lowcost printers</title>
        <description> Hello!

My name is Javier Loureiro, and for the last couple of years, I was assembling and selling the RAMPS 1.4 SB.

During those years, I got many questions from new users: which driver should i use? is it my arduino mega good? how do I plug the drivers?

So, I had the idea of a new board, that tries to simplify the basic 3d printer kit. It is not a &quot;competitor&quot; for other boards with more features. It is a board that will do the basics, but it will do it very well, at a fair price.

Best features:

- Full compatible with Marlin. No need for special drivers and configurations. You setup marlin like RAMPS 1.4, and it works. It works with the default setup from github. Download and upload (obiusly, you need to tune your printer anyway).

- Easy to assemble. One single purchase, with less options, missunderstandings, etc. It is ideal for kits, schools, workshops, etc.

- Powerful mosfets with extreme low internal resistance. They keep about 50º celsius (tested in sevilla, spain, during summer). The board is simple, but powerful.

- Branded Molex, no cheap dangerous power connectors. You can print for hours, days and months.

- 4 copper layers: better heat dissipation, longer life.

- Beautiful design!! black pcbs with blue leds are gorgeous smiling smiley

I understand, (and I agree) that most of the makers will prefer more options, expansions, and hacking choices. But imagine a school, a workshop, or a shop that sells basic kits. In that case, I belive that the ovm20 lite is a fantastic and reliable alternative.



  

    
      
    

    

    

    
        
    

    

    

    
      FOyiJUI.jpg
    

  

 



mod_embed_images_loadimage(&#039;29558927f141652d6128657abc0c7bc8&#039;, &#039;/forum/thumbcache/486/6fc/264/751/095/ad1/83e/001/be7/500/98_800x400.png&#039;, &#039;https://i.imgur.com/FOyiJUI.jpg&#039;, &#039;https://reprap.org/forum/addon.php?13,module=embed_images,check_scaling=1,url=https%3A%2F%2Fi.imgur.com%2FFOyiJUI.jpg&#039;, &#039;&#039;, 791191, 800, 400, &#039;Loading image ...&#039;, false);



We assemble the board in Spain. Here we have a small pick and place and we assemble and test everything here, step by step.

Here you have the full list of features [www.staticboards.com]

and we are today on hackaday! [hackaday.com] the board fits perfectly for a prusa steel, and the author decided to talk about the experience on the blog. That is why we decided to post more information here.

If you like to try it, we have the board available on tindie: [www.tindie.com]

I am 100% sure that you would do it on some other way, but I tried to keep the project simple and compatible. Hope you like this idea too!</description>
        <link>https://reprap.org/forum/read.php?13,791191,791191#msg-791191</link>
        <lastBuildDate>Sat, 11 Jul 2026 16:36:42 -0400</lastBuildDate>
        <generator>Phorum 5.2.23</generator>
        <item>
            <guid>https://reprap.org/forum/read.php?13,791191,801196#msg-801196</guid>
            <title>Re: [NEW] OVM20 Lite, a simple board for lowcost printers</title>
            <link>https://reprap.org/forum/read.php?13,791191,801196#msg-801196</link>
            <description><![CDATA[ Stop hijacking this guy's thread arguing over differing design philosophies.]]></description>
            <dc:creator>obelisk79</dc:creator>
            <category>Controllers</category>
            <pubDate>Sun, 17 Dec 2017 10:50:55 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,791191,801186#msg-801186</guid>
            <title>Re: [NEW] OVM20 Lite, a simple board for lowcost printers</title>
            <link>https://reprap.org/forum/read.php?13,791191,801186#msg-801186</link>
            <description><![CDATA[ Ok, different strokes for different folks.<br />
<br />
 DC42, you're an intelligent guy, but you often come across as mostly here to generate business for your own product.<br />
<br />
Whether that is intentional or not is irrelevant. You've made a quality board. But you often argue that your way is the only right way. It detracts from your arguments frequently.]]></description>
            <dc:creator>obelisk79</dc:creator>
            <category>Controllers</category>
            <pubDate>Sun, 17 Dec 2017 09:47:23 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,791191,801117#msg-801117</guid>
            <title>Re: [NEW] OVM20 Lite, a simple board for lowcost printers</title>
            <link>https://reprap.org/forum/read.php?13,791191,801117#msg-801117</link>
            <description><![CDATA[ <blockquote class="bbcode"><div><small>Quote<br /></small><strong>dc42</strong><br />
The only significant approximation that RepRapFirmware does for Cartesian, CoreXY and Delta machines is to approximate smooth motion by individual microsteps - we don't use Bresenham.</div></blockquote>
<br />
the algorithm the planner uses usually dissects each movement into an accel phase, near constant velocity and deccel phase at least. this has nothing<br />
to do with bresenham.<br />
<br />
i am talking about this:<br />
<br />
<pre class="bbcode">
	// Calculate the acceleration phase parameters
	const float accelCompensationDistance = compensationTime * (dda.topSpeed - dda.startSpeed);

	// Acceleration phase parameters
	mp.cart.accelStopStep = (uint32_t)((dda.accelDistance + accelCompensationDistance) * stepsPerMm) + 1;

	// Constant speed phase parameters
mp.cart.mmPerStepTimesCKdivtopSpeed = (uint32_t)((float)((uint64_t)DDA::stepClockRate * K1)/(stepsPerMm * dda.topSpeed));</pre>
<br />
<br />
<blockquote class="bbcode"><div><small>Quote<br /></small><strong>dc42</strong><br />
I guess using 8-bit firmware has brainwashed you into thinking that the only way to change firmware settings is to recompile and re-upload it. Get real! Try using a modern 32-bit firmware with a good web interface - you'll be amazed at the improvement in usability.</div></blockquote>
<br />
don't bullshit me. you are smarter than that. <br />
<br />
klipper firmware does not need to be recompiled at all. it is fully dynamically configurable. it does pressure advance in the trajectory planner (not slicer) on the compute host. (an AMD APU in my case). it runs on 32bit and 8bit. gives you very high step rates &gt;300kHz on 32bit. grbl is also runtime<br />
configurable. have you at least looked at one other firmware? marlin and repetier can use eeprom to store values. but you cannot switch the inverse kinematics i guess. using klipper: no problem, done on the host ;)<br />
<br />
i used the duet wifi &amp; its web interface over more than a year on a daily basis. uuuuhhh, ohhhhh a "web" "interface". welcome in the 21st century. <br />
<br />
every printer can have a web interface using esp8266 in couple of seconds... nowadays...<br />
<br />
<blockquote class="bbcode"><div><small>Quote<br /></small><strong>dc42</strong><br />
The required pressure advance is highly dependent on the machine! It depends on the details of the extruder drive, Bowden tube, mixing chamber and nozzle. So it's much better done in the machine than in the slicer. Besides, I can adjust it on-the-fly while doing a test print, without having to re-slice the model. Splitting the acceleration and deceleration parts into multiple segments just so you can do linear pressure advance in the slicer is just ridiculous IMO. Plus the slicer would have to know the acceleration and speed settings of the machine in order to get it right. On some machines (especially CoreXY) the maximum speed and acceleration depend on the direction of motion.</div></blockquote>
<br />
according to your implementation i can see exactly 3 machine depended parameters. steps per mm, acceleration and the pressure advance factor. i think<br />
a slicer can handle this. <br />
<br />
<pre class="bbcode">
const float stepsPerMm = reprap.GetPlatform().DriveStepsPerUnit(drive) * fabsf(dv);
	mp.cart.twoCsquaredTimesMmPerStepDivA = roundU64((double)(DDA::stepClockRateSquared * 2)/((double)stepsPerMm * (double)dda.acceleration));

	// Calculate the pressure advance parameter
	const float compensationTime = (doCompensation &amp;&amp; dv &gt; 0.0) ? reprap.GetPlatform().GetPressureAdvance(drive - reprap.GetGCodes().GetTotalAxes()) : 0.0;
	mp.cart.compensationClocks = roundU32(compensationTime * (float)DDA::stepClockRate);
	mp.cart.accelCompensationClocks = roundU32(compensationTime * (float)DDA::stepClockRate * params.compFactor);

	// Calculate the net total step count to allow for compensation. It may be negative.
	const float compensationDistance = (dda.endSpeed - dda.startSpeed) * compensationTime;
	const int32_t netSteps = (int32_t)(compensationDistance * stepsPerMm) + (int32_t)totalSteps;

	// Calculate the acceleration phase parameters
const float accelCompensationDistance = compensationTime * (dda.topSpeed - dda.startSpeed);</pre>
<br />
so you are constantly and manually watching your machine printing all day long? just kidding ;)<br />
<br />
temperature is also printer dependent. so you don't set it in the slicer? max speed is printer depended. if you put everything into your board, your mcu has to be the slicer then. i don't see why i need to split a long line int "many" small lines due to pressure advance. if it is a long line, most of it stays at constant velocity and does not require tinkering with extrusion anyway. but you are right, the slicer has to generate couple small segments in the beginning and end of the line. you can have a look at recent kisslicer. it is implemented there. <br />
<br />
<blockquote class="bbcode"><div><small>Quote<br /></small><strong>dc42</strong><br />
But I don't see that Linux offers me anything when it comes to trajectory planning.</div></blockquote>
<br />
no it doesn't. cheap speed and ram maybe. but  instead of focusing on bloated features on your controller,  you could instead improve the trajectory planner. or do research.<br />
<br />
i think we reached to point of where it is a philosophical question if one whats to have separate interface and compute cards or an all-in-one solution. if you are into the all-in-one solution you should use a 32bit controller for sure. (so marlin's dead) the other way it doesn't matter which architecture you choose for the interface card. same holds for doing everything in the slicer (the all-in-one slicer if you like) or have the actual planner (as opposed to toolpath generator) do it.<br />
seeing it from this perspective it is absolutely fine to have more than one solution to the problem. i would prefer a different solution than you probably, but in the end it doesn't matter much. <br />
<br />
i want to see s-curved (nth order, n&gt;=3) based motion planning. for me it will be easier to implement on the host side. so that is the route i go. ideally i can reuse all of the code and control my cnc with it as well. (just using a different interface card because of power and stuff). rest stays the same.]]></description>
            <dc:creator>xor_ea_ebx</dc:creator>
            <category>Controllers</category>
            <pubDate>Sun, 17 Dec 2017 01:29:24 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,791191,801096#msg-801096</guid>
            <title>Re: [NEW] OVM20 Lite, a simple board for lowcost printers</title>
            <link>https://reprap.org/forum/read.php?13,791191,801096#msg-801096</link>
            <description><![CDATA[ <blockquote class="bbcode"><div><small>Quote<br /></small><strong>xor_ea_ebx</strong><br />
should be discusses elsewhere. we lost focus on the threads topic.</div></blockquote>
<br />
Sure, we can discuss this elsewhere if you prefer.<br />
<br />
<blockquote class="bbcode"><div><small>Quote<br /></small><strong>xor_ea_ebx</strong><br />
each movement is split into accel / decel / linear approximated segments any way. so whats the problem there?</div></blockquote>
<br />
The only significant approximation that RepRapFirmware does for Cartesian, CoreXY and Delta machines is to approximate smooth motion by individual microsteps - we don't use Bresenham.<br />
<br />
<blockquote class="bbcode"><div><small>Quote<br /></small><strong>xor_ea_ebx</strong><br />
 a good planner "joins" these segments an ideally makes a smooth motion.</div></blockquote>
<br />
Sure; but why make the planner's job more difficult and the print less accurate by splitting up long segments unnecessarily, and then have to stitch them back together in the planner?<br />
<br />
<blockquote class="bbcode"><div><small>Quote<br /></small><strong>xor_ea_ebx</strong><br />
 if you actually depend on the firmware to do retraction and pressure advance you will get different results on different machines -&gt;<br />
so you inadvertently propagating the exact opposite of your goals: platform/firmware dependent gcode.</div></blockquote>
<br />
<b>The required pressure advance is highly dependent on the machine!</b> It depends on the details of the extruder drive, Bowden tube, mixing chamber and nozzle. So it's much better done in the machine than in the slicer. Besides, I can adjust it on-the-fly while doing a test print, without having to re-slice the model. Splitting the acceleration and deceleration parts into multiple segments just so you can do linear pressure advance in the slicer is just ridiculous IMO. Plus the slicer would have to know the acceleration and speed settings of the machine in order to get it right. On some machines (especially CoreXY) the maximum speed and acceleration depend on the direction of motion.<br />
<br />
<blockquote class="bbcode"><div><small>Quote<br /></small><strong>xor_ea_ebx</strong><br />
of course, you need to calibrate your extruder and adjust the toolpath generator accordingly. for every filament, for moisture and humidity, ... i think it is<br />
easier to adjust your slicer than to constantly tinker with your firmware settings.</div></blockquote>
<br />
I guess using 8-bit firmware has brainwashed you into thinking that the only way to change firmware settings is to recompile and re-upload it. Get real! Try using a modern 32-bit firmware with a good web interface - you'll be amazed at the improvement in usability.<br />
<br />
<blockquote class="bbcode"><div><small>Quote<br /></small><strong>xor_ea_ebx</strong><br />
 the slicer has full knowledge of the object and paths, can optimize them<br />
and minimize effects, you can't do that later on in firmware. "on-chip" planner as finite lookahead/back of like N moves.</div></blockquote>
<br />
Paths, yes. Accelerations and speeds, no.<br />
<br />
<blockquote class="bbcode"><div><small>Quote<br /></small><strong>xor_ea_ebx</strong><br />
the complexity of 32bit processors with caches is that you cannot guarantee about WCET or have only imprecise upper bounds. it is possible to<br />
reason about execution times in presence of caches but that requires at least a monotone framework for data-flow analysis (may must analyses). <br />
(i know there is cache content locking...). (i worked in compiler construction several years as well as on real time system WCET analysis).</div></blockquote>
<br />
And I work in safety-critical software. True, you can't do WCET analysis in the presence of caches. But has anyone ever done WCET analysis of a 3D printer firmware anyway? I very much doubt it. The SAM3X processor used on the first-generation Duets didn't have a cache. The SAM4E on the second generation Duets does, but enabling it makes very little difference and for many firmware versions we didn't enable it (it's likely to be more significant if you add external RAM).<br />
<br />
<blockquote class="bbcode"><div><small>Quote<br /></small><strong>xor_ea_ebx</strong><br />
why not start a new discussion/challenge and analyze the disassembly of your firmware and klipper/grbl/marlin regarding interrupt latency in step generating relevant paths? assuming you are using timers and not the DMA counter trick. </div></blockquote>
<br />
Why not just measure the performance instead, taking into account also the features that the various implementations provide?<br />
<br />
<blockquote class="bbcode"><div><small>Quote<br /></small><strong>xor_ea_ebx</strong><br />
be aware that the stc8 or efm8 e.g. has register banks which can make register pushing obsolete in some cases.the efm8 runs at 72Mhz having a 5 stage pipeline. bottleneck is the 25Mhz flash memory connection. for step generation these are fine. </div></blockquote>
<br />
I recall a similar feature in the Z80. It's very nice until you have to handle nested interrupts.<br />
<br />
<blockquote class="bbcode"><div><small>Quote<br /></small><strong>xor_ea_ebx</strong><br />
most have a pi anyway so why not compute the path there?</div></blockquote>
<br />
The vast majority of 3D printer owners don't have as Pi, and wouldn't know how to use it if they were given one. The Pi is great for tech-savvy 3D printer owners who want to add webcams, push notifications and the like. But I'd still prefer to keep real-time tasks - including trajectory planning - off the Pi so that whatever else I put on it won't end up causing stuttering.<br />
<br />
<blockquote class="bbcode"><div><small>Quote<br /></small><strong>xor_ea_ebx</strong><br />
you can leverage full linux stack and cummunity; and actually <b>safe on expensive development and customization time</b> because everything is already there. <br />
<br />
no need to glue esp8266 or an lcd to your interface board. the ~2k lines of step generation firmware is easy to maintain and support. threading: done. multicore: done, proper MMU: done. network: done, ssh: done, ... not to mention that this "pi code" will run on any pc. so debugging of the planner is much<br />
easier as well... if you don't like 8bit use 32bit as interface but do not re-invent the wheel and write a new  operating system for duet.</div></blockquote>
<br />
That's all great for implementing a web interface, other user interfaces, file systems, storage etc. (although we have all of those on the Duet already). But I don't see that Linux offers me anything when it comes to trajectory planning. There are several well-developed RTOSes available for embedded 32-bot processors. Like I said before, for high-end systems I see merit in putting the networking, storage and user interface on a Pi or similar running Linux (it doesn't even have to be a real-time version), and putting step generation, trajectory planning and other real-time tasks on an embedded 32-bit processor.]]></description>
            <dc:creator>dc42</dc:creator>
            <category>Controllers</category>
            <pubDate>Sat, 16 Dec 2017 17:47:20 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,791191,801080#msg-801080</guid>
            <title>Re: [NEW] OVM20 Lite, a simple board for lowcost printers</title>
            <link>https://reprap.org/forum/read.php?13,791191,801080#msg-801080</link>
            <description><![CDATA[ should be discusses elsewhere. we lost focus on the threads topic.<br />
<br />
doesn't sound it irrational/unlogical to you that your toolpath generator doesn't know about the used tool? i would say something is definitely wrong. each movement is split into accel / decel / linear approximated segments any way. so whats the problem there? a good planner "joins" these segments an ideally makes a smooth motion. if you actually depend on the firmware to do retraction and pressure advance you will get different results on different machines -&gt;<br />
so you inadvertently propagating the exact opposite of your goals: platform/firmware dependent gcode.<br />
<br />
of course, you need to calibrate your extruder and adjust the toolpath generator accordingly. for every filament, for moisture and humidity, ... i think it is<br />
easier to adjust your slicer than to constantly tinker with your firmware settings. the slicer has full knowledge of the object and paths, can optimize them<br />
and minimize effects, you can't do that later on in firmware. "on-chip" planner as finite lookahead/back of like N moves.<br />
<br />
the complexity of 32bit processors with caches is that you cannot guarantee about WCET or have only imprecise upper bounds. it is possible to<br />
reason about execution times in presence of caches but that requires at least a monotone framework for data-flow analysis (may must analyses). <br />
(i know there is cache content locking...). (i worked in compiler construction several years as well as on real time system WCET analysis).<br />
<br />
linuxcnc/machinekit runs on top of a realtime linux kernel. the cnc guys didn't use 8bit controllers, they used to use LPT black arts on a usual PC.<br />
<br />
why not start a new discussion/challenge and analyze the disassembly of your firmware and klipper/grbl/marlin regarding interrupt latency in step generating relevant paths? assuming you are using timers and not the DMA counter trick. <br />
<br />
be aware that the stc8 or efm8 e.g. has register banks which can make register pushing obsolete in some cases.the efm8 runs at 72Mhz having a 5 stage pipeline. bottleneck is the 25Mhz flash memory connection. for step generation these are fine. <br />
<br />
most have a pi anyway so why not compute the path there?<br />
<br />
you can leverage full linux stack and cummunity; and actually <b>safe on expensive development and customization time</b> because everything is already there. <br />
<br />
no need to glue esp8266 or an lcd to your interface board. the ~2k lines of step generation firmware is easy to maintain and support. threading: done. multicore: done, proper MMU: done. network: done, ssh: done, ... not to mention that this "pi code" will run on any pc. so debugging of the planner is much<br />
easier as well... if you don't like 8bit use 32bit as interface but do not re-invent the wheel and write a new  operating system for duet.]]></description>
            <dc:creator>xor_ea_ebx</dc:creator>
            <category>Controllers</category>
            <pubDate>Sat, 16 Dec 2017 15:45:50 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,791191,801043#msg-801043</guid>
            <title>Re: [NEW] OVM20 Lite, a simple board for lowcost printers</title>
            <link>https://reprap.org/forum/read.php?13,791191,801043#msg-801043</link>
            <description><![CDATA[ <blockquote class="bbcode"><div><small>Quote<br /></small><strong>xor_ea_ebx</strong><br />
i do not like the added complexity during (initial) development.</div></blockquote>
<br />
What added complexity? Sure, 32-bit processors generally have much more capable and complex peripherals than 8-bit processors, but you don't have to use them. Ultimately it's down to what you are used to and what development environment/libraries you have for the processor you want to use.<br />
<br />
<blockquote class="bbcode"><div><small>Quote<br /></small><strong>xor_ea_ebx</strong><br />
maybe my initial statement was not clear or confusing: using 8bit is ok as long as you not going to do trajectory planning on it as well. you can leverage the additional computational power of 32bit cpus and do everything on one board on one cpu. but that is not what i would aim for. i want the planning separate from the "interface" card, like it is done for ages in cnc.</div></blockquote>
<br />
Perhaps it's been done on CNC machines like that because of the limitations of 8-bit processors. IMO it's much more natural to implement the trajectory planning on the real-time processor. And how else can you do segmentation-free delta motion? If I was going to use 2 processors, I'd do the user interface, file reading etc. on one processor and send ready-decoded GCodes to the real-time processor. But unless you want to do some very fancy things in the user interface beyond the comprehensive facilities that the Duet web interface provides, running everything on a single 32-bit processor works just fine. BTW the current generation Duets offload the TCP/IP stack on to a separate module (even though the older Duets had no problem running all the networking code on the main processor), and the colour touch screen has its own ARM 4 processor (it's the cheapest option I know of with the required I/O).<br />
<br />
<blockquote class="bbcode"><div><small>Quote<br /></small><strong>xor_ea_ebx</strong><br />
ps. i would not add pressure advance to the gcode interpreter / firmware as this belongs to the toolpath generator. in case of 3d printing the slicer, in case of cnc the CAM software. this is separation of concerns and you learn about it in 1st semester university.</div></blockquote>
<br />
I disagree. You can't implement linear pressure advance in the toolpath generator, other than by chopping the acceleration and deceleration portions of each extruding move into tiny segments to approximate it - and that would only work if the toolpath generator knows the actual acceleration of each move. IMO GCode for 3D printers should be machine-independent as far as possible, and the slicer has no business knowing machine parameters such as how much pressure advance is needed on a particular extruder, and the actual speed and acceleration that will be used for each move.<br />
<br />
Pressure advance is part of trajectory planning - which is a real-time task, so for me the natural place to do it is on the real-time processor.]]></description>
            <dc:creator>dc42</dc:creator>
            <category>Controllers</category>
            <pubDate>Sat, 16 Dec 2017 10:56:35 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,791191,801024#msg-801024</guid>
            <title>Re: [NEW] OVM20 Lite, a simple board for lowcost printers</title>
            <link>https://reprap.org/forum/read.php?13,791191,801024#msg-801024</link>
            <description><![CDATA[ dc42, yes of course. but ir latency was just one of my "concerns". i do not like the added complexity during (initial) development. so step rates are not everything. proper motion planning (no not trapezoidal 2nd order / constant accel) using e.g. S-curves might be even more important. from this viewpoint<br />
the main difference between marlin and klipper, reprapfirmware is RRF&amp;klipper are not using bressenham. Unfortunately no firmware i am aware of is<br />
using S-curve motion planning (for 3d printing).  <br />
<br />
maybe my initial statement was not clear or confusing: using 8bit is ok as long as you not going to do trajectory planning on it as well. you can leverage the additional computational power of 32bit cpus and do everything on one board on one cpu. but that is not what i would aim for. i want the planning separate from the "interface" card, like it is done for ages in cnc. <br />
<br />
thus the ovm20lite fits my niche perfectly. the board and components are high quality (i worked as electrical engineer in industry as well).  For me it is perfectly fine to be able to choose between fine 32bit boards like Duet* and fine 8bit boards. the host part of klipper runs even on a 64bit PI. so 32bit is of yesteryear ;)  8bit firmware size is 12k.<br />
<br />
ps. i would not add pressure advance to the gcode interpreter / firmware as this belongs to the toolpath generator. in case of 3d printing the slicer, in case of cnc the CAM software. this is separation of concerns and you learn about it in 1st semester university. <br />
<br />
summarizing, i just wanted to thank @staticboards for their awesome work.]]></description>
            <dc:creator>xor_ea_ebx</dc:creator>
            <category>Controllers</category>
            <pubDate>Sat, 16 Dec 2017 08:00:10 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,791191,800993#msg-800993</guid>
            <title>Re: [NEW] OVM20 Lite, a simple board for lowcost printers</title>
            <link>https://reprap.org/forum/read.php?13,791191,800993#msg-800993</link>
            <description><![CDATA[ You are also ignoring some things:<br />
<br />
- The ARM interrupt latency includes the saving of some of the general purpose registers (5 of them AFAIR). So they are free to use immediately. The standard ARM ABI will only save additional registers if the ISR uses them.<br />
<br />
- The SAM4E processor used on the generation 2 Duets runs at nearly four times the clock frequency of the STC8 that you quote, and eight times the clock speed of a 16MHz atmega.<br />
<br />
So the comparison is between an ARM processor that has between 12 and about 24 clocks latency (allowing for wait states) at 128MHz but has some registers ready to use immediately, and the STC8 with 6 cycles latency at 33MHz but has no registers already saved, and you are likely to need to save more of them because each one is only 8 bits wide.<br />
<br />
In summary, the latency measured in nanoseconds about the same for the ARM processor and the STC8 (and about twice as long for the atmega), but the ARM is then capable of doing some work immediately, and doing it faster. That's why the Duets can generate step pulses much faster than an atmega, see [<a href="http://reprap.org/wiki/Step_rates" target="_blank"  rel="nofollow">reprap.org</a>].<br />
<br />
The linked article clearly says that the poor performance in the ARM ISR they measured was caused by a poor UART abstraction in the library they used. You don't have to use that library.<br />
<br />
8-bit processors still have applications (I use them in my IR sensors, and the Duet3D Smart Effector uses one), but IMO they are obsolete in high pin count applications such as 3D printer controllers.]]></description>
            <dc:creator>dc42</dc:creator>
            <category>Controllers</category>
            <pubDate>Sat, 16 Dec 2017 03:05:33 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,791191,800971#msg-800971</guid>
            <title>Re: [NEW] OVM20 Lite, a simple board for lowcost printers</title>
            <link>https://reprap.org/forum/read.php?13,791191,800971#msg-800971</link>
            <description><![CDATA[ from the linked article:<br />
<br />
"Another problem with ARM processors is the severe 12-cycle interrupt latency. When coupled with the large number of registers that are saved and restored in the prologue and epilogue of the ISR handlers, these cycles start to add up. ISR latency is one area where a 16 MHz 8-bit part can easily beat a 72 MHz 32-bit Arm microcontroller."<br />
<br />
from the arm reference manual: doing floating point instructions during an isr add 50 cycles latency (pushing and popping).<br />
<br />
dc42, maybe you should read the specs too. there can be wait stats because fetching from flash memory. this 12 cycles are they guaranteed or is it<br />
an unsafe lower boundary?<br />
<br />
from the Article: DMX 512 Receiver: ISR Latency: Atmel SAM D10: 391 Cycles, Atmel megaAVR 34 Cycles<br />
<br />
the mega avr has as well a latency of 5 clocks, but then register saving starts. this counts as well for the latency.]]></description>
            <dc:creator>xor_ea_ebx</dc:creator>
            <category>Controllers</category>
            <pubDate>Fri, 15 Dec 2017 17:19:30 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,791191,800965#msg-800965</guid>
            <title>Re: [NEW] OVM20 Lite, a simple board for lowcost printers</title>
            <link>https://reprap.org/forum/read.php?13,791191,800965#msg-800965</link>
            <description><![CDATA[ If you expect to be taken seriously, please don't pollute this forum with wildly inaccurate information. The basic interrupt latency of the ARM Cortex M4 is 12 clocks. This may be increased to 18 clocks depending on the memory architecture, plus potentially a few wait states if the clock frequency is high and the memory can't keep up e.g. if the vector table is held in flash memory. Nothing like the 300 clocks you mentioned.]]></description>
            <dc:creator>dc42</dc:creator>
            <category>Controllers</category>
            <pubDate>Fri, 15 Dec 2017 15:54:53 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,791191,800961#msg-800961</guid>
            <title>Re: [NEW] OVM20 Lite, a simple board for lowcost printers</title>
            <link>https://reprap.org/forum/read.php?13,791191,800961#msg-800961</link>
            <description><![CDATA[ sorry dc42, i disagree. there are alternative firmwares available for 8bit controllers which allow high speed and smooth movements. e.g. there are at least teacup (which using a Gen7 board is also 32bit capable and below 40$ i guess -- if you like isolation milled boards) and klipper. <br />
<br />
what i think, and probably the creator of klipper, the path planning should happen on a compute host. i.e. a raspberry pi or pine64 or pc. additionally, all that<br />
bloated stuff like web-server, sd-card, lcd-panel, ethernet, ... should not be run on the real-time sensitive core mcu. <br />
<br />
if you read the article about the amazing 1$ microcontrollers at [<a href="https://jaycarlson.net/microcontrollers/" target="_blank"  rel="nofollow">jaycarlson.net</a>] you will see that an 8bit controller can have a <br />
much lower interrupt latency than your cortex-m3/4 and cost like &lt;1$. esp. the stmicro stc8 has an interrupt latency of only 6 cycles. compare this to your<br />
cortex with 300 cycles if NOT using floating point in the interrupt context. if the potentially expensive -- as in computation time -- planner runs on the host you<br />
could drive a delta bot easily with an 8bit controller. because the mcu does what it should do: emitting steps. nothing else. (ok some adc conversions, ...)<br />
<br />
so the question remains, why an atmega2560 and not an efm8 laser bee or the stc8 (or even an atxmega). <br />
<br />
i have 4 ovmlite20 boards running (and even replaced my duet wifi with one). i'm glad that these boards are absolutely minimalistic. <br />
<br />
regarding software correctness and reasoning about timing issues i prefer the simplicity of 8bit architectures. I don't like the added complexities due to <br />
cmsis and mbed.<br />
<br />
i'm not saying 32bit is crap. You have to pick the right part for the job. e.g. klipper runs on 32bit archs as well. so you can choose whatever you want.]]></description>
            <dc:creator>xor_ea_ebx</dc:creator>
            <category>Controllers</category>
            <pubDate>Fri, 15 Dec 2017 14:45:13 -0500</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,791191,791469#msg-791469</guid>
            <title>Re: [NEW] OVM20 Lite, a simple board for lowcost printers</title>
            <link>https://reprap.org/forum/read.php?13,791191,791469#msg-791469</link>
            <description><![CDATA[ Hmm, I don't see fuses?! Are they SMD or did you forget them?]]></description>
            <dc:creator>o_lampe</dc:creator>
            <category>Controllers</category>
            <pubDate>Sat, 07 Oct 2017 12:46:20 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,791191,791439#msg-791439</guid>
            <title>Re: [NEW] OVM20 Lite, a simple board for lowcost printers</title>
            <link>https://reprap.org/forum/read.php?13,791191,791439#msg-791439</link>
            <description><![CDATA[ He'd certainly get some of my money at those prices.]]></description>
            <dc:creator>obelisk79</dc:creator>
            <category>Controllers</category>
            <pubDate>Sat, 07 Oct 2017 06:56:46 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,791191,791380#msg-791380</guid>
            <title>Re: [NEW] OVM20 Lite, a simple board for lowcost printers</title>
            <link>https://reprap.org/forum/read.php?13,791191,791380#msg-791380</link>
            <description><![CDATA[ <blockquote class="bbcode"><div><small>Quote<br /></small><strong>VDX</strong><br />
@dc42 - aren't you a bit too negative?</div></blockquote>
<br />
Perhaps... but I think he has missed a great opportunity. If he can make atmega2560 boards in Spain and sell them for $37, he could make make a 32-bit ARM Cortex M4 board with the same drivers and expansion capacity (no networking) and sell them for about $34 with the same profit, which would open up a whole new market. Or add WiFi and still keep the price below $37.]]></description>
            <dc:creator>dc42</dc:creator>
            <category>Controllers</category>
            <pubDate>Fri, 06 Oct 2017 10:22:12 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,791191,791353#msg-791353</guid>
            <title>Re: [NEW] OVM20 Lite, a simple board for lowcost printers</title>
            <link>https://reprap.org/forum/read.php?13,791191,791353#msg-791353</link>
            <description><![CDATA[ Thank you for your opinions, andI understand your point.<br />
<br />
But I see that the world is big enough, and we all are different. People have different interests and objectives in life. The power of the community is to help others with their different needs.<br />
<br />
As I said, not everybody needs a new full featured board. And the fact is that we already sold hundreds of OVM20 lite here in Spain. So, definitively, there is a demand for this kind of electronics.<br />
<br />
This board is easy, and well supported because it works perfectly with marlin. There are a lot of good tutorials for arduino, and marlin, and that is a great value for the community.  It has powerful mosfets and reliable connectors, and that is a real and needed point. You will have less problems, and you will save time.<br />
<br />
We are following the 32bits developments, and I am sure that we will release a new powerful 32bits board in the future.<br />
<br />
thank you.]]></description>
            <dc:creator>staticboards</dc:creator>
            <category>Controllers</category>
            <pubDate>Fri, 06 Oct 2017 05:10:10 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,791191,791329#msg-791329</guid>
            <title>Re: [NEW] OVM20 Lite, a simple board for lowcost printers</title>
            <link>https://reprap.org/forum/read.php?13,791191,791329#msg-791329</link>
            <description><![CDATA[ @dc42 - aren't you a bit too negative?<br />
<br />
I'm using Marlin4Due with RADDS since 2 years now for pastedispensing and laser-engraving without problems and with up to 400mm/s moving speeds ...]]></description>
            <dc:creator>VDX</dc:creator>
            <category>Controllers</category>
            <pubDate>Fri, 06 Oct 2017 02:55:49 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,791191,791274#msg-791274</guid>
            <title>Re: [NEW] OVM20 Lite, a simple board for lowcost printers</title>
            <link>https://reprap.org/forum/read.php?13,791191,791274#msg-791274</link>
            <description><![CDATA[ <blockquote class="bbcode"><div><small>Quote<br /></small><strong>obelisk79</strong><br />
dc42, I don't know of any decent $37 32bit boards. do you? I'd love to see one.</div></blockquote>
<br />
I would love to see a good low-cost 32-bit board too, but nobody seems to have produced a good, low cost, open source 32-bit design - even though it would be cheaper to manufacture than the current 8-bit designs. It isn't worth a professional designer like me designing one, because if it isn't successful then I won't cover my costs, and if it is then it will get cloned by Chinese manufacturers and I won't be able to make a living out of it, even though people will still expect me to support it.<br />
<br />
In fact I did most of the design for a low cost 32-bit board in early 2015, and the design (with PCB not fully routed) is in my github repository. I gave up on it when $50 32-bit boards started to appear. But that design is out of date now, because technology has moved on in those 2+ years.]]></description>
            <dc:creator>dc42</dc:creator>
            <category>Controllers</category>
            <pubDate>Thu, 05 Oct 2017 14:55:38 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,791191,791271#msg-791271</guid>
            <title>Re: [NEW] OVM20 Lite, a simple board for lowcost printers</title>
            <link>https://reprap.org/forum/read.php?13,791191,791271#msg-791271</link>
            <description><![CDATA[ <blockquote class="bbcode"><div><small>Quote<br /></small><strong>staticboards</strong><br />
yes, I have the idea of a board with 32bits for a more "pro" version. I think that we need a better technology right now.<br />
<br />
but at this point, marlin with the atmega chip is a stable platform, and there is a lot of very good documentation.<br />
<br />
I think that there is space for both products. That is why we use the name "lite" for this board.</div></blockquote>
<br />
I suggest you stop worshipping the false god Marlin.<br />
<br />
Marlin served the 3D printing community well when we only had 8-bit platforms. Now it's a dinosaur. It still has an archaic system that requires you to edit the firmware source, recompile and upload firmware to make changes. It still uses the Bresenham approximation, which was designed for drawing images on pixelated screens, and is arguably OK for slow-moving CNC machines but fails to provide smooth movement on 3D printers. It still doesn't compute the step timings for acceleration and deceleration phases accurately. It still generates segmented movement when controlling delta printers. It doesn't provide a web interface. It doesn't provide least-squares autocalibration for delta printers, or for calculating adjustments to bed levelling screws.<br />
<br />
What the Marlin devs should have done at least two years ago was to create a separate source tree for a 32-bit version, so that they could make use of the power and more importantly the additional RAM provided by 32-bit processors. But they didn't (although there is at least one 32-bit fork). I realise that the Marlin devs have in many respects done an excellent job of supporting 8-bit platforms given the limited resources they provide, but they have singularly failed to move with the times.<br />
<br />
Even in the 8-bit firmware space, Repetier is better than Marlin in important respects. It has a standard web-based tool to generate the config file. Until very recently, it was the firmware of choice for owners of delta printers with 8-bit electronics, because Marlin was so bad at controlling delta printers (leading to stuttering) and didn't provide sufficient delta calibration parameters (the RC fork of Marlin had a form of auto calibration, but it didn't always work and the fork wasn't maintained).<br />
<br />
There are two excellent firmwares for 32-bit processors: RepRapFirmware and Smoothieware. Both are being developed actively. I don't think you will find a user of either of those firmwares who would voluntarily go back to Marlin - they are so much easier to use.<br />
<br />
There is certainly room in the market for a 'lite' board - meaning a board with e.g. 4 stepper drivers rather than 5 and limited expandability - but 'lite' doesn't have to mean crippled i.e. putting in a MORE EXPENSIVE aging 8-bit processor plus a separate USB-to-serial converter chip, instead of a modern and cheaper 32-bit ARM processor.<br />
<br />
I'm sorry if this seems like a rant, but as a professional electronics design engineer I find it crazy that someone chooses to design a system around a obsolescent 8-bit processor costing more than twice as much as a modern ARM processor, especially when firmware for the 32-bit chip is already available. If I did a design like that for an employer, I'd be sacked.]]></description>
            <dc:creator>dc42</dc:creator>
            <category>Controllers</category>
            <pubDate>Thu, 05 Oct 2017 14:45:07 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,791191,791248#msg-791248</guid>
            <title>Re: [NEW] OVM20 Lite, a simple board for lowcost printers</title>
            <link>https://reprap.org/forum/read.php?13,791191,791248#msg-791248</link>
            <description><![CDATA[ yes, I have the idea of a board with 32bits for a more "pro" version. I think that we need a better technology right now.<br />
<br />
but at this point, marlin with the atmega chip is a stable platform, and there is a lot of very good documentation.<br />
<br />
I think that there is space for both products. That is why we use the name "lite" for this board.]]></description>
            <dc:creator>staticboards</dc:creator>
            <category>Controllers</category>
            <pubDate>Thu, 05 Oct 2017 11:58:04 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,791191,791246#msg-791246</guid>
            <title>Re: [NEW] OVM20 Lite, a simple board for lowcost printers</title>
            <link>https://reprap.org/forum/read.php?13,791191,791246#msg-791246</link>
            <description><![CDATA[ dc42, I don't know of any decent $37 32bit boards. do you? I'd love to see one.]]></description>
            <dc:creator>obelisk79</dc:creator>
            <category>Controllers</category>
            <pubDate>Thu, 05 Oct 2017 11:56:06 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,791191,791214#msg-791214</guid>
            <title>Re: [NEW] OVM20 Lite, a simple board for lowcost printers</title>
            <link>https://reprap.org/forum/read.php?13,791191,791214#msg-791214</link>
            <description><![CDATA[ I don't mean to demean your efforts; but why did you design yet another board using the same tired old atmega2560 architecture, when it would have cost you <b>less</b> to use an ARM Cortex M4 processor, and the resulting board would have been far more capable?]]></description>
            <dc:creator>dc42</dc:creator>
            <category>Controllers</category>
            <pubDate>Thu, 05 Oct 2017 09:08:17 -0400</pubDate>
        </item>
        <item>
            <guid>https://reprap.org/forum/read.php?13,791191,791191#msg-791191</guid>
            <title>[NEW] OVM20 Lite, a simple board for lowcost printers</title>
            <link>https://reprap.org/forum/read.php?13,791191,791191#msg-791191</link>
            <description><![CDATA[ Hello!<br />
<br />
My name is Javier Loureiro, and for the last couple of years, I was assembling and selling the RAMPS 1.4 SB.<br />
<br />
During those years, I got many questions from new users: which driver should i use? is it my arduino mega good? how do I plug the drivers?<br />
<br />
So, I had the idea of a new board, that tries to simplify the basic 3d printer kit. It is not a "competitor" for other boards with more features. It is a board that will do the basics, but it will do it very well, at a fair price.<br />
<br />
Best features:<br />
<br />
- Full compatible with Marlin. No need for special drivers and configurations. You setup marlin like RAMPS 1.4, and it works. It works with the default setup from github. Download and upload (obiusly, you need to tune your printer anyway).<br />
<br />
- Easy to assemble. One single purchase, with less options, missunderstandings, etc. It is ideal for kits, schools, workshops, etc.<br />
<br />
- Powerful mosfets with extreme low internal resistance. They keep about 50º celsius (tested in sevilla, spain, during summer). The board is simple, but powerful.<br />
<br />
- Branded Molex, no cheap dangerous power connectors. You can print for hours, days and months.<br />
<br />
- 4 copper layers: better heat dissipation, longer life.<br />
<br />
- Beautiful design!! black pcbs with blue leds are gorgeous smiling smiley<br />
<br />
I understand, (and I agree) that most of the makers will prefer more options, expansions, and hacking choices. But imagine a school, a workshop, or a shop that sells basic kits. In that case, I belive that the ovm20 lite is a fantastic and reliable alternative.<br />
<br />
<div id="div_29558927f141652d6128657abc0c7bc8"
     class="mod_embed_images_extended"
     style="width:400px">

  

    
      
    

    <div id="imagediv_29558927f141652d6128657abc0c7bc8" class="mod_embed_images_image"
         style="width:400px; height:400px">

    

    <a href="https://i.imgur.com/FOyiJUI.jpg">
        <img src="/forum/thumbcache/486/6fc/264/751/095/ad1/83e/001/be7/500/98_800x400.png"
             width="400"
             height="400"
             id="image_29558927f141652d6128657abc0c7bc8"
             alt="FOyiJUI.jpg"
             title="FOyiJUI.jpg"/>
    </a>

    

    </div>

    <div class="mod_embed_images_info " id="info_29558927f141652d6128657abc0c7bc8"
      style="display:block">
      <a id="link_29558927f141652d6128657abc0c7bc8" href="https://i.imgur.com/FOyiJUI.jpg">FOyiJUI.jpg</a>
    </div>

  

 </div>


<script type="text/javascript">
mod_embed_images_loadimage('29558927f141652d6128657abc0c7bc8', '/forum/thumbcache/486/6fc/264/751/095/ad1/83e/001/be7/500/98_800x400.png', 'https://i.imgur.com/FOyiJUI.jpg', 'https://reprap.org/forum/addon.php?13,module=embed_images,check_scaling=1,url=https%3A%2F%2Fi.imgur.com%2FFOyiJUI.jpg', '', 791191, 800, 400, 'Loading image ...', false);
</script>
<br />
<br />
We assemble the board in Spain. Here we have a small pick and place and we assemble and test everything here, step by step.<br />
<br />
Here you have the full list of features [<a href="https://www.staticboards.com/products/ovm20-lite/" target="_blank"  rel="nofollow">www.staticboards.com</a>]<br />
<br />
and we are today on hackaday! [<a href="https://hackaday.com/2017/10/04/refurbishing-an-old-p3steel/" target="_blank"  rel="nofollow">hackaday.com</a>] the board fits perfectly for a prusa steel, and the author decided to talk about the experience on the blog. That is why we decided to post more information here.<br />
<br />
If you like to try it, we have the board available on tindie: [<a href="https://www.tindie.com/products/staticboards/ovm20-lite-100-compatible-with-ramps-14--marlin/" target="_blank"  rel="nofollow">www.tindie.com</a>]<br />
<br />
I am 100% sure that you would do it on some other way, but I tried to keep the project simple and compatible. Hope you like this idea too!<br/>]]></description>
            <dc:creator>staticboards</dc:creator>
            <category>Controllers</category>
            <pubDate>Thu, 05 Oct 2017 06:29:51 -0400</pubDate>
        </item>
    </channel>
</rss>
