Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 05:45 06 Jun 2026 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

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

     Page 20 of 20    
Author Message
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 11435
Posted: 01:47pm 05 Jun 2026
Copy link to clipboard 
Print this post

V6.03.00RC16
PicoMiteRP2040V6.03.00RC16.zip
PicoMiteRP2350V6.03.00RC16.zip

VGA/HDMI USB builds have additional touch panel support.

non-VGA/HDMI builds now support GT911 capacitive touch controllers as well as FT63x6 controllers. VGA and HDMI builds do not and will not support direct GT911 touch controllers. You can buy a very cheap I2C to USB module for any screens that use a GT911 and don't already have the touch over USB

All builds except PICOMITEMIN, PICOMITEVGA RP2040, and  WEBMITE RP2040 now support touch gestures. Obviously only multi-touch controllers support expand/contract/CCW/CW/double tap gestures but even resistive XPT2046 TFT screens now support swipe gestures.

All builds except PICOMITEMIN, PICOMITEVGA RP2040, and  WEBMITE RP2040 now support two new touch functions TOUCH(XN num) and TOUCH(YN num). Setting num to zero in either function will return the number of current simultaneous touches. Setting num to a non-zero value will return the coordinates of that touch.
e.g.
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


I'm not aware of any previously reported bugs in this release

Coming soon:
HMDIBTH firmware. This combines HDMIUSB and bluetooth LE host functionality allowing for small self contained computers to be built with wireless keyboards and trackpads
 
homa

Guru

Joined: 05/11/2021
Location: Germany
Posts: 623
Posted: 02:13pm 05 Jun 2026
Copy link to clipboard 
Print this post

Wow – this genuine n-Multitouch is just absolutely brilliant!
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 11435
Posted: 05:12pm 05 Jun 2026
Copy link to clipboard 
Print this post

Minor update to WebMite RP2350 to support RSA encryption - see Wolfram Alpha thread for more details/example. No version change

WebMiteRP2350V6.03.00RC16.zip
 
WhiteWizzard
Guru

Joined: 05/04/2013
Location: United Kingdom
Posts: 2983
Posted: 07:14pm 05 Jun 2026
Copy link to clipboard 
Print this post

  matherp said  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


We have a response to touch!!

When Pico powered up and USB-touch attached I get the following:

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 GET_FEATURE id=33 len=2 data=A1,1
touchTouch SET_FEATURE InputMode id=33 len=2
Connected on channel 4 (10 contacts, 16383x9599)
> ---- Touch HID report descriptor (80 bytes) ----
000: 05 01 09 02 A1 01 85 07 09 01 A1 00 05 09 19 01
010: 29 03 15 00 25 01 75 01 95 03 81 02 75 01 95 05
020: 81 03 05 01 09 30 75 10 95 01 55 0E 65 11 35 00
030: 46 79 08 26 FF 3F 81 02 09 31 46 8A 03 26 7F 25
040: 81 02 09 38 15 81 25 7F 75 08 95 01 81 06 C0 C0
---- Parsed touch_info ----
 uses_report_id=1 report_id=0 report_length_bytes=0
 max_contacts=0 first_contact_bit_offset=0 contact_stride_bits=0
 contact_count bit_offset=0 bits=0
 tip_switch_bit_offset=0 in_range_bit_offset=0
 contact_id bit_offset=0 bits=0
 X bit_offset=0 bits=0 logical_max=0
 Y bit_offset=0 bits=0 logical_max=0
 input_mode=0 bringup: cc_max_id=0 cert_id=0
 pointer_fallback=1 report_id=7 button@0 X@8/16b max=16383 Y@24/16b max=9599
---------------------------
USB Touchscreen Connected on channel 3 (16383x9599)
> T+0ms #1 [7] 07 00 00 00 00 00 00 -> count=0 active=0

NOTE that the last line appears after a delay of about a second - then sits there.

When I touch the screen (1 finger) and move it around, I see:


