Author Topic: EEVblog #1144 - Padauk Programmer Reverse Engineering  (Read 397485 times)

0 Members and 2 Guests are viewing this topic.

Offline serisman

  • Regular Contributor
  • *
  • Posts: 100
  • Country: us
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1100 on: July 16, 2020, 05:06:33 am »
Well, 0.5-1 mA should be enough for the LED, so it is more like 25-40%. But as mentioned, this should be inconsequential.

A good portion of the active current is actually going to the Buzzer (probably 80% or so), and I don't really want to make that any quieter.  I measured around 10 mA (@3V) with everything active, which is about the same as the ATtiny85 version.  That could probably be optimized a bit (i.e. use slower ILRC instead of IHRC, dimmer power LED, quieter Buzzer), but certainly with diminishing returns.

EDIT:  Yeah, I just verified that without the Buzzer connected, the active current is less than 1 mA (LED and MCU).  So, currently the buzzer is using 90+% of the active current.
« Last Edit: July 16, 2020, 05:11:19 am by serisman »
 

Offline tim_

  • Regular Contributor
  • *
  • Posts: 237
  • Country: de
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1101 on: July 16, 2020, 05:16:39 am »
Well, 0.5-1 mA should be enough for the LED, so it is more like 25-40%. But as mentioned, this should be inconsequential.

A good portion of the active current is actually going to the Buzzer (probably 80% or so), and I don't really want to make that any quieter.  I measured around 10 mA (@3V) with everything active, which is about the same as the ATtiny85 version.  That could probably be optimized a bit (i.e. use slower ILRC instead of IHRC, dimmer power LED, quieter Buzzer), but certainly with diminishing returns.

EDIT:  Yeah, I just verified that without the Buzzer connected, the active current is less than 1 mA (LED and MCU).  So, currently the buzzer is using 90+% of the active current.

So one should introduce a "quiet" mode, for power users who don't have a lot of power available :) (no, not serious)
 

Offline serisman

  • Regular Contributor
  • *
  • Posts: 100
  • Country: us
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1102 on: July 16, 2020, 05:20:52 am »
So one should introduce a "quiet" mode, for power users who don't have a lot of power available :) (no, not serious)

 :-DD

For reference... My original ATtiny85 version (very similar power consumption numbers) still has the original (used) CR2032 that I installed over a year ago and have used intermittently since.  It still measures 3.1V.  So, I don't think active power consumption it is an issue at all.
 

Offline tim_

  • Regular Contributor
  • *
  • Posts: 237
  • Country: de
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1103 on: July 16, 2020, 05:31:24 am »
Here is a challenge: Operate it from a single LR41 cell (1.5V).

I was quite suprised to find that there are very few MCUs for less than 1.8V out there. The only one I found is MSP430L.
 

Offline serisman

  • Regular Contributor
  • *
  • Posts: 100
  • Country: us
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1104 on: July 16, 2020, 05:37:50 am »
Here is a challenge: Operate it from a single LR41 cell (1.5V).

Yeah, that's going to need a booster, or better yet, just run two in series.

These Padauk MCUs all seem to need about 2V (+/- 0.2V) minimum to operate.
 

Offline NickE

  • Contributor
  • Posts: 20
  • Country: hu
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1105 on: July 16, 2020, 08:26:21 am »
I measured the voltage on PFS154 digital output, when I output low level I measure 0.47V and 4.56V is the high level. PFS154 is powerred from 5V USB (actully 5.02V). So the low is pretty high, the high is pretty low.
Most of the digital IC will sense this voltage levels correct but on PIC and Atmel processors the low is very close to 0V and the high is the supply voltage.

Are there any configuration to get better results?
 

Offline tim_

  • Regular Contributor
  • *
  • Posts: 237
  • Country: de
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1106 on: July 16, 2020, 08:39:25 am »
I measured the voltage on PFS154 digital output, when I output low level I measure 0.47V and 4.56V is the high level. PFS154 is powerred from 5V USB (actully 5.02V). So the low is pretty high, the high is pretty low.
Most of the digital IC will sense this voltage levels correct but on PIC and Atmel processors the low is very close to 0V and the high is the supply voltage.

Are there any configuration to get better results?

Did you load the output in any way? But anywys, the GPIO in the PFS are unusually weak. Probably a way to save die area and hence cost.
 

