2

I have a project where i need to setup the to appear to other devices as a Bluetooth printer. The reason is i have a portable device the prints only through bluetooth, it searches for available bluetooth printers and prints through one of them.I want to fool the device into thinking that the raspberry pi is a bluetooth printer and after receiving the file i can print it on normal USB printer using CUPS.

I was wondering if this is applicable.
Thanks in advance.

4
  • Hi @zmolla, welcome to our site, but what exactly is your question? How to make a bluethooth to USB converter? I'm afraid you will not find anyone who makes the work for you. Please take the Tour to see how things work here.
    – Ingo
    Commented Nov 8, 2018 at 10:14
  • You will never be able to make an RPi act exactly as a closed-source commercial product. Having said that, I would try to start BT service with systemctl start bluetooth, then run sdptool add BPP and see if you can enable the basic printing profile. Commented Nov 13, 2018 at 8:59
  • @DmitryGrigoryev , I really appreciate your help. I actually tried adding BPP and HCRP to the local sdp server, but still non of the devices can detect the RPi as a bluetooth printer, but on windows i there is an "unknown printer" printer in the device manager i couldn't use it in any way.
    – zmolla
    Commented Nov 14, 2018 at 8:34
  • @zmolla I'm really not into bluetooth so I won't be of much help. However, I suggest you edit your question and add more info about what you have already tried, and what came out of it. Questions with no evidence of research are generally received poorly, and stating what you have already tried will prevent other people suggesting exactly the same things. Commented Nov 14, 2018 at 9:44

1 Answer 1

3

Changing the Bluetooth Device class was what i needed.

A useful reference of bluetooth classes with hexadecimal and binary representations can be found here: http://www.question-defense.com/tools/class-of-device-bluetooth-cod-list-in-binary-and-hex

I changed the class to "0x040680" which is the printer class. After that as was able to detect the raspberry pi as a printer on windows and an android mobile.

On the mobile i downloaded an app called PrinterShare which detected the printer and prompted me to install its drivers, so i installed a generic pcl driver.

On the raspberry pi i advertised the Serial Port service on the local SDP Server, then opened and rfcomm server socket using a python script. I saved the data received from the mobile to a binary file and named it with extension ".pcl".

This pcl file can be sent directly to printers that support pcl or in my case i was able to view it with a demo version of Red Titan PCL viewer on windows.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.