![]() |
Forum Index : Microcontroller and PC projects : Windows PC master and PicoMites as slaves
Page 1 of 3 ![]() ![]() |
|||||
Author | Message | ||||
PhenixRising Guru ![]() Joined: 07/11/2023 Location: United KingdomPosts: 1511 |
I realize that not many are messing with master/slave but I need a sounding board so you guys are it ![]() Requirements: -Powerful master controller with large touchscreen monitor -PicoMite slaves (up to 12) -Ability to edit PicoMite programs from master controller So instead of my FD RS422 multidrop, I am using a USB hub and linking to the USB of the PicoMites. Data received is via INKEY$ and transmitted via PRINT. So I still have two UARTS free on the PicoMites. Although MMEdit has a maximum BAUD of 921,600, the PicoMites can handle much faster rates. I am currently talking to the PicoMites at 4M BAUD. I only just learned that USB has built-in CRC. I don't need long cables (1 metre is fine) but if I did, I see that there are USB-to-RS422 converters available that are good for 3M BAUD. Only testing for now but I'm liking this approach ![]() ![]() |
||||
Mixtel90![]() Guru ![]() Joined: 05/10/2019 Location: United KingdomPosts: 8051 |
I'm not sure if it affects anything, but the USB port on the Pico is only USB 1.1. That will pas through higher version hubs etc. of course. USB1.1 is either on or off, which limits its speed a lot when all the extra baggage is taken into consideration. The main thing is that USB is a special universal serial system, so it comes with a lot more baggage than, say, multi-drop COM. The latter can transfer a lot more data than USB 1.1 at the same baud rate in theory. Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
PhenixRising Guru ![]() Joined: 07/11/2023 Location: United KingdomPosts: 1511 |
A nice "pro" though is that I don't need to poll the nodes because I have buffers for each port in the Windows app. The PicoMites can simply PRINT. Not much data flying around, actually. Oh heck, I'm having the occasional lockup. Need to investigate ![]() |
||||
Volhout Guru ![]() Joined: 05/03/2018 Location: NetherlandsPosts: 5214 |
Hi Phenix, The Test Development Department in our company designs automated test equipment for mass production manufacturing. The test machines run on Microsofts famous operating system. And they have to (sometimes no alternative) use USB connected devices. Their experience is that - Ethernet is their preferred fast communication medium. - RS485/RS422 never fails - RS232 is the alternative - USB is least reliable, especially in systems that do power, exhibit power interrupts, in general an electrical noisy environment. - I2C should be avoided in the test systems they design (to long cable runs, noise sensitive, bus hangups). - They have used IEEE488/GPIB but now a days that only is available through a USB-IEEE converter. So you inherit the USB weaknesses. Looking at the type of machines you are designing, I suggest to avoid the USB weakness. And if you have to use USB, mount the USB devices right next to the PC, and provide decent earthing, so USB cable shield cannot pick up magnetic/electric fields. Volhout (Above is their experience, and their testers are in factories of our customers in Sweden, Finland, Romania, Maleisia, China, Thailand, Netherlands). I have been consulted in solving field failures, and support their judgement). Edited 2025-09-01 05:24 by Volhout PicomiteVGA PETSCII ROBOTS |
||||
Mixtel90![]() Guru ![]() Joined: 05/10/2019 Location: United KingdomPosts: 8051 |
I can see why he likes USB. All the PicoMites are connected via their console connections so remote control of them is easy. It's hardly the most rugged of connections though - the console isn't meant to be used in that way. :) Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
PhenixRising Guru ![]() Joined: 07/11/2023 Location: United KingdomPosts: 1511 |
Thanks guys. Not feeling great about USB. I dropped the cpu-speed from 378 to 315 and great so far. But I just don't have a great feeling about USB. RS422 has been trouble-free for years ![]() |
||||
PhenixRising Guru ![]() Joined: 07/11/2023 Location: United KingdomPosts: 1511 |
Findings thus far....nothing conclusive RP2350 DIL: have been hammering them @4M Baud @cpuspeed 315MHz...rock solid thus far @cpuspeed 378MHz, they can run for hours or they can run for a few minutes before locking up. |
||||
Mixtel90![]() Guru ![]() Joined: 05/10/2019 Location: United KingdomPosts: 8051 |
I think such drastic overclocking should be avoided if you want reliability. You may not like the idea, but for best reliability you shouldn't exceed the chip specifications at all. :) If accelerated running and aging tests have been carried out those are the ratings that will have been used. Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
PhenixRising Guru ![]() Joined: 07/11/2023 Location: United KingdomPosts: 1511 |
I don't know how it happened but a RP2350 DIL had found its way between the pages of a book. It had been there for a long time and I only found it when I needed a USB cable. It was very warm and I expected at least the program to have stopped. It was fine and I immediately interrogated the internal temp: 51°, quite impressive. My inline power monitor indicates that somewhere around 300/315MHz, the current doubles from ~50mA to ~100mA. In terms of interfacing, non of my pins sink/source more than a few µA. |
||||
Volhout Guru ![]() Joined: 05/03/2018 Location: NetherlandsPosts: 5214 |
Check with a voltmeter the core voltage (pre-adjusted at 1.3V). When the core voltage is higher, you may be generating more heat than needed. The pages of the book (weight) may have pressed against the potmeter, causing an intermittent contact, raising the core voltage to 1.8V. Volhout PicomiteVGA PETSCII ROBOTS |
||||
PhenixRising Guru ![]() Joined: 07/11/2023 Location: United KingdomPosts: 1511 |
Hi Harm, the board only got warm (hot) because it was between the pages of a book. Normally the board runs cool. |
||||
PhenixRising Guru ![]() Joined: 07/11/2023 Location: United KingdomPosts: 1511 |
I have MMB4W talking to PicoMites via USB Thus far, my RP2350 DILs all lock-up; sometimes within seconds but other times can be hours. My clone RP2040 seems to run and run without locking-up. Need to let it run overnight to be sure. |
||||
Mixtel90![]() Guru ![]() Joined: 05/10/2019 Location: United KingdomPosts: 8051 |
Seriously, I'd only consider running a remote control system using PicoMites at the specified speed (or not much above it) initially, especially if using USB. Just because they will (apparently) overclock it doesn't mean that every part of the chip will be stable all the time and we already know that there have been problems with USB in the past. The core voltage becomes far less critical if you aren't overclocking. Once you have it all running reliably *then* you can start to overclock a bit. Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
PhenixRising Guru ![]() Joined: 07/11/2023 Location: United KingdomPosts: 1511 |
Oh I'm with you. I don't need the overclock speed and I like minimal stress on the entire system. But I like to stress test as much as possible. I have a similar concern with MMB4W in that; CPU usage is high, even when using PAUSE. Ideally, I want to be 100% MMBasic but in SmallBASIC, when I use delay(10), for a 10ms pause for user input, for example, the CPU usage barely budges from 0% and the fan never comes on. ![]() |
||||
PhenixRising Guru ![]() Joined: 07/11/2023 Location: United KingdomPosts: 1511 |
RP2040 has continued to run without a problem. I need to investigate further with the RP2350 and firmware revisions, etc. The Windows app simply increments a variable and sends it via USB to the PicoMite which then prepends "Pico: " to the value and sends it back. dim as string chars do chars=inkey$ if chars<>"" then print "Pico: "+ chars; end if loop |
||||
Mixtel90![]() Guru ![]() Joined: 05/10/2019 Location: United KingdomPosts: 8051 |
A stress test is for something that's already proved to be reliable at specified speeds. :) Once it's passed a stress test at the correct speed you can overclock and test again to see if any nasties happen. At the moment you have no way of knowing if it's the overclocking that's the problem - and no way to find out. :) Mick Zilog Inside! nascom.info for Nascom & Gemini Preliminary MMBasic docs & my PCB designs |
||||
PhenixRising Guru ![]() Joined: 07/11/2023 Location: United KingdomPosts: 1511 |
Flash the latest (b11) to both RP2350 and RP2040 No overclock. BOTH froze almost in unison. ![]() Running two instances of SmallBASIC. The screen on the left is RP2350 and the screen on the right is RP2040. Now I'm gonna downgrade the firmware in both. |
||||
Volhout Guru ![]() Joined: 05/03/2018 Location: NetherlandsPosts: 5214 |
Hi Phenix, I have no idea what you did. I have b11 running on both 2040 and 2350. Volhout PicomiteVGA PETSCII ROBOTS |
||||
PhenixRising Guru ![]() Joined: 07/11/2023 Location: United KingdomPosts: 1511 |
Yes, they run fine but I'm playing with PC as a master and Picomites as slaves over USB. I have a continuous loop running to test the reliability. Older firmware on the RP2040 ran without problems, all day/night b11 froze almost immediately Maybe INKEY$ shouldn't be used like this...I don't know. Will try a few older firmware revisions. |
||||
Volhout Guru ![]() Joined: 05/03/2018 Location: NetherlandsPosts: 5214 |
Phenix, IF you are running a program in a flash slot, and update firmware, you may need to re-write the code in the flash slot. Since the mmbasic program is tokenized when in the flash slot. And a new firmware release may have a different tokenizing. Between 6.01.00 b9 ... b11 tokenizing seems unaltered. But older versions may use a different scheme. Volhout PicomiteVGA PETSCII ROBOTS |
||||
Page 1 of 3 ![]() ![]() |
![]() |
![]() |
The Back Shed's forum code is written, and hosted, in Australia. | © JAQ Software 2025 |