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.
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)
So one should introduce a "quiet" mode, for power users who don't have a lot of power available (no, not serious)
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.
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.
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.
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?
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.
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
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)
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).
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-clockIt 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.
Feel free to suggest new 'features' or make pull requests with enhancements or bug fixes.
Does the PFS173-S20 really exist? It is not listed on LCSC nor on Alibaba. It's only in datasheet...
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=5989878677140.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 :-)
I did something wrong. Now all digital output goes down to 0V and up to 5V.
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.
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.
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
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
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.
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
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.
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
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.
Also the break-out boards, that can be plugged into the programmer, arrived.
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"=?