It's really best to use readBin() on a connection that you are processing rather than trying to read a whole file (unless there is only one data.type in a file, but here you have mixed types here). This appears to work on your sample file.
N<-28
RC<-27
secs<-numeric(N)
speeds<-numeric(N)
con<-file("/rawdata.txt", "rb")
for(i in seq.int(N)) {
print(i)
secs[i] <- as.numeric(readChar(con,8))
stopifnot(readChar(con,2)==":$") #check
readBin(con,"raw",3) #skip 3 bytes
speeds[i] <- readBin(con, "int",1,2, signed=F)
readBin(con,"raw",10) #skip 10 bytes
stopifnot(readBin(con,"raw",2)==c(13,10)) #check
}
data.frame(secs,speeds)
close(con)