Category Archives: Engineering


CSI853B+ Reviewed – Preheater & Desoldering System with Hot-Air Gun

Published by:

TL;DR, if you’re in the market for a toaster oven or electric griddle for SMD PCB soldering, skip it and get this, or it’s simpler cousin, the CSI853B. If you’re in the market to do PCB desoldering rework on a tight budget, take a look at this as well.

As an electronics hobbyist, I’ve done a fair amount of PCB work and experimented with soldering surface mount devices.  My latest project is an automated, bluetooth-enabled roller shade designed for some hard-to-reach windows.  In includes a particularly amazing device that includes a fairly capable, low power CPU with integrated bluetooth radio (and 48 leads) in a package about the size of an eraser head.  The trend towards miniaturization is nothing short of amazing, but it poses challenges for the DIY electronics enthusiasts out there. Wondering how I was going to get this device soldered on, and whether I could do it myself or if I needed to pay for PCB assembly, I began searching the web for tools or methods on assembly of fine-pitch devices.

Now, I’m not a stranger to SMD soldering. I’m familiar with the common practices of using a hot plate or toaster oven with solder paste, and I know that the key to fine pitch soldering is a solder mask (though I’ve made do without in the past, with mixed results). I can comfortably solder something as small as a QFP package without a solder mask, but going any smaller poses some difficulty, and paying someone else to do it gets costly when the standalone parts can be as low as $2-3 and the finished, soldered boards go for 10 times that. Electric griddles and toasters do work, but in my experience they limit your ability to work with the boards while hot, are prone to scorching the board, and at least in the case of the griddle it provides uneven heating. It’s easy to overheat a board and brown the solder mask in an attempt to get the whole board flowing.

It was under these pretenses that I found myself a few weeks back looking for a deal on low temperature solder paste, when I came across a video of someone demonstrating “desoldering alloy” on a hot air PCB workstation. I marveled at how easy it was for the demonstrator to work with the hot board, removing large SMD ICs, sweeping away excess liquid solder, without any rush or concern for overheating. The cost of his station was well north of $1000, but it had me searching, and that’s when I came across the CSI853B and CSI853B+ from Circuit Specialists. Not only do they threaten to be a great value, I couldn’t find any other purpose built devices that were remotely close to the same value. I found a larger device for about three times the price, and a similar but simpler Weller device for about 10x. I also found some hacks online that use what amounts to a 3D printer heating plate, but they didn’t get hot enough to actually flow even low temperature solder so they can’t really replace the use case of doing surface mount soldering with just a hot plate. Also, the bill of materials for the hacked solutions were roughly what these cost.

The point of a workstation like this is to be able to provide controlled heat to the board, and to secure the board in place so you can work on it while hot. Even if you don’t intend to solder with the heater, preheating your board reduces stress on the components and makes it easier to solder with an iron or hot air. It needs to provide even heating and maintain a temperature relatively constant to avoid overheating the parts while you work. On these fronts, the CSI853B works admirably, especially if your board size or working area is 120mm square or smaller. The CSI853B+ model is the same preheater system, with the addition of a hot air gun and a boom for holding it.  They both claim to provide the same PID heating logic and element. I opted for the “+” model, because I don’t already have a hot air gun with precise temperature and flow settings, and I wanted the best shot at successfully working with fine pitch SMD devices, but minus the gun and the lack of controls for it both products are the same heater.

I tested out the product with one of my designs in development, a 100mm square PCB that hosts an NRF52832, packing a 48-pin device into 7mm squared. It also has an MCP73871 battery charger, which is slightly less dense at 20-pin, 4mm squared, and a DRV8832 stepper driver which is a 24-pin TSOP “gull wing” pin package 8mm long.  I’m judging it on two key criteria: ease of use, and results.

Ease of use

In the case of the “+” model, the workstation came partially assembled, with no instructions.  It’s a relatively simple device, but it could have benefitted from some basic instructions. It comes with several types of screws and there are a few different places where things could go. It also has a little booklet, but it doesn’t really contain anything useful in the way of assembly help. I ultimately referred to product images on the website to determine how things should fit together.

