I frequently see see novice programmers asking “how to change variable from hex to binary” or similar questions. Leaving aside the simple number base conversion, these questions are, frustratingly, usually about not understanding fundamental computing concepts.
Once I had some hardware to test with, the next steps were to work out how to get a program onto the ATTiny and how to write efficient code. As 1kb of flash memory is not much to play with, space efficiency was a likely programming challenge!
In some upcoming projects I intend to embed some processing intelligence into small devices. The smaller Arduino boards are too big and expensive for these applications.
After some investigation, I settled on using the ATTiny series of 8 pin microcontrollers. These processors vary in capability (from a very low end) and all provide 6 I/O ports. Tools compatible with the Arduino ecosystem are also available.
As a first step, I designed a small breakout board for the SOP8 version of these MCUs.
I always seemed to get a clash between the device select signal (SS) on my SD/microSD card reader and some other Arduino hardware I was trying to run with it. To get around this I decided to make a dedicated SD card shield with a jumper selectable SS signal.
SS signal clashes are now a thing of the past!
One of the nice aspects of Arduino compatible hardware is the ease of program downloads. This is, in part, due to the bootloader that is programmed into the controller. How does that bootloader get on the hardware in the first place?
One answer is that a second Arduino can be used to load the bootloader (or any other stand-alone code) into the ‘virgin’ target hardware. The Arduino IDE includes an example program called ArduinoISP used for this, but it helps to have some supporting hardware. I built a shield with a few connections that speeds up the process of programming controllers.
Managing fonts in the is a key factor in the Parola/MD_MAX72xx libraries to being able to support multiple languages and diverse alphabets.
In the first part we looked at how fonts are defined and the tools used to create the bitmaps for each character. In this part we will look at the Parola and MD_MAX72xx library methods that access and manage font data in the library code.
The Parola library allows you to display text on MAX72xx controlled LED matrices using a wide range of text effects. One of the base components for this flexibility are the replaceable fonts and the utilities that allow new fonts to be designed and implemented in the library code.
I have lost count of the times I have forget to turn on the workshop vacuum cleaner before turning on dust making wood working equipment. Recently I decided that I needed to compensate for my distraction with an automatic Smart Switch. However, all the switches find either did not do what I wanted or were way beyond my budget. So I decided to make my own.
Tuning should not be required for repeat applications as the parameters are now built into the controller software. However, I will describe the process as it was interesting how additional performance could be obtained from the same hardware by tuning the software.
In Part 1 we looked at the design and hardware for the Soldering Station. This part covers the software, assembly and calibration of the system to provide accurate and reliable temperature control.