Automated Cigarette Non-Dispenser

Project Status
Start date 01/01/2016
Status work in progress
initiator(s) julio

The goal of this project is to build a timed cigarette dispenser.

1. The box must contain 200 cigarettes and take approximately 5 hours to deliver one.

2. It must be locked and reasonably inviolable but must unlock automatically when empty.

3. No electronics, the motor will be a mechanical kitchen timer.

4. The parts must be manufactured on spot, if possible printed, except for the timer and the hygrometer.

5. The cigarettes must be delivered to the top of the box.

6. All that in relatively modest interior dimensions: 12.5 x 16 x 22 cm.

  • The design is almost finished and I think it works, but there are still a lot of small parts to print. If you have time to take a look, I would welcome one or two ideas to make it more elegant → more reliable and simple to build.

  • I am open to any suggestion for technical or aesthetic improvements, as long as the constraints are respected. The sketchup file can be downloaded here
  • Print quality will be critical, and parts will probably need to be rectified.
  • I found the box at the flea market, it has a certain charm (at least enough to make me sorry when I will consider to force it) but it has seen better days. It needs some repairs and modifications, if possible with the cnc.

<doodle |[cigarettes_dispenser] Interested in joining this project>

active participation passive participation follow from afar


27 January 2016

The first problem to be solved is to find a mechanism that raises the delivered cigarette to the top of the box.

Because of the restricted space, the cigarette extracted from the reservoir is practically at the bottom of the box, so a system must be found which makes it rise by 11 cm and which is contained in this height. It's not that simple, with a rack and a pinion for example, it doesn't work.

I have kindly been told that a small door at the bottom right would elegantly solve this problem. This is obviously out of question. OK for 3D, but the absurd dimension is important and should not be overlooked.

  1. With pulleys 

My first idea was to hide pulleys in the support trays of the mechanism:

Test with a braided steel wire:

Let's say that it could work, just 50g are needed to operate it every time, but I'm not very optimistic about long-term running, I would prefer a mechanism with a more direct contact.

  2. Articulated arm

Here we try to have an arm of a fixed length to limit the friction on the bearing at the end of the arm:

It works too, but stalls a little at the end of the course.

Looks like I'm trying to make a Hoeken link:

With the right proportions, the movement has a rectilinear portion (→ arms of a fixed length), but it is too short. To have a height difference of 11cm, it would take an arm of 15cm, which is too long. Even by enlarging the left wheel, there won't be enough room.

 3. Peaucellier link

Another trick that dates from the steam engine:

It is much more compact and the friction is almost constant over the whole length of the movement, so let's try with that.



The axes of the joints are held by discs which slide over one another. They are made of sintered bronze (self-lubricating) and are very silent when they roll under the furniture.

Here with a 5ct swiss coin.

The groove on the edge is for crimping them in the ABS to the soldering iron. They are turned and adjusted to 1/20 mm, in this project we are not kidding with precision.

The final mounting:

The spring is a little strong, but if I don't finish this project I can still make a toaster.

14 March 2016

Well, I finished assembling the distribution part.

1. Mechanical Timer 2. Distribution plate 3. Cigarette lodging 4. Pusher 5. Trigger 6. Switch 7. Peaucellier actuator 8. Peaucellier 9. Cradle 10. Actuator of the lock

Unlocking mechanism, seen from below:

11. Bolt 12. Hook 13. Follower 14. Toggles

I made some changes since last time:

The Peaucellier is now fixed on the sides of the shaft to reduce the risk of blockage.

As the actuator descended on the trigger, the cradle was raising slightly. To avoid that, I added a spring.

 ===== Description of the operation =====

The machine delivers 3 cigarettes, then unlocks.

The timer makes the distribution plate move back and forth.

When it is winded up:

The pusher raises the actuator by stretching a spring.
The cradle goes down to the bottom of the box.

At the end of the course:
The trigger tilts and locks the actuator in the cocked position.
A cigarette falls from the tank into the housing.

When the timer is running:

The distribution plate moves one centimeter per hour.
The pusher goes down.

At the end of the course, 5 hours later:
The cigarette falls from the housing and rolls into the cradle.
The plate continues its travel and pushes the trigger, which releases the actuator and raises the cradle, ejecting the cigarette.

In the unlocking system, it is the cigarette that serves as the follower's cam.

