• Please review our updated Terms and Rules here

Petdisk Max V2 ESP32 Clone

anti77

Member
Joined
Oct 9, 2023
Messages
47
My fourth PCB design, first (mostly) SMD one to test how ordering assembled PCB from JLCPCB works. Motivation for this was that it's a bit of a pain to order @bitfixer 's Petdisk Max V2 Esp32 from the US, and I've found no alternatives in the EU. Panelized with Kikit addon with hand-breakable "mousebytes", it still fits the 100x100 mm JLCPCB limit. The idea is to order the placement for the cheap SMD components, and only solder 3 electrolytic capacitors, the ESP32 module and a "805 Strip Connector 3.96mm Pitch 12 Pin" connector from Aliexpress. Cost per board from JLPCB thus is around 2.5$ when ordered in batches of 5 (10 boards in total) :) With connector, capacitors, esp32 should not get over 8.5$ per board.
1751010627773.png
Kicad 3D viewer:
1751010788707.png
and backside:
1751010889535.png

Still have to fix some minor issues before placing an order (eg. just noticed oshw logo did not got to the bottom silkscreen). I will make the Kicad project available on github (link will be added here) after receiving and testing the boards.

I don't plan to sell these, but will have 4 boards (8) available as the party assembled board fits in a small bubble envelope. Long term plan is to use mines to see if I it makes sense to get the PET fujinet.online compatible...

Any feedback is welcome, especially before I make the order :) Also I'm looking for a cheap alternative to use this on the 8032-SK's more "special" userport connector.
 
Assembled and tested. Works nicely, but it's picky with the SD cards. I could only make it work with a 32GB one.
assembled.jpg
 
  • Like
Reactions: cjs
Nice!

What would it cost to have JLPCB mount everything except the electrolytic capacitors and the edge connector?
I.E. what would be suitable for people who haven't upgraded their soldering setup for SMD, but still have the ability to solder the electrolytic capacitors and the edge connector?

P.S. sorry if I'm captain obvious here, but if possible maybe add a USB connector for 5V in. Or at least make it a pin header with both +5V and GND; perhaps a 3 pin pin header with ground on both outer sides so it doesn't matter which way a connector is inserted.
 
@MiaM, good feedback. By everything you mean the ESP32 as extra? JLCPCB has relatively high setup fee for extended components like any type of USB connector or the ESP32, if I remember correctly, $8.00 per item. Plus the ~$2.7 for each ESP32-wroom-32d. I can add a DC barrel jack spot to the PCB that can be soldered by anyone, as the AMS1117 supports up to 15V DC, but why? The 5V is available in the PET anyway. Also the pin header already has the ground and 5v pins on the extremes, should it be made foolproof? The NC pin that's cut, and filled in the opposite connector should take care of that. Similar designs add an extra cassette port plug to get the 5V, a bit better than an extra power adapter or a phone charger with USB.

The EPS32 can be soldered with a regular soldering iron and flux. Lots of flux. Use solder braid if you bridge pins by mistake. I have to admit I've used hot air gun to solder first the middle ground pin that I suppose also acts as a heatsink, but with a small change to expose more copper (and maybe increase hole size) on the bottom of the PCB, soldering can be done with a regular iron as well. Question is if it is really necessary to solder that? The pins on three edges should be more than enough.

The biggest gamble here was the 2n7002 as a basic component on JLCPCB instead of the extended BSS138K(this would have also had the high setup fee). I can confirm the 2n7002 worked as a 3.3V to 5V logic level converter, at least when directly connected to the port and not through my IEEE-488 2meter long cable...

What I've learned is that next time I would add at least a placeholder for something like a CH340. With static electricity I've burned two USB-TTL convertes during programming just by putting my hands over the pins. Then it would make sense to also add a USB port. I've trusted @bitfixer 's design, but next time I would add test pads / test points (that can be cut, bodge-wired) for all IEEE-4448 and SD-card traces.
 
I'm thinking about the scenario where someone also has another device connected to the rear card edge connector, and your creation for some reason gets pulled out from the PET, while the +5V wire is still connected. Sure, in most cases the mains ground wire for say a PET and a disk drive should ensure that things won't end up badly, but even though they are rarer and rarer there still are places that don't have grounded sockets. Thus it might be a good idea to have both +5V and ground in the same connector. And since USB is perhaps the most common standard for 5V DC it might be a good choice. But that connector might have a large footprint, be hard to solder and there is also the problem with which USB connector to choose from, so that might be a bad idea.
My idea with an idiot proof pin header is that someone might be reaching behind their PET and reconnecting a wire that became disconnected, and might end up connecting it the wrong way around.

