TomDDG / ZXPicoMD

Raspberry Pico ZX Spectrum Microdrive Hardware Emulator
GNU General Public License v2.0
54 stars 4 forks source link

Very good project #6

Open vperlik opened 11 months ago

vperlik commented 11 months ago

Hello, Tom, Congratulations, it's a work well done. It worked for me the first time I connected it, I like the minimum number of components. I printed the case on my home resin printer. If I could allow myself a small remark - the layout of the connections on the PCB could do with a little "combing", it gives me the impression that it was left as designed by the autorouter. But I understand that the main task was to debug the firmware, which is an amazing work. I don't know how it is with the availability of oled displays in different countries, but I had a lot of trouble finding one that would fit the case window. they are usually narrower, so there is an ugly gap around them. If I got a dimensionally accurate one, it had the VCC and GND pins swapped. I didn't want to cross-connect between the board and the display, I would appreciate it if there was a switch on the board to allow swapping of VCC and GND. Although I haven't tried all the features yet, I'm still excited. So far tested on ZX Spectrum 48+ with new ULA vLA82S+.

TomDDG commented 11 months ago

Thanks

On the layout I agree. I usually hand draw the power lines and then let the autorouter do its magic on the rest. This works but isn't without issues and doesn't look the best. I've had one PCB fail on me as it routed way too close to a component which caused a short. Only affected one out of 50 I ordered, and guess down to JLPCB quality control as much as the routing, but there was no need for it to be that close as tons of space on the PCB.

I really need to create a new PCB with these issues sorted, on my list I have:

Please let me know if you can think of other enhancements.

On the OLED, I agree these are a nightmare to source with a consistent size and pin out. I got a job lot from Amazon of all places and these are the ones I designed the case around. If you send me the dimensions of the ones you have I'd be happy to adjust the case to fit.

TomDDG commented 11 months ago

I've redone the PCB, added a jumper to switch GND & VCC for the OLED, the notch and a big tidy up.

ZXPicoMDv1 3 ZXPicoMDv1 3_back

vperlik commented 10 months ago

Hi Tom, Super. I also wanted to write to you that I found out that the direct GND connection from the right connector to the left one is missing and is only routed through the Raspberry board. As a result, other real microdrives would be powered via the Raspberry board. But as I see, you probably solved the problem by adding "spilled GND". You were faster. OLED - I ordered according to the datasheets available at the dealers, PCB dimensions are usually not listed among the main parameters. But the dimensions from the datasheet mostly did not agree with the real dimensions, PCBs are usually smaller by a few mm, mostly in width. But the display window is also smaller, even though they are all listed as 0.96". I glued the display with a "melt gun", even though it was a little smaller than the cutout in the case. I don't deal with it anymore, I recommend you do the same. I didn't look at Amazon, because it doesn't sell directly here, but according to your link, it looks good. When it will be on the PCB the option to swap VCC and GND, I have a display that fits exactly, i.e. 28x28mm. I'll be happy to order a repaired PCB and build another one again. Also sorry for my bad english, it's not my native language.

vperlik commented 10 months ago

Another note about the buzzer used. There are two types, just a simple piezo-repro and a type with built-in electronics. It emits a tone when a positive DC voltage is applied, which is why the pin is marked with a + sign. The dimensions are identical, it's easy to get them confused. The one without electronics does not have + on it. What type should be used in your design? I used the simple one and it works, I assumed that you create the necessary tone frequency in the software. Would the type with electronics also work? Could you comment on that?

TomDDG commented 10 months ago

Yes added the ground plane to both sides to help, although the Pico has a pretty good ground so not sure if it would be a huge issue with the older PCB, maybe if you connected 7 real Microdrive's :-)

On the buzzer, I don't think it matters as I use the Pico PWM to drive so either should be fine. Obviously you will get different sounds from each but I've tried a few types and it isn't that different, I think the internally driven ones (believe this is what you mean when you say one with the electronics) is just louder. This is probably why some say they can't hear it and I added a loudness option.

I'm going to send the new PCB to get built and I'll report back once I've built one if all is ok.

vperlik commented 10 months ago

