Searching for: Volume control button that connects with Arylic Up2Stream

:+1:t3:

I think, you do the right things for the right reasons.

1 Like

Update with Compatibility Testing of

With

Objective : A Quick test of Digital Button Inputs.

Serial_Report_DI

All Inputs working fine. Easy stuff done. later for the Rotary Encoder & Comms to Arylic Device :slight_smile:

P.S. I have deleted wiring diagram from previous post. Needed to shift the DI +1 PIN.

:+1:t2:
Great!

1 Like

Looking good Kevin. Let me know if you need help with anything.

1 Like

@KolfMAKER @Hydro3 @zpl1025

Escaped to Spain successfully. Ready for building

Spain, nice. That probably helps inspiration.
Things are getting real now. :+1:t2:

1 Like

@KolfMAKER @Hydro3 @zpl1025

Ernst thanks for reaching out to Donny, would be nice to get him on board :slight_smile:

Brief Progress Update - Basic Wiring Done

A nice little Surprise. It seems the ANO Input Device is pretty reliable in 45 degree positions e.g. 45 degrees between up and right. With this press I get both up and right inputs simultaneously. So this opens up the table for future functional additions.

And of course now for the bittersweet news. I have to attack the tricky bit now - the communications ESP32 <<> >Arylic (using UPnP/DLNA) :crossed_fingers:

If I donā€™t post before Xmas hope that you all have a very Merry Christmas, Kevin

1 Like

We are now at the stages of ā€˜things getting realā€™!
:+1:t3:

@KolfMAKER @Hydro3 @zpl1025

I certainly havenā€™t forgotten about our Project. I have been busy fixing things out here so no time to play with the interesting stuff :cry:

The Hardware is there; I just need 1 day to design and 1 day to make some code. I am hopeful for next week (back in UK) so letā€™s say if there is no progress by 22nd January please chase and tell me off :joy:

btw, donā€™t worry itā€™s going to work a treat :rofl: :joy: :rofl:

Kevin

1 Like

Perfect & no pressure! :wink:

Any contact with our additional team member, Donny?

Hi Kevin, I have a new idea for this product. It has some limits but should be more simple for end user.
The Up2Stream V3 series and some models which support BLE assisted network configuration, it also has BLE interface for the controlling, and since youā€™re using the ESP platform, it has BLE integrated, so you could use this interface. You also can try to test with a BLE tool. It would be ideal for this project.

Service UUID:
0x00,0xb2,0x45,0x6d,0x49,0xf7,0x10,0x84,0xeb,0x11,0x54,0x49,0x4F,0x4B,0x41,0x52

Character UUID:
0x01,0xb2,0x45,0x6d,0x49,0xf7,0x10,0x84,0xeb,0x11,0x54,0x49,0x4F,0x4B,0x41,0x52

Protocol:
3 bytes, HEADER+TYPE+CODE

HEADER: fixed 0x41

TYPE: 0x01 for short press, 0x02 for long press

CODE:

POWER FACTORY_RESET 0xBF
LED_TOGGLE N/A 0xB2
MUTE N/A 0xBE
SRC_USB N/A 0xB3
SRC_AUX N/A 0xEE
VOL_UP VOL_UP2 0xE9
VOL_DW VOL_DW2 0xE5
PREV WIFI_PREV_CH 0xAE
NEXT WIFI_NEXT_CH 0xAF
PLAY_PAUSE STOP 0xEC
SRC_OPT N/A 0xEF
SRC_BT WIFI_RESET 0xE7
SRC_WIFI WIFI_RESET 0xE6
BASS_UP_COARSE N/A 0xB1
BASS_DW_COARSE N/A 0xB5
TREB_UP_COARSE N/A 0xF2
TREB_DW_COARSE N/A 0xF6
EQ_FLAT EQ_FLAT 0xF3
VB N/A 0xF7
NUM_1 WIFI_PRESET1 0xB9
NUM_2 WIFI_PRESET2 0xFA
NUM_3 WIFI_PRESET3 0xFB
NUM_4 WIFI_PRESET4 0xBD
NUM_5 WIFI_PRESET5 0xFE
NUM_6 WIFI_PRESET6 0xFF

For example: send 0x41,0x02,0xE9 to send VOL_UP key, and it will increase the volume.

2 Likes

@zpl1025 Frank,

This looks interesting. As we say in English ā€œanother way to skin the catā€ :slight_smile:

Iā€™ll add the details you posted to the functional specification and we can review when Prototype V1 is up and running. I will continue with DLNA-UPnP for this stage as that it what we agreed. If I fail to make it work I might change my mind :joy:

Moving forwards there can certainly be the same Hardware platform with 2 Firmware variants

  1. DLNA/UPnP - works with any DLNA Compliant Device (For a fixed basic functionality)
  2. BLE Interface - works with Arylic and could have a configurable functionality)

Kind Regards, Kevin

Yes, the DLNA/UPNP way would work with all device, but the BLE only works with limited devices and Arylic only. :slight_smile:

@KolfMAKER @Hydro3 @zpl1025

A Brief Progress Update. I have been able to spend a few hours testing different approaches for the Device Communications.

Firstly the Device Digital Inputs is simple and I donā€™t really see a problem with the Encoder Inputs either. Also Outputs should be straightforward too e.g. LED Status. With an ESP32 MCU I am fairly sure I can implement Arduino or Micro Python Solution.

