There are brokers that offer Zenfire (java API) Initial deposit required, but no monthly charges. Oh, and no historical data so might not be what you are looking for.
that plus they only broadcast quotes every 100ms so if you code it right you can get 12-ticks per second (open 1-sec bar, close 1-sec bar, 10x 100ms intervals). Thats not really tick level data.
EDIT: I don't know of anything for free that's decent. Tick data = you get what you pay for.