|
Forum Index : Microcontroller and PC projects : MMBasic V6.03.00 release candidates
| Author | Message | ||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 11435 |
Lyle: Please run this version with your screen. PicoMite.zip Plug the panel in and touch it a few times, then copy the console. Expected: ---- Touch HID report descriptor (NNN bytes) ---- 000: 05 0D 09 04 A1 01 ... ... ---- Parsed touch_info ---- uses_report_id=1 report_id=1 report_length_bytes=... max_contacts=10 first_contact_bit_offset=... contact_stride_bits=... ... Touch report [N] 01 ... <- if these lines appear, reports ARE arriving Post the result and I can work on it although I'll be travelling until Tuesday. |
||||
| mozzie Guru Joined: 15/06/2020 Location: AustraliaPosts: 370 |
G'day Peter, Thanks for the test software, loaded and run with the results in the ZIP attached. Also noted the screen will only return 16 packets and then stop, this can be 1 long or up to 3 short presses. When you have time, can I ask you to consider enabling the SPI resistive touch system now we have the GUI controls available in the VGA/HDMI builds if this is possible? there are some nice HDMI screens with resistive XPT2046 touch screens available. This option is not as good as the SD1963 displays but uses far less pins, important in some applications. Enjoy your travels. Regards, Lyle. WS_Touch_Info.zip Edit: After some work with a scalpel, it is a GT911 + WSTPC03 (WaveShare Touch Panel Control 03?) Edited 2026-05-31 21:25 by mozzie |
||||
| Amnesie Guru Joined: 30/06/2020 Location: GermanyPosts: 757 |
Hi Peter, there are some problems with the ILI9341 display when using "Text" command. On some colours it is less visable (like for example blue background), but with "lilac" and some others it is really annoying. I have tested a few ILI9341 displays, also different sizes; all the same problems. ![]() ![]() ![]() |
||||
| Mixtel90 Guru Joined: 05/10/2019 Location: United KingdomPosts: 8877 |
I don't think it's anything to do with the signal from the Pico as the text appears to be clear enough from your pictures, without tearing. The ILI9341 driver has been in use for quite some time now so I doubt if it's related to that. I suspect power supply problems. How is the backlight being powered? That can be quite some load. You might get something like this from a GND connection to the display that's got too high an impedance from the incoming GND. I don't know your hardware, but try 10uF, 1uF and 100nF in parallel directly on the supply pins of the display, and possibly a wire link between the display GND and the closest GND pin to the incoming supply to reduce the impedance. Or, of course, you might be being supplied with low-spec displays. :( Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
| Amnesie Guru Joined: 30/06/2020 Location: GermanyPosts: 757 |
No, none of that leads to this problem. I tested 6 different displays. The backlight has nothing to do with this behavior, since it is an LED (!) - the problem is "pixel related". There are decoupling capacitors and in fact, I also tested it with my lab bench power supply (Siglent SPD1168x) with a resolution of 1mA. No drop, no peaks, no nothing. The problem is only with Text and follows a pattern. I am 100% sure you can reproduce this, since I tested this on 3 different PCBs of mine and 6 different ILI9341 and two firmware versions (PicoMite firmware V6.02.01, too). As said, the visablility depends on the background colour. What also speaks against a power supply issue: The pattern is 100% the same and reproducable + related to the text pattern. It does not change in any way, it is static. I don't know how to describe it in english; it is like a rock solid shadow of the Y-axis along the text. It is some kind of artifact. As said, the reason you don't see this "tearing" on the console text oder other text in the editor, is because the background on the other text you see is 1. too small (this artifacts go along with font size!!) 2. black background Greetings Daniel Edited 2026-06-01 02:30 by Amnesie |
||||
| ville56 Guru Joined: 08/06/2022 Location: AustriaPosts: 508 |
ILI9341 with IPS panel, all is fine here ... IMHO must be a problem within the panel itself. Looks like ringing on the internal connections or an internal wiring problem of ground or supply lines (too thin, bad bonding, etc). Could be bad luck with "Cheapo Chinese"?? Mine are the same "brand" but seem to work on the display side. OTOH they hat SD card sockets wired completely wrong, rendering them useless. Could fix it with spare sockets, but have no idea how to fix your issue. That could be a different class ... NB: if you are not of the fainthearted variety, try to resolder the flexible PCB from the panel to module PCB. Maybe there is a contact problem. But this means to seperate the panel from the PCB (just cut the double sided tape) to have access to the connections. You can the heat the upper side of the flexible PBC carefully with the soldering iron, going from side to side. This should remelt the solder beneath, resoldering the connections without the danger of separtion or shifting. I've even alread changed a TFT panel with an IPS panel, just desoldered the old one and resoldered the new one. So not very challenging. Just one point regarding the driver: The driver in the pico is only involved at the moment you write the text to the display. The refresh of the display is internal to the panel. So you can try by overwriting a portion of the blue screen with e.g. box 100,100, 200,200, 1,rgb(blue),rgb(blue) this should remove the pattern if the driver would be mixing text contures with fill colors. ![]() Edited 2026-06-01 03:25 by ville56 73 de OE1HGA, Gerald |
||||
| Mixtel90 Guru Joined: 05/10/2019 Location: United KingdomPosts: 8877 |
It's something I can't really test as I don't have any IPS panels al all. Mind you, the old ILI9341 display I do have has a SD card socket that works. :) Didn't Peter say that all these displays are actually portrait mode natively? Could that be related, I wonder? Has the SPI speed been increased? Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
| ville56 Guru Joined: 08/06/2022 Location: AustriaPosts: 508 |
This is not related to SPI, IMHO there is no logical explanation for that. Yes, the old ones were ok, but they where old ones. I always need new stuff to keep my addictions satisfied and have new challanges. Life would be soooo boring without that.73 de OE1HGA, Gerald |
||||
| Mixtel90 Guru Joined: 05/10/2019 Location: United KingdomPosts: 8877 |
I suspected not. AFAIK the pixel data is merely transferred into the controller's memory. After that the SPI is finished with and the controller handles everything else. I can't keep up with "new and shiny" at the moment. I have woodwork to do. lol Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
| ville56 Guru Joined: 08/06/2022 Location: AustriaPosts: 508 |
This is what I tried to say with "This is not related to SPI ..." 73 de OE1HGA, Gerald |
||||
| Mixtel90 Guru Joined: 05/10/2019 Location: United KingdomPosts: 8877 |
What triggered my thought is that the display is always a graphic one, it has no native text mode. Any update to the display consists of redrawing every pixel. Now, I'm not sure if MMBasic does this only on a data change or each fixed period, like a VGA frame scan. If that's the case then the SPI link may be running almost continually, in which case the SPI speed is relevant when compared to the update speed of a buffer. It *could* be running fast enough for slow RAM on the display to be causing a problem. Only an idea because I'm grasping at straws on this one. :) Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
| ville56 Guru Joined: 08/06/2022 Location: AustriaPosts: 508 |
SPI is only active on update with the ILI9341 at least, did check that. BTW, haven't seen any LCD panel yet for the pico that requires continuous update. They all have controllers for that. What I also suspect is the fact that there are usually some supporting components on the module required by the LCD panel like caps and resistors (10 caps for ILI9341 ex the datasheet). If there is an error e.g. with the component value onserted, it may cause this kind of distortion. Can be caused by some errors in manufacturing and the decision was to sell it anyway because it is not immediately visible. I've been working for over 20 years very close to electronics manufacturing, so I know some of the errors that can be made and the cost of repairing them. 73 de OE1HGA, Gerald |
||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 11435 |
Sorry, but this isn't a software issue. The ili9341 code has been unchanged for at least 10 years and writing text is no different from writing anything else. Define an area to write into and then send some pixel data. The software cannot influence a pixel outside of the area it defines to write into. |
||||
| phil99 Guru Joined: 11/02/2018 Location: AustraliaPosts: 3268 |
A OneWire question. When reading multiple bytes a separate variable is needed for each. Array elements are not accepted as variables. > dim integer m(7) > OneWire READ 10,2,8,m(0),m(1),m(2),m(3),m(4),m(5),m(6),m(7) Error : Invalid variable > OneWire READ 10,2,8,m() Error : Argument count > > > m(0) = &HCC : m(1) = &H44 > OneWire WRITE PinNbr, 8, 2, m(0),m(1) > It appears work for writing so is it possible to add this feature for reading? Being able to just give the array with empty brackets, as with I2C, would be a luxury. Very nice but not vital. Edit. Also reading into a string like I2C would simplify some things further. Eg. Value = Str2bin(int16,Chr$(T1)+Chr$(T2)) ' could become Value = Str2bin(int16,T$) Once again nice but not vital. Edited 2026-06-01 17:10 by phil99 Footnote added 2026-06-02 11:03 by phil99 A better example, getting the ROM code of a DS18x20 temp. sensor. > dim integer rom1 > RC$ = chr$(q)+chr$(w)+chr$(e)+chr$(r)+chr$(t)+chr$(y)+chr$(u)+chr$(i) : ROM1 = str2bin(Uint64,RC$,big) :? ROM1 2909716863767585976 > > OneWire WRITE 9,1,1,&h33 :OneWire READ 9,2,8,q,w,e,r,t,y,u,i : ? ,q,w,e,r,t,y,u,i 40 97 100 18 61 212 164 184 > RC$ = chr$(q)+chr$(w)+chr$(e)+chr$(r)+chr$(t)+chr$(y)+chr$(u)+chr$(i) : ROM1 = str2bin(Uint64,RC$,big) :? ROM1 2909716863767585976 |
||||
| terekgabor Regular Member Joined: 02/01/2026 Location: HungaryPosts: 90 |
Hello Peter, I have found an other error with long lines in editor with Picocalc. (Webmite 2350 version RC14) When I am in a long line and go right with the cursor the long line is scrolling good. But when I select an area here with F4 button, then press F4 or F5 to copy or cut it something happend with the other lines as you can see on pictures. From that point I have to press F1 save or ESC exit then re-open the editor. G@bor ![]() ![]() ![]() |
||||
| ville56 Guru Joined: 08/06/2022 Location: AustriaPosts: 508 |
Gabor, tried it on HDMI USB version, same effect. You can possibly use Pos1 or End key twice to get out of the situation, works at least for me (working over a serial console). But it is definitely an issue. Gerald 73 de OE1HGA, Gerald |
||||
| homa Guru Joined: 05/11/2021 Location: GermanyPosts: 623 |
> option list PicoMiteHDMI MMBasic USB RP2350A Edition V6.03.00RC14 OPTION SERIAL CONSOLE COM2,GP8,GP9 OPTION SYSTEM I2C GP20,GP21 OPTION FLASH SIZE 4194304 OPTION COLOURCODE ON OPTION KEYBOARD GR OPTION RESOLUTION 1280x720 @ 372000KHz OPTION DISPLAY 30, 80 OPTION SDCARD GP22, GP26, GP27, GP28 OPTION AUDIO GP10,GP11', ON PWM CHANNEL 5 OPTION RTC AUTO ENABLE OPTION MODBUFF ENABLE 192 OPTION PLATFORM HDMIUSB OPTION DEFAULT FONT 3, 1 > I got this monitor at a very good price. MageDok EU 9 Zoll IPS 1280x720 Touchscreen Monitor T090A HDMI Touch Monitor https://store.magedok.com/products/9-inch-raspberry-pi-touch-monitor-with-hdmi-input-t090a Unfortunately, I'm having no luck with RC14 and this touchscreen (On a Windows PC, everything works fine!). touch(x) and touch(y) only return -1,-1! But during initialization, they also return extremely high values?!?: > Multi-touch screen Connected on channel 4 (10 contacts, 16384x16384) > I’ve also run into a problem with my Microsoft mouse/keyboard USB dongle. It has always worked fine until now. Now I’m getting the following messages: PicoMiteHDMI MMBasic USB RP2350A Edition V6.03.00RC14 Copyright 2011-2026 Geoff Graham Copyright 2016-2026 Peter Mather > GR USB Keyboard Connected on channel 1 > USB Mouse Connected on channel 2 > Unknown Device Connected on channel 3 (pid=&H7B2, vid=&H45E) > 0x5 0xC 0x9 0x1 0xA1 0x1 0x85 0x20 0x6 0x0 0xFF 0x15 0x0 0x26 0xFF 0x0 0x75 0x8 0x95 0x12 0xA 0xA 0xFA 0xB1 0x2 0x85 0x21 0x6 0x0 0xFF 0x15 0x0 0x25 0x1 0x75 0x1 0x95 0x10 0x1A 0x10 0xFA 0x2A 0x1F 0xFA 0x81 0x2 0x85 0x28 0x6 0x0 0xFF 0x1A 0x10 0xFA 0x2A 0x1F 0xFA 0xB1 0x2 0x85 0x22 0x6 0x0 0xFF 0x15 0x0 0x26 0xFF 0x0 0x75 0x8 0x95 0x1A 0xA 0xA 0xFA 0xB1 0x2 0x85 0x23 0x6 0x0 0xFF 0xA 0xA 0xFA 0xB1 0x2 0x85 0x24 0x6 0x0 0xFF 0x95 0x1F 0xA 0xA 0xFA 0xB1 0x2 0x85 0x25 0x6 0x0 0xFF 0xA 0xA 0xFA 0xB1 0x2 0x85 0x26 0x6 0x0 0xFF 0xA 0xA 0xFA 0xB1 0x2 0x85 0x27 0x6 0x0 0xFF 0xA 0xA 0xFA 0x81 0x2 0x85 0x14 0x6 0x0 0xFF 0x15 0x0 0x25 0x3 0x75 0x2 0x95 0x1 0xA 0x1 0xFE 0x81 0x2 0x75 0x6 0x81 0x1 0x85 0x4 0x6 0x0 0xFF 0x15 0x0 0x25 0x3 0x75 0x2 0x95 0x1 0xA 0x1 0xFE 0x81 0x2 0x75 0x6 0x81 0x1 0xC0 0x5 0xC 0x9 0x1 0xA1 0x1 0x85 0x7 0x5 0xC 0x19 0x0 0x2A 0xFF 0x3 0x95 0x1 0x75 0x10 0x15 0x0 0x26 0xFF 0x3 0x81 0x0 0x5 0x7 0x19 0x0 0x29 0xFF 0x75 0x8 0x26 0xFF 0x0 0x81 0x0 0x81 0x1 0x6 0x0 0xFF 0xA 0x3 0xFE 0xA 0x4 0xFE 0x75 0x1 0x95 0x2 0x25 0x1 0x81 0x2 0xA 0x5 0xFF 0x95 0x1 0x75 0x5 0x25 0x1F 0x81 0x2 0x75 0x1 0x81 0x1 0x1A 0x1 0xFD 0x2A 0xFF 0xFD 0x15 0x1 0x26 0xFF 0x0 0x75 0x8 0x81 0x0 0xA 0x2 0xFF 0x26 0xFF 0x0 0x15 0x0 0x81 0x2 0xC0 0x6 0xBC 0xFF 0x9 0x88 0xA1 0x1 0x85 0x8 0x19 0x1 0x29 0xFF 0x15 0x1 0x26 0xFF 0x0 0x95 0x1 0x75 0x8 0x81 0x0 0xC0 0x5 0x1 0x9 0x80 0xA1 0x1 0x85 0x3 0x19 0x0 0x29 0xFF 0x15 0x0 0x26 0xFF 0x0 0x81 0x0 0xC0 0x0 The firmware development is going great and gives me hope. I'm really looking forward to MultiTouch – thanks, Peter! Should I test the special firmware, like Lyle did? And let you know the results? Matthias |
||||
| toml_12953 Guru Joined: 13/02/2015 Location: United StatesPosts: 647 |
Is there a way to keep Caps Lock on? It seems to turn itself off when I type a quote mark and at some other times. I'd rather control it myself. |
||||
| homa Guru Joined: 05/11/2021 Location: GermanyPosts: 623 |
I was too curious :-) Here's the result: > > ---- Touch HID report descriptor (869 bytes) ---- 000: 05 0D 09 04 A1 01 85 04 09 22 A1 02 05 0D 95 01 010: 75 06 09 51 15 00 25 3F 81 02 09 42 25 01 75 01 020: 95 01 81 02 75 01 95 01 81 03 05 01 75 10 55 0E 030: 65 11 09 30 26 00 40 35 00 46 75 08 81 42 09 31 040: 26 00 40 46 4B 05 81 42 C0 05 0D 09 22 A1 02 05 050: 0D 95 01 75 06 09 51 15 00 25 3F 81 02 09 42 25 060: 01 75 01 95 01 81 02 75 01 95 01 81 03 05 01 75 070: 10 55 0E 65 11 09 30 26 00 40 35 00 46 75 08 81 080: 42 09 31 26 00 40 46 4B 05 81 42 C0 05 0D 09 22 090: A1 02 05 0D 95 01 75 06 09 51 15 00 25 3F 81 02 0A0: 09 42 25 01 75 01 95 01 81 02 75 01 95 01 81 03 0B0: 05 01 75 10 55 0E 65 11 09 30 26 00 40 35 00 46 0C0: 75 08 81 42 09 31 26 00 40 46 4B 05 81 42 C0 05 0D0: 0D 09 22 A1 02 05 0D 95 01 75 06 09 51 15 00 25 0E0: 3F 81 02 09 42 25 01 75 01 95 01 81 02 75 01 95 0F0: 01 81 03 05 01 75 10 55 0E 65 11 09 30 26 00 40 100: 35 00 46 75 08 81 42 09 31 26 00 40 46 4B 05 81 110: 42 C0 05 0D 09 22 A1 02 05 0D 95 01 75 06 09 51 120: 15 00 25 3F 81 02 09 42 25 01 75 01 95 01 81 02 130: 75 01 95 01 81 03 05 01 75 10 55 0E 65 11 09 30 140: 26 00 40 35 00 46 75 08 81 42 09 31 26 00 40 46 150: 4B 05 81 42 C0 05 0D 09 22 A1 02 05 0D 95 01 75 160: 06 09 51 15 00 25 3F 81 02 09 42 25 01 75 01 95 170: 01 81 02 75 01 95 01 81 03 05 01 75 10 55 0E 65 180: 11 09 30 26 00 40 35 00 46 75 08 81 42 09 31 26 190: 00 40 46 4B 05 81 42 C0 05 0D 09 22 A1 02 05 0D 1A0: 95 01 75 06 09 51 15 00 25 3F 81 02 09 42 25 01 1B0: 75 01 95 01 81 02 75 01 95 01 81 03 05 01 75 10 1C0: 55 0E 65 11 09 30 26 00 40 35 00 46 75 08 81 42 1D0: 09 31 26 00 40 46 4B 05 81 42 C0 05 0D 09 22 A1 1E0: 02 05 0D 95 01 75 06 09 51 15 00 25 3F 81 02 09 1F0: 42 25 01 75 01 95 01 81 02 75 01 95 01 81 03 05 200: 01 75 10 55 0E 65 11 09 30 26 00 40 35 00 46 75 210: 08 81 42 09 31 26 00 40 46 4B 05 81 42 C0 05 0D 220: 09 22 A1 02 05 0D 95 01 75 06 09 51 15 00 25 3F 230: 81 02 09 42 25 01 75 01 95 01 81 02 75 01 95 01 240: 81 03 05 01 75 10 55 0E 65 11 09 30 26 00 40 35 250: 00 46 75 08 81 42 09 31 26 00 40 46 4B 05 81 42 260: C0 05 0D 09 22 A1 02 05 0D 95 01 75 06 09 51 15 270: 00 25 3F 81 02 09 42 25 01 75 01 95 01 81 02 75 280: 01 95 01 81 03 05 01 75 10 55 0E 65 11 09 30 26 290: 00 40 35 00 46 75 08 81 42 09 31 26 00 40 46 4B 2A0: 05 81 42 C0 75 08 95 0A 81 03 05 0D 09 54 25 7F 2B0: 95 01 75 08 81 02 75 08 95 02 81 03 85 02 09 55 2C0: 25 0A 75 08 95 01 B1 02 06 00 FF 09 C5 85 06 15 2D0: 00 26 FF 00 75 08 96 00 01 B1 02 C0 06 00 FF 09 2E0: 01 A1 01 09 01 85 03 15 00 26 FF 00 75 08 95 3F 2F0: 81 02 06 00 FF 09 01 15 00 26 FF 00 75 08 95 3F 300: 91 02 85 07 26 06 08 96 06 01 09 01 B1 02 85 08 310: 96 06 04 09 01 B1 02 85 09 96 06 08 09 01 B1 02 320: C0 05 01 09 02 A1 01 85 05 09 01 A1 00 05 09 19 330: 01 29 05 15 00 25 01 95 05 75 01 81 02 95 01 75 340: 03 81 01 05 01 75 10 95 01 55 0E 65 11 09 30 26 350: 00 40 35 00 46 75 08 81 42 09 31 26 00 40 46 4B 360: 05 81 42 C0 C0 ---- Parsed touch_info ---- uses_report_id=1 report_id=4 report_length_bytes=62 max_contacts=10 first_contact_bit_offset=0 contact_stride_bits=40 contact_count bit_offset=480 bits=8 tip_switch_bit_offset=6 in_range_bit_offset=0 contact_id bit_offset=0 bits=6 X bit_offset=8 bits=16 logical_max=16384 Y bit_offset=24 bits=16 logical_max=16384 --------------------------- Multi-touch Connected on channel 4 (10 contacts, 16384x16384) > Touch report [6] 05 01 20 36 8E 12 Touch report [6] 05 01 20 36 8E 12 Touch report [6] 05 01 20 36 8E 12 Touch report [6] 05 01 20 36 8E 12 Touch report [6] 05 01 20 36 8E 12 Touch report [6] 05 01 20 36 8E 12 Touch report [6] 05 01 20 36 8E 12 Touch report [6] 05 01 19 36 81 12 Touch report [6] 05 01 12 36 6E 12 Touch report [6] 05 01 07 36 54 12 Touch report [6] 05 01 F9 35 3A 12 Touch report [6] 05 01 E6 35 1A 12 Touch report [6] 05 01 D1 35 FA 11 Touch report [6] 05 01 9F 35 CC 11 Touch report [12] 05 01 77 35 C5 11 77 35 05 01 77 35 Touch report [6] C5 11 05 01 45 35 |
||||
| matherp Guru Joined: 11/12/2012 Location: United KingdomPosts: 11435 |
Lyle please try the attached and report results PicoMite.zip Homa Also please try the attached Note: on the editor bug, I have investigated and fixed but to get out of the problem all you need to do is pgdn pgup and it is resolved. The update will be in the next RC when I get to the bottom of the USB touch screens Edited 2026-06-02 20:50 by matherp |
||||
| The Back Shed's forum code is written, and hosted, in Australia. | © JAQ Software 2026 |