Geodimeter 400,500,4000,600 and Trimble 5500/5600 toolkit
For last few months I have been reverse engineering how 400/500/4000 series Geodimeters work. Browsing through assembler instructions, 100's of KB of code, different processor types... splitting data from instructions, making sense of arithmetic and math used in these units. Too much time invested. Here I bring (some and restricted) fruit of this work:
This link points to my personal repository on github, I will post there tools I have for these Geodimeter machines.
So far there is:
1. 600/5500/5600 station backup and restore tool (gdm600). To use it you need to read readme, and you need python3 installed.
2. 400/500/4000 magical interface
400/500/4000 series units are programmed and configured using special LabCard, this card is not manufactured anymore ( since 1988), and there are still few operating (at trimble service centers). But there is another way to program these stations. I have successfully replicated the protocol that these stations use. I am now able to program these station with data I want, enable programs I want, set serial number, coefficients.
If you have working station its possible to backup all data and restore them later. If your station is "cleared" - Error 51. You have problem.
For this problem I am working now on calibration rig, that attaches to station and moves vertical/horizontal axis. In the end it "should" come up with working coefficients. Don't expect this tool anytime soon. But hardware is ready now.
Geodimeter did this calibration at factory, stored these coefficients. And when battery died they just reupload the same values. (and make you pay $$$, yes they check the station's calibration, bla bla, but still ... $$$ you already payed).
I have gathered tons tons of information about the inner working of the stations, but it will take time to make it available.
If you have any trouble or improvements: use github's issue tracker. I don't visit the forum that often.
Impressing work! Many thanks! Have to find time to test this and make a memory dump. Have not used Python but I guess I will figure it out.
Here is a 5600 series user guide and ACU user guides.
That's a labor of love, and a definite +1
The Geodimeter 142, with the Geodat collector, were a traumatic experience as a younger filed hand.
I still have a copy of the operating instructions for the dc if I ever want to relive that horror.
I have updated the backup tool. There was slight error, and the backup could not be loaded easily. have fun.
@robots Have you downloaded functional firmware, erased the memory and then uploaded the firmware and it still works the same?
I did read your github notes and it seams that you fixed an error that would not pass the above test?
@bugg I have used different method to get the firmware. But when i built the "backup" tool to automate everything, i was lazy to test it and i copied mistake from different program.
Now it should be correct. Ill test it for you this evening. I have station that cant loose anything 🙂 I got it cleared.
I just posted latest fix to the upload utility. I have made so many changes, but never actually tested it. I did it now.
First screenshot is from backup utility. It takes 10 minutes or so, very slow over 9600 baud rate line.
Upload is also very slow, there is no counter, i was lazy to make one, it just shows which line is uploaded. After the end it will write "bad" but, its just that it didnt receive any reply. It takes a while for the station to boot and it timeouts sooner. Meh, i don't care 🙂 If you care, fix it and send fix 🙂
Just to make it clear: i just downloaded FW from my station, cleared it, and reuploaded the memory content. Correctly. Station is turned on now, shining laser on my wall and making UUUUU sound.
Testing is OK then! Well done! I am rather busy with other things for a couple of weeks but I will let you know when I have tried it.
I have added another tool - to upload full memory dump back into 600 CU. Problem is with creating of the dump. Right now i do that by replacing EPROM with modified one, that allows to dump whole memory. Original dumps only few kB of ram.
@robots One idea would be if it is possible the modernize the 5600 code with a point cloud function? Sweep an area using servo and fire away thousands of measuring points. Would increase the usability and value of the units. Or are the storage capabilities too slow?
@bugg you can do that externaly with serial commands. Just do the math, how many points? 1000? 10000? 1000000? how long does it taoe for edm to calculate distance? Multiply it by how many points you want and you are screwed. It will not fit into your workday.
First and only working prototype of "geodimeter multi interface".
This device serves multiple purposes:
- 400/4000/500 station programmer, also talks to 200 distance meter.
- serial port connection to 400/4000/500 stations (mostly for debug, and/or other uses)
- radio interface - for 600 station
- it provides output for hobby servos for 400/500 station calibration
First 2 points are already verified and working. The radio needs lot of firmware coding. Not done yet - corona lockdown was released and there is little time to work on hobby projects.
Calibration was tested on my own 400 station. I have been able to calibrate VA axis, bud no time to test HA axis. I have mechanical problem on this axis.
Hi robots, I am new to the site. Is there a way to upload this firmware to my Geodimeter 540n? If I get a serial cable to USB will it communicate with Windows 10? Thanks for your help and expertise you are a savior!
I am having problems reading out my 5602 , see pic.
Any suggestions ?