Today I worked on the case for the Outmoded Sequencer project. Originally I planed to use acrylic glass and laser cut it, but I did not found a service where I could cut a single piece cheap. So I am using wood, cut it to the right size using a Dremel tool, then sand it and spray painted it black. The color is a really deep black, which is not perfectly visible on the photos because of the black background.
You see a smaller panel with the two knobs and the speaker, which will be mounted on the top area of the larger base. If you look closely you can see the holes where the top panel will be fastened using the distant bolts.
I am using M2.5 threads with 2.8mm holes and distant bolts of 20mm length. Sadly there were no black distant bolts in this size, there were only M3 ones.
Today beautiful violet PCBs for the Outmoded Sequencer project arrived. I use them to experiment with different approaches for the matrix. The PCBs are ordered from OSH Park, which is a community printed circuit board order service. They put PCBs from multiple parties on one large PCB, which makes everything cheaper.
For the demo video in my previous post, I did not really choose nice melodies. So I created a small composition using the outmoded sequencer:
For this music I connected the outmoded sequencer directly, after the potentiometer for the volume control, to an audio interface. Now I recorded the sound of the sequencer while I changed the matrix. After recording I added additional elements, like the percussion and bass lines.
I just started an interesting new project: The Outmoded Sequencer Project. It is an minimalistic music machine. You can use a 8×8 “programming” matrix to create simple melodies which are looping endlessly. This melody can be changed while the device is playing it. Here a short demonstration:
The device is divided into several parts as shown here:
My goals for the project were:
Only outmoded, basic and cheap components.
As minimalistic as possible.
Maximize the fun with these limitations.
Read all details how you can build this sequencer on the project page:
I just published a new project, how you can easily build a nice table light from a cheap candle holder you get in any IKEA shop. The project is using a NeoPixel ring and a Adafruit Trinket as microcontroller.
The microcontroller is very limited, but you will find ready made software which will get most out of this small chip. The lamp comes with 50 different colour modes. There are of course a number of static colours, but also animated rotating patterns. Also there are a few fire like random flickering modes. But of course you can reprogram everything easily to add more of the effects you like.
This time the components are relatively cheap. If you have some spare parts left, the total cost for a whole lamp should be less than $40.
It seems the cat protector project documentation has a small gap. There is just a hint that you have to use some scripts to prepare the SD card to play the audio files, but no details about this.
To use the scripts you need some knowledge how to use a command line interface on your operating system. The scripts are very simple to use on Linux and Mac OS X, but on Windows it is very tricky. I strongly advice you to use either Linux or Mac OS X. If you are working on Windows, just use a free virtual machine application and install a Linux (I suggest Ubuntu) or a Linux live CD where you don’t have to install anything.
Why? …. Why … that … complicated
The used microcontroller is not very fast, if the software on the microcontroller also has to deal with a complicated filesystem, no sequential blocks and other obstacles, changes are small to produce sound output in a good quality. Therefore I prepare the samples in a very simple format and instead of a complicated file system, I just store the blocks with the audio data sequentially onto the SD card.
I finally finished the deluxe version of the data logger. The software took longer than expected, because of the tight flash memory limit. I created a short video which should give you an impression how you can use the menus on the data logger.
The video is showing the menu driven user interface. It is controlled using a capacitive keypad. Everything is sealed in this case to protect the electronic components from the high humidity.
RUNNING OUT OF FLASH MEMORY
I usually start software in the best way possible and postpone any optimisations to the end of the process. So I created everything in an abstract object oriented way, but quickly had to go back to a procedural approach for all objects which were singletons anyway.
To keep everything as logical and abstract as possible, I used namespaces to encapsulate the separate modules. This lead to a very clean approach while saving all the memory which was used for object pointers in the code.
WORKING ON THE DOCUMENTATION
Currently I am working on a detailed documentation, which will show step by step how to build this deluxe version of the data logger. There will also be a page with some notes and explanations about the software. You can already have a look at the software here.
After fixing the timing problem with the sensor library, I started the data logger and recorded data in 10 seconds intervals until the memory was full. This time the AM2302 (DHT22) sensor was read every time, no cached values were used.
It created a really interesting data set you can see in the diagram below (click on the diagram to see all details):
The actual measured data values are the small dots in the background, and the lines are polynomial interpolated over these values.
For the temperature (blue) you can see the sensor precision limit of 0.1 and an interesting jitter when the value makes the transition from one value to another. In contrast, the humidity values (orange) do not have the same jitter like the temperature values, but you can see something strange at the crossing point of the two series.
I created a new diagram where you can see this point in detail:
The jitter of the humidity values is minimal, but suddenly there are huge jumps of the values. Compare the jumps with the corresponding temperature values. Because the humidity value depends on the temperature, the jitter from the temperature causes the humidity values to jump.
The test was successful: There is now real sensor data for each measurement.
If this sensor is used for a real time display of humidity and temperature values, there has to be some integrated interpolation to flatten the jitter of the read values. This is no big deal for the data logger, because you can easily do all the corrections and interpolations afterwards.
You can download the CSV file with the measurements and the Excel sheet I used with the links below: