| General > General Technical Chat |
| Review: Hantek DDS 3X25. Anyone own one? |
| << < (98/108) > >> |
| torch:
And now for something completely different... I have an eletronic invisible fence to keep the dog within the allowed boundary. In case you are unfamiliar with the concept, a loop of wire is buried a few inches underground, both ends are connected to two terminals of a mains-powered transmitter and the dog wears a collar that beeps if she approaches the boundary and gives her a little zap if she tries to cross it. Works very well. Unless the loop is broken, in which case the transmitter stops transmitting and starts beeping instead. I have about an acre and a half fenced off. The wire is under several feet of snow. The unit started beeping yesterday. Arrrgghh! The manufacturer will happily sell me a detector to locate the break. For about $100, you get a transmitter and a battery operated receiver. Hmmm, gee, I wonder how that works... So what has this to do with the Hantek DDS 3x25, you may ask? I have the transmitter mounted in the boathouse, so I dragged my laptop and DDS 3x25 down there, hooked one side of the wire loop to the output, grounded the Hantek with a jumper, set things for 29MHz @ 3.5v and went for a walk with a scanner tuned to the signal. Didn't work so well, faded in and out a lot. So I dropped the frequency to 600KHz, and took a cheap handheld transistor radio for a walk. That worked well. Very well. Too well. I could pick up the tone standing in the middle of the yard! I eventually dropped the Hantek's output voltage to 0.5v, which was strong enough to pick up the signal through the snowbanks but faded well as I moved away from the boundary. With this setup, I found the break within 15 minutes and localized it to within 3' of the actual location. Not what the thing was designed for, but what the hey, it worked... 8) |
| zibadun:
--- Quote from: torch on March 13, 2013, 10:25:26 pm --- With this setup, I found the break within 15 minutes and localized it to within 3' of the actual location. Not what the thing was designed for, but what the hey, it worked... 8) --- End quote --- Your 3x25 saved you time and money! Now you've got an almost free function generator :) |
| saturation:
Excellent! That's what EE knowledge is designed for, use what you have to fix what you want. Kudos! --- Quote from: torch on March 13, 2013, 10:25:26 pm ---And now for something completely different... Not what the thing was designed for, but what the hey, it worked... 8) --- End quote --- |
| asbokid:
--- Quote from: Bored@Work on August 05, 2011, 12:20:20 pm ---By the way, I am surprised that no one until now seems to have used a USB protocol sniffer to figure out what these magic DLL functions really send to the generator. For example to figure out if they do some own special math or if the generator gets the values more or less as provided to the functions. --- End quote --- In an attempt to knock something together for Linux, I'm looking at the URB (USB payloads) using Wireshark. The USB protocol used by the Hantek seems simple enough - it's only synchronous for starters. But it's not clear at this stage how the waveform data is actually encoded in the URBs. The PC host control software has to upload a maximum of 4096 datapoints to the Hantek. It does this in BULK OUT URBs, each of 64 bytes, padded where necessary. There is a simple handshaking protocol between the Hantek and the PC host control software. Initially, there is a pre-ample handshake, where the host controller confirms that the peripheral controller is responding. The host controller s/w uses a three byte BULK OUT command e.g. [A1 22 88] to tell the USB peripheral controller that it wants to send a new waveform. Each datapoint is encoded in the USB payloads using two bytes. The maximum positive amplitude (~ +3.3v) is represented by the two bytes [00 30], and the maximum negative amplitude (~ -3.3v) is represented by the two bytes [FF 2F]. And intermediate amplitudes are represented within those two limits. The controller then sends URBs, each of 64 bytes, containing 32 samples of 2 bytes each. After each waveform URB, the peripheral controller responds with a single byte [CC] reply on the BULK IN endpoint. Once the entire waveform has been uploaded in those 64 byte URBs, the host controller sends another three byte BULK OUT command. Similar to the three byte command sent earlier, but with bit 4 this time cleared, e.g. [A1 22 08]. That's as far as things have got to date. Wireshark is running on a Linux box, monitoring the USB bus traffic. Meanwhile the controller software, whether the official Hantek s/w, or mechatrommer's Goltek application, or Marmad's program -- all applications for Microsoft Windows -- is running in Windows XP as a Virtual Box guest operating system. cheers, a EDIT: 4096 datapoints, as expected |
| Fraser:
I recently purchased the Hantek 4032L Logic Analyzer and remembered that they also made a Function Generator / ARB with digital outputs. I have just ordered the new 1025G version of the 3X25. Apparently the 1025G can be used as a 10 output digital stimulus source in harmony with the 4032L. They even stack together for a compact desktop solution. I have spent the evening reading this thread so that I could understand the units behaviour a querks a little better. What a journey it has been for you all ! Thanks for sticking with the development. I would like to take this opportunity to thank Mechatrommer and all those who have helped in the development of the superior control application that is the 'Goldtek Controller'. You have made this piece of hardware so much more than Hantek released to market, and you have my sincere thanks for all the effort that you all put into developing the application for the benefit of all software challenged owners ! As soon as my 1025G arrives I will open it up and take some pictures of the PCB. It is likely identical to the 3X25 but it does not hurt to confirm it :) |
| Navigation |
| Message Index |
| Next page |
| Previous page |