Homebrew RELEASE SwitchIdent

Joel16

Ils ne passeront pas
OP
Member
Joined
May 8, 2011
Messages
933
Trophies
2
Age
27
Location
Doesn't concern you.
XP
5,295
Country
United States
Hello, 3DSident/VITAident dev here. I'm planning on continuing the identity tool series of <device>ident. The tool allows users to get various bits of information from your device, hence the name 'ident' as in identifying your device.

iVWliYI.jpg

Current version: 0.3

Features:
  • Displays system firmware version.
  • Displays hardware type and unit.
  • Displays serial number.
  • Displays DRAM ID.
  • Displays device ID.
  • Displays system region.
  • Displays CPU, GPU and EMC clocks.
  • Displays whether the switch is in docked/handheld state.
  • Displays IP Address.
  • Displays storage sizes for SD, NAND (user) and NAND (system).
  • Displays various system statuses. (Bluetooth, WLAN, NFC, etc.)
  • Displays battery percentage and charging status.
  • Displays if battery charging is enabled.
  • Displays if ample power is supplied.
  • Displays wireless RSSI signals and quality.
  • Displays battery voltage sate.
  • Displays battery lot number.
  • Displays SD and gamecard slot statuses.
  • Displays WiFi and Bluetooth MAC address.
  • Display battery age (in percentage and pcm).
  • Display battery internal and external temperature.
  • Display battery internal and external temperature.
  • Display battery charger input and output current limit.
  • Display battery charging current limit.
  • Display battery charging voltage limit.
  • Display battery capacity (pcm) and age (pcm).
  • Display battery voltage avg.
  • Display battery charger type.
  • Display battery charger current limit.
  • Display battery charger voltage limit.

The eye blinding white GUI:
8StjYdi.jpg


The discontinued console UI:
lSfrKl4.jpg

Download: https://github.com/joel16/SwitchIdent/releases
 
Last edited by Joel16,

Miqote

Well-Known Member
Member
Joined
May 2, 2018
Messages
259
Trophies
0
XP
822
Country
Macedonia, The Former Yugoslav Republic of
I threw it into my dev environment and it spit this out:

Code:
$ make
kernel.c
aarch64-none-elf-gcc -MMD -MP -MF /d/switchdev/examples/switch/SwitchIdent-master/build/kernel.d -g -Werror -O2 -ffunction-sections -march=armv8-a -mtune=cortex-a57 -mtp=soft -fPIE  -I/d/switchdev/examples/switch/SwitchIdent-master/include -I/opt/devkitpro/portlibs/switch/include -I/opt/devkitpro/libnx/include -I/d/switchdev/examples/switch/SwitchIdent-master/build -DSWITCH -c /d/switchdev/examples/switch/SwitchIdent-master/source/kernel.c -o kernel.o
In file included from D:/switchdev/libnx/include/switch.h:13:0,
                 from D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c:1:
D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c: In function 'SwitchIdent_GetVersion':
D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c:23:21: error: implicit declaration of function 'splGetConfig'; did you mean 'svcGetInfo'? [-Werror=implicit-function-declaration]
  if (R_FAILED(ret = splGetConfig(SplConfigItem_HardwareType, &version)))
                     ^
D:/switchdev/libnx/include/switch/result.h:12:30: note: in definition of macro 'R_FAILED'
 #define R_FAILED(res)      ((res)!=0)
                              ^~~
D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c:23:34: error: 'SplConfigItem_HardwareType' undeclared (first use in this function); did you mean 'SwitchIdent_GetHardwareType'?
  if (R_FAILED(ret = splGetConfig(SplConfigItem_HardwareType, &version)))
                                  ^
D:/switchdev/libnx/include/switch/result.h:12:30: note: in definition of macro 'R_FAILED'
 #define R_FAILED(res)      ((res)!=0)
                              ^~~
D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c:23:34: note: each undeclared identifier is reported only once for each function it appears in
  if (R_FAILED(ret = splGetConfig(SplConfigItem_HardwareType, &version)))
                                  ^
D:/switchdev/libnx/include/switch/result.h:12:30: note: in definition of macro 'R_FAILED'
 #define R_FAILED(res)      ((res)!=0)
                              ^~~
D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c: In function 'SwitchIdent_GetHardwareType':
D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c:41:34: error: 'SplConfigItem_HardwareType' undeclared (first use in this function); did you mean 'SwitchIdent_GetHardwareType'?
  if (R_FAILED(ret = splGetConfig(SplConfigItem_HardwareType, &hardware_type)))
                                  ^
D:/switchdev/libnx/include/switch/result.h:12:30: note: in definition of macro 'R_FAILED'
 #define R_FAILED(res)      ((res)!=0)
                              ^~~
