Support Pet Scanner Microchip reader

1. What is the general goal of the feature?
Provide a direct scan-to-widget for plug-in microchip scanners.

Pet Scanner offers affordable (10 GBP) plug-in microchip scanners. They are Android only (as is Collect) and plug into the micro USB port of the data capture device. They are sold out of the UK (local for @Callum884 :wink: ).

It would be useful if ODK Collect were to support these scanners, or at least start the discussion about how much effort this would be.

2. What are some example use cases for this feature?
Microchips, as found in domestic pets, are also widely used in animal tagging studies. Their ID codes are 9-digit integers.
Western Australian turtle tagging programs use ISO FDX-B (134.2 kHz) microchips.

Capturing the microchip number (and other tag IDs) is the most critical, and most error-prone step in the data capture process of our longitudinal surveys involving tagged/microchipped animals.

ODK Collect offers a very streamlined process to capture location (one click geolocation widget), date and time (via metadata), identity of the observer (metadata device ID and username).
The show-stopper feature is to scan a microchip directly into ODK Collect using the PetScanner hardware dongle (or a similar device).

3. What can you contribute to making this feature a reality?
User stories, UAT, provision of a PetScanner microship reader to developers, possibly funding for development.

This is Tom Kingston, the lead developer from PetScanner. Florian May has reached out to us and asked if we would be open to working with ODK on this. I can confirm that we are definitely interested in working with you and are happy to support this with documentation and access to our APIs. Please reach out to me at directly to begin this process if you do decide to pursue implementing this feature request.


We'd be really interested in this feature. We work with equids worldwide in all different situations and one of the biggest time drains is correcting the Chip ID numbers thta have been inputted incorrectly.


Thanks for the detailed writeup, @Florian_May, and for your interest and follow-up, @tkingston_petscanner! It's great to hear that this would also address your need, @Stuart.

Collect already has a mechanism for launching and receiving data from external apps. The absolute ideal would be if we could use that to launch the existing PetScanner app. This would require that one of the app's activities be launchable via intent. That activity would need to return an intent extra with key value and the 9-digit integer. Then everything should Just Work™️ on the Collect side.

I think the ideal user experience would be to go directly to the PetScanner app activity that reads the code. Upon a successful scan, the app would build a result intent with that value extra, set its result to that intent and then close (call finish()). That would put the user back in Collect with the scanned code in the form.

@tkingston_petscanner does this seem like something you could do (if you don’t already)? It should be quite straightforward and I'm happy to help in any way I can (code samples? A pairing session?). The cool thing with this approach is that other folks could also easily integrate with your app.


Yes seems to be a good feature if added from an external app.


1 Like