Project:RELaserSoftware
Reverse Engineering Laser Software
The laser software by Leetro is bad, we need to know about the .mol file that is created by it so we can create our own in some fashion. Also if it does anything fancy when it downloads itself via USB.
Background
The software is available here. Please scan this with antivirus software before use.
There is a special patched version that cannot currently (but hopefully one day) will be useful for exploring .mol files on babbage in EB4890's folder.
- Manual for the MPC6515 controller (uses Modbus over serial for the control panel)
- Note that this says there's software bounds protection with firmware versions 4.1.0.0 or above (once origin is set)
- Firmware for MPC6515 controller (and LaserCut software again)
- the firmware is in the "And tools update" .rar file
- the above, translated by google
- Has comments on the .ini file settings
- Documentation for the MPC03 (previous version, we're MPC05) with .ini file info
- DSP chip and compiler. See also, GDB toolchain. These chips are end-of-line, but were supported by GCC up to 4.2.
Current State of work
- We have some knowledge of the .MOL format
- We have a .TXT to .MOL compiler based on a dll. (Windows or Wine only)
- We have a .TXT parser/generator using python and construct
Currently to do
- Figure out DXFs - A python to dxf to pdf converter might be useful. It seems to have got swallowed by by gaping maw of broken links. I've not found a stand alone parser.
- Figure out which parts of the TXT file correspond to which function calls, so we know how to generate meaningful TXT files.
- More work on .Mol files?
Current Repo
Current Repo of work done by user:JasperWallace
Initial Analysis of .mol file
Looking at: /Solexious/MarioBoxes/MINIMARIO.MOL
No ASCII strings (looking using strings)
Does not appear to be compressed (too many zeroes)
0x000 | Header |
0x200 | One set of information What? |
0x400 | Another set of information. |
0xa10 | Likely co-ordinate data. Quite repetitive. Analysis document was mario boxes, with many repetitions of sub boxes, so that makes sense. It looks like possible 16bit number co-oords as the numbers range from a few thousands to hundreds. 32bits are in unrealistic ranges (huge in negative ranges). |
Projects/RELaserSoftware/Compilation traces
USB
Projects/RELaserSoftware/USB protocol
State Dump
Now all in this mercurial repo:
Random Links that may be useful
- http://www.solustan.com/linkmotion_and_leetro.php
- http://www.rabbitlaserusa.com/DriverDisk/MPC03/MPC03LV3030/MPC03-LV%203.0.3.0/
- http://www.rabbitlaserusa.com/0/
Driver
Works for VID 0548, PID 1005. Description of the device is EZ-USB (68013A), which is basically a serial interface.