D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c: In function 'SwitchIdent_GetUnit':
D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c:59:34: error: 'SplConfigItem_IsRetail' undeclared (first use in this function)
  if (R_FAILED(ret = splGetConfig(SplConfigItem_IsRetail, &isRetail)))
                                  ^
D:/switchdev/libnx/include/switch/result.h:12:30: note: in definition of macro 'R_FAILED'
 #define R_FAILED(res)      ((res)!=0)
                              ^~~
cc1.exe: all warnings being treated as errors
make[1]: *** [/opt/devkitpro/devkitA64/base_rules:19: kernel.o] Error 1
make: *** [Makefile:140: build] Error 2

I'm guessing it's just a matter of using the Switch-equivilent of these functions (and what they require), but I'm not nearly advanced enough to be able to fix it on my own. My knowledge of libnx is pretty fresh and new. Sorry!
 
Last edited by Miqote,

Joel16

Ils ne passeront pas
OP
Member
Joined
May 8, 2011
Messages
933
Trophies
2
Age
27
Location
Doesn't concern you.
XP
5,295
Country
United States
I threw it into my dev environment and it spit this out:

Code:
$ make
kernel.c
aarch64-none-elf-gcc -MMD -MP -MF /d/switchdev/examples/switch/SwitchIdent-master/build/kernel.d -g -Werror -O2 -ffunction-sections -march=armv8-a -mtune=cortex-a57 -mtp=soft -fPIE  -I/d/switchdev/examples/switch/SwitchIdent-master/include -I/opt/devkitpro/portlibs/switch/include -I/opt/devkitpro/libnx/include -I/d/switchdev/examples/switch/SwitchIdent-master/build -DSWITCH -c /d/switchdev/examples/switch/SwitchIdent-master/source/kernel.c -o kernel.o
In file included from D:/switchdev/libnx/include/switch.h:13:0,
                 from D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c:1:
D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c: In function 'SwitchIdent_GetVersion':
D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c:23:21: error: implicit declaration of function 'splGetConfig'; did you mean 'svcGetInfo'? [-Werror=implicit-function-declaration]
  if (R_FAILED(ret = splGetConfig(SplConfigItem_HardwareType, &version)))
                     ^
D:/switchdev/libnx/include/switch/result.h:12:30: note: in definition of macro 'R_FAILED'
 #define R_FAILED(res)      ((res)!=0)
                              ^~~
D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c:23:34: error: 'SplConfigItem_HardwareType' undeclared (first use in this function); did you mean 'SwitchIdent_GetHardwareType'?
  if (R_FAILED(ret = splGetConfig(SplConfigItem_HardwareType, &version)))
                                  ^
D:/switchdev/libnx/include/switch/result.h:12:30: note: in definition of macro 'R_FAILED'
 #define R_FAILED(res)      ((res)!=0)
                              ^~~
D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c:23:34: note: each undeclared identifier is reported only once for each function it appears in
  if (R_FAILED(ret = splGetConfig(SplConfigItem_HardwareType, &version)))
                                  ^
D:/switchdev/libnx/include/switch/result.h:12:30: note: in definition of macro 'R_FAILED'
 #define R_FAILED(res)      ((res)!=0)
                              ^~~
D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c: In function 'SwitchIdent_GetHardwareType':
D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c:41:34: error: 'SplConfigItem_HardwareType' undeclared (first use in this function); did you mean 'SwitchIdent_GetHardwareType'?
  if (R_FAILED(ret = splGetConfig(SplConfigItem_HardwareType, &hardware_type)))
                                  ^
D:/switchdev/libnx/include/switch/result.h:12:30: note: in definition of macro 'R_FAILED'
 #define R_FAILED(res)      ((res)!=0)
                              ^~~
D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c: In function 'SwitchIdent_GetUnit':
D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c:59:34: error: 'SplConfigItem_IsRetail' undeclared (first use in this function)
  if (R_FAILED(ret = splGetConfig(SplConfigItem_IsRetail, &isRetail)))
                                  ^
D:/switchdev/libnx/include/switch/result.h:12:30: note: in definition of macro 'R_FAILED'
 #define R_FAILED(res)      ((res)!=0)
                              ^~~
cc1.exe: all warnings being treated as errors
make[1]: *** [/opt/devkitpro/devkitA64/base_rules:19: kernel.o] Error 1
make: *** [Makefile:140: build] Error 2

I'm guessing it's just a matter of using the Switch-equivilent of these functions (and what they require), but I'm not nearly advanced enough to be able to fix it on my own. My knowledge of libnx is pretty fresh and new. Sorry!

Sorry got extremely busy later on so I didn't get the time to upload any builds. However you're getting that issue because you haven't updated libnx. Its being built from the latest commit. I'll try and put out a test build tomorrow if I get time.
 

Miqote

