The approach I took was a mixed signal one where a capable analog front end would be paired up with a beefy DSP processor to compute the Impedance. Most importantly, in this scheme, the DSP is responsible for discriminating the phase between the sampled voltage and current waveforms; this approach is preferred because it leads to good accuracy and calibration stability.
As I mentioned, none of the native API of PalmOS 5.x was ever documented. There was a small number of people who figured out some parts of it, but nobody really got it all, or even close to it. To start with, because large parts are not useful to an app developer, and thus attracted no interest. This is a problem, however, if one wants to make a new device. So I had to actually do a lot of reverse engineering for this project – a lot of boring reverse engineering of very boring APIs that I still had to implement. Oh, and I needed a kernel, and actual hardware to run on.
Simple NTP clock is a maintenance-free clock application developed to work on single-board computers like Raspberry Pi, Orange Pi, etc. This clock application uses the Simple Network Time Protocol (SNTP) to get the time and display it on seven segment display which I designed. This application is designed to work on most of the Linux based systems and had minimum dependencies with system libraries and peripherals. I developed this application to work with Allwinner H2 Plus based Orange Pi Zero board, but this can compile for other platforms without doing any modifications on the source code.
This project is about an open source, USB based, 10 digit seven segment display unit. This unit is specifically designed to work with POS systems and banking applications. Initially, this system is developed to work with PC based systems, and later it was modified to work with other platforms and applications.
The V11 of the MCUXpresso IDE is again a big step forward: new Eclipse version and 64bit, updated ARM toolchain, extended debugging support for P&E and Segger in addition to the LinkServer connection. The Global Variables view now supports live variables and graphing for P&E and SEGGER in addition to the LinkServer connection. The new views with the Build Analysis, Image Info, Stack usage and Call Analysis are very useful. And for bare metal applications it includes a heap and stack usage view too.
For some projects it is not possible to have the device under debug available on my desk: the board might be in another room, on another site or in a place where physical access is not possible or even dangerous. In that case an IP-based debug probe (see Debugging ARM Cores with IP based Debug Probes and Eclipse) is very useful: as long as I can access its IP address, that works fine. It is an excellent solution even if the board is moving or rotating: hook it up to a WLAN access point and I still can use it as it would be on my desk.
It is a common thing to boot a Linux system (see the Raspberry Pi) from a micro SD card. It is not that common for a microcontroller. The NXP i.MX RT ARM Cortex-M7 fills that gap between these two worlds. No surprise that it features a ROM bootloader which can boot from a micro SD card.
Booting from a SD card is kind of cool: load a new software to the card, insert it and boot from it. In some applications this can be very useful: in my configuration the processor starts the ROM bootloader, then loads the image from the SD card into RAM and then runs it. In that configuration no internal or external FLASH memory would be needed.
In previous blog posts, I have described how an FTDI USB device can be programmed in Python to access the SWD bus of an ARM microprocessor. This allows the internals of the CPU to be accessed, without disrupting the currently running program.
In this blog I take the process one step further, and add a graphical front-end, that shows the CPU activity in real time
Working with low power modes can be challenging. It can severely affect debugging capabilities of a microprocessor or microcontroller. I ported a FreeRTOS application using the Tickless Idle Mode to the NXP i.MX RT1064 board, and all of a sudden, the board was unresponsive to any debugger connection. Luckily the board was not really bricked, but it took me while to find a way to recover it. So for when you end up in a situation with a ‘bricked’ i.MX RT1064 board, this article might be helpful for you to recover it.
A small ARM developmentboard from SMDprutser, that is available on GitHub:
Searching the prerequisite Chinese websites to satisfy my shopping fetish I came across a neat little ARM Cortex-M0 chip which is an extremely good bang for buck. I believe it is the smallest chip available in a reasonable hand-solderable package (TSOP8). This board gives you everything to explore this marvel of this Chinese Semiconductor.