This is a strange one. I had a custom PCB that included an MDBT42Q module. After I learned how to program it, it worked fine. I made a slight revision to the PCB, and this time I ordered the module from Digikey. I was able to program it, SoftDevice 6.1.1 as have been all my programs for the past 6 months, and my program HEX file. But no matter what BLE Services and Characteristics I add, all that any Central device that connects can see are:
In my code I have my own custom Services with my own custom UUIDs (0xDEAD, 0xBEEF, very obvious names) and tons of custom characteristics. I actually don't enable the DIS and Battery Services, much less HID or TX Power. When I program the same HEX file to the old PCB, they show up when the nRF app polls the device. The same HEX file on this new one only shows these stock services seen in the image.
But I know I'm uploading the right file. I can change the name that gets advertised and that's what I see: "Weird Test" as it says here. I can see that my custom 0xDEAD service is being advertised, but it can't be found when I discover services after connecting. I can even double check by playing around with the GPIO and get LEDs to flash and everything while it's advertising something completely different from what's in the rest of the code! I can also use Ozone and step through the code line by line, and I see that the lines that set up these characteristics, add their callbacks, etc... are all being run. And I haven't touched that part of the code for months!
But with this module only, I'm not seeing any of the custom Services and Characteristics that I set up in my code. I've tried using nRFgo to erase the entire chip and rewrite the 6.1.1 SoftDevice and my Hex file specifically to make sure nothing on the chip was corrupted.
Is this like a stock error kind of thing? Is it not being able to initialize my custom Services and catching the error by defaulting to these?