Menu
JAQForum Ver 19.10.27

Forum Index : Microcontroller and PC projects : MMBasic V6.03.00 release candidates

   Page 19 of 27    
Posted: 10:56am
04 Jun 2026
Copy link to clipboard
matherp
Guru

One more test with the diagnostics removed and a logic simplification. If this doesn't keep going for an extended period there is one minor change to put a keep-alive back

PicoMite.zip
 
Posted: 10:59am
04 Jun 2026
Copy link to clipboard
homa
Guru


I'm just popping out for lunch; I'll be back in a minute.
 
Posted: 12:11pm
04 Jun 2026
Copy link to clipboard
homa
Guru


  matherp said  One more test with the diagnostics removed and a logic simplification. If this doesn't keep going for an extended period there is one minor change to put a keep-alive back

PicoMite.zip


OK, with this version (8 out of 9):

MageDok T090A HDMI 9-inch IPS 1280x720 Touch 10 point:
GUI TEST TOUCH
- Single Trace    - Passed
- Dual Trace      - Passed
On Screen Keyboard - Passed
Pump GUI Demo      - Passed
Swipe U/D/L/R      - Passed
TAP/DTAP/HOLD      - Passed
EXPAND/CONTRACT    - Passed
ROTATE CW/CCW      - failed
Two Finger Tap     - Passed

Or maybe ROTATE I'm doing it wrong? I'm trying to draw a circle the size of a 2-euro coin with one finger. Is that right?
 
Posted: 12:20pm
04 Jun 2026
Copy link to clipboard
matherp
Guru

  Quote  Or maybe ROTATE I'm doing it wrong? I'm trying to draw a circle the size of a 2-euro coin with one finger. Is that right?


No: two fingers, rotate one down and one up
 
Posted: 12:26pm
04 Jun 2026
Copy link to clipboard
homa
Guru


  matherp said  
  Quote  Or maybe ROTATE I'm doing it wrong? I'm trying to draw a circle the size of a 2-euro coin with one finger. Is that right?


No: two fingers, rotate one down and one up


Okay, then:

MageDok T090A HDMI 9-inch IPS 1280x720 Touch 10 point:

GUI TEST TOUCH
- Single Trace    - Passed
- Dual Trace      - Passed
On Screen Keyboard - Passed
Pump GUI Demo      - Passed
Swipe U/D/L/R      - Passed
TAP/DTAP/HOLD      - Passed
EXPAND/CONTRACT    - Passed
ROTATE CW/CCW      - Passed
Two Finger Tap     - Passed


 
Posted: 01:03pm
04 Jun 2026
Copy link to clipboard
matherp
Guru

WW please test with the version from the second last post of the previous page (18)
 
Posted: 02:59pm
04 Jun 2026
Copy link to clipboard
WhiteWizzard
Guru

  matherp said  WW please test with the version from the second last post of the previous page (18)

Will do - but won’t be until about 19:30 this evening.
THANK YOU for all your effort on this today; even though I’m at work, I’ve been keeping a very keen eye on all the posts.
 
Posted: 07:01pm
04 Jun 2026
Copy link to clipboard
WhiteWizzard
Guru

Hi Peter,

Loaded FW from Page 18 (2nd last post) and installed on reference I2S. After power up, connect the USB touch and get the following output:

PicoMiteHDMI MMBasic USB RP2350B Edition V6.03.00RC16
Copyright 2011-2026 Geoff Graham
Copyright 2016-2026 Peter Mather

