Blueprint

Ember

A custom hot plate controller powered by USB-C Power Delivery.

Created by NotARoomba NotARoomba 🚀

Tier 1

86 views

2 followers

NotARoomba NotARoomba 🚀 added to the journal ago

UI + Case + Solder

IMG_0560

So I finally got some more fonts in after making a script that converts any ttf/otf font into a bitmap font and I imported it to make this cool menu screen.

image

I then worked on making a status screen to show the USB-C PD voltage as I can't use serial when connected to a power outlet so yea and I successfully got 20v although it was at 4.5A:

WhatsApp Image 2025-12-27 at 14.13.54 (2)

After a while I got a notification that my case finally came in so I went to get it and found out that everything fit perfectly lol

image

All that was missing were the heatset inserts and screws. This also as around the time that I couldn't take the bad screen solder so I went out and bought some leaded solder:

image

And then after that I finally was able to solder correctly and it looked amazing:

WhatsApp Image 2025-12-27 at 14.13.54

I then started to look for ui libraries on the internet and stumbled upon this one:

image

but the only problem is that I will have to port it to C :(

For the UI, here's what I'm thinking, a main menu screen that says press to start and then you will be sent to a scrolleable menu, it will have these entries:

  • Start / Stop
  • Status
  • Settings
  • About

The start stop button will start the hotplate controller and it will send you to a menu here you have to select between holding a temperature or a reflow profile, if you hold a temp then there will be a slider between 1-200C and for the reflow profile you will have the option to select it, no mater which option you select, there will b a confirm screen.

After you confirm, you will b sent to the status screen, this is basically where you can see how the heat plate is running and the temp and current raw and everything that you could possibly need.

In the settings bar you can change the behavior of the NFC or confirm or change the brightness of the OLED, also you can have the option to turn on or off Bluetooth discovery to control the board.

In the about scan it will how the firmware version and the credits.

Now that I have that planned out I will try and connect the hotplate to see how hot it can get:

flexheater

NotARoomba NotARoomba 🚀 added to the journal ago

NFC Sounds + Bluetooth + Screen Working

I started in the airport trying to make some misc improvements and thought of making the board beep when an NFC tag is present, It took a little while bit I made it play a little jingle.

(Check my post in #50-days for the vid)

After that I was in another airport heading to blueprint and I was looking through this repo and apparently I needed to flash the bluetooth firmware that I was going to use on the other processor otherwise it wouldn't work. After trying to flash the FUS, I bricked one of the boards because I didn't press and hold the boot button when it was editing the option bytes. But after correctly holding down the boot button, I fixed it and was able to connect to it from my phone:

image

So prototype happened and then I started working on the OLED screen. I had to solder it and after realizing that I had the wrong type of solder I tried fixing it and had to hold it in a certain position for the screen to work.

WhatsApp Image 2025-12-25 at 23.23.14

after that I got a circle running from this cool library:

image

WhatsApp Image 2025-12-25 at 23.23.14 (2)

and after a bit I got text and a basic UI although the fonts were wonky and I needed to import more:

WhatsApp Image 2025-12-25 at 23.23.14 (1)

I still have a lot to go but thankfully my heatplate and case is coming in tomorrow so yea, I'll continue working on it.

NotARoomba NotARoomba 🚀 added to the journal ago

NFC + PWM + Board Temp Sensor + First error

I started getting a driver for the NFC chip and added it in, and also struggled a bit with the I2C address as I kept overwriting it whenever I read / write to the tag.

image

After that I worked on getting a basic PWM driver for the hotplate and I confirmed that the MOSFET was working.

I tested it with a multimeter at 1 Hz (it was switching lol) and then moved on to the board temp sensor. That was also really simple as there were drivers on Github and at first I found one for the tps116, after reading through the datasheet and this pull request, it was the same driver for the tps119 just with a different device id:

image

Moving on to the current sensor, I found out that I had wired it wrong:
image

image
(VS needed to be connected to 3V3 but luckily the regulator is next to it so I can solder a small wire connecting them:

image

Anyways that wasn't something critical so I moved onto getting the drivers for the external temperature sensors. These functioned over SPI and on different channels to avoid different data length errors, I then got the drivers:

image

and got them implemented:

image

after that it was time for the max6675:

image

I finished that but I still had a problem with the NFC, it wouldn't let me read or write to it and was unreliable at times so I went to look at the code and found out that it was trying to read and get a checksum of the data while it was being read/wrote (on field detect) and this caused a blocking operation on the storage which resulted in that unreliable behavior. After changing it to wait like 200ms it finally started working and I could get changes in the NFC reliably:

image

All that's left is to configure the screen and set up a PID algorithm for the heatbed (will finish that once I get the heatbed), get bluetooth to workm and get the flash / lcd working.

image

SO I took a bit of a break bc I got accepted into MIT and added in custom support to play music so yea lol I'ma sleep now

NotARoomba NotARoomba 🚀 added to the journal ago

USB-C PD Working + Jingle Bells

ember

So I finally got the PCB and it looks cool and even better was that when I plugged it in, it didn't burn up like Cyberboard V1 (wooo) so then I started trying to turn on the LEDs (first thing you always have to do) and the STM32 kept resetting and I didn't know why until later debugging (commenting out peripherals until it worked) I found out that I had mislabled an input pin as output:

image

image

After that I started configuring the USB-C PD controller to get the status of my laptop and aja after a bit of configurint I finally was able to get PDO's (power data objects) that specify what different power options the source has:

image

Sadly my laptop only provides [email protected] so yea...

image

moving on, I wanna try and get the speaker running and lookign at the datasheet I found this cool graph:

image

but nothign telling me at which speeds it's running at so I will make my own driver that can control the PCB duty cycle

After messing around I got jingle bells playing on the board lol.

zliskovyi zliskovyi gave kudos to Ember ago

this looks beautiful I hope i can make one of these sooner or later

CAN CAN ⚡🚀 approved Ember ago

Tier approved: 1

Grant approved: $345.00

Nice project!

NotARoomba NotARoomba 🚀 submitted Ember for review ago

NotARoomba NotARoomba 🚀 requested changes for Ember ago

Use a cheaper material for the top case

NotARoomba NotARoomba 🚀 added to the journal ago

Blueprint Banner

This is just to update the blueprint banner after waiting on it to render, I just need to write 150 characters to fill up the requirement so that I can post this.

banner

NotARoomba NotARoomba 🚀 submitted Ember for review ago

NotARoomba NotARoomba 🚀 added to the journal ago

Blender and BOM

After that I decided to put it in blender and get some nice renders of the PCB and case:

banner

render

render1

render2

Then I finished up the BOM, created a logo, and cleaned up the README:

image

image

NotARoomba NotARoomba 🚀 added to the journal ago

CAD (Canadian Dollars)

image

After procrastinating a bit, I decided to make the case. I had in mind to have the bottom with holes for USBcC and also have a space to add in the cables for the temp sensors and heatplate. I also thought about adding in a slope for the NFC section so that it will work for phones that have a limited range.

Then I posted the board in r/PrintedCircuitBoards and also in the KiCad discord and got some feedback for the board. I then had to change out the optocoupler for a gate driver and also added another screw hole and made them more symmetrical.

image

After that I worked on the case and tried to make it look good:

image

I also found this cool image because I want the USB-C cable flush with the socket:

CGFE8

Then after that I finished the bottom case

image

but I didn't know how to connect the top case to it so I will research that later.

After sleeping I thought about using heatset inserts and then also the different types of screws that I can use:

Types-of-Screw-Heads

I think a sloted head would look decent as I wanted something that has a cylindrical head.

image

image

After a bit I finally finished the CAD!
image

NotARoomba NotARoomba 🚀 added to the journal ago

Change Buck and Heatbed

After posting it in the KiCad Discord I got the feedback to use another buck converter (TPS56339DDC) as electrolytic caps don't like heat so I rewired the buck converter and then routed it up on the PCB.

image

image

This gave me more space to put the MOSFET in the middle to dissipate more heat.

Moving on to the hotplate/heatbed, I found out that the design I am basing this off of has this schematic and PCB:

image

image

and I found out that these values come from KiCad's calculator:

image

So to design my own, I wanted to do the same. Looking through JLCPCB's Flexible Heater capabilities, I found out that the thickness of the material can be from 30um to 50um (silicone)

image

Looking at the voltage drop and power consumption, I only have 20V and 100W to play around with and the 3.3V buck converted needs a minimum of 5V so I have to change the length to make sure that I have at least 5V (with a bit of leeway) to be able to use as much area as I can.

I started researching about Hilbert Curves (very interesting) and also how there is a KiCad plugin to generate it:

image

I was playing around with it as I am trying to generate curves to fill the space in the heating element.

image

I then ended up woth this 400mm x 400mm board design AND THE BEST PART IS THAT IT'S ONLY 9 USD ON JLCPCB:

image

So after making the heatbed and the board I now am going to design a case in OnShape.

NotARoomba NotARoomba 🚀 added to the journal ago

Design Schematic

After working for a bit, I finally finished routing up most of the PCB:

image

I still have to impedance match the antenna and add in the 3D models and fix the silkscreen but for the most part it's done.

After that I fixed up the silkscreen aligning everything perfectly (ocd)
image

I entered the lock in call and finished impedance matching, edited the silkscreen, and added a few more aesthetic touches.

image

image

NotARoomba NotARoomba 🚀 added to the journal ago

PCB Routing

After coming back, I had a thought. There will probably be space under the OLED so I can add in components under it. Although there will be resistors and stuff under it, I can always put a sheet of paper or smth to separate it.

0J4234.1200

1657fac49c2cba1010eac9aaf2038c93abfc49b5_2_557x500

I decided to reorganize the board to edit the space between the components:

image

After a while of procrastination and burnout, I finally started something:

image

I still have a bit of routing to go and then I'll send it for review in the KiCad Discord (first time lol) and also the blueprint channel before rendering it :sob:

NotARoomba NotARoomba 🚀 added to the journal ago

Start PCB Layout

After finishing the schematic and selecting the footprints, I went over to the PCB and started grouping the components (ICs) together along with their passives.

image
(STM32 for example)

and continued until I had the rest of the components laid out. After that, I made a board outline of 50mmx150mm and then started placing the components there. From what I had in mind, I wanted the NFC tag on the opposite side of the USB-C connector and I also wanted the USB-C PPHV line to go through the top away from the other components. I wanted the Bluetooth antenna in a corner away from any noisy components so I decided to place it in the corner opposite of the PPHV line. The screw terminals I wanted in the top and preferably in the center, as well as the OLED and rotary encoder. After playing around with the layout I got something like this:

image

I started routing a bit but needed to work on Accelerate so I'm gonna take a break lol.

NotARoomba NotARoomba 🚀 added to the journal ago

Finished Schematic and Footprints

I routed up the external temperature sensors, using chips from MAXIM and ended up with this:

image

image

image

I then routed up the PWM hotplate channel (design taken from here) and ended up with this:

image

I then proceeded to add all of the LEDs and try to find in the OLED and rotary encoder footprints and add them in:

image

image

Then I organized the board and ran an ERC to make sure that I didn't have any unconnected items. After that I found a cool font that I am going to use for all of the logos and icons and design and added it in.

image

Then I updated the footprints for all of the components (making sure not to use 0201) and then imported it into the schematic.

image

NotARoomba NotARoomba 🚀 added to the journal ago

STM32 Pinout and Most Peripherals

I started by first defining the pinout for the STM32, as I wanted to use most of the pins, I added some status LED's and a buzzer. Continuing on from yesterday's work, I skimmed through the datasheets of each component to see which extra pins I would need to add them immediately and not have to worry about adding them later. I had some trouble with the timers and flash as I could only use 2 timers (out of 4) so I needed a way to get input from the rotary encoder, set the heatbed, and also to control the buzzer. After researching a bit more, I ended up using LPTIM1 for the rotary encoder as I say that It had input for that.

After configuring all of the pins, my STM32 looked like this:

image

image

After that I went to work wiring up the rest of the peripherals like the flash, buzzer, board temperature sensor, current sensor, and NFC antenna.

image

image

image

image

image

After that, I routed the buck converter to convert from PPHV to 3.3V:

image

I looked carefully in the datasheet and made sure that I was using the right inductor and capacitors (looked them upon LCSC and added the part numbers).

I also bom optimized a bit by using as many 4.7K pull-up resistors as I could to not have extra costs for different resistor values.

All that's left is to route up the external temperature sensors and also add in the connections to the heatplate. ALSO THE ROTARY ENCODER AND OLED DISPLAY. I plan on using screw terminals and making holes in the acrylic top case to be able to screw/unscrew them. I also plan on

NotARoomba NotARoomba 🚀 added to the journal ago

Worked on Schematic

I started wiring up the STM32 and configuring it in STM32CubeMX. THIS TIME LOOKING AT THE REFERENCE SCHEMATIC AND NOT COPY PASTING TO AVOID ERRORS.

image

image

THIS TIME I ACTUALLY ADDED PULL UP RESISTORS ON THE I2C LINES AND DOUBLE CHECKED THE DECOUPLING CAPACITOR VALUES.

I researched a bit about the different screens like the ones on the flipper zero but the standard I2C OLED is fine (SSD1306). I found this cool tool to create UI/UX so I'll put it here to save for later (https://arduinogfxtool.netlify.app/)

I also added in a bit more stuff like current sensor, buzzer, and board thermometer just in case. I might also add in NFC functionality to be able to wirelessly transfer temp data to the board/have presets set in NFC tags and I just put it on top and let it go (overkill but why half ass it).

I also added a 32MB flash to add images/graphcs onto the OLED (might be possible)

I hope to find this encoder somewhere: https://tech.alpsalpine.com/e/products/detail/EC11E18244A5/
I also spent some time thinking about the case:

image
(very crude)

I'd want it made out of a high quality plastic (PA11-HP Nylon) or acrylic to be able to see the board interior with rounded corners and space to fit the board and OLED/Encoder. I might also include one of those push-push-switches to turn it on or off. (sends signal to STM32 to disable USB-C PD and turns off the display/lights. OR I COULD DO THE BACK AS (PA11-HP Nylon) AND THE TOP COVER AS ACRYLIC, but I'm too tired to think so tmrw I'll finish the schematic and start the routing.

NotARoomba NotARoomba 🚀 added to the journal ago

Start of Schematic

I first created a new KiCad project and then opened up STM32CubeMX and followed this guide on the ST website to configure USB PD. I also changed the processor to the STM32G0B1CBT6 as the other one didn't have a second CC pin due to the pin count.

Yknow what, scratch that, I'm a Texan and should be loyal to TI. So I'm gonna go with a TPS25730D and then use an STM32WB55 to get bluetooth support (everythings better with bluetooth lol). Jokes aside, I am going with TI because I want to complete this project in 3 days (crazy right?) and I feel more comfortable with their chips (Also serves as practice for when I have to work with Athena's PD chip).

For the mosfet I will be using IRFB3207 and TLP183 to drive it (taken from the original repo) and for temperature sensors, MAX6675 (thermocouple to digital), and a PT1000 with opamps to filter/amplify the signal.

I will also be using LM22676MR-ADJ as a good step down converter from high voltages (42V just in case I want more power lol).

image

I added the components and started wiring up the ESD and USB-C port first:

image

After that I finished wiring up the USB-C PD chip. (Yes I made sure that there were pull up resistors on the I2C lines)

image

NotARoomba NotARoomba 🚀 added to the journal ago

Research

This is another project that surged out of nowhere (like trace) but mainly because I want to be able to solder/reflow my own PCB's in my house to be able to save cost and make bigger and better projects in the future (*cough* *cough* robotic arm *cough* *cough*).

While I could buy a hotplate in the shop, I feel like it's too small and I might need to reflow bigger PCB's so just in case, I want to build a large custom hotplate that has these characteristics:

  • Powered by USB-C
  • Portable/Easy to store
  • OLED screen + knob and button to config
  • Cool looking case (opportunity to learn CAD before making a robotic arm/rocket)

Looking through the internet to see if anyone has done anything like this, I stumbled on this repo. While cool looking, it uses an external power supply and has a relatively small heatbed (80mm x 80mm). I'm aiming for 4 times that (in terms of area) with a 160mm x 160mm heatbed (or even bigger).

Doing more research and looking at materials, making a heatbed out of aluminum and one layer of copper costs a lot for big boards (slabs of aluminum)

image

Or even a bit smaller:

image

BUT, JLCPCB HAS THIS NEW COOL THING CALLED FLEX HEATERS THAT ARE WAYY CHEAPER AND CAN GO FOR BIGGER BC THEY'RE ALL AT 9 USD! SO being the capitalist that I am, I am going to capitalize on these savings and use one.

image

Now all that's left is to design the board. As I want USB-C PD, I am thinking about using a STM32G0B1KE (32 pin version) as it's powerful enough to do everything that I want it to do. I also would need a 3V3 converter (LM3281YFQR). In addition to a mosfet to control the how much current is going through (PWM). I also plan on adding a bunch of redundancy like USB-C ESD protection, fuses, current sensors, and temperature sensors (Thermocouple and Pt1000).

Since this is going to be a flexible heater, I will also need a way to "prop" it up in the air so that it doesn't burn my desk. I plan on using an aluminum sheet with a hole in each corner to insert a "leg" (screw or smth) to be able to prop it up. Then at the bottom I plan on having a nice case (titanium /j) for the PCB and screw terminals to connect it to the hotplate/heatpad/flex heater.

NotARoomba NotARoomba 🚀 started Ember ago

11/14/2025 - Research

This is another project that surged out of nowhere (like trace) but mainly because I want to be able to solder/reflow my own PCB's in my house to be able to save cost and make bigger and better projects in the future (*cough* *cough* robotic arm *cough* *cough*).

While I could buy a hotplate in the shop, I feel like it's too small and I might need to reflow bigger PCB's so just in case, I want to build a large custom hotplate that has these characteristics:

  • Powered by USB-C
  • Portable/Easy to store
  • OLED screen + knob and button to config
  • Cool looking case (opportunity to learn CAD before making a robotic arm/rocket)

Looking through the internet to see if anyone has done anything like this, I stumbled on this repo. While cool looking, it uses an external power supply and has a relatively small heatbed (80mm x 80mm). I'm aiming for 4 times that (in terms of area) with a 160mm x 160mm heatbed (or even bigger).

Doing more research and looking at materials, making a heatbed out of aluminum and one layer of copper costs a lot for big boards (slabs of aluminum)

image

Or even a bit smaller:

image

BUT, JLCPCB HAS THIS NEW COOL THING CALLED FLEX HEATERS THAT ARE WAYY CHEAPER AND CAN GO FOR BIGGER BC THEY'RE ALL AT 9 USD! SO being the capitalist that I am, I am going to capitalize on these savings and use one.

image

Now all that's left is to design the board. As I want USB-C PD, I am thinking about using a STM32G0B1KE (32 pin version) as it's powerful enough to do everything that I want it to do. I also would need a 3V3 converter (LM3281YFQR). In addition to a mosfet to control the how much current is going through (PWM). I also plan on adding a bunch of redundancy like USB-C ESD protection, fuses, current sensors, and temperature sensors (Thermocouple and Pt1000).

Since this is going to be a flexible heater, I will also need a way to "prop" it up in the air so that it doesn't burn my desk. I plan on using an aluminum sheet with a hole in each corner to insert a "leg" (screw or smth) to be able to prop it up. Then at the bottom I plan on having a nice case (titanium /j) for the PCB and screw terminals to connect it to the hotplate/heatpad/flex heater.

11/15/2025 - Start of Schematic

I first created a new KiCad project and then opened up STM32CubeMX and followed this guide on the ST website to configure USB PD. I also changed the processor to the STM32G0B1CBT6 as the other one didn't have a second CC pin due to the pin count.

Yknow what, scratch that, I'm a Texan and should be loyal to TI. So I'm gonna go with a TPS25730D and then use an STM32WB55 to get bluetooth support (everythings better with bluetooth lol). Jokes aside, I am going with TI because I want to complete this project in 3 days (crazy right?) and I feel more comfortable with their chips (Also serves as practice for when I have to work with Athena's PD chip).

For the mosfet I will be using IRFB3207 and TLP183 to drive it (taken from the original repo) and for temperature sensors, MAX6675 (thermocouple to digital), and a PT1000 with opamps to filter/amplify the signal.

I will also be using LM22676MR-ADJ as a good step down converter from high voltages (42V just in case I want more power lol).

image

I added the components and started wiring up the ESD and USB-C port first:

image

After that I finished wiring up the USB-C PD chip. (Yes I made sure that there were pull up resistors on the I2C lines)

image

11/16/2025 - Worked on Schematic

I started wiring up the STM32 and configuring it in STM32CubeMX. THIS TIME LOOKING AT THE REFERENCE SCHEMATIC AND NOT COPY PASTING TO AVOID ERRORS.

image

image

THIS TIME I ACTUALLY ADDED PULL UP RESISTORS ON THE I2C LINES AND DOUBLE CHECKED THE DECOUPLING CAPACITOR VALUES.

I researched a bit about the different screens like the ones on the flipper zero but the standard I2C OLED is fine (SSD1306). I found this cool tool to create UI/UX so I'll put it here to save for later (https://arduinogfxtool.netlify.app/)

I also added in a bit more stuff like current sensor, buzzer, and board thermometer just in case. I might also add in NFC functionality to be able to wirelessly transfer temp data to the board/have presets set in NFC tags and I just put it on top and let it go (overkill but why half ass it).

I also added a 32MB flash to add images/graphcs onto the OLED (might be possible)

I hope to find this encoder somewhere: https://tech.alpsalpine.com/e/products/detail/EC11E18244A5/
I also spent some time thinking about the case:

image
(very crude)

I'd want it made out of a high quality plastic (PA11-HP Nylon) or acrylic to be able to see the board interior with rounded corners and space to fit the board and OLED/Encoder. I might also include one of those push-push-switches to turn it on or off. (sends signal to STM32 to disable USB-C PD and turns off the display/lights. OR I COULD DO THE BACK AS (PA11-HP Nylon) AND THE TOP COVER AS ACRYLIC, but I'm too tired to think so tmrw I'll finish the schematic and start the routing.

11/17/2025 1 AM - STM32 Pinout and Most Peripherals

I started by first defining the pinout for the STM32, as I wanted to use most of the pins, I added some status LED's and a buzzer. Continuing on from yesterday's work, I skimmed through the datasheets of each component to see which extra pins I would need to add them immediately and not have to worry about adding them later. I had some trouble with the timers and flash as I could only use 2 timers (out of 4) so I needed a way to get input from the rotary encoder, set the heatbed, and also to control the buzzer. After researching a bit more, I ended up using LPTIM1 for the rotary encoder as I say that It had input for that.

After configuring all of the pins, my STM32 looked like this:

image

image

After that I went to work wiring up the rest of the peripherals like the flash, buzzer, board temperature sensor, current sensor, and NFC antenna.

image

image

image

image

image

After that, I routed the buck converter to convert from PPHV to 3.3V:

image

I looked carefully in the datasheet and made sure that I was using the right inductor and capacitors (looked them upon LCSC and added the part numbers).

I also bom optimized a bit by using as many 4.7K pull-up resistors as I could to not have extra costs for different resistor values.

All that's left is to route up the external temperature sensors and also add in the connections to the heatplate. ALSO THE ROTARY ENCODER AND OLED DISPLAY. I plan on using screw terminals and making holes in the acrylic top case to be able to screw/unscrew them. I also plan on

11/17/2025 1 PM - Finished Schematic and Footprints

I routed up the external temperature sensors, using chips from MAXIM and ended up with this:

image

image

image

I then routed up the PWM hotplate channel (design taken from here) and ended up with this:

image

I then proceeded to add all of the LEDs and try to find in the OLED and rotary encoder footprints and add them in:

image

image

Then I organized the board and ran an ERC to make sure that I didn't have any unconnected items. After that I found a cool font that I am going to use for all of the logos and icons and design and added it in.

image

Then I updated the footprints for all of the components (making sure not to use 0201) and then imported it into the schematic.

image

11/18/2025 - Start PCB Layout

After finishing the schematic and selecting the footprints, I went over to the PCB and started grouping the components (ICs) together along with their passives.

image
(STM32 for example)

and continued until I had the rest of the components laid out. After that, I made a board outline of 50mmx150mm and then started placing the components there. From what I had in mind, I wanted the NFC tag on the opposite side of the USB-C connector and I also wanted the USB-C PPHV line to go through the top away from the other components. I wanted the Bluetooth antenna in a corner away from any noisy components so I decided to place it in the corner opposite of the PPHV line. The screw terminals I wanted in the top and preferably in the center, as well as the OLED and rotary encoder. After playing around with the layout I got something like this:

image

I started routing a bit but needed to work on Accelerate so I'm gonna take a break lol.

11/19/2025 - PCB Routing

After coming back, I had a thought. There will probably be space under the OLED so I can add in components under it. Although there will be resistors and stuff under it, I can always put a sheet of paper or smth to separate it.

0J4234.1200

1657fac49c2cba1010eac9aaf2038c93abfc49b5_2_557x500

I decided to reorganize the board to edit the space between the components:

image

After a while of procrastination and burnout, I finally started something:

image

I still have a bit of routing to go and then I'll send it for review in the KiCad Discord (first time lol) and also the blueprint channel before rendering it :sob:

11/20/2025 - Design Schematic

After working for a bit, I finally finished routing up most of the PCB:

image

I still have to impedance match the antenna and add in the 3D models and fix the silkscreen but for the most part it's done.

After that I fixed up the silkscreen aligning everything perfectly (ocd)
image

I entered the lock in call and finished impedance matching, edited the silkscreen, and added a few more aesthetic touches.

image

image

11/21/2025 - Change Buck and Heatbed

After posting it in the KiCad Discord I got the feedback to use another buck converter (TPS56339DDC) as electrolytic caps don't like heat so I rewired the buck converter and then routed it up on the PCB.

image

image

This gave me more space to put the MOSFET in the middle to dissipate more heat.

Moving on to the hotplate/heatbed, I found out that the design I am basing this off of has this schematic and PCB:

image

image

and I found out that these values come from KiCad's calculator:

image

So to design my own, I wanted to do the same. Looking through JLCPCB's Flexible Heater capabilities, I found out that the thickness of the material can be from 30um to 50um (silicone)

image

Looking at the voltage drop and power consumption, I only have 20V and 100W to play around with and the 3.3V buck converted needs a minimum of 5V so I have to change the length to make sure that I have at least 5V (with a bit of leeway) to be able to use as much area as I can.

I started researching about Hilbert Curves (very interesting) and also how there is a KiCad plugin to generate it:

image

I was playing around with it as I am trying to generate curves to fill the space in the heating element.

image

I then ended up woth this 400mm x 400mm board design AND THE BEST PART IS THAT IT'S ONLY 9 USD ON JLCPCB:

image

So after making the heatbed and the board I now am going to design a case in OnShape.

11/24/2025 - CAD (Canadian Dollars)

image

After procrastinating a bit, I decided to make the case. I had in mind to have the bottom with holes for USBcC and also have a space to add in the cables for the temp sensors and heatplate. I also thought about adding in a slope for the NFC section so that it will work for phones that have a limited range.

Then I posted the board in r/PrintedCircuitBoards and also in the KiCad discord and got some feedback for the board. I then had to change out the optocoupler for a gate driver and also added another screw hole and made them more symmetrical.

image

After that I worked on the case and tried to make it look good:

image

I also found this cool image because I want the USB-C cable flush with the socket:

CGFE8

Then after that I finished the bottom case

image

but I didn't know how to connect the top case to it so I will research that later.

After sleeping I thought about using heatset inserts and then also the different types of screws that I can use:

Types-of-Screw-Heads

I think a sloted head would look decent as I wanted something that has a cylindrical head.

image

image

After a bit I finally finished the CAD!
image

11/25/2025 1 AM - Blender and BOM

After that I decided to put it in blender and get some nice renders of the PCB and case:

banner

render

render1

render2

Then I finished up the BOM, created a logo, and cleaned up the README:

image

image

11/25/2025 10 AM - Blueprint Banner

This is just to update the blueprint banner after waiting on it to render, I just need to write 150 characters to fill up the requirement so that I can post this.

banner

12/16/2025 - USB-C PD Working + Jingle Bells

ember

So I finally got the PCB and it looks cool and even better was that when I plugged it in, it didn't burn up like Cyberboard V1 (wooo) so then I started trying to turn on the LEDs (first thing you always have to do) and the STM32 kept resetting and I didn't know why until later debugging (commenting out peripherals until it worked) I found out that I had mislabled an input pin as output:

image

image

After that I started configuring the USB-C PD controller to get the status of my laptop and aja after a bit of configurint I finally was able to get PDO's (power data objects) that specify what different power options the source has:

image

Sadly my laptop only provides [email protected] so yea...

image

moving on, I wanna try and get the speaker running and lookign at the datasheet I found this cool graph:

image

but nothign telling me at which speeds it's running at so I will make my own driver that can control the PCB duty cycle

After messing around I got jingle bells playing on the board lol.

12/17/2025 - NFC + PWM + Board Temp Sensor + First error

I started getting a driver for the NFC chip and added it in, and also struggled a bit with the I2C address as I kept overwriting it whenever I read / write to the tag.

image

After that I worked on getting a basic PWM driver for the hotplate and I confirmed that the MOSFET was working.

I tested it with a multimeter at 1 Hz (it was switching lol) and then moved on to the board temp sensor. That was also really simple as there were drivers on Github and at first I found one for the tps116, after reading through the datasheet and this pull request, it was the same driver for the tps119 just with a different device id:

image

Moving on to the current sensor, I found out that I had wired it wrong:
image

image
(VS needed to be connected to 3V3 but luckily the regulator is next to it so I can solder a small wire connecting them:

image

Anyways that wasn't something critical so I moved onto getting the drivers for the external temperature sensors. These functioned over SPI and on different channels to avoid different data length errors, I then got the drivers:

image

and got them implemented:

image

after that it was time for the max6675:

image

I finished that but I still had a problem with the NFC, it wouldn't let me read or write to it and was unreliable at times so I went to look at the code and found out that it was trying to read and get a checksum of the data while it was being read/wrote (on field detect) and this caused a blocking operation on the storage which resulted in that unreliable behavior. After changing it to wait like 200ms it finally started working and I could get changes in the NFC reliably:

image

All that's left is to configure the screen and set up a PID algorithm for the heatbed (will finish that once I get the heatbed), get bluetooth to workm and get the flash / lcd working.

image

SO I took a bit of a break bc I got accepted into MIT and added in custom support to play music so yea lol I'ma sleep now

12/26/2025 - NFC Sounds + Bluetooth + Screen Working

I started in the airport trying to make some misc improvements and thought of making the board beep when an NFC tag is present, It took a little while bit I made it play a little jingle.

(Check my post in #50-days for the vid)

After that I was in another airport heading to blueprint and I was looking through this repo and apparently I needed to flash the bluetooth firmware that I was going to use on the other processor otherwise it wouldn't work. After trying to flash the FUS, I bricked one of the boards because I didn't press and hold the boot button when it was editing the option bytes. But after correctly holding down the boot button, I fixed it and was able to connect to it from my phone:

image

So prototype happened and then I started working on the OLED screen. I had to solder it and after realizing that I had the wrong type of solder I tried fixing it and had to hold it in a certain position for the screen to work.

WhatsApp Image 2025-12-25 at 23.23.14

after that I got a circle running from this cool library:

image

WhatsApp Image 2025-12-25 at 23.23.14 (2)

and after a bit I got text and a basic UI although the fonts were wonky and I needed to import more:

WhatsApp Image 2025-12-25 at 23.23.14 (1)

I still have a lot to go but thankfully my heatplate and case is coming in tomorrow so yea, I'll continue working on it.

12/27/2025 - UI + Case + Solder

IMG_0560

So I finally got some more fonts in after making a script that converts any ttf/otf font into a bitmap font and I imported it to make this cool menu screen.

image

I then worked on making a status screen to show the USB-C PD voltage as I can't use serial when connected to a power outlet so yea and I successfully got 20v although it was at 4.5A:

WhatsApp Image 2025-12-27 at 14.13.54 (2)

After a while I got a notification that my case finally came in so I went to get it and found out that everything fit perfectly lol

image

All that was missing were the heatset inserts and screws. This also as around the time that I couldn't take the bad screen solder so I went out and bought some leaded solder:

image

And then after that I finally was able to solder correctly and it looked amazing:

WhatsApp Image 2025-12-27 at 14.13.54

I then started to look for ui libraries on the internet and stumbled upon this one:

image

but the only problem is that I will have to port it to C :(

For the UI, here's what I'm thinking, a main menu screen that says press to start and then you will be sent to a scrolleable menu, it will have these entries:

  • Start / Stop
  • Status
  • Settings
  • About

The start stop button will start the hotplate controller and it will send you to a menu here you have to select between holding a temperature or a reflow profile, if you hold a temp then there will be a slider between 1-200C and for the reflow profile you will have the option to select it, no mater which option you select, there will b a confirm screen.

After you confirm, you will b sent to the status screen, this is basically where you can see how the heat plate is running and the temp and current raw and everything that you could possibly need.

In the settings bar you can change the behavior of the NFC or confirm or change the brightness of the OLED, also you can have the option to turn on or off Bluetooth discovery to control the board.

In the about scan it will how the firmware version and the credits.

Now that I have that planned out I will try and connect the hotplate to see how hot it can get:

flexheater