Get Started with the ATMegaTiny202

As I have hinted in my recent two posts about UPDI programmers, I am currently looking for a solution to replace the ATMEGA328P chip used in standard Arduino devices, like the UNO and NANO.

The global chip shortage seems to be still hitting hard, with these devices (Arduino UNO, NANO), and even bare chips being quite hard to get hold of, and when you do, they are quite more expensive than they used to be.

This sent me on a new journey, to find a new chip, that is easy to use, inexpensive, and easy to get hold of. I have found 3 of these chips, starting today with the ATMEGATiny202,

ATMEGATiny 202



The ATtiny202 is a microcontroller using the 8-bit AVR® processor with a hardware multiplier, running up to 20 MHz and 2 KB Flash, 128B SRAM, and 64 bytes of EEPROM in an 8-pin package. The series uses the latest technologies from Microchip with a flexible and low-power architecture, including Event System and SleepWalking, accurate analog features and advanced peripherals.

With only 8 pins, of which we can practically use only 5 ( 6 if you have an HV UPDI programmer ). This makes it a desirable solution for small projects, with its current price of about 0.59 USD per chip ( SOIC8 PACKAGE, Element14 ) , not breaking the bank either. Not needing an external oscillator, and requiring only a single 100nf bypass capacitor, (not counting the UPDI resistor) it can indeed be a very very cheap way to get a project done… Providing of course that you don’t need a lot of Program memory or RAM, and are not trying to do too many super fancy or complicated things.

ATMegaTiny202 Minimal Breakout, on Breadboard with MakerIoT2020 Multipurpose Uart/UPDI Programmer

The wide operating voltage of 1.8v right up to 5.5v also makes it quite flexible.

My initial prototype

Getting started with a new chip is also a bit of an issue, as there are many new things to learn, recommended supporting components, and also firmware and cores that need to be installed. I have decided to build a quick breadboard-capable PCB, with all 8 pins broken out in a single row, feel free to change the straight header pins to a 90-degree version at your convenience, it takes up even less space that way.

The PCB contains only the bare minimum required components for the chip to function, but I also added onboard I2C pullup resistors, with a jumper to select them. ( Most I2C modules usually have these already, but as I build most of my own breakouts myself, I decided to include these).

A single LED brightens things up a bit, connected to pin PA3, making it possible to run a blink sketch…

The rest of the components include a 100nf bypass capacitor and the very important 470ohm UPDI resistor.

ATTiny202 Breakout-Blank PCB-Top
PCB Top view, unpopulated
PCB Bottom, unpopulated

Programming the board

I use the Arduino IDE quite a lot, and also assume that most makers and hobbyists out there will do the same. Luckily we have access to a special Arduino core, the megaTinyCore, that provides us with all we need to program this tiny little chip, provided of course that you have a UPDI programmer.

See the link above for installation instructions, as well as detailed documentation. Replicating all of that here will be an unnecessary task, as the author of the core, SpenceKonde, has already done an excellent job.

One very important thing to note on this board is that there is NO RESET PIN.
You have to manually cycle power to it, but, I have found that initiating a UPDI upload to a running chip works every time, and makes it unnecessary…

The reason for the lack of a reset pin lies in the fact that the reset is shared with the UPDI pin, and enabling it, will rob you of the UPDI functionality UNLESS you have an HV UPDI programmer, which at this time seems to be hard to find/expensive item ( Hope to build my own soon). Once again, see the above link to the core documentation for the full information on the reset pin issue…

I can not stress enough how important it is to sit down and READ the core documentation, with attention, before doing anything with this chip and core. you will learn a lot, about the chip, new features, possible problems, and how to avoid them, and also some customised GPIO functions etc…

Schematic

ATTiny202 Minimal Schematic

Manufacturing

PCB Layout

The PCB is a double-layer PCB, with the signal traces on the top layer, power traces, and the ground-plane, on the bottom layer. the Dimensions are 26.035mm x 18.669m. All SMD components are 0805. This board does not need a stencil for assembly and can be hand or hot-air soldered in a few minutes with no problems.

As many of my existing readers will know by now, I choose PCBWay for my PCB manufacturing. Why? What makes them different from the rest?