If the housing is empty, the follower falls into it and the claw carries it out to unlock the box.
It must be reliable, the slightest failure would have disastrous consequences!

- If the box is empty but doesn't unlock, I would have to break it although I promised myself not to.
- If the cigarettes don't flow properly, the box unlocks while it is still full.
In short, reliable or nothing.

The first tests proved to be very effective in crushing cigarettes but I saw very little use for it, so I removed this feature.

The goal is to resist 10'000 cycles, which corresponds to about 9 years of operation. With a motor, it takes about thirty hours.

The plan is simple: we break it, we modify it, we break it, etc.
That said, I don’t think the mechanical timers are guaranteed for 10'000 roasts in the oven, I will have to put 2-3 aside.

Test #1

The suspense didn't last very long, after 800 cycles, it started making strange noises, then jumping teeth.
We're back to work. I said I was in no hurry, remember?

20 April 2016

Debriefing of the first test:
One of the bearings of the distribution plate came out of its housing (I probably forgot to heat it) and the increase in friction slightly twisted the pinion shaft which drives the pusher, which caused it to jump teeth.

I was hoping for blood and tears, I am very disappointed.
It is a design error, I corrected the problem by adding a lattice.

Test #2

After 6'500 passes, here is a superb fatigue failure! Isn't it beautiful?
Every time I look at this picture I have to hold back my tears.

Don't pay attention to the grime, I mixed bathroom abrasive cream with clipper oil to grind the parts.

I was a little thoughtless on this one, it is to wonder how such a fine wall could withstand +7 k impacts at 15 km / h.

I doubled the thickness of the wall and added foam to cushion the shock.

Test #3

5000 more passes and the actuator began to jump teeth.
After disassembly, putting them side by side, I don't see any major problem.

There is some wear and tear, this is normal after +12 k passes (this part has undergone all three tests), but it still looks functional.