Offline js_12345678_55AA

  • Frequent Contributor
  • **
  • Posts: 338
  • Country: ht
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1107 on: July 16, 2020, 08:44:44 am »
Here's a fun little project I whipped up on a breadboard today: https://github.com/serisman/pdk-continuity-tester

Nice little project. Thanks for sharing.

JS
Easy PDK programmer and more: https://free-pdk.github.io
 

Offline js_12345678_55AA

  • Frequent Contributor
  • **
  • Posts: 338
  • Country: ht
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1108 on: July 16, 2020, 08:59:38 am »
I measured the voltage on PFS154 digital output, when I output low level I measure 0.47V and 4.56V is the high level. PFS154 is powerred from 5V USB (actully 5.02V). So the low is pretty high, the high is pretty low.
Most of the digital IC will sense this voltage levels correct but on PIC and Atmel processors the low is very close to 0V and the high is the supply voltage.

Are there any configuration to get better results?

According to CMOS and TTL specification (https://en.wikipedia.org/wiki/Logic_level) this is perfectly within the specified ranges:

CMOS: low: 0V to 1/3 VDD high: 2/3 VDD to VDD  (for 5V VDD this translates to low: 0V - 1.6V, high: 3.3V - 5V)
TTL: low: 0V to 0.8V  high: 2V to VCC (VCC = 5 V ±10%)

So your sentence "Most of the digital IC will sense this voltage levels correct" becomes... There might be some IC's (not compatible with CMOS or TTL specification) which might sense this voltage levels incorrect (which is also true for 99% of other ICs on market).

Anyway in case you want to play with the outputs on PFS154, look at the pull up registers PAPH and PBPH.
There is also a fuse value which you might want to try out: FUSE_IO_DRV_LOW  / FUSE_IO_DRV_NORMAL (I never played with this so any research on this from you will be appreciated. FUSE_IO_DRV_NORMAL is default which is used when you do not set the fuse).
You can set it in _sdcc_external_startup like this: EASY_PDK_FUSE(FUSE_SECURITY_OFF|FUSE_BOOTUP_FAST|FUSE_IO_DRV_LOW); Have a look in programmer software Examples folder: calib-and-fuse-demo.c 
You also can specify the fuse as a command line argument to easypdkprog: --fuse=0x3EFD   (this value is for PFS154 only, and reflects: FUSE_SECURITY_OFF | FUSE_IO_DRV_LOW | FUSE_BOOTUP_FAST)

JS
« Last Edit: July 16, 2020, 09:03:27 am by js_12345678_55AA »
Easy PDK programmer and more: https://free-pdk.github.io
 
The following users thanked this post: NickE

Offline serisman

  • Regular Contributor
  • *
  • Posts: 100
  • Country: us
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1109 on: July 16, 2020, 05:56:09 pm »
Here's a fun little project I whipped up on a breadboard today: https://github.com/serisman/pdk-continuity-tester

Nice little project. Thanks for sharing.

JS

Thanks!

I just uploaded a schematic and PCB design for the 6-pin PMS150C.  (gerbers available, and already shared on OSHPARK: https://oshpark.com/shared_projects/XcWQiX7z)

1024864-0

This PCB is meant to be attached to the bottom of a ~12mm Piezo Buzzer, where the SMD parts are first soldered to the board, and are underneath the buzzer. There are through-holes for the two probe connections, and pads on the back for the battery connections. 2x LR44 battery cells in series would pair nicely with this PCB, as they are a good voltage match, and are approximately the same diameter (meaning the whole thing can be heat shrunk together for a miniature continuity tester).

1024868-1
1024872-2
1024876-3
 

Offline serisman

  • Regular Contributor
  • *
  • Posts: 100
  • Country: us
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1110 on: July 20, 2020, 01:01:10 am »
I finally designed a PCB for my Padauk based 7-segment digital clock.

I also moved the project to its own repository and added some README files:
https://github.com/serisman/pdk-digital-clock

It will take about two weeks before the PCBs are delivered to me, but I feel pretty confident in the design.  I've been running it on a breadboard for a few weeks now.

1026866-0
1026878-1
1026870-2
1026874-3

Feel free to suggest new 'features' or make pull requests with enhancements or bug fixes.
 

Offline NickE

  • Contributor
  • Posts: 20
  • Country: hu
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1111 on: July 20, 2020, 10:55:10 am »
Does the PFS173-S20 really exist? It is not listed on LCSC nor on Alibaba. It's only in datasheet...
 

Offline js_12345678_55AA

  • Frequent Contributor
  • **
  • Posts: 338
  • Country: ht
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1112 on: July 20, 2020, 12:44:21 pm »
Does the PFS173-S20 really exist? It is not listed on LCSC nor on Alibaba. It's only in datasheet...

Sure it exists and it is available in small quantities e.g. from Taobao:

https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-15889356058.11.4f019facMXA64B&id=598987867714

0.5 RMB / pcs - for 50pcs (apx. USD 3.58) + shipping.

The seller is trustworthy. I ordered several times from there.

BTW: There are some Taobao forwarders which will help you to ship the things from taobao.

Adventure time :-)
Easy PDK programmer and more: https://free-pdk.github.io
 

Offline ali_asadzadeh

  • Super Contributor
  • ***
  • Posts: 1902
  • Country: ca
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1113 on: July 21, 2020, 07:29:19 am »
Quote
Sure it exists and it is available in small quantities e.g. from Taobao:

https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-15889356058.11.4f019facMXA64B&id=598987867714

0.5 RMB / pcs - for 50pcs (apx. USD 3.58) + shipping.

The seller is trustworthy. I ordered several times from there.

BTW: There are some Taobao forwarders which will help you to ship the things from taobao.

Adventure time :-)
How do you chat and contact with them?
ASiDesigner, Stands for Application specific intelligent devices
I'm a Digital Expert from 8-bits to 64-bits
 