PCBWay‘s business goal is to be the most professional PCB manufacturer for prototyping and low-volume production work in the world. With more than a decade in the business, they are committed to meeting the needs of their customers from different industries in terms of quality, delivery, cost-effectiveness and any other demanding requests. As one of the most experienced PCB manufacturers and SMT Assemblers in China, they pride themselves to be our (the Makers) best business partners, as well as good friends in every aspect of our PCB manufacturing needs. They strive to make our R&D work easy and hassle-free.

How do they do that?

PCBWay is NOT a broker. That means that they do all manufacturing and assembly themselves, cutting out all the middlemen, and saving us money.

PCBWay’s online quoting system gives a very detailed and accurate picture of all costs upfront, including components and assembly costs. This saves a lot of time and hassle.

PCBWay gives you one-on-one customer support, that answers you in 5 minutes ( from the Website chat ) , or by email within a few hours ( from your personal account manager). Issues are really resolved very quickly, not that there are many anyway, but, as we are all human, it is nice to know that when a gremlin rears its head, you have someone to talk to that will do his/her best to resolve your issue as soon as possible.

Find out more here

Picture Gallery

Small and Cheap UPDI Programmer

UPDI programmers are a new necessity in my lab, as I continue my quest to find a suitable replacement for the old Atmega328P chips (More on that in another post). In a previous post, I showed you a combination UART/UPDI programmer module that I have recently designed. It would only be fair to show you where that started out, as a single-purpose UPDI programmer, based on the CH340N.

The CH340N has, according to me at least, some advantages over the CH340G in the sense that it requires very few external components, most notably that it doesn’t require an external crystal oscillator. It does however NOT provide you with all the Modem signal lines (RTS, DTS, DTR, CTS etc) that you get on the CH340G, although most people will not use most of those anyway…

The cost of the two chips is about the same, with the CH340N being slightly more available at the moment, at least in my part of the world.

The particular circuit that I am using originated from Stefan Wagner. I simply designed my own PCB around his circuit. Credit is given where it is due, as I found his site, and content extremely detailed and accurate.

While this is a serial UPDI programmer, with NO HV capability, I do find it extremely useful as a test project, and while I may invest in a proper HV UPDI programmer in the future, if the bigger part of the project plays out the way I anticipate, for the time being, this is exactly what I need.

Order your own here

What is on the PCB?

3D Render of the UPDI Programmer

The PCB is quite small, with a low component count, 6 capacitors, 4 of which is smoothing capacitors, two resistors, one Power on LED indicator, a 3.3v voltage regulator, USB connector ( Type B Mini) and of course the CH340N and a few header pins, one of which is used as a target voltage selector by means of a jumper. I did not bother with a switch as this pushes the cost of the device up by quite a bit.

Current costs for the components are around 5USD excl shipping at LCSC.

So, J1 is used to select the target voltage between 3.3v and 5v.
The other header provides VCC ( marked V+), GND and the UPDI output.

The Schematic

Schematic

Manufacturing

As many of my existing readers will know by now, I choose PCBWay for my PCB manufacturing. Why? What makes them different from the rest?

PCBWay‘s business goal is to be the most professional PCB manufacturer for prototyping and low-volume production work in the world. With more than a decade in the business, they are committed to meeting the needs of their customers from different industries in terms of quality, delivery, cost-effectiveness and any other demanding requests. As one of the most experienced PCB manufacturers and SMT Assemblers in China, they pride themselves to be our (the Makers) best business partners, as well as good friends in every aspect of our PCB manufacturing needs. They strive to make our R&D work easy and hassle-free.

How do they do that?

PCBWay is NOT a broker. That means that they do all manufacturing and assembly themselves, cutting out all the middlemen, and saving us money.

PCBWay’s online quoting system gives a very detailed and accurate picture of all costs upfront, including components and assembly costs. This saves a lot of time and hassle.

PCBWay gives you one-on-one customer support, that answers you in 5 minutes ( from the Website chat ) , or by email within a few hours ( from your personal account manager). Issues are really resolved very quickly, not that there are many anyway, but, as we are all human, it is nice to know that when a gremlin rears its head, you have someone to talk to that will do his/her best to resolve your issue as soon as possible.

Find out more here

Pictures of the PCB and Assembled Module

Assembly

I assemble all of my projects by hand, using hot air and or a hotplate for reflowing. Having an accurate stencil for applying just the right amount of solder paste becomes a necessity very quickly.
In future, I plan to have a dedicated section showing the assembly of some of the more challenging boards…

Multipurpose USB UART Module