> ---- Touch HID report descriptor (704 bytes) ----
000: 05 0D 09 04 A1 01 85 0D 05 0D 09 22 A1 02 09 42
010: 15 00 25 01 75 01 95 01 81 02 95 03 81 01 09 51
020: 75 04 25 0F 95 01 81 02 05 01 26 FF 3F 75 10 55
030: 0E 65 11 09 30 35 00 46 79 08 81 02 26 7F 25 46
040: 8A 03 09 31 81 02 05 0D C0 09 22 A1 02 09 42 15
050: 00 25 01 75 01 95 01 81 02 95 03 81 01 09 51 75
060: 04 25 0F 95 01 81 02 05 01 26 FF 3F 75 10 55 0E
070: 65 11 09 30 35 00 46 79 08 81 02 26 7F 25 46 8A
080: 03 09 31 81 02 05 0D C0 09 22 A1 02 09 42 15 00
090: 25 01 75 01 95 01 81 02 95 03 81 01 09 51 75 04
0A0: 25 0F 95 01 81 02 05 01 26 FF 3F 75 10 55 0E 65
0B0: 11 09 30 35 00 46 79 08 81 02 26 7F 25 46 8A 03
0C0: 09 31 81 02 05 0D C0 09 22 A1 02 09 42 15 00 25
0D0: 01 75 01 95 01 81 02 95 03 81 01 09 51 75 04 25
0E0: 0F 95 01 81 02 05 01 26 FF 3F 75 10 55 0E 65 11
0F0: 09 30 35 00 46 79 08 81 02 26 7F 25 46 8A 03 09
100: 31 81 02 05 0D C0 09 22 A1 02 09 42 15 00 25 01
110: 75 01 95 01 81 02 95 03 81 01 09 51 75 04 25 0F
120: 95 01 81 02 05 01 26 FF 3F 75 10 55 0E 65 11 09
130: 30 35 00 46 79 08 81 02 26 7F 25 46 8A 03 09 31
140: 81 02 05 0D C0 09 22 A1 02 09 42 15 00 25 01 75
150: 01 95 01 81 02 95 03 81 01 09 51 75 04 25 0F 95
160: 01 81 02 05 01 26 FF 3F 75 10 55 0E 65 11 09 30
170: 35 00 46 79 08 81 02 26 7F 25 46 8A 03 09 31 81
180: 02 05 0D C0 09 22 A1 02 09 42 15 00 25 01 75 01
190: 95 01 81 02 95 03 81 01 09 51 75 04 25 0F 95 01
1A0: 81 02 05 01 26 FF 3F 75 10 55 0E 65 11 09 30 35
1B0: 00 46 79 08 81 02 26 7F 25 46 8A 03 09 31 81 02
1C0: 05 0D C0 09 22 A1 02 09 42 15 00 25 01 75 01 95
1D0: 01 81 02 95 03 81 01 09 51 75 04 25 0F 95 01 81
1E0: 02 05 01 26 FF 3F 75 10 55 0E 65 11 09 30 35 00
1F0: 46 79 08 81 02 26 7F 25 46 8A 03 09 31 81 02 05
200: 0D C0 09 22 A1 02 09 42 15 00 25 01 75 01 95 01
210: 81 02 95 03 81 01 09 51 75 04 25 0F 95 01 81 02
220: 05 01 26 FF 3F 75 10 55 0E 65 11 09 30 35 00 46
230: 79 08 81 02 26 7F 25 46 8A 03 09 31 81 02 05 0D
240: C0 09 22 A1 02 09 42 15 00 25 01 75 01 95 01 81
250: 02 95 03 81 01 09 51 75 04 25 0F 95 01 81 02 05
260: 01 26 FF 3F 75 10 55 0E 65 11 09 30 35 00 46 79
270: 08 81 02 26 7F 25 46 8A 03 09 31 81 02 05 0D C0
280: 27 FF FF 00 00 75 10 95 01 09 56 81 02 09 54 15
290: 00 25 7F 95 01 75 08 81 02 85 0A 09 55 95 01 25
2A0: 0F B1 02 C0 05 0D 09 0E A1 01 85 21 09 22 A1 00
2B0: 09 52 09 53 15 00 25 0A 75 08 95 02 B1 02 C0 C0
---- Parsed touch_info ----
 uses_report_id=1 report_id=13 report_length_bytes=54
 max_contacts=10 first_contact_bit_offset=0 contact_stride_bits=40
 contact_count bit_offset=416 bits=8
 tip_switch_bit_offset=0 in_range_bit_offset=0
 contact_id bit_offset=4 bits=4
 X bit_offset=8 bits=16 logical_max=16383
 Y bit_offset=24 bits=16 logical_max=9599
 input_mode=1 report_id=33 bringup: cc_max_id=10 cert_id=0
 pointer_fallback=0