Offline NickE

  • Contributor
  • Posts: 20
  • Country: hu
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1114 on: July 21, 2020, 01:32:27 pm »
I did something wrong. Now all digital output goes down to 0V and up to 5V.
 

Offline kaweksl

  • Contributor
  • Posts: 18
  • Country: pl
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1115 on: July 21, 2020, 10:59:26 pm »
Does the PFS173-S20 really exist? It is not listed on LCSC nor on Alibaba. It's only in datasheet...

Sure it exists and it is available in small quantities e.g. from Taobao:

https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-15889356058.11.4f019facMXA64B&id=598987867714

0.5 RMB / pcs - for 50pcs (apx. USD 3.58) + shipping.

The seller is trustworthy. I ordered several times from there.

BTW: There are some Taobao forwarders which will help you to ship the things from taobao.

Adventure time :-)

Which agent do you use ?
Did you tested those PMS132b in qfn ?

I have bought some PFC232, gonna try to play with second FFPA, if they arrive.
 

Offline NickE

  • Contributor
  • Posts: 20
  • Country: hu
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1116 on: July 22, 2020, 07:41:20 am »
Hopefully I will be able to solve the project with PFS154-S16 which I already have. For now I only focus on PFS154 and PFS173 chip and I prefer S16 or S20 package because it is easy to solder. I can do QFN and others, I have a lot of experience in soldering but S16 is more convenient and faster. Anyway I will try to buy PFS173-S20 if possible. If not then PFS173-H20.
 

Offline bovineck

  • Contributor
  • Posts: 16
  • Country: au
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1117 on: July 26, 2020, 12:32:49 am »
Hi all - first post!

I ordered the open source programmer PCB and I'm having trouble soldering the small components (my ego is writing cheques my eyesight can't cash...) which makes the resultant non-functional board difficult for me to troubleshoot. Is there any reason why the board can't be mostly through-hole (see attachment)? And if this is going to work:
  • can all the SMD schottky diodes be replaced with 1N5817?
  • can the 47uF cap be electrolytic and therefore have polarity?
  • can the 6.8uH inductor be radial?
  • are there through-hole equivalents for BSS138 and BSS84 (basically just trying to limit the SMD stuff)
  • I've re-arranged the components for ease of use in putting the board together, but will the resultant long traces be a possible problem?
  • there are 5 holes on the board (1 and then 4 together) but I have no idea for what purpose!?

I will keep soldering (I have 5 PCBs to trash in this experiment and I'm damn stubborn), but looking forward I was hoping that an old man version might be better suited to my needs. Thoughts and feedback appreciated!

OneCircuit
www.onecircuit.blogspot.com
« Last Edit: July 26, 2020, 01:23:55 am by bovineck »
You're unique, like everyone else
 
The following users thanked this post: icraftcrafts

Offline js_12345678_55AA

  • Frequent Contributor
  • **
  • Posts: 338
  • Country: ht
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1118 on: July 26, 2020, 08:40:51 am »
Hi all - first post!

I ordered the open source programmer PCB and I'm having trouble soldering the small components (my ego is writing cheques my eyesight can't cash...) which makes the resultant non-functional board difficult for me to troubleshoot. Is there any reason why the board can't be mostly through-hole (see attachment)? And if this is going to work:
  • can all the SMD schottky diodes be replaced with 1N5817?
  • can the 47uF cap be electrolytic and therefore have polarity?
  • can the 6.8uH inductor be radial?
  • are there through-hole equivalents for BSS138 and BSS84 (basically just trying to limit the SMD stuff)
  • I've re-arranged the components for ease of use in putting the board together, but will the resultant long traces be a possible problem?
  • there are 5 holes on the board (1 and then 4 together) but I have no idea for what purpose!?

I will keep soldering (I have 5 PCBs to trash in this experiment and I'm damn stubborn), but looking forward I was hoping that an old man version might be better suited to my needs. Thoughts and feedback appreciated!

OneCircuit
www.onecircuit.blogspot.com

Most likely your PCB will NOT work.

You missed very basic things like placing decoupling caps as close as possible to the components they are intended for. E.g. the 4 x 100nF next to the processor are much to far away to have any effect.
Also the coil, the diode and the big decoupling caps for the dc-dc boost need to be as close as possible to the boost IC. Then you have traces at the very edge of the PCB which will be rejected from PCB manufacturer, ...
But the main problem is that you introduced a lot of power / ground loops since your traces are running back and forth all over the board (e.g. follow the 5V input from USB to see what I mean).
It looks like you just placed all components in a random way (maybe for easy soldering) ignoring any design requirements and then tried to put some traces.
This can work for simple schematics like a MCU + LED but this creates real problems with high frequency (several MHz) circuits like the DC-DC boost, USB, STM32, ...)

BTW: Your design also misses the reference to "free-pdk.github.io" Please don't forget to respect the open source license the original is released under:
=> https://github.com/free-pdk/easy-pdk-programmer-hardware/blob/master/LICENSE   (CC-BY-SA-4.0)

JS
Easy PDK programmer and more: https://free-pdk.github.io
 

Offline NickE

  • Contributor
  • Posts: 20
  • Country: hu
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1119 on: July 26, 2020, 08:44:30 am »
If you can solder the STM32 chip then other components should be easy...

Anyway I also bought 5 pack of PCB and most other components because there was a minimum order of 5 of most of the parts but I don't need all of them.

If someone is interested to buy a fully assembled tested one PM me. Will send it from Hungary as registered priority mail. Hopefully it arrives faster to EU countries but the shipping is a bit more expensive then from China.
 

Offline js_12345678_55AA

  • Frequent Contributor
  • **
  • Posts: 338
  • Country: ht
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1120 on: July 26, 2020, 08:53:40 am »
How do you chat and contact with them?

Which agent do you use ?

I do not have a specific agent I use. In the past I ordered and received the stuff in China directly when I was on business trips there. Right now it is complicated to travel so I used an agent (which seems to have stopped now).

Here is a pointer for agents: https://www.howtotao.com/best-taobao-agent/

JS
Easy PDK programmer and more: https://free-pdk.github.io
 

Offline tim_

  • Regular Contributor
  • *
  • Posts: 237
  • Country: de
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1121 on: July 26, 2020, 09:47:46 am »
I ordered the open source programmer PCB and I'm having trouble soldering the small components (my ego is writing cheques my eyesight can't cash...) which makes the resultant non-functional board difficult for me to troubleshoot. Is there any reason why the board can't be mostly through-hole (see attachment)? And if this is going to work:

Besides the stability issues mentioned by JS, I would also like to point out that this does not really address the core of the issue. In my eyes, the three most difficult to assemble items are:

  • The MCU
  • The diodes for the charge pump
  • the USB-C plug

Changing all possible parts to THT will only address one of those. So people who have issues with SMD soldering will still encounter signficant challenges.

But anyways, don't feel discouraged from your project, who does not like to design PCBs? :)

One additional comment: The 1N5817 have a very high junction capacitance. The charge pump may not work with them.

« Last Edit: July 26, 2020, 09:55:03 am by tim_ »
 

Offline bovineck

  • Contributor
  • Posts: 16
  • Country: au
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1122 on: July 26, 2020, 10:26:59 am »
Great feedback thanks! I pretty much knew my thought bubble would burst - I guess I would like to know if a through-hole version is possible? I'll shift some stuff around according to the suggestions and report back in a few days. Thanks for the heads up about the IP - as an ex patent examiner I should have been more aware of that!

On the plus side - my second SMD version had some small success - it recognised the PMS150C, but not the PFS154 or PFS173. It was unable to program any of them...

PMS150C:
easypdkprog probe
Probing IC... found.
TYPE:OTP RSP:0x285A0 VPP=4.50 VDD=2.00
IC is supported: PMS150C / PMS15A ICID:0xA16

Programming PMS150C:
make clean program
rm -r -f .build .output
sdcc -mpdk13 -c --std-sdcc11 --opt-code-size -DPMS150C -DF_CPU=1000000 -DTARGET_VDD_MV=4000 -I. -I../include -o .build/main.rel main.c
sdar -rc .build/lib.lib
sdcc -mpdk13 --out-fmt-ihx -o .output/BlinkLED_PMS150C.ihx .build/main.rel .build/lib.lib
makebin -p .output/BlinkLED_PMS150C.ihx .output/BlinkLED_PMS150C.bin
---------- Segments ----------
.  .ABS.                            00000000    00000000 =           0. bytes (ABS,CON)
.  .ABS.                            00000000    00000000 =           0. bytes (ABS,CON)
HEADER1                             00000000    00000002 =           2. bytes (ABS,CON)
HEADER3                             00000000    00000010 =          16. bytes (ABS,CON)
PREG2                               00000000    00000002 =           2. bytes (ABS,CON)
RSEG0                               00000000    00000002 =           2. bytes (ABS,CON)
DATA                                00000002    00000007 =           7. bytes (REL,CON)
HOME                                00000022    00000002 =           2. bytes (REL,CON)
GSINIT                              00000024    00000014 =          20. bytes (REL,CON)
GSFINAL                             00000038    00000002 =           2. bytes (REL,CON)
CODE                                0000003A    00000074 =         116. bytes (REL,CON)
SSEG                                FFFFFFFF    00000001 =           1. bytes (REL,CON)
------------------------------
Size of BlinkLED_PMS150C.bin: 174 bytes
easypdkprog -n PMS150C write .output/BlinkLED_PMS150C.ihx
FPDK_ERROR: command ack failed / wrong icid
Makefile:63: recipe for target 'program' failed
make: *** [program] Error 252

PFS154 and PFS173:
easypdkprog probe
Probing IC... Nothing found.

If the PFS154 and PFS173 are not recognised, and nothing is able to be programmed - what would you recommend I swap out? Or should I just knuckle down and go for MKIII? I am getting better at SMD!

Take care,

One Circuit
You're unique, like everyone else
 

Offline tim_

  • Regular Contributor
  • *
  • Posts: 237
  • Country: de
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1123 on: July 26, 2020, 01:28:31 pm »
Revision1 of the lite-programmer finally arrived from JLCPCB. I made a minor mistake in one resistor value, but everything else turned out nicely and the programmer is fully functional. There is plenty of space on the PCB due to switching to 0402.

The programmer is optimized to be fully assembled by JLCPCBs assembly service, only a few parts have to be added manually (button, USB, inductor, crystal, connectors).

I will prepare documentation on how to order an assembled programmer during the next days. I hope that finally provides a remedy for everyone who had issues obtaining a programmer.

I also have a few left-over boards - send a PM to me if your are interested.

1033424-0

Also the break-out boards, that can be plugged into the programmer, arrived.

1033428-1
1033432-2



 
The following users thanked this post: icraftcrafts

Offline tim_

  • Regular Contributor
  • *
  • Posts: 237
  • Country: de
Re: EEVblog #1144 - Padauk Programmer Reverse Engineering
« Reply #1124 on: July 26, 2020, 02:08:22 pm »
If the PFS154 and PFS173 are not recognised, and nothing is able to be programmed - what would you recommend I swap out? Or should I just knuckle down and go for MKIII? I am getting better at SMD!

This is actually rather strange, since the PMS150 is actually more critical. At least probing should work.

Have you checked voltages with "easypdkprogtest.exe"=?
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf