Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. Qt Serial Port: Android, iOS - will it work ?
QtWS25 Last Chance

Qt Serial Port: Android, iOS - will it work ?

Scheduled Pinned Locked Moved Mobile and Embedded
27 Posts 3 Posters 16.0k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M mrjj
    16 Mar 2017, 07:39

    @ekkescorner
    I agree. It sounds like a smaller project but soon will explode in Details. :)
    Using a w10 tablet is ofc better than a pc. :) Didnt releized they are almost
    as cheap as PIs now a days.

    E Offline
    E Offline
    ekkescorner
    Qt Champions 2016
    wrote on 16 Mar 2017, 17:21 last edited by
    #9

    @mrjj seems I found a solution for Android and iOS :)

    there's a waiter lock available supporting BT LE
    https://www.jarltech.com/2007/artikel.php?language=de&gotoartikel=addistift&suche=addlockbt14
    https://www.bluetooth.org/tpg/QLI_viewQDL.cfm?qid=33233

    got some tech info: can be used as HID or with own protocol
    HID doesn't work because then on iOS the virtual keyboard disappears
    But I got Characteristic UUID and Services UUID andcan listen for Notifications to detect if Key was put in or out

    will provide example at github (if all works as expected ;-)

    ekke ... Qt Champion 2016 | 2024 ... mobile business apps
    5.15 --> 6.8 https://t1p.de/ekkeChecklist
    QMake --> CMake https://t1p.de/ekkeCMakeMobileApps

    M P 2 Replies Last reply 16 Mar 2017, 21:49
    1
    • E ekkescorner
      16 Mar 2017, 17:21

      @mrjj seems I found a solution for Android and iOS :)

      there's a waiter lock available supporting BT LE
      https://www.jarltech.com/2007/artikel.php?language=de&gotoartikel=addistift&suche=addlockbt14
      https://www.bluetooth.org/tpg/QLI_viewQDL.cfm?qid=33233

      got some tech info: can be used as HID or with own protocol
      HID doesn't work because then on iOS the virtual keyboard disappears
      But I got Characteristic UUID and Services UUID andcan listen for Notifications to detect if Key was put in or out

      will provide example at github (if all works as expected ;-)

      M Offline
      M Offline
      mrjj
      Lifetime Qt Champion
      wrote on 16 Mar 2017, 21:49 last edited by
      #10

      @ekkescorner
      That could be nice solution.
      The keys looks durable so if the cradle is good it should be fine. or even excellent.
      Nice find :)

      1 Reply Last reply
      0
      • E ekkescorner
        16 Mar 2017, 17:21

        @mrjj seems I found a solution for Android and iOS :)

        there's a waiter lock available supporting BT LE
        https://www.jarltech.com/2007/artikel.php?language=de&gotoartikel=addistift&suche=addlockbt14
        https://www.bluetooth.org/tpg/QLI_viewQDL.cfm?qid=33233

        got some tech info: can be used as HID or with own protocol
        HID doesn't work because then on iOS the virtual keyboard disappears
        But I got Characteristic UUID and Services UUID andcan listen for Notifications to detect if Key was put in or out

        will provide example at github (if all works as expected ;-)

        P Offline
        P Offline
        pit.garbe
        wrote on 6 Apr 2017, 10:04 last edited by
        #11

        @ekkescorner said in Qt Serial Port: Android, iOS - will it work ?:

        @mrjj seems I found a solution for Android and iOS :)

        there's a waiter lock available supporting BT LE
        https://www.jarltech.com/2007/artikel.php?language=de&gotoartikel=addistift&suche=addlockbt14
        https://www.bluetooth.org/tpg/QLI_viewQDL.cfm?qid=33233

        got some tech info: can be used as HID or with own protocol
        HID doesn't work because then on iOS the virtual keyboard disappears
        But I got Characteristic UUID and Services UUID andcan listen for Notifications to detect if Key was put in or out

        will provide example at github (if all works as expected ;-)

        Hi,
        that sounds very promising. Did you get anywhere with it?

        We've been looking all over the place to find a suitable hardware solution for user authentication using iButton or RFID or similar tech in conjunction with iOS. All of them are either RS232, virtual RS232 via USB or HID. Nothing of that works with iOS as you pointed out already, with HID being the closest to being usable, but there is the software keyboard issue.

        So this Addimat lock that supposedly supports BT communication popped up a few times before, but it always seemed like its only using BT to connect to a PC which in turn needs a driver to turn the connection into a virtual COM port again. That didn't seem useful at all.

        There is no information about it anywhere, so I ordered one of these locks and will try to make it work. Of course, it would be very cool, if you could share how far you got already!

        E 1 Reply Last reply 6 Apr 2017, 10:30
        1
        • P pit.garbe
          6 Apr 2017, 10:04

          @ekkescorner said in Qt Serial Port: Android, iOS - will it work ?:

          @mrjj seems I found a solution for Android and iOS :)

          there's a waiter lock available supporting BT LE
          https://www.jarltech.com/2007/artikel.php?language=de&gotoartikel=addistift&suche=addlockbt14
          https://www.bluetooth.org/tpg/QLI_viewQDL.cfm?qid=33233

          got some tech info: can be used as HID or with own protocol
          HID doesn't work because then on iOS the virtual keyboard disappears
          But I got Characteristic UUID and Services UUID andcan listen for Notifications to detect if Key was put in or out

          will provide example at github (if all works as expected ;-)

          Hi,
          that sounds very promising. Did you get anywhere with it?

          We've been looking all over the place to find a suitable hardware solution for user authentication using iButton or RFID or similar tech in conjunction with iOS. All of them are either RS232, virtual RS232 via USB or HID. Nothing of that works with iOS as you pointed out already, with HID being the closest to being usable, but there is the software keyboard issue.

          So this Addimat lock that supposedly supports BT communication popped up a few times before, but it always seemed like its only using BT to connect to a PC which in turn needs a driver to turn the connection into a virtual COM port again. That didn't seem useful at all.

          There is no information about it anywhere, so I ordered one of these locks and will try to make it work. Of course, it would be very cool, if you could share how far you got already!

          E Offline
          E Offline
          ekkescorner
          Qt Champions 2016
          wrote on 6 Apr 2017, 10:30 last edited by ekkescorner 4 Jun 2017, 10:46
          #12

          @pit.garbe Hi, I'm just making it run :)

          These are my first steps with QT and Bluetooth LE
          (Did some BT LE and NFC APPs before on BlackBerry 10)

          Noticed that the Qt BT LE Example APPs are outdated and not fully featured in respect of handling all the possible errors and states.
          (There was much progress and new things added for 5.7 and 5.8)
          So I'm just working on a new BT LE Example app using QtQuickControls2 for Android, iOS containing

          • BT LE Scanner to discover devices , Services, Characteristic, Descriptors
          • HearRate Example
          • WeightControl Example
          • WaiterLock Addimat Example

          wait a week and you'll get your Addimat Waiter Lock running out of the box :)

          BTW: I really like the way Qt is dealing with BT LE, but it's much work to manage all possible SIGNALS, error-codes, ... work-arounds for errors deep in Android BT GATT stack ... you'll get all of this from my upcoming BT LE Example APP

          ekke ... Qt Champion 2016 | 2024 ... mobile business apps
          5.15 --> 6.8 https://t1p.de/ekkeChecklist
          QMake --> CMake https://t1p.de/ekkeCMakeMobileApps

          P 1 Reply Last reply 6 Apr 2017, 11:48
          3
          • E ekkescorner
            6 Apr 2017, 10:30

            @pit.garbe Hi, I'm just making it run :)

            These are my first steps with QT and Bluetooth LE
            (Did some BT LE and NFC APPs before on BlackBerry 10)

            Noticed that the Qt BT LE Example APPs are outdated and not fully featured in respect of handling all the possible errors and states.
            (There was much progress and new things added for 5.7 and 5.8)
            So I'm just working on a new BT LE Example app using QtQuickControls2 for Android, iOS containing

            • BT LE Scanner to discover devices , Services, Characteristic, Descriptors
            • HearRate Example
            • WeightControl Example
            • WaiterLock Addimat Example

            wait a week and you'll get your Addimat Waiter Lock running out of the box :)

            BTW: I really like the way Qt is dealing with BT LE, but it's much work to manage all possible SIGNALS, error-codes, ... work-arounds for errors deep in Android BT GATT stack ... you'll get all of this from my upcoming BT LE Example APP

            P Offline
            P Offline
            pit.garbe
            wrote on 6 Apr 2017, 11:48 last edited by
            #13

            @ekkescorner That sounds great! Thanks for the heads up.

            I'm actually not coming here from Qt usage – we're working on an iOS app without Qt.
            I only used Qt before for a desktop app.

            Nevertheless, I think it will be insightful to look at your example app.

            E 1 Reply Last reply 6 Apr 2017, 12:56
            0
            • P pit.garbe
              6 Apr 2017, 11:48

              @ekkescorner That sounds great! Thanks for the heads up.

              I'm actually not coming here from Qt usage – we're working on an iOS app without Qt.
              I only used Qt before for a desktop app.

              Nevertheless, I think it will be insightful to look at your example app.

              E Offline
              E Offline
              ekkescorner
              Qt Champions 2016
              wrote on 6 Apr 2017, 12:56 last edited by
              #14

              @pit.garbe I'm also doing iOS Apps - but WITH Qt and so I'm getting the Android APP out of the box ;-)
              For me QtQuickControls2 were the reason to go this way instead of using Xamarin, Ionic, Angular or iOS + Android native

              BTW: if you download a BT LE Scanner APP from Apple Store you can inspect the Addimat, find Custom Service and Characteristic. There's one with Notifications. Start Notifications and put the magnetic key in and out - watch the value

              ekke ... Qt Champion 2016 | 2024 ... mobile business apps
              5.15 --> 6.8 https://t1p.de/ekkeChecklist
              QMake --> CMake https://t1p.de/ekkeCMakeMobileApps

              P 1 Reply Last reply 9 Apr 2017, 19:41
              0
              • E ekkescorner
                6 Apr 2017, 12:56

                @pit.garbe I'm also doing iOS Apps - but WITH Qt and so I'm getting the Android APP out of the box ;-)
                For me QtQuickControls2 were the reason to go this way instead of using Xamarin, Ionic, Angular or iOS + Android native

                BTW: if you download a BT LE Scanner APP from Apple Store you can inspect the Addimat, find Custom Service and Characteristic. There's one with Notifications. Start Notifications and put the magnetic key in and out - watch the value

                P Offline
                P Offline
                pit.garbe
                wrote on 9 Apr 2017, 19:41 last edited by
                #15

                @ekkescorner The Addimat lock arrived on Friday, and indeed, using a scanner app I could verify that it is usable in the way I intent to. Great.

                I'm still looking forward to have a look at your example app, but I already want to thank you for inadvertently convincing me to buy this device after dismissing it for so long. It definitely seems to be the way to go for us :-)

                E 1 Reply Last reply 9 Apr 2017, 21:39
                0
                • P pit.garbe
                  9 Apr 2017, 19:41

                  @ekkescorner The Addimat lock arrived on Friday, and indeed, using a scanner app I could verify that it is usable in the way I intent to. Great.

                  I'm still looking forward to have a look at your example app, but I already want to thank you for inadvertently convincing me to buy this device after dismissing it for so long. It definitely seems to be the way to go for us :-)

                  E Offline
                  E Offline
                  ekkescorner
                  Qt Champions 2016
                  wrote on 9 Apr 2017, 21:39 last edited by
                  #16

                  @pit.garbe great to hear. Seems that my app will be ready this week. I'll let you know

                  ekke ... Qt Champion 2016 | 2024 ... mobile business apps
                  5.15 --> 6.8 https://t1p.de/ekkeChecklist
                  QMake --> CMake https://t1p.de/ekkeCMakeMobileApps

                  1 Reply Last reply
                  0
                  • P Offline
                    P Offline
                    pit.garbe
                    wrote on 12 Apr 2017, 13:50 last edited by pit.garbe 4 Dec 2017, 14:00
                    #17

                    I made some "fun" discoveries.

                    1. Upon connecting to the Addimat lock, I always get the pairing popup.
                    2. It makes no difference, what I do with that popup, I can still read the characteristic.
                    3. The connection sporadically gets lost, which I can fix by reconnecting, but that shows the popup again :(

                    Looking closer, using the Mac OS Console.app, I discovered that, indeed, the pairing result is always negative. Depending on which button I press (Cancel, OK) and what PIN code I enter (especially, how long it is) there are several different outcomes printed to the console. All of which clearly indicate failure to pair.

                    Since there is, as I mentioned earlier, no data sheet for the Bluetooth version of the lock, there is also unfortunately no info about the default Bluetooth PIN. Maybe it's even by "design" that the lock never pairs. (I tried all kinds of typical default PINs, mind you).

                    Did you also run into these problems?

                    Update: I now sent an email to Addimat, asking for the PIN.

                    E 1 Reply Last reply 12 Apr 2017, 14:47
                    0
                    • P pit.garbe
                      12 Apr 2017, 13:50

                      I made some "fun" discoveries.

                      1. Upon connecting to the Addimat lock, I always get the pairing popup.
                      2. It makes no difference, what I do with that popup, I can still read the characteristic.
                      3. The connection sporadically gets lost, which I can fix by reconnecting, but that shows the popup again :(

                      Looking closer, using the Mac OS Console.app, I discovered that, indeed, the pairing result is always negative. Depending on which button I press (Cancel, OK) and what PIN code I enter (especially, how long it is) there are several different outcomes printed to the console. All of which clearly indicate failure to pair.

                      Since there is, as I mentioned earlier, no data sheet for the Bluetooth version of the lock, there is also unfortunately no info about the default Bluetooth PIN. Maybe it's even by "design" that the lock never pairs. (I tried all kinds of typical default PINs, mind you).

                      Did you also run into these problems?

                      Update: I now sent an email to Addimat, asking for the PIN.

                      E Offline
                      E Offline
                      ekkescorner
                      Qt Champions 2016
                      wrote on 12 Apr 2017, 14:47 last edited by ekkescorner 4 Dec 2017, 15:03
                      #18

                      @pit.garbe I did most work on Android, where the OS never is asking to pair.
                      on iOS - yes, the iOS is asking and you should NOT pair, because - as I understand this - this would pair the Addimat as HID and you're running into virtual keyboard problems.
                      Pairing code is 308630 - never tried if pairing one time would help on iOS

                      I have no problems of lost connections.
                      just tried this again - no problem. Even if connecting also to another custom BT LE Device.
                      Notifications from Addimat (Key in/out) and Notifications from other device (BatteryLevel and measurement of mobile network level) all ame in perfect - even while going to other Pages of the APP.
                      So I'm really happy with QT BT LE.

                      Only problem what could happen with Addimat: if you tottle the key while it is logged in sometimes the ID is lost (getting 0000000000000000) followed by sending the Key ID again.
                      To avoid this I'm using a Timer waiting 3 seconds before doing logout. If same Key enters again while Timer is running I ignore and continue

                      ekke ... Qt Champion 2016 | 2024 ... mobile business apps
                      5.15 --> 6.8 https://t1p.de/ekkeChecklist
                      QMake --> CMake https://t1p.de/ekkeCMakeMobileApps

                      1 Reply Last reply
                      1
                      • P Offline
                        P Offline
                        pit.garbe
                        wrote on 12 Apr 2017, 20:37 last edited by
                        #19

                        After hours of comparing other code bases, where the disconnections don't happen, to mine I'm happy to announce that it was caused by a remote log viewing library that also uses Bluetooth to announce itself. Quite the discovery.

                        Ok, so now I don't have the disconnects anymore, but the pairing popup remains.
                        You said the pairing would make the Addimat act as a HID device? Uh, that's definitely not what I'd want. But it doesn't pair anyway. Maybe it can somehow be told to be ignored forever?

                        E 1 Reply Last reply 12 Apr 2017, 23:04
                        0
                        • P pit.garbe
                          12 Apr 2017, 20:37

                          After hours of comparing other code bases, where the disconnections don't happen, to mine I'm happy to announce that it was caused by a remote log viewing library that also uses Bluetooth to announce itself. Quite the discovery.

                          Ok, so now I don't have the disconnects anymore, but the pairing popup remains.
                          You said the pairing would make the Addimat act as a HID device? Uh, that's definitely not what I'd want. But it doesn't pair anyway. Maybe it can somehow be told to be ignored forever?

                          E Offline
                          E Offline
                          ekkescorner
                          Qt Champions 2016
                          wrote on 12 Apr 2017, 23:04 last edited by
                          #20

                          @pit.garbe good to hear that your disconnects are gone. for the pairing question on iOS I don't know if there's a way to avoid. perhaps Addimat can add a way ro configure the device to disable HID. will ask them.
                          but for my use-case not so important: my app will be the only app running on Tablet whole day, so one time to cancel the pairing question isn't a real problem. also most of my customers will use large Android tablets instead of iPads and on Android there's no pairing question.

                          ekke ... Qt Champion 2016 | 2024 ... mobile business apps
                          5.15 --> 6.8 https://t1p.de/ekkeChecklist
                          QMake --> CMake https://t1p.de/ekkeCMakeMobileApps

                          1 Reply Last reply
                          0
                          • P Offline
                            P Offline
                            pit.garbe
                            wrote on 13 Apr 2017, 07:32 last edited by
                            #21

                            So, I got the documents. Data sheet and instructions. After reading them it's clear that paring is definitely only for HID mode. I sent a followup to both the person who sent me the docs and the one who apparently wrote the instructions, asking for a way to disable HID mode altogether.

                            Btw., I just now realised that you probably speak German ;)

                            E 2 Replies Last reply 13 Apr 2017, 07:59
                            0
                            • P pit.garbe
                              13 Apr 2017, 07:32

                              So, I got the documents. Data sheet and instructions. After reading them it's clear that paring is definitely only for HID mode. I sent a followup to both the person who sent me the docs and the one who apparently wrote the instructions, asking for a way to disable HID mode altogether.

                              Btw., I just now realised that you probably speak German ;)

                              E Offline
                              E Offline
                              ekkescorner
                              Qt Champions 2016
                              wrote on 13 Apr 2017, 07:59 last edited by
                              #22

                              @pit.garbe said in Qt Serial Port: Android, iOS - will it work ?:

                              Btw., I just now realised that you probably speak German ;)

                              yep - I'm living in Rosenheim

                              ekke ... Qt Champion 2016 | 2024 ... mobile business apps
                              5.15 --> 6.8 https://t1p.de/ekkeChecklist
                              QMake --> CMake https://t1p.de/ekkeCMakeMobileApps

                              1 Reply Last reply
                              0
                              • P pit.garbe
                                13 Apr 2017, 07:32

                                So, I got the documents. Data sheet and instructions. After reading them it's clear that paring is definitely only for HID mode. I sent a followup to both the person who sent me the docs and the one who apparently wrote the instructions, asking for a way to disable HID mode altogether.

                                Btw., I just now realised that you probably speak German ;)

                                E Offline
                                E Offline
                                ekkescorner
                                Qt Champions 2016
                                wrote on 13 Apr 2017, 08:01 last edited by ekkescorner
                                #23

                                @pit.garbe BTW: have you tried to change the switch on the device to computer instead keyboard ? does this help on iOS ?

                                ekke ... Qt Champion 2016 | 2024 ... mobile business apps
                                5.15 --> 6.8 https://t1p.de/ekkeChecklist
                                QMake --> CMake https://t1p.de/ekkeCMakeMobileApps

                                P 1 Reply Last reply 13 Apr 2017, 08:45
                                0
                                • E Offline
                                  E Offline
                                  ekkescorner
                                  Qt Champions 2016
                                  wrote on 13 Apr 2017, 08:08 last edited by ekkescorner
                                  #24

                                  info for all waiting for my Qt 5.8 - QtQuickControls2 - Bluetooth LE Example APP:

                                  • finished all the work for BT LE Scanner to inspect devices, services, characteristic, descriptors and to try out read, write, notifications
                                  • finished my work for a customer project using a custom device to scan pegel of mobile networks (this won't be open source)
                                  • finished my work for a customer project using the Addimat (waiter lock) for user login-logout
                                  • working on HeartRate and another example
                                  • working on device-specific settings and device-favorites to make restart app easier with auto-connect to devices and notifications

                                  then have to write the blog to provide some documentation
                                  expect blog and app at github next week

                                  ekke ... Qt Champion 2016 | 2024 ... mobile business apps
                                  5.15 --> 6.8 https://t1p.de/ekkeChecklist
                                  QMake --> CMake https://t1p.de/ekkeCMakeMobileApps

                                  1 Reply Last reply
                                  0
                                  • P Offline
                                    P Offline
                                    pit.garbe
                                    wrote on 13 Apr 2017, 08:43 last edited by
                                    #25

                                    Grüße aus Dresden :)

                                    So, I just found out by accident how to fix the popup issue.

                                    Simply pair the lock once as a keyboard, then navigate to the Bluetooth system settings and remove the lock there ("ignore this device"). Then it will not try to connect to the iPad again by itself. Presumably because it has its own list of known devices and the iPad is now ignoring all incoming connection by the lock.

                                    It can only be connected to this iPad as a keyboard again after clearing the pairing list on the lock itself. This can be done by putting the little selection dial on the bottom to the third, unmarked position (not "COM P" and not "Key Board") and plugging it in again, then off again and turn the dial back to one of the other positions and plugging it in again.

                                    The iPad will then be asked again to enter the PIN upon connecting to the lock.

                                    So, for us its perfect. Disable once and never be bothered again. Even from the iPad settings screen its impossible to reconnect again (by accident).

                                    E 1 Reply Last reply 13 Apr 2017, 09:04
                                    0
                                    • E ekkescorner
                                      13 Apr 2017, 08:01

                                      @pit.garbe BTW: have you tried to change the switch on the device to computer instead keyboard ? does this help on iOS ?

                                      P Offline
                                      P Offline
                                      pit.garbe
                                      wrote on 13 Apr 2017, 08:45 last edited by
                                      #26

                                      @ekkescorner said in Qt Serial Port: Android, iOS - will it work ?:

                                      @pit.garbe BTW: have you tried to change the switch on the device to computer instead keyboard ? does this help on iOS ?

                                      That didn't help. And I think its a switch between COM (serial port) and USB HID mode. It doesn't affect the Bluetooth features. Only the third setting disables Bluetooth altogether, and, as it turns out, is used to clear the pairing list.

                                      1 Reply Last reply
                                      0
                                      • P pit.garbe
                                        13 Apr 2017, 08:43

                                        Grüße aus Dresden :)

                                        So, I just found out by accident how to fix the popup issue.

                                        Simply pair the lock once as a keyboard, then navigate to the Bluetooth system settings and remove the lock there ("ignore this device"). Then it will not try to connect to the iPad again by itself. Presumably because it has its own list of known devices and the iPad is now ignoring all incoming connection by the lock.

                                        It can only be connected to this iPad as a keyboard again after clearing the pairing list on the lock itself. This can be done by putting the little selection dial on the bottom to the third, unmarked position (not "COM P" and not "Key Board") and plugging it in again, then off again and turn the dial back to one of the other positions and plugging it in again.

                                        The iPad will then be asked again to enter the PIN upon connecting to the lock.

                                        So, for us its perfect. Disable once and never be bothered again. Even from the iPad settings screen its impossible to reconnect again (by accident).

                                        E Offline
                                        E Offline
                                        ekkescorner
                                        Qt Champions 2016
                                        wrote on 13 Apr 2017, 09:04 last edited by
                                        #27

                                        @pit.garbe said in Qt Serial Port: Android, iOS - will it work ?:

                                        Grüße aus Dresden :)

                                        thx

                                        So, I just found out by accident how to fix the popup issue.

                                        Simply pair the lock once as a keyboard, then navigate to the Bluetooth system settings and remove the lock there ("ignore this device"). Then it will not try to connect to the iPad again by itself.

                                        will do this next time testing the lock on iOS. Doing all my work on Android and only from time to time verify if all works and looks good on iOS, too

                                        ekke ... Qt Champion 2016 | 2024 ... mobile business apps
                                        5.15 --> 6.8 https://t1p.de/ekkeChecklist
                                        QMake --> CMake https://t1p.de/ekkeCMakeMobileApps

                                        1 Reply Last reply
                                        0

                                        • Login

                                        • Login or register to search.
                                        • First post
                                          Last post
                                        0
                                        • Categories
                                        • Recent
                                        • Tags
                                        • Popular
                                        • Users
                                        • Groups
                                        • Search
                                        • Get Qt Extensions
                                        • Unsolved