Chris Gammell Build Log

Wow that’s quite the machine! I can imagine Tim Allen using something like that if he needed to spin some boards.

Oh, not a full reflow, it’s one of the desktop ones:

Hi @ChrisGammell,
I worked at a small custom PCB contract fab shop in the '90’s. We used aeresol cans of carburetor cleaner and a small nylon brush to remove leaded solder flux. The lead free flux at the time was water soluble.

hi @ChrisGammell,
Did you get your Whizoo oven built? Looked at the kits a few months ago and was very impressed by his latest version. In my opinion these kits are the best route to take next to buying a commercially made oven. I’m planning to build one when time and finances allow. Which oven did you start with?
In one of your posts you encouraged others to not be intimidated by SMD soldering. Have good soldering skills as I’ve had many years experience soldering through hole and little with SMD’s. Not afraid to dive in except the problem I have is poor eyesight. I’m hoping a head mounted magnifier and some type of inspection microscope will make it possible to.
By the way, I really enjoy the AmpHour. Thanks for all your effort

I tried reflow a few months ago. I’d never done it before, but this had a chip that was nearly impossible to hand solder (20-QFN), so reflow was the only practical way.

I was looking at the Whizoo, but really didn’t want to deal with the insulation stuff. I had a plain old toaster oven at home. Black & Decker, circa late 90s, mechanical controls. So I tried to just use that. Small board, put it onto a piece of aluminum I had lying around to act as heat spreader. Took the K-thermocouple from my DMM, stuck into a PTH hole in a spare piece of PCB, placed it next to the board being made.

Just by watching temp on the DMM and turning the oven on/off I was able to follow the recommended profile almost exactly. Turning it on, the temp rises were almost perfect, it didn’t cool much during rests.

At the end, I just opened the oven door and pulled the board out (by the aluminum spreader) to bring the temperature down faster.

Worked like a charm. I made 2 identical boards, one using a hot air station, the other with the oven. The oven was much more convenient and the results were better (got one solder bridge with the hot air).

Since the whole profile is 5 minutes, watching the oven for that long wasn’t an issue. I wouldn’t want to do it for production, but for one-off prototyping and educational board it was great. Going to reflow as much as possible from now on. Only reason I’ve been hand soldering the CE projects is because I didn’t want to spend the $5-10 on a stencil for each one :slight_smile:

So I probably won’t bother to invest in a controller. Might build one myself, for the heck of it, some day, but not buy one.

Wow, 6 years since i updated my build log. That’s a gap, eh? I have a new project not related to any work, so I thought I’d post about it!

I have been intrigued by the ch32v003 chip, the “$0.10 RISC V microcontroller” since CNLohr was on The Amp Hour

I bought the breakout from Tindie and tried out some of the examples in the ch32v003fun library that CNLohr wrote alongside a community on Discord. Really great work! I had previously seen Dave (my cohost on The Amp Hour) try out the MounRiver IDE based off of Eclipse, but I was less interested in that (Windows only, HAL, etc). I think something like the ch32v003fun library is a great target for some low level development. Maybe others on CE would feel the same!

Most of the boards I have seen are targeting the 20 pin TSSOP, but I wanted to try out the 20 pin QFN, so that’s what i targeted. It’s not $0.10, but still very reasonable, think I had 150 of them shipped to me off LCSC for $30 total, incl shipping? I’ll take it, especially for an experiment like this. Here’s the board:

It’s a 2 layer board that I wanted to get over to JLC before they all leave for CNY, which I managed to do. I ended up ordering parts off of Digikey instead of LCSC because of concerns about things getting out in time, but future versions would probably target JLC assembly. I think I’d also target the 4 layer board because it’s better practice to have controlled impedance from the USB to the chip (more on that below). Let’s talk about what’s on here:

  1. An nRF24 breakout header
  2. An i2c OLED screen
  3. An i2c QWIIC / STEMMA header
  4. A programming header
  5. LEDs on 3 pins
  6. A user and a reset button
  7. Breakouts for all pins
  8. A USB connector

Numbers 1 and two are because there are code examples and I’d like to have two boards communicating over 2.4G and then displaying messages on the OLED. That should involve gluing code together, which is always its own challenge. Number 3 is to make things a bit easier to tap into the ecosystem of sensors without bundles of wires going to the breakout pins in number 7. Similarly 5 and 6 are there so I can test inputs and outputs and troubleshoot.

The programming header was copied from the breakout board that I got off of Tindie. Looking at the other available programmers, I’m not sure that the pinout is the same, but with 0.1" headers, I can always just jumper. Honestly the only thing that is required is the SWIO pin that’s on board:

OK, onto number 8. I added a USB connector for power (which can also come from the programming header) just like on the breakout shown above. However, the board above doesn’t have D+/D- connected. That’s because there isn’t a USB transceiver on board. Instead, CNLohr has been working on the rv003usb library (beta! beware!) which aims to connect to the pins onboard and then toggle the inputs/outputs as necessary. He was able to get the code to fit into the bootloader, which means you still have all the other space available for your programs. The library for USB also includes examples where the device will show up as a keyboard HID and other low speed items. That’s important because it’s low speed only. Which also means that my very poorly unmatched layout above will probably work. I will try things out and see how it goes. Future boards would target a 4 layer process so that it’d be much easier to get to a controlled impedance without any crazy dimensions required.

I have pretty low expecations on the timeline of this project, but thought it’d be good to post here for future-Chris to look back at.


A month ago they released Arduino support for the CH32V if that matters any (quick way to get started, but I normally do bare bone development)

WCH CH32V Series: Arduino Support & Affordable RISC-V Microcontrollers (

I saw that, interesting! Definitely makes it another viable option over something like the ATTINY85, I think a lot of people used Arduino for that. Personally, I’m more interested in using the library and doing some low-level development. It’s nice to know that it’s an option if I wanted to pull in something like a LoRa library (Radiohead) on a future project.

Update: Two boards talking to one another!

The code has been generally great to work with. Found there was a GPIO helper library so there is a bit more clarity in the code when turning LEDs on and off. Really have been leaning on the community driven efforts of CNLohr and his crowd, this is a great set of starter code. I basically just had to pick out the matching modules and everything “just worked”. I did manage to mangle the code when trying to pull in the OLED stuff into the nRF24 tx and rx samples, but this is life, no? :smiley:

One thing that excites me about this is the building block nature of it all. I now have a low cost wireless link between boards. I have a standard, albeit small, output mechanism for unconnected operation. I have a dirt cheap chip.

Things I’d like to work on in the future:

  • This was all printf debugging, which generally worked fine. I’d like to try out some step debugging to make sure I can really dig in if I’m writing more of my own drivers and control modules. I feel like I probably suffered unnecessarily with shuffling the OLED code over.
  • I want to try out more of the peripherals, of which there are many example libraries. i could probably try out the ADC input on one of the pins and use that to send values over the wireless link.
  • Need to dig in and see what the USB library looks like (link above)
  • I am not really following best practices…I should probably move this stuff into a repo…


One marker I’d like to leave here is the clock speed. It seems like the operation of the boards is much faster when I’m plugged into the debugger, vs just powering the board over USB. This is particularly noticeable for the TX unit.