T+56545ms #2 [7] 07 01 D2 38 44 1B 00 -> count=1 tip=1 x=1136 y=523 active=1
T+56732ms #7 [7] 07 01 FF 38 13 1B 00 -> count=1 tip=1 x=1139 y=519 active=1
T+56884ms #20 [7] 07 01 BF 3A 14 16 00 -> count=1 tip=1 x=1174 y=423 active=1
T+57037ms #33 [7] 07 01 6C 3A 5D 11 00 -> count=1 tip=1 x=1168 y=333 active=1
T+57191ms #46 [7] 07 01 5F 36 C0 0F 00 -> count=1 tip=1 x=1087 y=302 active=1
T+57346ms #58 [7] 07 01 D7 2F 57 11 00 -> count=1 tip=1 x=956 y=332 active=1
T+57501ms #71 [7] 07 01 3D 2B 6F 16 00 -> count=1 tip=1 x=864 y=430 active=1
T+57656ms #84 [7] 07 01 56 25 93 1B 00 -> count=1 tip=1 x=746 y=529 active=1
T+57810ms #96 [7] 07 01 EF 1C 52 19 00 -> count=1 tip=1 x=578 y=486 active=1
T+57965ms #108 [7] 07 01 56 1C B8 11 00 -> count=1 tip=1 x=566 y=340 active=1
T+58120ms #121 [7] 07 01 10 25 52 10 00 -> count=1 tip=1 x=741 y=313 active=1
T+58275ms #133 [7] 07 01 5E 2F 00 12 00 -> count=1 tip=1 x=947 y=345 active=1
T+58429ms #145 [7] 07 01 B8 37 4A 0D 00 -> count=1 tip=1 x=1114 y=255 active=1
T+58584ms #158 [7] 07 01 DE 34 3E 08 00 -> count=1 tip=1 x=1057 y=158 active=1
T+58740ms #171 [7] 07 01 E4 2A A0 0C 00 -> count=1 tip=1 x=857 y=242 active=1
T+58894ms #183 [7] 07 01 7C 21 CB 10 00 -> count=1 tip=1 x=669 y=322 active=1
T+59048ms #196 [7] 07 01 AF 1B D4 0E 00 -> count=1 tip=1 x=553 y=284 active=1
T+59203ms #209 [7] 07 01 70 20 8B 09 00 -> count=1 tip=1 x=648 y=183 active=1
T+59358ms #221 [7] 07 01 6A 2B F6 0B 00 -> count=1 tip=1 x=868 y=229 active=1
T+59513ms #233 [7] 07 01 91 2F 7A 12 00 -> count=1 tip=1 x=951 y=354 active=1
T+59667ms #246 [7] 07 01 B2 35 D6 16 00 -> count=1 tip=1 x=1073 y=438 active=1



And when I add a second touch/finger it bounces between a count of 1 and 0:

T+250974ms #1154 [7] 07 01 35 12 38 16 00 -> count=1 tip=1 x=364 y=426 active=1
T+251256ms #1157 [7] 07 00 35 12 38 16 00 -> count=0 active=0
T+251421ms #1160 [7] 07 01 35 12 38 16 00 -> count=1 tip=1 x=364 y=426 active=1
T+251573ms #1166 [7] 07 01 35 12 3E 16 00 -> count=1 tip=1 x=364 y=427 active=1
T+252164ms #1172 [7] 07 01 2E 12 50 16 00 -> count=1 tip=1 x=363 y=428 active=1
T+252698ms #1173 [7] 07 01 2E 12 56 16 00 -> count=1 tip=1 x=363 y=428 active=1
T+252854ms #1178 [7] 07 00 00 00 00 00 00 -> count=0 active=0
T+253014ms #1190 [7] 07 01 7F 36 4D 0F 00 -> count=1 tip=1 x=1089 y=293 active=1
T+253186ms #1197 [7] 07 01 78 36 59 0F 00 -> count=1 tip=1 x=1089 y=294 active=1
T+253370ms #1203 [7] 07 01 21 12 87 16 00 -> count=1 tip=1 x=362 y=432 active=1
T+253567ms #1210 [7] 07 00 21 12 93 16 00 -> count=0 active=0
T+253726ms #1215 [7] 07 01 72 36 84 0F 00 -> count=1 tip=1 x=1088 y=297 active=1
T+253898ms #1221 [7] 07 01 72 36 8A 0F 00 -> count=1 tip=1 x=1088 y=298 active=1
T+254051ms #1234 [7] 07 01 B4 11 B7 16 00 -> count=1 tip=1 x=354 y=436 active=1



GUI TEST TOUCH works for single finger, and with 2 fingers will respond to the 'last' finger (although difficult to see for certain as the screen fills up with data making it hard to see the touch-pixels.).


UNPLUGGING the usb-touch results in:

Multi-touch Disconnected
> USB Touchscreen Disconnected

And reconnecting USB touch seems to now re-initialise correctly (i.e. I do NOT see the previous 'device limit reached' error).

I will now try the FW you posted at the top of this page in the hope that will work too (but without all the debug messages!!)....
 
     Page 20 of 20    
Print this page


To reply to this topic, you need to log in.

The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2026