Ironball,
I have made it.
To start with, to be cost effective on must have a cheap source of materials. If you are paying 7-8 bucks a pound after shipping for ingredients just buy Skirmish powder from Powder, Inc and you will be way ahead.
Getting past that, the BP that most pyro hobbiests make is not suitable for cannon use. Granulating and screen to size is a real pita. For an aerial shell, the burst charge is often ungranulated, milled BP powder coated over rice hulls. There is a tremendous amount of exposed surface area per pound when prepared that way. You would not want to use it in a cannon. The peak pressures would be too high.
It also gets used as rocket fuel. Again, un-granulated milled powder is rammed into a cardboard tube over nozzle tooling to form the rocket motor.
It is possible to granulate powder. The milled powder is dampened slightly an pressed into hockey puck shape in a hydraulic press. After it is allowed to dry it is broken up into little pieces and screened for size through wire screens. It's a fair amount of work.
Then there is the "CIA" method, which does not require a ball mill. It is messy and requires alcohol as a solvent, adding to the cost. You can find info on that method all over the net. I tried it a couple times. I did not have much success. A ball mill is really the way to go.
Again, it can be made. A powder mill is a necessity. You can make a mill if you wish, or you can buy a rock tumbler, and tumble the ingredients with lead balls mixed in for several hours. You can buy the ingredients in most decent sized hardware stores if you know what you are looking for. Home Depot in my area has everything needed in stock, although you would be paying about 6 bucks a pound for materials alone. A big agricultural supply house might be a cheaper source of KNO3 and S on 50# bags for a good price, although they may not like to sell KNO3 in quantities less than a ton, and they may not carry it at all because it is so flamable. KNO3 can be sometimes gotten in 50# bags at pottery supply places for about $50. I know a pottery place in the very westernmost part of Massachusetts that carries it and does not ask why you want it. Charcoal you can actually make yourself if you wish for pretty much free. It is a messy process, and the quality of your charcoal process pretty much determines the quality of your BP.
Work in small amounts - a pound or so at a time, locate your mill someplace where if something goes wrong no one will get hurt. Turn the mill on remotely (a long extention cord). Keep the mill clean... you don't want a buildup of dust on the machinery. There are some good books on the subject available from skylighter.com
Rick