You are browsing as a guest. Sign up (or log in) to start making projects!

EngThi

@EngThi

Joined June 1st, 2026

  • 70Devlogs
  • 3Projects
  • 1Ships
  • 21Votes
Open comments for this post

1h 52m 44s logged

almost ready to submit!!!

Finished and I’m getting ready to submit the project for review! I took some new renders and also did the prices part for the project items. I have everything here now and it is looking nice.

Like I said before, I left some points to see and change better on the case when I have everything in my hands, so I can prototype 🤖 it better. :work:

I don’t have much skill with soldering, so I really hope I can get the Top PCBA. This is all really cool and interesting that I was able to do, and I’m really happy about it.

At the end I also organized things a little more and changed stuff to track what is needed in the repo :repository:, help anyone that wants to look at it or reproduce the project somehow. The
System architecture section got really cool in the translation and organization, AI did that. I don’t really know how to make this type of diagram myself yet :/

I hope I didn’t forget anything and that the organization I made, and later asked to improve, documents the state well.


Basically I:

I finished organizing the repo, checking the prices, calculations, etc., taking screenshots :print-screen-sysrq:, I kept iterating in the repo, editing, moving things, that kind of organization 🗂️

0
0
8
Open comments for this post

38m 31s logged

more docs things right these


Well, I tidied up the README and organized the folders and file names better. The repo in general :repository:.

The other image is because I think I didn’t show it properly here and I was reposting, checking items and analyzing anything :check: left there on EasyEDA

0
0
10
Open comments for this post

1h 13m 11s logged

its possible only four images…

I fiddled a bit more with these items, files 📁 , repo :github: organization :organization:, stuff like that :markdown: . Also, I took screenshots of some views from the project’s mechanical render
I’m not really focusing on any one part, but I tinker a bit here and if I remember something I should have done or think could be better, I take care of it. Like parts of the firmware, code, repo organization, images, and the internal side of the apps: CAD and EDA. Basically, that’s it, to sum up.

I forgot to put the others Lapse

0
0
42
Open comments for this post

1h 12m 29s logged

I’m done here! The two files we worked on are finished.

Now we have the initializer and use of the MCP23017 (I’ll just write MCP from now on in this log). The addresses have been mapped and the registers too. You can see what happens along with the logic of keeping the line in the LOW state and the rest HIGH. In this part, it’s necessary to use masks and bitwise operations to see how it works. It stays in a loop analyzing what was pressed and, of course, if something strange happens outside the configuration, it throws an error saying UNKNOWN.

0
0
6
Open comments for this post

1h 25m 6s logged

I made a lot more progress on the firmware!! :yay:

As I said, the functions, declarations, and general use of the ESP-IDF are standardized, so it’s simple to build by consulting materials: docs, example codes, usage with some peripherals and components, AI, etc.

In this case, the use of I2C :i2c-bus: and SPI communication is also well organized. The drivers for the components I use don’t give you headaches for this.

Previously, we had already been working on the ‘macros’ part, or rather the project HAL, even without knowing what it was. In the second image, there’s the keymap, made as a 7x7 matrix :matrix-loader: for the calculator - what the keys do. That’s already connected to the names of each key. The scanning was done, a loop that identifies which keys were used, and the rendering of the items on the display :digit-calculator: . Taking the data buffers and transitioning the communication with the ESP about what was pressed and how it will relay that to the screen.

I think it’s interesting to mention:

Explaining how key reading works with the MCP: each key is assigned by the matrix indices - row x column. The columns are set up with internal pull-up resistors, so when inactive they measure 3.3V (level 1). The ESP pulls the row to 0V (level 0), and when a key is pressed, it knows it because it reads !=0 from the column and matches it with the row it’s accessing to get the unique identifier for that key. That way you know 100% for sure what was pressed. And this cycle keeps running every few milliseconds.

0
0
8
Open comments for this post

41m 56s logged

I got started at the base and analyzed the HAL (Hardware Abstraction Layer) of the project. I was studying some things, basically the functions and how to use the framework. I noticed that the functions are pretty standardized, like how to use registers, handle addressing, and use macros, directives/variables.

Basically, the headers I was going to use and docs and things like that I was checking out, now speaking exclusively about the Aliexpress :pet-aliexpress: display that was in Mandarin (some of the ones I saw while researching) and offline I was tinkering and looking at some things, asking AI :codex: to explain and check things to move forward. I got the variant I was going to use, and later on it got analyzed and the board_pins.h ended up fine.
I also started messing with the keypad, just defining it and later on how to monitor and use the identifiers of each key :key-blank:.

