ODK Collect v2025.3: more accurate barcode scanning, more reliable form downloads, & more

Hero image_scanning barcode2

What’s new

:selfie: More accurate barcode scanning

Barcode and QR code scanning is now more accurate, even with distorted or poorly printed codes. You’ll also get instant feedback when a scan succeeds or fails.

:repeat_button: More reliable form downloads when screen is locked

When Collect's blank form update mode is set to “Exactly match server” (Central’s default), manual form downloads now continue even if the screen is locked. During sync, manual or automatic, you'll also now see a persistent notification and clear success or failure messages.

:wastebasket: Safer project deletion

You can now delete projects even if they have unsent forms. Before deletion, you’ll see a confirmation dialog with a clear summary of what will be removed, so you don’t accidentally lose data.

:rocket: Faster updates of forms with thousands of media files

We’ve made improvements to downloading and updating forms with thousands of photos, CSVs, and other media files on slow or unstable connections.

:globe_with_meridians: More languages fully translated

Thanks to @rfvieira and @Sebastian_Therman Portuguese and Finnish are now fully translated! We’re now looking for contributors to help strengthen our Arabic, Swahili, and Hindi translations. Join in and help make Collect available to even more communities. Get started here.

Download the release

If you want to read more, see our detailed release notes. Let us know if you have any feedback!

Want to know what’s next? Check out our roadmap.

3 Likes

Thanks for all the great feedback on the new barcode scanning experience! We have now released Collect v2025.3.2 which makes the following improvements:

  • No pause after a successful scan
  • Landscape mode to increase size of scanning area

We had added a pause to help users confirm they scanned the correct code in a situation where multiple barcodes might be visible. However, we got feedback that this slowed things down too much in contexts where codes are easy to unambiguously scan. It also didn't help in cases where multiple barcodes might be in the scanning area (see @sindile's ID card care here).

By default when a device is in portrait, we provide a square scanning area to help reduce the chance of scanning the wrong barcode. Previously the same smaller scanning area applied in landscape as well. We have now made it so that the scanning area is the full size of the screen when a device is in landscape or the new "rotate" button is pressed. This allows scanning higher-density codes like the driver's license that @sindile shared here. In general, the long edge of the barcode will need to fill the long edge of the phone for this to work. How dense of a barcode can be scanned depends on camera quality, lightning conditions and print quality of the code.

We'll come back to the multi-barcode case later. We want to hear from you if your project involves scanning one specific code when multiple might be visible (like we saw in @joybindroo's Insiders talk!). Is this release working for you? Are there still challenges with making sure the right code is always scanned?