However the comms is the trickiest bit. What I donā€™t want to do is make a lot of software that just needs a lot of development time and maintenance and potential bugs. My major remarks / decision points are as follows:-

Regarding comms inside the Development Package I can create strings of DLNA Commands and manage this. However if we suddenly decide that another programming language it may be necessary then this will need constructing again. So I am thinking maybe it will be better to use something like cURL Shell Commands so it reduces the design time and makes the Comms Instructions cross platform.

The other point is that realistically a very fast way to get something working quickly is indeed to use low overhead comms like the BLE Interface suggested by @zpl1025. At the end of the day our objective it to make a cool knob control for Arylic Devices. With this in mind I would propose the following change in plan.

  1. Start with the BLE Interface
  2. Design a Solution that is also possible/easy as possible to switch comms protocol, e.g. BLE, DLNA/UPNP, HTTPAPI, UART, TCP/IP to suit.
  3. Work with DLNA/UPNP in the background/parallel.

Anyway guys let me know what you think.

@zpl1025 can you please confirm that the Arylic Devices are configured as a BLE Server and that the Volume Control Knob will be a Client Application ?

Regards, Kevin

P.S. To see how complicated it can become look at this piece of work https://github.com/tmittet/sonos/. It is indeed a fantastic piece of work and must have taken such a huge effort from the developer :clap: However in my Control System Days we would call this a ā€œChocolate Factoryā€, technically excellent but a little bit complicated. I have a Software Vision for this project to make it as simple and bombproof as possible :slight_smile:

Hi Kevin, the BLE on some of Arylic devices act as peripheral, you can have quick look with BLE tool on phone. eg: LightBlue.

@zpl1025 Frank,

I have had a quick look and play around.

So I have 2 questions.

  1. Not familiar with this technology but it appears from this app that the Arylic PRO is the CLIENT and that the Volume KNOB (or in this case my Android Phone) is the Server ? Can you confirm your understanding of this ?
    FORGET THIS QUESTION THE ARYLIC DEVICE MUST BE THE SERVER !!

You will see in my screenshot that the Service & Characteristic UUIDā€™s do not seem like the ones you quoted in the post. Maybe I have misunderstood something here ?

Many Thanks in Advance, Kevin

@NWT.Stuff @zpl1025

Thanks Kevin for your update and Frank for response, all looking very good!

My knowledge is not that much in software and coding. Though I do agree with principles you mention Kevin. Like ā€˜prevent software that just needs a lot of development time and maintenance and potential bugsā€™.

:+1:t3: :slightly_smiling_face:

Good Progress Today and I have a made a working solution using ā€œhttpapiā€ with Next & Previous Tracks

  • Testing with a Arylic Mini
  • Music Source Playlist on Synology NAS Drive

A Very Rough Video

A Log File

18:11:03.226 -> BUTTON_RIGHT
18:11:03.601 -> HTTP Response code: 200
18:11:09.603 -> BUTTON_RIGHT
18:11:09.838 -> HTTP Response code: 200
18:11:14.858 -> BUTTON_RIGHT
18:11:15.046 -> HTTP Response code: 200
18:11:19.041 -> BUTTON_LEFT
18:11:19.229 -> HTTP Response code: 200
18:11:23.218 -> BUTTON_LEFT
18:11:23.454 -> HTTP Response code: 200

Next Step

  • Write and Test Code for Rotary Encoder (Volume)
  • Extend Command Set
1 Like

@NWT.Stuff
That looks really good Kevin. It seems the response time to the press is also good.

Keep the good work going!

1 Like

@KolfMAKER @Hydro3 @zpl1025

I would say we have completed Prototype V0 - Proof of Concept. See Report below:-

So letā€™s move on to Prototype V1 which I would suggest includes the 3 major omissions from V0 -

  • Output Device - None
  • Hook Up to WLAN (Hard Coded)
  • Pair with Arylic Device (Hard Coded) ā€“ Single Stereo device Arylic DIY PRO V3 Hard Wired on LAN

So the major points for discussion are, Which Output Device ?
ā€¢ 1 x RGB LED ā€“ e.g. Arylic Mini
ā€¢ Multiple Single Colour LEDS
ā€¢ Adafruit NeoPixel Ring - 5050 RGB
ā€¢ Something else

P.S. I do have a ā€œAdafruit NeoPixel Ring - 5050 RGBā€ if you would like me to give that a go. Otherwise I have single colour and RGB LEDs available.

Another Major Question for me is what you think about the configuring of

  • Hook Up to WLAN and IP Config
  • Pair with Arylic Device

I would suggest a small web server running in web browser (responsive so that OK on Phone, Tablet & PC). I have never developed apps and I donā€™t really want to get involved in that sort of stuff. Is the Web Server idea OK for Prototype V1 ?

In the meantime I will continue with more testing, refinements and debugging.

Looking forward to your input, Kevin

@KolfMAKER It will be easy to throw a Stereo Pair in there and test this. I donā€™t have 2 x MINIs though so it will another Arylic Product for testing :slight_smile:

P.P.S. I am thinking Prototype V2 Should be

  • ESP32 MCU more compact and closer to final product
  • Enclosed Product in Housing, MCU, ANO Input Device & Selected Agreed Output Devices (LEDā€™s)
  • Proposed Battery Solution selected and implemented

Software Improvements, Refinements can be tested and implemented in the transition from Devices connected to terminals to a packaged prototype product. Letā€™s say the Transition From V1 >> V2.