USB-to-Serial converters are some of the most used modules on my bench. I have quite a few of them, most of them are the cheap online type that can be had for a few dollars.

As part of my new project, where I am seriously looking for an alternative chip to replace the ATMEGA328, which has become almost impossible to get, and super expensive when you do get it, I needed to get hold of a UPDI programmer.

There are many available online, from cheap to more expensive, but I wanted to build my own, as it did not seem too difficult to do.

As another part of my daily tasks, I also use a lot of ESP-type chips, which have a particular procedure to upload code via an external serial adapter.

The idea was thus to design a USB UART module that has multiple purposes, as well as being easy and cheap to assemble.

  • Be able to program ATMEGA328 Chips via Serial
  • Be able to be used as a standard USB-to-UART adapter
  • Be a UPDI programmer
  • Have a selectable target voltage between 3.3v and 5v
  • Have all modem signals (RTS, CTS, DSR, DTR) broken out.
  • Be able to auto-flash and reset an ESP32 or ESP8266 device, or similar
Breadboard Prototype Multipurpose USB-to-UART/UPDI Programmer

What is on the PCB?

The PCB is powered by the PC USB port. The target device voltage is selectable between 3.3v and 5v. The device mode can be changed from UART to UPDI mode with a jumper. An additional header specifically for ESP32/ESP8266 devices is provided, giving access to the FLASH and reset signals for the ESP device.

The USB to serial conversion is taken care of by a CH340G Chip, which provides all the relevant modem signals as well.

All signals, with the exception of the “RING” signal, are broken out onto the main header.

Note that there are NO status or POWER LEDs on the board. This was on purpose, as these sometimes interfere with the UPDI programming mode.

Prototype PCB – Assembled

PCB – Top
PCB – Bottom

Connecting to different devices

ESP32 or ESP8266 Devices

When in UART mode, the device can be used to upload code to an ESP32/ESP8266 automatically, similar to a standard dev board, without requiring you to press and flash and reset buttons.

This is achieved by connecting the device as follows:

UART MODULE SET to 3v
UART VCC to ESP 3v
UART GND to ESP GND
UART RX to ESP TX
UART TX to ESP RX

(Connections for Auto Upload/Reset)
UART RST ( on ESP-Flash Header) to ESP RST
UART GPIO0 ( on ESP-Flash Header) to ESP GPIO0

It will now be possible to flash and auto reset the connected ESP device from the Arduino IDE, and possibly others as well…

Arduino (Atmega 328P)

In the current version of the prototype, you have to connect it as follows:

UART Target voltage set to 3v or 5v depending on what type of board you are uploading

UART Tx to Arduino Rx
UART Rx to Arduino Tx
UART VCC to Arduino 3v or 5v ( depending on the target voltage required by the board you are flashing)
UART GND to Arduino GND

To allow for auto flash/reset on the Arduino, a 100nf capacitor is required between the UART DTR line and the Arduino Reset pin. This capacitor has NOT yet been fitted onto the PCB, as I usually use ICSP to upload these. Future versions of the PCB shall have this included.

ATMEGA4808/4809 and or ATTiny with UPDI Interface

This device is currently an LV-only UPDI programmer. Connections are as follows:

Set Target voltage on J1 of the UART/UPDI programmer.
Set The Device mode on J2 to UPDI mode

Connect VCC and GND from the Programmer to the target chip/board
Connect Programmer UPDI pin( shared with RxD) to Target UPDI pin.

General use UART for use as Serial monitor/Terminal

Set target voltage on J1
Set device mode to UART on J2

Connect VCC, GND from UART to the target device,
UART Tx to Target Rx
Uart Rx to Target Tx

Optionally connect required modem signals, RTS, CTS, DTR, and DSR as needed

Manufacturing

The PCB for this project has been manufactured at PCBWay.
Please consider supporting them if you would like your own copy of this PCB, or if you have any PCB of your own that you need to have manufactured.

PCBWay

Some Links to things used in the project

MakerIoT SMD Prototyping Breadboard
Order this PCB from PCBWay

A Soft Start Circuit Experiment

Every single project that we build needs an On/Off switch. Hardware switches are big and clumsy and can be quite expensive. Most of them also don’t look very good.

This post will be about an experiment that I recently performed, building a reliable soft start circuit, or latching circuit.

Full disclosure: I did not design this circuit. Full credit to the designer, who shall be mentioned later.