0
0
2
Open comments for this post

54m 2s logged

I started looking more closely at the firmware :c: part! Actually, I’ve never worked with ESP-IDF, :esp32: so I’m going to take another good look at it and refresh myself on things I might not be prepared enough for.

I grabbed it to check out and study with the example code "Blynk Led" :blobby-bulb: —the one in the picture is a different one. It’s to control the internal LED with the BOOT button.

I’ve seen a bit, and RTOS seems really cool, here it’s FreeRTOS. But you need to pay attention and be aware, understand how things work. I feel like it’s going to be a long and tough road… but let’s go! The good thing is that we have AI to help us out and clarify points, test stuff, and so on.

0
0
66
Open comments for this post

41m 33s logged

I finished working on a few more things in the Assembly. I was aligning the cut positions in the view (remove extrude) and it took a while because the Mates, Fastened Mates created kind of restrictions that didn’t allow certain parts to move. Also put the 3D for the display. Then at the end I made the first commit to the repo! :github:


Lapse

0
0
8
Open comments for this post

1h 43m 30s logged

I just tweaked the parts a little more :work: and then went to the Assembly :onshape: . The PCB step was 50MB and took a while to load, and then when I tried to insert it, it didn’t load everything right after choosing a square option with a symbol similar to the Part Studio one, but eventually it worked. I used some fastened mates to join the items, and since this isn’t constant and there are hollow parts where you want to center/place in a specific spot, the Mate Connector doesn’t apply, so I used something like the transform to select the piece. That’s how I kept going until I got here! In the middle of the work, I had to edit the Part Studio because some points differed from the positioning and mounted parts of the PCB, like the USB and microSD.

That’s it—work, found mistakes, fix them, and move forward! :keep-going:


Lapse

0
0
11
Open comments for this post

39m 1s logged

What happened with the keypad being wrong was that in the sketch I dimensioned it incorrectly (swapped height for width), and that’s why some of the blocks went beyond the edges and weren’t symmetrical. I imagined that might be it and fixed it. I made a rectangle there thinking about maybe adding a simple lens protection for the camera. After that, a rough idea of the cover that is usually used to protect the front part. Besides that, just a simple fillet on the sides. I did that, but I admit I might change this idea and its overall shape. Once I have everything in hand, I’ll update it to have a proper enclosure.


Lapse

0
0
4
Open comments for this post

1h 11m 1s logged

I finished the rear shell for the case. I made some bosses for the PCB fitting. It’s noticeable that the top right one is misaligned. I mentioned before that it’s because the traces and components were occupying that space, and when I remodeled it to 84x85, the hole slots didn’t go along—they got lost on the canvas. Later I remembered, organized, and figured out a way to put them like this. Only one ended up 'strange,' which is NOT a problem at all.
I made the shell 1.8mm thick and also cut the slot for the camera.
I left the keypad at 74x80, making a 7x7 feature pattern. This still bugs me because it doesn’t look right and the logic seems to change… I just need more experience and general practice to be ready for different scenarios. Some parts went out of place, but it’s just a matter of testing measurements until it works and maybe checking some guide videos on how to use this feature correctly.


Lapse

0
0
13
Open comments for this post

1h 52m 2s logged

I had made a Variable Studio but I end up not using it and don’t remember much. I asked the AI for help since I’ve never really worked with this item and it seemed better for standardizing and putting something defined that is used constantly. But in the end, I remember the quota values and some calculations are simple. Here I did the rear and front parts of the case, I didn’t do the extrusion there but it’s more or less correct. I had been thinking, and as I said, I worked on an idea and previous version, so it was actually pretty easy for that.

0
0
5
Open comments for this post

1h 25m 37s logged

I finished placing the holes on the PCB. Actually, I had forgotten… I was focused on finishing and trying to deliver something more professional in the routing part that when I finished I was like "finally did it? Can I export the production files now?" and the happiness and rush of the moment made it happen.
It wasn’t possible to perfectly align the holes and the thought I had because of the traces I needed to place on the PCB, so it stayed like this. Only the top-right one ended up ‘different’.
Now it’s just finishing the PCB and fixing the firmware :code: . I was already checking and testing a bit offline.

0
0
2
Open comments for this post

3h 8m 57s logged

I routed a lot more! I tried, tried to optimize so I wouldn’t have to run traces on Inner1, but it really wasn’t going to work. Partly because of the layout and distances of some ICs to the decoupling capacitors, practices for better signal quality. I forgot (:no:) and it was already almost done, so I came here to post up to this point

Lapse:
Lapse :lapse:

