When planning a new project I needed to tackle how to remote trigger a Canon DSLR camera. So I started with looking at the options and landed on using an infrared link to the camera. Things didn’t quite go as I expected.
It is common for operating systems to use a hard disk swap files to increase the amount of available system RAM by swapping blocks(or pages) of memory between real RAM and the hard drive. As many applications use RAM linearly, this imposes relatively modest decrease in performance for the bigger benefit of increased temporary RAM.
It seemed to me that, for particular applications, this concept could be applicable to providing management of arrays to increase what could be stored in a microcontroller’s very limited memory resources.
A long time ago (2012) I wrote an application called MultiBlink that allowed me to control many simultaneous independent monochrome LEDs lighting in patterns. The original version was updated a number of times, gaining more features (and complexity) with each iteration. Recently I updated MultiBlink to version 5, which included a conversion to using neopixel type RGB LEDs controlled using the FastLED library.
Whilst updating an old application that implemented PWM color control of hard-wired RBG leds to NeoPixel type devices, I had to work out a new way to transition between colors. PWM is not an applicable technique when using serially controlled LEDs.
Here’s what resulted.
A question that I am asked on a regular basis is why particular characters in messages are not displayed ‘as-expected’ by the Parola library. These characters, often typed in from the Serial monitor or embedded within strings, contain non-ASCII characters. Here’s what is happening.
Part 1 and part 2 of this series set up the hardware and software infrastructure to support end-user applications using the YM2413 synthesizer. These are discussed in this final instalment.
The first part concluded with the YM2413 hardware and an amplifier on a test Arduino Uno shield. In this and the next part we explore the interface to the device and how to control the hardware to make music.
When researching material for the SN76489 sound generator (documented in these previous articles) I discovered that many early microcomputer systems incorporated both the SN76489 and a YM2413 FM synthesizer. The Yamaha synthesizer looked like an interesting piece of hardware to explore. Here’s the result.
Ring Tone Text Transfer Language (RTTTL) was developed by Nokia in the 1980’s as a format and mechanism to manage ringtones on cell phones. As Nokia was leader brand at the time, this method was quickly adopted by many other manufacturers and became the de-facto standard for ringtones.
As cell phone hardware became more capable, the use of RTTTL has diminished in favour of more advanced sound production – today most ringtones are simply ordinary sound files. RTTTL files, however, are still useful in may applications.
When developing libraries and other complex applications, I find that I often need to exercise specific parts of the library/application as it is being developed.
One way to do this is to write specific test code to exercise functionality. Another is to provide an interactive command line interface to achieve the same.
Until recently I hard coded these testing code CLI for each application. I now have a simple class that enables a flexible and consistent CLI.