I was missing one bracket, pictured below, which I emailed support at Circuit Specialists about and have not gotten a response. They do have a phone number to call for support, but I just haven’t gotten to the point where I want to be bothered to talk to a real person. The operation of the workstation so far has not been affected by the lack of the bracket.

The operation instructions are fairly straightforward.  Plug it in, place a PCB in the clamp, turn on the heat via switch, set the temperature, and wait for heat. That’s really all it takes. For the hot air gun, its temperature is controlled the same way, with big blue up and down buttons, but it additionally has a flow rate knob that you simply turn to adjust. The flow rate adjustment is a smooth, potentiometer style control.

There is one minor difference between the “+” model and the standard, aside from the air tool. According to the manuals the standard model has a red button that the user needs to push to toggle between showing the set temperature and showing the heating temperature. The “+” model handles this seamlessly, when you push the adjustment button the display changes for a second to set temperature, then changes back to the measured temperature.

The PCB clamps are nothing special, but get the job done. They aren’t fancy linear bearings or anything, just aluminum bars that have holes on either side and a rod threaded through them. Set screws with large handles hold the bars fast to the rods where you desire.

One minor oddity, the model I reviewed has a “Temp. C/F” label, but no obvious way to toggle the units. Referring to the manual, I found that it reads “Displays in Celsius only”.


Overall I was very pleased with the product. I began by using a stencil to apply  Chip-Quik low temperature (138C) solder paste to my PCB, then placing all of the surface mount parts. I then transferred the PCB to the workstation, clamped it into place, and then turned the heat to 160F. It took approximately 4 minutes, 40 seconds to get the heating element to its setpoint. At about the same time, the paste on the PCB began to liquefy, and within 30 seconds about 90% of the board was flowing solder. I bumped the temperature to 170C, waited another 30 seconds, and the board was done. I then turned off the heat and let it cool a bit before removing the board and inspecting. Everything looked good, so I tested the board and everything seemed to work, including the battery charger, bluetooth radio, the ARM Cortex debug header, and CPU to stepper motor controls.

Focusing more on the heating plate, after a few hours I put a fresh PCB on, this time with no older or components, and turned the temperature to 170F again. I timed the heat process again, this time it took 4 minutes, 50 seconds to reach the desired set point.  The manual describes the set point as the element temperature. Monitoring the top of the PCB, I found it hit 137C, then cooled a bit, going as low as 120C before bouncing back. This indicates to me that it might not hold temperature sufficiently to do extended soldering rework purely with the plate, though perhaps the temperature could be bumped a bit without risking overheating the board, as 160C is pretty low for solder work. I should mention that my setup has an HVAC vent in the ceiling directly above the workstation, and it was gently blowing air at least part of the time. It’s probably also worth noting that one would want to use a desoldering alloy if the task at hand was to rework a board that has standard temp solder. The plate itself can be adjusted up to 400C, but in the interest of not burning the board or having to work quickly with high heat, working at lower temperatures is desirable.

The hot air gun with the plate is really the killer combination. I went back to the original PCB I soldered, put it on the workstation, set the temperature to 160 and then let it heat. Once it reached temperature, I set the hot air to 250C and turned the air flow to about 30%. I used the gun to spot heat while I removed all of the fine pitch devices with forceps. Placing them with fresh paste is one thing, but I wanted to see if I could manage to remove and replace them without having any weird shorts, or if I could get it to function at all. I removed all of the devices quickly and easily, let things cool, and set it all back up and placed the devices again by hand. Amazingly, I had no problem doing this, and had no board scorching.

The air gun is easy to use and gets up to temperature quickly, about 30 seconds to 250-300C. Interestingly, it seems to be able to sense when it is placed in its holder and backs off the heat and fan somewhat. I’m not sure if this is capacitive, or a reed relay, or something else, but there are no switches to be seen. When the gun is switched off, it runs the fan awhile to cool down. It comes with four nozzle attachments, I used the medium round. It is attached to the base with a 40″ cable that is flexible and roughly 1/4″ in diameter. The provided boom does a fine job of holding it in place so both hands can be free to work, but using the boom requires a bit of planning as there is no front to back adjustment. The PCB needs to be placed such that the arc of the boom is sufficient to hit the area of interest.


