Session 5 - 20 March 2016 - Getting images, BitScope version

Previous sessions

  • Session 1 : Powering the board, power use, first (bad) trigging and echoes (06 March 2016)
  • Session 2 : Non-controlled pulsing, inverters, better echoes (11 March 2016)
  • Session 3 : Getting controlled pulsing, but width not controlled (15 March 2016)
  • Session 4 : Width of the pulses is getting controlled =) (19 March 2016)
  • Session 4b : Simple data visualisation with BitScope (19 March 2016)
  • Session 5 : moving the transducer to get the first image (20 March 2016)
  • Session 6 : Getting a clinically usable image (28 March 2016)
  • Session 7 : Getting cleaner images - code improvements (3 April 2016)
  • Session 8 : Comparing acquisition speeds (3 May 2016)

    Today

Goal

Getting an actual image through the BitScope tool.

TL;DR

  • Not too bad =)

Setup

Organization

  • Overall lab place

  • Detail of the transducer pool, along with the servo, and the servo/transducer cables

  • Detail of the transducer head and the rotating device. Yes, it's cracked, but it works!

Hardware

  • Murgen 1.0
  • Hackaday Trinket Pro
  • 5/3.3V alim
  • Bitscope micro (BS05)
  • A haribo box
  • A servo
  • A transducer

Remarks

  • Same setup as Session 4, and same remarks apply.
  • The servo is added
  • We are not tapping into the full HighVoltage potential of the board, we could still get a clearer image.

Give me files

  • The code lies at bitscope/acquire_image.py to acquire a full image
  • Repeated measurements for a line are at bitscope/bitscope_data/single_line/*.log
  • The data for images is at bitscope/bitscope_data/full_image/*.log
  • Creating images from the logs is at bitscope/bitscope_data/full_image/CreateImage.py
  • Bulking image creations is at bitscope/bitscope_data/full_image/BatchImage

Discussion and issues

Discussion

  • The Acquire_Image.py script is listening on both the Pin11 of the trinket (to get the "Position Pulse" and hence determine where the line is) but also from the TestPoints 2/3 on the murgen board. Therefore, the BitScope needs to listen on both Analog channels, and it imposes that the framerate is divided to 5MHz.
  • Getting the first logs using BitScope Python API
  • Getting the first raw image
  • Getting the first SC: --length of each image is custom, as the header containing the position changes --ScanConversion is heavy, so we are proposing a decimation

    Issues

  • BitScope only trigs on "wide" pulses, so we had to add a 10us pulse from the Arduino so to trig on this signal, not on errors from the Arduino pulser. We got Pin11 do this, still playing with PORTB.
  • Python is slow... so if we look at the full image logs, we see that the image takes 2.5s roughly to get 60 lines. Thanks to Python. We are missing a couple of the lines. Thanksfully, we know were each line was shot!

Next steps

  • Using the SPI on the TGC, controlled via the Trinket
  • How to work only on 1 channel, so that we can get 20Msps with the BitScope instead of the 5Msps ?
  • Use a better ScanConversion
  • Having TP5/6 work =)

results matching ""

    No results matching ""