[Samsung Epic 4G Touch] PhAkEer:
How comfortable are you with a more... Linuxxy approach?

Here

#!/system/bin/sh
busybox sysctl -e -p $0
kernel.random.read_wakeup_threshold = 128
kernel.random.write_wakeup_threshold = 128
fs.overflowgid = 65534
fs.leases-enable = 1
fs.lease-break-time = 30
net.core.wmem_max = 131071
net.core.rmem_max = 131071
net.core.wmem_default = 110592
net.core.rmem_default = 110592
net.ipv4.route.mtu_expires = 600
net.ipv4.route.min_pmtu = 552
net.ipv4.route.min_adv_mss = 256
net.ipv4.neigh.default.mcast_solicit = 3
net.ipv4.neigh.default.ucast_solicit = 3
net.ipv4.neigh.default.app_solicit = 0
net.ipv4.neigh.default.retrans_time = 10
net.ipv4.neigh.default.unres_qlen = 3
net.ipv4.neigh.default.proxy_qlen = 64
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_sent2 = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 300
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 300
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 160
net.ipv4.netfilter.ip_conntrack_tcp_timeout_last_ack = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close = 45
net.ipv4.netfilter.ip_conntrack_tcp_timeout_max_retrans = 300
net.ipv4.netfilter.ip_conntrack_tcp_loose = 1
net.ipv4.netfilter.ip_conntrack_tcp_be_liberal = 1
net.ipv4.netfilter.ip_conntrack_tcp_max_retrans = 300
net.ipv4.tcp_syn_retries = 5
net.ipv4.tcp_synack_retries = 5
net.ipv4.tcp_max_orphans = 65536
net.ipv4.tcp_max_tw_buckets = 65536
net.ipv4.ip_dynaddr = 0
net.ipv4.tcp_keepalive_time = 7200
net.ipv4.tcp_keepalive_probes = 20
net.ipv4.tcp_keepalive_intvl = 75
net.ipv4.tcp_retries1 = 10
net.ipv4.tcp_retries2 = 25
net.ipv4.tcp_fin_timeout = 90
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_abort_on_overflow = 0
net.ipv4.tcp_mem = 1714556860196000
net.ipv4.tcp_wmem = 20481638480208
net.ipv4.tcp_rmem = 512087380110208
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_slow_start_after_idle = 0
net.ipv4.tcp_available_congestion_control = cubic reno
net.ipv4.tcp_allowed_congestion_control = cubic reno
net.ipv4.conf.all.forwarding = 0
net.ipv4.conf.all.mc_forwarding = 0
net.ipv4.conf.all.accept_redirects = 1
net.ipv4.conf.all.secure_redirects = 1
net.ipv4.conf.all.shared_media = 1
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.all.send_redirects = 1
net.ipv4.conf.all.accept_source_route = 1
net.ipv4.conf.all.accept_local = 0
net.ipv4.ip_forward = 1
net.ipv4.ipfrag_high_thresh = 262144
net.ipv4.ipfrag_low_thresh = 196608
net.ipv4.ipfrag_time = 30
net.ipv4.icmp_echo_ignore_all = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1

Copy-paste that to a new file in /system/xbin

give it an easy name to remember.. like "test"

or something...

then in terminal emulator type

su

chmod 0755 /system/xbin/test

test

It should very noticeably improve your 3g but it may also drain your battery a little faster.

(I'm in the same position... the slightly smaller battery capacity is more than a fair trade.. lol)

If it doesn't help, just reboot and don't execute it again ;)

Add: Also just occurred to me that I didn't back read at all.

Were basic steps like disabling the roaming guards and switching from "sprint" or "home" to "automatic" already taken?

Also, a trick I used when I had 4g issues that should work the same for 3g...

Go to

/etc/wifi

and make an edit the file

supplicant_scan.conf

change "wlan0" to "ppp0" and delete the "ap_scan" line.

that should trick your wpa scan onto waking 3g whenever it can.

Good luck and sorry for the rant