PGCPSU / How a random test PCB became my first Kickstarter

TL/DR: have a look the PGCPSU here: PGCPSU on Kickstarter (funding until May 3rd.

Among the many things we did in 2018 was founding our company “Staudt Technologies GmbH” to manufacture and market our first ever product called Luccia. Luccia is a wireless nightlight type product with motion sensors and a nice design. But that’s not what this post is about: while setting up our manufacturing we bought this nice pick and place machine:

As neither of us ever had a hands-on experience of any sort with this kind of equipment, we decided to spin a test-run board using mostly cheaper components in the same footprints that we were to use later on.

Reusing power supply sections out of previous projects we ended up with a 5x5cm board having a three switch mode converters on it:

  • a buck stage lithium battery charger
  • a boost stage to provide a 5V rail
  • …on which another buck stage is attached to deliver 3.3V

Out of ten PCBs we had to cut our teeth on the machine, seven were “bin grade” half-populated messes, but the three remaining ones were actually usable. Even surprisingly good from a technical perspective.

As the PCB we had to populate for Luccia had a higher density, we re-spun the PGCPSU in its second revision, shrunken down to just 25x20mm. And it still was great.

The three sole survivors of the first PGCPSU “batch” ever. From the left to the right: one fully populated one with some mods, one charger only populated board, and an boost + buck stage only one

Some technical insight

All three switch mode stages employ my favourite SMPS technique of recent years: synchronous conversion. This means that instead of having a Schottky diode somewhere in the circuit, the same IC integrates a pair of back-to-back MOSFETs forming an “ideal diode” circuit which is driven “in sync” with the power switch.

This is great because it eliminates the forward voltage drop of the diode allowing higher efficiency at low loads. For the PGCPSU it has the bonus points of having fewer components to fit on the tiny board.

The projects the power supply stage circuits came from were rather low power, maxing out at roughly 100mA each, which is why the PGCPSU is highly efficient below that range. On the other hand the “sacrifice” was a rather low maximum load capability

So, “Kickstarter” I said.

While I didn’t design the PGCPSU to sell it, I planed ahead for that opportunity while preparing the second iteration. I brainstormed for a crappy name, added the “by hhtronik.com” (we have big plans for that “brand” actually) on the silkscreen, as well as some indications for the in- and outputs.

Of the nine boards I build in the first real PGCPSU “batch”, five were actually usable in the end (read: complete and not heavily modded for testing purposes). These actually underwent real-life testing in a number of “hacking DIY projects” by family members or myself.

We put it in DIY home automation WiFi sensors (soil moisture, temperature). We attached it to anything we needed power on the go. Arduinos, Raspberry PIs (Zero W), Bluepill boards etc. And it performed great. As

What happened then

Fast forward March 2019, I finally found some time to write up the campaign, make some fancy charts and some comparative benchmarking.

On April 3rd the campaign went live. And within hours the first 10 pledges were in: Oo Then, just four days into the campaign we hit the (lowly) funding goal of 1250€.

The most amazing experience about all of this has been the super nice response of big blogs like CNX-Software and Geeky-gadgets who listed the campaign super quickly (like in “sub-1h-quickly”), which is really amazing!

Getting back to blogging

Hello everyone, it’s been a long time since we last wrote. Actually it’s been a super busy time for Katharina and me, with sooooo many things happening. Between getting married, becoming parents, health drama on my side and thousands of projects we didn’t simply find any time to post here. Even if there was so much stuff we could have posted about. Sorry for that.

While we won’t be able to catch up the “lost” time and cover everything we did since then, we’ll try hard to post more often again!

Lately I’ve been posting a bit over on Instagram. As it takes a lot less time to just throw an image there there’s much chance you’ll get small updates there more frequently, so don’t forget to subscribe: @embedaddy

Open firmware for Waveshare’s 7 inch touch screen

Some time ago I was searching a touch display for a project of mine. The requirements were 7 inch in size, capacitive touch digitizer and at least a resolution of 800x480px. I figured out Waveshare’s “7 inch HDMI LCD (B)” would be the perfect match. And I was thrilled that not only it was not only relatively cheap, but they got it right and (so the claim) implemented “fully valid” HID protocol (their shop still states “When work as a computer monitor, supports Windows 10/8.1/8/7, five-points touch, and driver free”).

When I received the display, everything was working out of the box with my Raspberry Pi 2 running on Windows 10 IoT. Then the Anniversary Update came and that’s when things got weird. Over-night my slightly laggy touch display turned into one that responded to scroll movements, but I could hardly get a “click” to trigger. Later I found that thread over at the MSDN support forums: Waveshare 7 inch display doesnt work on windows 10 iot core

After a few days of discussion Microsoft acknowledged that there was some change in the HID report processing pipeline, which now discards HID reports that are malformed. The advice was to contact Waveshare to see what they could do about the issue. Long story short, I never got a satisfying answer. So I decided to fix it on my own.
Continue reading

My NLog – OWIN Adapter went “official”

You might remember I published a Nuget package to help integrate NLog with OWIN back in December 2014. And it worked great so far! A few weeks ago I got a notification from Github that my name was mentioned in some issue. Long story short, the main NLog maintainer and I decided to move Pysco68.Owin.Logging.NLogAdapter over to the NLog organization to give it a bit more visibility.

So there we go; from today on, you should use NLog.Owin.Logging to get OWIN and NLog together. Oh, and there’s a new Nuget package too: NLog.Owin.Logging@Nuget.

The usage remains the same:

Fixing bugs in MySQL Connector/NET – or how to make code first migrations work

Hello folks – just a quick post!

I finally found the time to publish a workaround I wrote back in May this year. I was hacking a fully automatic irrigation system (garden stuff you know ^^) and because I had to do that really quickly (before leaving for vacation) I decided go the route of a known framework: OWIN, ASP.NET WebAPI 2, NOWIN (as a host), Identity 2.0, EntityFramework, MariaDB, a good HTML5 stack… etc…

Well mostly a known framework; I had to run on a Raspberry and Microsoft wasn’t quite as ready with Windows 10 IoT as I’d needed it… So it was a quick decision to stick with Raspbian and Mono. Which by the way work out great. At the time of writing my little application has over 140 days of uptime! – Yay –

I’ll probably write more about the whole project in the next months!

Anyhow I faced the problem that the MySQL Connector/NET is *still* (I posted the bug on November 7th 2014 – Bug Ticket: #74726 EF migrations fail on long foreign keys) having issues with code first migrations, long entity names and foreign keys… and as I really lost any confidence that ****** is going to fix that any-time soon I decided to do it on my own…

Continue reading

Mixed authentication – NTLM with ASP.NET Identity

Tl;dr: You can use NTLM authentication without relying on IIS or HttpListener in OWIN projects by using my OWIN autentication middleware: more information on my Github project: Pysco68.Owin.Authentication.Ntlm middleware. It’s working flawlessly with ASP.NET Identity 2.0! And there’s a Nuget package too!

As you may have noticed, I’m relatively busy these days with things like OWIN and surrounding technologies. All there shiny and new things that just fit together so well. And then you have customers just requiring plain old things like NTLM for their latest shiny intranet application.

Continue reading

Refreshing Homemade Raspberry Lemonade

Homemade Raspberry Lemonade

Two Days ago we came back home from our wonderful 3 week trip to Eastern Canada, besides the stunning landscape and the open-hearted people we met, we tasted lot of delicious things (Maple Sirup, Chocolatines, Lobster, Beer from regional breweries and Homemade Raspberry Lemonade).

After an hour of hiking around the  confluence of the Saint Lawrence and Saguenay river and 1 hour of watching belugas we were looking for something to eat. Locals recommended us the “Le Café Bohème” (should you ever be in Tadoussac, just go there) where we had a very good pizza with salad and a truly remarkable Homemade Raspberry Lemonade. It was delicious! The sourness from the lemons complemented the taste and the sweetness of the raspberries perfectly.

Back home the heat (a whopping 32°C in the shadow) is hitting us very hard – but we remembered the delicious and refreshing lemonade! Thus we made our own Homemade Raspberry Lemonade. And of course we are sharing our recipe with you.

Continue reading

How-to: Hawk authentication scheme with SignalR

On a recent machine-to-machine communication scenario I needed to enable secure push messages. The server side of the project was plain ASP.NET Web API 2 (on OWIN – I just love it) so dropping in SignalR and a few hubs was done in minutes. The tricky part was that I was using the Hawk authentication scheme to secure the access (and I was very happy on how it worked out so far). So no reason to change anything about the global setup if it wasn’t for the .NET SignalR client library not supporting Hawk out-of-the-box.

But luckily SignalR sources can be crawled through easily over at github (https://github.com/SignalR/SignalR). And even more luckily I found that it would be no more that a few lines to wire it up with Thinktecture’s Hawk implementation (Thinktecture.IdentityModel.Hawk on Nuget).

So there you go, my latest, greatest Nuget packages is: Pysco68.SignalR.HawkHandler.

Continue reading

Using NLog as OWIN logger

BTW. there’s some news about that topic: My NLog OWIN adapter went “official”

While playing around with OWIN, WebAPI 2 and the other new kids I was missing a logger factory for my favorite logging framework: NLog! And I wouldn’t be a good software engineer if I didn’t wire this up in a nice tiny library.

There you go: Pysco68.Owin.Logging.NLogAdapter on GitHub

And to make it a breeze I built a Nuget package for this one! That means that you can now use NLog as logger for your next OWIN project just by doing this:

Voila! If you’d like to customize the log-level translation table just take a look at the Github page!

Note: this is not a logging middleware! If you want some of those Google is your friend. The log factory (it’s an implementation of Microsoft.Owin.Logging.ILoggerFactory in fact) does provide an implementation of ILogger that wraps arround NLog.There’s some pretty good information about the architecture at Tugber Kugurlu’s blog / introduction to OWIN Logging.

I really hope you enjoy this one! Leave a comment if you have any question or suggestions! Contributions are welcome, just fork and create a pull request, I’ll review it for sure!