It might seem simple task but it involves some tricks to control motors and read sensor data from two separate controllers.
One of the challenges I faced is meshing position and temperature data. Feedback received from each controllers is timestamped. After scan is complete timings are being analyzed and each temperature value is assigned interpolated coordinate from motor feedback. If done incorrectly (brute forced) this procedure can take hours. Luckily there are tricks to speed this up to few seconds. Hint: Python numpy searchsorted.
Another annoying (but luckily easy to fix) task is correctly and evenly visualizing data. Unless you oversample few times there will be black dots on complete picture. In photography they are called dead pixels. In our situation it is pretty easy to spot these pixels and filling is done by averaging neighboring ones.
To me, software and tools are by far more important than the microcontroller. Because the silicon is a ‘one time kind of thing’, where the software has to be maintained and working over a longer time. And at least my software usually needs to be ported to a new device, so portability and available software and tools are critical to me.
The combination of MCUXpresso SDK (formerly Kinetis SDK) and Processor Expert is unfortunately not supported by NXP. But I have found a way to get them work together in a nice way, and this article is about making that combination possible :-).
Modern displays are fascinating little things. In particular, the E-Ink displays employed in modern E-books achieve mesmerising paper like contrast with excellent standby power consumption. Many of us at some point have had a go at experimenting with DIY displays, but been discouraged by the miniature scales involved. Driving them is hard enough, but building your own?
[MChel] has achieved some excellent success in building a simple E-Ink display. The account presented on this Russian electronics forum, graciously translated for us by Google Translate, outlines that the greatest barrier to pursing this in your home lab is creating the conductive layer that serve as electrodes for each pixel and depositing the thin layer of electrostatically charged ink pellets onto another transparent yet conductive film. [MChel] solution was to extract a small a portion of pre-deposited ink from a smashed and notoriously brittle E-ink display. Next, instead of attempting to build an ambitious and dense grid of electrodes, [MChel] etched a simple battery indicator on a PCB. The ink and the electrodes were then fused with some DIY graphite based conductive glue and sealed with some careful yet ingenuitive epoxy laying skills.
The result is a working battery indicator that consumes no power, whilst reporting any remaining power.
There is something increasingly defiant and laudable about home-brewing technologies, otherwise thought to be confined to multi-million dollar factories. We have already covered how you should go about making some conductive glass and using it in your homemade LCD.
Some time ago I purchased 4 channel thermometer. Soon after tried few optical character recognition (OCR) techniques on 7 segment symbols including pytesseract, they worked but I was not happy with results. Few days ago pyimagesearch published article detailing his approach. So I pushed it a bit forward and made solution more robust. Also added possibility to analyze video instead of single frame.
Almost ten years ago I wrote an entry about the “1 bit = 6 dB” rule of thumb. This rule states that for each bit you add to a signal, you add 6 dB of signal to noise ratio.
The first derivation I gave then was focused on the noise, where the noise maximal amplitude was proportional to the amplitude represented by the last bit of the (encoded) signal. Let’s now derive it from the most significant bit of the signal to its least significant.