JDY-08 Bluetooth LE Module - Datasheet, Fritzing part

I'd like to share some stuff about JDY-08 BLE module.

I made Fritzing part and translate datasheet using google translation and refine format.

If you ever heard about JDY-08, let me a summary about Bluetooth modules for Arduino.

I think HC-05 and HC-06 are the most popular Bluetooth module.
But these are Bluetooth 2.0 + EDR.

In BLE (Bluetooth Low Energy) domain, HM-10 is popular. And there are many clone models like AT-09.
These modules can be found at Aliexpress or any Chinese market.

These module using same Bluetooth LE chipset that is Ti CC2541.
And circuit is very similar. But, be careful about the difference of firmware. AT command also different.
(Some alternatives of CC2541 are Nordic nRf51822, Dialog DA14580)

Another BLE module, HM-11 has small form factor. And maybe JDY-08 is clone of it.

So, the main pros of JDY-08 are the price. It's just $1.64 and really works.
When Aug. 13, the lowest price of JDY-08 was about $2.1 and after a month it dropped to $1.73 and now $1.64. And maybe will..?

The cons are,

  • has no baseboard that logic level converter (3.3v<->5v)
  • the pitch is smaller than 2.54 but can be soldering
  • document hardly found

JDY-08 Bluetooth LE Module_fzpz.zip (11.6 KB)

Thank you so much for providing all the details. I don't have bare ATTiny85 but do have the DigiSpark USB board as well as the Arduino UNO. Do you have any sample Arduino code for the same which I can use to test this module? To be specific, I want to Send/Receive small data from my Phone (Android/iOS) to this BLE module. So any code close to the same application would really be helpful!