0
0
5
Open comments for this post

3h 56m 24s logged

Well, what happened. I went to check the price of the PCB – in this case, when exporting the GERBER it showed a price and it was pretty expensive, $33! The other 3 boards I made were within the 100x100 size and, if I’m not mistaken, the most expensive one was listed at $7. Here I’m kind of making different versions and testing, experimenting with what happens with certain configurations (size, traces, layers, type of components, price,…). I was putting it off and taking my time because I wanted to use what I had from the other one, but then I decided to start routing from scratch.

0
0
4
Open comments for this post

1h 17m 21s logged

I’ve practically finished the new schematic for the raw camera version. I managed to tidy up and properly organize the layout for this new part. First, I looked over it to see what I could add and prepare in positioning the new components for routing. The camera I left is one that uses an FPC connector. I’ve already put this item in place, arranged it with LDOs, translators, and controllers.

Basically, it’s about handling the signals, how they occur, to make them compatible with the module I took and the rest of what I had already prepared. It got a bit messy because I really need to see how to place each item, and I wanted to make use of a large part of the general layout from the other PCB version


lapse

0
0
74
Open comments for this post

1h 14m 4s logged

I made some changes and was researching a raw version with the OV5640. To make it a more controlled and integrated work, and thinking about reducing it and making the aesthetics of the project look more like what it really is, reducing the thickness, I changed and added a lot of other components and I’m starting to organize them to be on the Bottom Layer. I need more LDOs, capacitors, and resistors.
Simple, right? The passives and ‘controllers’ for electricity, current, voltage, etc. I’m not really knowing much about the impedance part, so I use ChatGPT to guide me, teach things, and think about the structure of the project, the PCB…

Lapse:
Lapse

0
0
56
Open comments for this post

45m 1s logged

Well, things were already going pretty well. Basically, I messed around a bit with the routes since the camera pins would be placed behind the PCB, like on the bottom. Then I changed the header layer and rerouted it. Now I managed to remove the header from the 3D preview (since the header was used to make the holes and get an idea of the position of the Arducam pin rows). When I have it in hand, I’ll solder everything directly onto the board.

I was messing around a bit with other things too, in the firmware, doing research, checking data, etc. I used ChatGPT for that and even Antigravity. Then I moved forward with some things, checked, asked about the case. The thing is, I’m busy (or I should be) and couldn’t really do sessions and things of the project that I was working on to save. And then I really ended up forgetting to make the Lapses… a lot of times it was gradual work, bit by bit, and sometimes I’d go a while without touching it because I depended on my parents to call me or something like that, a pause. As far as I remember, I used to be able to edit the Lapses before, but I think it’s better to do it directly.

All of this wasn’t just 17 minutes! I realized that there was a WakaTime extension for EasyEDA and Onshape. At the time (~ about 5 months ago) I didn’t know about Lapse or anything like that and ended up using this. I ended up creating more than one project to test things out, run tests, and see other people’s implementations. And it turned out they came out with very similar names and all. I didn’t remember the name anymore and I think I synced a few incorrectly. I fragmented the time. BUT REALLY MOST OF IT WAS BECAUSE I DIDN’T RECORD, ETC. I think you can add like 3 more hours

0
0
4
Open comments for this post

1h 30m 3s logged

Well, I tweaked the PCB design :pcb: just a little more. Actually, very little—I was just seeing if there was a way to handle the USB :usb: traces since these two NETs were 170mm and had a lot of vias. The center already had the other components and trace routing, so I guess there wasn’t much to do. And honestly, I’m not experienced, so I don’t know how to make these things better.
Along with that, there’s roughly an idea of how the project case will look and the items I had already been working on. :sad:

0
0
6
Open comments for this post

54m 2s logged

Finally the errors disappeared… it turns out you had the custom DRC rules that I set. Then, like 2 or 3 NETs had thickness rules that couldn’t be followed because QFN components and the VSON package type have pads really close to each other (pitch), so there was no way to route 0.8mm traces on components with, like, 0.4mm pitch. Obviously, you had to reduce it to make it work, but I didn’t know by how much and whether it might be wrong at some point, cause problems, or lower the PCB’s lifespan. 😶

I figured out how to change the rules and get things fixed and done. Man, I think I should review it again and really check some automatic NETs from the editor. After all these days without touching this, I noticed there were these NETs without descriptive names. I don’t remember if it’s because I didn’t assign a NET, or if it’s just that connection between those pins or something like that. But overall it’s going to be easy.


I really hope SO MUCH!

Lapse
Lapse

0
0
9
Loading more…

Followers

Loading…