Well-Known Member
Member
Joined
May 2, 2018
Messages
259
Trophies
0
XP
822
Country
Macedonia, The Former Yugoslav Republic of
Sorry got extremely busy later on so I didn't get the time to upload any builds. However you're getting that issue because you haven't updated libnx. Its being built from the latest commit. I'll try and put out a test build tomorrow if I get time.

I installed the dev environment on 5/14 using the guide on Switchbru. The GUI (devkitproUpdater) says there's no updates. I imagine I'm probably missing something on how to update it, though.
 

Joel16

Ils ne passeront pas
OP
Member
Joined
May 8, 2011
Messages
933
Trophies
2
Age
27
Location
Doesn't concern you.
XP
5,295
Country
United States

fatsquirrel

Well-Known Member
Member
Joined
Nov 11, 2013
Messages
2,648
Trophies
2
Age
35
XP
3,480
Country
  • Like
Reactions: whateverg1012

Joel16

Ils ne passeront pas
OP
Member
Joined
May 8, 2011
Messages
933
Trophies
2
Age
27
Location
Doesn't concern you.
XP
5,295
Country
United States
Can you find any information on different switch screens at all?
I do not own the device. And there's no way to tell if there's a function that can determine the screen vendors (like in the 3DS). Maybe there is, maybe there isn't. So this may not even be a thing, but if its it won't be available just yet. Ignore that, seems like there is a function that might determine the screen vendors -> GetLcdVendorId (only on 4.00+)

Also updated the dl link for anyone who wants to test: https://cdn.discordapp.com/attachments/287345711492628490/446690987042013204/SwitchIdent.nro

Do report any error codes or issues.
 
Last edited by Joel16,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • K3Nv2 @ K3Nv2:
    I gotta raid0 these m.2s yay
  • BigOnYa @ BigOnYa:
    Do a raid10
  • K3Nv2 @ K3Nv2:
    That's tomorrow
    +1
  • Xdqwerty @ Xdqwerty:
    Yawn
  • BigOnYa @ BigOnYa:
    Damn Wal-Mart has 42" 4k TVs for only $150
  • Xdqwerty @ Xdqwerty:
    @BigOnYa, i bet it will not fit inside your bedroom
  • BigOnYa @ BigOnYa:
    Yea here in North Korea, we are only allowed 1 19" tv per household. And the only channel we get is, MLT (Missile Launch Today)
    +1
  • K3Nv2 @ K3Nv2:
    @BigOnYa, doesn't fit in his bedroom he's American
    +1
  • BigOnYa @ BigOnYa:
    I hate ordering stuff online if I can go buy it somewhere close to me, and everywhere anymore will give you a discount only if you order it online, bs. Should be a discount if I go pick it up, not order online.
  • K3Nv2 @ K3Nv2:
    I love it for most things most stores you just shows the receipt online and they scan it
    +1
  • K3Nv2 @ K3Nv2:
    Makes it easy for incompetent restaurant staff that don't know how to hear an order
  • BigOnYa @ BigOnYa:
    Mostly for big purchases, I want it in my hands before I pay. Like a tv, I trust picking it up myself, before I'd trust it being sent thru mail/delivery. (Broken screen, etc) But yea if I can order online, then pickup at store is ok, but not all places offer that.
  • cearp @ cearp:
    > Like a tv, I trust picking it up myself, before I'd trust it being sent thru mail/delivery. (Broken screen, etc)

    Thing is, if you break it driving back to your house, it's your fault. But if the delivery driver damages it, it's not your fault.
    +1
  • K3Nv2 @ K3Nv2:
    Most people that haul big tvs have empty trucks or know enough not to set it face down
  • BigOnYa @ BigOnYa:
    Then I gotta send it back and wait another week or two. I have a pickup truck, with a extended cab, so no prob for me.
  • K3Nv2 @ K3Nv2:
    Most manufacturers pack it well enough where they aren't that dumb to let it happen
  • BigOnYa @ BigOnYa:
    They building a new Microcenter store near by me, is kinda scary. That's my favorite place, I'm like a kid in a candy store there.
  • Xdqwerty @ Xdqwerty:
    @BigOnYa, what's a microcenter?
  • K3Nv2 @ K3Nv2:
    Cool I'll make you ship me stuff
    +1
  • K3Nv2 @ K3Nv2:
    Microcenter sells high quality microwaves
  • BigOnYa @ BigOnYa:
    Computer store basically, but they sell everything, like game systems, tvs , 3d printers, etc
    +1
  • K3Nv2 @ K3Nv2:
    I've seen i9/mobo deals for like 400
  • BigOnYa @ BigOnYa:
    Yea been itching to build a new pc, mine is like 3-4 years old, ancient in pc tech time. Still using a sata SSD even.
  • K3Nv2 @ K3Nv2:
    That's still high tech to ancientboi
    K3Nv2 @ K3Nv2: That's still high tech to ancientboi