The curve looks linear. Can somebody explain me why it is not exponential? Is it because the converter is limiting?
What modifications would be needed to speed up the charging time?
The why: because I want to create current pulses, maybe @ 100-200 Hz. So I'm looking for a way to charge a 470 uF cap in a short time, but without using huge capacitors inside the charging circuit.
If I use the 5V of the arduino instead of the 9V battery, the charge time is way lower, approximately 200 ms.
200ms to charge 470uf from the Arduino 5v output? That sounds like you’re powering the Arduino from the same 9v battery you’re using with the step up converter.
Charging a capacitor requires charge or more importantly, current. The more current and the lower the total resistance, the faster it will charge. A battery has internal resistance. In general, the smaller the battery, the higher the resistance. Those little rectangular 9v batteries cannot deliver any appreciable current and they will severely limit the time required to charge your capacitor.
In a perfect world, without resistance, charging 470uf to 25 volts in .005 seconds (200 Hz) requires 2.35 amps. But, there is resistance everywhere. In the battery, in the capacitor, in the wires. So, it will take more current, more voltage or more time. Take your pick.
The arduino is currently attached to the usb port of my laptop. Because the charging process was very slow, I tried with a 9V battery. With my lab power supply it will be much faster, but I assume there are some big caps inside…
When you charge a capacitor with a constant current the voltage rise is linear. This is how the time base voltage was derived on old CRT TV sets. This is just the physics of what happens, it is not odd behaviour.
Because your booster is being asked to supply more current than it can, it supplies the maximum it can. This in effect is a constant current which is why you see it as a linear rise.
So you need a booster that can deliver more current.