As such, This shall be about my experiences with this great little circuit, and also to show off the neat little prototype PCB that I designed and had manufactured for this experiment. It only took a few minutes to design, and even less to assemble.

The Schematic

Schematic

How does it work?

To answer this, let us look at what components are in the circuit first.
Q1 is a P-Channel Mosfet. I chose the SI2301, because that is what I had lying around.
T1 and T2 are NPN BJT transistors, I chose S8050’s here, and also tested 2n2222a’s with great success.
Other components are 3 100k pullup resistors, 1 1M pullup and an 1k dropper resistor for the indicator LED.

In the off state, R1 (100k) keeps the gate of Q1 tied to the supply voltage, thus keeping the MOSFET switched off.
T1’s collector, also connected to the MOSFET Gate, are thus pulled High, with the Base of T1, although pulled High, connected to the Drain of Q1.

Q1 is still off, so that base will be low, for now at least.

The collector of T2, is pulled up to the supply voltage via R4, and also, through the push button, to the base of T1.

The base of T2, is pulled up via a 1M resistor to the drain of Q1, and a 22uf to 47uf electrolytic capacitor to ground.

The emitters of both T1 and T2 are grounded.

When you press the switch, the base of T1 goes high, and this switches T1 on, pulling the gate of Q1 to ground, switching it on. This now pulls the base of T1 high through R2, latching it on, and keeping Q1 switched on. This also pulls the base of T2 high through R3. As T2 is now also switched on, the junction between the collector of T2 and the switch is now for all purposes a ground.

Now, when you push the switch again, the base of T1 is pulled down to ground via T2. This switched off Q1. As the capacitor on the base of T2 can now discharge, the circuit is reset, and the next press of the switch will turn it on again.

How big a load can be switched?

Obviously this depends on the rating of the MOSFET at Q1. In my experiments, a load of about 150mA was easily controlled, but more than that, started to somehow drain the cap at C1 too fast, and the circuit would reset.

This is not a problem to me, as the circuit is ideal to switch a relay, which in return can switch the main load.

What other issues did I encounter?

The SI2301 seems to have a small amount of leakage, which allowed a few millivolts to activate T1 or T2. I solved that with the addition of a 10k pulldown to ground, on the base of T1.

This does not seem to be the case with other MOSFETS, and I believe changing the value of R1 to provide a stronger pullup, might solve this issue.

Where does the circuit come from?

I found the circuit, and explanation on the excellent Youtube channel EEVBlog.
The owner, Dave, does an excellent job of explaining how this works. All credit to Dave for this excellent circuit!

It has zero current consumption in the off-state, and very little when on.

Manufacturing

The PCB for this project has been manufactured at PCBWay.
Please consider supporting them if you would like your own copy of this PCB, or if you have any PCB of your own that you need to have manufactured.

PCBWay

Conclusion

I believe this is a great little circuit to keep around, with many excellent use scenarios. It does need a bit of fiddling to get to work perfectly every time ( as you can use many different P Channel Mosfets and NPN BJT transistors)

It provides an excellent alternative to a mechanical switch, and for my own use, the PCB Module is small enough to be mounted into an enclosure with another project with ease.

8Ch NMOS Breakout Module

As a companion module to my recently published 8Ch PMOD breakout board,
I decided to do a similar PCB, but with NMOS devices instead. This opens up more possibilities for proper testing and prototyping, as PMOS and NMOS devices has different use applications, and most importantly, can sometimes even be combined for a particular purpose, like an H-Bridge motor driver, for example.

8Ch NMOS Breakout

What is on the PCB?

As NMOS devices function quite differently from their PMOS counterparts, it did not make sense to reuse the PMOS board, and just change the devices… although some people may be tempted to think you could…

The N Channel Mosfet basically “works in mirrored mode” from a P Channel one, and is used to do so-called ” LOW Side switching” which means that your load connects to the positive power rail, and then to the DRAIN pin of the MOSFET, with the source being connected to ground… ( It can sometimes also be used the other way around… but lets not go there now….

The current prototype PCB contains 8 BSS138 NMOS Mosfets, in my case, with is capable of about 800mA of current… All source pins are internally connected to ground. This forces you to use this module as a low side switch…

Two 10-way 2.54mm headers are provided, with a ground pin on Pin 1 and 10 of each of these.

The Drain pins of each NMOS device is available on the top header, labeled D1 through D8, and the Gate pins of each respective NMOS device is available on the bottom header, labelled G1 through G8.

Each gate has a pull-down resistor to ground, to keep it from flapping around, as well as a gate resistor. In my case, I selected to use a 10k pulldown, and a 1k gate resistor, as that is sufficient for my general needs…

Each NMOS device also has a LED signal indicator, to assist in visual confirmation of a specific channel’s state.

PCB Top Side

The Schematic

Schematic

Using the breakout

The module is very easy to use, and as briefly mentioned above, you are only required to connect one side of your load to the positive supply rail, and the other side to the drain pin of your choice.

Connect the ground pins of the module to your ground rail.

The Gate pin, with a corresponding number to the drain you have selected, can now be connected to your GPIO of choice on a microcontroller.

Drive the pin High to switch on the load, drive it log to switch off. Easy.

Please note: While the NMOS devices used on the board can handle quite a lot of current, (800mA in the case of the BSS138), it is not recommended to try and pull too much current through a single channel. The PCB traces can safely handle about a maximum of 300 to 400mA per channel.

PCB Bottom

Manufacturing

The PCB for this project has been manufactured at PCBWay.
Please consider supporting them if you would like your own copy of this PCB, or if you have any PCB of your own that you need to have manufactured.

PCBWay

Example code for using the breakout (Arduino)

// Example code for 8Ch NMOS breakout
int Gate1 9;
int Gate2 10;

void setup() {
  // drive the two gate pins low to ensure NMOS devices
  // are in a positively known state at startup
  digitalWrite(Gate1,LOW);
  digitalWrite(Gate2,LOW);
  // Set gpio to output mode
  pinMode(Gate1,OUTPUT);
  pinMode(Gate2,OUTPUT);

}

void loop() {
  // Toggle the two channels in an alternating pattern
  digitalWrite(Gate1,!digitalRead(Gate1));
  digitalWrite(Gate2,!digitalRead(Gate1));
  delay(1000);  

}

Dual 555 Latching Switch Module

In a recent post, I looked at a single-channel version of this module. While it may be a repetitive post, I will continue, as it shows how easy it is to double up on this circuit to provide more than one latching switch on a single circuit board. The current drawn by this module is so little, even when energised, that it compares favourably with even a microprocessor-controlled solution.

The real advantage will obviously be the cost, as the hand full of discrete components needed for this is way cheaper than a microprocessor alone, and the fact that it doesn’t need any coding makes for an attractive solution.

It is however worth noting that the circuit is quite sensitive to external interference, sometimes resulting in unwanted operation. This does not concern me too much, as 1) This is still a prototype and 2) While it does work as intended, and surely is quite useful, I do not intend using it to switch any high current load, or control any expensive or important equipment.

Since the previous post looked at the base circuit in detail already, I think it will be a good idea to talk a bit about electrical isolation, tracking and keeping the AC and DC sides of a circuit separated completely