---------------------------
Multi-touch CTouch SET_FEATURE InputMode id=33 len=2
onnected on channel 4 (10 contacts, 16383x9599)
> Touch SET_FEATURE InputMode id=33 len=2

Touch SET_FEATURE InputMode id=33 len=2
Touch SET_FEATURE InputMode id=33 len=2
Touch SET_FEATURE InputMode id=33 len=2
Touch SET_FEATURE InputMode id=33 len=2
Touch SET_FEATURE InputMode id=33 len=2
Touch SET_FEATURE InputMode id=33 len=2
Touch SET_FEATURE InputMode id=33 len=2
Touch SET_FEATURE InputMode id=33 len=2
Touch SET_FEATURE InputMode id=33 len=2
Touch SET_FEATURE InputMode id=33 len=2
Touch SET_FEATURE InputMode id=33 len=2
.
.
.

This last line then repeats about every 2 seconds

Nothing else different happens if I touch the screen.


If I unplug USB touch, then I see:

Multi-touch Disconnected

and on plugging it back in I get:


> ---- Touch HID report descriptor (704 bytes) ----
000: 05 0D 09 04 A1 01 85 0D 05 0D 09 22 A1 02 09 42
010: 15 00 25 01 75 01 95 01 81 02 95 03 81 01 09 51
020: 75 04 25 0F 95 01 81 02 05 01 26 FF 3F 75 10 55
030: 0E 65 11 09 30 35 00 46 79 08 81 02 26 7F 25 46
040: 8A 03 09 31 81 02 05 0D C0 09 22 A1 02 09 42 15
050: 00 25 01 75 01 95 01 81 02 95 03 81 01 09 51 75
060: 04 25 0F 95 01 81 02 05 01 26 FF 3F 75 10 55 0E
070: 65 11 09 30 35 00 46 79 08 81 02 26 7F 25 46 8A
080: 03 09 31 81 02 05 0D C0 09 22 A1 02 09 42 15 00
090: 25 01 75 01 95 01 81 02 95 03 81 01 09 51 75 04
0A0: 25 0F 95 01 81 02 05 01 26 FF 3F 75 10 55 0E 65
0B0: 11 09 30 35 00 46 79 08 81 02 26 7F 25 46 8A 03
0C0: 09 31 81 02 05 0D C0 09 22 A1 02 09 42 15 00 25
0D0: 01 75 01 95 01 81 02 95 03 81 01 09 51 75 04 25
0E0: 0F 95 01 81 02 05 01 26 FF 3F 75 10 55 0E 65 11
0F0: 09 30 35 00 46 79 08 81 02 26 7F 25 46 8A 03 09
100: 31 81 02 05 0D C0 09 22 A1 02 09 42 15 00 25 01
110: 75 01 95 01 81 02 95 03 81 01 09 51 75 04 25 0F
120: 95 01 81 02 05 01 26 FF 3F 75 10 55 0E 65 11 09
130: 30 35 00 46 79 08 81 02 26 7F 25 46 8A 03 09 31
140: 81 02 05 0D C0 09 22 A1 02 09 42 15 00 25 01 75
150: 01 95 01 81 02 95 03 81 01 09 51 75 04 25 0F 95
160: 01 81 02 05 01 26 FF 3F 75 10 55 0E 65 11 09 30
170: 35 00 46 79 08 81 02 26 7F 25 46 8A 03 09 31 81
180: 02 05 0D C0 09 22 A1 02 09 42 15 00 25 01 75 01
190: 95 01 81 02 95 03 81 01 09 51 75 04 25 0F 95 01
1A0: 81 02 05 01 26 FF 3F 75 10 55 0E 65 11 09 30 35
1B0: 00 46 79 08 81 02 26 7F 25 46 8A 03 09 31 81 02
1C0: 05 0D C0 09 22 A1 02 09 42 15 00 25 01 75 01 95
1D0: 01 81 02 95 03 81 01 09 51 75 04 25 0F 95 01 81
1E0: 02 05 01 26 FF 3F 75 10 55 0E 65 11 09 30 35 00
1F0: 46 79 08 81 02 26 7F 25 46 8A 03 09 31 81 02 05
200: 0D C0 09 22 A1 02 09 42 15 00 25 01 75 01 95 01
210: 81 02 95 03 81 01 09 51 75 04 25 0F 95 01 81 02
220: 05 01 26 FF 3F 75 10 55 0E 65 11 09 30 35 00 46
230: 79 08 81 02 26 7F 25 46 8A 03 09 31 81 02 05 0D
240: C0 09 22 A1 02 09 42 15 00 25 01 75 01 95 01 81
250: 02 95 03 81 01 09 51 75 04 25 0F 95 01 81 02 05
260: 01 26 FF 3F 75 10 55 0E 65 11 09 30 35 00 46 79
270: 08 81 02 26 7F 25 46 8A 03 09 31 81 02 05 0D C0
280: 27 FF FF 00 00 75 10 95 01 09 56 81 02 09 54 15
290: 00 25 7F 95 01 75 08 81 02 85 0A 09 55 95 01 25
2A0: 0F B1 02 C0 05 0D 09 0E A1 01 85 21 09 22 A1 00
2B0: 09 52 09 53 15 00 25 0A 75 08 95 02 B1 02 C0 C0
---- Parsed touch_info ----
 uses_report_id=1 report_id=13 report_length_bytes=54
 max_contacts=10 first_contact_bit_offset=0 contact_stride_bits=40
 contact_count bit_offset=416 bits=8
 tip_switch_bit_offset=0 in_range_bit_offset=0
 contact_id bit_offset=4 bits=4
 X bit_offset=8 bits=16 logical_max=16383
 Y bit_offset=24 bits=16 logical_max=9599
 input_mode=1 report_id=33 bringup: cc_max_id=10 cert_id=0
 pointer_fallback=0
