DSO150: and even more fun with usb

 There is now a very basic python/qt5 app in the pyDSO folder enabling you to do simple control & capture grab of the DSO 150

It *is* slow but kinda works



Comments

  1. My greatest respect for creating this alternative DSO150 firmware! Just tried the latest 1.0.7 release and it worked very well.

    Only the USB connection gives me some trouble on my Win10 system.
    The port HW is connected as per your instructions. The devices registers in the device manager as serial COM port. Opening a terminal with 115200 baud seems okay, but sending "DSO0" gives no response.

    What am I doing wrong?

    ReplyDelete
  2. indeed, If you see a "DSO" serial port it means the usb connection is ok
    Make absolutely sure you have no flow control (hw or sw)
    For information, i never tested it on windows, but i dont see why it wouldnt work

    ReplyDelete
  3. I just tried with teraterm on windows 10
    Sending DS0 i got the expected reply OSD0
    Windows detects a "maple" device

    ReplyDelete
  4. Settings are 115200, 8, 1, N, no flow control, ASCII coding, tried also CR/LF. USB is directly connected to the PC port, no hub. No success

    ReplyDelete
  5. I'm getting 2 new devices (reported from USBDeview.exe):
    "Maple USB composite device"
    "0000.001d.0002.001.000.000.000.000.000 serial USB device" at COM10
    The Win10 device manager only reports COM10

    ReplyDelete
    Replies
    1. Weird behaviour in my system..
      After a reboot the DSO's enumeration is now COM14.
      With TeraTerm the device replied correctly on COM14, but only once. Following pings are not answered.
      HTerm does not work at all.
      Is there any specific timing to be considered? Are any trailing characters allowed?
      Do you have any other example, apart from "DSO0", that gives a response?

      Delete
  6. That"s the expected behaviour
    The "DSO0" string is a handshake so that the scope switches to command mode
    The other commands are binary
    Please try with the python stuff, not tried on windows (it should work but not sure)
    A good starting point is pySerial_getInfo.py (python 3)
    https://github.com/mean00/DSO_STM32Duino/tree/master/pyUsb

    ReplyDelete
    Replies
    1. First success :)
      I've built my own simple terminal (with Lazarus/Pascal), for better control of the data. The device responds with "OSD0".
      From a look into "dso_usbCommands.cpp" and "dso_usbCommands.h" it seems a command is 32 bit long. Therefore, to get "FIRMWARE" I send binary 4 bytes "01" + "10" + "00" + "00" and received "03" + "01" + "07". Looks right :)
      No luck so far with reading captured data..

      Sorry for ignoring your python hint. I'm not that deep into software and had never to do with python..

      Delete
    2. Reading the captured data and the settings works fine and stable now :) Again I'm very impressed about your work. Chapeau!

      Some minor findings from along the way:
      - the timebase has one unusual setting that doesn't match the rest: u25. Is this intentional?
      - USB recognition does not work when the DSO is switched on, only when re-plugging. Most likely that is a particular "feature" of my device, caused by the startup voltage behaviour of my battery/step-up supply. But perhaps a slight start-up delay in firmware (0.5s?) would be benefical?

      - Would you mind to also implement to output a real screen-copy? In any raw pixel-format that also contains the colour information?

      Delete

Post a Comment

Popular posts from this blog

Component tester with STM32 : Part 1 ADC, Resistor

Fixing the INA3221

INA3221, weird wiring