Bluetooth iOS printing on Bixolon SPP-R200II - ios

We are users of POS printer Bixolon SPP-R200II which we use for realisation of one of our projects. In the specification of this model it is listed that printer supports printing on iOS devices (iPhone & iPad) but until now we have not succeeded to achieve that. We switch the printer onto iOS mode with a required combination we fonud in official documentation and we got confirmation message. Then we connected to the printer from bluetooth interface inside iPhone Settings app.
After that we tryed to print on this device in various ways - using official test app from AppStore (https://itunes.apple.com/us/app/bixolon-printer-utility/id647125968?mt=8) and using official Bixolon SDK (http://www.bixolon.com/upload/download/software_all_bixolon_printer_sdk_for_ios_v3.1.8.zip) but unfortunately we havent managed to get any result. In this sample apps printer was not even listed as a possible connection point.
Can you direct us in any way to get the printing on iOS devices working? Thank you!

To connect to the SPP-R200II you need to enable MFi Mode for the printer.
Turn on printer
Open the cover and press the power button and paper feed button at the same time for 2 seconds
Close the cover when the buzzer sounds
The printer should now print "iOS mode enable!!" [sic]. If not, you just turned off MFi mode and need to repeat the steps to turn it on again.
Unfortunately the sample application distributed with the Bixolon SDK 3.1.8 is broken and when you press "Lookup/Targeting" nothing will happen. To fix it add this line to didFindPrinter in ViewController.h:
_uiTextFieldAddress.text = [NSString stringWithFormat:#"BT_%#", printer.macAddress];
It should now be possible to connect the printer simply by pressing "Lookup/Targeting" and then "Connect" when you se the Bluetooth address in the text field.

We had the same problem and after contacting technical support, concluded that the model we have is not compatible with iOS, the part number must be 3 letters i, for example SPP-R200IIIK/USA. After making the switch equipment provider, everything works perfectly.

Is the printer paired with the device in settings? It must be paired before the application can interact with it.

Related

Bluetooth COD on WinCE, connect by Apple mobile device

I would like to use a Apple mobile device (iPhone, iPod touch) to connect to a Windows CE device via bluetooth, but it failed. Iphone returns an error message that the device is not supported.
I understand about the MFI process but it's too difficult to get approval from the Apple MFi Team for a Windows CE device so I don't even bother to try.
Another way is change the bluetooth profile in the WinCE so make it as a headset or bluetooth keyboard so hopefully Apple can discover it as another device and accept the connection. I have the CERegEditor to modify the registry and also a COD generator from this link (http://bluetooth-pentest.narod.ru/software/bluetooth_class_of_device-service_generator.html). I modify the bluetooth profile successfully on the device and verified by Android. However, I'm still not able to use a iPhone to connect to it.
I tried to make it as a wireless headset or hands-free but it's not discoverable by the iPhone, or it just directly refused to connect.
If I made it as a keyboard, it's discoverable by the iPhone, but it doesn't connect after I send a pair request and type in the correct 4-digit pin. iPhone returns the "out of range" error even it's just next to it.
I hope I can get some help here. I appreciate if anyone can share similar experience before or provide me an appropriate COD code which works for you, or any other methods that can let me to make a connection.
Thanks for your attention.

How to debug Lightning Accessory via Xcode on iOS

I am developing an iOS application that talks to a lightning accessory. Now, when the accessory is attached, I cannot use the lightning port to debug my application in Xcode.
Is there a way to attach debugger to my application when a lightning accessory is connected to iOS device?
or
Can I somehow attach the lightning accessory to my Mac, and debug it in simulator?
I know some people are talking about WiFi debugging, but that is not supported in Xcode 6.
With Lightning accessories, there doesn't appear to be an option for connecting both Xcode & the Accessory at the same time. I think this has something to do with the way Lightning cables require authentication hardware inside (so nobody has been able to come up with a dongle/splitter). The solution I ended up using was a remote logging tool that sends log messages via network to your Mac. I use NSLogger but there is also CocoaLumberJack.
Granted, you have to pepper your code with log messages for this to be useful and there are other limitations, but it is better than nothing. You can also clean up your log messages by using a custom log macro (Objective-C only).
I am attempting the same thing. I could do it on 30 pin device using the CableJive adapter. But there does not appear to be a way to do this with Lightning. I suspect that since lightning connections (including cable) are all secured though embedded serial number chip, it means that the iOS device only allows one authentication chip per lightning connector, which means no splitters / bridges / Y-Connectors or other items unless approved by Apple.
Apple does have some magic devices for MFI approved developers, but my MFI approval expired, so not sure what they have now for Lightning device testing.
You may be able to connect to XCode wirelessly and develop with the accessory connected. This question may help guide that process.
What does the Xcode 4.2 preference "Support Wirelessly Connected Devices" do?
Wireless debugging is now available as of Xcode 9 or later and iOS 11 or later. A nice write-up on how to connect your mobile device to remotely debug are here:
https://medium.com/swiftist/wireless-debugging-xcode-b6e98e26e022
How do you perform wireless debugging in Xcode 9 with iOS 11, Apple TV 4K, etc?

Linea Pro Barcode Scanner iPhone Issues

I downloaded the iOS SDK for the Linea Pro device from their website and have successfully implemented some of it in my App - but I noticed the device never seems to work while its connected to the Mac via the USB cable. I've verified this 100% because as soon as I disconnect the LineaPro sled from the USB cable and run their Apps, it finds the Scanner and works. Otherwise, nothing.
This of course makes debugging near impossible because if you're not connected to Xcode you obviously can't see any output the App may have in Xcode's Console. You can't NSLog anything to the console, you can't put Breakpoints, you can't step-through your code - you pretty much can't do any of the things you'd normally do when developing an App.
I've actually had to resort to creating UITextViews and outputting everything I can to them during runtime ( which of course clutters up the interface big time) but even with that, if the App crashes, you never get to see your TextViews: you're thrown out and back to the iOS home screen, staring at all your little icons.
I've got some other ideas regarding work-arounds - but that's just it: they're all work-arounds. Does anyone out there know if there's any way to use the Linea Pro while its still connected to Xcode?
I don't think this is possible. For some reason lightning devices and USB don't seem to work together well.
I would suggest a combination of https://github.com/fpillet/NSLogger for logging and https://github.com/Shopify/superdb for sending messages to your app. You won't get breakpoints but you will have a few more tools at your disposal.
If you are using a device running iOS11 and you are using XCode 9, you no longer need to connect via lightning cable to debug your runtime build. XCode 9 introduced wireless debugging via a network connection:
Wireless Device Pairing Apple Documentation
Facing the same problem. I've resorted to using UIAlertViews instead of UITextFields to log messages on screen, but still its a huge pain the the buttocks.
You can also fire up a local server and hit it via localhost:8001?logmessage=myLogMessageWhichCanBeVeryVeryLong
and just print these GET requests to the terminal. Not pretty at all but its a workaround that could be of use if you want to get real creative...
Usually if you have a bug or error in your code it's going to be YOUR code, not the actual scanner or scanner input. So what I do while the app is in testing mode, is to have a button or other UIcontrol wired up to run an action AS IF there was scanner input, and I'll provide a mock string of input in a string (different inputs by incrementing a counter if needed). That way I can test away in the debugger for as long as necessary. Once my code works for me & I'm satisfied, I paste the same code into the scanner function and make the switch to the actual scanner. A little pain but not a big deal.

Send midi note on/note off with velocity over wifi from iPad

Does anyone have example with iOS/Objective C, on how to send midi "note on/note off" signal (with different velocity) over wifi so that iPad would display in "Mac OS X->Audio Midi Setup->Network. then I click connect device" and by simple touching on the button on iPad code will send midi command. I believe I need to use some protocol,but I'm newbie on this, please help me.
Thanks.
You have to use the coremidi framework (provided by the IOS). See here for a introduction: http://www.synthtopia.com/content/2011/06/02/coremidi-brain-dump/
If you are still looking I wrote sample code that is on GITHUB that wirelessly sends/receives MIDI notes ON/OFF messages from iPhone/iPad to Windows PC, Apple Mac or any other device listening. Full instruction on GITHUB.
see: https://github.com/JohnGoodstadt/MidiNotes

IPhone Bluetooth Connectivity to Non IOS Devices

I was wondering, if there is a way to use IPhone as an HID device, with some other device like PS3. I checked out the Bluetooth specification and IOS Devices do support HID Profile. So I thought it would be easy to pair my iPhone using passkey mechanism and should be able to start using my iPhone as keyboard or mouse without much hassle. But I found very soon that this assumption is naive and I need to develop custom solution.
I was initially thinking about using GameKit framework, but I think it only works between two compatible IOS Devices. If I want to extend this capability, then I have to use iPhone External Accessory API .In my analysis, I also found that iPhone will only communicate and pair with devices that are licensed by Apple. (Made for iPhone\iPod program). Does it mean that, if I want to use iPhone with another device, I need to get that device approved by Apple. ( Which will not surprise me one bit). Also if someone could point me to more detailed documentation on this, that will also be helpful.( What is an MFI developer board ??)
I do not want a solution that needs me to jailbreak an iPhone. (or any solution that will disqualify my app by Apple).
So to summarize:
1- Please validate my findings, correct them if they are wrong?
2a- How does External Accessory API Work?
b- Can I use this to connect to third party accessories ? (or is this only for accessory developers).
3- Or is there a better solution without using External Accessory API?
Please provide supportive documentation or link if you can. Thank You.
You are unlikely to get on the External accessory program from apple unless you are a big company ( you can try, but I have read this a number of places) . iPhones use a proprietary Bluetooth interface that and hardware must also implement this interface, so not much chance of getting it to connect to any other hardware directly.
Most apps like this (Remote Mouse) for example, connect to your wifi network, and have another application installed on your computer. The iphone can then talk to this application over the wi-fi network, but not bluetooth. I would suggest that the only way I can see this would be possible to to create the server app that you install on a computer on the wi-fi network that then in turn controls the 3rd party device if there is an API that you can use from the desktop app to control the 3rd party device.
This is just what I have found when I researched about this for making an app for iPhone to control a bluetooth watch. I had to jailbreak in the end to replace the bluetooth stack on the iPhone with one that could connect to any hardware device. Not limited by apple.

Resources