---------------------------
Multi-touch CTouch SET_FEATURE InputMode id=33 len=2
onnected on channel 4 (10 contacts, 16383x9599)
>
Error : USB device limit reached>
>Touch SET_FEATURE InputMode id=33 len=2
Touch SET_FEATURE InputMode id=33 len=2
Touch SET_FEATURE InputMode id=33 len=2
Touch SET_FEATURE InputMode id=33 len=2
Touch SET_FEATURE InputMode id=33 len=2

NOTE the line in red above stating USB device limit reached. The bottom line repeats itself once again about every 2 seconds as before
 
Posted: 09:54pm
04 Jun 2026
Copy link to clipboard
matherp
Guru

WW

Please try again with this version. Probably won't work but the diagnostics might be more useful


PicoMite.zip
 
Posted: 09:59pm
04 Jun 2026
Copy link to clipboard
WhiteWizzard
Guru

Loaded, and it just displays the following (and then sits on a cursor - i.e. no repeating lines at the end)

PicoMiteHDMI MMBasic USB RP2350B Edition V6.03.00RC16
Copyright 2011-2026 Geoff Graham
Copyright 2016-2026 Peter Mather

> ---- Touch HID report descriptor (704 bytes) ----
000: 05 0D 09 04 A1 01 85 0D 05 0D 09 22 A1 02 09 42
010: 15 00 25 01 75 01 95 01 81 02 95 03 81 01 09 51
020: 75 04 25 0F 95 01 81 02 05 01 26 FF 3F 75 10 55
030: 0E 65 11 09 30 35 00 46 79 08 81 02 26 7F 25 46
040: 8A 03 09 31 81 02 05 0D C0 09 22 A1 02 09 42 15
050: 00 25 01 75 01 95 01 81 02 95 03 81 01 09 51 75
060: 04 25 0F 95 01 81 02 05 01 26 FF 3F 75 10 55 0E
070: 65 11 09 30 35 00 46 79 08 81 02 26 7F 25 46 8A
080: 03 09 31 81 02 05 0D C0 09 22 A1 02 09 42 15 00
090: 25 01 75 01 95 01 81 02 95 03 81 01 09 51 75 04
0A0: 25 0F 95 01 81 02 05 01 26 FF 3F 75 10 55 0E 65
0B0: 11 09 30 35 00 46 79 08 81 02 26 7F 25 46 8A 03
0C0: 09 31 81 02 05 0D C0 09 22 A1 02 09 42 15 00 25
0D0: 01 75 01 95 01 81 02 95 03 81 01 09 51 75 04 25
0E0: 0F 95 01 81 02 05 01 26 FF 3F 75 10 55 0E 65 11
0F0: 09 30 35 00 46 79 08 81 02 26 7F 25 46 8A 03 09
100: 31 81 02 05 0D C0 09 22 A1 02 09 42 15 00 25 01
110: 75 01 95 01 81 02 95 03 81 01 09 51 75 04 25 0F
120: 95 01 81 02 05 01 26 FF 3F 75 10 55 0E 65 11 09
130: 30 35 00 46 79 08 81 02 26 7F 25 46 8A 03 09 31
140: 81 02 05 0D C0 09 22 A1 02 09 42 15 00 25 01 75
150: 01 95 01 81 02 95 03 81 01 09 51 75 04 25 0F 95
160: 01 81 02 05 01 26 FF 3F 75 10 55 0E 65 11 09 30
170: 35 00 46 79 08 81 02 26 7F 25 46 8A 03 09 31 81
180: 02 05 0D C0 09 22 A1 02 09 42 15 00 25 01 75 01
190: 95 01 81 02 95 03 81 01 09 51 75 04 25 0F 95 01
1A0: 81 02 05 01 26 FF 3F 75 10 55 0E 65 11 09 30 35
1B0: 00 46 79 08 81 02 26 7F 25 46 8A 03 09 31 81 02
1C0: 05 0D C0 09 22 A1 02 09 42 15 00 25 01 75 01 95
1D0: 01 81 02 95 03 81 01 09 51 75 04 25 0F 95 01 81
1E0: 02 05 01 26 FF 3F 75 10 55 0E 65 11 09 30 35 00
1F0: 46 79 08 81 02 26 7F 25 46 8A 03 09 31 81 02 05
200: 0D C0 09 22 A1 02 09 42 15 00 25 01 75 01 95 01
210: 81 02 95 03 81 01 09 51 75 04 25 0F 95 01 81 02
220: 05 01 26 FF 3F 75 10 55 0E 65 11 09 30 35 00 46
230: 79 08 81 02 26 7F 25 46 8A 03 09 31 81 02 05 0D
240: C0 09 22 A1 02 09 42 15 00 25 01 75 01 95 01 81
250: 02 95 03 81 01 09 51 75 04 25 0F 95 01 81 02 05
260: 01 26 FF 3F 75 10 55 0E 65 11 09 30 35 00 46 79
270: 08 81 02 26 7F 25 46 8A 03 09 31 81 02 05 0D C0
280: 27 FF FF 00 00 75 10 95 01 09 56 81 02 09 54 15
290: 00 25 7F 95 01 75 08 81 02 85 0A 09 55 95 01 25
2A0: 0F B1 02 C0 05 0D 09 0E A1 01 85 21 09 22 A1 00
2B0: 09 52 09 53 15 00 25 0A 75 08 95 02 B1 02 C0 C0
---- Parsed touch_info ----
 uses_report_id=1 report_id=13 report_length_bytes=54
 max_contacts=10 first_contact_bit_offset=0 contact_stride_bits=40
 contact_count bit_offset=416 bits=8
 tip_switch_bit_offset=0 in_range_bit_offset=0
 contact_id bit_offset=4 bits=4
 X bit_offset=8 bits=16 logical_max=16383
 Y bit_offset=24 bits=16 logical_max=9599
 input_mode=1 report_id=33 bringup: cc_max_id=10 cert_id=0
 pointer_fallback=0
