I would like to build a custom target that can be tracked by the old dinosaurs Geodimeter 600 / Trimble 5600. I can't find information about the IR LED circuit used in the RMT targets. I would like to know the carrier signal of those IR lights. Maybe someone with an old RMT target can help me out? An oscilloscope and a photocell or directly tapping the IR LED should reveal the the carrier signal.?ÿ
My plan is to use an ESP32 micro controller and IR LEDs to recreate the RMT signal, basically an RMT target in a tiny form factor, with a button and wifi connection to another ESP32 connected to the RS232 interface at the total station.
All the best,
Shu
I also looked at doing this a while back and decided that there were too many used ones on my shelf to make it make sense.?ÿ I have been thinking that the S6 active target would make a more suitable effort, at least for me.?ÿ I was thinking of using an oscilloscope, but, it is not my field of expertise
search on here, there was discussion about this a awhile ago, maybe with the guy who plastic prints the prism assembly
Hey Norm, if you're still into the idea, I'm happy to guide you to take some measurements. It shouldn't be difficult to hook up an oscilloscope. A simple photocell pointed right at the IR LED should reveal the waveform.
I would look into the S-series tracker targets if I would have such an instrument at hand. As surveying is not my day job, just a fascinating hobby, I only have a couple 20+ year old instruments. As the active S targets have 8 channels, I'm wondering if they use more than just a simple carrier frequency and actually encode data, like a TV remote.
James, that might actually be me that you are thinking of with the printing, LOL. I just don't know electronics well enough to use, nor have I ever used, an oscilloscope
I'm game.?ÿ Surveying is my day job, you just wouldn't know it with all of the printed plastic everywhere.?ÿ Since the older style RMT and the new active targets use a different frequency or something that makes them non compatible, I can't help but wonder with a few Arduino commands if both compatibility's could be had off the same LED's.?ÿ I know that we need to know more to figure that out, but, common that would be cool!
?ÿ
So what would be the minimum requirements for a photo cell and a oscilloscope??ÿ Thinking cheap one time use for me at least ...
?ÿ
Is something like this sufficent??ÿ I am only reading about half of what the specs are ...
I'm game. (...)
Is something like this sufficent??ÿ I am only reading about half of what the specs are ...
I assume the carrier frequency is much higher than the sampling rate of that cheap oscilloscope. From a quick glance at Amazon's sub $100 oscilloscope shelf I discovered cheap ones with a reasonable sampling rate (20 Msps = 20 Megasamples per second), example: https://www.amazon.com/all-sun-EM125-Handheld-Oscilloscope-Channel/dp/B013QQDTFW/
However, I have zero experience in with 'no name' oscilloscopes. I don't know any regular brand that offers such cheap instruments. Do you have a hackspace?ÿ or makerspace close by? Maybe visit them with the targets?
Yes, if the carrier and data are within reach for the micro controller we should be able to switch between channels and old/new style with ease. I could make a couple of ring shaped PCBs with LEDs, LED drivers, a small LiPo charger IC, USB for charging...?ÿ
In general I think there's still room for innovation on the target end. If there's already a micro controller in there, why not include an IMU? Not for serious work, but for everything else I would love a magic wand with tracker and IMU. Point anywhere with any angle and use the IMU to add the correct vector. Great for undercuts, difficult to reach areas. Way faster than a staff with two prisms mounted in series. Don't you hate it when your assistant shows up drunk? Use the magic wand, no need to have the target plumb 😉
Ok, I knew the solution wasn??t going to be cheap tools. ?ÿNow I know more of what is needed though. ?ÿI am trying to imagine if you had asked me to survey your property with an Amazon total station ....
Norm, as you are making your own enclosures for the targets, do you happen to have one torn down or can you take one apart to snap some photos? Macro shots of the PCB would be cool.
Richard, that's gold. Thank you!
@Norm, don't bother, Rich just posted a detailed maintenance manual. I'll have a look at that first.
I haven't looked at that one for a year or so, but if the 606/604 IR frequencies are not in there, I'm fairly sure I have a slightly different/older version that stated the frequency. She's been a long road, but when 4 years ago I got my Geodimeter 650 ex USA (from someone who posted a couple of times on this Forum), then acquired (at high price, the RMT, ex USA also) and saw that thing spin and track, well ... Added my own homebrew radios ... SurvCE ... .RTK is the king, and we try and use it exclusively, but robotic TS is more satisfying.?ÿ
Better than gold!
That's going to be a good evenings reading! Well done.
There was a guy around offering for sale a full GDM/5600 maintenance manual, for around $1000 ... My one remaining issue is alignment of the tracker to the optical scope. On the GDM 650 that we use, it is off about 25mm at 200m, but I also have an equivalent 5601 that is off about 300mm at 200m, which must affect distance measurement (angle diff is taken care of by the in built calibration procedures). There are shops around, nowadays exclusively USA, that say they can align the tracker as part of their routine calibration suite, but for me at the edge of the earth, per instrument that's $300 each way shipping plus $700 shop ... I can see why S'series combined the tracker with the scope, but the manuals for that do indicate a misalignment as being normal (and if it's outside tolerances - send it to the shop, too), so maybe the issue wasn't resolved.
That misalignment is more than you would expect, but it isn't really going to make any difference to the measured distance UNLESS you are getting a very weak signal due to range or obstructions/atmosphere. As long as the instrument locks on OK there shouldn't be a problem. In my experience the 600 series never reached the range abilities for finding the target that the 4400 used to have - generally the 4400 used to get at least an extra 50 metres.
Yep. The GDM manual does say (from memory) that for accurate distance measurement, one of the 360 degree RMT mini prisms must be aligned to the instrument.?ÿ (We wont be doing that for each topo shot, and probably wont check that when doing control). So presumably with a 300mm tracker misalignment at 200m, if you rotated the RMT it would give different distance readings. We have 1 arc second GDM and 5600's, so for angle that's 1mm at 206m, so maybe with a 300mm tracker misalignment that's going to "add" maybe 5mm to that.?ÿ?ÿ
My comment referred to the "block" target rather then the 360 prism. With the 360 prism then rotating it will change the actual physical length of the measured line by 1-2mm. as the observed line moves from the centrally facing prism position to mid-way between two adjacent prisms.
With a misalignment measure, the actual distance doesn't change, just that the "pointing" is offset from the prism centre. The effect then is only noticeable if the signal strength drops sufficiently to affect the accuracy.
After all, for accurate non-contact shots into a corner you would probably point onto the solid face near the corner, take the distance and then swing across to point at the exact corner for the angle. The instrument is designed to "hold" the distance over a 30cm. swing.
If you apply pythagoras to a triangle 200m by 0.3m the change is well smaller than the measuring ability of the instrument; for closer distances the misalignment is still the same angle difference, so proportionately the error would become smaller still.
Oscilloscope ordered and I have to stay off my knee for a while according to the doc, so, sitting by the lake learning electronics ...?ÿ?ÿ This is going to be interesting
I got a prototype working:
source code:
?ÿ //ESP32, LED driver connected to D5 #include #include #include #include const char* ssid = "SSID"; const char* password = "WPA-KEY"; const int ledPin = 5; // setting PWM properties const int freq = 7812; const int ledChannel = 0; const int resolution = 4; void setup(){ Serial.begin(115200); Serial.println("Booting oss-rmt"); WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); while (WiFi.waitForConnectResult() != WL_CONNECTED) { Serial.println("Connection Failed! Rebooting..."); delay(5000); ESP.restart(); } // Hostname defaults to esp3232-[MAC] // ArduinoOTA.setHostname("oss-rmt"); // No authentication by default // ArduinoOTA.setPassword("admin"); // Password can be set with it's md5 value as well // MD5(admin) = 21232f297a57a5a743894a0e4a801fc3 // ArduinoOTA.setPasswordHash("21232f297a57a5a743894a0e4a801fc3"); ArduinoOTA .onStart([]() { String type; if (ArduinoOTA.getCommand() == U_FLASH) type = "sketch"; else // U_SPIFFS type = "filesystem"; // NOTE: if updating SPIFFS this would be the place to unmount SPIFFS using SPIFFS.end() Serial.println("Start updating " + type); }) .onEnd([]() { Serial.println("nEnd"); }) .onProgress([](unsigned int progress, unsigned int total) { Serial.printf("Progress: %u%%r", (progress / (total / 100))); }) .onError([](ota_error_t error) { Serial.printf("Error[%u]: ", error); if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed"); else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed"); else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed"); else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed"); else if (error == OTA_END_ERROR) Serial.println("End Failed"); }); ArduinoOTA.begin(); Serial.println("Ready"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); // configure LED PWM functionalitites ledcSetup(ledChannel, freq, resolution); // attach the channel to the GPIO to be controlled ledcAttachPin(ledPin, ledChannel); //quick test: ledcWrite(ledChannel, 15); delay(500); ledcWrite(ledChannel, 0); delay(500); ledcWrite(ledChannel, 7); delay(500); ledcWrite(ledChannel, 0); delay(500); ledcWrite(ledChannel, 15); delay(500); ledcWrite(ledChannel, 0); delay(500); ledcWrite(ledChannel, 8); } void loop(){ ArduinoOTA.handle(); ledcWrite(ledChannel, 8); }