Gonk Python Tools Bundle

Unzip and install the bundle.

unzip gonk_bundle.zip
cd gonk_bundle
./setup.sh

Flash a Gonk for the first time:

. ./python-venv/bin/activate
gonk-flash

or without activating the Python virtualenv:

./python-venv/bin/gonk-flash

Log ADC measurements

Logging

By default these log files are created:

  • Host log messages are set to: --logfile gonk-host-log.txt
  • Device (logs from Gonk) are set to: --device-logfile gonk-device-log.txt
  • CSV output is set to: --csv-logfile gonk-csv-log.txt

Note: Log files are always erased on startup whenever running gonk. You can append instead with --no-truncate-logfiles.

Logs are not normally written to the terminal but can be using --log-to-stderr.

Optionally you can add ADC json output with --json-logfile gonk-device-logs.json. That will produce a json lines file with each line corresponding to one ADC

Start Logging ADC Measurements

gonk --log-to-stderr

This will provision the FPGA if necessary and begin logging ADC measurements.

  1. If necessary the FPGA bitstream file is sent over serial first. This normally occurs once per power cycle.

    20240507 12:35:33 [gonk] INF Waiting for bitstream -- lib/fpga_control/fpga_control.cc:53
    20240507 12:35:34 [host] INF Sending bitstream...
    20240507 12:35:34 [gonk] INF Waiting for bitstream -- lib/fpga_control/fpga_control.cc:53
    20240507 12:35:34 [gonk] INF Discard byte: 1 -- lib/fpga_control/fpga_control.cc:65
    20240507 12:35:34 [gonk] INF Discard byte: 2 -- lib/fpga_control/fpga_control.cc:65
    20240507 12:35:34 [gonk] INF Discard byte: 3 -- lib/fpga_control/fpga_control.cc:65
    20240507 12:35:34 [gonk] INF Discard byte: 4 -- lib/fpga_control/fpga_control.cc:65
    20240507 12:35:34 [gonk] INF Start Sequence found. -- lib/fpga_control/fpga_control.cc:71
    20240507 12:35:35 [gonk] INF Got bytes: 4096 -- lib/fpga_control/fpga_control.cc:84
    ...
    20240507 12:35:36 [gonk] INF Got bytes: 4096 -- lib/fpga_control/fpga_control.cc:84
    20240507 12:35:36 [host] INF Done sending bitstream. Wrote 135100
    20240507 12:35:37 [gonk] INF Got bytes: 4024 -- lib/fpga_control/fpga_control.cc:84
    20240507 12:35:37 [gonk] INF All 135100 bytes recieved. -- lib/fpga_control/fpga_control.cc:92
    20240507 12:35:37 [gonk] INF File ready: 135096 -- lib/fpga_control/fpga_control.cc:102
    20240507 12:35:37 [gonk] INF First 12 bytes -- lib/fpga_control/fpga_control.cc:104
    ...
    20240507 12:35:37 [gonk] INF Last 12 bytes -- lib/fpga_control/fpga_control.cc:109
    ...
    20240507 12:35:37 [gonk] INF Sending bitstream file to the FPGA. -- lib/fpga_control/fpga_control.cc:118
    20240507 12:35:37 [gonk] INF FPGA Config Success. -- lib/fpga_control/fpga_control.cc:162
    
  2. ADC measurements begin logging.

    20240927 13:17:33 [gonk] INF host_time: 20240927 13:17:33.861429 size: 72 delta_microseconds: 283 vbus: 0.7992187500000001, 1.0109375, 5.1365234375, 1.0869140625, 0.9955078125000001, 3.3822265625, 1.8113281250000002 vshunt: 0.3496354166666667, 0.048240625, 0.28776875, 0.07383203125, 0.13364583333333332, 0.2599479166666667, 0.005157500000000001 power: 0.27943518066406253, 0.0487682568359375, 1.4781309289550784, 0.08024907302856445, 0.13304547119140625, 0.8792027486165367, 0.009341924804687502
    ...
    20240927 13:17:33 [gonk] INF host_time: 20240927 13:17:33.861758 size: 72 delta_microseconds: 287 vbus: 0.8146484375, 0.995703125, 5.1365234375, 1.0869140625, 0.9955078125000001, 3.3822265625, 1.7966796875000002 vshunt: 0.34727083333333336, 0.048484375, 0.24190000000000003, 0.07353125, 0.1345138888888889, 0.26787500000000003, 0.00515625 power: 0.282903641764323, 0.04827604370117188, 1.2425250195312503, 0.07992214965820313, 0.13390962727864586, 0.9060139404296876, 0.009264129638671877
    

    Measurements can be stopped or started by pressing Enter. This text should appear in the terminal:

     [Send: '\n']
    

    Followed shortly by a message from Gonk stopping continuous reading:

    20241003 16:39:04 [gonk] INF Stopping ADC Continuous Reads. -- applications/gonk/main.cc:134
    20241003 16:39:05 [gonk] INF ADC Idle; Press Enter to start/stop reading -- applications/gonk/main.cc:86
    20241003 16:39:06 [gonk] INF ADC Idle; Press Enter to start/stop reading -- applications/gonk/main.cc:86
    20241003 16:39:07 [gonk] INF ADC Idle; Press Enter to start/stop reading -- applications/gonk/main.cc:86
    

    Pressing Enter again will resume continuous reading.

    Ctrl-C will exit the gonk app.

Plot the CSV data

You can create an SVG of the plot data stored in gonk-csv-log.txt with:

gonk-plot -i gonk-csv-log.txt -o plot.svg

Omit the svg output option to start an interactive matplotlib window:

gonk-plot -i gonk-csv-log.txt