Open SimGas opened 10 months ago
MCU marking reads CH32F208WBU6 - a STM32 clone by Nanjing Qinheng Microelectronics (WCH). Vendor website has CH32F208WBU6 which does have BLE.
I don't see any obvious debug headers (other than UART?) - so maybe it supports SWD via USB D+/D- like the MHP30?
Honestly this looks like a better design than the MHP 30. Makes me less inclined to finish my designs for a competitor.
Same rules would apply to this being supported as anything else really: 1) Need to get Freertos running on it 2) Need docs on how to connect a debugger 3) Need a full pinout of the mcu
For the record, there's a thread about it at eevblog: https://www.eevblog.com/forum/reviews/miniware-mhp50/
@SimGas Short question dio you also have the problem that the temperature isnt correctly displayed? So it should heat up to 300°C but only displays around 150°C? ALso did it run for longer and ever encountered the problem that the controler says "over temperature"?
@TowerDefender007 I have not yet observed any problems with my MHP50. I've used it in reflow mode around 5-10 times with temperatures up to 260 degrees. Everything was displayed properly. Right now, I tried heating in "heat" mode and this also seems to show the correct temperature.
Which power supply do you use? If you use one with a low voltage, that could maybe overheat it? I use a 65w lenovo laptop power supply right now.
I never had the over temperature error, but longest I used it was maybe 25 minutes or so.
@SimGas I am using an Anker PowerPort Speed 5 with USB-C with PD but I also tried using my Shargeek battery bank that is capable of outputting 100W on the USB-C (20V at 5A) also I can see that the MHP 50 is using around 82W from the powerbank. But the biggest problem isnt that the temperature isnt accurate (or at least it would take 10min to read the right temperature) because it turns off at some point and says that the controller overheated. Does your fan turn on at some point or is he also never active?
Just tried it with 250 degrees for 8 minutes. Afterwards the fan speed was 4400r/min and mcu temperature was 41 degrees. Maybe your fan is not connected? Does it show anything in the info menu? ![Uploading PXL_20240216_082142731.jpg…]()
@SimGas The info menu only says 0 r/min but the funny thing is after I let it heat up and the error occured I unplugged it and plugged it back in again the fan started for a short time and then turned off again. Do you know how I can open it up to take a look at the fan because I thing the fan is the problem here?
Well, there are four screws under the rubber pads on the underside. Losen those and wiggle the plate slightly. When it comes off you should be left with what you can see in photo 7. However, if the fan comes on eventually, I think it is not broken.
I opened it and the fan is working but there is something odd happening after rebulding it the MHP 50 turns on the fan at the start and says there is no fan connected. Then I dissambled it again and rebuild it again and now it works again.
Maybe the pin for reading back the fan speed has a slack joint?
I didnt checked that. I only checked the cable because it looked a little bit crushed.
Just adding a note to document that I've tested SWD via the USB C connector on MHP50, but it doesn't work for me.
I'm fairly confident about the electrical part and am familiar with OpenOCD (although not with Pico).
So either this particular device doesn't do SWD via USB C (seems ubiquitous on Miniware products though) or I've messed up.
Anyone else feel like giving it a go? Or perhaps someone who has torn down the device is able to tell whether the SWD pins are in fact connected to USB D+/D- on this device?
EDIT: This in fact worked on a second attempt, not sure why it failed initially.
Honestly this looks like a better design than the MHP 30. Makes me less inclined to finish my designs for a competitor.
Exactly my thoughts.... And i'm (or I was?) also designing something.
Hey there, any news about IronOS support for the MHP50? Mine has arrived today, maybe I can help
EDIT: This comment contained a question about whether 28V DC input is supported on the barrel jack (rated 19-24V) while we wait for Miniware to release their firmware supporting the PD3.1 28V profile via usb. In the meantime I've received an answer from Miniware support: yes it does!
.. which is another thing IronOS on MHP50 would be great for (28V PD support) - but it seems we lack traction. Other than my (failed) SWD experiment I'm not to keen on tearing it down as the rubber feet seem glued on...
Hi Folks, I'm new here so forgive me in case I sin against the Git-Gods.
I got one of these MHP50-B5 hot plates a few days ago, and tried it on Friday. I spent 2 hours trying to get it to work properly. I could not get it to go above ~80'c no matter what I tweaked in the menus, and no matter the different power supplies I used (USB-C PD and DC-5255 at 24V/10A).
It turns out (after much wrangling with customer support) that Miniware have a batch of these things with trapped (or easily trapped) fan cables. Mine was one of them. See attached pictures. Turns out that any shorting from the fan wires causes the hot plate to not heat up properly. After I un-trapped the wires and repaired them with insulating tape, and reassembled it to make sure nothing was trapped, the unit worked properly.
Like night and day - the heating with 24V input was blisteringly fast. It melted all the SMD components off a small DCDC board in 1 minute.
Hope it helps - if you have one and it is playing up, dismantle and free/repair the fan wires. Murdo.
PS Yes the feet are well stuck down but if you're careful you can re-attach the sticky feet afterwards. Just be gentle.
I have traced some connections on the PCB. I have noticed that USB-C does have only one pair of D+ and D- connected that could be the reason why first attempt of connecting SWD by @ius failed. Also D+ and D- are not directly connected to other MCU pins apart from SWD communication, they could be through some resistors or some other IC for USB communication.
Here is what i have traced so far:
@danielkurek Thanks for chiming in!
In the meantime I did get SWD to work, dumped the firmware and performed some cursory reverse engineering to patch the arbitrary limits Miniware put in place for the reflow temperature/time. In the process I also identified parts of the pinout.
It's a bit rough (because I only did a first pass mapping all pins I've seen referenced in code) - but I have quite some functions labeled in IDA - identifying peripherals isn't too difficult based on the configuration settings/menus.
For my current use case the (patched) Miniware firmware works quite well, but if someone is willing to invest time in actually writing code to port IronOS (@Ralim?) I might be able to spend some more time on reversing.
Display is ST7735 based by the way. External flash is just used for configuration settings.
Miniware have released v1.01 as a downloadable firmware upgrade, just in case anyone wants to take a look at the firmware without having to wire up SWD.
Here is updated list of the MCU pinout. The main thing missing is controlling of the mosfets for the heating element. They are controlled by TPS51601A but unfortunately the main pins are connected through unknown IC.
EDIT: Updated pins EDIT2: added functions of PD4 and PB8 EDIT3: details about controlling mosfet driver
The pinout of the MCU is almost complete. The main pins were traced. Pins PC1 and PC2 are probably used for charging a supercapacitor (15F, 3.8V) and powering the MCU. During testing I found out that the MCU can be run entirely from the supercap even if no power input is connected (I was really confused that the display was still working even after disconnecting the power when the MCU was halted :smile:).
I have managed to get FreeRTOS working using examples from MCU manufacturer. The example project was converted to GCC so that it can be easily compiled. You can find the project in repository CH32F208WB-FreeRTOS-GCC (beware currently the project overrides the original bootloader). Additionally, I have fixed a fork of OpenOCD that enables flashing firmware to the MCU (fixed version). I will start working on porting IronOS in the next few weeks.
The pinout of the MCU is almost complete. The main pins were traced. Pins PC1 and PC2 are probably used for charging a supercapacitor (15F, 3.8V) and powering the MCU. During testing I found out that the MCU can be run entirely from the supercap even if no power input is connected (I was really confused that the display was still working even after disconnecting the power when the MCU was halted 😄).
I have managed to get FreeRTOS working using examples from MCU manufacturer. The example project was converted to GCC so that it can be easily compiled. You can find the project in repository CH32F208WB-FreeRTOS-GCC (beware currently the project overrides the original bootloader). Additionally, I have fixed a fork of OpenOCD that enables flashing firmware to the MCU (fixed version). I will start working on porting IronOS in the next few weeks.
Hi @danielkurek maybe it's a bit too early for that, but I wanted to ask kindly about the porting progress
I did not have much time to work on it but i started to work on controlling the heating element. (Also, I have updated the above pinout with my current findings). I have not found datasheet to the IC (with markings 0101 A317A) that is between mosfet driver and some MCU pins so I am currently in progress of guessing how to drive the MCU pins to control the heating element. After that, I think that it should not be hard to get the first alpha version of IronOS working on it (with minimal functions - display, buttons, heating).
I do not have much experience in reverse engineering hardware so the progress is quite slow with my limited time. However, if someone has more time to work on this, I would be happy to help and provide all my notes on reverse engineering/development. Otherwise I will be slowly working on it in my free time.
I have an update. I have managed to get the heater control working. There is a failsafe mechanism that ensures that the heater will not work if the MCU fails. Pin D4 needs to have a constant software PWM (no hw timer support) which enables power to the mosfet driver IC and logic level shifter (which shifts control PWM to 5v).
I will start working on porting IronOS to the MHP50.
Hey danielkurek,
is there hope to have ironOS with freely selectable reflow max temp available on mhp50 (similar to mhp30)?
@agilum I will start with a very basic firmware with only buttons, screens and constant temperature mode working. Once that is working, I will try to match the features of the MHP30 that are in IronOS. So, yes reflow temps should be freely selectable (the hardware does not limit this behaviour).
@danielkurek If you get stuck on anything IronOS side let me know and I can try and help or guestimate out things.
Both the ST7735
and the CH32F208WBU6
will likely need driver work put in that I can do a rough pass on (dont have hardware to test).
I don't have hardware but I'm happy to try and help with the messier parts of IronOS itself.
Is your feature request related to a problem? Please describe. Recently, the MHP50 Hotplate was released as a successor to the MHP30. It is available for about 110€ on Aliexpress and supports 100 or 150W heating, together with a new mode for reflow soldering. Little can be found on the web for this hotplate yet, but I actually expect it to get more popular than the MHP30 very soon (much larger solder plate (50x50mm instead of 30x30mm).
However, This plate is more complex (e.g. multicolor display) than its predecessor and I am not sure if it could be covered within this project. But I just wanted to ask if you guys see any possibility supporting this plate anytime in future.
A few things I've already noted:
The discussion is hereby opened :)
If anyone is curious what's inside, I've taken a few pictures:
CONFIG.TXT