In the picture above, we can clearly see that the DC side (near my hand, at the top is contained completely on the right side (top in this case) of the PCB. The hashed copper pour also stops clear of the two relays. There are only four tracks
going to the relay coils, and they are all on the same layer of the PCB.

Also note the square cut-out slot around the common terminal of each of the relays. This provides additional isolation to the relay, as well as the DC side of the circuit, as air is a very good insulator ( at least for 220v at no more than 10A — or so I was taught …) These cutouts will prevent any mains voltage of tracking, think burning towards, towards any other tracks in this area.

The entire left-side top layer ( underneath the relays) are also completely free of copper, to make tracking even more difficult.

If we now look at the bottom layer of this same PCB, we will see that the DC side and its ground-plane are once again completely separated from the relay contact terminals. Also note that the tracks connecting the screw-type connector and the relay terminals are very thick (100mil), straight and as short as possible. All copper around these tracks has also been etched away, further reducing the chances of tracking.

In a production PCB, Warning labels would also be present in the bottom silkscreen of the PCB in this area, warning the user of the possibility of mains voltage in this area. As this is a prototype, and to make the above-mentioned points easier to see, I have not added these labelling on these boards.

Important Disclaimer:
Electricity is NEVER “SAFE”. There are only safe practices and procedures. It is always the responsibility of the user to ensure their own safety. While the design shown above is considered “SAFE” by myself, I only consider it “SAFE” because I am aware of the risks involved in using such a circuit to switch mains voltage, at a certain current, and under a specific use scenario. DO NOT BE FOOLED into simply replicating this circuit, or parts of it, and believing it is “SAFE”. Every use case of a circuit is different, and the devices connected and controlled by it will always differ. Make sure that you ACTUALLY know what you are doing BEFORE using any High voltage/Current and switching it with any electronic device.

Manufacturing

The PCB for this project has been manufactured at PCBWay.
Please consider supporting them if you would like your own copy of this PCB, or if you have any PCB of your own that you need to have manufactured.

PCBWay

Some More Pictures

Easy to use ESP32-S DEV Prototype Shield

While my recent ESP32-S Dev Board really does the trick to help my development cycle along, I very quickly ran into another obstacle, in the sense that, after doing stuff on the breadboard, moving those components onto a more permanent location, either as a next stage prototype or more likely that the project is so small and insignificant not to warrant the effort actually to design a PCB for it. This could be rectified by using another one of my recent designs, an SMD breadboard PCB, but that would not always do either.

MakerIoT SMD Prototype development PCB
MakerIoT SMD Prototype development PCB

That got me thinking, and while staring at the ever-present Arduino Uno on its corner of the work-bench, I suddenly remembered that I have once seen an Arduino Prototype Shield, like a plug-on breadboard, with breakouts of all the pins etc…

While I do not personally own a lot of commercial Arduino Shields, as I tend to build my own or design a custom-purpose PCB instead, it did not take me long to settle on a new design, that could potentially solve my problem, and hopefully, someone else’s as well…

ESP32-S DEV Prorotype Shield - Unassembled, Top side

So what is on this PCB?

To start off, the PCB is in the same form factor as the ESP32-S Dev Board, namely the Arduino Uno form factor. There are however a few changes, mainly in the number of pins in the headers. This is mainly to accommodate as many of the ESP32-S’s gpio’s as possible. ( Actually, they are all broken out, EXCEPT for the 6 gpio’s that are usually used with the internal Flash memory.)

The PCB is designed to be stacked either on top of, or even below, the ESP32-S Dev Board, depending of course on the type of headers that you decide to solder onto the PCB.

In order to make connecting to the gpio pins easier, each header row is in fact a double row, with solderable pads in parallel for each gpio on the header row.

Flash and Reset buttons are available on top of the shield, they can be fitted of left off, depending on personal preference, as well as how the shield will ultimately be used.

The prototyping area in the centre has been slightly reduced from the standard 5-pin-spacer-5-pin column of the traditional breadboard to a 3-pin-gnd-3v-3-pin column layout. the prototyping holes are at a standard 0.1″ or 2.54mm pitch.

In total, 60 prototype holes, divided into rows of 10, 3 columns deep, are provided, labelled A-F and 1-10.

3.3v and ground are provided in the centre-two rows, to make power easily accessible.

ESP32-S DEV Prototype Shield
ESP32-S DEV Prototype Shield
ESP32-S DEV Prototype Shield - Back
ESP32-S Dev Prototype Shield – Back

The PCB Design

As this design is basically just two rows of header pins, with a few switches, and a big unconnected prototype area, I did not bother to do a formal schematic for this PCB, but instead jumped straight into the PCB design software and manually designed and routed the tracks and pads that make up this shield.

PCB – Top Layer
PCB – Bottom Layer – Note that this is a “TOP-Down” view, and should be mirrored for actual production

Note that there are big copper pours on both top and bottom layers, in an attemp to reduce electrical noise and provide better shielding.

Manufacturing

The PCB for this project has been manufactured at PCBWay.
Please consider supporting them if you would like your own copy of this PCB, or if you have any PCB of your own that you need to have manufactured.

You can get your own copy here

PCBWay

Some more pictures of the device

Conclusion

Some final thoughts on the completed PCB.
While definitely useful, I have made a purpuseful design flaw on this board, by not including a breakout for the VIN pin. My reasoning at that stage was that I would always be powering the device directly from 3.3v, and would therefor not need access to the VIN pin for power.

Upon completion of the device, and while testing it in a stacked configuration, I realised that that VIN pin would have been quite nice to have access to.

Not a big problem though, as if is very easy to add a 2-pin connector to the power rails, or even solder a wire directly to VIN. Ugly, but totally doable, as this is in fact still a prototype, and it can grow and be fine-tuned to my exact requirements over time.

I2C IO Card for ESP-12E I2C Base Card

The I2C IO Card for ESP-12E I2C Base Card is another expander card for the ESP-12E I2C Base Card Project. This PCB is an address-selectable I2C module with two relays and six (6) GPIO pins, all driven from a single PCF8574 running at 3v. The relays are optically isolated, and generous mains isolation cutouts were provided to reduce the possibility of mains voltage tracking. A jumper to enable/disable the i2c pullup-resistors is also provided on the PCB.

The relays are powered from a single LDO regulator, accepting 12v DC from the 2x20pin female header on the bottom of the card. 3.3v and ground should also be applied to the card at the 2x20pin header.

It is worth mentioning that this circuit does not contain level converting circuitry and that the i2c bus thus runs at 3.3v to be compatible with ESP chips.

It is possible to use the card with other processors if the appropriate level converters are used on the i2c bus.

The Schematic

Manufacturing the PCB


Over the past eight years, PCBWay has continuously upgraded their MANUFACTURING plants and equipment to meet higher quality requirements, and now THEY also provide OEM services to build your products from ideas to mass production and access to the market.


The PCB for this project has been manufactured at PCBWay.
Please consider supporting them if you would like your own copy of this PCB, or if you have any PCB of your own that you need to have manufactured.

PCBWay

If you would like to have PCBWAY manufacture one of your own, designs, or even this particular PCB, you need to do the following…
1) Click on this link
2) Create an account if you have not already got one of your own.
If you use the link above, you will also instantly receive a $5 USD coupon, which you can use on your first or any other order later. (Disclaimer: I will earn a small referral fee from PCBWay. This referral fee will not affect the cost of your order, nor will you pay any part thereof.)
3) Once you have gone to their website, and created an account, or login with your existing account,

