diff --git a/Meshtastic/Assets.xcassets/PROMICRO.imageset/Contents.json b/Meshtastic/Assets.xcassets/PROMICRO.imageset/Contents.json
new file mode 100644
index 00000000..0fbd5109
--- /dev/null
+++ b/Meshtastic/Assets.xcassets/PROMICRO.imageset/Contents.json
@@ -0,0 +1,12 @@
+{
+ "images" : [
+ {
+ "filename" : "promicro.svg",
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Meshtastic/Assets.xcassets/PROMICRO.imageset/promicro.svg b/Meshtastic/Assets.xcassets/PROMICRO.imageset/promicro.svg
new file mode 100644
index 00000000..3dc26021
--- /dev/null
+++ b/Meshtastic/Assets.xcassets/PROMICRO.imageset/promicro.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Meshtastic/Assets.xcassets/RAK11310.imageset/Contents.json b/Meshtastic/Assets.xcassets/RAK11310.imageset/Contents.json
new file mode 100644
index 00000000..3046b536
--- /dev/null
+++ b/Meshtastic/Assets.xcassets/RAK11310.imageset/Contents.json
@@ -0,0 +1,12 @@
+{
+ "images" : [
+ {
+ "filename" : "rak11310.svg",
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Meshtastic/Assets.xcassets/RAK11310.imageset/rak11310.svg b/Meshtastic/Assets.xcassets/RAK11310.imageset/rak11310.svg
new file mode 100644
index 00000000..8c5ce28e
--- /dev/null
+++ b/Meshtastic/Assets.xcassets/RAK11310.imageset/rak11310.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Meshtastic/Assets.xcassets/RAK4631.imageset/Contents.json b/Meshtastic/Assets.xcassets/RAK4631.imageset/Contents.json
new file mode 100644
index 00000000..60b17db3
--- /dev/null
+++ b/Meshtastic/Assets.xcassets/RAK4631.imageset/Contents.json
@@ -0,0 +1,12 @@
+{
+ "images" : [
+ {
+ "filename" : "rak4631_case.svg",
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Meshtastic/Assets.xcassets/RAK4631.imageset/rak4631_case.svg b/Meshtastic/Assets.xcassets/RAK4631.imageset/rak4631_case.svg
new file mode 100644
index 00000000..a0b2bbb8
--- /dev/null
+++ b/Meshtastic/Assets.xcassets/RAK4631.imageset/rak4631_case.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Meshtastic/Assets.xcassets/RPIPICO.imageset/Contents.json b/Meshtastic/Assets.xcassets/RPIPICO.imageset/Contents.json
new file mode 100644
index 00000000..87088506
--- /dev/null
+++ b/Meshtastic/Assets.xcassets/RPIPICO.imageset/Contents.json
@@ -0,0 +1,12 @@
+{
+ "images" : [
+ {
+ "filename" : "pico.svg",
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Meshtastic/Assets.xcassets/RPIPICO.imageset/pico.svg b/Meshtastic/Assets.xcassets/RPIPICO.imageset/pico.svg
new file mode 100644
index 00000000..82ce6526
--- /dev/null
+++ b/Meshtastic/Assets.xcassets/RPIPICO.imageset/pico.svg
@@ -0,0 +1,2956 @@
+
+
diff --git a/Meshtastic/Assets.xcassets/SEEEDXIAOS3.imageset/Contents.json b/Meshtastic/Assets.xcassets/SEEEDXIAOS3.imageset/Contents.json
new file mode 100644
index 00000000..fdd4019e
--- /dev/null
+++ b/Meshtastic/Assets.xcassets/SEEEDXIAOS3.imageset/Contents.json
@@ -0,0 +1,12 @@
+{
+ "images" : [
+ {
+ "filename" : "seeed-xiao-s3.svg",
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Meshtastic/Assets.xcassets/SEEEDXIAOS3.imageset/seeed-xiao-s3.svg b/Meshtastic/Assets.xcassets/SEEEDXIAOS3.imageset/seeed-xiao-s3.svg
new file mode 100644
index 00000000..04e97fe0
--- /dev/null
+++ b/Meshtastic/Assets.xcassets/SEEEDXIAOS3.imageset/seeed-xiao-s3.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Meshtastic/Assets.xcassets/SENSECAPINDICATOR.imageset/Contents.json b/Meshtastic/Assets.xcassets/SENSECAPINDICATOR.imageset/Contents.json
new file mode 100644
index 00000000..3870939e
--- /dev/null
+++ b/Meshtastic/Assets.xcassets/SENSECAPINDICATOR.imageset/Contents.json
@@ -0,0 +1,12 @@
+{
+ "images" : [
+ {
+ "filename" : "seeed-sensecap-indicator.svg",
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Meshtastic/Assets.xcassets/SENSECAPINDICATOR.imageset/seeed-sensecap-indicator.svg b/Meshtastic/Assets.xcassets/SENSECAPINDICATOR.imageset/seeed-sensecap-indicator.svg
new file mode 100644
index 00000000..f7bf9db0
--- /dev/null
+++ b/Meshtastic/Assets.xcassets/SENSECAPINDICATOR.imageset/seeed-sensecap-indicator.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Meshtastic/Assets.xcassets/TRACKERT1000E.imageset/Contents.json b/Meshtastic/Assets.xcassets/TRACKERT1000E.imageset/Contents.json
new file mode 100644
index 00000000..e966c95f
--- /dev/null
+++ b/Meshtastic/Assets.xcassets/TRACKERT1000E.imageset/Contents.json
@@ -0,0 +1,12 @@
+{
+ "images" : [
+ {
+ "filename" : "tracker-t1000-e.svg",
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Meshtastic/Assets.xcassets/TRACKERT1000E.imageset/tracker-t1000-e.svg b/Meshtastic/Assets.xcassets/TRACKERT1000E.imageset/tracker-t1000-e.svg
new file mode 100644
index 00000000..6f7a06c9
--- /dev/null
+++ b/Meshtastic/Assets.xcassets/TRACKERT1000E.imageset/tracker-t1000-e.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Meshtastic/Assets.xcassets/WIOWM1110.imageset/Contents.json b/Meshtastic/Assets.xcassets/WIOWM1110.imageset/Contents.json
new file mode 100644
index 00000000..706f7fc3
--- /dev/null
+++ b/Meshtastic/Assets.xcassets/WIOWM1110.imageset/Contents.json
@@ -0,0 +1,12 @@
+{
+ "images" : [
+ {
+ "filename" : "wio-tracker-wm1110.svg",
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Meshtastic/Assets.xcassets/WIOWM1110.imageset/wio-tracker-wm1110.svg b/Meshtastic/Assets.xcassets/WIOWM1110.imageset/wio-tracker-wm1110.svg
new file mode 100644
index 00000000..15ace5c5
--- /dev/null
+++ b/Meshtastic/Assets.xcassets/WIOWM1110.imageset/wio-tracker-wm1110.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Meshtastic/Assets.xcassets/WISMESHTAP.imageset/Contents.json b/Meshtastic/Assets.xcassets/WISMESHTAP.imageset/Contents.json
new file mode 100644
index 00000000..85d43a9b
--- /dev/null
+++ b/Meshtastic/Assets.xcassets/WISMESHTAP.imageset/Contents.json
@@ -0,0 +1,12 @@
+{
+ "images" : [
+ {
+ "filename" : "rak-wismeshtap.svg",
+ "idiom" : "universal"
+ }
+ ],
+ "info" : {
+ "author" : "xcode",
+ "version" : 1
+ }
+}
diff --git a/Meshtastic/Assets.xcassets/WISMESHTAP.imageset/rak-wismeshtap.svg b/Meshtastic/Assets.xcassets/WISMESHTAP.imageset/rak-wismeshtap.svg
new file mode 100644
index 00000000..34e77876
--- /dev/null
+++ b/Meshtastic/Assets.xcassets/WISMESHTAP.imageset/rak-wismeshtap.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Meshtastic/Extensions/CoreData/UserEntityExtension.swift b/Meshtastic/Extensions/CoreData/UserEntityExtension.swift
index cf065677..0f7be8df 100644
--- a/Meshtastic/Extensions/CoreData/UserEntityExtension.swift
+++ b/Meshtastic/Extensions/CoreData/UserEntityExtension.swift
@@ -75,15 +75,32 @@ extension UserEntity {
return "TLORAV2116"
case "TLORAV2118":
return "TLORAV2118"
+ /// Seeed Studio
+ case "SENSECAPINDICATOR":
+ return "SENSECAPINDICATOR"
+ case "TRACKERT1000E":
+ return "TRACKERT1000E"
+ case "SEEEDXIAOS3":
+ return "SEEEDXIAOS3"
+ case "WIOWM1110":
+ return "WIOWM1110"
+ /// RAK Wireless
+ case "RAK4631":
+ return "UNSET"
+ case "RAK11310":
+ return "UNSET"
+ case "WISMESHTAP":
+ return "UNSET"
/// B&Q Consulting
case "NANOG1", "NANOG1EXPLORER":
- return "NANOG1"
+ return "UNSET"
case "NANOG2ULTRA":
- return "NANOG2ULTRA"
+ return "UNSET"
case "STATIONG2":
- return "STATIONG2"
- case "SOLAR_NODE":
- return "SOLAR_NODE"
+ return "UNSET"
+ /// DIY Devices
+ case "RPIPICO":
+ return "RPIPICO"
default:
return "UNSET"
}
diff --git a/Meshtastic/Views/Nodes/Helpers/NodeInfoItem.swift b/Meshtastic/Views/Nodes/Helpers/NodeInfoItem.swift
index c1631eda..9f3b8105 100644
--- a/Meshtastic/Views/Nodes/Helpers/NodeInfoItem.swift
+++ b/Meshtastic/Views/Nodes/Helpers/NodeInfoItem.swift
@@ -56,7 +56,7 @@ struct NodeInfoItem: View {
Api().loadDeviceHardwareData { (hw) in
for device in hw {
let currentHardware = node.user?.hwModel ?? "UNSET"
- let deviceString = device.hwModelSlug.replacingOccurrences(of: "_", with: "")
+ let deviceString = device.hwModelSlug.replacingOccurrences(of: "_", with: "").uppercased()
if deviceString == currentHardware {
currentDevice = device
}