Okay, I got it working.
I connect to my console for the iMX6. For me that is COM6 on the PC. I use Tera Term.
After logging in as root, I ran a script: script contents =
hciconfig hci0 down
systemctl start bluetooth.service
sleep 1
hciconfig hci0 class 0x110100
hciconfig hci0 name javelin-bt
hciconfig hci0 up
sdptool del 0x10000
sdptool del 0x10001
sdptool del 0x10002
sdptool del 0x10003
sdptool del 0x10004
sdptool add --channel=1 SP
hciconfig hci0 piscan
Here is the explanation:
Line 1: I don't think you need to take it down, but just in case you are running a connection, I took hci0 down.
Line 2: start bluetooth service
Line 3: It seems to take a little time to get the service up.
Line 4: set the class type to include serial port. Note this seems to put in other non-serial port things too.
Line 5: set the name so I can recognize the device on the PC
Line 6: bring it back up now that the details are set.
Lines 7-11: remove any old services, including the non-serial port ones. Previously I had seen duplicates after next line.
Line 12: add the serial port service.
Line 13: make the box discoverable.
Next: "listen" (but not with the listen command) on rfcomm. This makes the /dev/rfcomm0 device show up in /dev.
rfcomm watch /dev/rfcomm0 <chan> screen /dev/rfcomm0 115200
On the PC: add the device. View properties and use the identified com port to connect: I use Tera Term and just open with my default settings of 115200 8N1.
Screen starts running in the COM6 Tera Term. Connection is running on COM8 also. However, in order to see what I was typing, I changed the Terminal settings in both to echo. I also adjusted the line ending types: Auto and CR/LF. All combined, I can type on one terminal and have it appear in the other. It is bidirectional.
I hope I've included enough details to make someone else's job less frustrating.