I recently ordered my first PCB at dirtypcbs.com and the result was promising. So there was nothing stopping me from finalizing the Rev B of my standalone Ultrasonic Anemometer and ordering a protopack. I’ve placed the order a few days ago and expect the boards to arrive here in 2 to 3 weeks. This should be good news for all those of you who have been asking for kits and want to contribute to the further developement of this project. I’ll build up one or two boards as soon as they get here and do some testing. If everything works as planned I can order some more components and ship some kits soon after that.
So today I’ll go through the changes I’ve made compared to the previous version. All in all the changes are quite minor and only require minimal changes in software. But let’s go through them one by one.
Non-volatile memory
This is the biggest change from a functional point of view. The PIC32MX250 doesn’t have any EEPROM memory of its own. So in order to be able to save some settings an the like I’ve added a Microchip 24AA16 I2C EEPROM providing 16kbit (2kB) of non-volatile memory. That should be more than enough to store any settings and calibrations one might want to make. For example, this gives the user the possibility to calibrate the filter kernels to the transducers used. Of course, the software first needs to make use of that memory but I think it’s great to have the possibility to durably store a reasonably large amount of data.
Support for 5V I2C communication
I’ve hinted at this in a previous post. On the Rev A board the I2C signals were pulled up to the 3.3 volt rail. This was great as long as one didn’t want to interface to a 5V device such as an Arduino. The microcontroller pins are 5V compatible so you want to be able to pull those lines up to 5V whenever you interface to a 5V device. So I’ve added a diode to allow the SDA and SCL lines to be pulled higher than 3.3 volts. The I2C reference voltage of 3.3 volts minus a schottky diode drop or about 3.1 volts is accessible from the I2C header at the bottom. So just connect that to the external device’s 5V operating voltage and you have a fully compliant 5V I2C bus.
Physical layout and connectors
There was a rather large 8-pin connector on the last version to connect to the transducers. Now all the connectors along the edges of the board are standard 100-mil headers. This also allowed me to slightly shrink the physical size of the board to 60x70mm.
The pinout has also slightly changed. The board is now powered from a header on the right-upper side and all three voltage rails are now externally accessible from a newly added header on the right side. The pin order on the I2C and SPI headers on the bottom side of the board has changed, mainly to accomodate an exteral I2C reference voltage.
Power supply
The tiny (SOT23-5) 3.3 volt linear regulator on the last version worked well but got rather hot when providing close to 50mA from a 12V input voltage. I never had any issues with it at room temperature but decided to be cautious and upgrade to a LD1117 regulator in a much larger SOT223 package. This should be more than sufficient any reasonable ambient temperature..
Miscellaneous changes
I changed the digipot used to set the amplifier gain to a Microchip MCP4531. This model only has 128 steps but this is still more than sufficient for its task and it’s quite a bit cheaper than the 256-step version.
I also had to change the crystal because the model previously used became unavailable.
That’s it for now. I’ll let you know as soon as the boards get here.
I have done a few builds with dirtypcbs and have been pleased with the quality. As a novice board designer myself, is there a reason you decided not to do thermal connections on the ground plane?
Hi Paul.
Very interesting question. You mean the fact that I’ve un-checked the “Thermals” option for the ground plane? My understanding is that this is an option to faciliate the soldering process by reducing the thermal mass of pads on the ground plane. By only allowing thin connections to the from the pad to the ground plane it hinders the spreading of heat. While this might be convenient for soldering I don’t generally want that. I want the heat to spread from heat-producing devices (mainly the 3.3 volt regulator in this case) to spread to the ground plane. So they can use the ground plane as a heat sink.
But that’s just my 50 cents. I’d be interested what more experienced board designers have to say on this. Is it necessary to have thermals for serial production, i.e. for soldering in a reflow oven? How do you deal with parts like power transistors or linear regulators that need the board as a heat sink? Can someone shed some light on this?
regards
lukas
I’m not familiar with Eagle, but I’d assume there’s a way to individually set thermal relief on a per-pad basis, rather than a global checkbox for the whole plane. If it were me in this case I’d do thermal relief on all pads except for the tab of the regulator. In most cases if parts have a tab on them then that is the connection the manufacturer usually intends to have the majority of the heat transferred through. You’d have to refer to the datasheet of the specific part being worked with, but generally the tab connection will have a much lower thermal resistance than the pinned connections and as such will be the one you want to skip thermal reliefs on. A lot of datasheets don’t even specify the thermal resistance of the pinned connections when there is a tab present on the device, implying those connections are not intended to transfer heat and can use thermal reliefs on their pads.
Including thermal reliefs would make it easier if it was being hand-soldered. Without relief, the heat being applied by the tip of the iron will be quickly pulled away since the ground plane starts at a lower (room) temperature. If it was being reflowed in an oven it wouldn’t matter so much since the whole board, planes and all, is brought up to the same temperature (more or less). Heat won’t be pulled away by a plane that’s already at the same temperature. Large copper masses/planes will take longer to heat up though, so there might be a little temperature differential but not nearly as much as when hand-soldering.
I am looking forward to your kit offering! Count me in (if you’ve got enough). If it would be easier for you I could buy just a board if you provided a BOM as well. I do have an oven I use for reflowing boards and might be interested in building a kit using that technique, but I’d also need a paste stencil. If you do provide kits it would be appreciated if you posted a Gerber file of the top paste layer. Thanks!
Hi Seth
Thank you for having taken the time to write such a detailed explanation. Very insightful. Eagle allows you to set this on a “copper plane” basis. Maybe also on a per-pad basis but definitely individually for each copper plane. So in this case I’d turn thermals on for the ground plane but off for the two +3.3V planes. The regulator’s tab is connected to Vout and I’ve included a copper plane on both sides of the board (with plenty of thermal vias between) to serve as a heat sink.
About the kit: There’s definitely one for you. I’ve also ordered a stainless steel stencil and have access to some reflow soldering equipment but not a reflow oven. What kind of oven are you using? Is there anything you can recommend? I’ve been looking at the LPKF offerings: http://www.lpkf.com/products/rapid-pcb-prototyping/smd-assembly/soldering/index.htm. They look nice and while they are expensive, they are not completely out of reach financially.
I’m working on the BOM and I will definitely share this as well as all the Gerbers.
cheers
lukas
Ahh okay, thanks for letting me know about Eagle. I use Kicad and it has the per-pad thermal relief setting. I thought Eagle would have it too. I did see the array of vias in your board renders you’re planning to use for passing heat from the SOT223 to the backside – that looks like it should do the job. It would have been nice if the regulator’s tab was GND instead so the entire bottom plane could act as a heatsink, but it looks like you’ve got a pretty good size area on the bottom. Altogether it looks like a really well laid out design from what I can tell!
The oven I use is just a simple small kitchen electric oven. It’s a Breville BOV845BSS. I’m just a hobbyist so I don’t need anything too fancy. Plus I could always use it to cook a Pizza! I chose that one because it has a built in fan (good for keeping a more uniform temp within), front window (required to see when solder paste starts melting/has completed reflow), and the five elements inside can be switched individually for better control. Well, I know at least the top two (front/rear), two on the bottom and top center ones can be switched as groups. I had read that ovens with four or less elements might not have the ability to heat the board quickly enough so I searched for a five element oven. I initially planned to modify it with a custom controller, but so far simply setting it on the Pizza setting and watching for reflow has worked flawlessly. Ironically the Pizza setting doesn’t even use the top center element (and I don’t think any other settings use all five at once, but Pizza was the closest). If I ever needed that extra heating power I’d do the mods on it, but so far it hasn’t been needed.
Awesome news on the kit. I really want to thank you for spending the time not only to do extensive testing of your prototypes but also to do nice write-ups and share it with the world. It’s cool being able to read up on your latest progress. I really appreciate it when people share their creations, especially if they involve electronics design!
Very nice, look forward!
amazing job, as always !!!
put me in the queue for one (at least) of those boards
Hi Lukas! It is, and has been so far, very interesting to follow your wind measure project. For people like me, who has been measured weather data for +15 years, it has been especially interesting, because the equipment I (and thousands of others out there) use, is based on Davis weather system, with the problems it can gives over time.
So I have for years, been looking for a way to get an ultrasonic measurement for the wind, as a replacement for the Davis system, and to could get it to fit into their system.
So far, the available systems on the Market, is very expensive, and do cost more than the whole davis weather station system.
So I’m sure, that there sits thousands and thousands of people, around in the world, and looking for systems like yours, to come on the market, for a price which are more attractive, than those existing.
So I hope your project soon will be awailable for sale, and I will be one of teh first to buy it 😉
And my next hope is, that you maybe will go the way, to adapt it, to directly could fit into a Davis system (pulse counting for wind speed).
A great thanks for all your works so far. Great, that people like you, want to share your interesting work with others, around.
Hi Bernth
Thank you for your very encouraging post. Emulatin a pulse counting meter would be an easy task which could probably even be done in software with the current hardware. A kit is just around the corner, I’m talking days, not weeks. Just be aware that the software is not yet ready to be deployed so the first batch is aimed at people who want to participate in the experimentation and software development. But I’m confident that together we can make this thing work. I’ll post some more on this soon.
regards
lukas
Thank’s Lukas! It’s like Christmas time for “the Kids”, where the excitement for the unknown gift, soon is to be revealed 🙂
I really look forwards to the Kit is comming! and that it’s so close, is nice.
Once again, thanks for all the time you have been using, to make this project a reality, and public.
And maybe the Pulse counting can be done in an easy way. And as I wrote in my previous post, there are many out there, who want to could use it together with existing weather stations, and by this, also already existing weather software, used together with the weather stations hardware.