JDY-08 Bluetooth LE Module - Datasheet, Fritzing part

Now it is, my laptop BLE card had an issue. I've connected and discovered several characteristics. At this point my knowledge falls short.

I assume given there's no official protocol that if I'm in "transparent" mode (is that still AT+HOSTEN3?) then writing a character will change one of these characteristics and another characteristic will act as a flag which the master will poll and then know when to pull a value. Is that right?

If so what's the best way of going about working it out, writing a char to UART and checking each one?

I just used the HM-10 service and char UUID's:

service UUID: 0000ffe0-0000-1000-8000-00805f9b34fb
RX characteristic UUID: 0000ffe1-0000-1000-8000-00805f9b34fb
TX characteristic UUID: 0000ffe1-0000-1000-8000-00805f9b34fb

So the characteristic is set to NULL to indicate it's been read? How large is the RX/TX characteristic?

I honestly don't know, I used an app to communicate.

Are you sure you used 0000ffe0-0000-1000-8000-00805f9b34fb?

I have this service but it has no characteristics.

I also have two others for Generic Access and Generic Attribute but as the name implies I believe these are Generic (one contains the device name for example).

Maybe 0000ffe0-0000-1000-8000-00805f9b34fb is correct but the characteristics are not exposed until the device is switched into pass-through...?

Andrew

Yup I used "0000ffe0-0000-1000-8000-00805f9b34fb" for the service UUID and "0000ffe1-0000-1000-8000-00805f9b34fb" for both RX and TX characteristic UUID. I used "AT+HOSTEN0"

I've got JDY-10 wired up and commands are working. There are three services;

attr handle: 0x0001, end grp handle: 0x0007 uuid: 00001800-0000-1000-8000-00805f9b34fb
attr handle: 0x0008, end grp handle: 0x0010 uuid: 0000ffe0-0000-1000-8000-00805f9b34fb
attr handle: 0x0011, end grp handle: 0x001b uuid: 0000fee7-0000-1000-8000-00805f9b34fb

I read the characteristics from the second service which the manual says is the "transparent transmission service";

handle: 0x0009, char properties: 0x14, char value handle: 0x000a, uuid: 0000ffe1-0000-1000-8000-00805f9b34fb
handle: 0x000d, char properties: 0x14, char value handle: 0x000e, uuid: 0000ffe2-0000-1000-8000-00805f9b34fb

I assume these map to RX/TX. The manual says ffe1 is the "pass-through characterised ID"

Neither of this characteristics have any value.

Unlike JDY-08 there's no master/slave mode, so the question now is now to get data from UART in/out of these characteristics.

According to text regarding pin B0, the device enters transparent mode when a bluetooth connection is established, but can be overridden by this pin. Since I've left it floating I would expect the AT commands to cease operating upon connection, yet they don't.

Both these characteristics have a descriptor;

[A4:C1:38:77:28:E6][LE]> char-desc 0x0009 0x0009
handle: 0x0009, uuid: 00002803-0000-1000-8000-00805f9b34fb
[A4:C1:38:77:28:E6][LE]> char-desc 0x000d 0x000d
handle: 0x000d, uuid: 00002803-0000-1000-8000-00805f9b34fb
[A4:C1:38:77:28:E6][LE]> char-read-uuid 00002803-0000-1000-8000-00805f9b34fb
handle: 0x0002 	 value: 12 03 00 00 2a 
handle: 0x0004 	 value: 02 05 00 01 2a 
handle: 0x0006 	 value: 02 07 00 04 2a

Which I figure with the char-properties bitmask value 0x14 sets read/write/notification etc. Unsure at this point though.

If I attempt a write;

[A4:C1:38:77:28:E6][LE]> char-write-cmd 0x000e 0x01
[A4:C1:38:77:28:E6][LE]> char-read-hnd 0x000e
Characteristic value/descriptor:
[A4:C1:38:77:28:E6][LE]> char-write-cmd 0x000a 0x01
[A4:C1:38:77:28:E6][LE]> char-read-hnd 0x000a
Characteristic value/descriptor:

No value for either, nothing in UART.

Unsure where to head next.

Some progress, I found a Chinese app for the JDY-08 and the two UUID's of interest are;

00002902-0000-1000-8000-00805f9b34fb (notificiation)
0000ffe1-0000-1000-8000-00805f9b34fb (tx/rx - looks like half duplex?)

Setting notifications to "1" puts the device into transparent mode

[A4:C1:38:77:28:E6][LE]> char-read-uuid 00002902-0000-1000-8000-00805f9b34fb
handle: 0x000b 	 value: 00 00 
[A4:C1:38:77:28:E6][LE]> char-write-cmd 0x000b 01 00

Now UART text comes through;

Notification handle = 0x000a value: 41 54 2b 4e 41 4d 45 0d 0a 
Notification handle = 0x000a value: 41 54 2b 4e 41 4d 45 0d 0a 
Notification handle = 0x000a value: 41 54 2b 42 41 55 44 0d 0a 
Notification handle = 0x000a value: 31 30 0d 0a 
Notification handle = 0x000a value: 31 0d 0a

However checking 0000ffe1-0000-1000-8000-00805f9b34fb offers no value, so perhaps this is a FIFO buffer.

Anyhow, doing a write to this char pumps it through to UART;

[A4:C1:38:77:28:E6][LE]> char-write-req 0x000a 01105D3A
Characteristic value was written successfully

So mission complete. :slight_smile: Use the DISC pin to force a disconnect, or for a pre-configure prior to allowing a connection to go through.

see this video

I have completed the communication between two jdy-08-ble modules.
for further information connect me on youtube. I will help you.

See this video
JDY 08 BLE bluetooth v4 Master Slave with arduino - YouTube
Here you will see my project that I have completed the communication between two jdy-08-ble modules.
for any issue regarding to this module contact me on youtube via comment your problem in my video.
Verge2050.

arturx:
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.

If you stick with genuine HM-10 and the Huamao software that exposes i/o pins, you can use digital i/o, ADC, and PWM directly on the module without any AT pass-through nonsense to another MCU.

I show here..

HM-10 BLE Android App using HM10 & AI2 only. NO ARDUINO