BadgeMagic: four creation modes and Bluetooth transfer for LED name badges
Badge Magic with LEDs - mobile and desktop app, iOS, Mac, Android
At a glance
- What is it?
- BadgeMagic is an Apache-2.0 Flutter app for programming LED name badges via Bluetooth, offering 22 animation types, a drawing mode, clipart import and a 11x44 grid editor. It installs from the App Store, Google Play, F-Droid or Flathub, and requires a BLE-capable badge.
- Who is it for?
- BadgeMagic is the right choice for anyone who wants to program an LED name badge from a phone without writing code, with 22 animation types, 3 effects and a pixel grid editor. Use it if your badge communicates via Bluetooth Low Energy.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly Dart, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 11, 2026, and from our analysis. They are not legal advice.
Editorial analysis
Four creation modes: text, draw, clipart and animation
BadgeMagic addresses one specific task: configuring what an LED name badge displays, without requiring a cable or custom firmware. It runs on Android, iOS and Linux and connects to LED badges via Bluetooth Low Energy.
Four modes cover different input styles. Text mode lets users type a message and pick from 22 transition effects. Draw mode opens a freehand editor with five shape tools: freehand, square, rectangle, circle and triangle. Clipart mode imports pre-made graphics. Animation mode adds character-based animations including Pacman, hearts, fireworks and digital rain. All four modes share a preview area that shows the virtual LED grid before any transfer.
The four main tabs, Speed, Transition, Effects and Animation, appear across all modes. Speed takes an 8-level radial dial. Effects provides Flash, Invert and Marquee as toggles. Transition maps to the 22 animation types available in text mode. Animation provides the character animations. This four-tab layout is fixed, so every creation session starts with those same controls regardless of which creation mode is active.
Getting BadgeMagic from the App Store, Google Play, F-Droid or Flathub
Four store channels carry the app. iOS installs from the App Store (app id 6740176888). Android installs from Google Play (package org.fossasia.badgemagic) or from F-Droid at the same package identifier. Linux desktop installs via Flathub at org.fossasia.BadgeMagic.
TestFlight (join code h6tHnYGK) and Google Play testing are the iOS and Android beta channels. A direct APK from the repository's apk branch is available for side-loading on Android without a store account.
No build-from-source instructions appear in the README. The repository root holds pubspec.yaml and pubspec.lock, placing it as a Flutter project, with android/, iOS/, linux/, macos/, web/ and windows/ directories at the top level. The README does not give flutter build commands, so the documented installation path for all platforms is through the app stores or Flathub rather than a local build.
The 11x44 LED grid and how 22 animation types drive it
Every badge displays content on an 11-row by 44-column grid of LEDs. BadgeMagic exposes that grid directly in draw mode, where a pixel-perfect editing surface lets users place and remove individual LEDs. The undo/redo system tracks the full drawing history, so errors in the draw mode can be reversed without starting over.
For text content, the app maps characters onto that grid at runtime and applies one of 22 named animation types: Left, Right, Up, Down, Fixed, Splitting, Snowflake, Picture, Laser, Pacman, Chevron, Diamond, Broken Hearts, Cupid, Feet, Fish, Diagonal, Emergency, Beating Hearts, Fireworks, Digital Rain (Equalizer), and Cycle. Each animation type controls how the content enters or moves across the display. The 8-speed dial sets the rate of that movement.
Badges support up to 8 slots, and BadgeMagic's Custom Slot Decider lets users select which slots to populate in a single batch operation. Sending all 8 in one transfer is the intended batch workflow, according to the README's badge management section. Saving a badge preserves the original text so editing later does not require retyping the message.
Bluetooth Low Energy transfer and the Location permission on Android 11 and below
All communication between the app and the physical badge runs over Bluetooth Low Energy. Device discovery is automatic, and the connection method is described as a secure BLE connection. After connection, badge data transfers to the physical device. A settings screen lets users rename connected devices and configure scan preferences.
On Android 11 and below, the app requires a Location permission to discover BLE devices. The README explains this is an Android platform requirement, not a BadgeMagic design choice, and links to the Android documentation for context. Android 12 and later changed the permissions model for Bluetooth, so this Location requirement applies only to the older API level.
For developers and organizations deploying BadgeMagic at events, this permission requires user approval on older Android devices. The README does not document an in-app explanation for why the Location permission appears, so users seeing that prompt may need a separate explanation. iOS and Linux do not have the same Location requirement.
macOS appears in the project description but not in Supported Platforms
The repository description reads "Badge Magic with LEDs - mobile and desktop app, iOS, Mac, Android." Mac appears in that one-line description. The repository root also includes a macos/ directory, which is a standard Flutter target directory. Despite both of those signals, the README's Supported Platforms section lists only three entries: Android, iOS and Linux.
Linux receives an additional qualifier in that section: "Desktop support for development and testing." That qualifier does not appear for Android or iOS, which are described with full or complete feature support. macOS is not listed at all in Supported Platforms, even though its directory exists in the repository.
The web/ and windows/ directories also exist at the repository root, following the Flutter convention of scaffolding all build targets, but neither appears in Supported Platforms either. For teams considering macOS or Windows deployment, the README gives no supported path, and the Linux entry carries a "development and testing" qualifier that no other platform entry carries.
Batch badge operations and the import/export workflow
Beyond single-badge editing, BadgeMagic supports managing a collection. The badge library stores saved creations with custom names and preserves original text for future editing. The Custom Slot Decider selects up to 8 badges at once, matching the 8-slot capacity of compatible LED badges, and sends them as a single batch transfer.
Import and export let users share badge designs between devices. The README describes this as sharing badges between devices without specifying a file format or transfer mechanism. For teams that want a shared collection, this export path is documented as a capability without details on how the exported file is transmitted.
Clipart created in draw mode is saved separately from text badges and can be referenced in clipart mode. This two-layer library, one for text badges and one for drawn cliparts, keeps the two creation types organized. The README notes save and edit capabilities include original text preservation, which means re-editing a badge does not require remembering what was typed.
The Python library led-name-badge-ls32 is the desktop command-line alternative
For users who prefer to program LED badges from a command line rather than a mobile app, the README explicitly links to https://github.com/fossasia/led-name-badge-ls32 as a Python library for desktop programming. That library is not documented in this repository but is named and linked in the README's opening line.
The two projects differ in interface and connection method. led-name-badge-ls32 targets desktop use through Python, while BadgeMagic targets mobile and desktop through a graphical Flutter app over Bluetooth. BadgeMagic requires BLE, so a badge that connects only via USB cannot be programmed with this app; led-name-badge-ls32 is the documented alternative for that case.
BadgeMagic is Apache-2.0 licensed, with the last push on 2026-10-06. English and Hindi are the two documented language options.
Editorial conclusion
BadgeMagic is the right choice for anyone who wants to program an LED name badge from a phone without writing code, with 22 animation types, 3 effects and a pixel grid editor. Use it if your badge communicates via Bluetooth Low Energy. If your badge uses USB only, the Python library led-name-badge-ls32 is the alternative, since BadgeMagic requires BLE. On Android 11 and below, the app needs a Location permission for BLE discovery, which may need explaining to users. Before deploying it in an event context, verify the specific badge model works: the README notes that many market devices share the same hardware, but devices without Bluetooth are not supported.
Frequently asked questions
What devices does BadgeMagic support?
BadgeMagic works with LED name badges that communicate via Bluetooth Low Energy. The README states that most market LED badge devices are from the same manufacturer, though it qualifies this as "as far as we can tell." Devices without Bluetooth are not supported.
How do I install BadgeMagic?
BadgeMagic is on the iOS App Store (id 6740176888), Google Play (org.fossasia.badgemagic), F-Droid (same package), and Flathub (org.fossasia.BadgeMagic). A direct APK is downloadable from the repository's apk branch for side-loading on Android.
Why does BadgeMagic need a Location permission on Android?
On Android 11 and below, Android requires the Location permission for Bluetooth Low Energy device discovery. The README explains this is a platform requirement, not a BadgeMagic design decision, and links to the Android documentation for details.
How many animations does BadgeMagic support?
BadgeMagic offers 22 animation types for text content, including Left, Right, Up, Down, Fixed, Splitting, Snowflake, Pacman, Fireworks, Digital Rain (Equalizer) and more. Three visual effects, Flash, Invert and Marquee, can be applied alongside the animations.
Does BadgeMagic work on macOS or Windows?
The README's Supported Platforms section lists only Android, iOS and Linux. macOS appears in the one-line repository description and a macos/ directory exists in the repository, but the Supported Platforms section does not include it. Windows is also not listed.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/fossasia-badgemagic-app)