The first step of the hardware building of the PONF project has been done. The image gallery shows the backstage transforming a vintage 70’s analog reflex to the development platform for the electronic back of the PONF dual-back camera.
Buttons and tactile switches are frequently used in many projects involving micro controllers; one of the most frequent issue we met is related to unwanted multiple transitions when the button is pressed once.
Tactile switches, as well as push buttons are mechanical components subject to the problem of bouncing. When a button is connected to a digital GPIO input pin (i.e. an Arduino pin configured as INPUT) we ideally expect that when the button is pressed we get only one high digital signal; unfortunately this rarely happens. During the mechanical movement the physical material vibrates affecting the voltage and the transitions between the On/Off status are not so clear as we usually need. Micro controllers and FPGA are fast enough reading the microseconds oscillations when the button is pressed, resulting multiple readings while apparently we are pressing the button only once.
Read more on Element14 full post: Vintage 555
Thanks to Jeremy Cook for featuring the 3D printer filament monitor on Tindie blog!
Prototype is alive
The first prototype is running by about three days and after some revisions on the Arduino software (mostly on the calculation algorithms) it works fine, ready for the public.
- Arduino uno R3
- 5kg max load sensor
- Mx711 chip analog to digital sensor amplifier
- A very small circuit with two buttons and a dip-switch
- 16×2 alphanumeric LCD monochrome display
- Orange LED (shows the load sensor readings when flashing)
Easy to use
The Arduino script has been done to make the use of the tool while 3D printing; it works in a semi-automatic mode and does not need calibration or settings. One of the most interesting aspects is the ability to manage automatically the filament roll also if it is not on start. Then you can change it (e.g. changing the filament colour or material) and the system continue working.
What you should know
Before starting using the filament monitor you need to know the empty roll weight. This is the only fixed variables that can’t be calculated or deducted internally. Knowing this value is easy and you do not need to have an empty roll, obvious! If you weight on a digital scale (possibly one for kitchen more precise than a bigger one) you see that the 1Kg filament roll weight some more, e.g. 120 Gr. This is the weight of your roll that should be setup as the filament tare.
You should also know: Material (PLA or ABS are supported), filament diameter and full roll weight. These values should be preset through the three dip-switches as shown in the following table:
Meaning Off On Material PLA ABS Diameter 1.75mm 3mm Weight 1kg 2kg
- Power-on the support without the filament roll and wait for the display showing Started, The system is self-calibrated to the internal zero point.
- Put the filament roll on the rotating support and press the control button. Arduino calculates the effective weight, deduct the filament tare and enter in the Ready state: remaining meters and percentage of filament as shown too
- Press the control button again; it enters in the Load state and you can start printing!
Pressing the second button you switch between grams and centimeters the constantly updated value of the consumed filament on the second line. The first line instead shows the remaining meters and the used percentage.
Note: as the length in centimeters reach the value 100 (1 meter) the displayed value is shown in meters instead.