While it isn’t a top-end device, I found this workstation to be a great value and I’m glad I purchased it. Compared to my old electric griddle or a toaster oven, purchasing the base model at the current price of $59 versus spending $30-$40 on a small kitchen appliance to do the same job is a no-brainer. That said, I’d highly recommend springing for the hot-air gun model for its increased versatility and capability. Being able to do rework confidently and safely is great. In the past there has been nothing more frustrating than not being able to reliably get fine-pitch devices (especially small 2.4GHz radio ICs) properly soldered. As long as my CSI853B+ holds out, I feel rather optimistic that those frustrations are a thing of the past.

Arduino BeagleBone Engineering Neutrino Raspberry Pi

Neutrino Platform Update

Published by:

The Neutrino temperature, humidity, and pressure sensor has had some heavy modifications over the last few weeks. Most notably, I’ve given it the option of installing an nRF24L01+ module onboard while still providing the header for an external board. We’ve also got jumpers to select the channel, address, and encryption. It has also grown a reed switch, for use as a door/window open sensor. The Arduino library for the SI7021 pressure and humidity module has been written, and hosted on github here.

Work has commenced on the web UI, and while there’s work to do yet, this has allowed me to also flesh out the API and database. Here is a screenshot of the per-sensor and sensor group views.

Screen Shot 2014-07-11 at 12.45.57 AMScreen Shot 2014-07-11 at 12.46.23 AM

Arduino Engineering

Lepton… Smallest Arduino-compatible Board?

Published by:

Update: fabbed boards are in. Waiting on parts.



I thought I’d take a shot at making my own AVR board. I wanted to see if I could fit four of them panelized on a 5cm x 5cm board, but still keep all of the features and access to the pins. This board is about the same area as a “Teensy 2.0”, but with more features. I chose an ATMega32u4, because it has USB built-in. I succeeded in cramming the design into the space, even preferring larger components for easier assembly. It even has a 3v3 regulator. The one thing I ended up cutting was a reset button, which I seem to never use anyway. The pins are accessible to wire one up if needed. My plan is to use female headers, like the BeagleBone does, so there’s no need to be breadboard compatible.Lepton

I dub thee Lepton. Now I’ve just got to get some fabbed and try them out.


Software Defined Power

Published by:

I’ve got an idea for a new project. I’ve been working on the details over the last few weeks. As networking and server control in the datacenter are evolving into cloud and software-defined solutions, we need to pay attention to power control and evolve that as well. I’d like to initiate a solution for software-defined power controls.

Software defined power would consist of things like:

* Controlling the voltage of a port
* Controlling the branch circuits or lines feeding a port
* Auto detection of hardware connected to port, with software, not proprietary hardware
* Providing an open API standard that PDUs speak for configuration and data collection

PDUs already tend to have a lot of interesting software-defined features like port groups, load shedding, limits and alerts. These are usually only controllable through a proprietary web UI on the PDU or via a separate DC management software product. As such, there will never be advancement in the area because there can be no integration of tooling with third parties. There’s not much incentive for PDU vendors to provide this, because they want to sell their own solutions, but it hampers innovation for the end user.

Right now, if I have a 208v PDU and I want it to have a 120v port, I have to order a new PDU. It shouldn’t have to be that way. If I find a circuit is running hot and need to balance the lines, I have to go physically swap plugs. That shouldn’t be necessary. If I want to know which system is plugged into which outlet, I have to go trace cables and label the PDU in software. We shouldn’t have to. We should be able to fetch statistics and configure PDUs via an easy to use API, not SNMP.

To this end, I’m designing a reference board that will enable some of these features. I’m not sure what to do with it yet, perhaps if it works well and there’s interest I can go to kickstarter with it so that others can have copies of it to play with. I’ll figure out a name later.

Arduino Engineering Neutrino

NeutrinoWeather 1.0 – Design

Published by:

