03/03/2019 at 11:27 •
The blue pill is very popular (and cheap), and I've spent this weekend porting the TCD1304 driver firmware to it. It's a less capable chip than the STM32F401, there are limits to the applications. Most importantly, it doesn't support integration times longer than 82 ms.
The specifications are:
- MCLK of 800 kHz
- max t_int is 2¹⁶ / 800 kHz = 82 ms
- OS - PA1
- ICG - PA10
- SH - PB4
- MCLK - PA15
The board attaches as a virtual com-port, so the usual tools work ie. the pyCCDGUI and the CLI (UART).
Everybody loves pictures, so:
Get it while it's hot. Go to tcd1304.wordpress.com
- 08/19/2018 at 16:19 • 0 comments
06/28/2018 at 17:32 •
Driven by a nucleo board, the signal from the CCD in the typical drive circuit with a low-noise low drop-out voltage regulator exhibits roughly ±4 mV of noise. This figure is the same for the custom STM32F405 board, however because the opamp has a gain of ca. 2, the S/N-ratio has improved with app. 50%.
Still, the output looks kind of fuzzy, as seen in this figure showing the CCD at close to saturation:
However, because the noise-level is now a little lower, it's become very easy to estimate the CCD's register imbalance, and when correcting the data for it, the same data now looks like this:
I'm not sure I'll get a cleaner picture than this. I'm certainly not in the mood for trying.
06/27/2018 at 13:08 •
The UART-firmware uses the USB-connection on the nucleo's ST-link, and it's limited by the bitrate of the ST-link's USB-UART connection.
The latest firmware is written for the STM32F405-board from this project:
and it uses the USB-controller in full speed mode (12Mbps) to communicate directly with the PC.
I've used ST's USB-driver (SPL-version), and the MCU presents itself as a virtual com port, so the CLI and GUI for UART can be used without modification for the firmware.
Clocks, PWMs and communication are all working. I'm going drinking, so tests with a TCD1304 in place will have to wait.
oh right and the firmware can be found in the files section.
06/16/2018 at 05:59 •
I've ben working on a custom STM32F405 board with better analog options in a separate project.
The key difference is the utilization of an opamp on the input, to squeeze the last bit out of the STM32F4's 12-bit ADC.
The opamp circuitry looks like this:
For reasons I don't fully understand, the opamp's input and feedback resistor values affect the output from the CCD's typical drive circuit, but changing the resistors to:
there's no clipping of the output. I guess my quantum chemistry professor was right, you can't measure a system without changing it.
12/24/2017 at 16:24 •
With a slight redesign of the SPI-firmware and the accompanying command-line-interface, I'm proud to present a record high (for me at least) frame-rate for the TCD1304 of theoretically 125 Hz.
I'll be conservative and state that 100 Hz is possible. Because of x-mas I'm away from my scope, so a proper speed-test will have to wait.
The very short version of the story is that wiringpi has been replaced in favour of pigpio, and that SPI-communication is triggered by monitoring the logic state of one of the nucleos GPIOs.
Oh and you can collect 65535 integrations in one go.
or look in the source code.
Downloads are available at https://tcd1304.wordpress.com
The UART-firmware is still crawling away at a pace of just above 1 Hz, but with lots more convenience.
11/12/2017 at 14:44 •
The latest firmware and PCB is here:
besides from being smaller, there's now a regulator on the supply voltage:
Vs = 1.22 (1 + R₂/R₁) = 1.22V(1+ 2.7kΩ / 1.2kΩ) = 3.96V
The pinout has been changed:
and so has the GPIOs on the STM32F401re, so everything's much easier to connect:
(The CCD-PCB in the picture is a prototype)
As always go to https://tcd1304.wordpress.com to be sure to get the latest and greatest firmware and software, and instructions to match.
The PCB (slightly improved compared to the one in these images) is available directly from http://dirtypcbs.com/store/designer/details/8475/6065/tcd1304-4vn-zip
It's only the UART-firmware that has been updated. The SPI-version will follow shortly.
Both firmwares (SPI and UART) been updated with the new GPIO-configuration:
- fM on PB0
- SH on PA1
- ICG on PA0
- OS on PC0
08/18/2017 at 16:34 •
Jens-Ulrich Fröhlich has written a Java-based graphical user interface for the Linear CCD module for Windows, and I must say I'm impressed. It has many of the features that I wanted to include in my early attempts at a GUI.
And it comes at just the right time. In this school year I will 'convince' my students to try and build their own spectrometers, so a Windows interface is greatly appreciated, as my nerdier students prefer this OS.
Take a look at his blog:
and the github-repository:
05/01/2017 at 13:06 •
It turned out to be very easy to get a working Otterly CCD CLI for MacOS X, as the operating system uses the same underlying tty-system as linux.
It was literally just a matter of getting my hands on a Mac (that was the hard part) and setting up the proper environment for compiling.
One needs to install:
- command line tools
The compiler options need to be modified slightly (link to argp) so there'll be separate MacOS download (shortly).
The tty-naming scheme on MacOS X is confusing. The serial device to connect to is not tty.usbmodemxxx but cu.usbmodemxxx
Of course if you don't care for compiling it yourself, you can just use the precompiled binary. In that case, the only dependency is glib
03/18/2017 at 17:51 •
To make the lives of anyone wishing to use the linear CCD modules easier, I've made a CLI. Hopefully it'll make the software side of things more modular.
In the same time I have given the SPI-enabled firmware an update to give it all the benefits of the improvements to the UART-version, and the two should now be very similar in performance, except of course for the 150x speed-advantage of SPI.
At the time of writing there's only a CLI for the SPI-version of the firmware, but a UART-CLI will follow shortly.
There's of course a CLI for both SPI and UART.
As usual go to tcd1304.wordpress.com for downloads, details etc.