While assembling it, I noticed a float of 1.5mm (which I still can't explain).
For a 2.5mm tooth, 1.5mm is a big deal.
It worked all the same so I left it like that, but wear is always right.

I enlarged the black rack to fill the float, although it annoys me that it bites a bit on the drawing.

 ===== reservoir flow =====

As I already said, because of the locking of the box, the flow of the cigarettes from the tank must be infallible otherwise the project is not feasible.

It's a bit like a mikado game, when you remove the cigarettes very slowly it may form form an arch, and no, I will not tap the side each time.

I had thought of a lever to slowly lift the cigarettes at the rewind and make them fall at once, but I'm not so sure that would work.

Instead, I think of putting two rollers that turn in the opposite direction of the flow. It takes less energy and it should be enough as a stir.

The green sprocket is movable, the rollers must only rotate in one direction and only when the mechanism is raised.
We need no more than the plexi tank to do the tests, it will be for next time.

28 mai 2016

The plexi reservoir is finished and we see here an example of vault formed by cigarettes, exactly what we want to avoid:

After a lot of unsuccessful attempts of which I will spare you the details, I finally opted for two cylinders that turn in the same direction:

With a profile that resembles Torx, which makes it possible to move one of the two plates of the bottom to move the tank.

It works well, it is extremely rare that the machine can't catch a cigarette, no untimely opening (the counter stays at 0).

I still have a little problem with a cigarette that comes occasionally across and blocks the ejection, as at the end of the video.
It is not prohibitive, since in normal operation it would only make a stuffing per year and it would be possible to release it from the outside trapdoor.

But it stops the test bench by stuffing 18 cigs and that is unacceptable.

29 June 2016


I solved the problem of cigarettes coming across by covering the ramp with antiskating foam. There was just one jam around 6'500 but I decided to continue the test because it is no big deal in real life, especially if it only happens once every 5 years. The main objective was to check the resistance of the parts.

Two little comments:

Cigarettes flow only on the left half, due to the rotation direction of the rollers and the fact that they fall back into the tank in this area, but this doesn't prevent the machine from emptying itself completely, as we see it at the end of the video (with a discrete tap for the last 3).

As each cigarette is ejected approximately 150 times, I had to glue the tobacco so that they don't empty, there are some grease stains too, but I find the result quite aesthetic, especially the cross fades on the top left spring.

The complete timelapse doesn't have much interest, but I still offer it for insomniacs.

Next step: hacking of the kitchen timer (where we will finally know if this project is feasible).

21 August 2016

To my knowledge, all kitchen timers are built on the same model: A double spiral spring (1), one side of which is multiplied to 8000x on a tailpipe exhaust (2) which controls the step and the other side ~ 200x on a hammer exhaust (3) striking the metal case.

1 2 3

The mechanism is controlled by this stack of three parts (4) which make it possible to wind the two spirals at the same time, limit the rotation to one revolution (= 1h) and release the hammer at the end of the countdown .


If you want a timer to run 4h, just remove these three parts and block the hammer. By fiddling with the tension of the second spiral, you get to 6:30.

Following a suggestion from [Sinux], I made a anti-reverse in a ratchet socket (so that you can't unwind the timer), but I am not very satisfied with it because it pulls the axis on the side and may cause friction.
I will try to do it again with three springs in a star shape, if I can't, I might reuse the hammer backstop. (5)


I was worried that the axes would get dirty over time, so I added a spring on the pusher. Now it is pulling the distribution plate and the timer holds it to the trigger, then it catches up the float and causes the ejection (a little too early (4:30), I will correct it with a file).
Now there are three springs stretched at the end of the stroke (6), so I had to squeeze the friction clutch a little. (7) It's harder to wind up, but it's still okay.

6 7

I am not very reassured with all these nylon parts, even in normal operation I don't imagine them lasting very long, so with the spring completely winded …

These days I disassemble every old kitchen timer hoping to find on a full metal one, but without success. Maybe I'll see on the side of old ovens, microwaves and other stuff that ring a bell at the end of elapsed time.

Meanwhile, it works!

Next step: humidification

8 November 2016

Reminder: The full box takes 2-3 months to deliver the 200 cigarettes it contains, so we have to make sure they don't dry out.

The first solution that comes to mind is to put a wet sponge in the box, unfortunately it doesn't work because the sponge will diffuse water vapor until the air humidity reaches saturation (100%), but the tobacco grows mold above 75%.

Our tobacco roller friends typically use a piece of apple, potato or carrot to re-moisten dry tobacco. This is practical and effective because there is no contact with water, only with water vapor, but can we keep the tobacco for long this way? We will see.

I put different foods and other products laying around in a closed 3-liter container and left them until the humidity stabilized.

We note that most arrive at 100% or almost, but the surprise comes from a pure butter Madeleine (tea cake):

It stabilizes the air at 72-73% hygrometry (which by the way is the ideal hygrometry to preserve cigars, for those it may concern)

I repeated the test by starting with moist air in the container and the result is amazing:

After only 35 minutes, the two curves are less than 1% far of each other.
This little cake is therefore capable of diffusing moisture as well as absorbing the excess.

N.B. It is noted that the temperature rises during the measurements, it is due to the heat released by the fan which stirs the air inside the container. For the rest, I varied the speed of the fan to maintain the temperature at 23 ° C. To measure the hygrometry one needs a stable and homogeneous temperature, otherwise the results quickly become unpredictable.

Back to our Madeleines: What can be the cause of this strange phenomenon?
Let's have a closer look at the ingredients:

OK no need to look further.

E420 aka Sorbitol (2) is a white vegetable powder used in the agro-food industry for its sweetening and preserving properties.

E422 aka Glycérol aka Glycerin (3) is a viscous liquid obtained from fats ( vegetable , animal or mineral). It is used in the agro-food industry (for the same reasons as sorbitol) and cosmetics, but also as antifreeze (4) , to generate smoke or to feed dairy cows (5).

These two products are highly hygroscopic because of their alcohol functions, they dissolve in the open air by capturing moisture.

We could also call it “unhumectants” because their job here is to keep the humidity below 75% in an airtight package to thirst out molds and bacteria and extend the shelf life.(6)

Although I don't breastfeed at this time, I chose glycerol because it is easier to find in its pure form than sorbitol, which doesn't seem to have any other civil use than that of laxative.

To reproduce the behavior of the Madeleine, let us try first with several concentrations:

So we have :


And without taking too many risks, we can add:


The smoothed curve:

We zoom in on the area that interests us and we reverse the function:

We try :

71.4%! Not bad!

OK, since we're here and we're focused, why dont we try to calculate the right ratio?

So, what is hygrometry?

Relative humidity Φ (Phi) is the ratio of the water vapor contained in a volume of air to the maximum water vapor that could be contained in this volume at the same pressure and temperature.

Since the pressure exerted by a gas is proportional to the number of atoms it contains (1 mole of perfect gas occupies about 24 liters in ambient air), the relative humidity can be expressed as a ratio of the partial pressure of water vapor Pvap and the maximum pressure, called vapor pressure Psat.

The vapor pressure is a point of balance where there are always exchanges gas → liquid and liquid → gas, but they are equivalent.

When one is at saturation, this ratio is obviously 1, or 100 %.

Our objective is to stabilize the partial pressure of vapor at 72 % of the saturating vapor pressure.

We will use an application of Raoult's law:

“the partial vapor pressure of each component of an ideal mixture of liquids is equal to the vapor pressure of the pure component multiplied by its mole fraction in the mixture.” (7)

Precision : In thermodynamics, ideality is a trick to say that everything that forces us to solve second-order differential equations are petty things and of little value.

In order for the solution to be ideal, the solute must dissolve completely without radically modifying its properties, divide it into different components, and the molecular interactions of the solute and the solvent should be similar, at least at humanly bearable temperatures and pressures.

Raoult's law can be expressed by the formula (8):

By applying the formula to glycerol, we obtain:

What ?! A difference of 0.2% between a curve made from three measures and a simplified formula? This is totally unlikely, for several reasons:

1. Ideality

When we compare the characteristics of water and glycerol, it is difficult to imagine that they have the same behavior at the molecular level:

H2O Gly
Density 0,997 1,260
Molar mass 18,01 92,09
viscosité 0,001 1.49
fusion temperature 0 °C 18.2 °C
Boiling temperature 100 °C 290 °C

In addition, after having poured demineralized water into glycerin, spontaneous vortexes are created which suggest a change of enthalpy.

I haven't measured the temperature of the mixture, it is possible that it changes, as well as the volume.

In short, ideal solutions don't exist.

2. The temperature

The humidity stabilized above a solution depends on the temperature, whereas there is no trace of it in the formula, even implicitly.

The fan trick to control the temperature worked quite well, but if I had done the measurements at 20 ° C for example, I would have gotten different results. (9)

And also I noticed that the measurements varied with the temperature of the room, which is a little surprising as the temperature inside the container is stable, but I think the temperature of the walls of the container has an impact on the condensation.

3. Hygrometry

Hygrometers generally distinguish themselves by their remarkable imprecision.
The manufacturer announces an error of + - 3% (1) which is yet not too bad, because even with serious material, one can hardly hope better than + -1%.

On the other hand, if it is so difficult to measure, it probably doesn't have much effect on matter, otherwise it would be easy to measure.

4. The mixture

I used a cheap scale to measure proportions, I don't know its margin of error.

5. Mrs Braun and Mr Braun (10)

I compared the two curves with their measurements done in laboratory.

The green curve is them. By multiplying the measurements, I would probably have gotten such an irregular curve. We also note that 72% is practically the place where my curve crosses that of Raoult.
It's not that I'm not happy about it, but it's the pure fruit of chance.

Now we only have to measure the hygrometry contained in freshly unpacked cigarettes:

Well I think I'll use the same mixture as before, otherwise it will be too obvious that I'm trying to save time.
It is true that I am a little nervous at the idea of ​​soon having only 3 fags per day …


Next step: The outer box

September 15, 2017

Small change since the last update: I will not use this old wooden box found at the flea market, eventually, although the mechanism was originally designed to fit inside.
It turned out that it was not dissuasive enough: it was much too easy and tempting to make a small, discreet hole to operate the opening mechanism.
One can not imagine what an honest man can do when something is missing.

As Charlie suggested, I finally made it with 10mm Plexiglas.

It is already machined, but I still have to glue it.

I will put the real pictures in a few days.

I made a small animation to show the unlocking mechanism more in detail.

It was one of the delicate points of this project, since it was necessary to find a purely mechanical system which unlocks the box at the moment it's empty so that it can be filled, not before, and just with the strength of the timer.

The problem with this mechanism is that in case of a breakdown, the box remains locked forever. It was therefore necessary to add an alternative way of opening it.
I tried with a mailbox lock but it was really too easy to pick it, so yes, I know I said there would be no electronics in this project, but eventually there will be a little bit.

  • projects/machine_a_pas_donner_des_cigarettes_en.txt
  • Dernière modification: 2021/03/26 08:37
  • de julio