first commit

This commit is contained in:
oberon 2026-02-03 11:46:46 +01:00
commit 74da7ee616
2 changed files with 118 additions and 0 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

118
README.md Normal file
View File

@ -0,0 +1,118 @@
# mkconnect-python
...a bit of code to connect to MouldKing Bluetooth Hubs in python.
# MouldKing Hubs
## MouldKing 6.0 Hub
The MouldKing 6.0 Hub has two modes:
* RC-Mode to be controlled with a MouldKing remotecontrol
* Bluetooth-Mode to be controlled with an app
You can control a maximum of three MK6.0 Hubs at the same time with bluetooth.
> (Currently this project can send only one advertising telegram the same time - so only one hub can be controlled, all others will go in timeout-mode till next telegram with their device address is sent.)
## Setting the address of the Hub
To switch the Hub's device address to the next one (device 0, device 1, device 2) just press the button on the hub.
> i.E.: If the script runs with **mkcontrol(2,0,1)** (-> device2, channel0, full speed forward) and nothing is happening, you have to short-press the button, perhaps again...)
# usage
Start the script [consoletest.py](https://github.com/J0EK3R/mkconnect-python/blob/main/consoletest.py) on your raspberry:
```
pi@devpi:~/dev/mkconnect-python $ sudo python -i consoletest.py
```
## mkbtstop() - stop bluetooth advertising
```
Ready to execute commands
>>> mkbtstop()
```
## mkconnect() - switch hubs in bluetooth mode
If you power-on the hubs they will listen to telegrams to the **first device by default**.
Call mkconnect() to switch all hubs in Bluetooth mode.
By short-pressing the button on MK6.0 Hubs you can choose the hubId:
* hubId=0 - one Led flash
* hubId=1 - two Led flashs
* hubId=2 - three Led flashs
```
Ready to execute commands
>>> mkconnect()
```
## mkcontrol(deviceId, channel, power and powerAndDirection)
i.E.: mkcontrol(0, 0, 1) - on first device (deviceId=0) run channel A (channel=0) with fullspeed (powerAndDirection=1)
```
Ready to execute commands
>>> mkcontrol(0, 0, 1)
```
## mkstop(deviceId)
Set all channels of device to zero
```
Ready to execute commands
>>> mkstop(0)
```
---
# old stuff
There is a testscript [consoletest.py](https://github.com/J0EK3R/mkconnect-python/blob/main/consoletest.py) where (on raspberry pi) **hcitool** is used to advertise telegrams over bluetooth.
Maybe you habe to **sudo** the command:
```
pi@devpi:~/dev/mkconnect-python $ sudo python -i consoletest.py
Ready to execute commands
For connecting: mkconnect(hubId) ex: mkconnect(0) or mkconnect(1) for the second hub
Available commands: mkconnect(hubId)
mkstop(hubId)
mkcontrol(deviceId, channel, powerAndDirection)
ex: mkcontrol(0, 0, 0.5) ; mkcontrol(0, 'B', -1)
the minus sign - indicate reverse motor direction
```
Just look in [main.py](https://github.com/J0EK3R/mkconnect-python/blob/main/main.py) for current usage...
Current output in [https://wokwi.com/projects/new/micropython-pi-pico](https://wokwi.com/projects/398314618803830785)
...looks very good! :)
```
connect-telegram
rawdata: 6d 7b a7 80 80 80 80 92
crypted: 6d b6 43 cf 7e 8f 47 11 88 66 59 38 d1 7a aa 26 49 5e 13 14 15 16 17 18
stop-telegram
rawdata: 61 7b a7 80 80 80 80 80 80 9e
crypted: 6d b6 43 cf 7e 8f 47 11 84 66 59 38 d1 7a aa 34 67 4a 55 bf 15 16 17 18
C1: fullspeed forwards
rawdata: 61 7b a7 ff 80 80 80 80 80 9e
crypted: 6d b6 43 cf 7e 8f 47 11 84 66 59 47 d1 7a aa 34 67 4a ed b7 15 16 17 18
C1: halfspeed forwards
rawdata: 61 7b a7 bf 80 80 80 80 80 9e
crypted: 6d b6 43 cf 7e 8f 47 11 84 66 59 07 d1 7a aa 34 67 4a eb 70 15 16 17 18
C1: halfspeed backwards
rawdata: 61 7b a7 40 80 80 80 80 80 9e
crypted: 6d b6 43 cf 7e 8f 47 11 84 66 59 f8 d1 7a aa 34 67 4a 4e fe 15 16 17 18
C2: halfspeed backwards
rawdata: 61 7b a7 40 40 80 80 80 80 9e
crypted: 6d b6 43 cf 7e 8f 47 11 84 66 59 f8 11 7a aa 34 67 4a 3d f9 15 16 17 18
MicroPython v1.22.0 on 2023-12-27; Raspberry Pi Pico with RP2040
Type "help()" for more information.
>>>
raw REPL; CTRL-B to exit
>
```