After seeing this giant mechanical keyboard at Adafruit, I decided I had to build my own. Adafruit made theirs out of wood and used one of their Python-compatible microcontroller boards. I wanted a sloped top on my keyboard. I also wanted to check out what was new with Microchip’s USB device stack. I decided to build my keyboard out of aluminum and use a PIC18 microcontroller.
Previously, I made a Pickit 3 clone – (see previous blog post). It works well, but I have often wondered just how little of its circuitry was needed to program and debug the boards I make. For instance – I primarily use the newer 3.3V PIC32 processors, so I really don’t need the ability to alter the voltage like the standard Pickit 3 can. I also have no real need for programming on the go, or even to provide power to the target MCU to program. Knowing this – I decided to see what I could do to remove the circuitry I didn’t need, yet still have a functioning programmer/debugger.
Much like the beacon keyer presented here earlier, this RX/TX sequencer is a simple but useful little device. Its typical use is in ham radio applications when a separate power amplifier (PA) and/or a sensitive low-noise pre-amplifier (LNA) is used. Care has then to be take to safely transition between RX and TX states – and that’s where this sequencer comes in.
This is likely the first ham radio related project that I document here on this blog
But my very first PIC project was a beacon keyer that I made for my father, HB9BBD. That was in 2013. A beacon keyer is a great project to get started with microcontrollers since it’s not much more than a fancy way of blinking an LED.
The project described below uses a MH-Z16 or MH-Z19 CO2 sensor and a DHT-22 (or DHT-11 if less accuracy is required) to measure the Temperature and Humidity. It has a 4 line by 20 character LCD Display to show the current readings and status, a warning alarm and two relays which can be triggered on a low CO2 (Generally above 1000 ppm) normally to switch on an extractor fan and a high level (4000 ppm) which will trigger a warning device such as an external alarm. There are two models I used the 0 to 5000 ppm device here but the code will be the same for the 0 to 10000 ppm model.