diff --git a/Aaru.Gui/Controls/BlockMap.axaml b/Aaru.Gui/Controls/BlockMap.axaml
new file mode 100644
index 000000000..b473fe0fc
--- /dev/null
+++ b/Aaru.Gui/Controls/BlockMap.axaml
@@ -0,0 +1,11 @@
+
+
+
\ No newline at end of file
diff --git a/Aaru.Gui/Controls/BlockMap.axaml.cs b/Aaru.Gui/Controls/BlockMap.axaml.cs
new file mode 100644
index 000000000..f12b44f56
--- /dev/null
+++ b/Aaru.Gui/Controls/BlockMap.axaml.cs
@@ -0,0 +1,262 @@
+// /***************************************************************************
+// Aaru Data Preservation Suite
+// ----------------------------------------------------------------------------
+//
+// Filename : BlockMap.cs
+// Author(s) : Natalia Portillo
+//
+// Component : GUI custom controls.
+//
+// --[ Description ] ----------------------------------------------------------
+//
+// A block map control to visualize sector access times.
+//
+// --[ License ] --------------------------------------------------------------
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+// ----------------------------------------------------------------------------
+// Copyright © 2011-2025 Natalia Portillo
+// ****************************************************************************/
+
+using System;
+using System.Collections.ObjectModel;
+using System.Collections.Specialized;
+using Avalonia;
+using Avalonia.Controls;
+using Avalonia.Markup.Xaml;
+using Avalonia.Media;
+
+namespace Aaru.Gui.Controls;
+
+public partial class BlockMap : UserControl
+{
+ const int BlockSize = 4; // Size of each block in pixels
+ const int BlockSpacing = 1; // Spacing between blocks
+ const double MinDuration = 1.0; // Green threshold (ms)
+ const double MaxDuration = 500.0; // Red threshold (ms)
+
+ public static readonly StyledProperty>
+ SectorDataProperty =
+ AvaloniaProperty
+ .Register>(nameof(SectorData));
+
+ public static readonly StyledProperty ScanBlockSizeProperty =
+ AvaloniaProperty.Register(nameof(ScanBlockSize), 1u);
+ int _blocksPerRow;
+
+ readonly Canvas _canvas;
+ uint _scanBlockSize = 1;
+ ObservableCollection<(ulong startingSector, double duration)> _sectorData;
+ int _totalBlocksDrawn;
+
+ public BlockMap()
+ {
+ InitializeComponent();
+ _canvas = this.FindControl