4) Click on PCB Instant Quote

5) If you do not have any very special requirements for your PCB, click on Quick-order PCB

6) Click on Add Gerber File, and select your Gerber file(s) from your computer. Most of your PCB details will now be automatically selected, leaving you to only select the solder mask and silk-screen colour, as well as to remove the order number or not. You can of course fine-tune everything exactly as you want as well.

7) You can also select whether you want an SMD stencil, or have the board assembled after manufacturing. Please note that the assembly service, as well as the cost of your components, ARE NOT included in the initial quoted price. ( The quote will update depending on what options you select ).

8) When you are happy with the options that you have selected, you can click on the Save to Cart Button. From here on, you can go to the top of the screen, click on Cart, make any payment(s) or use any coupons that you have in your account.

Then just sit back and wait for your new PCB to be delivered to your door via the shipping company that you have selected during checkout.

ATMega 328P Based PWM controller Card

As part of my recent ESP-12E I2C Base Board project, I designed an ATMega 328P Based PWM controller card, that can be used as an add-on card with the existing project, or standalone as a custom Arduino Nano compatible development board.

What is on the PCB?

The PWM controller card contains standard Arduino Nano circuitry running at 16MHz, without the USB to Serial converter, as well as a 3v to 5v level converter on the I2C port ( A4 and A5 ), as well as another 12v to 5v level converter, with a build in resistor-divider circuit, used to drive a 12v blower with 3.3v PWM control circuitry.

All analog inputs are broken out to make attaching additional sensors easier.

All the other unused GPIO pins are also broken out, either directly to headers on the PCB (D6~,D7,D8,D9~), D11,D12,D12 (ISCP Header) and D3 ( Marked RPM on the Fan Header)

Most of these pins are also additionally broken out onto the 2x20p female header at the bottom of the card ( See schematic for more details)

The board is designed to be powered from 12v DC (via the VIN pins on the 2x20p header) which is internally regulated down to 5v via an LDO voltage regulator.


External 3.3v should also be supplied to the 2x20Pin header to enable the I2C level converters on the same header. I2C is not directly broken out onto the PCB in this version of the PCB.

A reset button, and power led, as well as the standard led on D13 is also provided.

Manufacturing the PCB


Over the past eight years, PCBWay has continuously upgraded their MANUFACTURING plants and equipment to meet higher quality requirements, and now THEY also provide OEM services to build your products from ideas to mass production and access to the market.
https://vimeo.com/723212010


The PCB for this project has been manufactured at PCBWay.
Please consider supporting them if you would like your own copy of this PCB, or if you have any PCB of your own that you need to have manufactured.

