B4J Library HMITiles

HMITiles - an Open-Source HMI Tile Library for Industrial Dashboards and SCADA Applications



Overview

HMITiles
is an open-source HMI (Human Machine Interface) tile library written in B4X, designed for building clean, consistent, and professional industrial user interfaces.

It provides reusable HMI components for:
- Industrial dashboards
- SCADA (Supervisory Control and Data Acquisition) front-ends
- Machine and process HMIs

The focus of this library is clarity, consistency, and disciplined HMI design-not visual effects or UI decoration.

Use in industrial or safety-critical environments is entirely at your own risk.



Core Tile Categories
  • Buttons (including ON/OFF logic)
  • Numeric and text readouts
  • Sensor tiles
  • Clocks and time displays
  • Event and message viewers
  • Sliders and setpoints
  • Image tiles
  • RGB indicators
  • Layout and helper components
All tiles share a unified styling and state model.



1779203134896.png




Source Code
This project is maintained in the GitHub repository HMITiles.
Note: As of 2026-04-17, updates are published on GitHub only and are no longer posted on this forum.



License
HMITiles
- MIT License © 2025-2026 Robert W. B. Linn
For full legal terms, see the LICENSE file (MIT).
 
Last edited:

rwblinn

Well-Known Member
Licensed User
Longtime User
Update v1.3.0 2025-12-26 (see Post #1)
- NEW: HMITiles - Trend, SPPV, Gauge.
- NEW: Internal customviews - HMISeekbar, HMIPlusMinusNumeric.
- NEW: Example Water Tank Simulator, Arduino LED (control LED connected to an Arduino UNO via serial line).
- UPD: HMITiles various minor updates.
- UPD: HMITileUtils - Color scheme revised to neutral blue-green scale.
- UPD: Example Overview.

B4J Examples Water Tank Simulator and Arduino LED.
1767180413558.png
 
Last edited:

rwblinn

Well-Known Member
Licensed User
Longtime User
Update v1.4.0 2025-12-31 (see Post #1)

- NEW: HMITiles - SeekBar (replaces Slider), Select, SelectList, Shapes (HLine,VLine,Corners).
- NEW: B4A Example Apps - Overview, ESP32BLELED (control ESP32 LED via BLE, ESP32 firmare B4R).
- NEW: B4J Example HomeKit32.
- UPD: Customviews - All HMITiles reworked, tested with B4A - exception: HMITileRGB (B4J only).
- UPD: B4J Examples - Overview (see Post #1), Water Tank Simulator, ArduinoLED (see Post #2).
- DEL: Internal customviews - HMISeekbar, HMIPlusMinusNumeric.

1767198789105.png



1767180238873.png



1767199530852.png
 

Attachments

  • 1767180211774.png
    1767180211774.png
    127.2 KB · Views: 133
Last edited:

rwblinn

Well-Known Member
Licensed User
Longtime User
Update v1.5.0 2026-01-09 (see Post #1)

- NEW: HMITileLabel - API SetFontAwesome large or default size, SetFontNormal.
- NEW: HMITileEventViewer - API RowHeight to override defaults for compact/normal mode.
- NEW: HMITileSeekBar - API ShowValue to hide the value.
- NEW: B4A examples (using the B4A library BleCentral.b4xlib) - BleScanner, GVH5075Scanner, RuuviTagScanner, Bricks BuWizz2, Lego HUB No.4.
- NEW: B4J examples - Get Started HMITileButton, HMITileLabel.
- UPD: HMITiles custom views public API aligned.
- UPD: All examples, HMITiles bug fixes.

1767958227912.png


Note
The BleCentral.b4xlib is a is a lightweight, generic BLE GATT manager and scanner for B4A, providing reliable BLE connections and notification handling.
Not published yet on the B4A additional libraries forum - still some work to do.
 

rwblinn

Well-Known Member
Licensed User
Longtime User
Update v1.5.0 2026-04-15 (see Post #1)

- NEW: HMITileNavButton - Navigate to sub-page(s) and back to home-page.
- FIX: HMITileButton - Center state text if not title
- FIX: HMITileSelectList - SelectItem uses String, SelectItemIndex uses Int.
- FIX: HMITileSeekbar - Orientation Vertical thumb tracking, bar size & position.
- FIX: HMITileImage - Bitmap size setting to stay within tile with aspect ratio.
- UPD: Minor updates.
 
Note
The BleCentral.b4xlib is a is a lightweight, generic BLE GATT manager and scanner for B4A, providing reliable BLE connections and notification handling.
Not published yet on the B4A additional libraries forum - still some work to do.
Has the BleCentral Lib been published? I couldn't find it in forum search.
 

rwblinn

Well-Known Member
Licensed User
Longtime User
Update v1.6.1 2026-04-16 (see Post #1)

IMPORTANT

This project is maintained in the GitHub repository HMITiles.
Notes:
- As of 2026-04-17, source code updates are published on GitHub only and are no longer posted on this forum.
- Post #1 attachment has been removed.
 
Last edited:

rwblinn

Well-Known Member
Licensed User
Longtime User
Update v2.0.0 2026-05-19 (see Post #1)
This project is maintained in the GitHub repository HMITiles.

- NEW: Alarm Concept - Title changes color & indicator added depending state (normal, warning, alarm) and not the full tile anymore (clear visual hierarchy that instantly tells the status without overwhelming the screen)
- NEW: HMITileDeviation - Bidirectional bar to indicate process value deviation from the set point
- NEW: HMITileGauge - Properties Show Needle, Show Range Labels
- NEW: HMITileGaugeSegments - Like HMITileGauge but with additional Warning/Alarm segments and shape indicator
- NEW: HMITileLabelTitle - Tile with title label and centered label (with properties TextSize, TextColor)
- NEW: HMITileUtils - Method MapRange
- NEW: HMITileSlider - Slider control tile for interactive value adjustment
- NEW: HMITileSymbols - Common symbol constants and helper subs for HMITileCustom
- NEW: HMITileTrend - Applied graph smoothing (Chaikin Algorithm); Property GridColor; Event Click
- NEW: HMITiles with Value & Unit - Added label Unit; Stacked labels Value (top) and Unit (bottom)
- NEW: HMITilesExtensions - Library with HMITiles extension which go beyond the HMI design principles
- NEW: HMITileLevel - Added level type Bar, Circle; Replaced bar & fill panes with b4xcanvas rectangles
- UPD: HMITileSPPV - Seperator line between PV and SP; Warning/Alarm shape indicator below seperator line
- UPD: HMITiles - Renamed mBase to BasePane (Public), mLbl to BaseLabel (Private)
- UPD: Indicator Tiles - Consistent use of background track and active level colors
- UPD: Examples - Folder structure using numeric index; Removed subfolders; Reworked all examples & some renamed
- DEL: Examples - B4A & B4J Overview removed. Use B4A & B4J development app and program instead (folder src)
- DEL: HMITileLevelIndicator - Included level type Circle in HMITileLevel
- DEL: HMITileRGB - Moved to the new HMITilesExtensions library
- DEL: HMITileShape - Moved to the new HMITilesExtensions library
- DEL: HMITileSeekBar - Moved to the new HMITilesExtensions library

Some Application Examples

1779203508013.png
 
Top