Yes, the problem with GND is nothing major, I figured it out by making an auxiliary power supply from one free board for testing during assembly. And I was wondering why I have no voltage at the output. So I connected GND to the RB pins and voila... Yes, I like it now, the ground plate with via-holes fixed it. Buzzer - If PWM is used (which I assumed), then only a "simple" piezo-buzzer should be used without an internal oscillator (yes, you're right, by electronics I meant an internal DC-powered oscillator, I probably should have used the terms "passive" and "active" correctly). I believe it works anyway, but the type with the oscillator should be powered by a constant voltage (active). Otherwise, the PWM frequency is combined with the internal oscillator frequency and the resulting sound ... Yes, that's probably usable too... The sound level was sufficient for me, but some people enjoy noise.

OK, good work. I have most of the components at home, so I'll just order a PCB with some other order, what I have ready here. The component is the minimum, mounting the PCB is the work of a moment. The most work is to bend the led diodes correctly and solder the switches straight, because they do not rest on their front part of the edge of the PCB. But that's an unimportant detail.

TomDDG commented 10 months ago

On the buzzer, I've tried with both active and passive. Quick correction to what I wrote above, active buzzers are actually quieter than passive, probably because it is a square wave driving another square wave rather than constant voltage. I was always a bit puzzled why some people couldn't hear it, they must be using active buzzers. Anyway the loudness option solves that using the PWM level.

Things are complicated as if you order a passive buzzer on eBay or Aliexpress you may well get active without realising it. I added a + on the PCB so you can use either type, obviously the passive buzzer can go either way around.

TomDDG commented 10 months ago

New PCBs arrived today, built one and it tested fine so looks I didn't mess anything up :-) The new jumper enables you to swap GND & VCC of the OLED fine and the board now stops you from plugging in the wrong connector when joining up to real H/W Microdrives.

Will updated the PCBWay site later but happy to sell you one of the 5 I got if you'd prefer that.

vperlik commented 10 months ago

Good, if one PCB can cost me less, including postage, than from PCBWay, then why not. I don't need five of them.

I just wanted to ask one thing if you were to modify the firmware. Since the switches used oscillate quite often, it would be good to treat this by including a delay. Quite often it happens to me that I click through to the next level of the menu, which is quite unpleasant, especially with the Enter button. But just take it as a suggestion for a small improvement.

TomDDG commented 10 months ago

If you are in the UK it will definitely be cheaper from me as I'll only want a few quid to cover the cost of the PCB and postage, however if not in the UK then you maybe better getting it from JLPCB as they usually ship 5 for about £5 and customs fees can be a pain. I'll pop the Gerber's on the GitHub so you can get them made wherever you want.

On the modification, will add this to the list for v1.5 which I'm working on now. Other additions are semi-auto backup of modified MDRs requested by a user and I'm looking into a better way to store the cartridges to better reflect the data pre & post sector which the MDR format ignores.

TomDDG commented 10 months ago

I've also uploaded a new case to Thingiverse (https://www.thingiverse.com/thing:5569842) with a slightly smaller OLED holder. I got some new OLEDs and they are 26mm x 26mm instead of 27.5mm x 27.5mm like my other ones. If you have other dimensions please just pass them over and I can easily adapt the case for them to fit.

TomDDG commented 10 months ago

I just wanted to ask one thing if you were to modify the firmware. Since the switches used oscillate quite often, it would be good to treat this by including a delay. Quite often it happens to me that I click through to the next level of the menu, which is quite unpleasant, especially with the Enter button. But just take it as a suggestion for a small improvement.

I've tested this on my unit and cannot replicate. Each button press already has a 100ms wait associated with it so it shouldn't happen and couldn't see that I'd missed any of the menu item. Does it do this on anything specific?

Anyway I've increase it to 150ms in the new firmware so hopefully that helps.

vperlik commented 10 months ago

Excellent work. Case - Yes, I bought the exact same display (26x26mm). Although it had the correct terminals, the dimensions of the PCB were smaller. But if I have a choice of pins on the board, I can also use the first display, which has the dimensions of the previous case. But I will also try to print a new case, I am learning with a 3D printer, so I will use it as training. Firmware - I will try again. PCB - I usually order several projects at once, so if I will have gerber files available, I will order with something else. With postage and customs fees from the UK, it would probably make me really expensive. Anyway, thanks for the offer.

TomDDG commented 10 months ago

New firmware released, please let me know if it helps with the button bounce

vperlik commented 9 months ago

Hi Tom, I'm waiting for the new PCB from PCBWay, then I'll try with the new firmware.