---------------------------
Multi-touch CoTouch SET_FEATURE InputMode id=33 len=2
nnected on channel 4 (10 contacts, 16383x9599)
>
 
Posted: 10:02pm
04 Jun 2026
Copy link to clipboard
WhiteWizzard
Guru

GUI TEST TOUCH doesn't respond to touch.

Disconnecting touch-USB, and then reconnecting still shows:

Error : USB device limit reached (along with the HID data once again)
 
Posted: 07:35am
05 Jun 2026
Copy link to clipboard
matherp
Guru

WW
Last try. If this doesn't work then I think we have to assign that monitor as "non-supported". Every other touch monitor that has been tested AFAIK now works. You should see two devices connect. The multi-touch digitizer and a USB touchscreen. Make sure you test without a USB mouse also connected. It may be that only single touch via the USB touchscreen works but that would be a win.

PicoMite.zip
Edited 2026-06-05 17:36 by matherp
 
Posted: 08:42am
05 Jun 2026
Copy link to clipboard
WhiteWizzard
Guru

Thanks Peter. At work again, so it will be later this evening before I’m in front of my Pico….
 
Posted: 08:44am
05 Jun 2026
Copy link to clipboard
homa
Guru


Peter,

just a quick follow-up on multitouch. Will it be possible to retrieve the coordinates of the n-touch inputs? In an array or something similar?