PCBWay

If you would like to have PCBWAY manufacture one of your own, designs, or even this particular PCB, you need to do the following…
1) Click on this link
2) Create an account if you have not already got one of your own.
If you use the link above, you will also instantly receive a $5 USD coupon, which you can use on your first or any other order later. (Disclaimer: I will earn a small referral fee from PCBWay. This referral fee will not affect the cost of your order, nor will you pay any part thereof.)
3) Once you have gone to their website, and created an account, or login with your existing account,

4) Click on PCB Instant Quote

5) If you do not have any very special requirements for your PCB, click on Quick-order PCB

6) Click on Add Gerber File, and select your Gerber file(s) from your computer. Most of your PCB details will now be automatically selected, leaving you to only select the solder mask and silk-screen colour, as well as to remove the order number or not. You can of course fine-tune everything exactly as you want as well.

7) You can also select whether you want an SMD stencil, or have the board assembled after manufacturing. Please note that the assembly service, as well as the cost of your components, ARE NOT included in the initial quoted price. ( The quote will update depending on what options you select ).

8) When you are happy with the options that you have selected, you can click on the Save to Cart Button. From here on, you can go to the top of the screen, click on Cart, make any payment(s) or use any coupons that you have in your account.

Then just sit back and wait for your new PCB to be delivered to your door via the shipping company that you have selected during checkout.

VC-01 and VC-02 Offline Voice Module

In a recent article, I took a look at the new VC-01 and VC-02 Voice offline voice modules from AI-Thinker. I mentioned that I was working on a very simple prototype PCB to do some more tests, as well as make practical use of the module in real life.

In this very short post, I will show off the initial prototype that I came up with.
While I have to admit that it is still in an extremely basic stage, It is already definitely useful.

Part of the reason for this is that there is not a lot of information available on the VC-01 and VC-02 at this stage, as well as the fact that more exotic features like I2C and SPI are still not accessible in the current firmware. I thus had to work with what was available, as well as take into consideration what will work with the standard factory firmware as well.

The prototype carrier PCB will thus only have two optically isolated relays and their supporting circuitry. I intend to actually use the PCB in my EE LAb area to control some of the lights in the area.

The Schematic

The schematic shows the relay control circuitry, comprising of my standard optic isolator-based relay driver, as well as headers to accept the VC-01 or VC-02 offline voice module kit PCB.

Testing the PCB

The PCB was tested using the standard factory firmware, as well as my custom firmware, kindly provided by AI-Thinker. Below is a short video of that in action. Please note that the relays was not yet connected to any external devices at this stage.

Manufacturing the PCB


Over the past eight years, PCBWay has continuously upgraded their MANUFACTURING plants and equipment to meet higher quality requirements, and now THEY also provide OEM services to build your products from ideas to mass production and access to the market.


The PCB for this project has been manufactured at PCBWay.
Please consider supporting them if you would like your own copy of this PCB, or if you have any PCB of your own that you need to have manufactured.

PCBWay

If you would like to have PCBWAY manufacture one of your own, designs, or even this particular PCB, you need to do the following…
1) Click on this link
2) Create an account if you have not already got one of your own.
If you use the link above, you will also instantly receive a $5 USD coupon, which you can use on your first or any other order later. (Disclaimer: I will earn a small referral fee from PCBWay. This referral fee will not affect the cost of your order, nor will you pay any part thereof.)
3) Once you have gone to their website, and created an account, or login with your existing account,

4) Click on PCB Instant Quote

5) If you do not have any very special requirements for your PCB, click on Quick-order PCB

6) Click on Add Gerber File, and select your Gerber file(s) from your computer. Most of your PCB details will now be automatically selected, leaving you to only select the solder mask and silk-screen colour, as well as to remove the order number or not. You can of course fine-tune everything exactly as you want as well.

7) You can also select whether you want an SMD stencil, or have the board assembled after manufacturing. Please note that the assembly service, as well as the cost of your components, ARE NOT included in the initial quoted price. ( The quote will update depending on what options you select ).

8) When you are happy with the options that you have selected, you can click on the Save to Cart Button. From here on, you can go to the top of the screen, click on Cart, make any payment(s) or use any coupons that you have in your account.

Then just sit back and wait for your new PCB to be delivered to your door via the shipping company that you have selected during checkout.