A bit about me, I ordered HM-11 from China and the seller sent me something similar with CC2541 (after hours of hunt online, I realized it's JDY-08) and now after reading your post, I know a little bit more.

I am a starter in Arduino and wanted to work with BLE. After looking into all the online forums and all, I figured out CC2541/CC2650 are the modules extensively used for its low power and reliable performance.

Anyways, thanks again for sharing the details. It really helped me and I am sure would do the same for many others.

Waiting for your reply.

Thanks.
Vicky

Writing in English is painful for me :smiling_imp:
um.. (deep sigh)

I strongly doubt that there are some bugs in the official firmware of JDY-08 (version 2.1).
BLE connection and AT-command (serial using UART) works.
But serial pass-through using BLE does not works (serial Rx of JDY-08 is working but Tx does not work)
To be clear, If I connect between RasberryPi and JDY-08, I can send data to JDY-08. But I can't receive data.

Another problem is that pin code (passkey) configuration does not work. I set a password using AT+PASS and then set AT+ISCEN1 (authentication enable).
When I connect to JDY-08, there was no pop-up to input pin code but disconnected after a few seconds.

I googling very hard and found a datasheet for version 2.63. I didn't translate it but here is update log.

V2.6 version update:
The functionality of the module is exactly the same as the old version, and the update is only to accommodate more customer requirements
1: The number of feature UUIDs is reduced. Currently, only two feature UUIDs are reserved
2: Added IO disconnect function
3: updated password connection, the new version of the Bluetooth default password connection
4: changed the AT + HOSTEN0 only for the APP transparent transmission mode, WeChat function for the individual mode AT + HOSTEN4

I think patch #2 and #4 are the culprits of my problems.
I can not found v2.63 firmware but found better firmware that is the official firmware of HM-10!

I updated google docs, please check 'Quick start' part. Then you can move to HM-10 v540. After that, you can update to v544 using the official tool of HM-10 (HMSoft).

Hey.. I just moved to v540 yesterday :slight_smile:
(not updated to v544 yet)

What I tested,

  • BLE connection is successful with default configuration
  • AT-command is successful (uart serial)
  • serial pass-through using BLE is OK
  • system LED is OK

What I'm testing now,

  • passkey (pin code) authentication
    (successful on LightBlue app, needs more test for linux gatt-tool)
  • PIO in and out
    (tested on both AT-command and BLE. PIO2 PWM, PIO3 is OK. PIO 4~11 not work as HM-11 rather than HM-10. strange.. need more investigation)

It's interesting that JDY-08 and HM-11 have similar size but the pinout is more similar to HM-10. So updating to HM-10's firmware is better than HM-11's.
Here is a small gift, I made a pin-map cheat sheet for JDY-08 on HM-10 firmware.

HM-11.jpg

experimental result.

  • PIO in and out (successful)
  • PIO3~11 out, PIO3 PWM out
  • PIO5 ADC in, I tested using LDR(a.k.a CDS)

Tested on both AT-command and BLE on the v544 firmware.
I failed before because I set AT+MODE to 1. We need to set 0 or 2 to output PIO3~11.

  • passkey (pin code) authentication
  • successful on LightBlue app
  • needs more test for Linux environment

The passkey problem could be subject of BlueZ rather than JDY-08.
I'm using BlueZ v5.43, (latest now, 12/7/2016)

I compared genuine HM-11 and firmed-up JDY-08.
Result is little bit different but both are fail.

I think 'gatttool' does not support passkey pairing.
'bluetoothctl' ask passkey after 'agent on' and 'default-agent' but fail to authentication.

Here is some log snippet of HM-11.
(I'll try to use HM-11 first)

AT+PASS?

OK+Get:001111
AT+TYPE?
OK+Get:3

[bluetooth]# pair 5C:F8:21:8F:E1:BB
Attempting to pair with 5C:F8:21:8F:E1:BB
[CHG] Device 5C:F8:21:8F:E1:BB Connected: yes
Failed to pair: org.bluez.Error.AuthenticationFailed
[CHG] Device 5C:F8:21:8F:E1:BB Connected: no

################

[bluetooth]# agent on
Agent registered
[bluetooth]# default-agent
Default agent request successful
[bluetooth]# pair 5C:F8:21:8F:E1:BB
Attempting to pair with 5C:F8:21:8F:E1:BB
[CHG] Device 5C:F8:21:8F:E1:BB Connected: yes
Request passkey
[NEW] Primary Service
/org/bluez/hci0/dev_5C_F8_21_8F_E1_BB/service000c
00001801-0000-1000-8000-00805f9b34fb
Generic Attribute Profile
[NEW] Characteristic
/org/bluez/hci0/dev_5C_F8_21_8F_E1_BB/service000c/char000d
00002a05-0000-1000-8000-00805f9b34fb
Service Changed
[NEW] Descriptor
/org/bluez/hci0/dev_5C_F8_21_8F_E1_BB/service000c/char000d/desc000f
00002902-0000-1000-8000-00805f9b34fb
Client Characteristic Configuration
[NEW] Primary Service
/org/bluez/hci0/dev_5C_F8_21_8F_E1_BB/service0010
0000ffe0-0000-1000-8000-00805f9b34fb
Unknown
[NEW] Characteristic
/org/bluez/hci0/dev_5C_F8_21_8F_E1_BB/service0010/char0011
0000ffe1-0000-1000-8000-00805f9b34fb
Unknown
[NEW] Descriptor
/org/bluez/hci0/dev_5C_F8_21_8F_E1_BB/service0010/char0011/desc0013
00002902-0000-1000-8000-00805f9b34fb
Client Characteristic Configuration
[NEW] Descriptor
/org/bluez/hci0/dev_5C_F8_21_8F_E1_BB/service0010/char0011/desc0014
00002901-0000-1000-8000-00805f9b34fb
Characteristic User Description
[CHG] Device 5C:F8:21:8F:E1:BB UUIDs: 00001800-0000-1000-8000-00805f9b34fb
[CHG] Device 5C:F8:21:8F:E1:BB UUIDs: 00001801-0000-1000-8000-00805f9b34fb
[CHG] Device 5C:F8:21:8F:E1:BB UUIDs: 0000ffe0-0000-1000-8000-00805f9b34fb
[CHG] Device 5C:F8:21:8F:E1:BB ServicesResolved: yes
[agent] Enter passkey (number in 0-999999): 001111 <-------------- asking...
Failed to pair: org.bluez.Error.AuthenticationFailed <-------------- failed
[CHG] Device 5C:F8:21:8F:E1:BB ServicesResolved: no
[CHG] Device 5C:F8:21:8F:E1:BB Connected: no
[bluetooth]#

# after enter passkey

< ACL Data... flags 0x00 dlen 21 [hci0] 5714.284480
SMP: Pairing Confirm (0x03) len 16
Confim value: 6541825c5b9a5f6381919483d89594b1

HCI Event: Num.. (0x13) plen 5 [hci0] 5714.292082
Num handles: 1
Handle: 69
Count: 1
ACL Data... flags 0x02 dlen 21 [hci0] 5714.331585
SMP: Pairing Confirm (0x03) len 16
Confim value: ab17c3c10789bfa67236f580dc62e56a
< ACL Data... flags 0x00 dlen 21 [hci0] 5714.331867
SMP: Pairing Random (0x04) len 16
Random value: 8c8ec790640b3b5e8ca7bc9d2220de92
HCI Event: Num.. (0x13) plen 5 [hci0] 5714.372072
Num handles: 1
Handle: 69
Count: 1
ACL Data R.. flags 0x02 dlen 6 [hci0] 5714.411724
SMP: Pairing Failed (0x05) len 1
Reason: Confirm value failed (0x04)
< HCI Com..nd (0x01|0x0006) plen 3 [hci0] 5714.412026
Handle: 69
Reason: Authentication Failure (0x05)
@ Authentication Failed: 5C:F8:21:8F:E1:BB (1) status 0x05
HCI Event: Com.. (0x0f) plen 4 [hci0] 5714.416117
Disconnect (0x01|0x0006) ncmd 1
Status: Success (0x00)
HCI Event: Dis.. (0x05) plen 4 [hci0] 5714.492088
Status: Success (0x00)
Handle: 69
Reason: Connection Terminated By Local Host (0x16)
@ Device Disconnected: 5C:F8:21:8F:E1:BB (1) reason 2

##############

I success to passkey!

In short, don't use 'pair' command in 'bluetoothctl', use 'connect' directly.
I think 'pair' command is for ordinary Bluetooth only (not for LE).

AT+PASS? >> OK+Get:123123 AT+TYPE? >> OK+Get:3

[bluetooth]# agent on <----------------
Agent is already registered
[bluetooth]# default-agent <----------------
Default agent request successful
[bluetooth]# connect 5C:F8:21:8F:E1:BB <----------------
Attempting to connect to 5C:F8:21:8F:E1:BB
[CHG] Device 5C:F8:21:8F:E1:BB Connected: yes
Connection successful
Request passkey
[NEW] Primary Service
/org/bluez/hci0/dev_5C_F8_21_8F_E1_BB/service000c
00001801-0000-1000-8000-00805f9b34fb
Generic Attribute Profile
....skip.... *
[NEW] Descriptor
/org/bluez/hci0/dev_5C_F8_21_8F_E1_BB/service0010/char0011/desc0014
00002901-0000-1000-8000-00805f9b34fb
Characteristic User Description
[CHG] Device 5C:F8:21:8F:E1:BB UUIDs: 00001800-0000-1000-8000-00805f9b34fb
[CHG] Device 5C:F8:21:8F:E1:BB UUIDs: 00001801-0000-1000-8000-00805f9b34fb
[CHG] Device 5C:F8:21:8F:E1:BB UUIDs: 0000ffe0-0000-1000-8000-00805f9b34fb
[CHG] Device 5C:F8:21:8F:E1:BB ServicesResolved: yes
3agent] Enter passkey (number in 0-999999): 12312 <-------------
[CHG] Device 5C:F8:21:8F:E1:BB Paired: yes <-------------
Device 00:15:83:00:73:9C BT05
Device 00:15:83:00:6E:F7 BT05
Device 00:19:86:00:00:38 WIN-KAMUIA0O9GF
[HMSoft]#

(already set 'agent on' and 'default-agent')
[bluetooth]# scan on <----------
Discovery started
[CHG] Controller 00:1A:7D:DA:71:0A Discovering: yes
[CHG] Device 00:15:83:00:5B:44 RSSI: -77
[CHG] Device 00:15:83:00:43:88 RSSI: -72
[CHG] Device 00:15:83:00:6E:F7 RSSI: -67
[NEW] Device 88:4A:EA:45:A7:B2 HMSoft
[bluetooth]# scan off <----------
[CHG] Device 00:15:83:00:73:9C RSSI: -75
[CHG] Device 00:15:83:00:6E:F7 RSSI is nil
[NEW] Device 00:19:86:00:00:38 WIN-KAMUIA0O9GF
[CHG] Device 00:15:83:00:73:9C RSSI is nil
[CHG] Device 88:4A:EA:45:A7:B2 TxPower is nil
[CHG] Device 88:4A:EA:45:A7:B2 RSSI is nil
[CHG] Device 00:15:83:00:43:88 RSSI is nil
[CHG] Device 00:15:83:00:5B:44 RSSI is nil
Discovery stopped
[CHG] Controller 00:1A:7D:DA:71:0A Discovering: no
[bluetooth]# connect 88:4A:EA:45:A7:B2 <-----------
Attempting to connect to 88:4A:EA:45:A7:B2
[CHG] Device 88:4A:EA:45:A7:B2 Connected: yes
Connection successful
Request passkey
[NEW] Primary Service
/org/bluez/hci0/dev_88_4A_EA_45_A7_B2/service000c
00001801-0000-1000-8000-00805f9b34fb
Generic Attribute Profile
... skip ...*
[NEW] Descriptor
/org/bluez/hci0/dev_88_4A_EA_45_A7_B2/service0010/char0011/desc0014
00002901-0000-1000-8000-00805f9b34fb
Characteristic User Description
[CHG] Device 88:4A:EA:45:A7:B2 UUIDs: 00001800-0000-1000-8000-00805f9b34fb
[CHG] Device 88:4A:EA:45:A7:B2 UUIDs: 00001801-0000-1000-8000-00805f9b34fb
[CHG] Device 88:4A:EA:45:A7:B2 UUIDs: 0000ffe0-0000-1000-8000-00805f9b34fb
[CHG] Device 88:4A:EA:45:A7:B2 ServicesResolved: yes
3agent] Enter passkey (number in 0-999999): 12312 <-----------
[CHG] Device 88:4A:EA:45:A7:B2 Paired: yes <-----------

