Alternate codec firmware

From RepRap
Jump to: navigation, search

This is a page to discuss a codec method of communication and function of firmware for reprap machines. This page assumes you have knowledge of the following concepts

read up on codecs compressor-decompressor

read up on FEC Forward Error Correction

read up on CNC concepts including Acceleration around corners [1]

reprap forum discussing this is here reprapforum

Basically there are a few issues this codec will address.


First is use of Forward error correction to improve information being sent. Meaning your data arrives correct about all the time! (error rates low enough for wdt only, no checksum) Second Data is asynchronous, meaning there is no specific time that data is sent and received. there is no reliance on acknowledge. Third A method of compression will eventually be available to allow an incredible speed improvement to the data rate of information. this compression method will be explained soon.


This project is expected to take at long time to complete, and it will depend greatly on the community input. It will require testing and deployment and explanation in three phases. each will bring a great change in communication, and process ability of the reprap software, and the micro controllers that run in firmware. There has been great thought to make this a process of algorithms and procedures that a person can adapt and add into any micro controller. I do not want to disrupt the hardware investments of the rep rap community. I welcome comments in the forum section, as well as corrections.


This project is currently entering PHASE1

PHASE 1 - implementation of speed improvement of communication by removing checksum and acknowledge from data. This is not done from the host, but done by a port re-director (linux), or for windows machines a port replicator. the host will communicate with an application that interprets and modifies data to have Forward Error Correction built into data. this in theory doubles and triples data rates to micro controllers. The host program will communicate to the port replicator, the port replicator will relay that info to the codec program, and the codec program talks to the micro controller.

in phase 1 there will be very little modification outside the serial communication section of code on the micro controller. the main benefit here is proof of concept and speed up of communications.


PHASE 2 Compression algorithms based on angle, federate and distance will be applied to data, and micro controller code will be significantly different but capable of pulses per second greater that 50,000 times a second. I will explain in more detail how this works in the next few months.


  • PHASE 3 a script is written inside emc2, or equivalent software to disassemble the gcode data. Reprap host also could be rewritten with these advances in mind as well. Keep in mind the changes and algorithms used will be posted here along with examples.

Data will be reapplied with compression and Forward error correction to the micro controller. Angle and velocity information as well as Acceleration around corners. basically without changing anything, s 33% reduction in build time just for accelerating corners. new speed limits will be attainable with better acceleration algorithms, cpu and floating point power of a home pc, cellphone or pda will be the new platform. The main goal is for emc to be used and for mach3, or an equivalent program be used to send data to the micro controller. we are talking about insane speeds >500mm/s and the limit is the hardware and the printer design.


  • phase 3 is based on support level from community and interest in scripts for emc2, and on progress of emc to become available on portable devices such as pda's with >64meg of ram.