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,258
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,258
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,258
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,258
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
  • No one is chatting at the moment.
  • Sicklyboy @ Sicklyboy:
    maaaaan that's so awesome but I also don't want to fork over a hundo for it
  • Veho @ Veho:
    The fuuuuu---
  • Veho @ Veho:
    I thought it was an actual xBox at that price.
  • Sicklyboy @ Sicklyboy:
    I wanna grab a 360 Slim and a 360 E one of these days. Missed the boat of getting them at their lowest though, once they were discontinued. Could've got them for cheap back when I was a broke 20 something working at Target, but then again, I was a broke 20 something working at Target
  • Veho @ Veho:
    Being broke is no fun.
  • K3Nv2 @ K3Nv2:
    @Sicklyboy, $150 isn't that bad for a jtag slim on ebay
  • Veho @ Veho:
    I only wish it was actually playable.
  • Veho @ Veho:
    There's a guy on the Tube of You that makes playable mechanical arcade games out of Lego. This could work on the same principle.
  • Veho @ Veho:
    Just a couple of guys taking their manatee out for some fresh air, why you have to molest them?
  • Veho @ Veho:
    Stupid Chinese shop switched their shipping company and this one is slooooooow.
  • LeoTCK @ LeoTCK:
    STOP BUYING CHINESE CRAP THEN
  • LeoTCK @ LeoTCK:
    SUPPORT LOCAL PRODUCTS, MAKE REVOLUTION
  • LeoTCK @ LeoTCK:
    THEY KEEP REMOVING LOCAL SHIt AND REPLACING WItH INFERIOR CHINESE CRAP
  • LeoTCK @ LeoTCK:
    THATS WHY MY PARTNER CANT GET A GOOTWEAR HIS SIZE ANYMORE
  • LeoTCK @ LeoTCK:
    HE HAS BIG FOOT AND BIG DUCK
  • LeoTCK @ LeoTCK:
    d*ck i mean*
  • LeoTCK @ LeoTCK:
    lol
  • Veho @ Veho:
    Mkay.
  • Veho @ Veho:
    I just ordered another package from China just to spite you.
  • SylverReZ @ SylverReZ:
    Leo could not withstand communism.
  • SylverReZ @ SylverReZ:
    Its OUR products to begin with lol.
    SylverReZ @ SylverReZ: Its OUR products to begin with lol.