Obtaining a PC that is suitable for high speed camera/SDR work typically entails building a PC from parts for $1K, or getting an appropriate off the shelf Dell Precision for $2.5K.
A desktop CPU is needed with a moderate amount of CPU cache memory and a motherboard with sufficient PCIe slots for the data acquisition cards used.
Some equipment such as software defined radio (SDR) requires dual 10-Gig Ethernet via a PCIe card, and some cameras require a CameraLink PCIe card.
Other devices with onboard FPGAs sometimes require USB 3.0 or Thunderbolt connections.
Don’t use USB 3.0 hubs between PC and the device!
For high frame rate camera acquisition, here are a few CPU series that are known to work well via lab experiment.
The “extreme” edition or Xeon CPUs are not necessary (unless the manufacturer specifies).
Note all these CPUs have at least 8MB of L3 cache (on the CPU die) and are vPro capable.
Please only use desktop quad core i7 CPUs with model number NOT ending in “U”.
Please consider avoiding:
“ultrabook” Intel CPUs that have a model number ending in “U”, such as the Intel NUCs presently use.
laptop computers or tablet computers.
CPUs with model ending in “K” as currently, overclockable CPUs don’t have Intel vPro remote management
Get a motherboard supporting vPro with no less than four USB 3.0 ports.
It’s not wise to cascade USB 3.0 hubs.
Four USB 3.0 seven-port hubs allow up to 28 USB 3.0 HDD, to get hundreds of TB of external storage.
That’s enough storage for 3 months of 12 hour recording per day, or far longer (years) if filtering out unneeded data off-line.
This example assumes use of Andor Solis (paid software), which provides the drivers for the Neo.
Free open-source
MicroManager
can be used with the Andor sCMOS cameras after installing Andor’s free driver pack for MicroManager.
If the Neo drivers or Neon Bitflow CameraLink drivers are missing, Windows Device Manager will look like:
Windows Device manager without driver for Andor Neo
“PCI Device” is the Neon Bitflow card.
“PCI Data Acquisition and Signal Processing Controller” is the National
Instrument X-series card.
“SM Bus controller” is just the motherboard and is a common sight in
some PCs.
While installing the drivers via Solis or the Driver Pack, approve driver installs then reboot the PC when they’re done.
Windows Device Manager after rebooting will look like:
Windows Device manager with driver working for Andor Neo
First powerup and use of Andor Neo/Zyla:
Power on the Neo
startup Solis
Observe the camera serial number in the title bar.
Turn on the Neo before starting Solis/MicroManager!
If problem, close Solis / MicroManager, power on the sCMOS camera, and then reopen Solis/MicroManager.
KPG-49D may not work from WINE.
If not, boot into Windows or use a Windows virtual machine for programming Version 2 Kenwood 900MHz radio.
Note: A yellow exclamation point over the USB to serial adapter in Device Manager may indicate an obsolete version of the Prolific 2303.
You can either replace the cable or use older Windows version.
This procedure is for VERSION 2 radios only!
Version 1 uses the DOS software KPG-35D.
To connect to the Beaglebone Black via SSH, use a USB to FTDI converter to J1.
Be sure not to connect the Vdd, 5V, 3.3V or any pin providing voltage to J1!
Beaglebone Black J1 pinout:
pin
purpose
1
ground
4
RX data (connect to TX data of FTDI adapter)
5
TX data (connect to RX data of FTDI adapter)
There is no standard pinout for the USB to FTDI adapters, but the pins are normally labeled on the USB to FTDI adapter board.
connect the USB to FTDI adapter to the Beaglebone Black (you might use a USB extension cable–I’ve had good luck over the years with the Keyspan USA-19HS)
open up PuTTY and set the baud rate to 115200 8-N-1 and the COM port to match Device Manager in Windows or terminal.
Hit Enter a couple times on your laptop and you should see the login prompt.
The danger of cheap non-temperature regulated soldering irons is that the cheap soldering irons go from too hot when starting to solder the joint to too cold from cheap tip materials with poor thermal conductivity.
This leads to joints that have cavities and are improperly flowed, especially a problem for radio frequency or high speed digital circuits.
Cheap soldering irons lead the newbie or even the experienced user to burn parts, lift PCB traces off the board and get so hot they are very uncomfortable to hold.
Often the cheap irons are not grounded, so you could be zapping the circuit you’re trying to fix.
For the beginner, there are $40 soldering stations available from reputable online sources–checkout the reviews or YouTube to get a better sense.
For me as a life-long electronics guy, I went straight to Weller (Hakko is good, too).
I strongly recommend the Weller WES51 temperature controlled soldering iron for those who outgrow the use of the local maker-space or borrowing a friend’s iron.
I emphasize the temperature controlled part because even the Weller WLC100 does not have closed-loop temperature control.
Many things we solder these days are of small size and delicate, so you don’t want to just guess at the temperature you’re using.
The Weller WES51 is rated at maintaining the tip +/- 6 degrees Celsius from the setting.
The WES51 has an analog temperature dial, which is close enough even with surface mount components, as you see in the photo below.
It’s hard to see due to the focus, but the new white cap at the center of the picture soldered in like a dream, using the optional 1/32" tip.
EFJ 900MHz VCO
For about 50% more cost you get the digital temperature readout Weller WESD51.
We prefer the analog WES51 because one can change the temperature setting more quickly on the WES51 (just spin a dial vs. push and hold button on the WESD51), and it’s not necessary to have a perfect temperature setting or to lock the setting (perhaps something a factory assembly line would do).
Jeff Cogswell’s article
Learning Enough Python to Land a Job.
calls out that Python is for more than web development, Django, Twisted, Flask, &c.
As a data science practitioner, mangling tens of gigabytes if not tens of terabytes daily from sensors deployed around the globe, converting code to Python after several years of hard-core Matlab use was motivated by Python’s highly-performant data science stack incorporating Pandas, SciPy, Numpy, h5py and other specialty Python user modules.
Port code gradually, even from very high-level languages like Matlab. Tools like f2py for Fortran 77/90+, SWIG (and numerous others) for C, Oct2Py for Matlab, etc. allow you to speedily and often straightforwardly integrate code from other popular languages.
Get familiar with (in this order): Spyder, Numpy, Matplotlib, h5py, Scipy, and Pandas. If you’re working with most real problems, you should be considering Pandas and h5py to allow you to filter/select data before reading it all form disk. I personally prefer h5py over PyTables. The fastest data to load is data where the superfluous data you didn’t need was never loaded, that would otherwise slow down the loading of the wanted data!
Get started in data analysis knowing not much more than how to use dict(), list(), and numpy.array() along with the standard basic functions that one would use in Matlab or R. such as sqrt(), for, if, &c. Learn about Numpy and Pandas before dealing with generators, sets, list comprehensions, itertools, etc.
When you find you have lots of heterogeneous but associated variables, particularly those associated by time, it’s time to use Pandas. Beyond 2-D DataFrames, xarray is the module to use. Pandas is awesome for loading and working with large heterogenous datasets. Think of Pandas as SQL for doing computations.
We hope this commentary on Python for data scientists and analysts considering the transition to Python from languages such as R, Matlab, Fortran, etc. has helped you.
To overlay a contour on top of a Matlab “image()” or “pcolor()”, first rasterize the image and then overlay a contour to make it work in a 3-D Matlab figure.
This is a bit complex to describe, so we created an example of contour over image in a 3-D Matlab figure: contourImage2.m.
This script follows these steps:
flatten the contour onto the image in the default z=0 plane
render as a resized image
make a pcolor plot
manipulate the underlying Surface object to an arbitrary 3-D location.
Doing a contour overlay on a 2-D image or pcolor is much simpler
especially in
Python.
Matlab does not require special manipulations via freezeColors of the figure colormap in order to have a unique colormap for each axes (subplot) on a figure.
examples