Microcontroller boards are getting smaller and especially in smaller ones those programming headers become annoying. Think of 6-pin AVR ISP header – even on Arduino board it can be in your way. If you need to program MCU, you cannot get rid of it. So many of hobbyists probably start making custom solutions in order to save space. Danny suggests to take a look at so called tag-connect solution, where connection can be made with spring loaded pogo-pins that are normally used for testing PCBs during manufacturing.
It seems that they can serve programming and debugging purposes on small boards pretty well. You can make easily make ISP to tag-connect adapter cable pretty easily and next time design PCB with much smaller ISP footprint. Using tag-connect you are not only saving on board space, but also you need less drill holes and don’t need pin header anymore.
There are many situations when you simply run out of I/O pins on microcontroller. For new project you can always select different microcontroller with more pins or ad I/O expander. If you have project running on Raspberry Pi and almost all your pins are busy, then you should try to go smart way. Emilio faced this problem when he needed to add LED indicator and button to his existing project, but there were only single free pin available. So he thought that functionality could be achieved with single pin quite easy.
He attached LED to power supply via current limiting resistor. Then using same pin he added push button to ground through another resistor. The rest depends on how program controls that pin. In this case Python script simply runs loop every second where 200ms is used to turn LED another portion of time-frame is used to detect button switch and some sort of debounce. Button is used to shut down Raspberry Pi after it is pressed for longer than 5 seconds. Same technique can be easily used on any microcontroller as well.
Accelerometers and gyroscopes are commonly used sensors where some sort of balance is needed. Combination of both in one board is called IMU (Inertial Measurement Unit). You will find one on flight controllers, balance modules and in many other areas. If you are going to build something from scratch then you should know some background information on how to interpret readings and how to use them in control. Gadget Gangster have shared pretty good instructable where he explains how to interface IMU device to microcontroller and how to use this data to get desired results.
As example he uses Acc_Gyro board with LIS331AL triple axis accelerometer and LPR550AL dual axis gyroscope. He goes through some math while explaining how to determine orientation of IMU using either only accelerometer data or combination with gyroscope readings. Plus gyroscope gives some clue about rotation around one or another axis. SO if you are thinking of building inertial system, you should do your homework and understand hos things work.
Using rotary switch in embedded design can save board space and in same time be very intuitive. With knob turn you can change parameters, go through menu and do all sorts of things. But rotary switches aren’t low cost solution. Since most microcontrollers already have ADC integrated, why not replace it with simple potentiometer. This is what Claude Haridge suggests in his example.
There are several benefits of using potentiometer instead of rotary switch. First of all you only need one MUC pin. This already gives a chance to choose smaller micro. Also with potentiometer you dont have bouncing problem. Another benefit is that this is cheaper way. But you also loose some benefits of switch. First of all you loos detent feel of switching – hard to determine switching positions as you turn potentiometer. Another thing is that you need more sophisticated algorithm to read switch states. It is worth considering to use potentiometer in cheap solutions.