Re soldering: Oh, if they charge that much it might be better for everyone to solder themselves. Either way it's great that you are doing this, as my impression is that similar devices available from the common add-ons for retro computers tend to be quite costly (but then it's fully assembled devices).

And yeah, static electricity can be a real pain. I wouldn't had expected that anything "modern" be that sensitive, but the old 40xx chips manufactured in the 70's-80's could die almost from you watching them at a close distance.
 
@ntydelski For programming a USB-TTL 3.3V converter can be used, soldering in a 7 pin header is optional, I managed programming by just holding in the header firmly. To enter firmware download mode, short pin IO0 to ground(GND) then briefly reset by shorting pin EN to ground, then release both. USB-TTL converters specifically made for ESP32 have buttons and pins as DTR/RTS exposed that has to be connected to EN & IO0 pins. You can also pre-program the ESP32 before soldering if you have the means (e.g. ebay esp32 programmer for about $5), I've not used that solution yet.

For anyone trying to build this in the future: ESP-IDF 5.4 can be used to compile the binaries from source code
Code:
idf.py build
ESP-IDF has all the tooling needed, where one can even verify if the ESP32 entered firmware programming mode
Code:
idf.py monitor
Build will result 4 bin files that need to be programmed, also giving you the exact command line needed to program with start addresses for the binaries. After initial programming, you can use the SD card to update the main firmware only. Make sure you build sources from around 2022, as the latest ones seem to be for a new variant of ESP32, schematics not yet released to the public. As I take no credit for the firmware, maybe the original author can further elaborate, however I doubt he will support a clone...

Take great care when choosing a USB-TTL converter, we found ones that had 5V on the TX pin even when the jumper was on the 3.3V setting. That will most likely destroy a ESP32.

Note that I have not managed to make this work with standard micro SD cards (2GB or less) or SDXC (64GB or more), it seems the original firmware only supports SDHC (4 - 32GB).
 
Last edited:
Thank you so much for the information. I get how the process of actually programming with the USB-TTL.
I don't understand how to create the Bin files from the source code..
I just figured you use the Firmware bin and use the flash_download tool..
Is there anyway you can elaborate on that process a little? Or possibly be able to send me the bin files needed. I ordered some boards in excited to get them going. Any help would be amazing.
 
If I get a esp32 chip programmer could I just just burn the firmware bin in the petdisk max github with the flash_download tool? Then solder on the chip? Or do I still need to create the Bin file??
 
@ntydelski The instructions for building the original firmware repository: https://github.com/bitfixer/petdisk-max?tab=readme-ov-file#building-the-petdisk-max-firmware As I've had no plans to write any further code for ESP32, I've not kept the ESP-IDF environment, the petdisk-max repository, nor bin files and where exactly they should go in the flash memory. The single FIRMWARE.PD2 won't be enough to get this up an running. There are tutorials for ESP-IDF on youtube, you should install it, get the source, and build it. I don't see any way around that.
 
Totally I'll get into in... It will definitely be a fun project. Thank you for the info . It was very helpful.
 
One question if you feel comfortable answering. I get an "esp-idf ninja failed with exit code 1". Error. When trying the idf.py build...

Is this normal or is there possible something wrong when I installed esp-idf??
 
I've tried every thing to build this code. I get errors every time. I githash.h error if I download the zip and a missing main.cpp on the cloned project.
Do you have any idea why. Its not as easy as you stated. Can you offer any help building this code. I've been at it for 3 days. Thank you!!!
 
@ntydelski great that you managed to build it.

As mentioned above, I'm not the author of the firmware, I just wanted to offer an alternative for the hardware (the PCB was not public). I can't really offer remote support on a software environment I only used once (to build this project) for a software that I did not wrote. Hope for everyone's understanding.
 
I totally understand. I'm honestly doing the same thing. This is my first time using ESP-IDF, and I'm really excited to build your project. I'm just a hobbyist who wants to get my PET working. Thank you for your contribution!
I'll keep you posted on the build...
 
I know you mentioned that this device is picky about SD cards. I tried a 16GB and a 32GB card, but both gave me a "file not found" error. Do you have any suggestions for a brand of SD card? Also, how did you prepare it?
 

Attachments

  • PXL_20251016_025429541.MP.jpg
    PXL_20251016_025429541.MP.jpg
    1.5 MB · Views: 7
Back
Top