Matthias
 
Posted: 09:30am
05 Jun 2026
Copy link to clipboard
matherp
Guru

You can retrieve the second touch coordinates with TOUCH(X2), TOUCH(Y2). I haven't done more than that at the moment as I can't see a specific need. The only use of more than that I'm aware of is palm touch removal but that requires complex heuristics way beyond PicoMite usage
Edited 2026-06-05 19:32 by matherp
 
Posted: 10:16am
05 Jun 2026
Copy link to clipboard
homa
Guru


My hope was to get the coordinates of the 10 points. My idea is to implement sliders like those on a mixing desk and use them as controllers for DMX and MIDI. In this case, it is important to be able to move more than two sliders at the same time. So, I certainly have plenty of ideas for what to do with them.
 
Posted: 11:08am
05 Jun 2026
Copy link to clipboard
phil99
Guru


If it doesn't prove to be practical to get the 10 pairs of coordinates perhaps the following workaround will be adequate.

Add a toggle button above (or below) each slider. All the sliders whose buttons have been pressed move as a group.
Move any one of the group and the rest of the group move with it.
 
Posted: 12:02pm
05 Jun 2026
Copy link to clipboard
homa
Guru


There’s a workaround for everything, but it’s not the same.

Here's a quick demo – it works really well with a two-finger tap!


Option CONSOLE SCREEN
Dim integer x,y,x2,y2,sy(12)
Print @(0,0) String$(32," ")
For i=1 To 10
 slider(i*128-28,400)
Next i
Do
 x=Touch(x)
 y=Touch(y)
 x2=Touch(x2)
 y2=Touch(y2)
 Print @(0,0) x,y,x2,y2;String$(32," ")
 If y<>-1 Then slider(x,y)
 If y2<>-1 Then slider(x2,y2)
Loop
'
Sub slider(xx,yy)
Local integer sz=-1
Select Case xx
 Case 0 To 120
   sz=0
 Case 128 To 248
   sz=1
 Case 256 To 376
   sz=2
 Case 384 To 504
   sz=3
 Case 512 To 632
   sz=4
 Case 640 To 760
   sz=5
 Case 768 To 888
   sz=6
 Case 896 To 1016
   sz=7
 Case 1024 To 1144
   sz=8
 Case 1152 To 1272
   sz=9
End Select
If sz>-1 Then
   Box sz*128,sy(sz),120,50,1,0,-1
   sy(sz)=yy
   Box sz*128,sy(sz),120,50,1,1,-1
End If
End Sub
 
Posted: 01:13pm
05 Jun 2026
Copy link to clipboard
matherp
Guru

In the next RC
Dim x(10),y(10)
Do
 If Touch(yn 0) Then
   For i=1 To Touch(yn 0)
     x(i)=Touch(xn i)
     y(i)=Touch(yn i)
   Next
   Pixel x(),y(),RGB(white)
 EndIf
Loop
 
Posted: 01:18pm
05 Jun 2026
Copy link to clipboard
homa
Guru


Danke!
 
   Page 19 of 27    
The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2026