0
\$\begingroup\$

I've made a PCB that uses a RN42 module. Here's the datasheet and a user's guide (albeit for an eval kit, rather than standalone module).

The situation: I power up the module with 3.3 V, and the datasheet suggests that GPIO5 status pin should start toggling immediately, signaling different stages of the pairing procedure. I'm checking with an oscilloscope and this doesn't happen, the status pin is constantly low.

I noticed that I've missed the GPIO6 and GPIO3 when designing the circuit. Those GPIOs set the module in the specific mode. I want my device to be discoverable by my phone, so I want to operate in a slave mode (GPIO6 LOW, GPIO3 HIGH). So, I've added some bodge wires on the respective pins, but the status pin is still silent and of course it is not discoverable by any bluetooth enabled phones. Here are the connections on my schematic including the bodge wires in blue:

enter image description here

This is the second module I'm testing, so I doubt I've managed to fry two of them in a row. And since the module doesn't show any signs of life, and seemingly doesn't have too many ways of doing so beside the status pin, I'm thinking maybe I'm missing something completely?

I've checked and redone soldering multiple times, so I don't think it's soldering related.

Any tips for further troubleshooting would be highly appreciated.

Edit 1

Tried to "deadbug" the module. Connected everything with airwires in case something's wrong with my PCB. Did it with the third module, so unless I'm constantly zapping everything with ESD I can't comprehend how this one can be damaged too.

Connected the following: All the grounds and Vcc. Pulled the reset high. Attached an LED with a current limiting resistor to GPIO5. LED is connected to 3.3 v so the GPIO5 should pull it low. Pulled GPIO4 low via a current limiting resistor. Pulled GPIO6 low and GPIO3 high all with resistors. Pulled UART lines high and low.

The deadbug configuration:

enter image description here

That's it. I can't get the led to flash, nor my phone to pair with the module. Most of the schematics I found online don't even have these connections I've listed, just power and UART.

It feels like I'm out of options. Maybe a defective batch? Wouldn't expect it from digikey, but who knows. I still think I may be missing something simple.

Edit 2

Checked the current consumption. It jumps up to around 50 mA in the beginning and in a second or two goes down to 3mA. Everything seems to be according to the datasheet for the case when the module is connected and idle (at least on the first page it lists these numbers, later on the numbers are different... specifically 12 mA for connected and idle). Anyways if anyone has had experience with the current consumption of this module, these numbers might help to see the issue.

Also, the voltage on the STATUS pin is about 2V, so a LED drop from 3.3. (The resistor value was 4.7 K and now is 220 Ohm, in both cases the result is the same).

Edit 3

Wired up the fourth and the last module I have on hand. I understand now that Auto-Discovery mode means that only specific devices should be able to see the module. These devices should be set in the command mode. So I reverted to disconnecting GPIO6 and GPIO3 (as it is on most break out boards) and leaving just the bare bones connections: power and ground + status LED. I also tried resetting the modules to the factory configuration by toggling GPIO4 as specified in the datasheet.

Still the same result, with exactly the same current draw. I think the chance of the modules being damaged is very low at this point. (Could I damage all four chips in exactly the same way?) I am going to try and send some commands via UART lines.

Edit 4

Here's the data stream coming out upon power up. It's consistent so I'm fairly certain it's the actual data and not garbage. I'll try to make something out of it.

enter image description here

Edit 5

I've checked all the modules and all of them send the exact same garbage (at least it's ASCII representation doesn't have any human-understandable meaning). I'm looking at an oscilloscope and it's obvious that it's 115200 baud UART message (the narrowest bits are 8.8 uS long and the message follows the UART protocol rules), so no baud rate mismatch there. Besides the possibility of a bad batch, I think it's also possible that these chips are just not configured. I fail to find any way to configure them yet though. This is what they send upon power up:

04 0F 04 00 01 00 00 04 10 01 37 , followed by this a second later:

04 FF 1F C3 02 00 0F 00 0D 00 00 10 00 00 37 00 01 00 00 63 01 00 00 00 00 00 00 00 00 00 00 00 00 00

When I'm trying to get it in a command mode by sending $$$, it doesn't respond on the first try, but on the second try it responds with

04 10 01 FE . and goes silent again.

\$\endgroup\$
3
  • \$\begingroup\$ Just a suggestion: Add a pullup to the status pin. The schematic from the datasheet shows that it is active low. It may just be an open drain output - pull down only. \$\endgroup\$
    – JRE
    Commented May 6, 2020 at 17:23
  • \$\begingroup\$ @JRE Yes, the LED goes from 3.3v to the status pin via the resistor. Failed to mention that. Thanks for suggestion \$\endgroup\$ Commented May 6, 2020 at 17:39
  • \$\begingroup\$ The LED on the current "deadbug" set up that is, I don't have any LEDs on the PCB. \$\endgroup\$ Commented May 6, 2020 at 17:40

1 Answer 1

1
\$\begingroup\$

Finally got to the end of it. Turns out the firmware that was installed on the module was faulty. I flashed the new firmware according to the following video: https://www.youtube.com/watch?v=y8PcNbAA6AQ The video talks how to upgrade HC-05 firmware to RN-42. Instead of flashing to an HC-05 module I had to flash RN-42 with its own firmware and sure enough as soon as I finished the LED started flashing and I got a connection with my phone. Hope this doesn't happen to anyone else, I'm going to e-mail digikey about this issue, but in case it does here's what has worked for me.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.