1) Connect to the console port with the following settings and increase the baud rate for your image transfer:
Bits per sec: 9600
Data bits: 8
Stop bits: 1
Flow control: none
2) Disconnect and reconnect to the console with 115200 bits per sec.
3) Start the xmodem file transfer:
The not so obvious thing here is, after you see the words "Begin the Xmodem transfer.....," you must now "send Xmodem" from your terminal session software...
4) Once the file transfer is finished, set the baud rate for console back to the default, and reconnect your session at 9600...
5) Lastly, set the boot system parameter and reset. (In theory, you don't have to run this command because, if there is no image defined in the config, the system loads the first image it finds in flash. It is good to know about in case you have multiple sources, usb drive, etc.)
Alternate Method from USB Drive:
1) boot into rommon mode
2) run: boot system usbflash0:c3825-advipservicesk9-mz.124-24.T3.bin
Be aware of these settings in your running-config and set them appropriately. See below entries...
boot system flash:c3825-advipservicesk9-mz.124-24.T3.bin
boot system usbflash0:c3825-advipservicesk9-mz.124-24.T3.bin
For example, if you only had the usb entry from above and reloaded your router without the usb drive inserted, guess what?
You guessed it, the router will fail to load because it can't find an image. (Unless you have one in flash.)