UPDATE: Over the weekend I made a minor tweak to NeutrinoWeather 1.0, rev’ing it to 1.1. This adds a 100uF cap to buffer the coin cell’s power output, which should extend life. I also designed NeutrinoWeather 2.0, which takes a stab at integrating the wireless onto the board rather than breaking it out into a pluggable module. I almost ditched that idea until I came across an awesome little antenna from Molex (for those who don’t know, a custom designed antenna technically requires FCC approval. A PCB antenna would probably be ok for personal use, but to give/sell to others without proper approval would probably be a no-no). It’s supposed to be better than the average pcb antenna, so we’ll see. 2.0 adds .2″ to the width of the board, but 1.8″ x 1.0″ is still pretty good, I think.


I’ve had this idea for awhile that I’d put temperature sensors in every room of the house. These would drive the HVAC based on an overall average, or on the room you choose at the moment, or whatever. Perhaps eventually they’d control dampers in the ducts. To be an ideal sensor (for me), it needs to be small, low maintenance, double as a hygrometer, be inexpensive, and be capable of going unnoticed. Most importantly, it needs to work, and this means having easy feedback that it’s doing its thing.

To these ends, I began looking for solutions and ran across Nathan Chantrell’s TinyTX project. It ultimately didn’t fit the bill, but it gave me some ideas. I ultimately designed my own small wireless temperature and humidity sensor device that can be hidden away on a shelf or dropped into a tiny project box and mounted via “Command Strip”. It has LED indicators that are capable of notifying the user that it is successfully sending radio updates (or not) and a low battery indicator. It also has three jumpers that allow the user to set one of eight radio addresses per-device (in binary), so the user can deploy up to seven transmitters and a receiver, without having to hardcode the addresses and flash each one. It will run off a single CR2450 coin cell (purchasable online in 5 or 10 pack for under $.50 each), and my hope is that each one will last at least 18 months. I thought about making a device that would hang off of a wall outlet, but such a device is far less flexible, and more difficult to make aesthetically pleasing for a homebrew project.

Screen Shot 2014-06-06 at 9.33.37 PM

For wireless, it utilizes the nRF24L01+ module that I’ve mentioned in the past, attaching via header on the back side. This will radio in to the raspberry pi base station, where I’ll control the HVAC via relays and serve up the controls via web interface.

The LEDs are high-output, low power. I expect to blink them for just a few milliseconds every time a measurement is made, and I’ve included a resistor to limit the current to just a few mA. Green for ‘radio transfer succeeded’ and red for failure. Amber will indicate low battery, less noticeable than a smoke alarm chirp I suppose. Of course, all of this notification can and will probably be done via the data, but there’s something about onboard indicators that make a product feel polished and complete.

As a bonus, I added a barometer onto the package, mostly just because I could. In all, the device measures 1.6″ wide and 1.0″ tall. With the wireless module and battery attached, it should end up about 8-10mm thick.

I’ve dubbed this tiny microcontroller platform ‘Neutrino’, since it both fits in with the particle theme of my blog and rhymes with Arduino. I named this particular one ‘NeutrinoWeather’, and hope to build several other Neutrino devices based on the same microcontroller on front, coin cell on back design. I toyed a bit with making a flexible design that exposed all of the pins via headers, but opted for the smaller single purpose design because 1) it’s cheap and easy to get small boards made, and 2) if I want to build something on a board that requires jumper wires, I’ve already got quite a few ATMega328 and ATTiny microcontroller boards floating around, and 3) If I do use jumper wires, it’s probably just intended as a prototype anyway.

I drew up the prototype in Eagle, the defacto hobbyist PCB making software. I tried to use Fritzing this time around, and while I found it a bit more intuitive and liked the visuals, I had a few issues (it crashed once, defining/editing packages via SVG seemed more difficult, and much simple and limited feature set) so I switched back to Eagle. It is advertised as beta software, after all. The board prototype has been shipped off to manufacturing, and with any luck I’ll be able to write an update in a couple of weeks and cover the code it will be running.

Screen Shot 2014-06-06 at 9.34.28 PM