Very nice contribution !

Best Regards,
James

Thanks,
it is very useful post.

Is can "JDY-08" module works with Bluetooth v2.0 or Bluetooth v1.2?

PS: I want use this module with Bluetooth v2.0 usb dongle(based on ht6630) or Android phone with Bluetooth v4.0 pair.
Not sure which module I should choose "JDY-08 BLE Bluetooth v4.0 based on CC2541" or "SPP Bluetooth V2.1+EDR based on bk3231".

Now the price is $1.60USD haha
https://www.aliexpress.com/af/JDY%25252d08.html

Btw, just curious, you managed to flash it to hm10 firmware right?
Shouldn't it be a hm11 instead?

And in addition to this, after flashing, are you able to run AT+SLEEP ?

Thank you!

After proceed with a firmware update on JDY-08 to the HM-10 official one (following 1saac_k guides) and a lot of time unsuccessfully spent trying to send AT commands to the module, I've figured out that the following must be done:

System KEY function (PIO0):
Long press system KEY >=1000 ms.
After wake up module, you can send and receive AT commands.

(ref. http://eezone.co.uk/blog/wireless/hm-10-cc2541-4-0-ble-bluetooth-to-uart-transceiver-module.html)

According to 1saac_k (again) after the firmware update the System KEY pin on the JDY-08 board is mapped as the pin 09.

That way to send AT commands to the module through UART interface, the pin 09 (or the PIO0 on the HM-10) must be pulled down (GND) for at least 1 second after the board power on and after every bluetooth connection established.

Best,

HI, someone has the PINMAP of the JDY-10 Bluetooth LE Module, I need to locate the PIN RESET?

asd234:
Is can "JDY-08" module works with Bluetooth v2.0 or Bluetooth v1.2?

PS: I want use this module with Bluetooth v2.0 usb dongle(based on ht6630) or Android phone with Bluetooth v4.0 pair.
Not sure which module I should choose "JDY-08 BLE Bluetooth v4.0 based on CC2541" or "SPP Bluetooth V2.1+EDR based on bk3231".

Bluetooth LE (4.0~) is not compatible Bluetooth legacy(~3.0).
But the most of Bluetooth LE Dongles (master) support Dual mode (support both 'LE' and legacy).
In this case, you can not use it with a USB dongle but android phone.
You could buy Bluetooth 2.1 module or upgrade the USB dongle.

======================

kutysam:
Btw, just curious, you managed to flash it to hm10 firmware right?
Shouldn't it be a hm11 instead?

And in addition to this, after flashing, are you able to run AT+SLEEP ?

Because HM-11 is smaller than HM-10, has less IO ports.
In this matter, we would be better to use HM-10 firmware than HM-11.
Anyway you can use HM-10 firmware but there is no benefit.

And.. I didn't test SLEEP.

===============================

moisesmagno:
After proceed with a firmware update on JDY-08 to the HM-10 official one (following 1saac_k guides) and a lot of time unsuccessfully spent trying to send AT commands to the module, I've figured out that the following must be done:

System KEY function (PIO0):
Long press system KEY >=1000 ms.
After wake up module, you can send and receive AT commands.

hmm... strange. I'm configuring without pulling down System Key.
I'll take a look at whenever this problem reproduced. Thanks :slight_smile:

=====================================

Luisk87:
HI, someone has the PINMAP of the JDY-10 Bluetooth LE Module, I need to locate the PIN RESET?

JDY-'10'..? Did you mean JDY-08 with HM-10 firmware?
Refer an attachment "JDY-08 + HM-10 firmware.png" (third post)

I tryed to starp PWM from BLE function. Use this document JDY-08 Bluetooth LE Module Datasheet - Google Docs

I just found UUIDs:

Service UUID found: 0000ffe0-0000-1000-8000-00805f9b34fb
Characteristic found: 0000ffe1-0000-1000-8000-00805f9b34fb
Characteristic found: 0000ffe2-0000-1000-8000-00805f9b34fb
Service UUID found: 00001800-0000-1000-8000-00805f9b34fb
Characteristic found: 00002a00-0000-1000-8000-00805f9b34fb
Characteristic found: 00002a01-0000-1000-8000-00805f9b34fb
Characteristic found: 00002a02-0000-1000-8000-00805f9b34fb
Characteristic found: 00002a03-0000-1000-8000-00805f9b34fb
Characteristic found: 00002a04-0000-1000-8000-00805f9b34fb
Service UUID found: 00001801-0000-1000-8000-00805f9b34fb
Characteristic found: 00002a05-0000-1000-8000-00805f9b34fb

but UUID ffe9 for PWM not found.

How to start it?

Hi guys,

I've already bought JDY-8 and trying to figure out how to make it work with my project.
I wrote simple program that allows me to communicate with JDY-8 using serial in IDE.
That part works.
I can see also my bluetooth module both from Raspberry PI (hcitool lescan command) and my Android mobile.

But when I'm trying to connect to it, for example using Bluez or Python bluepy library, I'm getting strange errors, like "Host is down" etc.

Is here anyone who can provide me simple instruction or share your code, that allows to communicate with JDY-8 from remote linux system with BLE dongle?

What I want to achieve is just to set "0" or "1" to power off/on LED.

Thanks.

Hi 1saac_k, I have found this rar file while clicking link in chinese in the serial client, there is an updated datasheet that could help better understand this module.

https://pan.baidu.com/s/1pLEzyfp (click the second button)

However, I have the jdy-08 with me now and the TX doesn't work like you said, is there a way to make it works or it only works with the hm-10 firmware?

Thank you

hi, does anyone know about jdy-10 module? it's the same ic that use cc2541 from texas instrument. The only information about this module is datasheet .

There's just a couple AT-command working from the datasheet you guys share. I aware that the firmware is different from jdy-08. when i send AT+VER through at command the return is +JDY-10-V1.8 . I already succeed to make it work to send data using at-command mode to the android app that i download called beacon simulator.

If someone have info about this module and willing to share with me thanks

I have this JDY-08/10 module and it doesn't work! I simply can't get it to respond to AT commands... I am using 115200 baud with 3.3V and with PWRC pin connected to GND. I spent the whole day trying to get it to work. Any ideas?

They use different chipsets.

My JDY-08 says +ERR to every command I send. The JDY-10 mostly worked command wise (could save name etc) but I could not get it into "data" mode. Some say it's automatic once connected but mine wasn't.

I thought they both use CC2541. Did you mean different "firmware"? Try the following:

  • "AT+BOUD1" to set baud rate to 57600
  • "mySerial.begin(57600);" to initialize at that baud rate
  • "AT+HOSTEN0" to enable master/slave

No, JDY-10 is much newer. You can find the chip by a Chinese company online but it's not well documented (surprise surprise).

I was sending end terminations to JDY-08 and that was giving the ERR. That's another plus for JDY-10. I've resolved that and some commands work. Most don't, for example;

AT+NAME => +ERR:1002

While

AT+VER => +JDY-08-V3.3843

My LE Scan on PC isn't finding it, AT+HOSTEN0 didn't return anything over UART. Probably it will be yet another fake/crap/POS destined to join the rest.

More JDY-10's on order, I could discover that one but could never make it send data.

Andrew

Figured it, here's a better manual which shows which functions work in which mode.

To set it to slave use AT+HOSTEN3. AT+NAME etc now work.

It should now be discoverable I think... but it isn't.

JDY-08蓝牙4.0模块.pdf (680 KB)